Abstract
Processors with multiple cores and complex cache coherence protocols are widely employed to improve the overall performance. 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. This chapter describes 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, this method can generate more efficient test sequences compared with tests generated by breadth first search. Moreover, this approach can generate tests on-the-fly due to its space efficient design.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In this chapter, we use the term “core” to refer to each single processing units in multicore or multiprocessor systems.
- 2.
There are many transitions that start and end in the same states. For example, the global state will not change if a core in S state issues a load operation. Usually, these transitions are easier to cover, because they can be activated by appending one more operation at the end of existing tests, which are used to activate corresponding initial states. As a result, they are omitted in the state space structure description in this section. However, all possible transitions are considered in the actual implementation of TGTC as well as in the experimental results.
- 3.
A global exclusive state is a global state with a cache block in exclusive state (e.g., IIE, IEI, and EII in Fig. 11.4).
- 4.
A global owned state is a global state with a cache block in owned state (e.g., IOI, IOS,..., OSS in Fig. 11.5).
References
Abts D, Scott S, Lilja D (2003) So many states, so little time: verifying memory coherence in the Cray X1. In: Proceedings of international parallel and distributed processing symposium
Adir A, Almog E, Fournier L, Marcus E, Rimon M, Vinov M, Ziv A (2004) Genesys-pro: innovations in test program generation for functional processor verification. IEEE Des Test Comput 21(2):84–93
Binkert N, Dreslinski R, Hsu L, Lim K, Saidi A, Reinhardt S (2006) The M5 simulator: modeling networked systems. IEEE Micro 26(4):52–60
Chen X, Yang Y, Delisi M, Gopalakrishnan G, Chou C-T (2007) Hierarchical cache coherence protocol verification one level at a time through assume guarantee. In: Proceedings of HLVDT, pp 107–114
Dill D, Drexler A, Hu A, Yang C (1992) Protocol verification as a hardware design aid. In: Proceedings of international conference on computer design, pp 522–525
Edmonds J, Johnson EL (1973) Matching, Euler tours, and the Chinese postman. Math Program 5:88–124
Emerson E, Kahlon V (2003) Exact and efficient verification of parameterized cache coherence protocols. In: Proceedings of IFIP WG 10.5 advanced research working conference on correct hardware design and verification methods, vol 2860, pp 247–262
Hennessy J, Patterson D (2003) Computer Architecture: a quantitative approach. Morgan Kaufmann Publishers, San Francisco
Qin X, Mishra P (2012) Automated generation of directed tests for transition coverage in cache coherence protocols. In: Proceedings of the conference on design, automation and test in Europe, pp 3–8
Wagner I, Bertacco V (2008) Mcjammer: adaptive verification for multi-core designs. In: Proceedings of the conference on design, automation and test in Europe, pp 670–675
Wood D, Gibson G, Katz R (1990) Verifying a multiprocessor cache controller using random test generation. IEEE Des Test Comput 7(4):13–25
Zhange M, Lebeck A, Sorin D (2010) Fractal coherence: scalably verifiable cache coherence. In: Proceedings of MICRO, pp 471–482
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2013 Springer Science+Business Media New York
About this chapter
Cite this chapter
Chen, M., Qin, X., Koo, HM., Mishra, P. (2013). Test Generation for Cache Coherence Validation. In: System-Level Validation. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-1359-2_11
Download citation
DOI: https://doi.org/10.1007/978-1-4614-1359-2_11
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4614-1358-5
Online ISBN: 978-1-4614-1359-2
eBook Packages: EngineeringEngineering (R0)