Computer Architecture

A modern processor is one of the most intricate objects humans build — tens of billions of transistors that, every second, guess the future billions of times, juggle hundreds of instructions in flight, and pull data through a five-level memory hierarchy, all while honouring an instruction-set contract written decades ago. Computer architecture is the discipline of designing that machine: deciding what a processor should do, and how to build it so that it is fast, efficient and correct.

This master's-level course takes the quantitative approach of Hennessy and Patterson. It builds from the ground up — from measuring performance honestly and the physics of a transistor, through the instruction set, the pipeline, and the deep tricks of instruction-level parallelism, into the memory hierarchy, multicore coherence, GPUs and domain-specific accelerators, and finally the reliability and security of it all. It assumes you already know undergraduate digital logic and basic CPU organisation, binary representation, and a little concurrency.

Module 1 — Quantitative foundations and performance

Module 2 — Transistors and digital building blocks

Module 3 — Instruction set architecture

Module 4 — Datapath, control and I/O

Module 5 — Pipelining and hazards

Module 6 — Instruction-level parallelism

Module 7 — Memory hierarchy and caches

Module 8 — Thread-level parallelism and multicore

Module 9 — Data-level parallelism

Module 10 — Domain-specific and warehouse-scale architecture

Module 11 — Reliability, security and the hardware/software interface

Begin → What Computer Architecture Is