
image source
The arithmetic logic unit (ALU) is a coalition of digital electronic chain that executes real numbers and bitwise logical operations on integer binary numbers.
The major performance parameters for an ALU are:
- The variety of arithmetic and logic functions it can perform (i.e., the functionality)
- the speed of operation
in early 1960s when hardware costs were high, a minimum set of arithmetic (add, subtract) and logic (shift) operations were implemented in hardware.

image source
The other required operations were implemented in software. As the progress in integrated circuit (IC) technology yielded cost-effective and compact hardware, several fast algorithms were devised and implemented in hardware.
Multifunction ALUs are now literally available off-the-shelf. The ALU subsystem has thus been enhanced in the following ways:
Faster algorithms for ALU operations and corresponding hardware implementations (carry lookahead adders, fast multipliers, hardware division, etc.).
Use of a large number of general-purpose registers in the processor structure, wherein most of the ALU operations are on the data items residing in those registers. This reduces the number of accesses to the memory and hence increases the speed of the ALU.
Stack-based ALUs increased the speed of operation since operands and intermediate results could be maintained in stack registers, thus reducing the memory access requirements. A set of registers in the processor are interconnected to form a stack.
The speed of the ALU was further enhanced by implementing it as a pipeline with several stages , when the ALU operations allow such multiple stage execution.
Implementations of the processing unit with multiple functional units, where each unit is dedicated to a single arithmetic or logic operation (such as add, shift, multiply, etc.) were used in machines built as early as the 1960s. This implementation allows the simultaneous execution of several functions thereby enhancing processing speed.
As the hardware became more cost-effective, systems with multiple ALUs became common. Hence each ALU is capable of performing all required arithmetic/ logic functions and all ALUs operate simultaneously. The array processor attachments and the arithmetic co-processors for various microprocessors available today are examples of these architectures.

image source
I keep admiring how big was the jump that computer technologies have made in the last 50-60 years. From those gigantic slow computers in 1960-s to tiny fastest micro schemes which are used almost everywhere nowadays. Getting faster and smaller now every time.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I also get fascinated everytime I think and remember how big the previous technologies were and just to accomplish a smaller job than the current ones! Its really great.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit