IP Library Granted Patent US 10,922,471
Granted Patent B2
US 10,922,471 · App. 16/457,114 · Granted Feb 16, 2021

High performance regularized network-on-chip architecture

Inventors: Gregg William Baeckler (San Jose, CA); Martin Langhammer (Alderbury, GB); Sergey Vladimirovich Gribok (Santa Clara, CA)
Assignee: Intel Corporation
G06F30/398G06F30/34G06F30/392
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 10,922,471
App. No.
16/457,114
Granted
Feb 16, 2021
Kind
B2
Abstract

Techniques for designing and implementing networks-on-chip (NoCs) are provided. For example, a computer-implemented method for programming a network-on-chip (NoC) onto an integrated circuit includes determining a first portion of a plurality of registers to potentially be included in a NoC design, determining routing information regarding datapaths between registers of the first portion of the plurality of registers, and determining an expected performance associated with the first portion of the plurality of registers. The method also includes determining whether the expected performance is within a threshold range, including the first portion of the plurality of registers and the datapaths in the NoC design after determining that the expected performance is within the threshold range, and generating instructions configured to cause circuitry corresponding to the NoC design to be implemented on the integrated circuit.

Claims (60)

1. A computer-implemented method for programming a network-on-chip (NoC) onto an integrated circuit, the method comprising:

determining a first portion of a plurality of registers to potentially be included in a NoC design;

determining routing information regarding datapaths between registers of the first portion of the plurality of registers;

determining an expected performance associated with the first portion of the plurality of registers;

determining whether the expected performance is within a threshold range;

including the first portion of the plurality of registers and the datapaths in the NoC design based on determining that the expected performance is within the threshold range, wherein the plurality of registers comprises:

a second portion of the plurality of registers configured to route data vertically away from a data source; and

a third portion of the plurality of registers configured to route data horizontally away from the data source;

receiving a program design associated with a function to be performed by the integrated circuit; and

generating instructions configured to cause circuitry corresponding to the NoC design to be implemented on the integrated circuit by compiling, based on the NoC design, the program design to generate a hardware implementation on the integrated circuit for the function and the NOC design.

2. The computer-implemented method of claim 1 , wherein the first portion of the plurality of registers are selected from a library comprising potential register locations specific to the integrated circuit.

3. The computer-implemented method of claim 2 , wherein the datapaths are selected from a plurality of chip-specific datapaths included in the library.

4. The computer-implemented method of claim 1 , comprising moving one or more locations of registers of the first portion of the plurality of registers, altering a portion of the datapaths, or both based on determining that the expected performance is not within the threshold range.

5. The computer-implemented method of claim 1 , comprising:

determining whether the first portion of the plurality of registers includes registers that are located in more than one clock sector; and

based on upon determining that the first portion of the plurality of registers includes registers that are located in more than one clock sector, moving one or more registers of the first portion of the plurality of registers so that each register of the first portion of the plurality of registers is included in a single clock sector.

6. The computer-implemented method of claim 1 , wherein the third portion of the plurality of registers is disposed perpendicular to the second portion of the plurality of registers.

7. The computer-implemented method of claim 1 , comprising:

determining whether any of the datapaths are routed through an impassable area of the integrated circuit; and

after determining that at least one of the datapaths is routed through the impassable area, altering a portion of the datapaths to run around the impassable area.

8. The computer-implemented method of claim 7 , comprising altering one or more locations of a second plurality of registers of the plurality of registers based on altering the portion of the datapaths to run around the impassable area.

9. The computer-implemented method of claim 1 , comprising:

receiving desired performance information regarding the NoC design; and

determining the first portion of a plurality of registers and the routing information based on the desired performance information.

10. The computer-implemented method of claim 1 , wherein the integrated circuit comprises a programmable logic device.

11. A non-transitory computer-readable medium comprising instructions that, when executed, are configured to cause one or more processors to:

receive data regarding an integrated circuit and data regarding performance characteristics for a network-on-chip (NoC) to be designed;

select source points and endpoints for the NoC based on the data regarding the integrated circuit and the data regarding performance characteristics for the NoC;

determine routes between the source points and the endpoints;

determine whether an expected performance level associated with the routes is within a threshold range of a performance level defined by the performance characteristics;

include the endpoints and the routes in the NoC;

receive a program design associated with a function to be performed by the integrated circuit; and

generate instructions configured to cause circuitry corresponding to the NoC to be implemented on the integrated circuit by compiling, the program design to generate a hardware implementation on the integrated circuit for the function and the NOC, wherein the NOC, when implemented on the integrated circuit, comprises:

a first plurality of registers of the integrated circuit configured to route data vertically away from a data source; and

a second plurality of registers of the integrated circuit configured to route data horizontally away from the data source.

12. The non-transitory computer-readable medium of claim 11 , wherein the instructions are configured to cause the one or more processors to:

include the endpoints in the NoC comprises setting the endpoints as source points;

determine second endpoints for the NoC based on the endpoints;

determine routes between the endpoints and the second endpoints;

determine second routes between the endpoints and the second endpoints; and

include the second endpoints and the second routes in the NoC.

13. The non-transitory computer-readable medium of claim 12 , wherein the instructions are configured to cause the one or more processors to:

move the endpoints closer to the source points based on determining that the expected performance level is slower than a minimum speed defined by the threshold range; and

move end endpoints farther from the source points based on determining that the expected performance level is faster than a maximum speed defined by the threshold range.

14. The non-transitory computer-readable medium of claim 11 , wherein the instructions are configured to cause the one or more processors to include the endpoints and the routes in the NoC based on determining that the expected performance level is within threshold range.

15. The non-transitory computer-readable medium of claim 11 , wherein the instructions are configured to cause the one or more processors to select the routes from the data regarding the integrated circuit based on the data regarding performance characteristics for the NoC.

16. The non-transitory computer-readable medium of claim 11 , wherein the endpoints correspond to a portion of the first plurality of registers of the integrated circuit, a portion of the second plurality of registers of the integrated circuit, or both.

17. The non-transitory computer-readable medium of claim 11 , wherein the integrated circuit comprises a programmable logic device.

18. An integrated circuit configured to:

receive instructions regarding a NoC design, wherein the instructions are generated by compiling, a program design associated with a function to be performed by the integrated circuit; and

implement, based on the instructions, a hardware implementation for the function and circuitry corresponding to the NoC design, wherein the NoC design is determined by:

determining a first portion of a plurality of registers to potentially be included in the NoC design;

determining routing information regarding datapaths between registers of the first portion of the plurality of registers;

determining an expected performance associated with the first portion of the plurality of registers;

determining whether the expected performance is within a threshold range; and

including the first portion of the plurality of registers and the datapaths in the NoC design after determining that the expected performance is within the threshold range, wherein the plurality of registers comprises:

a second portion of the plurality of registers configured to route data vertically away from a data source; and

a third portion of the plurality of registers configured to route data horizontally away from the data source.

19. The integrated circuit of claim 18 , comprising a programmable logic device.

20. The integrated circuit of claim 19 , wherein the programmable logic device comprises a field programmable gate array (FPGA).

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2019
From: BAECKLER, GREGG WILLIAM; LANGHAMMER, MARTIN; GRIBOK, SERGEY VLADIMIROVICH
To: INTEL CORPORATION
Reel/Frame 050813/0723 →
Continuity (2)
Provisional Application 62820049 · Mar 18, 2019
Related Publication 20190318058A1 · Oct 17, 2019
Cited By (6)
US 12,204,833 US 12,237,980 US 12,289,384 US 12,380,056 US 12,438,829 US 12,524,590