Instructor: Nader Sehatbakhsh, Assistant Professor, UCLA
TAs: Pooya Aghanoury (aghanoury [at] g [dot] ucla [dot] edu), Fatemeh Arkannezhad (fatemeharkan [at] g [dot] ucla [dot] edu), and Justin Feng (jfeng10 [at] g [dot] ucla [dot] edu)
Lectures: Young Hall CS76
Office Hours: Thursdays 4-5 PM (in-person) or by appointment* (Zoom or in-person)
Textbook: David A. Patterson and John L. Hennessy, Computer Organization and Design: the Hardware/Software Interface: RISC-V Edition
Links: We will use Campuswire and Gradescope in this course. Please use the links posted in Bruinlearn to enroll.
* To schedule an appointment, send a direct message on Campuswire.
The aim of this course is to learn the basics of modern microprocessors and their interactions with other units, such as the memory hierarchy and I/O. At the high-level, Computer architecture is the science and engineering of selecting and interconnecting hardware components to create a computer that meets functional, performance, and cost goals. More specifically, in this course you will learn basic principles and techniques in architecting a computer including designing instruction set architecture (ISA), pipeline, and instruction-level parallelism. You will learn these topics in more detail by designing and implementing a multi-stage pipelined, superscalar processor for a simple RISC ISA using C/C++. Further, you will learn a range of architectural techniques used in modern processor design including superscalar design, out-of-order execution, and cache hierarchies.