EE282: Computer Systems Architecture

Winter 2020, Tue/Thu 12:00 PM - 13:20 PM, room Thornt Center 102

Instructor: Christos Kozyrakis
Teaching Assistant: Qian Li
Piazza: Class Homepage

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

  • (3/15) (Optional) We just released a sample final. You may skip a question if we didn't cover the material in our class.
  • (3/14) Please read this post for EE282 final exam plan.
  • (3/5) We are providing virtual office hours via Zoom. Please read more details here.
  • (2/26) NVIDIA's Speculative Reconvergence paper is now available online. It was presented on CGO'2020 conference.

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 SUNet id).

DateTopicReading AssignmentClass Notes
1/7 Introduction & Review of Prerequisites H&P 6: Appendix B & C Slides
1/9 Advanced Caches 1: Multilevel, Optimizations H&P 6: Chapter 2, and Appendix B Slides
1/14 Advanced Caches 2: Prefetching, Coherency
H&P 6: Chapter 2, and Appendix B Slides
1/16 Advanced Memory Management H&P 6: Appendix L Slides
1/21 Main Memory (including HBM) H&P 6: Section 2.2 Slides
1/23 Dynamic Scheduling and Branch Prediction H&P 6: Sections 3.3-3.5 Slides
1/24 Review Session 1 (Gates B03, 1:30 - 2:20 pm) Problem Set 1, Lectures 1-5 Slides
1/28 Speculation and Superscalar
H&P 6: Sections 3.6, 3.8, 3.9 Slides
1/30 Multithreading H&P 6: Sections 3.11-3.12 Slides
1/31 Review Session 2 (Gates B03, 1:30 - 2:20 pm) Problem Set 2, Lectures 3, 6-8 Slides
2/4 Memory Consistency, Synchronization,
Distributed Coherency
H&P 6: Sections 5.4-5.6 Slides
2/6 Vectors
H&P 6: Sections 4.2, 4.5 Slides
2/7 Midterm Review (Gates B03, 1:30 - 2:20 pm) Lectures 1-10 Slides
2/11 GPUs Guest Lecturer: Jack Choquette (NVIDIA)
H&P 6: Section 4.4
Speculative Reconvergence paper
Slides
2/13 AI Processors
Guest Lecturer: Nishant Patil (Google)
H&P 6: Sections 7.1-7.4
Slides
2/13 Midterm Exam (6 - 8 pm, room 380-380c) Lecture 1 - 10. Past midterm: Winter 2019 (solution) Win2020
solution
2/18 Non-Volatile Storage H&P 6: Appendix D.2,
Flash storage memory by Adam Leventhal
Slides
2/20 Advanced I/O
H&P 6: Appendix F.1, F.2 Slides
2/25 Virtualization M/C: Hardware and Software Support for Virtualization,
(optional) Survey of virtual machine research
Slides
2/27 Virtualization (cont.)
M/C: Hardware and Software Support for Virtualization,
(optional) Survey of virtual machine research
Slides
2/28 Review Session 4 (Gates B03, 1:30 - 2:20 pm) Programming assignment 2, Lectures 11 - 16 Slides
3/3 Datacenter Hardware H&P: Sections 6.1-6.4, 6.7 Slides
3/5 Datacenter Management  M/C: The Datacenter as a Computer 3rd ed: Chapter 2,
Large-Scale Cluster Management At Google With Borg,
Tail at Scale
Slides
3/6 Review Session 5 (Gates B03, 1:30 - 2:20 pm) Problem Set 3, Lectures 11 - 17 Slides
3/10 Large-Scale Storage and Reliability (on Zoom) M/C Datacenter as a Computer 3rd ed:
Sections 1.6.2, 3.4, 3.5, Chapter 7
Slides
Video
3/13 Security and Power Management (on Zoom)
M/C Principles of Secure Processor Architecture Design:
Sections 2.1, 2.2, 3.1, 3.2, Chapter 6;
M/C Datacenter as a Computer 3rd ed: Capters 5 & 6
Slides
Video
3/13 Final Review (on Zoom, 1:30 - 2:20 pm) Lectures 1-20, focusing on 11-20. Slides
Video
3/20 Final Exam (take home, 12:15 - 3:15 pm PDT) Lectures 1-20. Past final: Winter 2019 (solution)

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.

Problem Sets

Programming Assignments

Logistics

Announcements: Visit this web page regularly to access all the handouts, solutions, and announcements.

Office Hours: Christos Kozyrakis: Tue 10:45 - 11:45am at Gates 350 (or by appointment).
Qian Li: Wed 10:45 - 11:45am at Gates 315 (or by appointment).

Exams: The midterm will be scheduled for an evening during the week of Feb 10th. A poll will be created for scheduling.
The final is scheduled for Friday, March 20th, 12:35 – 3:35 pm.

Grading: Read the material for each lecture, ask questions, participate (5%); 3 problem sets (15%); 2 programming assignments (20%); Midterm exam (30%); Final exam (30%)

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.