Vector FIR Filtering with Data Reordering for Real-Time DSP

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 includes address generation, data formatting, and storage for formatted data, along with instruction support for vector-based finite impulse response (FIR) filtering, vector and scalar multiplication, and matrix multiplication, enhances memory bandwidth and data scheduling by managing multiple data streams and performing operations critical for computer vision processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional memory access methods are used to load data registers, then memory bandwidth is limited and cache miss stalls increase, but processing speed and real-time performance deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoidcache miss stalls
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent implements a data register file that pre-loads and caches frequently accessed data elements before they are needed for filtering operations. The system anticipates data access patterns and prepares data in advance, reducing cache miss stalls during actual processing. This preliminary action allows the processor to maintain high processing speed without waiting for memory bandwidth limitations.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If scalar operations are used for FIR filtering, then implementation is simple, but processing efficiency and productivity are low

Engineering Contradiction:
Improvefiltering throughputVSAvoidoperation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple scalar FIR filtering operations into a single vector instruction that processes multiple data elements simultaneously. The vector FIR filter instruction combines several filtering operations that would traditionally require separate scalar instructions, thereby increasing productivity without requiring proportionally more complex hardware. The data register file and vector multiplier work together to execute these combined operations efficiently.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If non-sequential input data patterns are processed, then application flexibility is improved, but memory scheduling complexity and access time increase

Engineering Contradiction:
Improvedata pattern flexibilityVSAvoidmemory access time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent introduces a data register file as an intermediary between main memory and the filtering units. This intermediary structure buffers data elements and reorganizes them according to the required access patterns, whether sequential or non-sequential. By decoupling the memory access pattern from the processing requirements, the system achieves flexibility in handling various data patterns without incurring excessive memory access time penalties.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20230333848A1Method and Apparatus for Vector Based Finite Impulse Response (FIR) Filtering
Publication Date: 2023.10.19 TEXAS INSTRUMENTS INC
  • US20230333848A1 patent drawing
  • US20230333848A1 patent drawing
  • US20230333848A1 patent drawing

AI summary

A method includes executing, by a processor a vector finite impulse response (VFIR) filter instruction that specifies coefficients, data elements, and a storage location. The executing includes reordering a subset of the data elements to provide each data element of the reordered subset of the data elements to a respective slice multiply component of a vector multiplier of the processor, generating, by the vector multiplier, filter outputs based on the coefficients and data elements, and storing the filter outputs in the storage location.