Verification of chip multiprocessor memory systems using a relaxed scoreboard

  • Authors:
  • Ofer Shacham;Megan Wachs;Alex Solomatnikov;Amin Firoozshahian;Stephen Richardson;Mark Horowitz

  • Affiliations:
  • Department of Electrical Engineering, Stanford University, California, USA;Department of Electrical Engineering, Stanford University, California, USA;Department of Electrical Engineering, Stanford University, California, USA;Department of Electrical Engineering, Stanford University, California, USA;Department of Electrical Engineering, Stanford University, California, USA;Department of Electrical Engineering, Stanford University, California, USA

  • Venue:
  • Proceedings of the 41st annual IEEE/ACM International Symposium on Microarchitecture
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

Verification of chip multiprocessor memory systems remains challenging. While formal methods have been used to validate protocols, simulation is still the dominant method used to validate memory system implementation. Having a memory scoreboard, a high-level model of the memory, greatly aids simulation based validation, but accurate score-boards are complex to create since often they depend not only on the memory and consistency model but also on its specific implementation. This paper describes a methodology of using a relaxed scoreboard, which greatly reduces the complexity of creating these memory models. The relaxed scoreboard tracks the operations of the system to maintain a set of values that could possibly be valid for each memory location. By allowing multiple possible values, the model used in the scoreboard is only loosely coupled with the specific design, which decouples the construction of the checker from the implementation, allowing the checker to be used early in the design and to be built up incrementally, and greatly reduces the scoreboard design effort. We demonstrate the use of the relaxed scoreboard in verifying RTL implementations of two different memory models, Transactional Coherency and Consistency (TCC) and Relaxed Consistency, for up to 32 processors. The resulting checker has a performance slowdown of 19% for checking Relaxed Consistency, and less than 30% for TCC, allowing it to be used in all simulation runs.