The evolution of electronic computing is categorized into distinct generations characterized by the underlying switching technology, memory architecture, and programming paradigms:
| Generation | Primary Hardware Component | Memory / Storage | Software / Language | Characteristic Systems |
|---|---|---|---|---|
| 1st Gen (1940-1956) | Vacuum Tubes (Thermionic valves) | Magnetic drums, Acoustic delay lines | Machine language (Pure binary 0/1) | ENIAC, EDVAC, UNIVAC-I |
| 2nd Gen (1956-1963) | Transistors (Bipolar Junction Transistors) | Magnetic core memory, Magnetic tapes | Assembly language, Early HLL (FORTRAN, COBOL) | IBM 1401, CDC 1604 |
| 3rd Gen (1964-1971) | Integrated Circuits (SSI & MSI Silicon ICs) | Magnetic core, early semiconductor RAM | High-Level Languages (BASIC, Pascal, C) | IBM System/360, PDP-8 |
| 4th Gen (1971-Present) | Microprocessors (VLSI & ULSI chips, millions of transistors) | Semiconductor DRAM, SRAM, Flash SSD, HDD | Modern HLLs (C++, Java, Python, C#), RDBMS, GUI OS | Intel 4004/x86, Personal Computers, Apple Mac |
| 5th Gen (Present & Beyond) | Ultra-Large Scale Integration (ULSI), Quantum, Multi-core AI Processors | High-Bandwidth 3D Stacked RAM (HBM), Cloud Storage | Artificial Intelligence, Neural Networks, Parallel Computing | Supercomputers, TPU/GPU clusters, Quantum prototypes |
Proposed by mathematician and physicist John von Neumann in 1945, the Von Neumann architecture introduced the revolutionary concept that both program instructions and data reside in the same physical, addressable memory space. Prior to this, mechanical calculators required tedious physical rewiring to alter their operational tasks.
The classical Von Neumann architecture consists of three interconnected subsystems:
- Central Processing Unit (CPU): The computational brain executing instructions and directing the entire machine.
- Main Memory Unit: A linear sequence of numbered memory locations holding both executable binary instructions and operand data.
- Input/Output (I/O) Subsystem: Interfaces enabling interaction with human operators and external peripheral hardware.
The Central Processing Unit contains two primary functional processing units and a bank of ultra-fast internal registers:
- Arithmetic Logic Unit (ALU): Performs all elementary arithmetic calculations (addition, subtraction, multiplication, division) and logical decisions (bitwise AND, OR, NOT, XOR, magnitude comparisons like equal, greater than, less than). The ALU updates a dedicated Status / Flags Register containing indicator bits such as Zero Flag (Z), Carry Flag (C), Sign Flag (S), and Overflow Flag (V).
- Control Unit (CU): Acts as the conductor of the computer orchestra. It fetches instructions sequentially from memory, decodes the operation code (opcode), coordinates micro-operations, and emits synchronized electrical timing and control signals to the ALU, registers, and system bus.
- CPU Internal Registers: Small, high-frequency internal memory cells running at processor clock speed:
- Program Counter (PC): Holds the memory address of the next instruction scheduled to be fetched and executed. It automatically increments after each instruction fetch.
- Memory Address Register (MAR): Holds the physical memory address currently being read from or written to across the address bus.
- Memory Data Register (MDR) / Memory Buffer Register (MBR): Serves as a two-way staging buffer holding the data byte fetched from memory or prepared for writing into memory.
- Instruction Register (IR): Holds the binary bit-pattern of the current instruction immediately after it is fetched from memory while the Control Unit decodes it.
- Accumulator (ACC): A primary general-purpose arithmetic register that stores intermediate computational results produced by the ALU.
Every CPU operation proceeds through a cyclic four-step pipeline known as the FDE Cycle:
- Fetch: The address in the PC is loaded into the MAR. The Control Unit asserts a Memory Read signal on the control bus. The memory returns the instruction byte via the data bus into the MDR. The contents of the MDR are copied into the IR. Concurrently, the PC is incremented ($PC \leftarrow PC + ext{instruction length}$) to point to the subsequent instruction.
- Decode: The instruction in the IR is parsed by the CU's instruction decoder. The opcode determines which operation is required, and addressing modes specify whether operands reside in CPU registers, immediate constants, or memory addresses.
- Execute: The CU signals the ALU or internal data paths to execute the operation (e.g., adding two register values or fetching an operand from RAM).
- Store (Write-back): The result generated by the ALU is written back into the designated destination register (such as the Accumulator) or dispatched to primary memory.
A bus is a shared collection of parallel electrical conductor pathways connecting internal CPU components to memory and peripheral interfaces. System buses are segregated by their functional role:
- Data Bus: A bidirectional highway carrying actual raw data and instruction codes between the CPU, memory, and peripheral controllers. The width of the data bus (e.g., 32 bits, 64 bits) dictates the system's word size and maximum data throughput per bus clock cycle.
- Address Bus: A unidirectional highway driven exclusively by the CPU (or DMA controllers) to specify the physical destination address in memory or I/O ports. If an address bus contains $k$ physical lines, the processor can directly address exactly $2^k$ distinct memory locations (bytes). For example, a 32-bit address bus can address $2^{32} = 4,294,967,296 ext{ bytes} = 4 ext{ GB}$ of RAM.
- Control Bus: A collection of individual control and timing signal lines managing read/write direction, clock synchronization, reset, and hardware interrupt requests (e.g., MEMR, MEMW, IOR, IOW, INTR, RESET, CLK).