Permute Network Mapping for Non-Sequential Vector Instructions

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 handling predictable but non-sequential input data patterns required for applications like video encoding.

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, thereby improving memory bandwidth and reducing the processor's memory fetch tasks, allowing for more efficient data processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is streamed sequentially from memory to processor, then memory bandwidth is improved, but non-sequential data patterns required for video encoding cannot be handled efficiently

Engineering Contradiction:
Improvememory bandwidthVSAvoiddata pattern flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The data stream is segmented into individual data elements that can be independently permuted. The permute network divides the incoming data stream into separate channels, allowing each element to be routed to its destination independently, thus enabling non-sequential access patterns while maintaining high memory bandwidth utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A permute network is introduced as an intermediary component between the streaming engine and the vector functional unit. This mediator receives sequentially streamed data and reorders it into the required non-sequential pattern before delivery to the processor, decoupling the sequential memory access from the non-sequential processing requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the processor directly fetches data from memory, then device complexity is reduced, but processing speed decreases due to cache miss stalls

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Data is pre-formatted and pre-permuted by the streaming engine before reaching the processor core. Address generation and data formatting are performed in advance, so that when data arrives at the processor, it is already in the optimal form for processing, eliminating cache miss stalls and improving processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The streaming engine acts as an intermediary that handles the complex tasks of address generation, data formatting, and permutation before data reaches the processor. This allows the processor to focus solely on computation while the intermediary manages data movement and preparation, improving speed without significantly increasing processor complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple processors share memory, then system versatility is improved, but memory access conflicts and scheduling complexity increase

Engineering Contradiction:
Improvesystem versatilityVSAvoidmemory scheduling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Each processor has its own dedicated streaming engine that independently manages its data streams. This segmentation of data management responsibilities eliminates the need for complex shared memory scheduling, as each processor handles its own data preparation without interfering with others, maintaining system versatility while reducing scheduling complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11237831B2Method and apparatus for permuting streamed data elements
Publication Date: 2022.02.01 TEXAS INSTRUMENTS INC
  • US11237831B2 patent drawing
  • US11237831B2 patent drawing
  • US11237831B2 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.