Dynamic Buffer Reassignment for Back Pressure-Free Interconnects
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, particularly Systems on Chips (SoCs), efficient allocation of data storage among agents and endpoints is hindered by back pressure issues due to intermediate buffers filling up, leading to performance bottlenecks when destinations are busy, causing sources to stop compute or data pipelines until buffers have available space again.
Innovation Solution
A computing system with a communication fabric that includes intermediate buffers with data storage limits, where buffer storage is dynamically reassigned based on workload characteristics, such as new task assignments and power-performance states, by selecting sources with available space and prioritizing those with lower allocation rates to maintain optimal data storage allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If intermediate buffers are used to store transactions during transport, then data storage capacity is improved, but back pressure increases causing sources to stop pipelines when buffers fill up
Solution Approach 1:
The patent implements dynamic buffer allocation where the buffer size assigned to each source is not fixed but can be changed based on current system conditions. The buffer manager can reallocate buffer spaces to sources with higher allocation rates or lower priorities, allowing the system to adapt to changing workload patterns and prevent back pressure from stopping pipelines indefinitely.
Solution Approach 2:
The system changes the parameter of buffer allocation by monitoring allocation rates and adjusting the amount of buffer space assigned to different sources. When a source has a high allocation rate or low priority, the system reduces its buffer allocation, thereby preventing buffer overflow and allowing continuous pipeline operation while maintaining fairness among sources.
2Quantity of substance
If buffer storage is increased for sources with high allocation rates, then data storage availability is improved, but system fairness deteriorates as lower priority sources receive less storage
Solution Approach 1:
The buffer manager continuously monitors the allocation rate of each source and uses this feedback to adjust buffer assignments. Sources with consistently high allocation rates or low priorities receive reduced buffer allocation, while sources with lower allocation rates receive more buffer space. This feedback mechanism ensures fair resource distribution while maintaining the ability to handle varying workload demands.
3Reliability
If sources stop their pipelines when buffers are full, then data integrity is maintained, but processing speed decreases due to pipeline interruptions
Solution Approach 1:
By making buffer allocation dynamic rather than static, the system can prevent buffers from filling up in the first place for high-priority sources. The buffer manager proactively adjusts allocations based on real-time monitoring, allowing sources to maintain continuous operation without interruption while still ensuring data integrity through controlled buffer management.
Data Source
AI summary
A system and method for efficiently allocating data storage to agents. A computing system includes an interconnect with intermediate buffers for storing transactions and corresponding payload data during transport between sources and destinations. A data storage limit is set on an amount of data storage corresponding to outstanding transactions for each of the multiple sources based on the initial buffer assignments. A number of outstanding transactions for each of the multiple sources is limited based on a corresponding data storage limit. If the rate of allocation of a given buffer assigned to a first source exceeds a threshold, then a second source is selected with available space exceeding a threshold in an assigned buffer. If it is determined the second source is not assigned to a buffer with a rate of allocation exceeding a threshold, then buffer storage is reassigned from the second source to the first source.


