Lectures: Two sessions / week, 1.5 hours / session
Tutorials: One session / week, 1.5 hours / session
This course is a study of the evolution of computer architecture and the factors influencing the design of hardware and software elements of computer systems. Topics may include: instruction set design; processor micro-architecture and pipelining; cache and virtual memory organizations; protection and sharing; I/O and interrupts; in-order and out-of-order superscalar architectures; VLIW machines; vector supercomputers; multithreaded architectures; symmetric multiprocessors; memory models and synchronization; embedded systems; and parallel computers.
MIT course 6.004 or equivalent
A 1.5-hour tutorial session will be held at the end of each week. The main focus of the tutorial session will be to work through the problem set questions and clarify lectures as necessary. Quizzes will also be given in tutorials, so it is important to avoid any recurring conflict with the tutorial time. Additional tutorials may be held in the evenings before quizzes.
The subject is divided in five modules, each covering a set of related topics. Lectures on each module are followed by a quiz on that module. There is a set of online problems related to each module. The best way to prepare for a quiz is to work on these problems. Although problem solutions do not have to be handed in (and consequently, are not graded), it is essential that students become thoroughly familiar with the material. Many quiz questions will assume knowledge of detailed machine descriptions provided in the problem sets.
Students are encouraged to work in groups to discuss the problem sets, then to individually write out complete solutions prior to examining the online solutions. It is our goal to make each problem interesting and illustrative of some aspect of computer design. However, every problem is not equally important to prepare for the quiz; we will indicate which problems are most important for each quiz.
Students are encouraged to bring their solutions to the tutorials for discussion, especially if the online solutions are missing or if the student has a different solution then the one posed on the Web site.
In the first lecture, a prerequisite self-evaluation quiz will be handed out. This must be handed back one week later in the lecture. This quiz should be used by you to assess your preparation for the course. You must work individually on this quiz and turn in your own solutions.
There will be five one-and-half-hour quizzes, generally scheduled during the tutorial sessions. The quizzes will focus on one section of the course, but can draw upon material from any part of the course to date, including problem sets and assigned readings. All quizzes are closed book.
Grades will be based on the five quizzes, equally weighted. In addition, each student must turn in the self-evaluation quiz, due in the third lecture.
Students must not discuss a quiz's contents with other students who have not yet taken the quiz. If prior to taking it, you are inadvertently exposed to material in a quiz - by whatever means - you must immediately inform the instructor or a TA. You must turn in your own solutions to the self-evaluation quiz. Any violation of this policy will be treated severely.
Collaboration amongst students to understand the course material and problem sets is strongly encouraged.
This is the main textbook used in this course. We also give the equivalent readings for the 2nd edition of this book to allow you to use a secondhand copy. In previous years, some students found that the lecture notes were sufficient to learn the material and that the textbook was unnecessary, but we nevertheless recommend the book as a good reference guide.
To review the basic material, you may also want to refer:
Supplemental readings from selected papers may also be assigned throughout the semester. There may be a nominal photocopying charge, always payable to MIT, for the supplemental reading materials.