Reconfigurable Memory Module for Stream Processing Pipeline Balance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional stream processing systems require large external bandwidth and suffer from pipeline unbalance and inefficient memory utilization, leading to suboptimal performance and hardware utilization, especially in graphic processing applications where memory size is fixed and not adaptable to varying data sizes.
Innovation Solution
A reconfigurable stream processing system with a memory module comprising multiple memory bank units, each configurable to meet the specific memory requirements of corresponding stream processing units, allowing for optimized memory allocation and reduced external bandwidth through dynamic configuration of memory size and stream thread capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a conventional fixed-size vertex cache is used, then the cache can handle worst-case data sizes, but memory space is hugely wasted when used in other applications with smaller data sizes
Solution Approach 1:
The vertex cache employs dynamic memory allocation where the cache size is not fixed but can be adjusted based on actual processing requirements. The system dynamically determines the appropriate cache size for different application scenarios, transitioning from a static worst-case design to a dynamic adaptive design that optimizes memory utilization.
Solution Approach 2:
The invention changes the parameter of memory size from a fixed value to a configurable parameter that can be adjusted according to application needs. By making memory size a variable parameter rather than a constant, the system can adapt to different data sizes and processing requirements, eliminating wasted memory space while maintaining sufficient capacity.
2Productivity
If a conventional pipelined stream processing system is used, then multiple stream processing units can be deployed, but pipeline unbalance occurs and hardware utilization is reduced
Solution Approach 1:
The system segments the stream processing into multiple independent processing units, each handling specific stages of processing. By dividing the processing pipeline into separate units that can operate independently, the system achieves better load distribution and reduces pipeline imbalance, allowing each unit to be optimized for its specific function.
Solution Approach 2:
The pipeline processing system is made dynamic by allowing flexible configuration of processing units and their interconnections. The system can dynamically adjust the number and configuration of processing units based on actual workloads, enabling optimal pipeline balance and hardware utilization across different processing scenarios.
3Speed
If dedicated buffers are designed for each processing stage, then data transfer is optimized for that stage, but memory bandwidth requirements increase and hardware utilization decreases
Solution Approach 1:
The buffer design is made universal by creating a single buffer that can serve multiple processing stages rather than dedicated buffers for each stage. This multi-functional buffer approach allows different processing units to share the same memory resource, reducing overall memory bandwidth requirements while maintaining efficient data transfer capabilities through software-managed access control.
Data Source
AI summary
A stream processing system includes a stream processing module coupled to a memory module and operable so as to fetch stream elements from the memory module, to process the stream elements fetched thereby, and to store processed stream elements in the memory module. The stream processing module includes a number (N) of stream processing units, and the memory module is configured with a number (N) of memory bank units each corresponding to a respective one of the stream processing units. The memory module is reconfigurable based on a desired inter-level configuration so that each of the memory bank units is configured to have a memory size sufficient to meet processing requirement of the respective one of the stream processing units.


