IP Library Granted Patent US 12699832
Granted Patent B2
US 12699832 · App. 17/979,649 · Granted Aug 4, 2026

Multi-path routing in a network on chip

Inventors: Surya Rajendra Swamy Saranam Chongala (Srikakulam, IN); Nikhil Arun Dhume (Hyderbad, IN); Krishnan Srinivasan (San Jose, CA); Dinesh D. Gaitonde (Fremont, CA)
Assignee: XILINX, INC.
G06F30/3953
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 12699832
App. No.
17/979,649
Granted
Aug 4, 2026
Kind
B2
Abstract

Embodiments herein describe a network on chip (NoC) that implements multi-path routing (MPR) between an ingress logic block and an egress logic block. The multiple paths between the ingress and egress logic blocks can be assigned different alias destination IDs corresponding to the same destination ID. The NoC can use the alias destination IDs to route the packets along the different paths through interconnected switches in the NoC.

Claims (45)

1 . An integrated circuit, comprising:

a first circuit element;

a second circuit element; and

a network on a chip (NoC) configured to communicatively couple the first and second circuit elements, the NoC configured to:

receive, at an ingress logic block, a packet from the first circuit element to be transmitted to the second circuit element,

determine that a destination of the packet uses multi-path routing (MPR) in the NoC, and

assign an alias destination ID corresponding to the destination based on a desired bandwidth usage ratio of a plurality of paths used to transmit data from the ingress logic block to an egress logic block in the NoC, wherein each of the plurality of paths between the ingress logic block and the egress logic block has a different alias destination ID.

2 . The integrated circuit of claim 1 , wherein the NoC is configured to:

receive, at the ingress logic block, a second packet from the first circuit element to be transmitted to the second circuit element; and

upon determining that an address of the packet matches an address of an in-service packet previously transmitted to the destination, assign a same alias destination ID to the second packet that was assigned to the in-service packet so that the second packet uses the same path through the NoC to reach the egress logic block as the in-service packet.

3 . The integrated circuit of claim 2 , wherein the ingress logic block comprises an overlap table configured to store address ranges of in-service packets being transmitted from the ingress logic block to the egress logic block.

4 . The integrated circuit of claim 2 , wherein assigning the same alias destination ID to the second packet as the in-service packet ensures the second packet and the in-service packet arrive at the egress logic block in the same relative order as the second packet and the in-service packet were transmitted from the ingress logic block.

5 . The integrated circuit of claim 1 , wherein the desired bandwidth usage ratio is based on a percentage of a bandwidth in each of the plurality of paths the ingress logic block is permitted to use to transmit packets to the egress logic block, wherein the percentage of the bandwidth the ingress logic block is permitted to use in each of the plurality of paths is less than 100 percent.

6 . The integrated circuit of claim 1 , wherein the NoC is configured to, before determining that the destination of the packet uses MPR:

perform a lookup in an address map in the ingress logic block to identify the destination of the packet.

7 . The integrated circuit of claim 1 , wherein the NoC is configured to:

use the alias destination ID to route the packet through a plurality of interconnected switches to reach the egress logic block.

8 . A method, comprising:

receiving, at an ingress logic block of a NoC, a packet from a first circuit element to be transmitted to a second circuit element coupled to the NoC;

determining that a destination of the packet uses multi-path routing (MPR) in the NoC; and

assigning an alias destination ID corresponding to the destination based on a desired bandwidth usage ratio of a plurality of paths used to transmit data from the ingress logic block to an egress logic block in the NoC, wherein each of the plurality of paths between the ingress logic block and the egress logic block has a different alias destination ID.

9 . The method of claim 8 , further comprising:

receiving, at the ingress logic block, a second packet from the first circuit element to be transmitted to the second circuit element; and

upon determining that an address of the packet matches an address of an in-service packet previously transmitted to the destination, assigning a same alias destination ID to the second packet that was assigned to the in-service packet so that the second packet uses the same path through the NoC to reach the egress logic block as the in-service packet.

10 . The method of claim 9 , wherein the ingress logic block comprises an overlap table configured to store address ranges of in-service packets being transmitted from the ingress logic block to the egress logic block.

11 . The method of claim 9 , wherein assigning the same alias destination ID to the second packet as the in-service packet ensures the second packet and the in-service packet arrive at the egress logic block in the same relative order as the second packet and the in-service packet were transmitted from the ingress logic block.

12 . The method of claim 8 , wherein the desired bandwidth usage ratio is based on a percentage of a bandwidth in each of the plurality of paths the ingress logic block is permitted to use to transmit packets to the egress logic block, wherein the percentage of the bandwidth the ingress logic block is permitted to use in each of the plurality of paths is less than 100 percent.

13 . The method of claim 8 , further comprising, before determining that the destination of the packet uses MPR:

performing a lookup in an address map in the ingress logic block to identify the destination of the packet.

14 . The method of claim 8 , further comprising:

using the alias destination ID to route the packet through a plurality of interconnected switches to reach the egress logic block.

15 . An integrated circuit, comprising:

a first circuit element assigned a first ID;

a second circuit element assigned a second ID different from the first ID; and

a NoC comprising:

an ingress logic block configured to receive packets from the first and second circuit elements to transmit through the NoC to a same egress logic block in the NoC;

wherein the ingress logic block is configured to:

assign a first alias destination ID corresponding to a first path through the NoC used by packets received from the first circuit element to reach the egress logic block, and

assign a second alias destination ID corresponding to a second path through the NoC used by packets received from the second circuit element to reach the egress logic block.

16 . The integrated circuit of claim 15 , wherein the packets received from the first circuit element at the ingress logic block are transmitted only via the first path to the egress logic block and the packets received from the second circuit element at the ingress logic block from the second circuit element is transmitted only via the second path to the egress logic block.

17 . The integrated circuit of claim 15 , wherein the first ID and the second ID are different advanced extensible interface (AXI) IDs.

18 . The integrated circuit of claim 15 , wherein the first path uses a different set of switches in the NoC to reach the egress logic block than the second path.

19 . The integrated circuit of claim 15 , wherein the first and second circuit elements are peripheral devices.

20 . The integrated circuit of claim 15 , wherein the ingress logic block is configured to, before assigning the first and second alias destination IDs:

perform a lookup in an address map in the ingress logic block to identify destinations of the packets received from the first and second circuit elements.