Course description: EE282 focuses on advanced system-level architecture techniques for devices such as personal computers, servers, and embedded or portable systems. It covers topics such as cache hierarchies, memory systems, storage and IO systems, virtualization, clusters, fault-tolerance, and low-power design. It also covers the interactions between the hardware and software layers in such systems. The programming assignments provide an introduction to performance analysis and optimization techniques for computer systems. At the completion of the course, you will understand basic principles such as locality, coarse-grain parallelism, overlapping communication and computation, performance/power trade-offs, and reliability. Overall, you will understand how computer systems are organized and, more importantly, why they are organized that way. EE282 discusses the characteristics of modern processors that affect system architecture, but does not provide detailed coverage of their internal microarchitecture (see EE382A). EE282 is appropriate for graduate and advanced undergraduate 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 in their day-to-day work.
Lecture Time & Location: Monday & Wednesday, 11:00am-12:15pm, Gates B01.
Review Sessions Time & Location: Friday, 11:00am-11:50am, Gates B03
Dr. Nate Binkert, and
Gates Building, Room 304
Office hours: Tues. 11-12, Wed 1-2 or by appointment
Packard Building, Room 104
Office hours: Mon 1-2, Wed 10-11
Administrative Support: TBD
Visit the EEclass web page regularly. All the handouts and announcements will be available online and will be open to the public. However, you will need to register with the web page in order to obtain online access to grades and homework solutions. Follow the "Students" link on the left bar of the page. Registration will be open a few days after the beginning of the quarter.
Class Mailing List: Registered students will be automatically added to the class mailing list. The list will be used only for announcements by the class staff. Announcements will also be available at the class bulletin board and web page.
Policy on Questions & Emails:
The preferred method for asking questions is through the bulletin board
on the EEclass website. We will check
the board regularly, especially close to assignment deadlines. All answers
will be posted on the bulletin board and will also be emailed to the person that posted the
original question. When posting a question to the board, make sure you use
an appropriate subject. For example, if your question refers to the definition
of memory latency in problem 2 of homework 3, an appropriate subject would be
"HW3, problem 2: definition of memory latency."
Before posting a question, check to see if this question has already been answered. We will not answer the same question multiple times! In addition, check the FAQ section of the webpage description for homework and project assignments. Nevertheless, you are welcome to discuss questions with your classmates using the bulleting board.
For questions that are not appropriate for posting to the bulletin board, you can email the TA or the instructors directly. Write "ee282" at the beginning of the email subject. Note that grades are accessible through the class web page (registration required). Before inquiring about your grade, check online.
Handouts: All the handouts will be available in electronic form on the class webpage. Paper handouts will be available in the classroom and in a lobby filling cabinet at Gates Hall 3rd floor. The lecture notes will be typically posted on the webpage a couple of hours before the lecture. Paper copies will typically be available in the classroom. If you find mistakes on the handouts, please let us know. We will post corrected handouts on the class webpage as soon as possible.
Prerequisites: EE108b or an equivalent class. You are expected to understand the fundamentals of machine organization, pipelining and basic caching, assembly programming, virtual memory, and simple operating system concepts. If you have not taken the prerequisite, you are highly discouraged from taking EE282. Most likely, you will have a hard time catching up and will end up with a poor learning experience and bad grade. If it has been some time since you took the prerequisite, a review of EE108B will be necessary in order to follow the fast pace of the class. Students are also expected to have programming experience with C, C++, or other similar languages. CS110 or CS140 or an equivalent on operating systems is recommended but not required.
Required Textbook: J. Hennessy & D. Patterson,
Computer Architecture: A Quantitative Approach, 4th
edition. Note that the 4th edition is significantly different from
previous editions. You are discouraged from using the 2nd or 3rd
editions as the textbook for this class.
Required Textbook: L. Barroso and U. Holzle, The Datacenter as a Computer: An Introduction to the Design of Warehouse-scale Machines, Morgan & Claypool Publishers, 2009. PDF version available to Stanford students through this link.
Additional Reading: Occasionally, reading a research paper or other notes will be required. The papers will be available from the class web page and in paper handouts.
Exams: There will be two exams. Exam 1 is scheduled for May 2nd at 6pm-9pm and will cover Lectures 1-10. Exam 2 will be held on June 3rd at 8:30am-10:30am, and will cover all of the course material. Bring a calculator.
Review Sessions: There will be review sessions before the final exam and before the project assignments. Please check on the class schedule for the details.
Homework and Project: There will be approximately 3 homework sets and two project assignments. All assignments are due by 5:00pm on the dates indicated in the schedule. Solutions to homework sets will be available online the same evening.
Late Assignments and Regrading: All deadlines are final. No extensions, no exceptions. Late assignments will not be accepted and the grade zero (0) will be given automatically. Requests for regarding must be submitted in writing within a week from grade assignment date. Submit a note that describes the specific grading complaint and your assignment manuscript. However, regrading will affect the whole homework/exam (not just one question) and can lead to a lower grade than the original one.
Note on Lecture Attendance: You are strongly encouraged to come to the lectures. This is your opportunity to ask questions, contribute answers and insights, and affect the nature of the class. Moreover, the lecture notes and the textbook are not guaranteed to capture 100% of every topic and detail discussed during lecture.
Collaboration: You will work on homework and project assignments in groups of 3 students (same rule applies to SCPD students as well). Groups with fewer than 3 students will only be allowed in extraordinary situations and after the instructor's permission. In general, collaboration is encouraged subject to the following guidelines:
You should also read the extensive note about the honor code and accepted forms of collaboration in general.
Notes for SCPD Students: All the deadlines and requirements are identical for SCPD and in-class students. There will be no extensions because of travel or work deadlines. Make sure that your schedule allows you to complete all assignments and exam at the same time with the in-class students before you sign up for the class. You are strongly encouraged to attend the lectures or watch the Stanford Online versions of each lecture available on the web (posted about 2 hours after the lecture). If you miss your courier run the day an assignment is due, please fax your assignments to SCPD. Use a blue or black pen (no pencil, no light colors) on the pages you intend to fax. SCPD students who are local (within 50 miles) must come to Stanford for the exam (no exceptions). Remote SCPD students who will take the exam at their site must observe the time limits. The SCPD coordinator must submit their completed exam immediately.