Scalable directory based cache coherence protocol
AssigneeHewlett-Packard Development Company, L.P.
InventorsRichard E. Kessler, Kourosh Gharachorloo, David H. Asher
Life of this patent
Estimating the term…
Loading patent…
AssigneeHewlett-Packard Development Company, L.P.
InventorsRichard E. Kessler, Kourosh Gharachorloo, David H. Asher
Estimating the term…
A system and method is disclosed to maintain the coherence of shared data in cache and memory contained in the nodes of a multiprocessing computer system. The distributed multiprocessing computer system contains a number of processors each connected to main memory. A processor in the distributed multiprocessing computer system is identified as a Home processor for a memory block if it includes the original memory block and a coherence directory for the memory block in its main memory. An Owner processor is another processor in the multiprocessing computer system that includes a copy of the Home processor memory block in a cache connected to its main memory. Whenever an Owner processor is present for a memory block, it is the only processor in the distributed multiprocessing computer system to contain a copy of the Home processor memory block. Eviction of a memory block copy held by an Owner processor in its cache requires a write of the memory block copy to its Home and update of the corresponding coherence directory. No reads of the Home processor directory or modification of other processor cache and main memory is required. The coherence controller in each processor is able to send and receive messages out of order to maintain the coherence of the shared data in cache and main memory. If an out of order message causes an incorrect next program state, the coherence controller is able to restore the prior correct saved program state and resume execution.
A distributed multiprocessing computer system, comprising:
A distributed multiprocessing computer system, comprising:
A distributed multiprocessing computer system, comprising:
A distributed multiprocessing computer system, comprising:
A method of maintaining memory coherence in a distributed shared memory computer system including a plurality of processors, comprising the acts of:
A method of maintaining memory coherence in a distributed shared memory computer system including a plurality of processors, comprising:
A method of maintaining memory coherence in a distributed shared memory computer system including a plurality of processors, comprising the acts of:
A method of maintaining memory coherence in a distributed shared memory computer system including a plurality of processors, comprising:
A distributed multiprocessing computer system, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Backward citations are indexed for grants only.
Cache consistency protocols: using directory methods
Using directory methods: with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
Computing and data processing
Term end not estimated
Not applicable.
1. Field of the Invention
The present invention generally relates to a computer system with multiple processors. More preferably, the present invention generally relates to the sharing of data among processors in a Distributed Shared Memory (“DSM”) computer system. Still, more particularly, the invention relates to a scalable high performance directory based cache coherence protocol that allows data sharing among processors in a DSM computer system.
For a detailed description of the preferred embodiments of the invention, reference will now be made to the accompanying drawings in which:
FIG. 1 shows a system diagram of a plurality of processors coupled together;
FIGS. 2a and 2b show a block diagram of the processors of FIG. 1;
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ”. Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Referring now to FIG. 1, in accordance with the preferred embodiment of the invention, computer system 90 comprises one or more processors 100 coupled to a memory 102 and an input/output (“I/O”) controller 104. As shown, computer system 90 includes twelve processors 100, each processor coupled to a memory and an I/O controller. Each processor preferably includes four ports for connection to adjacent processors. The interprocessor ports are designated “North,” “South,” “East,” and “West” in accordance with the well-known Manhattan grid architecture also known as a crossbar interconnection network architecture. As such, each processor 100 can be connected to four other processors. The processors on both ends of the system layout wrap around and connect to processors on the opposite side to implement a 2D torus-type connection. Although twelve processors 100 are shown in the exemplary embodiment of FIG. 1, any desired number of processors (e.g., 256) can be included. For purposes of the following discussion, the processor in the upper, left-hand corner of FIG. 1 will be discussed with the understanding that the other processors 100 are similarly configured in the preferred embodiment.
As noted, each processor preferably has an associated I/O controller 104. The I/O controller 104 provides an interface to various input/output devices such as disk drives 105 and 106, as shown in the lower, left-hand corner of FIG. 1. Data from the I/O devices thus enters the 2D torus via the I/O controllers.