Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Race analysis for systemc using model checking

Published: 10 June 2010 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    Ball, T. and Rajamani, S. 2000. Boolean programs: A model and process for software analysis. Tech. rep. MSR-TR-2000-14, Microsoft Research.
    [2]
    Ball, T. and Rajamani, S. K. 2002. The SLAM project: Debugging system software via static analysis. In Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'02). ACM, New York, 1--3.
    [3]
    Biere, A., Cimatti, A., Clarke, E. M., Fujita, M., and Zhu, Y. 1999. Symbolic model checking using SAT procedures instead of BDDs. In Proceedings of the 36th ACM/IEEE Conference on Design Automation (DAC'99). ACM, New York, 317--320.
    [4]
    Blanc, N., Groce, A., and Kroening, D. 2007. Verifying C++ with STL containers via predicate abstraction. In Proceedings of the 22nd IEEE International Conference on Automated Software Engineering (ASE). IEEE, 521--524.
    [5]
    Blanc, N. and Kroening, D. 2008. Race analysis for SystemC using model checking. In Proceedings of the IEEE International Conference on Computer-Aided Design (ICCAD'08). IEEE, 356--363.
    [6]
    Blanc, N., Kroening, D., and Sharygina, N. 2008. Scoot: A tool for the analysis of SystemC models. In Proceedings of the Workshop on Tools and Algorithms for the Construction and Analysis of system (TACAS). Lecture Notes in Computer Science. Springer, 467--470.
    [7]
    Clarke, E., Jain, H., and Kroening, D. 2007. Verification of SpecC using predicate abstraction. Form. Methods Syst. Des. 30, 1, 5--28.
    [8]
    Clarke, E., Kroening, D., Sharygina, N., and Yorav, K. 2005. SATABS: SAT-Based predicate abstraction for ANSI-C. In Proceedings of the Workshop on Tools and Algorithms for the Construction and Analysis of System (TACAS). Lecture Notes in Computer Science, vol. 3440. Springer.
    [9]
    Clarke, E., Kroening, D., and Yorav, K. 2003. Behavioral consistency of C and Verilog programs using bounded model checking. In Proceedings of the IEEE/ACM Design Automation Conference (DAC). ACM Press.
    [10]
    Clarke, E. M., Grumberg, O., Jha, S., Lu, Y., and Veith, H. 2000. Counterexample-Guided abstraction refinement. In Proceedings of the 12th International Conference on Computer Aided Verification (CAV'00). Lecture Notes in Computer Science. Springer, 154--169.
    [11]
    Cook, B., Podelski, A., and Rybalchenko, A. 2006. Terminator: Beyond safety. In Proceedings of the International Conference on Computer-Aided Verification (CAV). 415--418.
    [12]
    D'Silva, V., Kroening, D., and Weissenbacher, G. 2008. A survey of automated techniques for formal software verification. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 27, 7, 1165--1178.
    [13]
    Engler, D. and Ashcraft, K. 2003. RacerX: Effective, static detection of race conditions and deadlocks. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP'03). ACM, New York, 237--252.
    [14]
    Flanagan, C. and Freund, S. N. 2000. Type-Based race detection for Java. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'00). ACM, New York, 219--232.
    [15]
    Flanagan, C. and Godefroid, P. 2005. Dynamic partial-order reduction for model checking software. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'05). ACM, New York, 110--121.
    [16]
    Floyd, R. W. 1967. Assigning meaning to programs. In Proceedings of the American Mathematics Society Symposia Mathematical Aspects of Computer Science, J. T. Schwartz, Ed. Vol. 19. American Mathematical Society, 19--31.
    [17]
    Godefroid, P. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Lecture Notes in Computer Science. Springer.
    [18]
    Godefroid, P. 2005. Software model checking: The VeriSoft approach. Form. Methods Syst. Des. 26, 2, 77--101.
    [19]
    Graf, S. and Saïdi, H. 1997. Construction of abstract state graphs with PVS. In Proceedings of the 9th International Conference on Computer Aided Verification (CAV'97). Lecture Notes in Computer Science. Springer, 72--83.
    [20]
    Helmstetter, C., Maraninchi, F., Maillet-Contoz, L., and Moy, M. 2006. Automatic generation of schedulings for improving the test coverage of systems-on-a-chip. In Proceedings of the Formal Methods in Computer Aided Design (FMCAD'06). IEEE Computer Society, 171--178.
    [21]
    Hoare, C. A. R. 1969. An axiomatic basis for computer programming. Comm. ACM 12, 10, 576--580.
    [22]
    IEEE Std. 2005. SystemC language reference manual. IEEE Standard 1666-2005.
    [23]
    Kroening, D. and Sharygina, N. 2005. Formal verification of SystemC by automatic hardware/software partitioning. In Proceedings of the 2nd ACM/IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE'05). IEEE Computer Society, 101--110.
    [24]
    Kroening, D. and Strichman, O. 2003. Efficient computation of recurrence diameters. In Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'03). Springer, 298--309.
    [25]
    Kundu, S., Ganai, M., and Gupta, R. 2008. Partial order reduction for scalable testing of SystemC TLM designs. In Proceedings of the 45th Annual Conference on Design Automation (DAC'08). ACM, New York, 936--941.
    [26]
    Lamport, L. 1978. Time, clocks, and the ordering of events in a distributed system. Comm. ACM 21, 7, 558--565.
    [27]
    Naik, M., Aiken, A., and Whaley, J. 2006. Effective static race detection for Java. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'06). ACM, New York, 308--319.
    [28]
    Netzer, R. H. B. and Miller, B. P. 1992. What are race conditions? Some issues and formalizations. ACM Lett. Program. Lang. Syst. 1, 1, 74--88.
    [29]
    Peled, D. 1993. All from one, one for all: On model checking using representatives. In Proceedings of the 5th International Conference on Computer Aided Verification (CAV'93). Lecture Notes in Computer Science. Springer, 409--423.
    [30]
    Peled, D. 1994. Combining partial order reductions with on-the-fly model-checking. In Proceedings of the 6th International Conference on Computer Aided Verification (CAV'94). Springer, 377--390.
    [31]
    Qadeer, S. and Wu, D. 2004. KISS: Keep it simple and sequential. SIGPLAN Not. 39, 6, 14--24.
    [32]
    Ruf, J., Hoffmann, D., Gerlach, J., Kropf, T., Rosenstiehl, W., and Mueller, W. 2001. The simulation semantics of SystemC. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE'01). IEEE Press, 64--70.
    [33]
    Salem, A. 2003. Formal semantics of synchronous SystemC. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE'03). IEEE Computer Society, 10376.
    [34]
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., and Anderson, T. 1997. Eraser: A dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15, 4, 391--411.
    [35]
    Savoiu, N., Sandeep, S., and Rajesh, G. 2005. Improving SystemC simulation through Petri net reductions. In Proceedings of the ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE). 131--140.
    [36]
    Sen, A., Ogale, V., and Abadir, M. S. 2008. Predictive runtime verification of multi-processor SoCs in SystemC. In Proceedings of the 45th Annual Conference on Design Automation (DAC'08). ACM, New York, 948--953.
    [37]
    Slonneger, K. and Kurtz, B. 1995. Domain theory and fixed-point semantics. In Formal Syntax and Semantics of Programming Languages: A Laboratory Based Approach. Addison-Wesley Longman Publishing, Boston, MA, 341--394.
    [38]
    Vardi, M. Y. 2007. Formal techniques for SystemC verification. In Proceedings of the 44th Annual Conference on Design Automation (DAC'07). ACM, New York, 188--192.
    [39]
    Wang, C., Yang, Z., Kahlon, V., and Gupta, A. 2008. Peephole partial order reduction. In Proceedings of the Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). Lecture Notes in Computer Science. Springer, 382--396.
    [40]
    Witkowski, T., Blanc, N., Kroening, D., and Weissenbacher, G. 2007. Model checking concurrent Linux device drivers. In Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE'07). ACM, New York, 501--504.

    Cited By

    View all
    • (2023)Formale Verifikation von SystemC-basierten Entwürfen durch symbolische SimulationVerbessertes virtuelles Prototyping10.1007/978-3-031-18174-0_4(63-125)Online publication date: 1-Jan-2023
    • (2022)Interruption-driven resource competition defect model and testing methodology2022 IEEE 6th Advanced Information Technology, Electronic and Automation Control Conference (IAEAC )10.1109/IAEAC54830.2022.9930087(602-616)Online publication date: 3-Oct-2022
    • (2021)DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software SystemsMathematics10.3390/math90909669:9(966)Online publication date: 25-Apr-2021
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Design Automation of Electronic Systems
    ACM Transactions on Design Automation of Electronic Systems  Volume 15, Issue 3
    May 2010
    192 pages
    ISSN:1084-4309
    EISSN:1557-7309
    DOI:10.1145/1754405
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Journal Family

    Publication History

    Published: 10 June 2010
    Accepted: 01 February 2010
    Revised: 01 October 2009
    Received: 01 May 2009
    Published in TODAES Volume 15, Issue 3

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. SystemC
    2. formal analysis
    3. model checking
    4. partial-order reduction
    5. simulation

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 26 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Formale Verifikation von SystemC-basierten Entwürfen durch symbolische SimulationVerbessertes virtuelles Prototyping10.1007/978-3-031-18174-0_4(63-125)Online publication date: 1-Jan-2023
    • (2022)Interruption-driven resource competition defect model and testing methodology2022 IEEE 6th Advanced Information Technology, Electronic and Automation Control Conference (IAEAC )10.1109/IAEAC54830.2022.9930087(602-616)Online publication date: 3-Oct-2022
    • (2021)DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software SystemsMathematics10.3390/math90909669:9(966)Online publication date: 25-Apr-2021
    • (2021)A Guard-Driven Analysis Approach of Workflow Net with DataIEEE Transactions on Services Computing10.1109/TSC.2019.289908614:6(1650-1661)Online publication date: 1-Nov-2021
    • (2021)Advanced virtual prototyping for cyber-physical systems using RISC-V: implementation, verification and challengesScience China Information Sciences10.1007/s11432-020-3308-465:1Online publication date: 23-Dec-2021
    • (2020)A Systematic Investigation of State-of-the-Art SystemC VerificationJournal of Circuits, Systems and Computers10.1142/S021812662030013529:15(2030013)Online publication date: 18-Jul-2020
    • (2020)Formal Verification of SystemC-Based Designs using Symbolic SimulationEnhanced Virtual Prototyping10.1007/978-3-030-54828-5_4(59-117)Online publication date: 15-Oct-2020
    • (2019)Verifying SystemC Using Intermediate Verification Language and Stateful Symbolic SimulationIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2018.284663838:7(1359-1372)Online publication date: Jul-2019
    • (2018)Going DarkProceedings of the New Security Paradigms Workshop10.1145/3285002.3285011(52-63)Online publication date: 28-Aug-2018
    • (2018)SAT-Based Model CheckingHandbook of Model Checking10.1007/978-3-319-10575-8_10(277-303)Online publication date: 19-May-2018
    • Show More Cited By

    View Options

    Get Access

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media