IP Library Granted Patent US 12,498,880
Granted Patent B2
US 12,498,880 · App. 18/714,655 · Granted Dec 16, 2025

Neural network device with configurable shared memory

Inventors: Cornelis Hermanus van Berkel (Heeze, NL); Lennart Bamberg (Hamburg, DE); Luc Johannes Wilhelmus Waeijen (Haelen, NL)
Assignee: Snap Inc.
G06F3/0655G06F3/0604G06F3/0679
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,498,880
App. No.
18/714,655
Granted
Dec 16, 2025
Kind
B2
Abstract

A neural network device includes a shared physical memory that has a plurality of independently accessible memory sections. The neural network device further includes a data processor core to execute instructions. The instructions include at least one instruction involving multiple memory access operations specifying respective logical memory addresses in a plurality of logical memories. During configuration of the neural network device for a particular application, respective memory sections of the plurality of independently accessible memory sections are assigned to respective logical memories of the plurality of logical memories. In accordance with the configuration, each logical memory address of the respective logical memory addresses is mapped to a physical address by providing an indication of a memory section of the plurality of independently accessible memory sections and a row address within the memory section.

Claims (28)

1 . A neural network device comprising:

a shared physical memory comprising a plurality of independently accessible memory sections; and

a data processor core to execute instructions comprising:

at least one instruction that includes, in response to an event message, performing multiple memory access operations that specify respective logical memory addresses in a plurality of logical memories and causes updating of a state value of a neural network component to obtain an updated state value, the multiple memory access operations comprising accessing a first storage location storing a weight to weigh the event message and accessing a second storage location to read a current state value of the neural network component and write the updated state value, the first storage location being of a first logical memory of the plurality of logical memories that stores weight data, and the second storage location being of a second logical memory of the plurality of logical memories that stores state data, each logical memory address of the respective logical memory addresses being mapped, based on a configuration associated with a particular application that is to be maintained during runtime, to a physical address by providing an indication of a memory section of the plurality of independently accessible memory sections and a row address within the memory section, and a configuration stage in which the configuration is applied comprising assigning respective memory sections of the plurality of independently accessible memory sections of the shared physical memory to respective logical memories of the plurality of logical memories.

2 . The neural network device of claim 1 , wherein the plurality of independently accessible memory sections comprises independently accessible memory banks, and the assigning comprises assigning respective sets of the independently accessible memory banks to the respective logical memories.

3 . The neural network device of claim 1 , wherein the plurality of independently accessible memory sections comprises independently accessible memory banks, the assigning comprises assigning respective address ranges within the independently accessible memory banks to the respective logical memories, and concurrent access requests associated with a same memory bank of the independently accessible memory banks are serialized.

4 . The neural network device of claim 1 , wherein the plurality of independently accessible memory sections comprises single ported memory units.

5 . The neural network device of claim 1 , wherein the plurality of independently accessible memory sections is provided by identical memory units.

6 . The neural network device of claim 1 , further comprising a respective buffer for each of the plurality of independently accessible memory sections.

7 . The neural network device of claim 1 , wherein a load operation is prioritized over a store operation in response to concurrent access requests for the load operation and the store operation.

8 . The neural network device of claim 1 , wherein the at least one instruction comprises an instruction in which data words located contiguously in a logical memory of the plurality of logical memories are accessed in a single memory cycle.

9 . The neural network device of claim 1 , wherein the at least one instruction comprises an instruction that performs loading and storing of a plurality of data words in parallel using a single logical memory address of the respective logical memory addresses.

10 . A neural network processing method comprising:

assigning, during a configuration stage, respective memory sections of a plurality of independently accessible memory sections of a shared physical memory of a neural network device to respective logical memories of a plurality of logical memories to apply a configuration associated with a particular application that is to be maintained during runtime; and

