An
Arithmetic and Logical Unit (ALU) is one of the core components of all
Central Processing Units. It is capable of calculating the results of a wide variety of common computations. The most common available operations are the integer arithmetic operations of addition, subtraction, and multiplication, the bitwise logic operations of AND, NOT, OR, and XOR, and various shift operations. Typically, a standard ALU does not handle integer division nor any
floating point operations. For these calculations a separate component, such as a divider or
Floating Point Unit (FPU), is often used, although it is also possible that a
microcode program may use the ALU to emulate these operations.
The ALU takes as inputs the data to be operated on and a code from the control unit indicating which operation to perform, and for output provides the result of the computation. In some designs it may also take as input and output a set of condition codes, which can be used to indicate cases such as carry-in or carry-out, overflow, or other statuses.
See also: execution unit