CMSC 22200: Computer Architecture
University of Chicago, Autumn 2015
Syllabus
This syllabus, last updated October 12, shows my plans for the course. I have posted it on the web to facilitate updates over the span of the quarter. I reserve the right to make changes; for instance, I may rearrange or change lecture topics in response to student interests.
Course Staff
Instructor: Matthew Wachs
Email: mwachs
Office: RY 175-A
Office Hours: Tuesday and Thursday after class and Wednesday, 2:30-3:30pm. (note that I am coming from another class at 2:30pm on Wednesdays and may be late if there are a number of questions after class) (Other times by appointment.)
TA: Yi Ding
Office: RY 253-A
Office Hours: Monday 10:30-11:30am; Wednesday 3:30-4:30pm
TA: Guangpu Li
Office Hours held in RY 255
Office Hours: Friday 9-10am; Friday 2-3pm
TA: Lang Yu
Office: RY 254
Office Hours: Tuesday, 2-3pm; Thursday 3-4pm
Meeting Times
Lecture: TR 9:00am-10:20am, RY 251
Course Components
The course consists of:
- Lectures
- Readings
- Homeworks: problems from the textbook give you the opportunity to cement your knowledge and confirm your progress. Homeworks will not be collected and graded, but you are strongly urged to complete them. Sample answers will be available; please come discuss them in office hours.
- Labs: give you the opportunity to gain exposure with real tools used by real computer architecture researchers to collect data on program characteristics and performance. To make sense of this data, you will use what you have learned in lectures and readings. Note that these "labs" are not scheduled meetings supervised by course staff, but rather self-paced assignments which are submitted for a grade. Of course, you are welcome to seek help in office hours. There will be three labs; each will comprise 10% of your final grade for a cumulative 30%.
- Quizzes: four in-class, closed-book, closed-notes quizzes, announced in advance during lecture, encourage you to make steady progress throughout the quarter and give you feedback on your understanding of material. Your preparation for these quizzes is attending and engaging in lectures, doing the assigned readings, and diligently completing homeworks and labs. The four quizzes, each of which constitutes 10% of your final grade, cumulatively contribute to 40% of your final grade.
- Exam: a comprehensive final exam at the end of the quarter (exact details TBA) will confirm your successful mastery of the material. It will be closed-book, closed-notes and contribute to 30% of your final grade.
Topics
This course is about Computer Architecture: how we design persistent interfaces at the boundary of software and hardware, and how we then create performant, cost-effective, and power-efficient implementations of them in hardware.
We will also explore the current challenges in the field and how computer architects are working to overcome them.
See the schedule below for a lecture-by-lecture topic list.
Tentative Schedule
- Week 1
- Lecture 1 9/29: Introduction, logistics; defining computer architecture; performance
Reading: 1.1-1.10; Appendix C if needed
- Lecture 2 10/1: Performance
- Week 2
- Lecture 3 10/6: Clock rate, Power
Reading: 2.1-2.14
Homework: 1.5, 1.6, 1.8, 1.9, 1.15, 1.12
- Lecture 4 10/8: General-purpose computing
- Week 3
- Lab 1: Assignment Setup script
- Lecture 5 10/13: Implementing instructions, data path, control path
CPU diagram from lecture
Explanation of steps and wiring from lecture
Readings (sooner): 4.1-4
Readings (later): 4.5-8
Homework (later): 4.1, 4.2, 4.4
- Lecture 6 10/15: Pipelining
- Week 4
- Lecture 7 10/20: Pipelining
Diagrams from lecture
- Lecture 8 10/22: Specialized instructions
Reading: 4.10-4.12, 4.14-4.15
Homework: 4.9, 4.10, 4.13, 4.16, 4.19
- Week 5
- Lecture 9 10/27: Pipelining; superscalar
Diagrams from lecture
- Lecture 10 10/29: Out-of-order
Diagrams from lecture
- Lab 2
- Week 6
- Lecture 11 11/3: Branch prediction
- Lecture 12 11/5: RISC and CISC
- Week 7
- Lecture 13 11/10: Caching
Reading: 5.1-5.5
Homework: 5.1, 5.6, 5.7, 5.8
- Lecture 14 11/12: Caching
- Week 8
- Lab 3: Assignment Configuration
- Lecture 15 11/17: Storage
- Lecture 16 11/19: Storage
- Week 9
- Lecture 17 11/24: Multi-core; GPU
- Thanksgiving
- Week 10
- Lecture 18 11/31: Review
Academic Honesty
The University's rules on academic honesty apply to this course and will be rigorously and rigidly enforced. If you have any doubts, questions, or concerns, please ask, and be sure to do so in advance.
Textbook
This course uses Computer Organization and Design by Patterson and Hennessy. The current edition is the 5th edition, and note that section numbers and homework exercises may not correspond in previous editions, so you will want to have access to the latest copy.