FPGA DSP Array Overlay with Line-In Line-Out Dataflow
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional FPGA overlays face inefficiencies in processing large data sets due to limitations in processing and I/O performance, such as the overlap penalty, shift penalty, and I/O inefficiency, which hinder their ability to handle real-time large-format video processing effectively.
Innovation Solution
The proposed solution involves a tile overlay processor (TOP) architecture that arranges processing elements in a one-dimensional or bi-dimensional grid, allowing each element to access neighboring memory and implement a 'Line-in, Line-out' data flow, eliminating redundant processing and data movement, and optimizing I/O operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional vector overlay architectures are used with predefined algorithmic dataflow, then the system can process data according to fixed patterns, but the device complexity increases due to costly connection and data alignment logic requirements
Solution Approach 1:
The system segments the processing architecture into processing elements organized in a mesh topology, where each PE handles local data processing independently. This segmentation eliminates the need for complex global connection logic and data alignment mechanisms, as each PE only needs to communicate with its immediate neighbors in the mesh.
Solution Approach 2:
The patent transitions from one-dimensional vector overlay architectures to two-dimensional mesh architectures. This dimensional change allows data to flow through multiple paths and reduces the complexity of data alignment logic by distributing processing across a spatial grid rather than a linear sequence.
2Quantity of substance
If FPGA overlays are designed to handle large data sets, then processing capability increases, but I/O performance deteriorates due to I/O inefficiency and redundant data movement
Solution Approach 1:
The system performs preliminary actions by pre-fetching and buffering data in local memory before it is needed for processing. The mesh architecture allows data to be moved incrementally through adjacent PEs rather than requiring simultaneous global data distribution, reducing I/O bottlenecks and redundant data movement.
Solution Approach 2:
Local memory buffers act as intermediaries between the external I/O system and the processing elements. These buffers absorb I/O inefficiencies by decoupling data input rates from processing rates, allowing PEs to continue processing without waiting for slow external I/O operations.
3Extent of automation
If processing elements are arranged in conventional arrays, then parallel processing is achieved, but processing efficiency decreases due to overlap penalty and shift penalty
Solution Approach 1:
The mesh architecture provides dynamic data routing capabilities where data can flow through different paths depending on the processing stage. This dynamic routing eliminates the overlap penalty by allowing flexible data reuse across multiple processing elements without requiring redundant data copies, and eliminates shift penalty by allowing direct neighbor-to-neighbor data transfer.
4Device complexity
If small FPGA arrays are used, then device complexity is reduced, but the ability to handle large data sets like 4k or 8k image streams deteriorates
Solution Approach 1:
The mesh architecture enables virtual expansion of processing capacity by allowing data to be copied and distributed across multiple PEs in a systematic manner. Instead of requiring a large monolithic array, small PEs can collectively handle large data sets by dividing the data spatially across the mesh and processing it in parallel through multiple passes.
Data Source
AI summary
Techniques and mechanisms described herein include a signal processor implemented as an overlay on a field-programmable gate array (FPGA) device that utilizes special purpose, hardened intellectual property (IP) modules such as memory blocks and digital signal processing (DSP) cores. A Processing Element (PE) is built from one or more DSP cores connected to additional logic. Interconnected as an array, the PEs may operate in a computational model such as Single Instruction-Multiple Thread (SIMT). A software hierarchy is described that transforms the SIMT array into an effective signal processor.


