{"title":"用SMT求解器验证具有宽松内存模型的多处理器汇编程序","authors":"Pattaravut Maleehuan, Yuki Chiba, Toshiaki Aoki","doi":"10.1109/TASE.2017.8285629","DOIUrl":null,"url":null,"abstract":"A relaxed memory model allows reordering of memory accesses, which can violate program correctness in multiprocessors. This paper presents an approach to verifying a list of assembly programs under a relaxed memory model. Assembly programs are considered for abstractions, which capture essential information that affects the correctness. For program verification, SMT solvers are adopted for finding an execution that violates program property, which is defined by assertions. The solver takes constraints that represent the violation of assertion conditions to find a valuation which can construct an execution. An encoding method is presented for constructing the constraints of program behavior, which classifies the essential behaviors in multiprocessors and can be used by the solvers. An automated tool was developed to abstract the list of assembly programs and find an execution that violates the program assertions. Experiment results show the tool can verify assembly programs for SPARC architecture under SC, TSO, and PSO memory models.","PeriodicalId":221968,"journal":{"name":"2017 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Assembly program verification for multiprocessors with relaxed memory model using SMT solver\",\"authors\":\"Pattaravut Maleehuan, Yuki Chiba, Toshiaki Aoki\",\"doi\":\"10.1109/TASE.2017.8285629\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A relaxed memory model allows reordering of memory accesses, which can violate program correctness in multiprocessors. This paper presents an approach to verifying a list of assembly programs under a relaxed memory model. Assembly programs are considered for abstractions, which capture essential information that affects the correctness. For program verification, SMT solvers are adopted for finding an execution that violates program property, which is defined by assertions. The solver takes constraints that represent the violation of assertion conditions to find a valuation which can construct an execution. An encoding method is presented for constructing the constraints of program behavior, which classifies the essential behaviors in multiprocessors and can be used by the solvers. An automated tool was developed to abstract the list of assembly programs and find an execution that violates the program assertions. Experiment results show the tool can verify assembly programs for SPARC architecture under SC, TSO, and PSO memory models.\",\"PeriodicalId\":221968,\"journal\":{\"name\":\"2017 International Symposium on Theoretical Aspects of Software Engineering (TASE)\",\"volume\":\"7 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2017 International Symposium on Theoretical Aspects of Software Engineering (TASE)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/TASE.2017.8285629\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 International Symposium on Theoretical Aspects of Software Engineering (TASE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TASE.2017.8285629","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Assembly program verification for multiprocessors with relaxed memory model using SMT solver
A relaxed memory model allows reordering of memory accesses, which can violate program correctness in multiprocessors. This paper presents an approach to verifying a list of assembly programs under a relaxed memory model. Assembly programs are considered for abstractions, which capture essential information that affects the correctness. For program verification, SMT solvers are adopted for finding an execution that violates program property, which is defined by assertions. The solver takes constraints that represent the violation of assertion conditions to find a valuation which can construct an execution. An encoding method is presented for constructing the constraints of program behavior, which classifies the essential behaviors in multiprocessors and can be used by the solvers. An automated tool was developed to abstract the list of assembly programs and find an execution that violates the program assertions. Experiment results show the tool can verify assembly programs for SPARC architecture under SC, TSO, and PSO memory models.