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.
- Advanced Micro Devices. Revision Guide for AMD Athlon64 and AMD Opteron Processors. Publication 25759, Revision 3.59, Sept. 2006.Google Scholar
- S. V. Adve and K. Gharachorloo. Shared Memory Consistency Models: A Tutorial. IEEE Computer, 29(12):66--76, Dec. 1996. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- AMD. Revision Guide for AMD Family 10h Processors. Technical Report 41322, Sept. 2008.Google Scholar
- AMD. Revision Guide for AMD Family 11h Processors. Technical Report 41788, July 2008.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Blum and S. Kannan. Designing Programs that Check Their Work. In ACM Symposium on Theory of Computing, pages 86--97, May 1989. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, fourth edition, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- IBM. IBM PowerPC 750FX and 750FL RISC Microprocessor Errata List DD2.X, version 1.3, Feb. 2006.Google Scholar
- Intel Corporation. A Formal Specification of Intel Itanium Processor Family Memory Ordering, Oct. 2002.Google Scholar
- Intel Corporation. Intel Pentium 4 Processor Specification Update. Document Number 249199-065, June 2006.Google Scholar
- Intel Corporation. Intel Core Duo Processor and Intel Core Solo Processor on 65nm Process Specification Update. Technical Report 309222-016, Feb. 2007.Google Scholar
- 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 Scholar
- L. Lamport. Time, Clocks and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7):558--565, July 1978. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- P. S. Magnusson et al. Simics: A Full System Simulation Platform. IEEE Computer, 35(2):50--58, Feb. 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. M. Martin et al. Multifacet's General Execution-driven Multiprocessor Simulator (GEMS) Toolset. Computer Architecture News, 33(4):92--99, Sept. 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- S. Narayanasamy, B. Carneal, and B. Calder. Patching Processor Design Errors. In Proc. of the Int'l Conference on Computer Design, Oct. 2006.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- P. J. Teller. Translation-Lookaside Buffer Consistency. IEEE Computer, 23(6):26--36, June 1990. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- D. L. Weaver and T. Germond, eds. SPARC Architecture Manual (Version 9). PTR Prentice Hall, 1994. Google Scholar
Digital Library
- A. Wolfe. AMD's Quad-Core Barcelona Bug Revealed. InformationWeek, December 11 2007.Google Scholar
Index Terms
Specifying and dynamically verifying address translation-aware memory consistency
Recommendations
Specifying and dynamically verifying address translation-aware memory consistency
ASPLOS XV: Proceedings of the fifteenth International Conference on Architectural support for programming languages and operating systemsComputer 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 ...
Specifying and dynamically verifying address translation-aware memory consistency
ASPLOS '10Computer 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 ...
Address Translation Aware Memory Consistency
Computer systems with virtual memory are susceptible to design bugs and runtime faults in their address translation systems. Detecting bugs and faults requires a clear specification of correct behavior. A new framework for address translation aware ...







Comments