Software Defined FIFO Memory for Data Stream Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata access speedVSAvoidcircuit complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvedata access flexibilityVSAvoidcache fill delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvecache mapping flexibilityVSAvoidcontrol overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7630388B2Software defined FIFO memory for storing a set of data from a stream of source data
Publication Date: 2009.12.08 ARM LTD
  • US7630388B2 patent drawing
  • US7630388B2 patent drawing
  • US7630388B2 patent drawing

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.