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