Instructor: Nader Sehatbakhsh, Assistant Professor, UCLA
TAs: Shyandeep Das (shyandeepdas [at] g [dot] ucla [dot] edu) and Justin Feng (jfeng10 [at] g [dot] ucla [dot] edu)
Lectures: Boelter Hall 3400
Office Hours: Tuesdays 5-6 PM or by appointment*
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.