executing, by a data processor core of the neural network device, at least one instruction that includes, in response to an event message, performing multiple memory access operations that specify respective logical memory addresses in the plurality of logical memories and causes updating of a state value of a neural network component to obtain an updated state value, the multiple memory access operations comprising accessing a first storage location storing a weight to weigh the event message and accessing a second storage location to read a current state value of the neural network component and write the updated state value, the first storage location being of a first logical memory of the plurality of logical memories that stores weight data, and the second storage location being of a second logical memory of the plurality of logical memories that stores state data, and each logical memory address of the respective logical memory addresses being mapped, based on the configuration, to a physical address by providing an indication of a memory section of the plurality of independently accessible memory sections and a row address within the memory section.

11 . The neural network processing method of claim 10 , wherein the plurality of independently accessible memory sections comprises independently accessible memory banks, and the assigning comprises assigning respective sets of the independently accessible memory banks to the respective logical memories.

12 . The neural network processing method of claim 10 , wherein the plurality of independently accessible memory sections comprises independently accessible memory banks, the assigning comprises assigning respective address ranges within the independently accessible memory banks to the respective logical memories, and concurrent access requests associated with a same memory bank of the independently accessible memory banks are serialized.

13 . The neural network processing method of claim 10 , wherein the plurality of independently accessible memory sections comprises single ported memory units.

14 . The neural network processing method of claim 10 , wherein the plurality of independently accessible memory sections is provided by identical memory units.

15 . The neural network processing method of claim 10 , wherein the neural network device comprises a respective buffer for each of the plurality of independently accessible memory sections, the neural network processing method comprising using a buffer of the respective buffers to temporarily buffer a memory access request to an independent accessible memory section associated with the buffer.

16 . The neural network processing method of claim 10 , further comprising automatically prioritizing a load operation over a store operation in response to concurrent access requests for the load operation and the store operation.

17 . The neural network processing method of claim 10 , wherein the at least one instruction comprises an instruction in which data words located contiguously in a logical memory of the plurality of logical memories are accessed in a single memory cycle.

18 . The neural network processing method of claim 10 , wherein the at least one instruction comprises an instruction that performs loading and storing of a plurality of data words in parallel using a single logical memory address of the respective logical memory addresses.

19 . A neural network system comprising a plurality of neural network devices, each neural network device comprising:

a shared physical memory comprising a plurality of independently accessible memory sections; and

a data processor core to execute instructions comprising:

at least one instruction that includes, in response to an event message, performing multiple memory access operations that specify respective logical memory addresses in a plurality of logical memories and causes updating of a state value of a neural network component to obtain an updated state value, the multiple memory access operations comprising accessing a first storage location storing a weight to weigh the event message and accessing a second storage location to read a current state value of the neural network component and write the updated state value, the first storage location being of a first logical memory of the plurality of logical memories that stores weight data, and the second storage location being of a second logical memory of the plurality of logical memories that stores state data, each logical memory address of the respective logical memory addresses being mapped, based on a configuration associated with a particular application that is to be maintained during runtime, to a physical address by providing an indication of a memory section of the plurality of independently accessible memory sections and a row address within the memory section, and a configuration stage in which the configuration is applied comprising assigning respective memory sections of the plurality of independently accessible memory sections of the shared physical memory to respective logical memories of the plurality of logical memories.

