Textbooks: Computer Organization and Design by P&H and Computer Architecture: A Quantitative Approach by H&P.

The course material is freely usable for educational and non-commercial research purpose, with due attribution. Any commercial use requires prior written permission from the author. If you are the owner of any of the content included (eg. images), and feel that it has been unfairly used, kindly let me know and I will either attribute it to you as you specify or take it off, depending on your request.

ACKs Many of the slides are adapted and modified versions of some of the excellent computer architecture courses taught by Joel Emer, Arvind, Yale Patt, Nima Honarmand, Hal Perkins, John Kubiatowicz, Onur Mutlu, Krste Asanovic, David Black-Schaffer, Rajeev Balasubramonian, and Mainak Chaudhuri.

Week Lectures slides and videos Reading Assignment Tests

July 26

Lec-0: Course Introduction [slides] [video]
Lec-1: MIPS Instructions-I (arithmetic/logical) [slides] [video]
Lec-2: MIPS Instructions-II (stored program concept) [slides] [video]

Chapter 2 of P&H (5th edition) : Section 2.1 to 2.3, and 2.6
Turing Lecture

Assignment-0: Bonjour CS305!!


August 2

Lec-3: MIPS Instructions-III (branch) [slides] [video]
Lec-4: MIPS Instructions-IV (JAL and RA) [slides] [video]
Lec-4.1: MIPS Instructions-IV.1 (JAL:PC+8) [slides] [video]
Lec-5: MIPS Instructions-V (Register spilling) [slides] [video]
Lec-6: MIPS Instructions-VI (Stack/frame pointers) [slides] [video]

Chapter 2 of P&H:
Section 2.7 to 2.9



August 9

Lec-7: Instruction decoding [slides] [video]
Lec-8: Addressing modes [slides] [video]
Lec-9: ISA [slides] [video]
Lec-10: x86/ARM ISAs [slides] [video]
Lec-11: Endianness and Alignment [slides] [video]

Chapter 2 of P&H:
Section 2.10, 2.17 to 2.19 (x86 and ARM), and page no 69
RISC-ISCA81 paper
RISC-V


Mini Quiz-I

August 16

Lec-12: Single Cycle CPU-I [slides] [video]
Lec-13: Single Cycle CPU-II [slides] [video]
Lec-14: The Iron Law [slides] [video]

Chapter 4 of P&H:
Section 4.1 to 4.4 and
Chapter 1: Section 1.6



August 23

Lec-15: Empirical Evaluation-I [slides] [video]
Lec-16: Empirical Evaluation-II [slides] [video]
Lec-17: Empirical Evaluation-III [slides] [video]
Lec-18: Multi-cycle CPU [slides] [video]
Lec-19: Instruction Pipelining [slides] [video]

Chapter 1: Section 1.7 to 1.10


Mini Quiz-II

August 30

Lec-20: Instruction Pipelining-II [slides] [video]
Lec-21: Instruction Pipelining-III [slides] [video]

Chapter 4: Section 4.5 and 4.6



Sept. 6

Lec-22: Pipeline Hazards [slides] [video]
Lec-23: Hazard Mitigations [slides] [video]
Lec-24: Branch Delay Slots [slides] [video]
Lec-25: Branch Prediction [slides] [video]

Chapter 4: Section 4.7 and 4.8



Sept. 13

No lectures: Mid-term week




Sept. 20

Lec-26: Branch Prediction -II [slides] [video]
Lec-27: Interrupt/Exception handling [slides] [video]
Lec-28: Superscalar and Out-of-order processor [slides] [video]

Chapter 4: Section 4.9 and 4.10



Sept. 27

Lec-29: Memory Hierarchy [slides] [video]
Lec-30: Caches-I [slides] [video]
Lec-31: Caches-II [slides] [video]

Chapter 5: Section 5.1 to 5.3



Oct. 4

Lec-32: Caches-III [slides] [video]
Lec-33: Caches-IV [slides] [video]
Lec-34: Caches-V [slides] [video]

Chapter 5 P&H: Section 5.4 and 5.8
Chapter 2 H&P: Section 2.3



Oct. 11

Lec-35: Hardware Prefetching [slides] [video]
Lec-36: Virtual Caches [slides] [video]
Lec-37: Cache Coherence [slides] [video]

Chapter 5 P&H: Section 5.7
Chapter 2 H&P: Figure 2.25, Chapter 5:Section 5.2



Oct. 18

Lec-38: DRAM Organization [slides] [video]
Lec-39: DRAM Timing Constraints [slides] [video]
Lec-40: Storage/IO [slides] [video]

Chapter 5 P&H: Section 5.2



Oct. 25

Lec-41: Dynamic Instruction Scheduling [slides] [video]
Lec-42: Speculative Execution [slides] [video]
Lec-43: Spectre and Meltdown [slides] [video]

Chapter 3 H&P: Section 3.4 and 3.6



Nov. 1

Lec-44: SMT (Hyperthreading) [slides] [video]
Lec-45: Trends in Computer Architecture [slides] [video]