Streaming Engine Zero Padding Multidimensional Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processors face challenges in managing memory bandwidth and scheduling for real-time data processing, particularly in handling multidimensional data streams where predictable input patterns are required for efficient processing.

Innovation Solution

A streaming engine is integrated into the digital signal processor to configure stream parameters for multidimensional arrays, allowing the insertion of null elements into vectors when their dimensions exceed specified widths, enabling efficient data processing without accessing system memory for completely null vectors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the streaming engine processes multidimensional data streams with variable dimensions, then the adaptability of the processor is improved, but the device complexity increases due to additional address generation and data formatting logic

Engineering Contradiction:
ImproveadaptabilityVSAvoidcomplexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The streaming engine is designed to handle multiple data formats and dimensional configurations through a single unified architecture. It can process scalar streams, vector streams, and multidimensional arrays with varying dimensions by configuring stream parameters (width, height, depth, strides) rather than requiring separate hardware paths for each data type. This multi-functional design improves adaptability while controlling complexity through parameterization rather than structural multiplication.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The streaming engine utilizes configurable parameters (stream width, height, depth, and strides) to adapt its behavior to different multidimensional data formats. By changing these parameters, the same hardware can efficiently process different array dimensions and data layouts without structural modification. This parameter-driven approach enables versatility while avoiding the complexity of reconfigurable hardware structures.

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If null elements are inserted into vectors that exceed specified width, then the manufacturing precision of data formatting is improved, but the loss of time increases due to additional processing steps

Engineering Contradiction:
ImproveprecisionVSAvoidtime
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The streaming engine performs zero-padding (insertion of null elements) as a preliminary action during the data formatting stage, before the data is consumed by processing units. By pre-formatting vectors to the specified width with appropriate null elements already in place, the engine eliminates the need for subsequent padding operations downstream, thereby achieving precise data formatting without adding time loss to the critical processing path.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The streaming engine autonomously handles the insertion of null elements into vectors that exceed the specified width without requiring external intervention or additional processing stages. The engine self-regulates the data formatting by monitoring vector dimensions and automatically padding with null elements, thereby achieving precise formatting while minimizing time loss through integrated rather than sequential processing.

Inventive Principle:
Principle #25Self-service

3Productivity

If stream parameters are configured to define multidimensional arrays with specified widths, then the productivity of data processing is improved, but the loss of information increases if null elements are incorrectly inserted

Engineering Contradiction:
ImproveproductivityVSAvoidinformation
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The streaming engine incorporates feedback mechanisms that monitor the actual data being streamed and verify whether padding is required before inserting null elements. By continuously checking stream parameters against actual data dimensions and confirming the need for padding, the engine ensures that null elements are inserted only when appropriate, thereby maintaining data integrity while achieving high productivity through efficient stream processing.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240378058A1Two-dimensional zero padding in a stream of matrix elements
Publication Date: 2024.11.14 TEXAS INSTRUMENTS INC
  • US20240378058A1 patent drawing
  • US20240378058A1 patent drawing
  • US20240378058A1 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 two selected dimensions 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 either selected dimension in the stream of vectors exceeds a respective 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.