Skip to main content

Test Generation for Cache Coherence Validation

  • Chapter
  • First Online:
System-Level Validation
  • 1125 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 119.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    In this chapter, we use the term “core” to refer to each single processing units in multicore or multiprocessor systems.

  2. 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. 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. 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

  1. 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

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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

    Article  Google Scholar 

  4. 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

    Google Scholar 

  5. 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

    Google Scholar 

  6. Edmonds J, Johnson EL (1973) Matching, Euler tours, and the Chinese postman. Math Program 5:88–124

    Article  MathSciNet  MATH  Google Scholar 

  7. 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

    Google Scholar 

  8. Hennessy J, Patterson D (2003) Computer Architecture: a quantitative approach. Morgan Kaufmann Publishers, San Francisco

    Google Scholar 

  9. 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

    Google Scholar 

  10. 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

    Google Scholar 

  11. Wood D, Gibson G, Katz R (1990) Verifying a multiprocessor cache controller using random test generation. IEEE Des Test Comput 7(4):13–25

    Google Scholar 

  12. Zhange M, Lebeck A, Sorin D (2010) Fractal coherence: scalably verifiable cache coherence. In: Proceedings of MICRO, pp 471–482

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mingsong Chen .

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics