Streaming Engine Element Promotion and Decimation for CPU Offload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital signal processors face challenges with increasing workloads, memory bandwidth and scheduling issues, memory system latency, and memory access difficulties in real-time data processing, particularly in video encoding applications.

Innovation Solution

A streaming engine that fetches data ahead of use by the central processing unit core, utilizing an address generator and stream head register to manage data streams with promotion and decimation capabilities, allowing for efficient data manipulation and direct delivery to functional units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the CPU manually manages memory accesses and data fetching, then flexibility and control are maintained, but processing efficiency and bandwidth are reduced

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the memory management function from the CPU by introducing a dedicated Streaming Engine. This engine handles all data fetching, address generation, and memory access operations independently, allowing the CPU to focus solely on processing data without being bogged down by memory management tasks. The extraction of these functions directly improves processing efficiency while reducing the CPU's operational complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The Streaming Engine acts as an intermediary between the CPU and memory. It receives data requests from the CPU, manages the complex memory access patterns, fetches data from appropriate memory locations, and delivers it to the CPU. This intermediary layer handles the bandwidth and address generation challenges, improving overall system productivity without requiring the CPU to directly manage memory complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If data is fetched on-demand by the CPU, then memory access control is simplified, but memory latency and bandwidth constraints are exacerbated

Engineering Contradiction:
Improvememory access timeVSAvoidmemory bandwidth
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The Streaming Engine performs preliminary data fetching operations by proactively retrieving data from memory before the CPU actually needs it. It maintains a buffer of pre-fetched data and can immediately supply it to the CPU when ready, eliminating the wait time associated with on-demand fetching. This preliminary action significantly reduces memory access latency and improves overall processing throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The Streaming Engine ensures continuous data supply to the CPU by maintaining a buffer that is continuously replenished from memory. Instead of intermittent on-demand fetching, the system achieves continuous data flow where the engine constantly manages memory bandwidth to keep the CPU pipeline full. This continuity eliminates idle waiting periods and maximizes useful processing action.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If the streaming engine promotes data element size, then data precision is improved, but data stream bandwidth requirements increase

Engineering Contradiction:
Improvedata element precisionVSAvoiddata stream bandwidth
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The Streaming Engine dynamically adjusts data element size based on the specific processing requirements. Rather than using a fixed size, the engine can promote data elements to larger sizes (e.g., from 32-bit to 64-bit) when higher precision is needed for particular operations, and use smaller sizes when precision requirements are lower. This dynamic adaptation allows the system to optimize between precision and bandwidth usage based on actual workload demands.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The engine changes the data size parameter according to operational needs. When precision requirements increase, the engine modifies the data element size parameter accordingly, and this change is coordinated with the address generator and buffer management to maintain proper data flow. This parameter adjustment mechanism enables flexible optimization of the precision-bandwidth tradeoff without requiring hardware changes.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If the streaming engine decimates data elements, then data processing efficiency is improved, but data loss may occur

Engineering Contradiction:
Improvedata processing throughputVSAvoiddata element loss
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The Streaming Engine applies decimation by selectively processing only the necessary portion of data elements rather than processing everything. When the buffer contains more data than immediately needed, the engine decimates by skipping redundant elements and processing only what is required for current operations. This partial action approach improves throughput by reducing processing volume while the buffer mechanism ensures that no critical data is permanently lost, as undecimated data remains available for future needs.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12450057B2Stream engine with element promotion and decimation modes
Publication Date: 2025.10.21 TEXAS INSTRUMENTS INC
  • US12450057B2 patent drawing
  • US12450057B2 patent drawing
  • US12450057B2 patent drawing

AI summary

A streaming engine employed in a digital data processor specifies a fixed read only data stream defined by plural nested loops. An address generator produces address of data elements. A steam head register stores data elements next to be supplied to operational units for use as operands. A promotion unit optionally increases date element data size by an integral power of 2 either zero filing or sign filling the additional bits. A decimation unit optionally decimates data elements by an integral factor of 2. For ease of implementation the promotion factor must be greater than or equal to the decimation factor.