Lecture Notes and Schedule


DateDate Lecture Notes Suggested Readings Expanding the Scope
Jan. 6


Jan. 8
Lecture 1: Introduction [pdf] [ppt]
Lecture 2: CPU performance and profiling [pdf] [ppt]
Example code: copymatrix1.c, copymatrix2.c
lower1.c, lower2.c
A brief report for Exercise 1 and 2 [pdf]
P&H Ch.1,
perf user guide
perf installation guide
perf examples (tgz archive)
Lecture 3.1: Memory hierarchy: what and why? [pdf] [pptx] P&H 5.1, 5.2, 5.3, 5.4
Jan. 13

Jan. 15
Complete Lecture 3.1
Lecture 3.2: Memory hierarchy: how? [pdf] [pptx] P&H 5.4, 5.8
Jan. 20

Jan. 22
Complete Lecture 3.2
Quiz 1 (30-minutes in-class);
Lecture 4.1: MIPS Introduction [pdf] [ppt]
MIPS Green Sheet [pdf]
P&H 2.1-2.3 SPIM Assembler
Jan. 27

Jan. 29
Lecture 4.2: MIPS Instruction Representation [pdf] [ppt] P&H 2.5-2.7, 2.9-2.20, 3.2 Summary of Addresssing Modes in MIPS
Little-Endian vs Big-Endian
Lecture 4.3: MIPS Procedures and Compilation [pdf] [ppt] P&H 2.8, A6 qtspim examples (tgz archive)
MIPS vs ARM
Comparison of instruction set architectures
Feb. 3

Feb. 5
Complete Lecture 4.3
Lecture 5.1: Introduction to Synchronous Digital Systems [pdf] [ppt]
Lecture 5.2: State Circuits [pdf] [ppt]
P&H 4.2, B.3-B.6 Logism , an educational tool for designing and simulating digital logic circuits
Feb. 10

Feb. 12
Lecture 5.3: Combinational Logic Circuits [pdf] [ppt] Electronics Tutorials
Lecture 5.4: Combinational Logic Blocks [pdf] [ppt]
Lecture 5.5: Single-Cycle CPU Datapath Design [pdf] [ppt]
P&H B.2-B.3, 4.1, 4.3
Feb. 10

Feb. 12
Reading week
Feb. 24

Feb. 26
Class cancelled
Quiz 2
Review of Lectures 5.1-5.5
March 3

March 5
Lecture 5.6: Single-Cycle CPU Datapath Control (Part 1) [pdf] [ppt] P&H 4.5, 4.6, 6.6 MIPS in a Single Cycle Datapath (video by Ashton Jackson)
Animated Data Path (by Xion Qin)
Lecture 5.7: Single-Cycle CPU Datapath Control (Part 2) [pdf] [ppt]
Lecture 6.1: ILP fundamentals [pdf] [ppt]
P&H 4.5, 4.6, 6.6 Lecture 5.7 Exercises [pdf]
Mar. 10

Mar. 12
Complete Lecture 6.1 P&H 4.7,4.8 An informal guide to modern microprocessors
Lecture 6.2: ILP hazards and resolutions [pdf] [ppt] P&H 4.7,4.8 Lecture 6.2 Exercise 1-2 solutions [pdf]
Mar. 17


Mar. 19
Lecture 6.3: Advanced ILP [pdf] [ppt]
Lecture 7.1 Multicores: basics and key issues [pdf] [ppt]
P&H 4.10, 4.11, 5.7, 5.8, 7.2, 7.3 Streaming SIMD Extensions (SSE),
Intel Intrinsics Guide,
SSE4 in Visual C++
Quiz 3
Complete Lecture 7.1
Lecture 7.2 Multicore TLP (1) [pdf] [ppt]
P&H 5.10, 6.5 Concurrency Hazards: False Sharing
.NET Matters: False Sharing
An Introduction to the Cilk Screen Race Detector
Mar. 24


Mar. 27
Complete Lecture 7.2
Lecture 7.3: Multicore TLP (2):
Hardware multithreading, OpenMP intro [pdf], [ppt]
CilkPlus and parallel performance metrics [pdf] ,
par_in_for.cpp ,   par_out_for.cpp
P&H 2.11, 7.5 OpenMP,
CilkPlus,
CilkPlus in MC10 and user guide ,
Intel CilkPlus user guide,
Cilkscreen and Cilkview user guide (Chapter 15, 16),
MetaFork, a compilation framework for concurrency platforms, which can be used to convert programs written in OpenMP to CilkPlus and vice versa.
Mar. 31


Apr. 2
Quiz 4
Lecture 8.1: Introduction to GPUs [pdf]
Lecture 8.2: GPUs memory [pdf]
P&H 7.7 Basics of SIMD Programming
Reducing Branch Divergence in GPU Programs