Storage and I/O Systems
Storage and I/O systems connect the processor and memory to the outside world and to persistent data, encompassing buses and interconnects, disk and flash storage, redundancy for reliability, and the mechanisms that move data efficiently between devices and memory.
Definition
Storage and I/O systems are the hardware and architectural mechanisms by which a computer transfers data to and from peripheral devices and stores it persistently, including the interconnects, controllers, storage media, and reliability and virtualization techniques involved.
Scope
This area covers how computers communicate with peripherals and store data durably: I/O architecture and buses, interrupt- and DMA-driven transfer, secondary storage devices (magnetic disks and solid-state drives), storage reliability through redundancy such as RAID, and I/O virtualization. It treats the hardware and architectural mechanisms of input/output and persistence. It excludes the file-system software abstraction (operating systems) and on-chip caches and main memory (memory hierarchy and caches), though it works closely with both.
Sub-topics
Core questions
- How are devices connected to the processor and memory through buses and interconnects?
- How is data transferred efficiently using interrupts and direct memory access rather than busy polling?
- What are the performance and reliability characteristics of magnetic and solid-state storage?
- How does redundancy such as RAID trade capacity for reliability and performance?
- How is I/O virtualized and shared safely among virtual machines and processes?
Key concepts
- I/O buses and interconnects
- interrupt-driven I/O
- direct memory access (DMA)
- magnetic disk and SSD
- device controllers
- RAID and redundancy
- storage reliability and MTTF
- I/O virtualization
- throughput and latency
- memory-mapped I/O
Key theories
- Redundant arrays of inexpensive disks (RAID)
- Combining many commodity disks with data striping and parity or mirroring yields storage that is larger, faster, and more reliable than a single disk; the RAID levels formalize the trade-offs among capacity, performance, and fault tolerance.
- Decoupled I/O transfer
- Direct memory access and interrupt-driven I/O let devices transfer data to and from memory without continuous processor involvement, overlapping I/O with computation and improving overall system throughput.
Mechanisms
Peripherals attach to the system through buses and controllers and signal the processor with interrupts. Bulk data is moved by direct memory access, which transfers blocks between a device and memory without per-word processor involvement. Secondary storage stores data persistently on magnetic disks or flash, and arrays of devices use striping, mirroring, and parity (RAID) to improve performance and tolerate failures. Virtualization layers multiplex these devices among guests.
Clinical relevance
Storage and I/O often determine end-to-end system performance and durability: databases, file servers, and data-intensive applications are frequently bound by storage throughput and latency rather than computation. RAID and related redundancy schemes protect against device failure in data centers, and efficient I/O virtualization is essential to cloud computing where many tenants share physical hardware.
History
Early machines used programmed I/O and dedicated channels; interrupt-driven I/O and direct memory access emerged to overlap I/O with computation. Magnetic disks dominated secondary storage for decades, and the 1988 RAID proposal by Patterson, Gibson, and Katz established redundancy as a standard reliability technique. Flash-based solid-state drives later reshaped the storage hierarchy, and I/O virtualization grew central with the rise of cloud computing.
Debates
- Disaggregated versus local storage
- There is ongoing discussion over whether storage should be attached locally to compute or disaggregated across fast networks; disaggregation improves utilization and flexibility in data centers but adds latency and depends on high-performance interconnects.
Key figures
- David A. Patterson
- Garth Gibson
- Randy H. Katz
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson1988raid
- silberschatz2018
Frequently asked questions
- What is direct memory access and why is it useful?
- Direct memory access (DMA) lets a device transfer blocks of data to or from main memory without the processor copying each word. This frees the processor to do other work during the transfer, overlapping I/O with computation and greatly improving throughput for bulk data movement.
- Does RAID guarantee my data is safe?
- No. RAID improves availability and tolerates certain device failures by storing redundant information, but it is not a backup: it does not protect against accidental deletion, corruption, multi-device failures beyond its tolerance, or site-level disasters, so separate backups remain necessary.