DSP Vector Math Instruction Execution for Division and Magnitude
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If high precision mathematical functions are implemented in software, then measurement precision is improved, but processing time and productivity worsen
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.
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.
3Reliability
If mathematical functions are called repeatedly in loops, then functionality is maintained, but cycle performance and productivity worsen
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.
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.
4Productivity
If approximation methods are used for mathematical functions, then productivity is improved, but measurement precision deteriorates
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.
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.
Data Source
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.


