Credit-based flow control technique in a modular multiprocessor system
First Claim
1. A method for creating a load balancing, deadlock-free virtual channel communication structure in a shared buffer resource of a switch fabric within a modular multiprocessor system, the switch fabric interconnecting a plurality of nodes and configured to transport transaction packets having a plurality of types from a global input port of a first node through a hierarchical switch to a global output port of a second node, the method comprising the steps of:
- establishing within the switch fabric a plurality of virtual channel queues, each queue storing a type of transaction packet;
providing a plurality of counters, each counter associated with a virtual channel queue;
and structuring the shared buffer resource through use of the counters so as to create;
a generic buffer region having entries for accommodating any type of transaction packet, a forward progress region having one or more entries for accommodating a first type of transaction packet, and a deadlock avoidance region having entries for accommodating one or more second types of transaction packets.
1 Assignment
0 Petitions
Accused Products
Abstract
A credit-based, flow control technique utilizes a plurality of counters to conserve resources of a switch fabric within a modular multiprocessor system while ensuring that transaction packets pending in virtual channel queues of the fabric efficiently progress through those resources. The multiprocessor system includes a plurality of nodes interconnected by the switch fabric that extends from a global input port of a node through a hierarchical switch to a global output port of the same or another node. The resources include shared buffers within the global ports and hierarchical switch. Each counter is associated with a virtual channel queue and the flow control technique uses the counters to essentially create the structure of the shared buffers.
69 Citations
15 Claims
-
1. A method for creating a load balancing, deadlock-free virtual channel communication structure in a shared buffer resource of a switch fabric within a modular multiprocessor system, the switch fabric interconnecting a plurality of nodes and configured to transport transaction packets having a plurality of types from a global input port of a first node through a hierarchical switch to a global output port of a second node, the method comprising the steps of:
-
establishing within the switch fabric a plurality of virtual channel queues, each queue storing a type of transaction packet;
providing a plurality of counters, each counter associated with a virtual channel queue;
andstructuring the shared buffer resource through use of the counters so as to create;
a generic buffer region having entries for accommodating any type of transaction packet, a forward progress region having one or more entries for accommodating a first type of transaction packet, and a deadlock avoidance region having entries for accommodating one or more second types of transaction packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A switch fabric for interconnecting a plurality of nodes of a modular multiprocessor system, the nodes configured to source and receive transaction packets having a plurality of types, the switch fabric comprising:
-
a plurality of virtual channel queues, each queue configured and arranged to store a type of transaction packet;
a plurality of counters, each counter associated with a virtual channel queue;
an arbiter for incrementing and decrementing the counters; and
a shared buffer resource coupled to the virtual channel queues and configured to transport transaction packets among the nodes of the multiprocessor system, wherein the arbiter utilizes the counters to organize the shared buffer resource into a plurality of regions including;
a generic buffer region having entries for accommodating any type of transaction packet, a forward progress region having one or more entries for accommodating a first type of transaction packet, and a deadlock avoidance region having entries for accommodating one or more second types of transaction packets. - View Dependent Claims (12, 13, 14, 15)
-
Specification