The course has two primary goals: 1) to provide students with a mental model of how high-level language programs get executed on computer hardward, and 2) to introduce students to the organization and performance analysis of modern computers.
| Date | Topic | Slides | Readings |
| 09/02 (W) | Course Introduction | B1.E4: 1.1-1.3 (B1.E3: 1.1-1.3) | |
| 09/04 (F) | Number Representation
HW1 out |
B1.E4: 2.4 (B1.E3: 3.2) | |
| 09/07 (M) | Holiday, No class | ||
| 09/09 (W) | Introduction to the C Programming Language (I) | B2: Chapters 1-4 | |
| 09/11 (F) | Introduction to the C Programming Language (II) | B2: Chapter 5 | |
| 09/14 (M) | Introduction to the C Programming Language (III)
HW 1 due; MP1 out. |
PDF1, PDF2 | B2: Section 2.9, Chapter 6, 7.8.5 and 8.7 |
| 09/16 (W) | Introduction to the MIPS (I): Arithmetic | B1.E4: 2.1-2.2,2.9 (B1.E3: 2.1-2.2,2.8) | |
| 09/18 (F) | Introduction to the MIPS (II): Data Transfer
Bonus MP out |
B1.E4: 2.3 (B1.E3: 2.3) | |
| 09/21 (M) | Introduction to the MIPS (III): Decision and Control Flow | B1.E4: 2.7 (B1.E3:2.6) | |
| 09/23 (W) | Discussion 1: Decision and Control Flow
|
B1.E4: 2.7 (B1.E3:2.6) | |
| 09/25 (F) | Introduction to the MIPS (V): Procedures (1) MP1 due; MP2 out | B1.E4: 2.8 (B1.E3: 2.7) | |
| 09/28 (M) | Introduction to the MIPS (VI): Logic Operations | B1.E4:2.6 (B1.E3:2.5) | |
| 09/30 (W) | Discussion 2: Recursion | B1.E4:2.13, Appendix B.5-B.6 (B1.E3:2.13, Appendix A.5-A.6) | |
| 10/2 (F) | Introduction to the MIPS (VII): MIPS Instruction Representation (I) | B1.E4: 2.5 (B1.E3:2.4) | |
| 10/5 (M) | Introduction to the MIPS (VII): MIPS Instruction Representation (II) | B1.E4: 2.5 (B1.E3:2.4) | |
| 10/7 (W) | Compilation, Assembly, Linking | B1.E4: 2.12, Appendix B.2-B.4 (B1.E3:2.10, Appendix A.2-A.4) | |
| 10/9(F) | Discussion 3: Pointers/Structures
MP2 due, HW2 out |
||
| 10/12 (M) | Floating Point | B1.E4: 3.5 (B1.E3:3.6) | |
| 10/14 (W) | Intro. to CPU Design
|
||
| 10/16 (F) | Fall break, No class | ||
| 10/19 (M) | Single Cycle CPU (I) HW2 due | ||
| 10/21 (W) | Midterm Exam | ||
| 10/23 (F) | Single Cycle CPU (II) | ||
| 10/26 (M) | Performance (I)
HW3 out |
||
| 10/28 (W) | Performance (II) | ||
| 10/30 (F) | Pipelining (I) | ||
| 11/2 (M) | Pipelining (II) | ||
| 11/4 (W) | Hazards(I) | ||
| 11/6 (F) | Hazards(II) | ||
| 11/9 (M) | Discussion: Hazards
HW3 due, HW4 out |
||
| 11/11 (W) | Cache(I) | ||
| 11/13 (F) | Cache(II) | ||
| 11/16 (M) | Cache (III) | ||
| 11/18 (W) | Guest Lecture: GPU | ||
| 11/20 (F) | Cache (IV) | ||
| 11/23 (M) | Cache (V)
HW4 due, HW5 out |
||
| 11/25 (W) | Discussion: Cache | ||
| 11/27 (F) | Holiday, No class | ||
| 11/30 (M) | Virtual Memory (I) | ||
| 12/2 (W) | Virtual Memory (II) | ||
| 12/4 (F) | Disks | ||
| 12/7 (M) | I/O
HW5 due |
||
| 12/9 (W) | Course Summary and Q/A | ||
| TBD | Final Exam |