Multiprocessor cache coherence directed by combined local and global tables
First Claim
1. A method for maintaining cache coherence in a tightly coupled multiprocessor system having a plurality of nodes coupled to an interconnecting bus and storing portions of shared data, each node having a cache, a local coherence unit, a memory device and a processor device, the memory and processor device being coupled to form a memory/processor pair, the processor device within each node being capable of accessing data from the local memory device, the local cache, or over the interconnecting bus, from a non-local memory device, or a non-local cache, the method including the steps of:
- (a) checking a local coherence unit to determine with a single data entry in a table whether a most current copy of a requested portion of data is stored locally, in response to a request by a requesting processor associated with that local coherence unit for the requested portion of data;
(b) if the most current copy of the requested portion of data is not stored locally, then checking a global coherence unit to determine in which node the most current copy of the requested portion of data is stored for addresses of the requested data;
(c) sending a message to the requesting node from the global coherence unit indicating in which node the most current copy of the requested data is stored;
(d) sending a request to transfer data from the requesting node to the node in which the most current copy of the requested data is stored; and
(e) transferring to the requesting node, in response to the request to transfer, the most current copy of the requested data.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for maintaining coherence between shared data stored within a plurality of memory devices, each memory device residing in a different node within a tightly coupled multiprocessor system. Each node includes a "local coherence unit" and an associated processor. A cache unit is associated with each memory/processor pair. Each local coherence unit maintains a table which indicates whether the most current copy of data stored within the node resides in the local memory, in the local cache, or in a non-local cache. The present invention includes a "global coherence" unit coupled to each node via the logical interconnect. The global coherence unit includes a interconnect monitoring device and a global coherence table. When data which resides within the memory of a first node is transferred to a second node, the interconnect monitoring device updates the global coherence table to indicate that the data is being shared. The global coherence table also preferably indicates in which node a copy of the most current data resides.
-
Citations
6 Claims
-
1. A method for maintaining cache coherence in a tightly coupled multiprocessor system having a plurality of nodes coupled to an interconnecting bus and storing portions of shared data, each node having a cache, a local coherence unit, a memory device and a processor device, the memory and processor device being coupled to form a memory/processor pair, the processor device within each node being capable of accessing data from the local memory device, the local cache, or over the interconnecting bus, from a non-local memory device, or a non-local cache, the method including the steps of:
-
(a) checking a local coherence unit to determine with a single data entry in a table whether a most current copy of a requested portion of data is stored locally, in response to a request by a requesting processor associated with that local coherence unit for the requested portion of data; (b) if the most current copy of the requested portion of data is not stored locally, then checking a global coherence unit to determine in which node the most current copy of the requested portion of data is stored for addresses of the requested data; (c) sending a message to the requesting node from the global coherence unit indicating in which node the most current copy of the requested data is stored; (d) sending a request to transfer data from the requesting node to the node in which the most current copy of the requested data is stored; and (e) transferring to the requesting node, in response to the request to transfer, the most current copy of the requested data.
-
-
2. A method for maintaining cache coherence in a tightly coupled multiprocessor system having a plurality of nodes coupled to an interconnecting bus and storing portions of shared data, each node having a cache, a local coherence unit, a memory device and a processor device, the memory and processor device being coupled to form a memory/processor pair, the processor device within each node being capable of accessing data from the local memory device, the local cache, or over the interconnecting bus, from a non-local memory device, or a non-local cache, the method including the steps of:
-
(a) checking a local coherence unit to determine with a single data entry in a table whether a most current copy of a requested portion of data is stored locally, in response to a request by a requesting processor associated with that local coherence unit for the requested portion of data; (b) if the most current copy of the requested portion of data is not stored locally, then checking a global coherence unit to determine in which node the most current copy of the requested portion of data is stored for addresses of the requested data; (c) sending a request from the global coherence unit to the node in which the most current copy of the data is stored to transfer the most current copy of the requested portion of the data to the requesting node; and (d) sending, in response to the global coherence unit request, the most recent copy of the requested data to the requesting node. - View Dependent Claims (3)
-
-
4. A method for maintaining cache coherence in a tightly coupled multiprocessor system having a plurality of nodes coupled to an interconnecting bus and storing portions of shared data, each node being capable of accessing data from the local memory device, the local cache, or over the interconnecting bus, from a non-local memory device, or a non-local cache, the method including the steps of:
-
(a) writing new data to a local cache within a first node having a cache, a local coherence unit, a memory device and a processor device, the memory device and processor device being coupled to form a memory/processor pair; (b) updating a table of the local coherence unit within the first node to indicate with a single data entry that the most current copy of the data is stored in the local cache within the first node; and (c) updating the global coherence unit to indicate that the most current copy of the data is stored in the local cache within the first node for addresses of the shared data. - View Dependent Claims (5)
-
-
6. A method for maintaining cache coherence in a tightly coupled multiprocessor system having a plurality of nodes coupled to an interconnecting bus and storing portions of shared data, each node being capable of accessing data from the local memory device, the local cache, or over the interconnecting bus, from a non-local memory or a non-local cache, the method including the steps of:
-
(a) writing new data to a local cache within a first node having a cache, a local coherence unit, a memory device, and a processor device, the memory device and processor device being coupled to form a memory/processor pair; (b) checking a single data entry of a table maintained in the node to determine whether the most current copy of the data is in the local cache; (c) if the most current copy of the data is not in the local cache, then checking the same data entry to determine whether the local coherence unit indicates that the most current copy of the data is in the local memory; (d) if the most current copy of the data is not in the local memory, then updating a global coherence unit that stores data addresses of the shared data and updating the local coherence unit to indicate that the local cache has the most current copy of the data; and (e) if the most current copy of the data is in the local memory, then updating the local coherence unit to indicate that the most current copy of the data is in the local cache.
-
Specification