Patent ID: 7647480
Filing Date: 2010-01-12
Classification: G06F

Abstract:
1. A data processing apparatus, comprising: a pipelined processing unit, having pipeline stages forming a pipeline data path, arranged to execute instructions including a conditional instruction from a set of conditional instructions; a register file having a plurality of registers arranged to store data values for access by the pipelined processing unit when executing said instructions, a register specified by an instruction being either a source register holding a source data value for that instruction or a destination register into which is stored a result data value generated by execution of that instruction; the register file having a predetermined number of read ports via which data values can be read from registers of the register file; the pipelined processing unit being arranged when executing said conditional instruction to produce a result data value which, dependent on the existence of the condition specified by that conditional instruction, represents either the result of a computation specified by that conditional instruction or a current data value stored in the destination register for that conditional instruction; the pipelined processing unit having at least one data forwarding path to enable the result data value to be forwarded into one or more of said pipeline stages of the pipelined data path without going via said register file; each conditional instruction in the set being constrained to specify a register which is both a source register and a destination register for that conditional instruction, so as to reduce the minimum number of read ports required to support execution of that conditional instruction by the pipelined processing unit; the pipelined processing unit being arranged, following execution of said conditional instruction, to execute a dependent instruction, the dependent instruction specifying a source operand with reference to a source register that is the destination register of said conditional instruction; said result data value being used as said source operand irrespective of the existence of the condition specified by said conditional instruction; and said result data value being returned over said at least one data forwarding path into the pipelined data path for use in the dependent instruction.