EE282: Computer Systems Architecture

Spring 2023, Tuesdays and Thursdays 1:30 PM - 2:50 PM, Skilling Auditorium

Instructor: Caroline Trippel
Teaching Assistant: Sneha Goenka

Canvas: Class Homepage
Ed: Class Homepage
GradeScope: Class Homepage
Syllabus: PDF
Problem Set: PDF

EE282 focuses on key topics in advanced computer systems architecture such as multilevel in memory hierarchies, advanced pipelining and super scalar techniques, vectors, GPUs and accelerators, non-volatile storage and advanced IO systems, virtualization, and datacenter hardware and software architecture. The programming assignments introduce performance analysis and optimization techniques for computer systems. At the completion of the course, you will understand how computer systems are organized and, why they are organized that way, and what determines their performance. You will also understand the rich interactions between the hardware and software layers in modern systems.
  EE282 is appropriate for undergraduate and graduate students specializing in the broad field of computer systems. It is also appropriate for other EE and CS students who want to understand, program, and make efficient use of modern computer systems of any scale in their day-to-day work.
  Post-EE282, students can take CS316, a research seminar on advanced computer architecture based on recent papers, or CS349d, a seminar that covers the software infrastructure of cloud computing and large-scale datacenters.

News (top is most recent)

  • Programming Assignment 3 released here. It is due June 6, 1pm PST on Gradescope. Setup instructions are available here.
  • Programming Assignment 2 released here. It is due May 18, 1pm PST on Gradescope. Setup instructions are available here.
  • Programming Assignment 1 released here. It is due May 9, 1pm PST on Gradescope.
  • GCP setup instructions released here.
  • Problem Set for the quarter released here.
  • Please make sure you have access to the Canvas, Ed and GradeScope (links posted above).
  • Welcome to EE282!


Required Textbook:
H&P: J. Hennessy & D. Patterson, Computer Architecture: A Quantitative Approach, 6th edition.
M/C: Morgan Claypool Synthesis Lectures (available through the library using your SUID).
Problem Set (for the Reference Problems in the table below)
Programming Assignment 1
Programming Assignment 2

