Memory Controller In-Memory Computation Power Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing-in-memory (CIM) systems face challenges in reducing power consumption during weight updates in multiply-accumulate (MAC) operations, which affects the efficiency of artificial intelligence (AI) applications.
Innovation Solution
The implementation of a memory device with a memory controller that disables pre-charging operations and write operations until the next update command is received, thereby reducing unnecessary charging currents and power consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If pre-charging operations are performed continuously in memory array, then data access speed is maintained, but power consumption increases due to unnecessary charging currents
Solution Approach 1:
The patent implements periodic pre-charging operations where the memory controller selectively activates pre-charging only when update commands are received, rather than continuously charging. This periodic action maintains data access capability while eliminating unnecessary charging currents during idle periods, directly resolving the contradiction between speed maintenance and power consumption reduction
2Productivity
If write operations are continuously enabled in memory array, then weight updates can be performed immediately, but power consumption increases due to continuous operation
Solution Approach 1:
The patent makes the write operation capability dynamic by enabling it only when update commands are detected by the memory controller. This dynamic control allows the system to adapt between active write operations for weight updates and idle states for power saving, resolving the contradiction between maintaining update readiness and reducing continuous power consumption
Data Source
AI summary
A method for performing an in-memory computation includes: storing data in memory cells of a memory array, the data including weights for computation; determining whether an update command to change at least one of the weights is received; in response to receiving the update command, performing a write operation on the memory array to update the at least one weight; and disabling the write operation on the memory array until receiving a next update command to change the at least one weight.


