Strided Block Transfer Instruction for Memory Misalignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional graphics processing systems burden the central processing unit (CPU) with the task of block data transfers between memory components due to lack of access to translation lookaside buffers and page tables, and misalignment issues caused by different memory pitches.
Innovation Solution
Implementing a strided block transfer instruction that allows the CPU to transfer data blocks between memory components efficiently by determining source and destination memory locations, number of lines, bytes per line, and memory pitches, enabling a single instruction execution and minimizing data transfer misalignment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the CPU uses a software loop to transfer data line by line between memory components, then the block transfer can be completed, but the CPU workload becomes significant and transfer efficiency is reduced
Solution Approach 1:
The block transfer operation is segmented into multiple independent line transfers, where each line can be transferred independently. The strided block transfer instruction enables the CPU to issue a single instruction that automatically segments and executes multiple line transfers, reducing the need for complex software loops while maintaining flexibility in handling different source and destination memory configurations
Solution Approach 2:
The strided block transfer instruction implements periodic action by automatically repeating the transfer operation for each line of the block. The instruction contains parameters that define the number of lines to transfer and the pitch (stride) for each transfer, allowing the hardware to periodically execute the transfer operation without requiring a software loop to manage each individual line transfer
2Adaptability or versatility
If the source memory and destination memory have different pitches, then flexibility in memory configuration is achieved, but misalignment of the transferred block occurs
Solution Approach 1:
The strided block transfer instruction introduces dynamic adaptability by allowing the pitch (stride) parameter to be independently specified for both source and destination memories. This dynamic parameter adjustment enables the instruction to accommodate different memory configurations and pitch values while maintaining proper alignment through hardware-managed address calculation that automatically compensates for pitch differences
Solution Approach 2:
The instruction changes the approach from fixed alignment to parameter-driven alignment by incorporating pitch parameters that can be independently set for source and destination memories. This parameter change allows the system to adapt to different memory configurations while maintaining precise control over the transfer alignment through hardware that uses these parameters to calculate the correct source and destination addresses for each line transfer
Data Source
AI summary
A computer readable medium embodies a set of instructions. The set of instructions includes an instruction to manipulate a processor to determine a first value representative of a source memory location of a source storage component, a second value representative of a destination memory location of a destination storage component, a third value representative of a number of lines of a data block to be transferred from the source storage component to the destination storage component, a fourth value representative of a number of bytes to be transferred per line of the data block, a fifth value representative of a byte width of the source storage component and a sixth value representative of a byte width of the destination storage component. The instruction further is to transfer a data block from the source storage component to the destination storage component based on the first, second, third, fourth, fifth and sixth values.


