Configuration Memory Mapping for Loop-Parallel Reconfigurable Processors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Reconfigurable processors face inefficiencies in processing tasks with changed work contents due to fixed hardware functions, and software processing is slower, necessitating an optimization of configuration memory to enhance processing speed and utility, particularly in digital signal processing applications.
Innovation Solution
A method and apparatus for optimizing configuration memory in reconfigurable processors by analyzing parallelism in program code loops, scheduling function units, generating configuration data, and determining memory mapping strategies that include regular or irregular encoding and buffering, to efficiently store configuration data in configuration memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If configuration memory size is increased to store all loop cycle data, then processing completeness is improved, but memory resource consumption increases
Solution Approach 1:
The configuration memory is segmented into multiple rows, with each row storing configuration data for a specific cycle or group of cycles. This allows selective storage of only necessary cycle data rather than storing all cycle data in a single large memory block, thereby reducing overall memory requirements while maintaining processing completeness.
Solution Approach 2:
The system performs preliminary analysis of loop parallelism and schedules function unit groups before execution. This allows the memory mapping unit to determine in advance which cycles require configuration data storage and in which memory rows, optimizing memory usage before the actual processing begins.
2Adaptability or versatility
If all function units are activated in each cycle to ensure processing capability, then processing versatility is improved, but configuration memory requirements increase
Solution Approach 1:
The system dynamically determines the number and configuration of function units activated in each cycle based on the analyzed parallelism of the loop. Instead of statically allocating all function units for every cycle, the activation is adjusted dynamically to match the actual processing requirements of each cycle, reducing configuration memory requirements while maintaining necessary processing versatility.
Solution Approach 2:
The system changes the activation parameters of function units based on cycle-specific requirements. By analyzing loop parallelism, the system determines optimal activation patterns for different cycles, changing which function units are active and in what configurations, thereby reducing the overall configuration memory footprint while preserving processing capability where needed.
3Measurement precision
If configuration data is stored for every cycle to ensure accuracy, then processing accuracy is improved, but memory bandwidth consumption increases
Solution Approach 1:
The system extracts and stores only the essential configuration data needed for each cycle in dedicated memory rows, rather than storing redundant or unnecessary data. This selective extraction approach maintains processing accuracy by ensuring necessary data is available while reducing memory bandwidth consumption by eliminating unnecessary data transfers.
4Ease of manufacture
If regular encoding is used for configuration data, then encoding simplicity is improved, but flexibility to handle varying function unit groups decreases
Solution Approach 1:
The memory mapping unit employs a universal encoding approach that can handle both regular and irregular function unit group configurations. By designing the encoding scheme to be multi-functional, the system maintains encoding simplicity while adapting to varying function unit groups across different cycles, achieving both ease of implementation and operational flexibility.
Data Source
AI summary
A method and apparatus for optimizing a configuration memory of a reconfigurable processor is provided. The method of optimizing the configuration memory of the reconfigurable processor includes analyzing parallelism of a loop of a program code based on an architecture of the reconfigurable processor and information regarding the configuration memory, scheduling groups of function units (FUs) to be activated in each cycle of the loop based on the analyzed parallelism, generating configuration data of each cycle, and determining a memory mapping to store the generated configuration data in the configuration memory.


