Verifying a Multiprocessor Cache Controller Using Random Case Generalization
David A. Wood and Garth A. Gibson and Randy H. Katz
EECS Department, University of California, Berkeley
Technical Report No. UCB/CSD-89-490
, 1989
http://www2.eecs.berkeley.edu/Pubs/TechRpts/1989/CSD-89-490.pdf
The newest generation of cache controller chips provide coherency to support multiprocessor systems, i.e., the controllers coordinate access to the cache memories to guarantee a single global view of memory. The cache coherency protocols they implement complicate the controller design, making design verification difficult. In the design of the cache controller for SPUR, a shared memory multiprocessor designed and built at U.C. Berkeley, we developed a random tester to generate and verify the complex interactions between multiple processors in the functional simulation. Replacing the CPU model, the tester generates memory references by randomly selecting from a script of actions and checks. The checks verify correct completion of their corresponding actions. The tester was easy to develop, and detected over half of the functional bugs uncovered during simulation. We used an assembly language version of the random tester to verify the prototype hardware. A multiprocessor system is operational; it runs the Sprite operating system and is being used for experiments in parallel programming.
BibTeX citation:
@techreport{Wood:CSD-89-490, Author= {Wood, David A. and Gibson, Garth A. and Katz, Randy H.}, Title= {Verifying a Multiprocessor Cache Controller Using Random Case Generalization}, Year= {1989}, Month= {Jan}, Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/1989/6169.html}, Number= {UCB/CSD-89-490}, Abstract= {The newest generation of cache controller chips provide coherency to support multiprocessor systems, i.e., the controllers coordinate access to the cache memories to guarantee a single global view of memory. The cache coherency protocols they implement complicate the controller design, making design verification difficult. In the design of the cache controller for SPUR, a shared memory multiprocessor designed and built at U.C. Berkeley, we developed a random tester to generate and verify the complex interactions between multiple processors in the functional simulation. Replacing the CPU model, the tester generates memory references by randomly selecting from a script of actions and checks. The checks verify correct completion of their corresponding actions. The tester was easy to develop, and detected over half of the functional bugs uncovered during simulation. We used an assembly language version of the random tester to verify the prototype hardware. A multiprocessor system is operational; it runs the Sprite operating system and is being used for experiments in parallel programming.}, }
EndNote citation:
%0 Report %A Wood, David A. %A Gibson, Garth A. %A Katz, Randy H. %T Verifying a Multiprocessor Cache Controller Using Random Case Generalization %I EECS Department, University of California, Berkeley %D 1989 %@ UCB/CSD-89-490 %U http://www2.eecs.berkeley.edu/Pubs/TechRpts/1989/6169.html %F Wood:CSD-89-490