Streaming Engine Null Element Padding for Matrix Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processors face challenges in efficiently processing streams of data due to memory bandwidth and scheduling constraints, particularly in real-time applications where predictable data patterns are required.

Innovation Solution

A streaming engine is integrated into the digital signal processor to configure and manage streams of matrix elements, allowing for the insertion of null elements when the selected dimension exceeds a specified width, thereby optimizing memory access and data processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the streaming engine processes data streams without padding, then processing speed is improved, but data pattern predictability deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoiddata pattern predictability
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The streaming engine performs preliminary padding actions by inserting null elements into data streams before processing. This preliminary action ensures that data patterns maintain predictable dimensions and structures, allowing subsequent processing operations to proceed efficiently without requiring dynamic adaptation to varying data sizes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the parameter of data stream structure by inserting null elements to maintain consistent dimensional parameters. This parameter change ensures that even when actual data varies in size, the overall stream structure maintains predictable parameters that facilitate efficient processing pipeline operation.

Inventive Principle:
Principle #35Parameter changes

2Stability of the object's composition

If null elements are inserted into data streams, then data pattern predictability is improved, but memory bandwidth utilization deteriorates

Engineering Contradiction:
Improvedata pattern predictabilityVSAvoidmemory bandwidth utilization
Core Design Contradiction:
Stability of the object's compositionVSLoss of energy

Solution Approach 1:

The streaming engine serves itself by generating and inserting null padding elements internally without requiring external memory accesses. This self-service capability allows the engine to maintain data pattern predictability while avoiding the memory bandwidth consumption that would result from fetching actual padding data from memory.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Null elements act as intermediaries between the data processing pipeline and the memory system. These intermediary null elements fulfill the structural requirement for predictable data patterns without requiring actual memory resources, thereby mediating between the need for pattern stability and memory bandwidth conservation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Manufacturing precision

If the streaming engine configures multidimensional arrays with padding, then processing accuracy is improved, but device complexity deteriorates

Engineering Contradiction:
Improveprocessing accuracyVSAvoidstreaming engine complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The streaming engine segments the padding insertion function into distinct operational phases: determining when padding is needed, inserting null elements at appropriate positions, and maintaining tracking of valid versus padded data. This segmentation of the padding function into manageable segments reduces overall system complexity while maintaining processing accuracy.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250036411A1Padding in a stream of matrix elements
Publication Date: 2025.01.30 TEXAS INSTRUMENTS INC
  • US20250036411A1 patent drawing
  • US20250036411A1 patent drawing
  • US20250036411A1 patent drawing

AI summary

Software instructions are executed on a processor within a computer system to configure a steaming engine with stream parameters to define a multidimensional array. The stream parameters define a size for each dimension of the multidimensional array and a specified width for a selected dimension of the array. Data is fetched from a memory coupled to the streaming engine responsive to the stream parameters. A stream of vectors is formed for the multidimensional array responsive to the stream parameters from the data fetched from memory. When the selected dimension in the stream of vectors exceeds the specified width, the streaming engine inserts null elements into each portion of a respective vector for the selected dimension that exceeds the specified width in the stream of vectors. Stream vectors that are completely null are formed by the streaming engine without accessing the system memory for respective data.