Memory Consistency Verification of Chip Multi-Processor

Memory consistency verification is an important part of functional validation of CMP (chip multi- processor). Since checking an execution of a parallel program against a memory consistency model is known to be an NP-hard problem, in practice, incomplete verification methods with higher than O(n3) time complexity are used to deal with memory consistency verification. In this paper, a linear time complexity memory consistency verification tool LCHECK is introduced. In the multi-processor system which supports store atomicity, there must be a time order between two operations with disjoint execution periods: The former operation in time order must be observed by the latter operation. LCHECK localizes memory consistency verification based on time order. It infers edges of orders and checks correctness in bounded operations. LCHECK is used in the verification of an industrial CMP, Godson-3, and finds many bugs of memory subsystem of Godson-3.

[1]  Phillip B. Gibbons,et al.  On testing cache-coherent shared memories , 1994, SPAA '94.

[2]  Sridhar Narayanan,et al.  TSOtool: a program for verifying memory systems using the memory consistency model , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

[3]  Ganesh Gopalakrishnan,et al.  Shared Memory Consistency Protocol Verification Against Weak Memory Models: Refinement via Model-Checking , 2002, CAV.

[4]  Sudheendra Hangal,et al.  Completely verifying memory consistency of test program executions , 2006, The Twelfth International Symposium on High-Performance Computer Architecture, 2006..

[5]  Jian Wang,et al.  Micro-architecture of Godson-3 multi-core processor , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[6]  Michel Dubois,et al.  Memory access buffering in multiprocessors , 1998, ISCA '98.

[7]  Amitabha Roy,et al.  Fast and Generalized Polynomial Time Memory Consistency Verification , 2006, CAV.

[8]  Weiwu Hu A graph model for investigating memory consistency , 1994, Proceedings of 1994 International Conference on Parallel and Distributed Systems.

[9]  Jian Wang,et al.  Godson-3: A Scalable Multicore RISC Processor with x86 Emulation , 2009, IEEE Micro.

[10]  Albert Meixner,et al.  Dynamic Verification of Memory Consistency in Cache-Coherent Multithreaded Computer Architectures , 2006, International Conference on Dependable Systems and Networks (DSN'06).

[11]  James R. Goodman,et al.  Cache Consistency and Sequential Consistency , 1991 .

[12]  Tianshi Chen,et al.  Fast complete memory consistency verification , 2009, 2009 IEEE 15th International Symposium on High Performance Computer Architecture.

[13]  Albert Meixner,et al.  Dynamic Verification of Sequential Consistency , 2005, ISCA 2005.

[14]  Arvind,et al.  Memory Model = Instruction Reordering + Store Atomicity , 2006, 33rd International Symposium on Computer Architecture (ISCA'06).

[15]  Phillip B. Gibbons,et al.  Testing Shared Memories , 1997, SIAM J. Comput..

[16]  Yue Yang,et al.  Nemos: a framework for axiomatic and executable specifications of memory consistency models , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[17]  Sudheendra Hangal,et al.  Efficient algorithms for verifying memory consistency , 2005, SPAA '05.