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
|
|
| |