Vector Sorting in DSP Streaming Engines for Cache Miss Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processors face challenges in efficiently processing real-time data streams due to limitations in memory access and scheduling, particularly in handling predictable but non-sequential input patterns required for video encoding, which can lead to performance issues if the transformed data stream is not available on time.

Innovation Solution

The implementation of a streaming engine within the DSP processor that manages data streams using autonomous streaming engines with address generation and data formatting stages, capable of handling multi-dimensional loops and supporting vector sorting instructions to improve memory bandwidth and data scheduling, allowing for efficient processing of real-time data streams.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory access methods are used in DSP processors, then the processor can handle basic data processing, but memory bandwidth is limited and cache miss stalls occur frequently

Engineering Contradiction:
Improvedata processing speedVSAvoidcache miss stalls
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The streaming engine performs preliminary actions by autonomously generating addresses and formatting data before the main processing units need it. This includes pre-fetching data from memory, organizing it into proper formats, and making it ready in advance, thereby eliminating cache miss stalls and improving overall processing speed without requiring additional memory bandwidth.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If vector sorting operations are implemented in DSP processors, then data can be sorted efficiently for video encoding, but the complexity of the processor increases

Engineering Contradiction:
Improvevector sorting efficiencyVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A dedicated vector sorting unit is introduced as an intermediary component between the existing processor resources and the video encoding requirements. This specialized unit handles vector sorting operations autonomously using efficient algorithms, providing high sorting efficiency while isolating the complexity from the main processor architecture and other processing units.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If autonomous streaming engines are added to improve memory bandwidth, then data streaming efficiency increases, but the device complexity increases

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidprocessor structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The streaming engine is merged with existing processor components, sharing resources such as execution units, register files, and control logic. By combining the streaming engine's address generation and data formatting functions with the processor's existing architecture rather than adding completely separate components, the patent achieves improved memory bandwidth utilization while minimizing the increase in overall device complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11106462B2Method and apparatus for vector sorting
Publication Date: 2021.08.31 TEXAS INSTRUMENTS INC
  • US11106462B2 patent drawing
  • US11106462B2 patent drawing
  • US11106462B2 patent drawing

AI summary

A method for sorting of a vector in a processor is provided that includes performing, by the processor in response to a vector sort instruction, sorting of values stored in lanes of the vector to generate a sorted vector, wherein the values are sorted in an order indicated by the vector sort instruction, and storing the sorted vector in a storage location.