Data processing system, method and interconnect fabric having a flow governor
First Claim
1. A method of data processing in a data processing system including a plurality of processing units coupled for communication, said plurality of processing units including a plurality of local hubs each coupled to a remote hub by a respective one of a plurality of point-to-point communication links, said method comprising:
- queuing, by each of said plurality of local hubs, requests for access to memory blocks for transmission on a respective one of said point-to-point communication links to a shared resource in said remote hub; and
transmitting, by each of said plurality of local hubs, queued requests to said remote hub utilizing only a first fractional portion of a bandwidth of its respective point-to-point communication link determined by an allocation policy based at least in part upon a number of said plurality of local hubs and a number of processing units represented by each of said plurality of local hubs, such that requests transmitted by all of said plurality of local hubs do not overrun said shared resource, wherein the transmitting includes each of said plurality of local hubs reserving a second fractional portion of the bandwidth of its point-to-point communication link as unused.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system includes a plurality of local hubs each coupled to a remote hub by a respective one a plurality of point-to-point communication links. Each of the plurality of local hubs queues requests for access to memory blocks for transmission on a respective one of the point-to-point communication links to a shared resource in the remote hub. Each of the plurality of local hubs transmits requests to the remote hub utilizing only a fractional portion of a bandwidth of its respective point-to-point communication link. The fractional portion that is utilized is determined by an allocation policy based at least in part upon a number of the plurality of local hubs and a number of processing units represented by each of the plurality of local hubs. The allocation policy prevents overruns of the shared resource.
64 Citations
15 Claims
-
1. A method of data processing in a data processing system including a plurality of processing units coupled for communication, said plurality of processing units including a plurality of local hubs each coupled to a remote hub by a respective one of a plurality of point-to-point communication links, said method comprising:
-
queuing, by each of said plurality of local hubs, requests for access to memory blocks for transmission on a respective one of said point-to-point communication links to a shared resource in said remote hub; and transmitting, by each of said plurality of local hubs, queued requests to said remote hub utilizing only a first fractional portion of a bandwidth of its respective point-to-point communication link determined by an allocation policy based at least in part upon a number of said plurality of local hubs and a number of processing units represented by each of said plurality of local hubs, such that requests transmitted by all of said plurality of local hubs do not overrun said shared resource, wherein the transmitting includes each of said plurality of local hubs reserving a second fractional portion of the bandwidth of its point-to-point communication link as unused. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A data processing system, comprising:
-
a plurality of point-to-point communication links; a plurality of processing units including a remote hub and a plurality of local hubs, wherein said remote hub includes a shared resource, and wherein each of said plurality of local hubs is coupled to said remote hub by a respective one of said plurality of point-to-point communication links; wherein each of said plurality of local hubs includes a queue structure that queues requests for access to memory blocks for transmission on a respective one of said point-to-point communication links to said shared resource in said remote hub; and wherein each of said queue structures transmits queued requests to said remote hub utilizing only a first fractional portion of a bandwidth of its respective point-to-point communication link determined by an allocation policy based at least in part upon a number of said plurality of local hubs and a number of processing units represented by each of said plurality of local hubs, such that requests transmitted by all of said plurality of local hubs do not overrun said shared resource, wherein the each of said plurality of queue structures reserves a second fractional portion of the bandwidth of its point-to-point communication link as unused. - View Dependent Claims (8, 9, 10)
-
-
11. A processing unit, comprising:
-
a connection to a particular communication link among a plurality of point-to-point communication links to a remote hub processing unit, wherein said remote hub processing unit includes a shared resource contended for by a plurality of local hub processing units via said plurality of point-to-point communication links; a queue structure that queues requests for access to memory blocks for transmission on a respective one of said point-to-point communication links to said shared resource in said remote hub processing unit, wherein said queue structure transmits queued requests to said remote hub processing unit utilizing only a first fractional portion of a bandwidth of its respective point-to-point communication link determined by an allocation policy based at least in part upon a number of said plurality of local hub processing units and a number of processing units represented by each of said plurality of local hub processing units, such that requests transmitted by all of said plurality of local hub processing units do not overrun said shared resource, wherein the queue structure reserves a second fractional portion of the bandwidth of its point-to-point communication link as unused. - View Dependent Claims (12, 13, 14)
-
-
15. A method of data processing in a data processing system including a plurality of processing units coupled for communication, said plurality of processing units including a plurality of local hubs each coupled to a remote hub by a respective one of a plurality of point-to-point communication links, said method comprising:
-
queuing, by each of said plurality of local hubs, requests for access to memory blocks for transmission on a respective one of said point-to-point communication links to a shared resource in said remote hub; and transmitting, by each of said plurality of local hubs, queued requests to said remote hub utilizing a first fractional portion of a bandwidth of its respective point-to-point communication link and reserving, by each of said plurality of local hubs, a second fractional portion of the bandwidth of its point-to-point communication link as unused, such that requests transmitted by all of said plurality of local hubs do not overrun said shared resource.
-
Specification