IP Library › Granted Patent US 7,529,799
Granted Patent B2
US 7,529,799 · App. 10/162,636 · Granted May 5, 2009

Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,529,799
App. No.
10/162,636
Granted
May 5, 2009
Kind
B2
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.

Claims (66)

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.

2. The method of claim 1 further comprising:

storing the port-bus transaction tag for the transaction in the entry in the transaction registry.

3. The method of claim 1 further comprising:

translating the system-level transaction tag for the second transaction to a snoop tag;

storing the system-level transaction tag for the second transaction in the entry in the second transaction registry; and

forwarding the second transaction with the snoop tag to master devices.

4. The method of claim 3 further comprising:

receiving intervention data;

matching a system transaction tag for the intervention data with the port-bus transaction tag for the transaction in the entry in the transaction registry; and

forwarding the intervention data with the port-bus transaction tag for the transaction.

5. The method of claim 3 further comprising:

receiving a Rerun command;

matching a system transaction tag for the Rerun command with the port-bus transaction tag for the transaction in the entry in the transaction registry;

reissuing the transaction with its port-bus transaction tag with an address modifier bit set.

6. The method of claim 1 wherein the multiprocessor system comprises a plurality of master devices and a plurality of node controllers, wherein the node controller organizes a subset of one or more of the plurality of master devices into a node, and a plurality of bidirectional master device buses, and wherein a master device bus connects one or more master devices within a node to a port of the node controller, and wherein the plurality of node controllers are coupled together by another bus having a wider bus width than individual ones of the master device buses.

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.

8. The apparatus of claim 7 further comprising:

first storing means for storing the port-bus transaction tag for the transaction in the entry in the transaction registry.

9. The apparatus of claim 7 further comprising:

first translating means for translating the system-level transaction tag for the second transaction to a snoop tag;

first storing means for storing the system-level transaction tag for the second transaction in the entry in the second transaction registry; and

forwarding means for forwarding the second transaction with the snoop tag to master devices.

10. The apparatus of claim 9 further comprising:

first receiving means for receiving intervention data;

first matching means for matching a system transaction tag for the intervention data with the port-bus transaction tag for the transaction in the entry in the transaction registry;

forwarding means for forwarding the intervention data with the port-bus transaction tag for the transaction.

11. The apparatus of claim 9 further comprising:

second receiving means for receiving a Rerun command;

second matching means for matching a system transaction tag for the Rerun command with the port-bus transaction tag for the transaction in the entry in the transaction registry;

reissuing means for reissuing the transaction with its port-bus transaction tag with an address modifier bit set.

12. The apparatus of claim 7 wherein the multiprocessor system comprises a plurality of master devices and a plurality of node controllers, wherein the node controller organizes a subset of one or more of the plurality of master devices into a node, and a plurality of bidirectional master device buses, and wherein a master device bus connects one or more master devices within a node to a port of the node controller, and wherein the plurality of node controllers are coupled together by another bus having a wider bus width than individual ones of the master device buses.

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.

14. The computer program product of claim 13 further comprising:

instructions for storing the port-bus transaction tag for the transaction in the entry in the transaction registry.

15. The computer program product of claim 13 further comprising:

instructions for translating the system-level transaction tag for the second transaction to a snoop tag;

instructions for storing the system-level transaction tag for the second transaction in the entry in the second transaction registry; and

instructions for forwarding the second transaction with the snoop tag to master devices.

16. The computer program product of claim 15 further comprising:

instructions for receiving intervention data;

instructions for matching a system transaction tag for the intervention data with the port-bus transaction tag for the transaction in the entry in the transaction registry;

instructions for forwarding the intervention data with the port-bus transaction tag for the transaction.

17. The computer program product of claim 15 further comprising:

instructions for receiving a Rerun command;

instructions for matching a system transaction tag for the Rerun command with the port-bus transaction tag for the transaction in the entry in the transaction registry;

instructions for reissuing the transaction with its port-bus transaction tag with an address modifier bit set.

18. The computer program product of claim 13 wherein the multiprocessor system comprises a plurality of master devices and a plurality of node controllers, wherein the node controller organizes a subset of one or more of the plurality of master devices into a node, and a plurality of bidirectional master device buses, and wherein a master device bus connects one or more master devices within a node to a port of the node controller, and wherein the plurality of node controllers are coupled together by another bus having a wider bus width than individual ones of the master device buses.

19. The method of claim 1 , wherein the system-level transaction tag comprises an index to the entry of the transaction in the transaction registry.

20. The system of claim 7 , wherein the system-level transaction tag comprises an index to the entry of the transaction in the transaction registry.

21. The computer program product of claim 13 , wherein the system-level transaction tag comprises an index to the entry of the transaction in the transaction registry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2002
From: ALVAREZ, II, MANUAL JOSEPH; DESHPANDE, SANJAY RAGHUNATH; KLAPPROTH, KENNETH DOUGLAS; MUI, DAVID
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 012999/0896 →
Continuity (2)
Division 0943620500 · Nov 8, 1999
Related Publication 20030046356A1 · Mar 6, 2003