Computer Systems Architecture

Fall 2023

General Information

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.

Course Description

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.