Permute Network for Streamed Vector Data Reordering

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 bandwidth and scheduling, particularly in applications requiring predictable non-sequential input patterns.

Innovation Solution

The implementation of a streaming engine within the DSP core that manages data streams by generating addresses, performing data formatting, and providing formatted data to the processor, enhancing memory bandwidth and reducing the processor's memory fetch tasks, thereby improving data scheduling and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a traditional memory access approach is used in DSP, then the processor can access data sequentially, but it cannot efficiently handle predictable non-sequential input patterns required by video encoding

Engineering Contradiction:
Improvehandling non-sequential input patternsVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

A permute network is introduced as an intermediary component between the streaming engine and the vector functional unit. This permute network receives data elements in sequential order from the streaming engine and rearranges them into the required non-sequential pattern for video encoding operations, enabling the system to handle unpredictable input patterns without sacrificing processing efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If data is streamed directly to the vector functional unit without permutation, then the data path is simple, but the vector instruction cannot operate on permuted data elements required by video encoding

Engineering Contradiction:
Improvesupport for permuted data elementsVSAvoiddata path complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The data path is segmented into distinct functional components: a streaming engine for data intake, a permute network for data rearrangement, and a vector functional unit for processing. This segmentation allows each component to perform its specific function efficiently, with the permute network handling only the permutation operation without complicating the entire data path

Inventive Principle:
Principle #1Segmentation

3Productivity

If the processor fetches data directly from memory for each operation, then memory bandwidth is fully utilized, but cache miss stalls increase and processing efficiency decreases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcache miss stalls
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The streaming engine performs preliminary data fetching and buffering operations, anticipating future data needs based on the known access patterns of video encoding algorithms. By pre-loading data into the permute network before it is actually needed by the vector functional unit, the system reduces cache miss stalls and improves processing efficiency

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12086074B2Method and apparatus for permuting streamed data elements
Publication Date: 2024.09.10 TEXAS INSTRUMENTS INC
  • US12086074B2 patent drawing
  • US12086074B2 patent drawing
  • US12086074B2 patent drawing

AI summary

A method is provided that includes receiving, in a permute network, a plurality of data elements for a vector instruction from a streaming engine, and mapping, by the permute network, the plurality of data elements to vector locations for execution of the vector instruction by a vector functional unit in a vector data path of a processor.