Tiled Buffer Virtualization for Parallel Processing Deadlock Avoidance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In parallel processing environments, existing technologies face challenges in efficiently managing data flows and buffering, particularly in avoiding deadlocks and optimizing storage space, which affects the performance and cost-effectiveness of integrated circuits like FPGAs and ASICs.
Innovation Solution
The integrated circuit design features a tiled architecture with multiple tiles, each containing a processor, switch, buffers, and multiplexers that selectively provide data from input or overflow buffers based on refill signals, enabling buffer virtualization and flow control to prevent deadlocks and optimize storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional buffering methods are used in parallel processing environments, then data storage is simplified, but deadlocks occur and data flow efficiency deteriorates
Solution Approach 1:
The buffer is segmented into multiple regions including a primary buffer and an overflow buffer. This segmentation allows data to be stored in different regions based on availability, preventing deadlocks by providing alternative storage paths while maintaining data flow efficiency through structured region management.
Solution Approach 2:
An intermediary mechanism (overflow buffer and associated control logic) is introduced between the data source and the primary buffer. This intermediary prevents deadlocks by providing an alternative storage path when the primary buffer is full, thereby maintaining overall system productivity without compromising reliability.
2Ease of manufacture
If buffer overflow is allowed to proceed without management, then storage space utilization is simplified, but data loss increases and reliability deteriorates
Solution Approach 1:
The overflow buffer is prepared in advance as a contingency storage region. When the primary buffer reaches capacity, data is redirected to the pre-configured overflow buffer before data loss can occur. This preliminary preparation maintains data integrity without adding complex runtime management overhead.
Solution Approach 2:
The overflow buffer acts as a cushioning mechanism that absorbs excess data before it can cause data loss. This beforehand cushioning protects data integrity by providing a safety buffer zone, while the straightforward implementation maintains ease of buffer management.
3Reliability
If dedicated buffer space is allocated for each data source, then data isolation is improved, but storage space utilization deteriorates due to fragmentation
Solution Approach 1:
The overflow buffer serves multiple functions: it acts as an extension of the primary buffer, a deadlock prevention mechanism, and a data isolation barrier. This multi-functionality allows dedicated buffer space allocation to maintain data isolation while improving overall storage utilization by sharing the overflow buffer resource across multiple data sources.
Solution Approach 2:
The system discards the notion of permanently dedicating buffer space to each source and instead recovers unused buffer space through the shared overflow buffer. When primary buffers are not full, their allocated space remains available for other sources, improving utilization while the overflow buffer maintains data isolation when needed.
Data Source
AI summary
An integrated circuit includes a plurality of tiles. Each tile comprises a processor; a switch including switching circuitry to forward data over data paths from other tiles to the processor and to switches of other tiles; a first buffer that stores data from the switch; a memory accessible to the processor; a second buffer that stores a plurality of data words retrieved from the memory; and a multiplexer that selectively provides data to the processor from the first buffer or the second buffer based on a refill signal.


