Historically, computer system design began by asking what a computer should do, how it can be divided into modules, how those modules are interconnected, and how the system should be designed.

Main subsystems

  1. CPU / Processor

    • The CPU performs operations using registers, microoperations, and control signals.
    • It fetches and decodes instructions, then carries out the required operation.
    • Instructions tell the CPU what operation to perform and where the operands are found, either in registers or memory.
    • In multiprocessor systems, processors communicate through shared memory, mailbox messages, status bits, polling, or interprocessor interrupts.
  2. Memory

    • Memory stores instruction words and data words.
    • The CPU uses memory during the instruction cycle, for example by fetching an instruction into the instruction register.
    • Memory is also used to store operands, results, return addresses during interrupts, and shared information between processors.
    • In I/O operations, memory can communicate directly with devices through DMA or through an input-output processor.
  3. Input / Output Devices

    • I/O devices allow the computer to receive information from outside and send results out.
    • Examples include keyboards, display units, printers, magnetic disks, and tapes.
    • Since peripherals differ from the CPU and memory in speed, format, and operation, interface units are used.
    • The CPU communicates with an I/O device by placing a device address on address lines and a function code on control lines.
    • Programmed I/O: the CPU controls each data transfer using I/O instructions and polling.
    • Interrupt-initiated I/O: the device informs the CPU when it is ready, so the CPU can service it and then return to the previous program.
    • DMA: data transfers directly between memory and I/O while the DMA controller temporarily controls the bus.
  4. Bus System

    • The bus system connects registers, CPU, memory, and I/O.
    • It transfers binary information between parts of the computer.
    • A bus may be built using multiplexers or three-state gates.
    • Computer buses may be organized as separate memory and I/O buses, one common bus with separate control lines, or one common bus with common control lines.