Permute Network for Streamed Vector Data Mapping

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, along with a permute network that maps data elements to vector locations for execution, enhancing memory access and data scheduling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data is accessed from memory in non-sequential patterns for video encoding applications, then processing flexibility is improved, but memory bandwidth and cache efficiency deteriorate

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidmemory bandwidth
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The streaming engine performs preliminary actions by generating addresses and formatting data before the vector functional unit executes instructions. This pre-processing of data streams allows the main processing unit to receive data in the correct format without performing memory access operations, thereby resolving the contradiction between processing flexibility and memory bandwidth efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The streaming engine acts as an intermediary component between memory and the vector functional unit. It receives data from memory, performs address generation and formatting operations, and supplies processed data to the vector functional unit, thereby mediating the contradiction between non-sequential access patterns and memory bandwidth constraints

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If data is loaded from memory to data registers for processing, then data availability for functional units is improved, but memory access time and cache miss stalls increase

Engineering Contradiction:
Improvedata availabilityVSAvoidmemory access time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The streaming engine extracts the memory access and data formatting functions from the main vector processing path. By dedicating a separate streaming engine to handle data loading, address generation, and formatting, the main vector functional unit can focus on processing without being blocked by memory access operations, thereby reducing cache miss stalls and improving data availability

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The streaming engine performs preliminary data loading and formatting operations before data is needed by the vector functional unit. This allows data to be prepared in advance and supplied to processing units without causing stalls, resolving the contradiction between data availability and memory access time

Inventive Principle:
Principle #10Preliminary action

Data Source

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