EE282 Computer Systems Architecture

Course Information Sheet for Fall 2008 - 09

Course description: EE282 focuses on advanced architecture topics for systems such as personal computers, servers, and embedded or portable devices. It covers topics such as cache hierarchies, memory systems, storage and IO systems, clusters, fault-tolerance, and low power design. In addition, the programming assignments provide an introduction to performance analysis and optimization techniques for small-scale and large-scale 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). The prerequisite course is EE108B or an equivalent course in computer organization. CS140 or an equivalent on operating systems is strongly recommended but not officially required. 

Lecture Time & Location: Monday & Wednesday, 11:00am - 12:15pm, Skilling Auditorium

Review Section Time & Location: Friday, 11:00am - 11:50am, Skilling 193 

Instructor: Christos Kozyrakis (christos@ee.stanford.edu)
       Gates Building, Room 304
       (650) 725-3716
       Office hours: Monday, 1:30pm - 2:30pm or by appointment

Teaching Assistant: Dawson Wong (djwong@stanford.edu
       Office hours: Friday, 1:15pm - 2:15pm, Packard 107

Teaching Assistant: Jason Deng (jasond@stanford.edu
       Office hours: Wednesday, 7-8pm, Packard 107

Teaching Assistant: Jacob Leverich (leverich@stanford.edu) 

Note on office hours: Visit the class announcements page regularly for updated office hours. We will hold more office hours around deadlines and quizzes.

Administrative Support: Teresa Lynn (tlynn@csl.stanford.edu)
       Gates Building, Room 310
       (650) 724-6540

Class Webpage:          http://eeclass.stanford.edu/ee282
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 programming 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 (Digital Systems II) or EE182 (Computer Organization & Design) or equivalent at another institution. 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. CS140 or an equivalent on operating systems is strongly recommended but not officially 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.

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. We may also provide references and links to additional research papers as optional reading for interested students.

Quizzes: There will be two quizzes. Quiz 1 is scheduled for Wednesday 10/22 (Cubberley Auditorium, 6pm - 9pm) and will cover Lectures 1-9. Quiz 2 will be held on Monday 12/8 (8:30am - 11:30am, location TBA) , and will cover all of the course material. Bring a calculator. Alternative quiz times will not be available to any students (Stanford or SCPD). If you cannot take the quizzes on these dates, you should probably not take the class.

Review Sessions: There will be review sessions before the two quizzes and before the programming assignments. Please check on the class schedule for the details. 

Homework and Programming Assignments: There will be approximately 3 homework and 2 programming 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/quiz (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 programming 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 quizzes 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 quizzes (no exceptions). Remote SCPD students who will take the quizzes at their site must observe the time limits. The SCPD coordinator must submit their completed quizzes immediately.

Grading (tentative):
Quizzes 45%
Programming Assignments 40%
Homework Sets 15%