EE282: Computer Systems Architecture
Spring 2026, Mondays and Wednesdays, 3:00 - 4:20 PM, Shriram 104Instructor: Caroline Trippel, Christos Kozyrakis
Teaching Assistants: Jane Nhi Nguygen, Kira Tran, Swapnil Gandhi,
Staff Email: ee282-spr2526-staff@lists.stanford.edu
Canvas: Class Homepage
Ed: Class Homepage
GradeScope: Class Homepage
CGOE students have 1 week to finish the in-class exercises using assignments on Canvas within 1 week after the lecture recording is available.
Syllabus: PDF
EE282 covers key hardware and software topics that are relevant for architecting advanced computer systems. Examples include: out-of-order processors, multi-level cache hierarchies, main memory systems, multithreading and vector techniques, GPUs and accelerators, virtualization, virtual memory, datacenter architecture, advanced IO systems, and non-volatile storage. Programming assignments include: simulation of multi-core processor designs to characterize performance, design and implementation of advanced processor optimizations, and formal verification of an open-source processor.
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.
News (top is most recent)
- Welcome to EE282!
Schedule
Required Textbook:
HP: J. Hennessy & D. Patterson, Computer Architecture: A Quantitative Approach, 6th edition.
MC: Morgan Claypool Synthesis Lectures (available through the library using your SUID).
| Date | [Lecture #] Topic | Reading Assignment | Reference Problems [Due date] | Slides/ Notes |
|---|---|---|---|---|
| 3/30 | [1] Introduction, Review of Prerequisites Lecturer: Christos Kozyrakis |
[Prerequisite material] HP: Appendices A.{1-8}, B.{1-3}, C.{1-2, 4, 6}, Sections 1.{1-13} |
||
| 4/1 | [2] Advanced Caches I: Multi-level caches, Optimizations Lecturer: Caroline Trippel |
HP: Sections 2.{1, 3, 6, 7}, Appendix B.{3, 6} | ||
| 4/6 | [3] Advanced Caches II: Optimizations (continued), Prefetching, Coherence problem Lecturer: Caroline Trippel |
HP: Sections 2.5, 5.{1, 2} | ||
| 4/8 | [4] Coherence problem, Cache coherence Lecturer: Caroline Trippel |
MC: A Primer on Memory Consistency and Cache Coherence, Second Edition: Chapters 2, 6 HP: Section 5.{3,4} |
||
| 4/13 | [5] Synchronization Lecturer: Caroline Trippel |
HP: Section 5.5 | ||
| 4/15 | [6] Memory Consistency Lecturer: Caroline Trippel |
MC: A Primer on Memory Consistency and Cache Coherence, Second Edition: Chapters 3, 4, 5.{1-2} HP: Section 5.{6-7} |
||
| 4/20 | [7] Main Memory Lecturer: Caroline Trippel |
HP: Section 2.2 | ||
| 4/22 | [8] Out-of-Order Processors I: Dynamic Scheduling and Branch Prediction Lecturer: Christos Kozyrakis |
HP: Section 3.{1-5} | ||
| 4/27 | [9] Out-of-Order Processors II: Speculation and Superscalar Lecturer: Christos Kozyrakis |
HP: Section 3.{6-10} | ||
| 4/29 | [10] Multithreading Lecturer: Christos Kozyrakis |
HP: Section 3.{11} | ||
| 5/4 | [11] Vectors and SIMD Lecturer: Christos Kozyrakis |
HP: Sections 4.{1-3, 5}, Appendix G | ||
| 5/5 | Midterm Exam | Lectures 1-10 | ||
| 5/6 | [12] GPUs Guest Lecturer: Michael Pellauer |
HP: Sections 4.{4, 6-8} | ||
| 5/11 | [13] AI Processors Guest Lecturer: Thierry Tambe |
|||
| 5/13 | [14] Virtualization Lecturer: Christos Kozyrakis |
MC: Hardware and Software Support for Virtualization: Chapters 1,2,4,5; HP: Sections 6.{1-4, 7} |
||
| 5/18 | [15] Advanced Memory Managementi Lecturer: Caroline Trippel |
MC: Hardware and Software Support for Virtualization: Chapters 1,2,4,5; HP: Appendix L |
||
| 5/20 | [16] Advanced I/O & Networking Lecturer: Christos Kozyrakis |
HP: Appendix F.{1-2} MC: Hardware and Software Support for Virtualization: Chapter 6 |
||
| 5/25 | Memorial Day (No Classes) | |||
| 5/27 | [17] Non-volatile memory Lecturer: Christos Kozyrakis |
HP: Section 2.2, Appendix D.2 Flash storage memory by Adam Leventhal |
||
| 6/1 | [18] Datacenter Hardware/Management Lecturer: Christos Kozyrakis |
HP: Chapter 6 | ||
| 6/3 | [19] Microarchitectural Attacks and Defenses Lecturer: Caroline Trippel |
|||
| 6/6 | Final Exam (8:30 AM - 11:30 AM PDT) Shriram 104 |
Lectures 1-18 | ||
Review Session Schedule
| Review Session # | Date | Topics |
|---|---|---|
| Review Session 1 | 4/3 | Cache Optimizations |
| Review Session 2 | 4/10 | Cache Coherence, Programming Assignment 1 |
| Review Session 3 | 4/17 | Memory Consistency Models, Synchronization, and Main Memory |
| Review Session 4 | 4/24 | Branch Prediction, Instruction Scheduling, Multithreading |
| Review Session 5 | 5/1 | Midterm Review |
| Review Session 6 | 5/8 | Vectors, Programming Assignment 2 |
| Review Session 7 | 5/15 | Virtualization, Accelerators |
| Review Session 8 | 5/22 | Advanced Memory Management, I/O, and Networking |
| Review Session 9 | 5/29 | Non‑volatile Memory |
| Review Session 10 | 6/5 | Final Exam Review |
Homework and Projects
Assignments include a Problem Set and 3 Programming Assignments. The Problem Set consists of 16 questions. Each problem within the set has a reference lecture and the corresponding due date is put up on the lecture schedule. You will work on all assignments in groups of 2 students. All assignments are due by 11:59 PM PT on the dates indicated on the assignment in the schedule. Solutions to problem sets will be available online shortly thereafter. All assignments should be submitted through GradeScope.
Logistics
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:
- Mondays 9:30 AM - 11:30 AM, Huang Basement
- Mondays 10:30 AM - 11:30 AM on Zoom
- Tuesdays 3:00 PM - 5:00 PM, Huang Basement
- Tuesdays 4:00 PM - 5:00 PM on Zoom
Review Sessions:
Exams: There will be one online midterm and one in-person final exam.
- The Midterm will be designed to take 90 minutes and will be given asynchronously on Tuesday, May 5. You may take the exam at any point in the 24-hour window from 12:00AM to 11:59PM PT on May 5th. The midterm will cover lectures 1 through 10.
- The Final will be designed to take 120-180 minutes and will be given in person on Saturday, June 6, 8:30 – 11:30 AM in Shriram 104. The final will cover lectures 1-18.
Tentative Grading:
| Category | Grade % | Notes |
|---|---|---|
| Attendance and Participation | 5% | 3 conditional absence “passes” (see Course Policies in syllabus); Arrival/departure > 10 min late/early counts as an absence Is not eligible for late days |
| Problem Set | 5% | Is eligible for late days |
| 3 Programming Assignments | 15% | Is eligible for late days |
| Midterm | 15% | Is not eligible for late days |
| Final | 60% | Is not eligible for late days |
Participation:
You are expected to attend the lectures in person. This is your opportunity to ask questions, contribute answers and insights, and affect the nature of the class. Also note that the lecture notes and the textbook are not guaranteed to capture 100% of every topic discussed aloud during lecture.
The lecture notes will be made available before class. During the lectures, there will also be in-class exercises which you will be given time to work on and discuss with your neighbors. You will submit answers via Poll Everywhere. You will only be graded based on your participation. CGOE students are expected to complete the in-class exercises within 1 week after the lecture recording is available.
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:
- No more than 2 people can collaborate on a homework or project assignment.
- Students working together should submit a single assignment for the pair.
- Any assistance received for homework or programming assignment solutions should be acknowledged in writing with specific details.
- No sharing of code, or partial or complete solutions among groups is permitted.
CGOE 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.