Affiliation:
1. ETH Zurich, Zurich, Switzerland
2. Oxford University, Welington Square, UK
Abstract
SystemC is a system-level modeling language that offers a wide range of features to describe concurrent systems at different levels of abstraction. The SystemC standard permits simulators to implement a deterministic scheduling policy, which often hides concurrency-related design flaws. We present a novel compiler for SystemC that integrates a very precise formal race analysis by means of model checking. Our compiler produces a simulator that uses the outcome of the analysis to perform partial order reduction. The key insight to make the model checking engine scale is to apply it only to tiny fractions of the SystemC model. We show that the outcome of the analysis is not only valuable to eliminate redundant context switches at runtime, but can also be used to diagnose race conditions statically. In particular, our analysis is able to reveal races that can remain undetected during simulation and is able to formally prove the absence of races.
Funder
Seventh Framework Programme
Semiconductor Research Corporation
Engineering and Physical Sciences Research Council
Eidgenössische Technische Hochschule Zürich
Publisher
Association for Computing Machinery (ACM)
Subject
Electrical and Electronic Engineering,Computer Graphics and Computer-Aided Design,Computer Science Applications
Reference40 articles.
1. Ball T. and Rajamani S. 2000. Boolean programs: A model and process for software analysis. Tech. rep. MSR-TR-2000-14 Microsoft Research. Ball T. and Rajamani S. 2000. Boolean programs: A model and process for software analysis. Tech. rep. MSR-TR-2000-14 Microsoft Research.
2. The SLAM project
3. Symbolic model checking using SAT procedures instead of BDDs
4. Verifying C++ with STL containers via predicate abstraction
Cited by
30 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献