Fast and Generalized Polynomial Time Memory Consistency Verification
The problem of verifying multi-threaded execution against the memory consistency model of a processor is known to be an NP hard problem. However polynomial time algorithms exist that detect almost all failures in such execution. These are often used in practice for microprocessor verification. We present a low complexity and fully parallelized algorithm to check program execution against the processor consistency model. In addition our algorithm is general enough to support a number of consistency models without any degradation in performance. An implementation of this algorithm is currently used in practice to verify processors in the post silicon stage for multiple architectures.
KeywordsAdjacency Matrix Consistency Model Single Instruction Multiple Data Apply Rule Device Under Test
Unable to display preview. Download preview PDF.
- 1.Hangal, S., Vahia, D., Manovit, C., Lu, J.-Y.J.: Tsotool: A program for verifying memory systems using the memory consistency model. In: ISCA 2004: Proceedings of the 31st annual international symposium on Computer architecture, Washington, DC, USA, p. 114. IEEE Computer Society, Los Alamitos (2004)CrossRefGoogle Scholar
- 2.Gibbons, P.B., Korach, E.: The complexity of sequential consistency. In: SPDP: Proceedings of the Fourth IEEE Symposium on Parallel and Distributed Processing, pp. 317–325 (1992)Google Scholar
- 4.Cantin, J.F., Lipasti, M.H., Smith, J.E.: The Complexity of Verifying Memory Coherence. In: Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures (SPAA), San Diego, pp. 254–255 (2003)Google Scholar
- 7.Gharachorloo, K., Lenoski, D., Laudon, J., Gibbons, P.B., Gupta, A., Hennessy, J.L.: Memory consistency and event ordering in scalable shared-memory multiprocessors. In: 25 Years ISCA: Retrospectives and Reprints, pp. 376–387 (1998)Google Scholar
- 8.IA-32 Intel Architecture Software Developer’s Manual, vol. 3: System Programming Guide. Intel Corporation (2005), http://www.intel.com/design/pentium4/manuals/index_new.htm
- 9.Intel Itanium Architecture, vol. 1: Application Architecture. Intel Corporation (2005), http://www.intel.com/design/itanium/manuals/iiasdmanual.htm
- 10.Cain, H.W., Lipasti, M.H., Nair, R.: Constraint graph analysis of multithreaded programs. In: PACT 2003: Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques, Washington, DC, USA, p. 4. IEEE Computer Society, Los Alamitos (2003)Google Scholar
- 12.A Formal Specification of Intel Itanium Processor Family Memory Ordering. Intel Corporation (2005), http://www.intel.com/design/itanium/downloads/251429.htm
- 14.Fleckenstein, C.J., Huang, J.C., Roy, A., Zeisset, S.: Fast and Generalized Polynomial Time Memory Consistency Verification. Technical Report arXiv:cs.AR/0605039 (May 2006)Google Scholar