Tuesday, August 19, 2025

C05 The ALU: Computer's Mathematical Brain


The Arithmetic Logic Unit (ALU) - The Brain of Computation

Dr Sudheendra S G summarizes key concepts and functions of the Arithmetic Logic Unit (ALU), a fundamental component of computers responsible for mathematical and logical operations.

I. Core Function and Components

The ALU is described as the "mathematical brain of your computer," essential for "every game you play, every photo filter you apply, every message you send." It is comprised of two main parts:

  • The Arithmetic Unit: This unit handles "math like addition, subtraction, and incrementing."
  • The Logic Unit: This unit is responsible for "logical decisions like AND, OR, and NOT."

A landmark in ALU development was the "Intel 74181 (1970) — the first full ALU squeezed into a single chip," which was deemed "revolutionary!"

II. Building Blocks of Arithmetic: Addition

Addition is presented as the "foundation of almost everything else" computed by an ALU. It is built using fundamental logic gates: AND, OR, NOT, and XOR.

  • Half Adder: This basic circuit adds two bits (A and B).
  • The XOR gate determines the "correct sum" (e.g., 0+0=0, 1+0=1, 0+1=1).
  • The AND gate manages the "carry bit" (for when 1+1 overflows to '10' in binary, producing a carry of '1').
  • Full Adder: This more advanced circuit handles three inputs: A, B, and a "carry from the previous column." It is constructed using "two half adders and an OR gate."
  • Ripple Carry Adder: To add numbers larger than a single bit (e.g., 8-bit numbers), full adders are "chained together." Carries "ripple forward like dominoes," which introduces a "tiny bit of time."

III. Beyond Basic Addition: Multiplication, Division, and Overflow

While modern CPUs include specialized circuits for speed, "basic ALUs don’t even have dedicated multiply or divide circuits."

  • Multiplication: This operation is typically performed as "repeated addition" (e.g., "12 × 5 = 12 + 12 + 12 + 12 + 12").
  • Division: Not explicitly detailed but implied to be similarly derived from basic arithmetic operations in simpler ALUs.
  • Overflow: This occurs "if the final addition produces an extra carry," meaning the result is "too big for the number of bits." A famous example is the original Pac-Man arcade game, where "After level 255, the ALU overflowed and level 256 glitched out! A bug became a gamer’s rite of passage."

IV. The Logic Unit's Role

The Logic Unit performs essential non-mathematical operations:

  • Logical Operations: It directly handles "AND, OR, NOT operations."
  • Comparisons/Checks: It also performs checks like "'Is this number zero?' or 'Is it negative?'" For instance, a "zero-checking circuit uses OR gates to test all bits. If none are 1, the output is 1 (true) → meaning the number is zero. Simple, but powerful!"

V. ALU Flags: Signaling Conditions

ALUs communicate special conditions about the results of their operations through "flags," which are "tiny 1-bit outputs." These flags are crucial for program control flow and decision-making.

Key flags include:

  • Zero Flag: "set if the result = 0." Programs can use this to determine if "two numbers were equal."
  • Negative Flag: "set if result is negative." If this flag is true "after subtracting A–B, then A < B."
  • Overflow Flag: "set if the sum is too big for the number of bits."

Flags are likened to "the ALU’s emojis, telling the rest of the computer how the calculation went."

VI. Summary of ALU Operations

In essence, the ALU functions by:

  • Taking "two inputs (A and B)."
  • Receiving an "operation code (like 1000 for addition, 1100 for subtraction) to know what to do."
  • Producing "an output (the result)."
  • Sending out "flags (zero, negative, overflow)."

The underlying principles of ALUs, from the theoretical constructs to the physical implementations, are consistent across devices, with modern ALUs being "millions of times faster, smaller, and more advanced" than their predecessors.

 


No comments: