SIMD Processor Address Calculation for Row Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In SIMD processors that divide image data into blocks for local memory storage using a lateral direction priority method, the complexity and inefficiency arise when N pieces of pixels start from a predetermined pixel with a non-integral multiple X-direction coordinate value, leading to differing local addresses for N pieces of pixels within the same row across multiple processor elements.
Innovation Solution
A control processor broadcasts local addresses A1 and A2, along with a threshold number Z, to processor elements, allowing each to select the appropriate local address based on its number, ensuring N pieces of data in a row are stored in the same local address across processor elements, thereby simplifying data processing and improving efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If N pieces of pixels start from a predetermined pixel with a non-integral multiple X-direction coordinate value, then the data can be processed, but the local addresses differ across processor elements leading to complexity and inefficiency
Solution Approach 1:
The patent segments the N processor elements into multiple groups based on their element numbers. Each group is assigned a specific base address offset, allowing different segments to access different local addresses systematically. This segmentation resolves the address conflict by organizing processor elements into manageable groups with predetermined address assignments.
Solution Approach 2:
The patent changes the address parameter by introducing a group-based address selection mechanism. Instead of using a single uniform address for all processor elements, the system dynamically selects from multiple base addresses (B1, B2, B3, B4) depending on which group the processor element belongs to. This parameter change enables proper address differentiation while maintaining systematic organization.
2Productivity
If N pieces of pixels are stored in local memories with lateral direction priority method, then memory storage is optimized, but addressing becomes complex when pixels start from non-integral multiple coordinates
Solution Approach 1:
The patent performs preliminary action by pre-calculating and pre-assigning base addresses to each processor element group before actual data processing begins. The control processor determines which group each PE belongs to and assigns the appropriate base address in advance, eliminating the need for complex runtime address calculations and simplifying the data processing workflow.
Solution Approach 2:
The control processor acts as an intermediary between the pixel data and the processor elements. It receives the pixel data, determines the appropriate base address based on the starting coordinate, and distributes the data to the correct processor elements with the correct local addresses. This intermediary role simplifies the addressing complexity by centralizing the address determination logic.
3Productivity
If a single instruction is used to designate N pieces of data to processor elements, then instruction efficiency is improved, but address differentiation becomes difficult
Solution Approach 1:
The patent applies local quality by assigning different base addresses to different local groups of processor elements. Each group (PE1-PE2, PE3-PE4, etc.) has its own characteristic base address (B1, B2, B3, B4), allowing the system to maintain a single instruction format while achieving address differentiation through local address space customization for each group.
Data Source
AI summary
To improve processing efficiency of a SIMD processor that divides two-dimensional data into blocks, each having a width of PE number N, to store the data in a local memory of each of PEs by a lateral direction priority method.When designating a local address of N pieces of data arranged in a row direction from head data whose coordinate values in two-dimensional data are (X,Y) to a PE array 110, the N pieces of data being stored in local memories, a CP 150 broadcasts a local address A1, a local address A2, and a threshold number Z obtained by an address calculation unit. Each of the PEs compares a magnitude relation between the threshold number Z and its own number, and selects one of the local address A1 and the local address A2 according to the comparison result.


