×

System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels

  • US 7,773,618 B2
  • Filed: 11/08/2006
  • Issued: 08/10/2010
  • Est. Priority Date: 11/08/2006
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for preventing deadlock in a multiprocessor computer system having a plurality of processing nodes interconnected by a defined interconnection topology, in which a communication from a source processing node to a target processing node passes through one or more intermediate nodes en route to the target processing node, the method comprising:

  • assigning a unique node identifier value to each processing node in the defined interconnection topology;

    for each link in the defined interconnection topology, associating a set of virtual channels, each virtual channel having corresponding communication buffers to store communication data, each virtual channel assigned a unique virtual channel identifier value;

    assigning a first virtual channel identifier value to a communication, the first virtual channel identifier value indicating a virtual channel on which to convey the communication from the source processing node to an intermediate processing node in the defined interconnection topology;

    at the intermediate processing node;

    receiving the communication;

    identifying a node identifier value of a previous hop node from which the communication is received;

    identifying a node identifier value of a next hop node on which to forward the communication from the intermediate processing node towards the target processing node;

    initiating a comparison of a node identifier value assigned to the intermediate processing node to both the node identifier value of the previous hop node and the node identifier value of the next hop node;

    based on results of the comparison, assigning a second virtual channel identifier value to the communication in place of the first virtual channel identifier value, the second virtual channel identifier value indicating a virtual channel on which to convey the communication from the intermediate processing node to the next hop node toward the target processing node, wherein assignment of the second virtual channel identifier value is in accordance with pre-defined rules to avoid a cycle of dependency of communication buffer resources; and

    receiving the communication at the target processing node;

    encoding the communication sent to the intermediate processing node to include a string of route information, the string of route information indicating a link on which the communication is transmitted to the intermediate processing node;

    at the intermediate processing node receiving the communication, applying a bit shift operation to the string of route information to produce a shifted string of route information; and

    utilizing the shifted string of route information to identify an egress link of the intermediate processing node upon which to forward the communication on a path to the target processing node.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×