EE282: Computer Systems Architecture

Winter 2021, Tuesdays and Thursdays 10:30 AM - 11:50 PM, remote (Zoom)

Instructors: Christos Kozyrakis, Caroline Trippel
Teaching Assistant: Francisco Romero

Piazza: Class Homepage
GradeScope: Class Homepage
Syllabus: 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 provide an introduction to 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)

  • (3/25) Thanks for taking EE282! Have a great spring break!
  • (3/25) Final quiz grades have been released. Solutions can be found under the Slides/Notes column for the Final date.
  • (3/17) Programming Assignment 2 is due March 19 at 11:59PM PST (moved from March 18).
  • (3/15) Franky's March 17 office hours will be moved to Tuesday, March 16 from 5PM-6:30PM. Use the regular Zoom link.
  • (3/10) We will have a review session on March 12 from 10:30AM-11:30AM. It will appear as a lecture under Zoom on Canvas.
  • (3/2) Franky's March 3 office hours will be from 3PM-4:30PM. Use the regular Zoom link.
  • (2/25) Programming Assignment 2 has been released. It is due March 18.
  • (2/24) We will have a review session on February 26 from 10:30AM-11:30AM. It will appear as a lecture under Zoom on Canvas.
  • (2/23) Problem Set 3 has been released. It is due March 16.
  • (2/21) Midterm quiz grades have been released. Solutions can be found under the Slides/Notes column for the Midterm date.
  • (2/14) Franky's February 17 office hours will be split between Tuesday, February 16 from 5PM-6PM, and Friday, February 19 from 10:30AM-11:30AM. Use the regular Zoom link for both.
  • (2/11) Programming Assignment 1 has been released. It is due February 25.
  • (2/9) Please fill out this poll to indicate if you would like specific topics covered more closely in the midterm review session on Friday, February 12.
  • (2/8) Google Cloud Platform Setup Instructions have been posted.
  • (2/4) Problem Set 2 has been released. It is due February 23.
  • (2/4) We will have a review session on February 5 from 10:30AM-11:30AM. It will appear as a lecture under Zoom on Canvas.
  • (1/27) We will have a review session on January 29 from 10:30AM-11:30AM. It will appear as a lecture under Zoom on Canvas.
  • (1/21) We will have a review session on January 22 from 10:30AM-11:30AM. It will appear as a lecture under Zoom on Canvas.
  • (1/20) Please fill out this poll to indicate your interest in having a review session on Friday, January 22.
  • (1/19) Problem Set 1 has been released. It is due February 4.
  • 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).

Date[Lecture #] TopicReading AssignmentSlides/Notes
1/12 [1] Introduction & Review of Prerequisites
Lecture recording
H&P 6: Appendices A.{1-8}, B.{1-3}, C.{1-2,4,6}
H&P 6: Chapter 1.{1-13}
Slides
1/14 [2] Advanced Caches 1: Multilevel, Optimizations
Lecture recording
H&P 6: Chapter 2.{1,3,6}, and Appendix B.{3,6} Slides
1/19 [3] Advanced Caches 2: Prefetching, Coherency
Lecture recording
H&P 6: Chapters 2.5, and 5.{1,2,4} Slides
1/21 [4] Memory Consistency & Synchronization
Lecture recording
H&P 6: Chapter 5.{4-7} Slides
1/22 Review Session 1 (10:30AM-11:30AM)
Lecture recording
Problem Set 1 (Parts I-III) Slides
1/26 [5] Memory Consistency & Synchronization (cont.)
Lecture recording
M/C: A Primer on Memory Consistency and Cache
Coherence, Second Edition
: Chapters 3,4
Slides
1/28 [6] Main Memory (including HBM)
Lecture recording
H&P 6: Chapter 2.2 Slides
1/22 Review Session 2 (10:30AM-11:30AM)
Lecture recording
Problem Set 1 (Part IV) Slides
2/2 [7] Dynamic Scheduling and Branch Prediction
Lecture recording
H&P 6: Chapter 3.{1-4}
Slides
2/4 [8] Speculation and Superscaler

Lecture recording
H&P 6: Chapter 3.{6-10} Slides
2/5 Review Session 3 (10:30AM-11:30AM)
Lecture recording
Problem Set 2 (Parts I-III) Slides
2/9 [9] Multithreading
Lecture recording
H&P 6: Chapter 3.{11-12} Slides
2/11 [10] Vectors

Lecture recording
H&P 6: Chapter 4.{1-3,5}, and Appendix G
Slides (1)
Slides (2)
2/12 Review Session 4 (10:30AM-11:30AM)
Lecture recording
Midterm review and Problem Set 2 (Part IV) Slides
2/16 [11] GPUs
Lecture recording (1), Lecture recording (2)
Guest Lecturer: Michael Pellauer
H&P 6: Chapter 4.{4,6-8}
Slides
2/17 Midterm Quiz (0:01AM -11:59PM PST)
Choose 1.5hr slot
Lectures 1-10 Solutions
2/18 [12] AI Processors
Lecture recording
Guest Lecturer: Ardavan Pedram
H&P 6: Chapter 7.{1-4}
Slides
2/23 [13] Virtualization

Lecture recording
M/C: Hardware and Software Support for Virtualization:
Chapters 1,2,4,5
Slides
2/25 [14] Virtualization (cont.) and Memory Management


Lecture recording
M/C: Hardware and Software Support for Virtualization:
Chapters 1,2,4,5;
H&P 6: Appendix L
Slides
2/26 Review Session 5 (10:30AM-11:30AM)
Lecture recording
Problem Set 3 (Parts I-III) Slides
3/2 [15] Datacenter Hardware
Lecture recording
H&P: Chapter 6.{1-4,7};
M/C: The Datacenter as a Computer 3rd ed:
Chapters 1,3,4,5,6;
Large-Scale Cluster Management At Google With Borg;
Slides
3/4 [16] Datacenter Management 
Lecture recording
Guest Lecturer: Neeraja Yadwadkar
M/C: The Datacenter as a Computer 3rd ed: Chapter 2;
Large-Scale Cluster Management At Google With Borg;
Tail at Scale
Slides
3/9 [17] Advanced I/O
Lecture recording
H&P 6: Appendix F.{1-2} Slides
3/11 [18] Non-Volatile Storage
Lecture recording
H&P 6: Chapter 2.2, Appendix D.2;
Flash storage memory by Adam Leventhal
Slides
3/12 Review Session 6 (10:30AM-11:30AM)
Lecture recording
Final review and Problem Set 3 (Parts IV-V) Slides
3/16 [19] Large-Scale Storage and Reliability
Lecture recording
Guest Lecturer: Neeraja Yadwadkar
M/C: The Datacenter as a Computer 3rd ed:
Chapters 1.6, 3.{4-5}, 7;
H&P: Appendix D
Slides
3/17 Final Quiz (0:01AM -11:59PM PST)
Choose 1.5hr slot
Lectures 1-19 Solutions
3/18 [20] Security, Enclaves, Side Channel Attacks
Lecture recording
M/C: Principles of Secure Processor Architecture Design:
Chapters 2.{1-2}, 3.{1-2}, 6
Slides
3/19 Programming Assigment 2

Homework and Projects

You will work on all assignments in groups of 2 students. All assignments are due by 5: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.

Tentative schedule:
  • Problem Set 1: release Tuesday 1/19, due Thursday 2/4
  • Problem Set 2: release Thursday 2/4, due Tuesday 2/23
  • Programming Assignment 1: release Thursday 2/11, due Thursday 2/25
  • Problem Set 3: release Tuesday 2/23, due Tuesday 3/16
  • Programming Assignment 2: release Thursday 2/25, due Friday 3/19

Problem Sets

Programming Assignments

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 Piazza!

Office Hours: Christos Kozyrakis: Tuesdays 11:50am – 12:50pm (zoom link) or by appointment.
Caroline Trippel: Thursdays 11:50am – 12:50pm (zoom link) or by appointment.
Francisco Romero: Wednesdays 10:30am – 12:00pm (zoom link) or by appointment.

Quizzes: There will be two 1.5 hour open-book quizzes within the quarter. Both quizzes will be available to take online for a period of 24 hours (you will choose the 1.5 hours that work best for you).

Grading: Read the material for each lecture, ask questions, participate (5%); 3 problem sets (15%); 2 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.