Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
First Claim
1. A method of managing transaction tags in a multiprocessor system, the transactions tags identifying transactions in the multiprocessing system, the method comprising the steps of:
- receiving a transaction from a master device, wherein the transaction comprises a port-bus transaction tag, wherein the port-bus transaction tag comprises a source identifier that uniquely identifies the master device within a node that issued the transaction, and a transaction identifier that uniquely identifies the transaction in a set of transactions issued by the master device;
translating the port-bus transaction tag for the transaction to a system-level transaction tag by adding a node identifier to the port-bus transaction tag to form the system-level transaction tag, the node identifier being an identifier that uniquely identifies a node having a node controller that the master device is connected to;
registering the transaction in an entry in a transaction registry, the transaction registry being a place for registering transactions;
broadcasting a second transaction, wherein the second transaction comprises the system-level transaction tag for the transaction that is broadcast as a part of the broadcasting step; and
registering the second transaction in an entry in a second transaction registry, the second transaction registry being a place for registering transactions and associating address portions of transactions with corresponding data portions of transactions of a split transaction bus.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed system structure for a large-way, symmetric multiprocessor system using a bus-based cache-coherence protocol is provided. The distributed system structure contains an address switch, multiple memory subsystems, and multiple master devices, either processors, I/O agents, or coherent memory adapters, organized into a set of nodes supported by a node controller. The node controller receives transactions from a master device, communicates with a master device as another master device or as a slave device, and queues transactions received from a master device. Since the achievement of coherency is distributed in time and space, the node controller helps to maintain cache coherency. A transaction tag format for a standard bus protocol is expanded to ensure unique transaction tags are maintained throughout the system. A sideband signal is used for intervention and Reruns to preserve transaction tags at the node controller in certain circumstances.
-
Citations
21 Claims
-
1. A method of managing transaction tags in a multiprocessor system, the transactions tags identifying transactions in the multiprocessing system, the method comprising the steps of:
-
receiving a transaction from a master device, wherein the transaction comprises a port-bus transaction tag, wherein the port-bus transaction tag comprises a source identifier that uniquely identifies the master device within a node that issued the transaction, and a transaction identifier that uniquely identifies the transaction in a set of transactions issued by the master device; translating the port-bus transaction tag for the transaction to a system-level transaction tag by adding a node identifier to the port-bus transaction tag to form the system-level transaction tag, the node identifier being an identifier that uniquely identifies a node having a node controller that the master device is connected to; registering the transaction in an entry in a transaction registry, the transaction registry being a place for registering transactions; broadcasting a second transaction, wherein the second transaction comprises the system-level transaction tag for the transaction that is broadcast as a part of the broadcasting step; and registering the second transaction in an entry in a second transaction registry, the second transaction registry being a place for registering transactions and associating address portions of transactions with corresponding data portions of transactions of a split transaction bus. - View Dependent Claims (2, 3, 4, 5, 6, 19)
-
-
7. An apparatus for managing transaction tags in a multiprocessor system, the transactions tags identifying transactions in the multiprocessing system, the apparatus comprising:
-
first receiving means for receiving a transaction from a master device, wherein the transaction comprises a port-bus transaction tag, wherein the port-bus transaction tag comprises a source identifier that uniquely identifies the master device within a node that issued the transaction, and a transaction identifier that uniquely identifies the transaction in a set of transactions issued by the master device; first translating means for translating the port-bus transaction tag for the transaction to a system-level transaction tag by adding a node identifier to the port-bus transaction tag to form the system-level transaction tag, the node identifier being an identifier that uniquely identifies a node having a node controller that the master device is connected to; first registering means for registering the transaction in an entry in a transaction registry, the transaction registry being a place for registering transactions; broadcasting means for broadcasting a second transaction, wherein the second transaction comprises the system-level transaction tag for the transaction; and first registering means for registering the second transaction in an entry in a second transaction registry, the second transaction registry being a place for registering transactions and associating address portions of transactions with corresponding data portions of transactions of a split transaction bus. - View Dependent Claims (8, 9, 10, 11, 12, 20)
-
-
13. A computer program product in a computer-readable medium for use in a multiprocessor system for managing transaction tags in the multiprocessor system, the transactions tags identifying transactions in the multiprocessing system, the computer program product comprising:
-
instructions for receiving a transaction from a master device, wherein the transaction comprises a port-bus transaction tag, wherein the port-bus transaction tag comprises a source identifier that uniquely identifies the master device within a node that issued the transaction, and a transaction identifier that uniquely identifies the transaction in a set of transactions issued by the master device; instructions for translating the port-bus transaction tag for the transaction to a system-level transaction tag by adding a node identifier to the port-bus transaction tag to form the system-level transaction tag, the node identifier being an identifier that uniquely identifies a node having a node controller that the master device is connected to; instructions for registering the transaction in an entry in a transaction registry, the transaction registry being a place for registering transactions; instructions for broadcasting a second transaction, wherein the second transaction comprises the system-level transaction tag for the transaction; and instructions for registering the second transaction in an entry in a second transaction registry, the second transaction registry being a place for registering transactions and associating address portions of transactions with corresponding data portions of transactions of a split transaction bus. - View Dependent Claims (14, 15, 16, 17, 18, 21)
-
Specification