EE282: Computer Systems Architecture
Spring 2023, Tuesdays and Thursdays 1:30 PM - 2:50 PM, Skilling AuditoriumInstructor: 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!
Schedule
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 #] Topic | Reading Assignment Additional Reading | Reference Problem/s [Due date] | Slides/ Notes |
---|---|---|---|---|
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 |
Slides Recording |
|
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/20] |
Slides Recording |
4/13 | [4] Memory Consistency & Synchronization | H&P 6: Chapter 5.{4-7}
Free atomics: hardware atomic operations without fences |
Problem 3 [4/27] Programming Assignment 1 [5/9] |
Slides Slides(.pptx) Recording |
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 [5/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 [5/4] |
Slides Recording |
4/27 | [8] Speculation and Superscaler Problem 3 due |
H&P 6: Chapter 3.{6-10}
|
Problem 6 [5/9] Programming Assignment 2 [5/18] |
Slides Recording |
5/2 | [9] Multithreading | H&P 6: Chapter 3.{11-12}
|
Problem 7 [5/9] |
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 [5/25] |
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 [5/30] |
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 [6/1] Programming Assignment 3 [6/6] |
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 [6/1] |
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} |
||
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} |
Problem 11 [6/6] |
|
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:00PM 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.
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:
Review Sessions:
Quizzes: There will be two 1.5 hour quizzes within the quarter. Both quizzes will be in-person.
- Midterm quiz on Wednesday, May 11th (1:30PM - 3:00PM PST) in Skilling Auditorium, covers lectures 1-10.
- Final quiz on Saturday, June 10th (3:30PM - 5:00PM PST) in Skilling Auditorium,, covers lectures 1-18.
Grading:
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:
- 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.