Vector Floating-Point Scale Instruction for DSP

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital signal processors face inefficiencies due to the high computational overhead of floating-point multiplication operations, particularly when performing algorithms that require multiplication or division by powers of 2, such as in the Newton-Raphson approximation, which often necessitate multiple cycles per operation.

Innovation Solution

A vector floating-point scale instruction is introduced, allowing for simultaneous scaling of multiple floating-point values in a single instruction by adding scale values to the exponent field of floating-point values stored in registers, reducing the computational overhead by enabling these operations to be completed in a single cycle or fewer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If floating-point multiplication operation is used to multiply or divide by power of 2, then the operation can be performed, but multiple cycles are required which increases computational overhead

Engineering Contradiction:
Improveoperation speedVSAvoidcycles per operation
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the operational parameter from general floating-point multiplication to exponent field addition. By recognizing that multiplication/division by power of 2 corresponds to adding/subtracting exponents, the system transforms a complex multiplication operation into a simpler addition operation on the exponent field, reducing cycle requirements

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts the exponent field from the floating-point number structure and operates on it separately. By isolating the exponent component and performing addition operations only on this extracted field rather than executing full floating-point multiplication, the system achieves faster execution for power-of-2 scaling operations

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If vector floating-point scale instruction is implemented, then scaling operations are completed in single cycle reducing computational overhead, but the device complexity increases

Engineering Contradiction:
Improvescaling operation speedVSAvoidinstruction set complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The vector floating-point scale instruction provides multi-functionality by handling scaling operations for multiple data elements simultaneously in a single instruction. This SIMD (Single Instruction Multiple Data) capability allows the same instruction to scale numerous floating-point values in parallel, improving productivity while the complexity is amortized across many operations

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges multiple scaling operations into a single vector instruction. Instead of executing separate multiplication instructions for each floating-point value, the vector scale instruction combines multiple scaling operations into one unified operation that processes multiple elements concurrently, reducing overall computational overhead

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20200371784A1Vector floating-point scale
Publication Date: 2020.11.26 TEXAS INSTRUMENTS INC
  • US20200371784A1 patent drawing
  • US20200371784A1 patent drawing
  • US20200371784A1 patent drawing

AI summary

A method to scale source data in a processor in response to a vector floating-point scale instruction includes specifying a first source register containing the source data, a second source register containing scale values, and a destination register to store scaled source data. The first source register includes a plurality of lanes that each contains a floating-point value and the second source register and the destination register each includes a plurality of lanes corresponding to the lanes of the first source register. The method includes executing the vector floating-point scale instruction by, for each lane in the first source register adding the scale value in the corresponding lane of the second source register to an exponent field of the floating-point value in the lane of the first source register to create a scaled floating-point value, and storing the scaled floating-point value in the corresponding lane of the destination register.