Aug 25 (Lecture 1) Introduction [slides]

Aug 30 (Lecture 2) Quantitative Principles of Computer Design [slides]

Sep 1 (Lecture 3) Quantitative Principles of Computer Design (contd.) [slides]

Sep 8 (Lecture 4) Instruction Set Design [slides]

Sep 13 (Lecture 5) Pipelining Basics [slides]

Sep 15 (Lecture 6) Pipelining:  Intermediate Concepts [slides]

Sep 20 (Lecture 7) Pipelining:  Intermediate Concepts [slides]

Sep 22 (Lecture 8) Pipelining:  Intermediate Concepts [slides]

Sep 27 (Lecture 9) Pipelining:  Intermediate Concepts [slides]

Sep 29 (Lecture 10) Instruction-Level Parallelism:  Intro to Dynamic Scheduling [slides]

Oct 4 (Lecture 11) Instruction-Level Parallelism (Dynamic Scheduling: Scoreboarding) [slides]

Oct 6 (Lecture 12) Instruction-Level Parallelism (Dynamic Scheduling:  Tomasulo's Algorithm) [slides]

Oct 11 Review Session

Oct 13 Mid-Term Exam

Oct 18 (Lecture 13) Instruction-Level Parallelism (Dynamic Branch Prediction) [slides]

Oct 20-22 (Lecture 14) Instruction-Level Parallelism (Multiple-Issue Architectures) [slides]

Oct 27-29 (Lecture 15-16) Instruction-Level Parallelism (Software Approaches) [slides]

Nov 1-3 (Lecture 17) Memory Hierarchy:  Intro. to Caches [slides]

Nov 8 (Lecture 18) Caches (contd.) [slides]

Nov 10 (Lecture 19) Caches (contd.) [slides]

Nov 15 (Lecture 20) Caches (contd.):  Coherence [slides]

Nov 17 (Lecture 21) Virtual Memory [slides]

Nov 22 (Lecture 22) Main Memory [slides]

Dec 1 (Lecture 23) Disk Technology [slides]

Dec 6 (Lecture 24) Intro. to Multiprocessors and Thread-Level Parallelism [slides]