Claims
- 1. A shared memory symmetrical processing system, comprising:
a plurality of nodes each having a system control element for routing intemodal communications; a first ring and a second ring for interconnecting said plurality of nodes, wherein data in said first ring flows in opposite directions with respect to said second ring, wherein each of said plurality of nodes comprising any combination of the following: at least one processor; cache memory; a plurality of I/O adapters; and main memory; and wherein said system control element comprises a plurality of controllers for maintaining coherency in the system.
- 2. The shared memory symmetrical processing system as in claim 1, wherein said system control element of each of said plurality of nodes comprises a pair of latches for determining which response is to be generated on said first ring and said second ring, wherein said response indicates that requested data exists in one of two states which may prevent an operation from altering the state of said requested data, said pair of latches are configured to compare the address of an incoming operation to the address of local and remote controllers on each of said plurality of nodes.
- 3. The shared memory symmetrical processing system as in claim 2, wherein each of said pair of latches receive a first compared response from a first plurality of local address latches and a first plurality of local address latches and a second compared response from a second plurality of remote address latches and a second plurality of remote address latches for determining whether to generate said response.
- 4. The shared memory symmetrical processing system as in claim 3, wherein said response is either an IM Reject response or an MM Reject response.
- 5. The shared memory symmetrical processing system as in claim 4, further comprising a FIFO Queue for driving outbound response logic on said first ring or said second ring.
- 6. A method for maintaining cache coherency in a symmetrical multiprocessing environment, comprising:
providing a plurality of nodes each being able to communicate with each other via a ring based topology comprising one or more communication paths between each of said plurality of nodes, each of said plurality of nodes comprising a plurality of processors, cache memory, a plurality of I/O adapters, a plurality of local and remote controllers to perform cache coherent actions, and a main memory accessible from each of said plurality of nodes; establishing and maintaining Intervention Master (IM) and Memory Master (MM) system level coherency points that permit memory and caches within each of said plurality of nodes to act as a single cohesive system image; establishing an Intervention Master (IM) cache ownership state and a Multi-Copy (MC) cache ownership state for data within said symmetrical multiprocessing environment; using said Intervention Master (IM) cache ownership state and said Multi-Copy (MC) cache ownership state with other cache states, such as, Exclusive, Read-Only and Invalid to maintain coherency in the symmetrical multiprocessing environment; and determining a location on one of said plurality of nodes to source data therefrom, said location being based on said system level coherency points coupled with local cache states of at least one of said plurality of nodes.
- 7. The method as in claim 6, further comprising:
employing said Intervention Master (IM) coherency point to determine a coherency arbitration master of cached data; employing a Memory Master (MM) coherency point to determine said coherency arbitration master of memory data; prioritizing said Intervention Master (IM) coherency point over said Memory Master(MM) coherency point to permit data to be sourced from a node's cache instead of main memory.
- 8. The method as in claim 6, further comprising:
employing said Intervention Master (IM) cache ownership state to determine if a cached copy corresponding to said (IM) cache ownership state is to be provided; employing said Multi-Copy (MC) cache ownership state to determine if multi-nodal interrogation is required in response to an Exclusive Fetch request for data having an address corresponding to said Multi-Copy cache ownership state; combining said Intervention Master (IM) cache ownership state and said Multi-Copy (MC) cache ownership state to determine whether fetch operations require data movement or directory update actions.
- 9. The method as in claim 8, wherein data having an address corresponding to a positive Intervention Master (IM) cache ownership state can only exist in one of said plurality of nodes.
- 10. The method as in claim 9, wherein said data having an address corresponding to a positive Intervention Master (IM) cache ownership state is the sole copy cached, while additional copies of said data are permitted to exist in other remote caches having a negative Intervention Master (IM) cache ownership state and a positive Multi-Copy (MC) cache ownership state.
- 11. The method as in claim 10, wherein a copy of said data having an address corresponding to a positive Intervention Master (IM) and a negative Multi-Copy (MC) cache ownership state can be modified.
- 12. The method as in claim 10, wherein a copy of said data corresponding to an address having a positive Intervention Master (IM) cache ownership state exists in a Changed status, said Changed status of said data being different from a memory copy of said data.
- 13. The method as in claim 6, wherein said ring based topology comprises a pair of rings for providing said one or more communication paths between each of said plurality of nodes wherein one of said pair of rings transmits information in a direction opposite to the other one of said pair of rings, further comprising:
transmitting a first and a second message around said ring topology, wherein said first and second messages require remote controllers to perform a cache coherency action.
- 14. The method as in claim 6, wherein said Intervention Master (IM) cache ownership state is employed to establish said Intervention Master (IM) coherency point.
- 15. The method as in claim 6, wherein address location of said Main Memory is employed to establish said Memory Master (MM) coherency point.
- 16. The method as in claim 6, wherein an Intervention Master (IM) Pending status may be activated on one of said plurality of nodes after receipt of an incoming message under one or more of the following conditions:
observance of a local Intervention Master IM coherency point during processing of an incoming ring operation; receipt of an incoming message indicating data exists in a positive Intervention Master IM cache ownership state on one of said plurality of nodes; receipt of an incoming message indicating memory data is in transit; receipt of an incoming second message for a Read-Only Invalidate operation wherein neither said first nor said second messages convey any form of a reject response; receipt of an incoming LRU Write-back operation accompanied by data on one of said plurality of nodes other than a Memory Master (MM) node of said plurality of nodes; receipt of an incoming LRU Write-back operation with or without accompanying data on said Memory Master (MM) node; receipt of incoming first and second messages on said Memory Master (MM) node for a fetch operation in which a cumulative response is Read-Only Hit, Miss or No Status; launching of a Read-Only Invalidate operation and observance of a local Intervention Master IM coherency point.
- 17. The method as in claim 6, wherein a Memory Master (MM) Pending status may be activated on one of said plurality of nodes under one or more of the following conditions:
upon receipt of an incoming message on said ring based topology and observance of a local Memory Master MM coherency point during processing of an operation related to said incoming message; launching of first and second messages on said ring based topology and observance of a local Memory Master MM coherency point.
- 18. The method as in claim 16, wherein said ring based topology comprises a pair of rings for providing said one or more communication paths between each of said plurality of nodes wherein one of said pair of rings transmits information in a direction opposite to the other one of said pair of rings, further comprising:
transmitting a first and a second message around said ring topology, wherein said first and second messages require remote controllers to perform a cache coherency action wherein said first and/or said second messages activate said Intervention Master (IM) Pending status and a Memory Master(MM) Pending status and said first and/or said second messages observe existing said Intervention Master (IM) Pending status and said existing Memory Master(MM) Pending status to establish and maintain multi-nodal system level coherency.
- 19. The method as in claim 6, further comprising:
employing an IM Pending Address interlock when an incoming ring address on one of said plurality of nodes is compared against remote operations currently having said Intervention Master (IM) coherency point; and sending an IM Reject response corresponding to said incoming operation on said ring based topology.
- 20. The method as in claim 7, further comprising:
employing an MM Pending Address interlock when an incoming ring address on one of said plurality of nodes is compared against remote operations currently having said Memory Master (MM) coherency point; and sending an MM Reject response corresponding to said incoming operation on said ring based topology.
- 21. The method as in claim 6, further comprising:
employing a Message Ordering Address interlock which guarantees that first messages acting on shared (common) addresses leave any one of said plurality of nodes in the same order in which they arrived.
- 22. The method as in claim 21, wherein said Message Ordering Address interlock establishes FIFO queues to permit a plurality of simultaneous Message Ordering interlocks to track a plurality of remote controllers acting on a multitude of shared (common) addresses.
- 23. The method as in claim 6, further comprising:
receiving an incoming second message within one of said plurality of nodes from bus snooping actions, merging an incoming second message response with said outgoing first message response to provide a cumulatively merged response; applying a response order priority to said cumulatively merged response to generate a final outgoing second message response, wherein said response order priority orders said final outgoing responses as follows: (1) IM Hit; (2) IM Reject; (3) MM Reject; (4) Memory Data; (5) Read Only Hit; (6) Normal Completion; (7) Miss; and (8) No Status.
- 24. The method as in claim 7, wherein data is sourced to one of said plurality of nodes by employing an LRU Write-back of aged out cache data to said main memory and said LRU Write-back of aged out cache data is only performed on said master copy of the cached data determined by said Intervention Master (IM) cache ownership state.
- 25. The method as in claim 24, further comprising:
allowing said data corresponding to said LRU Write-back to bypass address interlocks on any one of said plurality of nodes processing data corresponding to said LRU Write-back.
- 26. The method as in claim 6, wherein multiple copies of data may exist in said cache memory of the symmetrical multiprocessing environment, further comprising:
designating one copy of said multiple copies of data as an Intervention Master (IM) copy; and permitting said one copy to be cached in any one of said plurality of nodes.
- 27. The method as in claim 26, further comprising:
permitting data corresponding to said multiple copies to be cached in any one of said plurality of nodes wherein a Changed status may exist with said IM cache ownership state; permitting said data in said Changed status to relocate from one copy of cached data on one of said plurality of nodes to another one of said plurality of nodes, wherein said data in said Changed status having a positive IM cache ownership state.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to United States Patent Application, entitled: BUS PROTOCOL FOR A “SWITCHLESS” DISTRIBUTED SHARED MEMORY COMPUTER SYSTEM, attorney docket number POU920030056 filed contemporaneously with this application.
[0002] This application is also related to United States Patent Application, entitled: TOPOLOGY FOR SHARED MEMORY COMPUTER SYSTEM, attorney docket number POU920030055 filed contemporaneously with this application.
[0003] These co-pending applications and the present application are owned by one and the same assignee, International Business Machines Corporation of Armonk, N.Y.
[0004] The descriptions set forth in these co-pending applications are hereby incorporated into the present application by this reference.
[0005] Trademarks: IBM ® is a registered trademark of International Business Machines Corporation, Armonk, N.Y., U.S.A. Other names may be registered trademarks or product names of International Business Machines Corporation or other companies.