Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
DC CAFCFirst Claim
1. A shared-memory multi-processor system comprising:
- a switch fabric configured to switch packets containing data;
a plurality of channels configured to transfer the packets;
a plurality of switch interfaces configured to exchange the packets with the switch fabric, exchange the packets over the channels, and perform error correction of the data in the packets exchanged over the channels;
a plurality of microprocessor interfaces configured to exchange the data with a plurality of microprocessors, exchange the packets with the switch interfaces over the channels, and perform error correction of the data in the packets exchanged over the channels; and
a memory interface configured to exchange the data with a memory device, exchange the packets with the switch interfaces over the channels, and perform error correction of the data in the packets exchanged over the channels.
15 Assignments
Litigations
2 Petitions
Accused Products
Abstract
A preferred embodiment of a symmetric multiprocessor system includes a switched fabric (switch matrix) for data transfers that provides multiple concurrent buses that enable greatly increased bandwidth between processors and shared memory. A high-speed point-to-point Channel couples command initiators and memory with the switch matrix and with I/O subsystems. Each end of a channel is connected to a Channel Interface Block (CIB). The CIB presents a logical interface to the Channel, providing a communication path to and from a CIB in another IC. CIB logic presents a similar interface between the CIB and the core-logic and between the CIB and the Channel transceivers. A channel transport protocol is is implemented in the CIB to reliably transfer data from one chip to another in the face of errors and limited buffering.
119 Citations
44 Claims
-
1. A shared-memory multi-processor system comprising:
-
a switch fabric configured to switch packets containing data;
a plurality of channels configured to transfer the packets;
a plurality of switch interfaces configured to exchange the packets with the switch fabric, exchange the packets over the channels, and perform error correction of the data in the packets exchanged over the channels;
a plurality of microprocessor interfaces configured to exchange the data with a plurality of microprocessors, exchange the packets with the switch interfaces over the channels, and perform error correction of the data in the packets exchanged over the channels; and
a memory interface configured to exchange the data with a memory device, exchange the packets with the switch interfaces over the channels, and perform error correction of the data in the packets exchanged over the channels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A shared-memory multi-processor system comprising:
-
a switch fabric means for switching packets containing data;
a channel means for transferring the packets;
a switch interface means for exchanging the packets with the switch fabric means, exchanging the packets over the channel means, and performing error correction of the data in the packets exchanged over the channel means;
a microprocessor interface means for exchanging the data with a plurality of microprocessors, exchanging the packets with the switch interface means over the channel means, and performing error correction of the data in the packets exchanged over the channel means; and
a memory interface means for exchanging the data with a memory device, exchanging the packets with the switch interface means over the channel means, and performing error correction of the data in the packets exchanged over the channel means. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of operating a shared-memory multi-processor system, the method comprising:
-
exchanging data between a plurality of microprocessors and a plurality of microprocessor interfaces;
exchanging packets containing the data between the microprocessor interfaces and a plurality of switch interfaces over channels;
exchanging the packets between the switch interfaces through a switch fabric;
exchanging the packets between the switch interfaces and a memory interface over the channels;
exchanging the data between the memory interface and a memory device; and
in the interfaces, performing error correction of the data in the packets exchanged over the channels. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
adding error correction codes to the packets being transferred over the channels;
checking the error correction codes in the packets being received over the channels; and
transferring a retry request if one of the packets being received has an error.
-
-
26. The method of claim 24 wherein performing error correction of the data in the packets exchanged over the channels comprises:
-
adding sequence codes to the packets being transferred over the channels;
checking the sequence codes in the packets being received over the channels; and
transferring a retry request if there is a sequence error.
-
-
27. The method of claim 24 comprising recalibrating one of the channels after a number of retry failures over the one channel.
-
28. The method of claim 24 comprising performing a synchronous reset of one of the channels.
-
29. The method of claim 24 comprising transferring a backoff request to reduce packet transmission over one of the channels.
-
30. The method of claim 24 comprising operating the microprocessor interfaces based on clocks in the microprocessors.
-
31. The method of claim 24 further comprising:
-
exchanging the packets between the switch interfaces and a bus interface over the channels; and
exchanging the data between the bus interface and a bus.
-
-
32. The method of claim 24 further comprising maintaining an order of data transactions between the microprocessors and the memory device based on a cache coherency protocol.
-
33. The method of claim 24 further comprising:
-
maintaining a duplicate set of cache tags for the microprocessors; and
maintaining an order of cache tag updates for the microprocessors.
-
-
34. The method of claim 24 wherein the channels each comprise a point-to-point connection between a pair of the interfaces.
-
35. A system for transporting information comprising:
-
a switched fabric including a single system-serialization point;
a transaction initiator having a cache memory, wherein said transaction initiator is coupled to said switched fabric via a point-to-point connection;
a first channel interface, situated between said transaction initiator and said point-to-point connection;
a second channel interface, situated between said point-to-point connection and said switched fabric, wherein said first and second channel interfaces transport packets across said point-to-point connection according to a channel protocol to perform error correction of data in said packets; and
a transaction controller to monitor said packets passing through said system-serialization point and to maintain the coherency of said cache memory. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A system for transporting information comprising:
-
a switched fabric including a single system-serialization point;
a first processor having a cache memory, wherein said processor is coupled to said switched fabric via a first point-to-point connection;
a first channel interface, situated between said processor and said first point-to-point connection, and a second channel interface, situated between said first point-to-point connection and said switched fabric, wherein said first and second channel interfaces transport packets across said first point-to-point connection according to a channel protocol to perform error correction of data in said packets;
a system memory coupled to said switched fabric via a second point-to-point connection;
a third channel interface, situated between said system memory and said second point-to-point connection, and a fourth channel interface, situated between said second point-to-point connection and said switched fabric, wherein said third and fourth channel interfaces transport packets across said second point-to-point connection according to said channel protocol to perform error correction of data in said packets; and
a transaction controller to monitor said packets passing through said system-serialization point and to maintain the coherency of said cache memory. - View Dependent Claims (43, 44)
an input/output (I/O) device coupled to said switched fabric via a third point-to-point connection; and
a fifth channel interface, situated between said I/O device and said third point-to-point connection, and a sixth channel interface, situated between said third point-to-point connection and said switched fabric, wherein said fifth and sixth channel interfaces transport packets across said third point-to-point connection according to said channel protocol to perform error correction of data in said packets.
-
Specification