Adaptive FIFO for Variable-Length Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Prior art synchronous FIFOs are inefficient when dealing with high write clock speeds and variable-length data, as they fail to optimize storage and retrieval efficiently.

Innovation Solution

A synchronous FIFO that latches variable-length data at a write clock speed, combines it with partial-row data, and stores it in the FIFO storage array, using indicators for data length and offsets to manage write and read pointers, operating at a read clock speed that is a fraction of the write clock speed to efficiently handle variable-length data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If prior art synchronous FIFOs use standard storage arrays without latch stages, then the circuit structure is simpler, but they become inefficient when dealing with high write clock speeds and variable-length data

Engineering Contradiction:
Improveefficiency in handling variable-length dataVSAvoidcircuit structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The input data path is segmented into multiple latch stages (first latch stage, second latch stage, etc.) that operate at different times. Each latch stage captures portions of the input data at different clock edges, allowing the system to handle variable-length data efficiently while maintaining a manageable circuit structure through modular segmentation of the data collection process

Inventive Principle:
Principle #1Segmentation

2Productivity

If the read clock speed is the same as write clock speed, then the FIFO operates at maximum speed, but it cannot efficiently handle variable-length data from different latch stages

Engineering Contradiction:
Improvedata throughput speedVSAvoidability to handle variable-length data
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically adjusts the read clock speed based on the actual data length and the state of latch stages. The read clock operates at a fraction of the write clock speed (RCLK = WCLK/N), allowing the FIFO to adaptively collect data from multiple latch stages and combine them efficiently, thereby handling variable-length data while maintaining acceptable throughput performance

Inventive Principle:
Principle #15Dynamics

3Productivity

If the FIFO stores complete rows only, then the storage structure is simpler, but it cannot efficiently store variable-length data with different lengths

Engineering Contradiction:
Improvestorage efficiency for variable-length dataVSAvoidstorage management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The FIFO allows partial filling of rows with variable-length data. When data from latch stages needs to be stored, the system can store complete rows or partial rows as needed, combining data from multiple latch stages into a single row or spreading them across multiple rows. This partial action approach enables efficient storage of variable-length data while maintaining row-based storage simplicity through flexible row utilization

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8806118B2Adaptive FIFO
Publication Date: 2014.08.12 SANDISK TECHNOLOGIES LLC
  • US8806118B2 patent drawing
  • US8806118B2 patent drawing
  • US8806118B2 patent drawing

AI summary

An adaptive synchronous FIFO includes a plurality of input data latch stages that sample variable-length input data at a write clock frequency, and a data compression circuit that combines the variable-length input data, together with partial-row data from a row of the FIFO storage array, and writes the combined data at a read clock frequency. The number of data latch stages is adaptive according to the ratio of the read and write clock frequencies.