This invention is a
data processing apparatus which operates on instruction controlling plural processor actions. Each instruction includes a data unit section and a data transfer section. These instruction sections are independent and may include differing options. In the preferred embodiment, each instruction is 64 bits. The data unit section includes a data operation field that indicates the type of
arithmetic logic unit operation and six
operand fields. The six
operand fields include four
source data register fields and two destination register fields. The data unit (110) includes a multiplication unit (220) and an
arithmetic logic unit (230). The data unit (110) may include a
barrel rotator (235) for one input of the
arithmetic logic unit (230). The rotated data may be stored in the first destination register instead of the multiply result. The address unit (120) operations according to the data
transfer operation field. This could be a load, a store or a register to register move. Operations may be conditional based upon conditions stored in a
status register (210). The
status register (210) is set by a prior output of the arithmetic logic unit (230) and the instruction may specify some of the status bits protect from change. The address unit (120) preferably includes a plurality of
base address registers (611), a full
adder (615) and a left shifter (614). The full
adder (615) may add an index as scaled by the left shifter to the
base address or subtract the scaled index from the
base address. The full
adder (615) output may update the base address register (611), either before supply of the address or following supply of the address. The index may be recalled from an
index register (612) or an immediate value. In the preferred embodiment of this invention, the data unit (110) including the data registers (200), the multiplication unit (220) and the arithmetic logic unit (230), the address unit (120) and the instruction decode logic (250, 660) are embodied in at least one
digital image /
graphics processor (71, 72, 73, 74) as a part of a multiprocessor (100) formed in a single
integrated circuit used in
image processing.