Syllabus
Advanced Computer Architecture (CS251a)
- Instructor: Tony Nowatzki
- Term: Winter 2023
- Textbook: Synthesis Lectures (all available online, see below)
Course Objectives
Computer architecture is the glue that binds the worlds of hardware and
software. Developing new architectures is the art and science of understanding
the intrinsic properties of applications, developing and interconnecting
hardware components to meet cost and performance goals, and creating
abstractions that enable efficient use of hardware without sacrificing
generality.
Several important specific goals are:
- Be able to reason about relationship between application properties and how they are exploited by architecture/microarchitecture mechanisms.
- Gain intuition and reasoning skills regarding fundamental architecture tradeoffs of hardware design choices (performance/area/power/complexity/generality).
- Understand microarchitecture techniques behind extracting instruction level parallelism and mechanisms for exploiting locality.
- Gain appreciation for state-of-the-art microprocessors.
- Learn about evaluation methods, including simulation, analytical modeling, and mechanistic models. Specific focus on gem5.
Course Components:
Logistically, this course has 4 components.
- Reviews: During this course we will read a number of research papers from the
literature, including classic and modern works. You will write a short
review, to be submitted over Canvas, for one or two papers each week. Students
should complete 7 reviews during the quarter (but read all papers in Read/Review
categories). See
review page for more instructions.
- Homeworks: There will be a ~3 homeworks during the quarter, in which you
will apply your knowledge to real-world architecture evaluation. These
homeworks will mostly revolve around gem5.
See homeworks page for eventual handouts.
- Exams: There will be two take-home midterm exams during the quarter,
covering the first third and second third of the course material. There will
be no final exam.
See exams page for more details.
- Project: In lieu of a final, the course will have a final project. It will
either involve hacking the gem5 simulator or it can be open ended project of
your choosing.
See project page for more details.
Grade Breakdown
- 20% Reviews
- 15% Homeworks
- 30% Exams
- 15% 1/3 Term
- 15% 2/3 Term
- 35% Project
I will also award up to 5% extra credit points for students who are participating
actively in class. This is the only reliable way to get an A+ in the class.
Required Texts
There is no required textbook. Required reading will include Morgan Claypool
Synthesis Lectures as well as a
set of published papers (available on campus network through
ACM and IEEE
libraries).
Optional Texts
The following are excellent textbooks for reference on related material. I
highly recommend them if learning from textbooks meets your learning style
better than papers/in-class discussion alone.
- John Shen and Mikko Lipasti, Modern Processor Design: Fundamentals of Superscalar Processors, McGraw-Hill, 2005.
- John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach Morgan Kaufmann Publishers, Sixth Edition.