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 |