Function-in-Memory Buffer for Asynchronous Data Flow
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In-memory computation systems face inefficiencies due to memory access bottlenecks, particularly in passing intermediate results between function-in-memory circuits, which can hinder performance in tasks like matrix multiplication.
Innovation Solution
The implementation of a producer-consumer model allows for asynchronous data processing, where function-in-memory circuits can start calculations on partial results without waiting for completion, using buffers and pointers to manage data flow and optimize memory access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If function-in-memory circuits wait for complete intermediate results before starting next computation stage, then data accuracy is ensured, but computation time increases and productivity decreases
Solution Approach 1:
The patent implements preliminary action by allowing the second function-in-memory circuit to start processing partial results from the first circuit before the first circuit completes its computation. The producer-consumer model with buffers enables the consumer to prepare for next operations in advance, overlapping computation stages and eliminating idle waiting time while maintaining data integrity through proper synchronization mechanisms.
2Stability of the object's composition
If function-in-memory circuits use traditional synchronous computation model, then data consistency is maintained, but memory access bottlenecks increase and latency increases
Solution Approach 1:
The patent implements continuity of useful action through the producer-consumer model where the first function-in-memory circuit continuously produces intermediate results that are immediately consumed by the second circuit. This continuous data flow eliminates idle waiting periods, keeps memory access channels busy with meaningful data transfers, and maintains computational momentum without the interruptions inherent in synchronous models.
Solution Approach 2:
The patent uses buffers as intermediary structures between the producer and consumer function-in-memory circuits. These buffers act as mediators that decouple the synchronous dependency, allowing asynchronous data transfer while maintaining consistency. The buffers absorb timing variations and enable smooth data flow without blocking either circuit, thereby reducing memory access latency while preserving data integrity.
3Reliability
If function-in-memory circuits block for fully ready inputs, then computation correctness is ensured, but overall system efficiency decreases
Solution Approach 1:
The patent applies preliminary action by enabling the consumer circuit to prepare for and process partial results before the producer circuit finishes generating complete intermediate values. This allows the system to progress through computation stages without blocking, maintaining correctness through controlled data flow while significantly improving efficiency by eliminating idle time.
Data Source
AI summary
A method for in-memory computing. In some embodiments, the method includes: executing, by a first function-in-memory circuit, a first instruction, to produce, as a result, a first value, wherein a first computing task includes a second computing task and a third computing task, the second computing task including the first instruction; storing, by the first function-in-memory circuit, the first value in a first buffer; reading, by a second function-in-memory circuit, the first value from the first buffer; and executing, by a second function-in-memory circuit, a second instruction, the second instruction using the first value as an argument, the third computing task including the second instruction, wherein: the storing, by the first function-in-memory circuit, of the first value in the first buffer includes directly storing the first value in the first buffer.


