Streaming Engine Data Transpose for Memory-Efficient Data Movement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing signal processing systems face challenges in efficiently transferring and reformating large arrays of data between different memory types without requiring additional memory allocation, which can constrain operations and limit the size of data that can be transposed.
Innovation Solution
A processing system utilizing data movement through first and second memory circuitry and buffer circuitry to reformat data, where streaming engine circuitry buffers portions of the array and data router circuitry performs transposes, reducing the need for additional memory allocation by using buffer circuitry for a first transpose and data router circuitry for a second transpose.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If additional memory is allocated for data transposition, then data reformatting capability is improved, but memory resource consumption increases
Solution Approach 1:
The patent segments the data array into multiple blocks that can be processed independently. By dividing the large data set into manageable blocks, the system can perform transposition operations on each block separately using existing memory resources, eliminating the need for additional memory allocation while maintaining full data reformatting capability
Solution Approach 2:
The patent introduces a temporal dimension to the data reformatting process by performing transposition in multiple passes over time. Instead of requiring all data to be available simultaneously in additional memory, the system processes data blocks sequentially, using the time dimension to resolve memory resource constraints
2Productivity
If data is transferred between memory types to facilitate processing, then processing capability is improved, but data movement time increases
Solution Approach 1:
The patent performs preliminary data block transfers to internal memory before processing operations are needed. By pre-positioning data blocks in internal memory in the desired transposed format, the system eliminates the need for time-consuming data movement during actual processing operations, thereby improving overall productivity while reducing critical path time
Solution Approach 2:
The patent maintains continuous useful action by overlapping data transfer operations with processing operations on previously transferred blocks. While one data block is being processed, the next block is being transferred and prepared, ensuring that processing capability is maximized without idle time while minimizing total data movement time
Data Source
AI summary
An example apparatus includes: memory circuitry structured to store an array of data; streaming engine circuitry coupled to the memory circuitry; and programmable circuitry coupled to the memory circuitry and the streaming engine circuitry, the programmable circuitry configured to at least one of execute or instantiate machine-readable instructions to at least: cause the streaming engine circuitry to copy a portion of the array of data from a memory location in the memory circuitry to a buffer responsive to the programmable circuitry processing the portion of the array of data; and write a transpose of the portion of the array of data to the memory location in the memory circuitry.


