Integer operand : ALU has a total three data buses, two of them are input buses (A and B bus) and the remaining is output bus (Y bus). Each of these buses carries one binary integer number value. Size of these buses is the same as the native word size of the external circuitry.
Opcode : Opcode bus carries operation selection code (enumerated value of operation) to ALU. In simple terms Opcode tells ALU which operation is to be performed.
Opcode bus size is dependent on max ability of ALU to perform operations, e.g. a four-bit opcode can specify up to sixteen different ALU operations.
Status : Status are individual signals which carry information about the result of current ALU operation. Here are some of the status signals.
1. Carry-out : Which says carry has been generated from addition operation, borrow has been generated by subtraction operation or overflow bit resulting in binary-shift operation.
2. Zero : It indicates that all the bits of Y are zero. If we are subtracting one number from the same number we will generate zero status eg(7-7 will generate zero status) and by seeing zero status we can say that both the values are the same.
3. Negative : It indicates the result of ALU operation has generated negative value.
4. Overflow : It indicates the result of ALU operation has exceeded the range of Y.
5. Parity : It indicates the number of set bits (bit values 1) in Y, e.g. if the value of Y is “10110” this has 3 set bits (3 1’s bit) which means we have odd number of set bits then the value of parity status is “0”.
If the value of Y is “1001” this has 2 set bits (2 1’s bit) which means we have even number of set bits then the value of parity status is “1”
These status output signals are stored in registers to make them available for next ALU operations or controlling conditional branching. The group of bit registers which store the status outputs are often treated as a single, multi-bit register, which is referred to as the “status register” or “condition code register”. [1]