Software Defined FIFO Memory for Data Stream Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional cache memories in data processing systems are inefficient for predictable data streams due to high circuit complexity and reactive operation, leading to delays during cache fills when accessing sequential data like audio or video streams.
Innovation Solution
A local FIFO memory with a memory controller that manages data storage and retrieval asynchronously, allowing for rapid access to a portion of the data stream stored in a circular buffer within a RAM, reducing storage needs and circuit overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional cache memory is used to store data stream values, then fast access to frequently used data is achieved, but circuit complexity and control overhead increase significantly
Solution Approach 1:
The cache memory is segmented into multiple ways (e.g., 4-way set associative cache), where each way contains a set of cache lines. This segmentation allows parallel access paths while reducing the complexity of any single control unit, as the tag comparison and selection logic is distributed across multiple independent ways.
Solution Approach 2:
The cache organization uses a multi-dimensional structure with sets, ways, and lines, transforming a simple linear storage into a hierarchical matrix structure. This dimensional organization enables efficient addressing and access patterns while distributing control logic across multiple dimensions, reducing overall circuit complexity.
2Adaptability or versatility
If traditional cache memory operates reactively to handle new data access, then data can be stored and retrieved, but access delays occur due to cache misses requiring cache fills
Solution Approach 1:
The cache system performs preliminary actions by pre-fetching data into the cache before it is actually needed by the processor. When the processor requests data, if it is already in the cache (cache hit), no additional delay occurs. The cache controller proactively manages data movement based on access patterns, eliminating reactive delays.
Solution Approach 2:
The cache system uses feedback mechanisms where the cache controller monitors access patterns, hit/miss ratios, and data usage frequency. Based on this feedback, the controller dynamically adjusts cache management decisions such as which data to retain, when to evict lines, and how to allocate cache resources, thereby optimizing performance and reducing delays adaptively.
3Adaptability or versatility
If cache memory provides flexible mapping of individual cache rows to separate memory areas, then data access versatility is improved, but control overhead and circuit complexity increase
Solution Approach 1:
The cache controller is designed as a universal control unit that can handle multiple mapping schemes (direct mapping, set associative mapping, fully associative mapping) and multiple access patterns through a single unified architecture. This multi-functional design reduces the need for separate control circuits for different mapping types, thereby reducing overall control overhead while maintaining versatility.
Data Source
AI summary
A local FIFO memory 2 is provided within a local RAM memory 4 to provide access to source data values. A local controller 10 manages the asynchronous fetching of source data values to the local FIFO memory 2 and the optional writing back of these data values after processing to a source/sync memory 32. One or more local head pointers and one or more local tail pointers are used by the local memory controller 10 to manage storage within the local FIFO memory 2 which is configured as a circular buffer; The remaining space within the local RAM 4 may be used for further data and the partitioning between FIFO operation and further data storage is programmable such that the same memory storage 2 can be used for multiple purposes as required.


