Reciprocal Operation Refinement via Single Instruction Multiply-Accumulate

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing methods for reciprocal operations, such as the Newton-Raphson method, require repeated loading of constants into registers, leading to inefficiencies in register usage and code density, which increases power consumption and reduces operation speed.

Innovation Solution

A data processing apparatus that performs a reciprocal operation using a single refinement instruction to execute a multiply-accumulate operation with constants determined directly from the instruction, eliminating the need for constant loading and improving code density and register efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If constants are loaded into registers before each refinement step, then the multiply-accumulate operation can be performed correctly, but register loading overhead increases and code density decreases

Engineering Contradiction:
Improvecomputation accuracyVSAvoidoperation speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The constant values required for the multiply-accumulate operation are pre-loaded into dedicated constant registers before the iterative refinement process begins. This preliminary action eliminates the need to reload constants during each iteration, allowing the main computation registers to be reused efficiently throughout the iterative process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Dedicated constant registers serve as intermediary storage elements between the instruction stream and the computation registers. These intermediary registers hold the constant values (such as 0.5 or other algorithm-specific constants) and supply them to the multiply-accumulate unit without interfering with the working registers that hold variable data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If constants are loaded into registers before each refinement step, then the computation can be performed, but the number of instructions increases and code density decreases

Engineering Contradiction:
Improvecomputation correctnessVSAvoidcode density
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The constant registers are designed to serve multiple purposes: they store constant values for the multiply-accumulate operation, and they can be selectively activated based on the specific refinement algorithm being executed. This multi-functionality allows a single register file to support various iterative algorithms without requiring separate constant storage for each algorithm.

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

Solution Approach 2:

The constant values are extracted from the general-purpose register file and placed in dedicated constant registers. This extraction separates the constant data management from the variable data management, allowing the main computation logic to proceed without interruption for constant loading operations.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If dedicated hardware is developed for reciprocal operations, then operation speed increases, but the data processing apparatus size increases

Engineering Contradiction:
Improveoperation speedVSAvoidapparatus size
Core Design Contradiction:
SpeedVSVolume of moving object

Solution Approach 1:

The reciprocal operation functionality is merged into the existing floating-point multiply-accumulate unit. By combining the reciprocal computation logic with the already-present arithmetic hardware, the patent achieves enhanced functionality without proportionally increasing the overall apparatus size. The same arithmetic logic unit handles both standard arithmetic operations and the specialized reciprocal refinement steps.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The data processing apparatus employs dynamic configuration where the function of the arithmetic logic unit changes based on the execution context. During reciprocal operations, the unit dynamically switches to execute the iterative refinement algorithm with pre-loaded constants, whereas during normal arithmetic operations, it performs standard computations. This dynamic adaptability allows one piece of hardware to serve multiple purposes efficiently.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8965946B2Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value
Publication Date: 2015.02.24 ARM LTD
  • US8965946B2 patent drawing
  • US8965946B2 patent drawing
  • US8965946B2 patent drawing

AI summary

A data processing apparatus and method are provided for performing a reciprocal operation on an input value d to produce a result value X. The reciprocal operation involves iterative execution of a refinement step to converge on the result value, the refinement step performing the computation: Xi=Xi-1*M, where Xi is an estimate of the result value for the i-th iteration of the refinement step, and M is a value determined by a portion of the refinement step. The data processing apparatus comprises a register data store having a plurality of registers operable to store data, and processing logic operable to execute instructions to perform data processing operations on data held in the register data store. The processing logic is responsive to a single refinement instruction to implement the portion of the refinement step by performing at least a multiply-accumulate operation in which the input value, a value derived from the previous estimate of the result value, and a constant are used as inputs of the multiply-accumulate operation. The constant is determined from the single refinement instruction without reference to the register data store. Such an approach improves code density, and improves efficiency of use of registers of the register data store.