Reciprocal Operation Refinement via Single Instruction Multiply-Accumulate
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Speed
If dedicated hardware is developed for reciprocal operations, then operation speed increases, but the data processing apparatus size increases
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.
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.
Data Source
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.


