IP Library › Granted Patent US 12,117,961
Granted Patent B1
US 12,117,961 · App. 18/197,536 · Granted Oct 15, 2024

Networks on chip (NOC) for many-core neural network accelerator

Inventors: Xiaoqian Zhang (Los Altos, CA); Zhibin Xiao (Los Altos, CA)
Assignee: Moffett International Co., Limited
G06F15/7825G06F13/4059G06F15/8015
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 12,117,961
App. No.
18/197,536
Granted
Oct 15, 2024
Kind
B1
Abstract

This application describes a network-on-chip system on a hardware accelerator for accelerating neural network computations. An example NoC system in the NN accelerator may include interconnected routers with routing control circuits and cores respectively coupled to the routers. The cores are arranged into a matrix. Each row of cores are connected with a first uni-directional ring-shape data link and every two adjacent data links are in opposite directions. Each column of cores are connected with a second uni-directional ring-shape data link and every two adjacent data links are in opposite directions. In a given router of the plurality of routers, the routing control circuit is configured to: receive a data package; convert physical addresses of the given router and the target router into logical addresses; determine a routing port of the given router based on the logical addresses; and output the data package through the routing port.

Claims (72)

1. A many-core neural network (NN) accelerator, comprises:

a plurality of routers, each router comprising a routing control circuit, and

a plurality of cores respectively coupled to the plurality of routers to form a Network-on-Chip (NoC);

wherein:

the plurality of cores are arranged, in a logic view, as a matrix, each row of the matrix comprising a same number of cores;

each row of cores are connected, through corresponding routers, in a first uni-directional ring-shape data link and every two adjacent first uni-directional ring-shape data links are in opposite directions;

each column of cores are connected, through corresponding routers, in a second uni-directional ring-shape data link and every two adjacent second uni-directional ring-shape data links are in opposite direction; and

the routing control circuit in each router is configured to manage routing logics for data read from an internal buffer of the coupled core and data received from another router, wherein to manage the routing logics, the routing control circuit is configured to:

convert a physical address of the router to a first logical address;

in response to the router receiving a data package for routing to a target router, convert a physical address of the target router into a second logical address;

determine a routing port of the router based on the first and second logical addresses; and

route the data package through the routing port of the router.

2. The NN accelerator of claim 1 , wherein the plurality of cores are coupled with internal buffers, and the NoC is configured for any core of the plurality of cores to unicast or multicast data from the coupled internal buffer to other cores in the NN accelerator.

3. The NN accelerator of claim 1 , wherein:

for a given core of the plurality of cores, the corresponding router comprises at least two ports, wherein a first port is coupled to the first uni-directional ring-shape data link on which the given core is located, and a second port is coupled to the second uni-directional ring-shape data link on which the given core is located.

4. The NN accelerator of claim 3 , wherein to determine the routing port of the router based on the first and second logical addresses, the routing control circuit of the router is further configured to:

obtain a first address mask corresponding to the first port, the first address mask comprising a bit map indicating one or more cores of the plurality of cores that are reachable through the first port within a predetermined number of hops;

obtain a second address mask corresponding to the second port, the second address mask comprising a bit map indicating one or more cores of the plurality of cores that are reachable through the second port within the predetermined number of hops; and

apply the first and second address masks to the first and second logical addresses to select the routing port from the first port and the second port.

5. The NN accelerator of claim 3 , wherein the routing control circuit of the router is further configured to:

detect a neighboring router corresponding to one of the two ports being defective;

in response to the neighboring router being defective but supporting bypass, keep the port corresponding to the neighboring router open; and

in response to the neighboring router being defective and not supporting bypass, disable the port corresponding to the neighboring router.

6. The NN accelerator of claim 3 , wherein each of the plurality of cores comprises an internal buffer, and

for the given core of the plurality of cores, the corresponding router further comprises a third port coupled to the internal buffer of the given core.

7. The NN accelerator of claim 6 , wherein:

when the third port of the given core is defective, the given core is determined as defective but supporting bypass; and

when one of the first port or the second port is defective, the given core is determined as defective and not supporting bypass.

8. The NN accelerator of claim 1 , wherein to convert the physical address of the router and the physical address of the target router into logical addresses, the routing control circuit of the router is further configured to:

convert the physical address of the router to a predetermined logical address; and

assign logical addresses to other cores in the plurality of cores based on a location of the router, relative locations of the other cores, and the predetermined logical address of the router.

9. The NN accelerator of claim 8 , wherein to assign logical addresses to other cores in the plurality of cores based on a location of the router and the predetermined logical address, the routing control circuit is further configured to:

