Streaming Engine Data Transpose for Memory-Efficient Data Movement

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Adaptability or versatility

If additional memory is allocated for data transposition, then data reformatting capability is improved, but memory resource consumption increases

Engineering Contradiction:
Improvedata reformatting capabilityVSAvoidmemory resource consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If data is transferred between memory types to facilitate processing, then processing capability is improved, but data movement time increases

Engineering Contradiction:
Improveprocessing capabilityVSAvoiddata movement time
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS20250328283A1Methods and apparatus to improve data movement between operations
Publication Date: 2025.10.23 TEXAS INSTRUMENTS INC
  • US20250328283A1 patent drawing
  • US20250328283A1 patent drawing
  • US20250328283A1 patent drawing

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.