FIFO Almost Full Signal Encoding for Pipeline Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional FIFO designs with pipeline registers face inefficiencies due to premature triggering of the Almost Full signal, leading to reduced system throughput, especially in latency-sensitive systems with small data bursts, as they incorrectly assume all pipeline registers contain valid data, causing unnecessary stalls and delays.

Innovation Solution

A method and circuit that dynamically generate an Almost Full signal by encoding data valid bits to accurately count valid data words in pipeline registers, ensuring the signal is triggered only when the number of valid data words equals the remaining empty slots in the FIFO, thereby optimizing data transfer and preventing premature overflow or underflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the Almost Full signal is generated based on the worst-case assumption that all pipeline registers contain valid data, then the FIFO overflow is prevented, but the system throughput is reduced due to premature signal triggering

Engineering Contradiction:
ImproveFIFO overflow preventionVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements feedback by encoding data valid bits from pipeline registers and feeding this information back to dynamically adjust the Almost Full signal generation. The FIFO receives encoded information about actual valid data positions, allowing it to adapt its Almost Full threshold based on real pipeline state rather than static worst-case assumptions.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes the Almost Full signal dynamic by changing it from a fixed threshold based on worst-case assumptions to a variable threshold that adapts to the actual number of valid data words in the pipeline. The encoding module dynamically generates different Almost Full thresholds based on the encoded data valid bits, allowing the system to optimize throughput while maintaining reliability.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If a shallow FIFO is used to reduce latency, then the latency requirement is met, but the system cannot handle small data bursts efficiently due to premature Almost Full triggering

Engineering Contradiction:
ImprovelatencyVSAvoiddata burst handling capability
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-encoding the data valid bits from pipeline registers before they reach the FIFO. This encoding prepares information about the actual valid data positions in advance, allowing the FIFO to make accurate Almost Full determinations without needing a deep buffer to accommodate uncertainty about pipeline contents.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the Almost Full signal is triggered when the number of valid data words equals the remaining empty slots, then the throughput is maximized, but the risk of FIFO overflow increases without proper validation

Engineering Contradiction:
ImprovethroughputVSAvoidFIFO overflow prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an encoding module as an intermediary between the pipeline registers and the FIFO. This intermediary encodes the data valid bits and provides accurate information about which pipeline registers contain valid data, enabling the FIFO to safely trigger the Almost Full signal at the correct threshold without risking overflow.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7620752B1Circuit for and method of processing data input to a first-in first-out memory
Publication Date: 2009.11.17 XILINX INC
  • US7620752B1 patent drawing
  • US7620752B1 patent drawing
  • US7620752B1 patent drawing

AI summary

A method of processing data input to a first-in first-out memory is disclosed. The method comprises steps of receiving input data words from a pipeline stage at an input of the first-in first-out memory; receiving data valid bits associated with the pipeline stage; generating a count associated with the data valid bits; and coupling the count to the first-in first-out memory. The step of generating a count associated with the data valid bits may comprise encoding the data valid bits to generate a valid data word representing the number of pipeline stages having valid data. The method of further comprises a step of generating an almost full signal based upon the count, and in particular generating an almost full signal when a read pointer incremented by the count of valid bits in the pipeline stages equals a write pointer. A circuit for processing data is also disclosed.