Computer Architecture
Computer architecture defines how the components of a computing system are organized, interconnected, and coordinated to execute programs and process data. In the classical framing established by John Hennessy and David Patterson, the field spans three intertwined layers: the instruction set architecture (ISA), the hardware-software contract exposed to the programmer; the microarchitecture, the concrete organization that implements a given ISA; and the system-level design that assembles processors, memory, and peripherals into a working machine. Whereas microprocessor architecture concentrates on the internal design of the CPU, computer architecture takes this broader system view, encompassing memory hierarchies, bus structures, input/output, storage, and the interfaces that bind these elements into a cohesive whole.
Understanding computer architecture is essential for anyone designing embedded systems, developing system software, or optimizing applications for a specific hardware platform. Choices made at the system level profoundly influence performance, power consumption, cost, and scalability, and they usually involve trade-offs rather than outright winners. The discipline reaches from the classic von Neumann architecture, which established stored-program computing by holding instructions and data in a single memory, to the Harvard architecture that separates the two, and onward to modern systems-on-chip that integrate processors, accelerators, memory controllers, and interconnect onto a single die.
Several recurring principles unify the topics in this section. The memory hierarchy trades capacity against speed, layering fast registers and caches above slower main memory and persistent storage so that frequently used data stays close to the processor. Parallelism, classified since 1966 by Flynn's taxonomy into single- and multiple-instruction, single- and multiple-data streams, lets architectures scale by performing many operations at once, whether across CPU cores or the massively threaded lanes of a GPU. Input/output and interconnect determine how quickly a system moves data among its parts and the outside world. Finally, the storage stack, from raw devices through filesystems, database engines, and distributed cloud services, governs how data persists and stays available at scale. The topics below examine each of these dimensions in depth.