skip to main content
research-article

Specifying and dynamically verifying address translation-aware memory consistency

Published:13 March 2010Publication History
Skip Abstract Section

Abstract

Computer systems with virtual memory are susceptible to design bugs and runtime faults in their address translation (AT) systems. Detecting bugs and faults requires a clear specification of correct behavior. To address this need, we develop a framework for AT-aware memory consistency models. We expand and divide memory consistency into the physical address memory consistency (PAMC) model that defines the behavior of operations on physical addresses and the virtual address memory consistency (VAMC) model that defines the behavior of operations on virtual addresses. As part of this expansion, we show what AT features are required to bridge the gap between PAMC and VAMC. Based on our AT-aware memory consistency specifications, we design efficient dynamic verification hardware that can detect violations of VAMC and thus detect the effects of design bugs and runtime faults, including most AT related bugs in published errata.

References

  1. Advanced Micro Devices. Revision Guide for AMD Athlon64 and AMD Opteron Processors. Publication 25759, Revision 3.59, Sept. 2006.Google ScholarGoogle Scholar
  2. S. V. Adve and K. Gharachorloo. Shared Memory Consistency Models: A Tutorial. IEEE Computer, 29(12):66--76, Dec. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. V. Adve, V. S. Pai, and P. Ranganathan. Recent Advances in Memory Consistency Models for Hardware Shared Memory Systems. Proc. of the IEEE, 87(3):445--455, Mar. 1999.Google ScholarGoogle ScholarCross RefCross Ref
  4. AMD. Revision Guide for AMD Family 10h Processors. Technical Report 41322, Sept. 2008.Google ScholarGoogle Scholar
  5. AMD. Revision Guide for AMD Family 11h Processors. Technical Report 41788, July 2008.Google ScholarGoogle Scholar
  6. Arvind and J.-W. Maessen. Memory Model = Instruction Reordering + Store Atomicity. In Proc. of the 33rd Annual Int'l Symposium on Computer Architecture, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. M. Austin. DIVA: A Reliable Substrate for Deep Submicron Microarchitecture Design. In Proc. of the 32nd Annual IEEE/ACM Int'l Symposium on Microarchitecture, pages 196--207, Nov. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Blum and S. Kannan. Designing Programs that Check Their Work. In ACM Symposium on Theory of Computing, pages 86--97, May 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H.-J. Boehm and S. V. Adve. Foundations of the C++ Concurrency Memory Model. In Proc. of the Conference on Programming Language Design and Implementation, June 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. H. W. Cain and M. H. Lipasti. Verifying Sequential Consistency Using Vector Clocks. In Revue in conjunction with Symposium on Parallel Algorithms and Architectures, Aug. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. F. Cantin, M. H. Lipasti, and J. E. Smith. Dynamic Verification of Cache Coherence Protocols. In Workshop on Memory Performance Issues, June 2001.Google ScholarGoogle Scholar
  12. K. Chen, S. Malik, and P. Patra. Runtime Validation of Memory Ordering Using Constraint Graph Checking. In Proc. of the Thirteenth Int'l Symposium on High-Performance Computer Architecture, Feb. 2008.Google ScholarGoogle ScholarCross RefCross Ref
  13. K. Chen, S. Malik, and P. Patra. Runtime Validation of Transactional Memory Systems. In Proc. of the Int'l Symposium on Quality Electronic Design, Mar. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, fourth edition, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. D. Hill, A. E. Condon, M. Plakal, and D. J. Sorin. A System-Level Specification Framework for I/O Architectures. In Proc. of the Eleventh ACM Symposium on Parallel Algorithms and Architectures, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. IBM. IBM PowerPC 750FX and 750FL RISC Microprocessor Errata List DD2.X, version 1.3, Feb. 2006.Google ScholarGoogle Scholar
  17. Intel Corporation. A Formal Specification of Intel Itanium Processor Family Memory Ordering, Oct. 2002.Google ScholarGoogle Scholar
  18. Intel Corporation. Intel Pentium 4 Processor Specification Update. Document Number 249199-065, June 2006.Google ScholarGoogle Scholar
  19. Intel Corporation. Intel Core Duo Processor and Intel Core Solo Processor on 65nm Process Specification Update. Technical Report 309222-016, Feb. 2007.Google ScholarGoogle Scholar
  20. Intel Corporation. Intel Core2 Extreme Quad-Core Processor QX6000 Seuqnce and Intel Core2 Quad Processor Q6000 Seuqnece Specification Update. Technical Report 315593-021, Feb. 2008.Google ScholarGoogle Scholar
  21. L. Lamport. Time, Clocks and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7):558--565, July 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Lamport. How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs. IEEE Trans. on Computers, C-28(9):690--691, Sept. 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M.-L. Li et al. Understanding the Propagation of Hard Errors to Software and Implications for Resilient System Design. In Proc. of the Thirteenth Int'l Conference on Architectural Support for Programming Languages and Operating Systems, Mar. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P. S. Magnusson et al. Simics: A Full System Simulation Platform. IEEE Computer, 35(2):50--58, Feb. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Manson, W. Pugh, and S. V. Adve. The Java Memory Model. In Proc. of the 32nd Symposium on Principles of Programming Languages, Jan. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. M. Martin et al. Multifacet's General Execution-driven Multiprocessor Simulator (GEMS) Toolset. Computer Architecture News, 33(4):92--99, Sept. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. M. K. Martin, M. D. Hill, and D. A. Wood. Token Coherence: Decoupling Performance and Correctness. In Proc. of the 30th Annual Int'l Symposium on Computer Architecture, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Meixner, M. E. Bauer, and D. J. Sorin. Argus: Low-Cost, Comprehensive Error Detection in Simple Cores. In Proc. of the 40th Annual Int'l Symposium on Microarchitecture, Dec. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A. Meixner and D. J. Sorin. Dynamic Verification of Sequential Consistency. In Proc. of the 32nd Annual Int'l Symposium on Computer Architecture, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Meixner and D. J. Sorin. Dynamic Verification of Memory Consistency in Cache-Coherent Multithreaded Computer Architectures. In Proc. of the Int'l Conference on Dependable Systems and Networks, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. Meixner and D. J. Sorin. Error Detection via Online Checking of Cache Coherence with Token Coherence Signatures. In Proc. of the Twelfth Int'l Symposium on High-Performance Computer Architecture, Feb. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Narayanasamy, B. Carneal, and B. Calder. Patching Processor Design Errors. In Proc. of the Int'l Conference on Computer Design, Oct. 2006.Google ScholarGoogle ScholarCross RefCross Ref
  33. M. Prvulovic, Z. Zhang, and J. Torrellas. ReVive: Cost-Effective Architectural Support for Rollback Recovery in Shared-Memory Multiprocessors. In Proc. 29th Annual Int'l Symposium on Computer Architecture, May 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. V. K. Reddy and E. Rotenberg. Coverage of a Microarchitecture-level Fault Check Regimen in a Superscalar Processor. In Proc. of the Int'l Conference on Dependable Systems and Networks, June 2008.Google ScholarGoogle ScholarCross RefCross Ref
  35. B. F. Romanescu, A. R. Lebeck, D. J. Sorin, and A. Bracy. UNified Instruction/Translation/Data (UNITD) Coherence: One Protocol to Rule Them All. In Proc. Fifteenth Int'l Symposium on High-Performance Computer Architecture, Jan. 2010.Google ScholarGoogle ScholarCross RefCross Ref
  36. S. Sarangi, A. Tiwari, and J. Torrellas. Phoenix: Detecting and Recovering from Permanent Processor Design Bugs with Programmable Hardware. In Proc. of the 39th Annual IEEE/ACM Int'l Symposium on Microarchitecture, Dec. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. D. J. Sorin et al. SafetyNet: Improving the Availability of Shared Memory Multiprocessors with Global Checkpoint/Recovery. In Proc. of the 29th Annual Int'l Symposium on Computer Architecture, May 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. P. J. Teller. Translation-Lookaside Buffer Consistency. IEEE Computer, 23(6):26--36, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. I. Wagner, V. Bertacco, and T. Austin. Shielding Against Design Flaws with Field Repairable Control Logic. In Proc. of the Design Automation Conference, July 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. D. L. Weaver and T. Germond, eds. SPARC Architecture Manual (Version 9). PTR Prentice Hall, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. A. Wolfe. AMD's Quad-Core Barcelona Bug Revealed. InformationWeek, December 11 2007.Google ScholarGoogle Scholar

Index Terms

  1. Specifying and dynamically verifying address translation-aware memory consistency

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGARCH Computer Architecture News
                ACM SIGARCH Computer Architecture News  Volume 38, Issue 1
                ASPLOS '10
                March 2010
                399 pages
                ISSN:0163-5964
                DOI:10.1145/1735970
                Issue’s Table of Contents
                • cover image ACM Conferences
                  ASPLOS XV: Proceedings of the fifteenth International Conference on Architectural support for programming languages and operating systems
                  March 2010
                  422 pages
                  ISBN:9781605588391
                  DOI:10.1145/1736020
                  • General Chair:
                  • James C. Hoe,
                  • Program Chair:
                  • Vikram S. Adve

                Copyright © 2010 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 13 March 2010

                Check for updates

                Qualifiers

                • research-article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!