As the metaphorical brain of a computer, an arithmetic logic unit (ALU) performs all computational and comparison operations. The ALU serves as the foundation of central processing units (CPUs), graphics processing units (GPUs), and floating point units (FPUs). A simple ALU has three data buses: two single-bit operands (A and B) that result in one output (Y).
History of the ALU
The ALU was pioneered in 1945 by mathematician John von Neumann, best known for his development of Von Neumann architecture. Neumann s machines introduced stored programs and executed instructions sequentially this resulted in limited throughput and performance.
In the 1970s, the Intel 74181 gave way to today s single-chip microprocessors. The 4-bit ALU contained the equivalent of 75 logic gates and was the very first to exist in a single package. Today s ALUs are more complex and have added features like barrel shifters and binary multipliers, effectively making them capable of performing a higher volume of more complex operations in a shorter amount of time.
Types of ALU operations
There are four types of binary input combinations, where 1 represents true and 0 represents false :
- 0+0=0
- 1+0=1
- 0+1=1
- 1+1=0
The fourth input combination results in a carry-in, which requires some type of operation to take place. There are eight types of basic arithmetic operations that all ALUs will support:
- ADD
- ADD with CARRY
- SUBTRACT
- SUBTRACT with BORROW
- INCREMENT
- DECREMENT
- NEGATE
- PASS THROUGH
More complex ALUs with more logic gates (like those in smartphones and laptops) are also able to perform multiplication and division operations.
On the other half of the unit, logic operations are used to validate or modify the outputs of these circuits. Bitwise logic operations include:
- NOT
- AND
- OR
- XOR (exclusive-OR)