A data processing apparatus including a multiplier unit forming a product
from L bits of each two data buses of N bits each N is greater than L.
The multiplier forms a N bit output having a first portion which is the L
most significant bits of the of product and a second portion which is M
other bits not including the L least significant bits of the product,
where N is the sum of M and L. In the preferred embodiment the M other
bits are derived from other bits of the two input data busses, such as
the M other bits of the first input data bus. An arithmetic logic unit
performs parallel operations (addition, subtraction, Boolean functions)
controlled by the same instructions. This arithmetic logic unit is
divisible into a selected number of sections for performing identical
operations on independent sections of its inputs. The multiplier unit may
form dual products from separate parts of the input data. A single
instruction controlling both the multiplier unit and the arithmetic logic
unit permits addition of dual products. The dual products are temporarily
stored in a data register permitting the multiply and add operations to
be pipelined. The dual products are formed in one data word and added by
a rotate/mask and add operation in a three input arithmetic unit.