Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
AssigneeApple Computer, Inc.
InventorsDavid V. James, Donald N. North, Glen D. Stone
Life of this patent
Estimating the term…
Abstract
A system and method for avoiding starvation and deadlocks in a split-response-bus multiprocessor computer system. The multiprocessor computer system includes a first node and a second node coupled to the a split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response bus. The method and system includes providing precedence information in the request packets, and then using the precedence information when receiving the request packets to determine which request packets to process and which request packets to reject when a conflict occurs.
Claims21
A method for avoiding split-response-bus conflicts in a multiprocessor computer system, the multiprocessor computer system including a first node and a second node coupled to the split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response bus, wherein the first and second nodes each include a queue for storing incoming request packets, the method including the steps of:
- (a) providing precedence information in the request packets, wherein the providing step further includes the step of providing a time value in the request packets indicating time of original packet transmission;
- and
- (b) using the precedence information upon receiving the request packets to determine which request packets to process and which request packets to reject when a conflict occurs, wherein the using step further includes the step of determining which request packets to reject when either the queue for the first or the second node is full by comparing the time value included in all tentatively accepted request packets and rejecting the resent packets that have the largest time value.
A multiprocessor computer system for avoiding starvation and deadlocks, comprising:
- a split-response-bus;
- a first node and a second node coupled to the split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response, wherein the first and second nodes each include a queue for storing incoming request packets;
- precedence means for providing precedence information in the request packets, wherein the precedence means further includes a time value in the request packets indicating time of original packet transmission;
- and
- means for determining which request packets to process during a conflict and which request packets to reject based on the precedence information, wherein when either the queue for the first or second node becomes full, the determining means further includes comparing the time values included in the incoming request packets and rejecting the request packets having the largest time value.
A computer-readable medium containing program instructions for avoiding starvation and deadlocks in a split-response-bus multiprocessor computer system, the multiprocessor computer system including a first node and a second node coupled to a split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response, wherein the first and second nodes each include a queue for storing incoming request packets, the program instructions for:
- (a) providing precedence information in the request packets, wherein the providing instructions further includes the instructions for providing a time value in the request packets indicating time of original packet transmission;
- and
- (b) using the precedence information upon receiving the request packets to determine which request packets to process and which request packets to reject when a conflict occurs, wherein the instructions further includes instructions for determining which request packets to reject when either the queue for the first or the second nodes is full by comparing the time value included in all tentatively accepted request packets and rejecting the resent packets that have the largest time value.
A method for avoiding split-response-bus conflicts in a multiprocessor computer system, the multiprocessor computer system including a first node and a second mode coupled to the split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response bus, wherein the first node is a requesting node, the multiprocessor computer system also including PCI adapter having a node Id coupled to the split-response bus and to a PCI bus, the PCI adapter operable to detect a read request conflict when a split-response-to-PCI-BUS read request is received while a PCI-BUS-to-split-response read request is active, each of the read requests including a source Id and a target Id, the method including the steps of:
- (a) providing precedence information in the request packets, wherein the precedence information comprises an identification of a location of the requesting node in a topology of the multiprocessor system, wherein the providing of the precedence information comprises
- providing a first precedence label that indicates the requesting node is a high-level requester in a bus hierarchy, wherein the first precedence label is SPLIT,
- providing a second precedence label that indicates the requesting node is a higher-level requester in a bus hierarchy, wherein the second precedence label is MIN,
- providing a third precedence label that indicates the requesting node is a same-level requester, wherein the third precedence label is MID,
- providing a fourth precedence label that indicates the requesting node is a lower-level requester, wherein the fourth precedence label is MAX, and
- labeling requests as MIN, MID, and MAX in order to resolve hierarchical conflicts;
- (b) using the precedence information upon receiving the request packets to determine which request packets to process and which request packets to reject when a conflict occurs;
- and
- (c) performing conflict resolution by rejecting the received read request at the adapter unless i) the adapter node Id is less than the source Id within the received read-request, and ii) the adapter node Id is less than the target Id of the active read request.
A multiprocessor computer system for avoiding starvation and deadlocks, comprising:
- a split-response-bus;
- a first node and a second node coupled to the split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response, wherein the first node is a requesting node and the multiprocessor system includes a particular topology;
- precedence means for providing precedence information in the request packets, wherein the precedence information comprises
- a first precedence label that indicates the requesting node is a split-response requester, wherein the first label is SPLIT,
- a second precedence label that indicates the requesting node is a higher-level requester in a bus hierarchy, wherein the second label in MIN,
- a third precedence label that indicates the requesting node is a same-level requester, wherein the third label is MID, and
- a fourth precedence label that indicates the requesting node is a lower-level requester, wherein the fourth label is MAX,
- wherein the precedence means labels requests as MIN, MID, and MAX in order to resolve asymmetric hierarchical conflicts;
- a PCI bus;
- and
- a PCI adapter having a node Id coupled to the split-response bus and to the PCI bus, wherein the PCI adapter detects a read request conflict when a split-response-to-PCI-BUS read request is received while a PCI-BUS-to-split-response read request is active, each of the read requests including a source Id and a target Id, the adapter further including means for performing conflict resolution by rejecting the received read request at the adapter unless i) the adapter node Id is less than the source Id within the received read-request, and ii)the adapter node Id is less than the target Id of the active read request,
- wherein the detected read request conflict is caused by same-level read requests, and the same-level read requests are provided with the MID labels,
- wherein the adapter sends a reject response from the PCI adapter after rejecting a read request, the reject response indicating whether the read request was attempting to access a half-duplex address or a full-duplex address, wherein in response to the reject response indicating a half-duplex address, a requesting node resends the request with the MIN precedence label, and
- wherein in response to the reject response indicating a full-duplex address, the requesting node resends the request with a MAX precedence label.
A computer-readable medium containing program instructions for avoiding starvation and deadlocks in a split-response-bus multiprocessor computer system, the multiprocessor computer system including a first node and a second mode coupled to the split-response bus, wherein the first and second nodes communicate by passing request packets over the split-response, wherein the first node is a requesting node, the program instructions for:
- (a) providing precedence information in the request packets, wherein the precedence information comprises a time value in the request packets indicating time of original packet transmission and identification of a location of the requesting node in a topology of the multiprocessor system, wherein the time value is placed into the first packet when the first node resends the first packet to the second node, thereby creating a resent request packet;
- and
- (b) using the precedence information upon receiving the request packets to determine which request packets to process and which request packets to reject when a conflict occurs.
Dependencies are inferred from the claim text.