Computer Systems Architecture

EE282 focuses on advanced, system-level architecture techniques for devices ranging from portable electronics to warehouse-scale datacenters. It covers topics such as advanced cache hierarchies, main memory systems, non-volatile storage, advanced IO systems, virtualization, power management, and datacenter hardware and software architecture. The programming assignments provide an introduction to performance analysis and optimization techniques for computer systems. At the completion of the course, you will understand how computer systems are organized and, more importantly, why they are organized that way. You will also understand the rich interactions between the hardware and software layers in modern systems. EE282 discusses the characteristics of modern processors that affect system architecture, but does not provide detailed coverage of their internal microarchitecture (see CS316).

EE282 is appropriate for undergraduate and graduate students specializing in the broad field of computer systems. It is also appropriate for other EE and CS students who want to understand, program, and make efficient use of modern computer systems of any scale in their day-to-day work.