DSP Vector Math Instruction Execution for Division and Magnitude

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital signal processors (DSPs) face inefficiencies in implementing specialized mathematical functions like sin( ), cos( ), and div( ) due to lack of hardware accelerators, especially when these functions need to be repeatedly called in loops, and there is a need for both high precision and approximation versions depending on applications.

Innovation Solution

A digital signal processor architecture with a register set and work units that decodes vector math instructions to align input and output vectors with the maximum register boundary, enabling parallel operations and using look-up tables for low-precision functions like div_lp—16b—16b, a tan 2_lp—16b—16b, and cplxMag_lp—16b—16b, optimizing cycle performance and normalized maximum absolute error (NMAE).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If software implementation of mathematical functions is used without hardware accelerators, then device complexity is reduced, but processing speed and productivity deteriorate

Engineering Contradiction:
Improvedevice complexityVSAvoidprocessing speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments mathematical functions into different precision levels (high precision and low precision/approximation). The processor can select appropriate implementation strategies for different function types and precision requirements, optimizing the balance between complexity and performance for each case.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic precision selection where the processor can adaptively choose between high precision and low precision modes based on application requirements. This dynamic approach allows the system to optimize processing speed when high precision is not required, while maintaining accuracy when needed.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If high precision mathematical functions are implemented in software, then measurement precision is improved, but processing time and productivity worsen

Engineering Contradiction:
Improvefunction precisionVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies different precision levels to different mathematical functions based on their specific requirements. Critical functions requiring high accuracy use high precision implementations, while non-critical functions use optimized low precision approximations, achieving overall system efficiency without sacrificing necessary accuracy.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the precision parameter of mathematical function implementations based on application needs. By adjusting precision parameters dynamically, the system can reduce processing time for functions where high precision is not critical, while maintaining high precision for functions where it is essential.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If mathematical functions are called repeatedly in loops, then functionality is maintained, but cycle performance and productivity worsen

Engineering Contradiction:
ImprovefunctionalityVSAvoidcycle performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary preparation of mathematical function results using lookup tables and pre-computed values. By preparing data in advance and storing it for quick retrieval, the system maintains functional accuracy while dramatically reducing the processing time required during repeated loop executions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses lookup tables that contain pre-computed copies of mathematical function results. Instead of computing functions repeatedly during loop executions, the processor retrieves pre-stored copies of results, maintaining functionality while improving cycle performance significantly.

Inventive Principle:
Principle #26Copying

4Productivity

If approximation methods are used for mathematical functions, then productivity is improved, but measurement precision deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidfunction accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent implements dynamic precision selection where the system can switch between high precision and low precision modes based on application requirements. This allows the processor to use approximation methods when acceptable and high precision methods when necessary, optimizing the trade-off between speed and accuracy.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies different precision levels to different mathematical functions based on their specific requirements. Critical functions requiring high accuracy use high precision implementations, while non-critical functions use optimized low precision approximations, achieving overall system efficiency without sacrificing necessary accuracy.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9015452B2Vector math instruction execution by DSP processor approximating division and complex number magnitude
Publication Date: 2015.04.21 TEXAS INSTRUMENTS INC
  • US9015452B2 patent drawing
  • US9015452B2 patent drawing
  • US9015452B2 patent drawing

AI summary

A digital signal processor (DSP) includes an instruction fetch unit, an instruction decode unit, a register set and a plurality of work units in communication with the instruction decode unit. A first embodiment calculates two divisions on packed numerators and packed denominators. The DSP work units calculate indexes into a 1/d look-up table and make a final sign correction. A second embodiment calculates an approximation of a vector magnitude of a complex number x+jy. The approximation is based upon √(x2+y2)≈α*max(|x|, |y|)+β*min(|x|, |y|). The DSP work units calculate the absolute values, find the maxima and minima, and form the packed results of two vector magnitude calculations.