DSP Streaming Engine for Null-Vector Padding and Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processors face challenges with memory bandwidth and scheduling issues when processing real-time data streams, particularly in applications requiring predictable but non-sequential input data patterns, which can lead to system failures if transformed data is not output on schedule.

Innovation Solution

A streaming engine is integrated into the DSP architecture to manage data streams, including an address generation stage and data formatting, capable of forming null or padded vectors without accessing system memory, and supporting multi-dimensional loops to improve memory bandwidth and data scheduling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a streaming engine is added to manage data streams and form null vectors, then memory bandwidth is improved and cache miss stalls are reduced, but device complexity increases

Engineering Contradiction:
Improvememory bandwidthVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The streaming engine is divided into distinct functional stages: address generation stage that calculates memory addresses, data formatting stage that prepares data for processing, and null vector generation capability that creates padded vectors without memory access. This segmentation allows each component to be optimized independently while working together to improve overall memory bandwidth and reduce cache miss stalls.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The streaming engine performs preliminary actions by pre-calculating address generation patterns and pre-forming null vectors before actual data processing occurs. The address generation stage prepares memory access patterns in advance, and the null vector generation capability creates padded vectors locally without requiring memory reads, thereby reducing cache miss stalls and improving memory bandwidth efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the streaming engine forms null vectors without accessing system memory, then cache miss stalls are reduced, but the device requires additional internal memory resources

Engineering Contradiction:
Improvecache miss stallsVSAvoidinternal memory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the null vector generation function from the main memory access path by implementing a dedicated null vector generation capability within the streaming engine. This allows null vectors to be formed internally without accessing system memory, thereby eliminating the cache miss stalls that would otherwise occur when loading null data from memory.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The streaming engine acts as an intermediary between the processor and system memory. It includes an internal buffer or register file that can store null vectors temporarily, serving as a mediator that provides null data without requiring actual memory accesses. This intermediary approach reduces cache miss stalls while using minimal internal memory resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12367147B2Padding and suppressing rows and columns of data
Publication Date: 2025.07.22 TEXAS INSTRUMENTS INC
  • US12367147B2 patent drawing
  • US12367147B2 patent drawing
  • US12367147B2 patent drawing

AI summary

A method is described herein. The method generally includes receiving stream parameters that defines an array, wherein the stream parameters include a first null element count and a second null element count. The method generally includes forming a stream of vectors for the multidimensional array responsive to the stream parameters. The stream of vectors generally includes a vector of null elements at a beginning of the stream of vectors based on the first null element count. The stream of vectors generally includes a null element at a beginning of each vector of the stream of vectors based on the second null element count. The stream of vectors generally includes a set of data distributed across a subset of the stream of vectors. The method generally includes providing the stream of vectors.