20 . The neural network system of claim 19 , further comprising a message exchange network with a respective network node for each neural network device.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR DATE FROM 05/30/2023 TO 01/22/2024 ASERRONEOUSLY FILED PREVIOUSLY RECORDED ON REEL 68337 FRAME 936. ASSIGNOR(S) HEREBY CONFIRMS THE IP TRANSFER AGREEMENT. Recorded Nov 13, 2025
From: GRAI MATTER LABS S.A.S.
To: SNAP INC.
Reel/Frame 073544/0629 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2024
From: SNAP B.V.
To: SNAP GROUP SAS
Reel/Frame 068193/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2024
From: SNAP B.V.
To: SNAP GROUP SAS
Reel/Frame 068193/0871 →
MERGER Recorded Aug 6, 2024
From: GRAI MATTER LABS B.V.
To: SNAP B.V.
Reel/Frame 068193/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2024
From: BAMBERG, LENNART; WAEIJEN, LUC JOHANNES WILHELMUS
To: SNAP B.V.
Reel/Frame 068194/0170 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2024
From: VAN BERKEL, CORNELIS HERMANUS
To: SNAP B.V.
Reel/Frame 068194/0322 →
MERGER Recorded Aug 6, 2024
From: GRAI MATTER LABS S.A.S.
To: SNAP GROUP SAS
Reel/Frame 068194/0389 →
IP TRANSFER AGREEMENT Recorded Aug 6, 2024
From: GRAI MATTER LABS S.A.S.
To: SNAP INC.
Reel/Frame 068337/0936 →
Priority Claims (1)
EP 21290079 · Nov 30, 2021 · regional
Continuity (1)
Related Publication 20250021259A1 · Jan 16, 2025
References Cited (22)
US 6356991B1 · Bauman et al. · 2002 [cited by applicant]
US 6546453B1 · Kessler et al. · 2003 [cited by applicant]
US 8724423B1 · Zhou et al. · 2014 [cited by applicant]
US 20120131257A1 · Rudosky et al. · 2012 [cited by applicant]
US 20130073822A1 · Sandel et al. · 2013 [cited by applicant]
US 20140082322A1 · Loh et al. · 2014 [cited by applicant]
US 20140310482A1 · Iyer et al. · 2014 [cited by applicant]
US 20180285254A1 · Baum et al. · 2018 [cited by applicant]
US 20210019600A1 · Huang · 2021 [cited by examiner]
US 20210200447A1 · Gupta · 2021 [cited by examiner]
WO WO2023099603A1 · 2023 [cited by applicant]
“International Application Serial No. PCT/EP2022/083923, International Search Report mailed Jan. 31, 2023”, 6 pgs. [cited by applicant]
“International Application Serial No. PCT/EP2022/083923, Written Opinion mailed Jan. 21, 2023”, 9 pgs. [cited by applicant]
“Chinese Application Serial No. 202280085938.0, Voluntary Amendment filed Jan. 7, 2025”, w/ English claims, 10 pgs. [cited by applicant]
“European Application Serial No. 21290079.9, Extended European Search Report mailed Apr. 29, 2024”, 11 pgs. [cited by applicant]
“European Application Serial No. 22822587.6, Response to Communication pursuant to Rules 161(2) and 162 EPC filed Dec. 19, 2024”, 26 pgs. [cited by applicant]
“International Application Serial No. PCT/EP2022/083923, International Preliminary Report on Patentability mailed Jun. 13, 2024”, 11 pgs. [cited by applicant]
“Korean Application Serial No. 10-2024-7021570, Voluntary Amendment Filed Jul. 18, 2025”, w/ English Claims, 16 pgs. [cited by applicant]
“New international patent application in the name of GrAl Matter Labs S.A.S. claiming priority from EP 21290079.9 filed on Nov. 30, 2021”, PCT Direct / informal comments filed Nov. 29, 2022, 10 pgs. [cited by applicant]
Akopyan, Filipp, “True North: Design and Tool Flow of a 65 mW 1 Million Neuron Programmable Neurosynaptic Chip”, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 34, No. 10, (Oct. 2015… [cited by applicant]
Davies, Mike, et al., “Loihi: A Neuromorphic Manycore Processor with On-Chip Learning”, IEEE Micro, 38(1), (2018), 82-99. [cited by applicant]
Demler, Mike, “BrainChip Akida is a Fast Learner”, [Online]. Retrieved from the Internet: <URL:https://d1io3yog0oux5.cloudfront.net/brainchipinc/files/BrainChip+Akida+Is+a+Fast+Learner.pdf>, (Oct. 28, 2019), 3 pgs. [cited by applicant]