This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Information-Flow Models for Shared Memory with an Application to the PowerPC Architecture
May 2003 (vol. 14 no. 5)
pp. 502-515

Abstract—This paper introduces a generic framework for defining instructions, programs, and the semantics of their instantiation by operations in a multiprocessor environment. The framework captures information flow between operations in a multiprocessor program by means of a reads-from mapping from read operations to write operations. Two fundamental relations are defined on the operations: a program order between operations which instantiate the program of some processor and view orders which are specific to each shared memory model. An operation cannot read from the “hidden”past or from the future; the future and the past causality can be examined either relative to the program order or relative to the view orders. A shared memory model specifies, for a given program, the permissible transformation of resource states. The memory model should reflect the programmer's view by citing the guaranteed behavior of the multiprocessor in the interface visible to the programmer. The model should refrain from dictating the design practices that should be followed by the implementation. Our framework allows an architect to reveal the programming view induced by a shared-memory architecture; it serves programmers exploring the limits of the programming interface and guides architecture-level verification. The framework is applicable for complex, commercial architectures as it can capture subtle programming-interface details, exposing the underlying aggressive microarchitecture mechanisms. As an illustration, we define the shared memory model supported by the PowerPC architecture, within our framework.

[1] Enterprise Systems Architecture/390 Principles of Operation, IBM Corp., publication number SA22-7201-0, Oct. 1990.
[2] S.V. Adve, Designing Memory Consistency Models for Shared Memory Multiprocessors, doctoral dissertation, CS Dept., Univ. Wisconsin-Madison, Nov. 1993.
[3] S. Adve and M. Hill, “Weak Ordering—A New Definition,” Proc. 17th Ann. Int'l Symp. Computer Architecture, May 1990.
[4] S.V. Adve, V.S. Pai, and P. Ranganathan, “Recent Advances in Memory Consistency Models for Hardware Shared Memory Systems,” Proc. IEEE, vol. 87, no. 3, pp. 445-455, 1999.
[5] S.V. Adve and M.D. Hill,“A unified formalization of four shared-memory models,” IEEE Trans. on Parallel and Distributed Systems, vol. 4, no. 6, pp. 613-624, June 1993.
[6] J. Archibald and J.L. Baer, "Cache Coherence Protocols: Evaluation Using a Multiprocessor Simulation Model," ACM Trans. Computer Systems, vol. 4, no. 4, Nov. 1986.
[7] H. Attiya, S. Chaudhuri, R. Friedman, and J. Welch, “Shared Memory Consistency Conditions for Non-Sequential Execution: Definitions and Programming Strategies,” SIAM J. Computing, vol. 27, no. 1, pp. 65-89, Feb. 1998.
[8] H. Attiya and R. Friedman., “Programming DEC-Alpha Based Multiprocessors the Easy Way,” Proc. Sixth ACM Symp. Parallel Algorithms and Architectures, pp. 157–166, 1990.
[9] W.W. Collier, Reasoning About Parallel Architectures. Prentice Hall, 1992.
[10] F. Corella, J.M. Stone, and C.M. Barton, “A Formal Specification of the PowerPC Shared Memory Architecture,” Technical Report 18638 (81566), IBM Research Division, T.J. Watson Research Center, 1993.
[11] R. Cypher, Example of a PowerPC Execution that Violates the Intended Function of the Sync Command, manuscript, Oct. 1995.
[12] M. Dubois and C. Scheurich, "Memory Access Dependencies in Shared-Memory Multiprocessors," IEEE Trans. Computers, vol. 16, no. 6, pp. 660-673, June 1990.
[13] K. Gharachorloo, Memory Consistency Models for Shared Memory Multiprocessors, doctoral dissertation, Computer Systems Laboratory, Stanford University, Stanford Calif. Dec. 1995.
[14] K. Gharchorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy, "Memory consistency and event ordering in scalable shared memory multiprocessors," Proc. 17th Ann. Int'l Symp. Computer Architecture, May 1990.
[15] P.B. Gibbons, M. Merritt, and K. Gharachorloo, “Proving Sequential Consistency of High-Performance Shared Memories,” Proc. Third ACM Symp. Parallel Algorithms and Architectures, pp. 292-303, July 1991.
[16] M.D. Hill, “Multiprocessors Should Support Simple Memory-Consistency Models,” Computer, vol. 31, no. 8, pp. 28-34, Aug. 1998.
[17] L. Lamport, “How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs,” IEEE Trans. Computers, vol. 28, no. 9, Sept. 1979.
[18] The PowerPC Architecture, C. May, E. Silha, R. Simpson, and H. Warren, eds. Morgan Kaufmann, 1994.
[19] X. Shen, Arvind , and L. Rudolph, “Commit-Reconcile&Fences (CRF): A New Memory Model for Architects and Compiler Writers,” Proc. 26th Int'l Symp. Computer Architecture, pp. 150-161, 1999.
[20] Alpha Architecture Reference Manual, R. Site, ed. Digital Equipment Corp., 1992.
[21] J.M. Stone, “A Program that Distinguishes between the IBM PowerPC and the DEC Alpha Memory Models,” Technical Report 19159 (83451), IBM Research Division, T.J. Watson Research Center, 1993.

Index Terms:
Shared memory, multiprocessor systems, PowerPC architecture, models, specification, consistency, synchronization instructions, out-of-order execution.
Citation:
Allon Adir, Hagit Attiya, Gil Shurek, "Information-Flow Models for Shared Memory with an Application to the PowerPC Architecture," IEEE Transactions on Parallel and Distributed Systems, vol. 14, no. 5, pp. 502-515, May 2003, doi:10.1109/TPDS.2003.1199067
Usage of this product signifies your acceptance of the Terms of Use.