IP Library Granted Patent US 12,287,729
Granted Patent B2
US 12,287,729 · App. 18/599,031 · Granted Apr 29, 2025

Neural processing device and method for transmitting data thereof

Inventors: Sungpill Choi (Seongnam-si, KR); Jae-Sung Yoon (Seongnam-si, KR)
Assignee: Rebellions Inc.
G06F12/023G06F12/084G06N3/063G06F2212/1016
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,287,729
App. No.
18/599,031
Granted
Apr 29, 2025
Kind
B2
Abstract

A processing device comprises processors, a first memory shared by the processors, and a cache comprising a second memory comprising a plurality of memory units, each of the plurality of memory units in the second memory being associated with a respective one of a plurality of request identifiers. The cache receives a memory read request including a request identifier and a memory address from at least one of the processors, identifies an allocated memory address identifier for the memory address, accesses the first memory to read data of the memory address, obtains one or more request identifiers which requested data of the memory address from the second memory based on the allocated memory address identifier, and transmitting the data of the memory address to one or more processors which requested data of the memory address based on the one or more request identifiers.

Claims (55)

1. A processing device comprising processing circuitry comprising:

a plurality of processors;

a first memory shared by the plurality of processors; and

a cache comprising a second memory comprising a plurality of memory units, each of the plurality of memory units in the second memory being associated with a respective one of a plurality of request identifiers,

wherein the cache is configured to cause:

receiving, from at least one of the plurality of processors, a memory read request including a request identifier and a memory address,

identifying an allocated memory address identifier for the memory address,

accessing the first memory to read data of the memory address,

obtaining one or more request identifiers which requested data of the memory address from the second memory based on the allocated memory address identifier, and

transmitting the data of the memory address to one or more processors which requested data of the memory address based on the one or more request identifiers,

wherein the cache further comprises:

a third memory including a plurality of memory units, each of the plurality of memory units in the third memory being associated with a respective one of a plurality of memory address identifiers,

wherein the cache is further configured to cause:

reading a memory unit of the third memory based on the allocated memory address identifier to obtain a tail request identifier,

storing the request identifier of the memory read request to a memory unit of the second memory based on the tail request identifier, and

writing the request identifier of the memory read request as the tail request identifier to a memory unit of the third memory based on the allocated memory address identifier.

2. The processing device of claim 1 , wherein obtaining the one or more request identifiers comprises:

accessing a memory unit of the third memory based on the allocated memory address identifier to obtain a head request identifier and a tail request identifier,

accessing the second memory based on the head request identifier and the tail request identifier to obtain the one or more request identifiers, and wherein accessing the second memory based on the head request identifier and the tail request identifier comprises:

reading a memory unit of the second memory based on the head request identifier to obtain a next request identifier and reading a memory unit of the second memory based on the next request identifier unless the next request identifier is the tail request identifier to obtain the one or more request identifiers which requested data of the memory address.

3. The processing device of claim 1 , wherein the cache further comprises:

a fourth memory including a plurality of memory units, each of the plurality of memory units in the fourth memory being associated with a respective one of a plurality of memory address identifiers.

4. The processing device of claim 3 , wherein the cache is further configured to cause:

checking whether the memory address is stored in the fourth memory.

5. The processing device of claim 4 , wherein identifying the allocated memory address identifier for the memory address comprises:

when the memory address is not stored in the fourth memory, allocating the memory address an allocable memory address identifier among the plurality of memory address identifiers, and storing the memory address to a memory unit of the fourth memory based on the allocated memory address identifier.

6. The processing device of claim 4 , wherein identifying the allocated memory address identifier for the memory address comprises:

when the memory address is stored in the fourth memory, identifying a location of a memory unit storing the memory address in the fourth memory as the allocated memory address identifier.

7. The processing device of claim 1 , wherein the memory address is an address indicating a memory unit in the first memory, an address representing a memory array including a plurality of memory units in the first memory, or an address representing a memory pattern including a plurality of memory units in the first memory.

8. A method of operating a processing device comprising a plurality of processors, a shared memory shared by the plurality of processors, and a cache, wherein the cache comprises a first table comprising a plurality of elements, each of the plurality of elements in the first table being associated with a respective one of a plurality of request identifiers, the method comprising:

receiving, by the cache from at least one of the plurality of processors, a memory read request including a request identifier and a memory address;

identifying, by the cache, an allocated memory address identifier for the memory address,

accessing, by the cache, the shared memory to read data of the memory address;

obtaining, by the cache from the first table, one or more request identifiers which requested data of the memory address based on the allocated memory address identifier; and

transmitting, by the cache, the data of the memory address to one or more processors which requested data of the memory address based on the one or more request identifiers,

wherein the cache further comprises:

a second table including a plurality of elements, each of the plurality of elements in the second table being associated with a respective one of a plurality of memory address identifiers,

wherein the method is further comprising:

reading, by the cache, an element of the second table based on the allocated memory address identifier to obtain a tail request identifier;

storing, by the cache, the request identifier of the memory read request to an element of the first table based on the tail request identifier; and

writing, by the cache, the request identifier of the memory read request as the tail request identifier to an element of the second table based on the allocated memory address identifier.

9. The method of claim 8 , wherein obtaining the one or more request identifiers comprises:

accessing an element of the second table based on the allocated memory address identifier to obtain a head request identifier and a tail request identifier, and

accessing the first table based on the head request identifier and the tail request identifier to obtain the one or more request identifiers, and

wherein accessing the first table based on the head request identifier and the tail request identifier comprises:

reading an element of the first table based on the head request identifier to obtain a next request identifier and reading an element of the first table based on the next request identifier unless the next request identifier is the tail request identifier to obtain the one or more request identifiers which requested data of the memory address.

10. The method of claim 8 , wherein the cache further comprises:

a third table including a plurality of elements, each of the plurality of elements in the third table being associated with a respective one of a plurality of memory address identifiers.

11. The method of claim 10 , further comprising:

checking, by the cache, whether the memory address is stored in the third table.

12. The method of claim 11 , wherein identifying the allocated memory address identifier for the memory address comprises:

when the memory address is not stored in the third table, allocating the memory address an allocable memory address identifier among the plurality of memory address identifiers, and storing the memory address to an element of the third table based on the allocated memory address identifier.

13. The method of claim 11 , wherein identifying the allocated memory address identifier for the memory address comprises:

when the memory address is stored in the third table, identifying a location of an element storing the memory address in the third table as the allocated memory address identifier.

14. The method of claim 8 , wherein the memory address is an address indicating a memory unit in the shared memory, an address representing a memory array including a plurality of memory units in the shared memory, or an address representing a memory pattern including a plurality of memory units in the shared memory.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded May 22, 2025
From: REBELLIONS INC.; SAPEON KOREA INC.
To: REBELLIONS INC.
Reel/Frame 071355/0107 →
Priority Claims (1)
KR 10-2022-0118173 · Sep 19, 2022 · national
Continuity (2)
Continuation 18366627 · Aug 7, 2023
Related Publication 20240211389A1 · Jun 27, 2024
References Cited (6)
US 20030200397A1 · McAllister · 2003 [cited by examiner]
US 20220284582A1 · Yang et al. · 2022 [cited by applicant]
JP 2010134628A · 2010 [cited by applicant]
KR 1019940011050B1 · 1994 [cited by applicant]
KR 102258566B1 · 2021 [cited by applicant]
Office Action for KR 10-2022-0118173 by Korean Intellectual Property Office dated Sep. 19, 2024. [cited by applicant]