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
-
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.
-
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.
-
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.
-
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.