# US 12,117,946 B2 · Neural network processor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,117,946 B2
- Document ID: US12117946B2
- Status: Granted
- Kind: B2
- Application number: 18/003,031
- Filed: 2020-10-12
- Published: 2023-08-03
- Granted: 2024-10-15
- Earliest claimed: 2020-06-22
- Assignees: FuriosaAI Co.
- Applicants: FuriosaAI Co.
- Inventors: Han Joon Kim; Young Geun Choi; Byung Chul Hong
- Web page: https://patentgrep.com/patent/US12117946B2

## CPC

- G06F 13/20: for access to input/output bus
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/0499: Feedforward networks
- G06N 3/063: using electronic means
- G06F 2213/40: Bus coupling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

The present specification discloses a calculation processing device which has a high processing rate with low cost. The calculation processing device according to the present specification is a calculation processing device including a fetch unit which reads, from a memory, data required for a calculation to perform processing of a neural network, and provides the data to a calculation unit. The fetch unit may comprise: multiple routers each having a data processing mapping table in which a scheme of processing input data is recorded according to a node identifier (ID) of the input data; and a fetch network controller which controls respective data processing mapping tables of the multiple routers.

## Claims

### Claim 1

A calculation processing device including a fetch unit which reads data required for a calculation for performing processing of a neural network from a memory and provides the data to an operation unit, wherein the fetch unit comprises:
a plurality of routers each having a data processing mapping table in which a method of processing input data is recorded according to a node identifier (ID) of the input data; and
a fetch network controller configured to rebuild the data processing mapping tables of the plurality of routers to create a software topology in accordance with a calculation type, wherein
the plurality of routers form a one-dimensional (1D) mesh hardware topology, and
each of the routers includes:
a main input port to which data is input from the memory;
a first transmission output port configured to transmit the data to an adjacent first router;
a first transmission input port to which data received from the adjacent first router is input;
a second transmission output port configured to transmit the data to an adjacent second router;
a second transmission input port to which data received from the adjacent second router is input; and
a main output port configured to provide the data to the operation unit.

### Claim 2 (depends on 1)

The calculation processing device of claim 1, wherein the data processing mapping tables store information about whether or not to block, reflect, and output the input data.

### Claim 3 (depends on 2)

The calculation processing device of claim 2, wherein the fetch network controller sets whether or not to block, reflect, and output the input data in accordance with a topology to be reconfigured.

### Claim 4 (depends on 3)

The calculation processing device of claim 3, wherein the fetch network controller equally sets blocking and outputting in the data processing mapping tables of the routers belonging to the same group in the reconfigured topology.

### Claim 5 (depends on 1)

The calculation processing device of claim 1, wherein the memory includes as many data memory slices as a number of the plurality of routers.

### Claim 6 (depends on 5)

The calculation processing device of claim 5, wherein the fetch unit comprises:
a network interface to which data stored in each of the data memory slices is fetched;
a fetch network configured to transmit the data fetched to the network interface; and
a feed module configured to provide the data received from the fetch network to the operation unit, wherein
the plurality of routers and the fetch network controller are included in the fetch network.

### Claim 7 (depends on 6)

The calculation processing device of claim 6, wherein the network interface comprises:
a fetch buffer configured to store the fetched data; and
an interface controller configured to give node identifiers (IDs) each corresponding to the data memory slices to the fetched data.

### Claim 8 (depends on 7)

The calculation processing device of claim 7, wherein the interface controller controls a timing of inputting the fetched data to each of the routers in accordance with each of the node IDs.

### Claim 9 (depends on 8)

The calculation processing device of claim 8, wherein the interface controller calculates initial waiting times of the fetched data in accordance with the node IDs and inputs the fetched data to the routers after the calculated initial waiting times.

### Claim 10 (depends on 9)

The calculation processing device of claim 9, wherein the interface controller calculates the initial waiting time using the node IDs and a variable in accordance with a software topology structure of the routers configured through the data processing mapping tables by the fetch network controller.

### Claim 11 (depends on 10)

The calculation processing device of claim 10, wherein the interface controller calculates an intermediate waiting time using the variable in accordance with the software topology structure of the routers.

### Claim 12 (depends on 11)

The calculation processing device of claim 11, wherein the interface controller inputs a preset size of data to each of the routers and after the intermediate waiting time ends, inputs the preset size of data again to each of the routers.

### Claim 13 (depends on 12)

The calculation processing device of claim 12, wherein the interface controller adds the calculated intermediate waiting time to a waiting time of previous data and determines whether the intermediate waiting time has ended.
