A Verification Framework for Assembly Programs Under Relaxed Memory Model Using SMT Solver

被引:0
|
作者
Maleehuan, Pattaravut [1 ]
Chiba, Yuki [2 ]
Aoki, Toshiaki [1 ]
机构
[1] Japan Adv Inst Sci & Technol, Sch Informat Sci, Nomi 9231292, Japan
[2] DENSO Corp, Tokyo 1036015, Japan
来源
关键词
relaxed memory model; model checking; SMT solver; program verification; formalization; AUTOMATIC-ANALYSIS; CHECKING; CONSISTENCY;
D O I
10.1587/transinf.2018EDP7099
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
In multiprocessors, memory models are introduced to describe the executions of programs among processors. Relaxed memory models, which relax the order of executions, are used in the most of the modern processors, such as ARM and POWER. Due to a relaxed memory model could change the program semantics, the executions of the programs might not be the same as our expectation that should preserve the program correctness. In addition to relaxed memory models, the way to execute an instruction is described by an instruction semantics, which varies among processor architectures. Dealing with instruction semantics among a variety of assembly programs is a challenge for program verification. Thus, this paper proposes a way to verify a variety of assembly programs that are executed under a relaxed memory model. The variety of assembly programs can be abstracted as the way to execute the programs by introducing an operation structure. Besides, there are existing frameworks for modeling relaxed memory models, which can realize program executions to be verified with a program property. Our work adopts an SMT solver to automatically reveal the program executions under a memory model and verify whether the executions violate the program property or not. If there is any execution from the solver, the program correctness is not preserved under the relaxed memory model. To verify programs, an experimental tool was developed to encode the given programs for a memory model into a first-order formula that violates the program correctness. The tool adopts a modeling framework to encode the programs into a formula for the SMT solver. The solver then automatically finds a valuation that satisfies the formula. In our experiments, two encoding methods were implemented based on two modeling frameworks. The valuations resulted by the solver can be considered as the bugs occurring in the original programs.
引用
收藏
页码:3038 / 3058
页数:21
相关论文
共 50 条
  • [21] Model-based Verification of PLC programs using Simulink Design
    He, Nannan
    Oke, Victor
    Allen, Gale
    [J]. 2016 IEEE INTERNATIONAL CONFERENCE ON ELECTRO INFORMATION TECHNOLOGY (EIT), 2016, : 211 - 216
  • [22] Verification of MPI Java']Java Programs using Software Model Checking
    Rehman, Waqas Ur
    Ayub, Muhammad Sohaib
    Siddiqui, Junaid Haroon
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (08) : 413 - 414
  • [23] Correctness debugging of message passing programs using model verification techniques
    Lovas, Robert
    Kacsuk, Peter
    [J]. RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 2007, 4757 : 335 - 343
  • [24] Program Verification Under Weak Memory Consistency Using Separation Logic
    Vafeiadis, Viktor
    [J]. COMPUTER AIDED VERIFICATION, CAV 2017, PT I, 2017, 10426 : 30 - 46
  • [25] LTL Model Checking of Parallel Programs with Under-Approximated TSO Memory Model
    Barnat, Jiri
    Brim, Lubos
    Havel, Vojtech
    [J]. 2013 13TH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN (ACSD 2013), 2013, : 51 - 59
  • [26] Precise Data Race detection in a Relaxed Memory Model using Heuristic-based Model Checking
    Kim, KyungHee
    Yavuz-Kahveci, Tuba
    Sanders, Beverly A.
    [J]. 2009 IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 495 - 499
  • [27] Verification Method of Safety Properties of Embedded Assembly Program by Combining SMT-Based Bounded Model Checking and Reduction of Interrupt Handler Executions
    Yamane, Satoshi
    Kobashi, Junpei
    Uemura, Kosuke
    [J]. ELECTRONICS, 2020, 9 (07): : 1 - 24
  • [28] A Computational Framework to Model Degradation of Biocorrodible Metal Stents Using an Implicit Finite Element Solver
    Debusschere, Nic
    Segers, Patrick
    Dubruel, Peter
    Verhegghe, Benedict
    De Beule, Matthieu
    [J]. ANNALS OF BIOMEDICAL ENGINEERING, 2016, 44 (02) : 382 - 390
  • [29] A Computational Framework to Model Degradation of Biocorrodible Metal Stents Using an Implicit Finite Element Solver
    Nic Debusschere
    Patrick Segers
    Peter Dubruel
    Benedict Verhegghe
    Matthieu De Beule
    [J]. Annals of Biomedical Engineering, 2016, 44 : 382 - 390
  • [30] Efficient Verification of Industrial PLC-Programs using Model Checking and Static Analysis
    Biallas, Sebastian
    Kowalewski, Stefan
    Schlich, Bastian
    [J]. AUTOMATION 2011, 2011, 213 : 67 - 72