perform one or more transformation operations on the matrix to move the router to a predetermined location corresponding to the predetermined logical address, wherein the one or more transformation operations comprise rotating the matrix and shifting the matrix left or right.

10. The NN accelerator of claim 9 , wherein the rotating the matrix comprises rotating the matrix by 180 degree.

11. The NN accelerator of claim 1 , wherein the routing control circuit of the router is further configured to:

receive a casted data package addressed to multiple target routers with corresponding physical addresses;

convert physical addresses of the multiple target routers into logical addresses;

determine one or more ports of the router for routing the casted data package based on the logical addresses; and

route the casted data package through the one or more ports of the router.

12. A Network-On-Chip (NoC) system in a neural network accelerator, comprising:

a plurality of routers respectively coupled to a plurality of cores in the neural network accelerator, each router comprising a routing control circuit, wherein:

the plurality of routers are arranged, in a logic view, as a matrix, each row of the matrix comprising a same number of routers;

each row of routers are connected in a first uni-directional ring-shape data link and every two adjacent first uni-directional ring-shape data links are in opposite directions;

each column of routers are connected in a second uni-directional ring-shape data link and every two adjacent second uni-directional ring-shape data links are in opposite directions; and

the routing control circuit in each router is configured to manage routing logics for data read from an internal buffer of the coupled core and data received from another router, wherein to manage the routing logics, the routing control circuit is configured to:

convert a physical address of the router to a first logical address;

in response to the router receiving a data package for routing to a target router, convert a physical address of the target router into a second logical address;

determine a routing port of the router based on the first and second logical addresses; and

route the data package through the routing port of the router.

13. The NoC system of claim 12 , wherein:

for a given core of the plurality of cores, the corresponding router comprises at least two ports, wherein a first port is coupled to the first uni-directional ring-shape data link on which the given core is located, and a second port is coupled to the second uni-directional ring-shape data link on which the given core is located.

14. The NoC system of claim 13 , wherein to determine the routing port of the router based on the logical addresses, the routing control circuit of the router is further configured to:

obtain a first address mask corresponding to the first port, the first address mask comprising a bit map indicating one or more cores of the plurality of cores that are reachable through the first port within a predetermined number of hops;

obtain a second address mask corresponding to the second port, the second address mask comprising a bit map indicating one or more cores of the plurality of cores that are reachable through the second port within the predetermined number of hops; and

apply the first and second address masks to the first and second logical addresses to select the routing port from the first port and the second port.

15. The NoC system of claim 13 , wherein the routing control circuit of the router is further configured to:

detect a neighboring router corresponding to one of the two ports is defective;

in response to the neighboring router being defective but supporting bypass, keep the port corresponding to the neighboring router open; and

in response to the neighboring router being defective and not supporting bypass, disable the port corresponding to the neighboring router.

16. The NoC system of claim 13 , wherein each of the plurality of cores comprises an internal buffer, and

for the given core of the plurality of cores, the corresponding router further comprises a third set of ports coupled to the internal buffer of the given core.

17. The NoC system of claim 12 , wherein to convert the physical address of the router and the physical address of the target router into logical addresses, the routing control circuit of the router is further configured to:

convert the physical address of the router to a predetermined logical address; and

assign logical addresses to other cores in the plurality of cores based on a location of the router, relative locations of the other cores, and the predetermined logical address of the router.

18. A computer-implemented method, comprising:

converting, by a routing control circuit of a router, a physical address of the router to a first logical address, wherein the router is a part of a Network-on-Chip (NoC) in a many-core neural network (NN) accelerator;

receiving, at the router, a data package for routing to a target router in the NoC;

converting a physical address of the target router into a second logical address;

determining a routing port of the router based on the first and second logical addresses, wherein the router comprises at least a first port and a second port, and the determining comprises:

obtaining a first address mask corresponding to the first port, the first address mask comprising a bit map indicating one or more routers in the NoC that are reachable through the first port within a predetermined number of hops;

obtaining a second address mask corresponding to the second port, the second address mask comprising a bit map indicating one or more routers in the NoC that are reachable through the second port within the predetermined number of hops; and

applying the first and second address masks to the first and second logical addresses to select the routing port from the first port and the second port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2023
From: ZHANG, XIAOQIAN; XIAO, ZHIBIN
To: MOFFETT INTERNATIONAL CO., LIMITED
Reel/Frame 065172/0850 →
Continuity (1)
Continuation PCTCN2023086567 · Apr 6, 2023