IP Library Granted Patent US 9,130,856
Granted Patent B2
US 9,130,856 · App. 13/752,226 · Granted Sep 8, 2015

Creating multiple NoC layers for isolation or avoiding NoC traffic congestion

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 9,130,856
App. No.
13/752,226
Granted
Sep 8, 2015
Kind
B2
Abstract

Systems and methods described herein are directed to solutions for Network on Chip (NoC) interconnects that automatically and dynamically determines the number of layers needed in a NoC interconnect system based on the bandwidth requirements of the system traffic flows. The number of layers is dynamically allocated and minimized by performing load balancing of the traffic flows between the channels and routes of different NoC layers as they are mapped. Additional layers may be allocated to provide the additional virtual channels that may be needed for deadlock avoidance and to maintain the isolation properties between various system flows. Layer allocation for additional bandwidth and additional virtual channels (VCs) may be performed in tandem.

Claims (34)

1. A method, comprising:

utilizing a processor for assigning one or more traffic flows to a plurality of Network on Chip (NoC) layers in an NoC system, based on a load balancing configuration,

wherein each of the plurality of NoC layers is a separate physical or virtual interconnect connecting one or more cores of the NoC system, the each of the plurality of NoC layers is connected by one or more bridges and associated with a sequence of traffic flows, wherein the sequence of traffic flows is processed by a substantially simultaneous selection of a NoC layer of the plurality of NoC layers and a route for each of the one or more traffic flows;

wherein the load balancing configuration comprises one or more policies to balance traffic across one or more channels of one or more NoC layers of the plurality of NoC layers.

2. The method of claim 1 , wherein the one or more policies of the load balancing configuration comprises a computation of load balancing routes in the NoC system for the one or more traffic flows assigned to the each of the plurality of NoC layers.

3. The method of claim 1 , further comprising determining a width for at least one virtual channel in at least one of the plurality of NoC layers, based on the assigned one or more traffic flows and at least one of a packet size, a bandwidth requirement, and a channel width constraint.

4. The method of claim 1 , further comprising:

determining satisfaction of interconnect bandwidth requirements of the NoC system; and allocating additional ones of the NoC layers to the NoC system based on the determined satisfaction of the interconnect bandwidth requirements.

5. The method of claim 1 , further comprising providing additional virtual channels to the NoC system by allocating additional NoC layers based on a satisfaction of at least one of deadlock avoidance and a provision of system traffic isolation.

6. The method of claim 1 , further comprising providing additional virtual channels and additional bandwidth to the NoC system by allocating additional NoC layers.

7. The method of claim 1 , further comprising determining an order for assigning the one or more traffic flows based on at least one of a channel load, a bandwidth utilization and a dependency between flows.

8. A non-transitory computer readable storage medium storing instructions for executing a process, the instructions comprising:

assigning one or more traffic flows to a plurality of Network on Chip (NoC) layers in an NoC system, based on a load balancing configuration,

wherein each of the plurality of NoC layers is a separate physical or virtual interconnect connecting one or more cores of the NoC system, the each of the plurality of NoC layers is connected by one or more bridges and associated with a sequence of traffic flows, wherein the sequence of traffic flows is processed by a substantially simultaneous selection of a NoC layer of the plurality of NoC layers and a route for each of the one or more traffic flows;

wherein the load balancing configuration comprises one or more policies to balance traffic across one or more channels of one or more NoC layers of the plurality of NoC layers.

9. The non-transitory computer readable storage medium of claim 8 , wherein the one or more policies of the load balancing configuration comprises a computation of load balancing routes in the NoC system for the one or more traffic flows assigned to the each of the plurality of NoC layers.

10. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further comprise determining a width for at least one virtual channel in at least one of the plurality of NoC layers, based on the assigned one or more traffic flows and at least one of a packet size, a bandwidth requirement, and a channel width constraint.

11. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further comprise:

determining satisfaction of interconnect bandwidth requirements of the NoC system; and

allocating additional ones of the NoC layers to the NoC system based on the determined satisfaction of the interconnect bandwidth requirements.

12. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further comprise providing additional virtual channels to the NoC system by allocating additional NoC layers based on a satisfaction of at least one of deadlock avoidance and a provision of system traffic isolation.

13. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further comprise providing additional virtual channels and additional bandwidth to the NoC system by allocating additional NoC layers.

14. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further comprise determining an order for assigning the one or more traffic flows based on at least one of a channel load, a bandwidth utilization and a dependency between flows.

15. A system, comprising:

a processor configured to utilize one or more modules, comprising:

a traffic flow sequencer module configured to assign one or more traffic flows to a plurality of Network on Chip (NoC) layers in an NoC system, based on a load balancing configuration,

wherein each NoC layer of the plurality of NoC layers is a separate physical or virtual interconnect connecting one or more cores of the NoC system, the each of the plurality of NoC layers is connected by one or more bridges and associated with a sequence of traffic flows, wherein the sequence of traffic flows is processed by a substantially simultaneous selection of a NoC layer of the plurality of NoC layers and a route for each of the one or more traffic flows;

wherein the load balancing configuration comprises one or more policies to balance traffic across one or more channels of one or more NoC layers of the plurality of NoC layers.

16. The system of claim 15 , wherein the one or more policies comprises a computation of load balancing routes in the NoC system for the one or more traffic flows assigned to the each of the plurality of NoC layers.

17. The system of claim 15 , further comprising an NoC layer allocator module configured to:

determine satisfaction of interconnect bandwidth requirements of the NoC system; and allocate additional ones of the NoC layers to the NoC system based on the determined satisfaction of the interconnect bandwidth requirements.

18. The system of claim 15 , further comprising an NoC layer allocator module configured to provide additional virtual channels to the NoC system by allocating additional NoC layers based on a satisfaction of at least one of deadlock avoidance and a provision of system traffic isolation.

19. The system of claim 15 , further comprising an NoC layer allocator module configured to provide additional virtual channels and additional bandwidth to the NoC system by allocating additional NoC layers.

20. The system of claim 15 , wherein the traffic flow sequencer module is further configured to determine an order for assigning the one or more traffic flows based on at least one of a channel load, a bandwidth utilization and a dependency between flows.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2022
From: NETSPEED SYSTEMS, INC.
To: INTEL CORPORATION
Reel/Frame 060753/0662 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCKET NUMBER PREVIOUSLY RECORDED ON REEL 029709 FRAME 0653. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT DOCKET NUMBER OF 120126-NET008. Recorded May 30, 2013
From: KUMAR, SAILESH; NORIGE, ERIC; PHILIP, JOJI; HASSAN, MAHMUD; MITRA, SUNDARI; ROWLANDS, JOSEPH
To: NETSPEED SYSTEMS
Reel/Frame 030514/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2013
From: KUMAR, SAILESH; NORIGE, ERIC; PHILIP, JOJI; HASSAN, MAHMUD; MITRA, SUNDARI; ROWLANDS, JOSEPH
To: NETSPEED SYSTEMS
Reel/Frame 029709/0653 →