Directed Test Generation for Validation of Cache Coherence Protocols

Computing systems utilize multicore processors with complex cache coherence protocols to meet the increasing need for performance and energy improvement. It is a major challenge to verify the correctness of a cache coherence protocol since the number of reachable states grows exponentially with the number of cores. In this paper, we propose an efficient test generation technique, which can be used to achieve full state and transition coverage in simulation-based verification for a wide variety of cache coherence protocols. Based on effective analysis of the state space structure, our method can generate more efficient test sequences (50% shorter) on-the-fly compared with tests generated by BFS. While our on-the-fly method can reduce the numbers of required tests by half, it can still be impractical to verify all possible transitions in the presence of large number of cores. We propose scalable on-the-fly test generation techniques using quotient state space. The proposed approach guarantees selection of important transitions by utilizing equivalence classes, and omits only similar transitions. Our experimental results demonstrate that our proposed approaches can efficiently tradeoff between transition coverage and validation effort.

[1]  Michael E. Thomadakis,et al.  The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms , 2011 .

[2]  Randy H. Katz,et al.  Verifying a multiprocessor cache controller using random test generation , 1990, IEEE Design & Test of Computers.

[3]  Meng Zhang,et al.  Fractal Coherence: Scalably Verifiable Cache Coherence , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[4]  T. N. Vijaykumar,et al.  High-performance fractal coherence , 2014, ASPLOS.

[5]  Vineet Kahlon,et al.  Exact and Efficient Verification of Parameterized Cache Coherence Protocols , 2003, CHARME.

[6]  Frédéric Pétrot,et al.  Detecting Software Cache Coherence Violations in MPSoC Using Traces Captured on Virtual Platforms , 2017, ACM Trans. Embed. Comput. Syst..

[7]  Daniel Sánchez,et al.  Exploiting commutativity to reduce the cost of updates to shared data in cache-coherent systems , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[8]  Nikil D. Dutt,et al.  Graph-based functional test program generation for pipelined processors , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[9]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[10]  Valeria Bertacco,et al.  MCjammer: Adaptive Verification for Multi-core Designs , 2008, 2008 Design, Automation and Test in Europe.

[11]  Yongjian Li,et al.  A novel approach to parameterized verification of cache coherence protocols , 2016, 2016 IEEE 34th International Conference on Computer Design (ICCD).

[12]  Somesh Jha,et al.  Exploiting Symmetry In Temporal Logic Model Checking , 1993, CAV.

[13]  Sharad Malik,et al.  Using Flow Specifications of Parameterized Cache Coherence Protocols for Verifying Deadlock Freedom , 2014, ATVA.

[14]  Nader Bagherzadeh,et al.  Deadlock Verification of Cache Coherence Protocols and Communication Fabrics , 2017, IEEE Transactions on Computers.

[15]  Alexander S. Kamkin Projecting transition systems: Overcoming state explosion in concurrent system verification , 2015, Programming and Computer Software.

[16]  Jack Edmonds,et al.  Matching, Euler tours and the Chinese postman , 1973, Math. Program..

[17]  Prabhat Mishra,et al.  Automated generation of directed tests for transition coverage in cache coherence protocols , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[18]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

[19]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[20]  David J. Lilja,et al.  So many states, so little time: verifying memory coherence in the Cray X1 , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[21]  Allon Adir,et al.  Genesys-Pro: innovations in test program generation for functional processor verification , 2004, IEEE Design & Test of Computers.

[22]  Meng Zhang,et al.  PVCoherence: Designing flat coherence protocols for scalable verification , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).