In-Memory Computing Non-Volatile Memory for Neural Network Weight Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data transfers between non-volatile and volatile memories and processors are time and power intensive, leading to delays and decreased performance in artificial neural network computations.
Innovation Solution
A non-volatile memory design with multiple memory areas and computing circuits that perform computing operations directly within the memory, eliminating the need for data transfer by applying input values to read paths, generating output currents, and programming storage elements to store weights for neural network layers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If data is transferred between non-volatile memory and processor, then data can be stored persistently, but data transfer is time and power intensive
Solution Approach 1:
The patent merges memory storage functions with computing functions by implementing neural network weight storage and computing operations within the same non-volatile memory device. The memory cells serve dual purposes: storing weight values and performing dot-product computations, thereby eliminating the need for data transfer between separate memory and processor components.
Solution Approach 2:
The non-volatile memory device performs computing operations autonomously without requiring external processor intervention. The memory cells themselves execute neural network computations by applying input voltages and measuring resulting currents, enabling the memory to serve its own computing needs without external assistance.
2Productivity
If data is transferred between non-volatile memory and processor, then computing operations can be performed, but data processing performance decreases
Solution Approach 1:
The patent combines memory and computing functions into a single integrated device. Neural network weight storage and dot-product computations are performed within the same non-volatile memory array, eliminating data transfer delays between separate memory and processor components.
Solution Approach 2:
The patent transitions from a traditional von Neumann architecture with separate memory and processing units to an in-memory computing architecture where computation occurs directly within the memory array. This dimensional shift in computational location eliminates the memory-wall bottleneck and improves data processing performance.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach reduces latency and improves performance by performing all computing operations within the non-volatile memory, eliminating the need for data transfer between memory and processor, thereby enhancing the execution of neural network computations.
Implementation Method 1
a first plurality of storage elements, configured to store values of weights associated with a first plurality of neurons of a neural network
Implementation Method 2
a first computing circuit configured to add currents supplied by the first read paths to generate a first output current
Implementation Method 3
a programming circuit configured to convert the first output current into a first programming current, and to program a first storage element of the second plurality of storage elements by using said first programming current
Data Source
AI summary
A non-volatile memory includes a first area with first storage elements configured to store values associated with first neurons of a network and a second area with second storage elements. A control circuit applies one or more first input values to first read paths, each first read path including one among the first storage elements. A computing circuit adds currents supplied by the first read paths to generate an output current. A programming circuit converts the output current into a programming current, and uses the programming current to program a second storage element.