Date[Lecture #] TopicReading Assignment
Additional Reading
Reference Problem/s
[Due date]
4/4 [1] Introduction & Review of Prerequisites H&P 6: Appendices A.{1-8}, B.{1-3}, C.{1-2,4,6}
H&P 6: Chapter 1.{1-13}
Architecture of the IBM System/360
4/6 [2] Advanced Caches 1: Multilevel, Optimizations H&P 6: Chapter 2.{1,3,6}, and Appendix B.{3,6}
Improving Direct-Mapped Cache Performance by the Addition of a Small Fully-Associative Cache and Prefetch Buffers
Slides Recording
4/11 [3] Advanced Caches 2: Prefetching, Coherency H&P 6: Chapters 2.5, and 5.{1,2,4}
A Case for Two-Way Skewed-Associative Caches.
The ZCache: Decoupling Ways and Associativity
Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers
An Effective On-Chip Preloading Scheme to Reduce Data Access Penalty
IMP: Indirect memory prefetcher
Evolution of the Samsung Exynos CPU Microarchitecture
Problems 1,2
4/13 [4] Memory Consistency & Synchronization
H&P 6: Chapter 5.{4-7}
Free atomics: hardware atomic operations without fences
Problem 3

Programming Assignment 1
4/18 [5] Memory Consistency & Synchronization (cont.)
M/C: A Primer on Memory Consistency and Cache
Coherence, Second Edition
: Chapters 3,4
Risotto: A Dynamic Binary Translator for Weak Memory Model Architectures
Slides Recording
4/20 [6] Main Memory (including HBM) & Memory Consistency(cont.)

Problems 1,2 due

H&P 6: Chapter 2.2
Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors
MOESI-prime: preventing coherence-induced hammering in commodity workloads
Problem 4
Slides Recording
4/25 [7] Out of Order Processors & Main Memory (cont.) H&P 6: Chapter 3.{1-4}
Thermometer: profile-guided btb replacement for data center applications
Problem 5
Slides Recording
4/27 [8] Speculation and Superscaler

Problem 3 due

H&P 6: Chapter 3.{6-10}
Problem 6

Programming Assignment 2
Slides Recording
5/2 [9] Multithreading H&P 6: Chapter 3.{11-12}
Problem 7
Slides Recording
5/4 [10] Multithreading (cont.)

Problem 4 due

Problem 5 due

H&P 6: Chapter 3.{11-12}
Slides Recording
5/9 [11] GPUs
Guest Lecturer:
Michael Pellauer

Problem 6 due

Problem 7 due

Programming Assignment 1 due

H&P 6: Chapter 4.{4,6-8}
Slides Recording
5/11 Midterm Quiz (1:30PM -3:00PM PST)
Skilling Auditorium
Lectures 1-10 (upto and including Multithreading)
5/16 [12] Vectors
Lecturer: Sneha
H&P 6: Chapter 4.{1-3,5}, and Appendix G
Problem 8
Slides Recording
5/18 [13] Virtualization and Datacenters

Programming Assignment 2 due

M/C: Hardware and Software Support for Virtualization: Chapters 1,2,4,5
Large-Scale Cluster Management At Google With Borg;
M/C: The Datacenter as a Computer 3rd ed:
Chapters 1-6;
Problem 9
Slides Recording
5/23 [14] Advanced Memory Management
M/C: Hardware and Software Support for Virtualization: Chapters 1,2,4,5;
H&P 6: Appendix L
Problem 10

Programming Assignment 3
Slides Recording
5/25 [15] Advanced I/O + Networking

Problem 8 due

H&P 6: Appendix F.{1-2}
H&P 6: Chapter 2.2, Appendix D.2;
Problem 12
Slides Recording
5/30 [16] Landscape of Accelerators I
Lecturer: Sneha

Problem 9 due

CACM: Domain-Specific Hardware Accelerators by Prof. Bill Dally et. al.
H&P 6: Chapter 7.{1-4}
Slides Recording
6/1 [16] Landscape of Accelerators II
Lecturer: Sneha

Problem 10 due

CACM: Domain-Specific Hardware Accelerators by Prof. Bill Dally et. al.
H&P 6: Chapter 7.{1-4}
Efficient Processing of Deep Neural Networks: Chapters 2-4
Problem 11
Slides Recording
6/6 [18] Non-volatile memory

Problem 11 due

Problem 12 due

Programming Assignment 3 due

Flash storage memory by Adam Leventhal
6/10 Endterm Quiz (3:30PM -5:30PM PST)
Skilling Auditorium
Lectures 1-18

Homework and Projects

You will work on all assignments in groups of 2 students. All assignments are due by 1:00pm on the dates indicated on the assignment. Solutions to homework sets will be available online shortly thereafter. All deadlines are final. No extensions, no exceptions. Late assignments will not be accepted. All assignments should be submitted through GradeScope.


Announcements: Visit this web page regularly to access all the handouts, solutions, and announcements. Please check your email regularly as well for announcements from Ed!

Office Hours:

  • Caroline Trippel: Tuesdays 3:00pm – 4:00pm, Gates 470 (starting 04/04/2023) or by appointment.
  • Sneha Goenka: Wednesdays 12:00noon – 1:30pm, Packard 106 (starting 04/05/2023) or by appointment.
  • You may request virtual appointments if needed for COVID-related reasons.

    Review Sessions:

  • Mondays 2:00PM – 3:00pm, over zoom and it is recorded.
  • Quizzes: There will be two 1.5 hour quizzes within the quarter. Both quizzes will be in-person.

    Read the material for each lecture, ask questions, participate (5%)
    Problem set (15%)
    3 programming assignments (30%)
    Midterm quiz (25%)
    Final quiz (25%)

    Collaboration: See: honor code and collaboration for some general guidelines, which apply to both project assignments and problem sets. In general, collaboration is encouraged subject to the following guidelines:

    SCPD Video Recording Disclaimer: Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.

    Adapted from a template by Andreas Viklund.