EE282: Computer Systems Architecture
Spring 2024, Mondays and Wednesdays, 9:30 - 10:50 AM, Thornton 102Instructor: Caroline Trippel
Teaching Assistant: Yao Hsiao, Akshit Goel
Canvas: Class Homepage
Ed: Class Homepage
GradeScope: Class Homepage
Poll Everywhere (for in-class students): We will use Poll Everywhere to facilitate in-class discussions and quizzes.
Please get set up at this link before the first lecture.
(April 8th) SCPD 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 (Updated office hour on April 1st)
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)
- (05/14) Schedule for lectures and homework due date after 5/13 are updated. Please refer new schedule as below, where problem 9 and problem 12 due dates are updated to 5/28 and 5/21 respectively. Still only 1 late day may be used for problem 15 and 16
- (04/29)
- Problem 7 due date is postponed to 05/03 and only 1 late day may be used for this problem so we can distribute solution back in time for midterm preparation.
- Problem 8 due date is postponed to 05/14, but is strongly suggested to work through it since the topic will be covered in midterm.
- Schedule for lectures after midterm and homework due date are updated please refer new schedule as below. Only 1 late day may be used for problem 15 and 16
- (04/27) Problem 3 and 4 solutions are shared via email. Please reach out to TA if you submitted them but did not receive the solution.
- (04/24)
Problem 9 due date is postponed to 05/14 and Programming Assignment 2 due date is postponed to 05/23(See update on 04/29) - (04/22) Problem 1 and 2 solution here
- (04/10) Programming Assignment 1 released here. It is due May 7, 11:59pm PST on Gradescope.
- GCP setup instructions released here.
- (04/04) Problem Set for the quarter released here.
- (04/03) Participation points for SCPD students: Please finish assignments on Canvas within 1 week after the lecture recording is available.
- (04/01) Caroline's and Yao's office hours are updated as follows
- Please make sure you have access to the Canvas, Ed and GradeScope (links posted above).
- 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 Additional Reading | Reference Problem/s [Due date] | Slides/ Notes |
---|---|---|---|---|
4/1 | [1] Introduction, Review of Prerequisites | [Prerequisite material] HP: Appendices A.{1-8}, B.{1-3}, C.{1-2, 4, 6}, Sections 1.{1-13} |
Slides (updated 04/01) Recording |
|
4/3 | [2] Advanced Caches I: Multi-level caches, Optimizations | HP: Sections 2.{1, 3, 6}, Appendix B.{3, 6} | Slides Recording |
|
4/8 | [3] Advanced Caches II: Optimizations (continued), Prefetching, Coherence problem | HP: Sections 2.5, 5.{1, 2, 4}
A Hierarchical Neural Model of Data Prefetching Evolution of the Samsung Exynos CPU Microarchitecture |
Problems 1,2 [4/16] |
Slides Recording |
4/10 | [4] Cache coherence, Synchronization, and Memory consistency I | HP: Section 5.5 MC: A Primer on Memory Consistency and Cache Coherence, Second Edition: Chapters 2, 6 Protogen: automatically generating directory cache coherence protocols from atomic specifications HeteroGen: Automatic Synthesis of Heterogeneous Cache Coherence Protocols |
Problem 3 [4/23] Prog. Assign. 1 [5/7] |
Slides Recording |
4/15 | [5] Cache coherence, Synchronization, and Memory consistency II |
HP: Section 5.{6-7} MC: A Primer on Memory Consistency and Cache Coherence, Second Edition: Chapters 3, 4, 5.{1-2} |
Problem 4 [4/23] |
Slides
Recording |
4/17 | [6] Main Memory | HP: Section 2.2 | Problem 5 [4/30] |
Slides Recording |
4/22 | [7] Out-of-Order Processors I: Dynamic Scheduling and Branch Prediction | HP: Section 3.{1-4} | Problem 6 [4/30] |
Slides Recording |
4/24 | OoO Processors (Cont.) | Problem 7 (Apr 28 update) Prog. Assign. 2 (Apr 24 update) |
Recording | |
4/29 | [8] Out-of-Order Processors II: Speculation and Superscalar | HP: Section 3.{6-10} | Problem 8 (Apr 28 update) |
Slides Recording |
5/1 | [9] Multithreading | HP: Section 3.{11-12} | Slides Recordings | |
5/6 | Midterm Exam (9:30 - 10:50 AM PST) Thornton 102 |
Lectures |
||
5/8 | [11] AI Processors Guest Lecturer: Ardavan Pedram |
CACM: Domain-Specific Hardware Accelerators by Prof. Bill Dally et. al. |
Problem 10 [5/14] |
Slides Recordings |
5/13 | [12] GPUs Guest Lecturer: Michael Pellauer |
HP: Section 4.{4,6-8} | Problem 11 [5/21] | Slides Recordings |
5/15 | [13] Accelerators Guest Lecterer: Sneha Goenka |
HP: Section 7.{1-4} Roofline: an insightful visual performance model for multicore architectures |
Problem 12 [5/21] |
Slides Recording |
5/20 | [10] Vectors | HP: Section 4.{1-3,5}, and Appendix G | Problem 9 [5/28] |
Slides Recording |
5/22 | [14] Virtualization | MC: Hardware and Software Support for Virtualization: Chapters 1,2,4,5; HP: 6.{1-4,7} |
Problem 13 [5/28] Prog. Assign. 3 [6/6] |
Slides Recording |
5/27 | Memorial Day (No Classes) | |||
5/29 | [15] Advanced Memory Management | MC: Hardware and Software Support for Virtualization: Chapters 1,2,4,5; HP: Appendix L |
Problem 14 [6/4] |
Slides Recording |
6/3 | [16] Advanced I/O & Networking | HP: Appendix F.{1-2} MC: Hardware and Software Support for Virtualization: Chapter 6 |
Problem 15 [6/8] |
Slides |
6/5 | [17] Non-volatile memory | HP: Section 2.2, Appendix D.2 Flash storage memory by Adam Leventhal |
Problem 16 [6/8] |
|
6/11 | Final Exam (8:30 - 10:30 AM PST) TBD |
Lectures 1-17 |
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:59pm 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. You will be granted a total of 3 “late days” to use however you see fit for eligible coursework, except that you may use up to 1 late day for Problem 7, 15, and 16 (04/29 update) (to ensure timely release of homework solutions before the Midterm). Beyond the allotted late days, you will be docked on the following system without exception:
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:
- Tuesdays 9:00am - 10:00am, Gates 259
- Mondays 10:50am - 11:50am on Zoom
Review Sessions:
Exams: There will be two in-person exams: one Midterm and one Final.
- Midterm on Monday, May 6th (9:30AM - 10:50AM PST) in Thornton 102, covers lectures 1-10.
- Final on Tuesday, June 11th (9:30AM - 10:30AM PST) in TBD, covers lectures 1-18.
Grading:
Category | Grade % | Notes |
---|---|---|
Attendance and Participation | 5% | 3 conditional absence “passes” (see Course Policies); Arrival/departure > 10 min late/early counts as an absence Is not eligible for late days |
Problem Set | 15% | Is eligible for late days |
3 Programming Assignments | 30% | Is eligible for late days |
Midterm | 25% | Is not eligible for late days Can be revised for extra credit |
Final | 25% | Is not eligible for late days Cannot be revised for extra credit |
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. SCPD 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.
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.