Patent ID: 8015228

Claim:
A data processing apparatus for performing a reciprocal operation on an input value ‘d’ to produce a result value ‘X’, the reciprocal operation involving one or more iterations of a refinement step to generate the result value with a desired precision, the refinement step performing the computation: X i = X i−1 * M where X i is an estimate of the result value for an i-th iteration of the refinement step, and M is a value determined by a portion of the refinement step, the data processing apparatus comprising: a register data store having a plurality of registers operable to store data; processing logic arranged to execute program instructions, said program instructions being decoded into control signals to cause said processing logic to perform data processing operations on data held in the register data store, each of said program instructions specifying a source register and a destination register, the reciprocal operation being performed by the processing logic executing a sequence of said program instructions comprising an initial estimate program instruction and a number of refinement program instructions, said number of program refinement instructions corresponding to a number of iterations of the refinement step required to generate the result value with the desired precision; and an input multiplexer coupled to the processing logic, the processing logic being responsive to each said refinement program instruction to implement said portion of a corresponding refinement step by performing at least a multiply- accumulate operation in which the input value, a value derived from a previous estimate of the result value, and a constant are used as inputs of the multiply-accumulate operation, the constant being determined by the input multiplexer in dependence on the refinement program instruction without reference to the register data store.