|6.823 Computer System Architecture - Spring 2021|
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.
Warning: All information on this website is subject to change. Though we send messages to the class in case of a change, please do check the course web site in case of doubt.
Lectures: Lectures will be from 1:00 PM to 2:30 PM every Tuesday and Thursday online, using Zoom. For those of you who cannot attend the live lectures, recordings will be made available on Piazza.
Tutorials: A 1-hour tutorial session will be held each week on Friday at 1 PM online, using Zoom. 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 will be held in an evening before each quiz. Tutorial sessions will be recorded and made available on Piazza.
Office Hours: See the staff page for details.
Problem Sets: The subject is divided in modules, each covering a set of related topics. There is a set of online problems related to each module. The best way to prepare for the quizzes 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 website.
Laboratory Exercises: There will be four Laboratory Exercises that will explore the concepts taught in lecture using industrial-strength tools. Two to three weeks will be allotted for the completion of each lab. Labs are generally due the week before the related quiz. To allow proper time to study for the following quiz, extensions will only be granted in extreme cases.
Laboratory exercises are to be completed individually, but comparing results and discussing course concepts covered in the laboratories is encouraged.
Quizzes: 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 four one-and-half-hour quizzes, generally scheduled during the tutorial time on Fridays. 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, laboratory exercises, and assigned readings. All quizzes are closed book.
Grades: 75% of the grade will be based on the four quizzes, equally weighted. The remaining 25% of the grade will be based on four laboratory exercises.
Collaboration and Academic Honesty Policy: 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 among students to understand the course material and problem sets is strongly encouraged. Laboratory exercises should be completed individually.
Course Reading Material: Computer Architecture: A Quantitative Approach: 5th Edition by J. L. Hennessy and D. A. Patterson is the main textbook used in this course. This book is available at Amazon for around $90 and also available at MIT library. We also give the equivalent readings for the 2nd, 3rd, 4th, and 6th editions 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. You may also want to refer to Computer Organization & Design: The Hardware/Software Interface by D. A. Patterson and J. L. Hennessy to review the basic material. 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.
Principles and Practices of Interconnection Networks by William J. Dally & Brian Towles. Morgan Kaufmann Publishers Inc. On reserve at the library, for students to checkout. On-Chip Networks by Natalie E. Jerger & Li-Shiuan Peh. Morgan & Claypool Publishers. Available here.
Computer Communication: Please check for announcements, clarifications to assignments, and answers to common questions on Piazza: http://piazza.com/mit/spring2021/6823 You can also contact all the course staff via Piazza, and contact the TAs only via email at firstname.lastname@example.org.