发明名称 Automatic verification and synthesis for weak memory models
摘要 Techniques are provided for automatic verification and inference of memory fences in concurrent programs that can bound the store buffers that are used to model relaxed memory models. A method is provided for determining whether a program employing a relaxed memory model satisfies a safety specification. An abstract memory model is obtained of the relaxed memory model. The abstract memory model represents concrete program states of the program as a finite number of abstract states. The safety specification is evaluated for the program on the abstract memory model having the finite number of abstract states. Fence positions at one or more locations can be determined to ensure that the safety specification is satisfied.
申请公布号 US9110658(B2) 申请公布日期 2015.08.18
申请号 US201113097432 申请日期 2011.04.29
申请人 International Business Machines Corporation 发明人 Kuperstein Michael;Vechev Martin;Yahav Eran
分类号 G06F9/44;G06F11/36 主分类号 G06F9/44
代理机构 Ryan, Mason & Lewis, LLP 代理人 Ryan, Mason & Lewis, LLP
主权项 1. A method for determining whether a program satisfies a safety specification, wherein said program employs a relaxed memory model, said method comprising: obtaining an abstract memory model of said relaxed memory model, wherein said abstract memory model represents concrete program states of said program as a finite number of abstract states, wherein said relaxed memory model uses one or more store buffers and wherein said one or more store buffers are represented in said abstract memory model in a bounded way by maintaining order information between elements in a corresponding store buffer only up to a predefined bound and by handling elements in said corresponding store buffer beyond said predefined bound as an unordered set, wherein said abstract memory model preserves intra-process coherence by maintaining recency information per variable, wherein said recency information comprises an indication of how recently the respective variable was stored; determining one or more fence positions at one or more locations to ensure said safety specification is satisfied, wherein said one or more fence locations ensure that if a process pi performs a fence when its buffer for variable x is non-empty, a value of x visible to one or more additional processes immediately after the fence location, is a most recent value written by said process pi; and evaluating said safety specification for said program on said abstract memory model having said finite number of abstract states.
地址 Armonk NY US