IP Library Granted Patent US 12,061,983
Granted Patent B2
US 12,061,983 · App. 18/508,156 · Granted Aug 13, 2024

Neural core, neural processor, and data processing method thereof

Inventors: Minhoo Kang (Seongnam-si, KR); Wongyu Shin (Seongnam-si, KR)
Assignee: Rebellions Inc.
G06N3/08G06F3/0625G06F3/0659G06F3/0673G06N3/063
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,061,983
App. No.
18/508,156
Granted
Aug 13, 2024
Kind
B2
Abstract

A neural core, a neural processor, and a data processing method thereof are provided. The neural core includes a processing unit configured to generate output activation by performing calculation of input activation and a weight, a memory load/store unit configured to generate a memory calculation request requesting one-dimensional calculation of summing the output activation and target data, and a memory configured to receive the output activation and the memory calculation request, import the target data from a memory address in response to the memory calculation request, generate output data by performing the one-dimensional calculation of the target data and the output activation, and store the generated output data in the memory address.

Claims (50)

1. A neural processing device, comprising:

a memory comprising adding circuitry and a plurality of memory cells; and

a processor operably coupled to the memory,

wherein the processor is configured to cause:

receiving input activation values and weight values for a neural network;

performing a weighted-sum of the input activation values with the weight values to generate a partial sum value for the neural network; and

requesting the memory to add the generated partial sum value and a previous accumulated partial sum value in a memory cell referenced by a memory address by using the adding circuitry within the memory to generate a current accumulated partial sum value for the neural network and to store the current accumulated partial sum value in the memory cell referenced by the memory address.

2. The processing device of claim 1 , further comprising:

load-store unit circuitry configured to load and store operations between the memory and the processor,

wherein requesting the memory further comprises:

sending the generated partial sum value to the load-store unit circuitry.

3. The processing device of claim 2 ,

wherein the load-store unit circuitry is configured to cause:

in response to receiving the generated partial sum value, executing an instruction to send a request requesting the memory to add the generated partial sum value and the previous accumulated partial sum value stored in the memory cell referenced by the memory address indicated by the instruction by using the adding circuitry within the memory to generate the current accumulated partial sum value and to store the current accumulated partial sum value in the memory cell referenced by the memory address indicated by the instruction.

4. The processing device of claim 3 ,

wherein the memory is configured to cause:

in response to receiving the request, reading the previous accumulated partial sum value stored in the memory cell referenced by the memory address indicated by the request;

adding, by using the adding circuitry within the memory, the generated partial sum value indicated by the request and the previous accumulated partial sum value to generate the current accumulated partial sum value; and

storing the current accumulated partial sum value in the memory cell referenced by the memory address indicated by the request.

5. The processing device of claim 4 ,

wherein the adding circuitry is associated with a set of memory cells belonging to a bank in the memory.

6. The processing device of claim 5 ,

wherein the previous accumulated partial sum value stored in the memory cell referenced by the memory address is read and the current accumulated partial sum value is stored via a port which is used by both the adding circuitry and a controller controlling the bank.

7. The processing device of claim 5 ,

wherein the memory comprises a plurality of ports which are used to read and write data in the set of memory cells.

8. The processing device of claim 7 ,

wherein the previous accumulated partial sum value stored in the memory cell referenced by the memory address is read and the current accumulated partial sum value is stored via a port which is determined as an unused port among the plurality of ports.

9. The processing device of claim 7 ,

wherein the previous accumulated partial sum value stored in the memory cell referenced by the memory address is read and the current accumulated partial sum value is stored via a port which is dedicated to the adding circuitry among the plurality of ports.

10. The processing device of claim 4 ,

wherein the adding circuitry comprises a plurality of adding circuits, and

each of the plurality of adding circuits is associated with a respective one of the plurality of memory cells,

wherein adding the generated partial sum value and the previous accumulated partial sum value comprises:

adding, by an adding circuit associated with the memory cell referenced by the memory address, the generated partial sum value and the previous accumulated partial sum value to generate the current accumulated partial sum value.

11. A method performed by a processing device comprising a memory and a processor operably coupled to the memory, wherein the memory comprises adding circuitry and a plurality of memory cells, the method comprising:

receiving, by the processor, input activation values and weight values for a neural network;

performing, by the processor, a weighted-sum of the input activation values with the weight values to generate a partial sum value; and

requesting, by the processor, the memory to add the generated partial sum value and a previous accumulated partial sum value stored in a memory cell referenced by a memory address by using the adding circuitry within the memory to generate a current accumulated partial sum value and to store the current accumulated partial sum value in the memory cell referenced by the memory address.

12. The method of claim 11 , wherein the processing device further comprises load-store unit circuitry configured to load and store operations between the memory and the processor,

the method further comprising:

sending, by the processor, the generated partial sum value to the load-store unit circuitry.

13. The method of claim 12 , further comprising:

in response to receiving the generated partial sum value, executing an instruction to send, by the load-store unit circuitry, a request requesting the memory to add the generated partial sum value and the previous accumulated partial sum value stored in the memory cell referenced by the memory address indicated by the instruction by using the adding circuitry within the memory to generate the current accumulated partial sum value and to store the current accumulated partial sum value in the memory cell referenced by the memory address indicated by the instruction.

14. The method of claim 13 , further comprising

reading, by the adding circuitry within the memory, the previous accumulated partial sum value stored in the memory cell referenced by the memory address indicated by the request in response to receiving the request;

adding, by the adding circuitry within the memory, the generated partial sum value and the previous accumulated partial sum value to generate the current accumulated partial sum value; and

storing the current accumulated partial sum value in the memory cell referenced by the memory address indicated by the request.

15. The method of claim 14 , wherein the adding circuitry is associated with a set of memory cells belonging to a bank in the memory.

16. The method of claim 15 ,

wherein the previous accumulated partial sum value stored in the memory cell referenced by the memory address is read and the current accumulated partial sum value is stored via a port which is used by both the adding circuitry and a controller controlling the bank.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded May 22, 2025
From: REBELLIONS INC.; SAPEON KOREA INC.
To: REBELLIONS INC.
Reel/Frame 071349/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2023
From: KANG, MINHOO; SHIN, WONGYU
To: REBELLIONS INC.
Reel/Frame 065546/0935 →
Priority Claims (1)
KR 10-2022-0185936 · Dec 27, 2022 · national
Continuity (1)
Related Publication 20240211757A1 · Jun 27, 2024