Credit-Based Die-to-Die Flow Control for Reliable Streaming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data communication systems face issues with network communication reliability due to receivers being overwhelmed by data, leading to dropped data and decreased performance, particularly in systems with high latency and varying bandwidths.
Innovation Solution
Implementing a credit-based flow control mechanism for die-to-die interfaces, where credits are managed based on buffer sizes and bandwidths to regulate data transmission, allowing packets to be transmitted only when credits are available, and adjusting credits based on reception acknowledgments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a flow control mechanism is implemented to prevent receiver overload, then data loss is reduced, but system latency increases due to transmission pauses
Solution Approach 1:
The patent implements preliminary action by pre-allocating buffer spaces at the receiver side before data transmission begins. The receiver notifies the sender of the available buffer capacity in advance, allowing the sender to prepare and transmit data continuously without waiting for intermediate acknowledgments. This proactive buffer allocation resolves the contradiction by ensuring reliability through pre-established flow control while minimizing latency through continuous transmission.
Solution Approach 2:
The patent achieves continuity of useful action by enabling the sender to transmit data packets continuously as long as the pre-notified buffer capacity is available. Instead of pausing for individual acknowledgments, the sender maintains continuous transmission until the buffer is full, thereby reducing system latency while preserving data transfer reliability through the pre-established flow control mechanism.
2Reliability
If buffer size is increased to accommodate more data, then data loss is prevented, but memory usage and system complexity increase
Solution Approach 1:
The patent applies local quality by implementing flow control at the specific interface level between sender and receiver, rather than requiring system-wide buffer management. Each communication pair independently manages its own buffer allocation and notification mechanism, localizing the complexity to individual data paths while maintaining overall system reliability. This approach prevents data loss without requiring centralized complex buffer management across the entire system.
3Reliability
If credit-based flow control is implemented to regulate transmission, then receiver overload is prevented, but transmission efficiency decreases due to credit management overhead
Solution Approach 1:
The patent extracts the flow control signaling from the data transmission stream by using separate notification messages for buffer capacity updates. This separation allows the main data transmission to proceed efficiently without being interrupted by credit management protocols, while still providing reliable receiver protection through the independent buffer notification mechanism. The extraction of control signaling from data flow resolves the contradiction between receiver protection and transmission efficiency.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Provided are systems (300), methods, and apparatuses (305-310) for streaming protocol flow control for die-to-die interfaces. In some examples, the systems (300), devices (305-310), and methods include allowing a first packet to be transmitted from a source (305) to a destination (310) based on a credit count (345); decrementing the credit count (345) based on transmitting a flit of the first packet to the destination (310); and incrementing the credit count (345) based on receiving a first return credit from the destination (310). In some examples, the systems (300), devices (305-310), and methods include receiving, at a destination (310) from a source (305), a first return credit in a header flit of a first packet; incrementing a credit count (385) based on receiving the first return credit from the source (305); allowing a second packet to be transmitted to the source (305) based on the credit count (385); and decrementing the credit count (385) based on transmitting a flit of the second packet to the source (305).