Credit Management Unit for Flow-Controlled Interfaces
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Credit-based flow control mechanisms in digital systems face inefficiencies due to memory allocation granularity issues, leading to suboptimal bandwidth utilization as the number of credits advertised is less than what is possible, resulting in reduced achievable bandwidth.
Innovation Solution
A credit management unit dynamically adjusts buffer memory allocation and credits based on packet data size, allowing for early freeing of credits when packets incur fewer unused data credits, and adaptively managing header and data credits to match traffic patterns, thereby optimizing memory usage and bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If buffer memory is allocated in fixed granules larger than data credit size, then memory allocation is simplified, but bandwidth utilization deteriorates due to unused buffer space
Solution Approach 1:
The buffer memory is segmented into multiple buffer granules, each capable of storing one or more data credits. The credit management unit tracks and manages credits at the fine-grained data credit level rather than the coarse buffer granule level, allowing precise allocation and freeing of credits based on actual packet sizes.
Solution Approach 2:
The system dynamically adjusts the number of available credits based on actual buffer usage and packet sizes. When packets are received and processed, credits are freed dynamically rather than being locked in fixed buffer allocations, allowing the system to adapt to varying traffic patterns and maximize bandwidth utilization.
2Reliability
If full memory granule is allocated for each transmission, then buffer overrun is prevented, but credit availability deteriorates reducing achievable bandwidth
Solution Approach 1:
Instead of allocating a full buffer granule for every possible transmission, the system allocates buffer space partially based on the actual size of incoming packets. The credit management unit calculates the precise number of credits needed for each packet and allocates only that amount of buffer space, avoiding the waste of allocating full granules for small packets.
Solution Approach 2:
The system changes the parameter of buffer allocation from fixed granule-based to variable size-based on actual packet data. This allows the buffer allocation to match the actual transmission size, preventing buffer overruns while maximizing the number of available credits for concurrent transmissions.
3Reliability
If credits are freed only after packet consumption, then data integrity is ensured, but credit availability deteriorates causing transmission delays
Solution Approach 1:
The credit management unit performs preliminary actions by freeing credits earlier in the process, specifically when the packet is fully received and stored in buffer memory, rather than waiting until the packet is completely consumed by the receiver. This preliminary freeing of credits allows subsequent packets to be transmitted without delay while data integrity is maintained through proper buffer management.
Data Source
AI summary
In one embodiment, a receiver on a credit-based flow-controlled interface is configured to free one or more data credits early when a data payload is received that incurs fewer unused data credits within a buffer memory that is allocated at a coarser granularity than the data credits. In another embodiment, header credits and data credits are dynamically adjusted based on actual packet data payload sizes.


