Memory Module Compute-in-Memory Logic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Centralized computing environments face challenges in efficiently processing sequences of computationally intensive functions due to high data consumption and generation of intermediate terms, leading to increased demand for improved data processing and memory management.
Innovation Solution
Implementing 'compute in memory' logic and dynamic data streaming between memory modules to enable efficient execution of multiple computationally intensive stages within a memory module, reducing data movement and overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is processed using traditional centralized computing environments, then computation can be performed, but data movement overhead and processing time increase significantly
Solution Approach 1:
The patent combines memory storage and computation functions into a single memory module. The function execution circuitry is integrated within the memory module, allowing data to be processed in-place without being transferred to separate compute units. This merging of storage and computation eliminates data movement overhead and significantly improves processing efficiency for computationally intensive functions.
Solution Approach 2:
The patent introduces memory streaming circuitry as an intermediary component within the memory module. This circuitry enables efficient data streaming between different locations within the same memory module, allowing intermediate results to be passed between computational stages without leaving the memory module. This mediator component resolves the contradiction by providing fast in-module data transfer while maintaining the integrated memory-compute architecture.
2Adaptability or versatility
If multiple computationally intensive functions are executed sequentially in centralized environments, then complex processing can be achieved, but the system scalability is limited
Solution Approach 1:
The patent divides the computational system into multiple independent memory modules, each capable of executing computationally intensive functions autonomously. Each memory module contains its own function execution circuitry and can process data independently. This segmentation allows the system to scale by simply adding more memory modules without increasing overall system complexity, as each module operates as a self-contained unit.
Solution Approach 2:
The memory modules are designed with universal function execution circuitry that can execute multiple different computationally intensive functions. The same memory module can perform matrix multiplication, vector operations, or other computational tasks by loading different function implementations. This multi-functionality enhances system adaptability and scalability while avoiding the need for specialized hardware for each computational task.
3Speed
If data is streamed between separate memory and compute units, then data can be accessed, but transfer overhead reduces processing speed
Solution Approach 1:
The patent merges memory storage and data transfer functions within the same memory module that performs computation. The memory streaming circuitry is integrated into the memory module, allowing data to be streamed between computational stages without being physically transferred to separate compute units. This eliminates the energy overhead associated with inter-component data transfer while maintaining high processing speed.
Data Source
Figure 1a
Figure 1b
Figure 2a
AI summary
An apparatus is described. The apparatus includes a memory module. The memory module includes a memory. The memory module includes function execution circuitry. The function execution circuitry is configurable to execute a producer function and a consumer function of a multi-function process. The memory module includes an interface to be coupled to a memory controller.