Lecture Notes and Schedule


DateDate Lecture Notes Suggested Readings Expanding the Scope
Jan. 5


Jan. 10-12
Lecture 1: Introduction [pdf]
Lecture 2: CPU performance and profiling [pdf]
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)
Jan. 12

Jan. 17-19
Lecture 3.1: Memory hierarchy: what and why? [pdf] P&H 5.1, 5.2, 5.3, 5.4
Lecture 3.2: Memory hierarchy: how? [pdf] P&H 5.4, 5.8
Jan. 24

Jan. 26
Lecture 4.1: MIPS Introduction [pdf]
MIPS Green Sheet [pdf]
P&H 2.1-2.3 SPIM Assembler
Jan. 26

Feb 2
Quiz 1 (45-minutes in-class);
Lecture 4.2: MIPS Instruction Representation [pdf]
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] P&H 2.8, A6 MIPS Instruction Reference
qtspim examples (zip archive)
MIPS vs ARM
Comparison of instruction set architectures
Feb. 7

Feb. 14
Complete Lecture 4.3
Lecture 5.1: Introduction to Synchronous Digital Systems [pdf]
Lecture 5.2: State Circuits [pdf]
P&H 4.2, B.3-B.6
Feb. 14

Feb. 28
Lecture 5.3: Combinational Logic Circuits [pdf] Electronics Tutorials
Quiz 2 (45-minutes in-class on Feb 16)
Lecture 5.4: Combinational Logic Blocks [pdf]
Lecture 5.5: Single-Cycle CPU Datapath Design [pdf]
P&H B.2-B.3, 4.1, 4.3 Logism , an educational tool for designing and simulating digital logic circuits
March 2

March 9
Lecture 5.6: Single-Cycle CPU Datapath Control (Part 1) [pdf] 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]
Lecture 6.1: ILP fundamentals [pdf]
P&H 4.5, 4.6, 6.6 Lecture 5.7 Exercises [pdf]
Mar. 9

Mar. 14
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. 16


Mar. 23
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++
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. 23


Mar. 30
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. 8
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