Course description: EE282 focuses on advanced system-level architecture techniques for devices such as personal computers, servers, and embedded or portable systems. It covers topics such as cache hierarchies, memory systems, storage and IO systems, virtualization, clusters, fault-tolerance, and low-power design. It also covers the interactions between the hardware and software layers in such systems. The programming assignments provide an introduction to performance analysis and optimization techniques for small-scale and large-scale systems. At the completion of the course, you will understand basic principles such as locality, coarse-grain parallelism, overlapping communication and computation, performance/power trade-offs, and reliability. Overall, you will understand how computer systems are organized and, more importantly, why they are organized that way. EE282 discusses the characteristics of modern processors that affect system architecture, but does not provide detailed coverage of their internal microarchitecture (see EE382A).
EE282 is appropriate for graduate and advanced undergraduate students specializing in the broad field of computer systems. It is also appropriate for other EE and CS students who want to understand and make efficient use of modern computer systems in their day-to-day work.
Lecture Time & Location: Monday & Wednesday, 11:00am-12:15pm, Skilling Auditorium.
Review Section Time & Location: Friday, 11:00am - 11:50am, Skilling 193.
SCPD: online videos (description)
Acknowledgement: We would like to thank Google and Intel for their generous donations towards purchasing the computer cluster for EE282.