Readings are sections of the textbook (Computer Systems: A Programmer's Perspective, 3rd Edition) unless otherwise noted.
Week 1 |
Tue 25 Aug |
Course Introduction [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 1, 2.1.3
- Semester preview: Layers of abstraction
- Processor Fetch Loop
- Endianness
| |
Wed 26 Aug |
Work on getting a working C environment on your own.
The lab will not be staffed.
| |
Thu 27 Aug |
Assembly 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: (should be mostly review except for parts of 3.4 about syntax and parts of 3.6 about condition codes) 3.4-3.6.3, 3.6.5, 3.6.7, 3.7.2-3; or use assembly handout written by our textbook authors
| Quiz 1 (quiz for week 1) released, due 2020-09-01 09:15
|
Week 2 |
Tue 01 Sep |
Assembly 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 3.6.3, 3.6.8
in the PM lecture, I made an error in annotating the third option of while exercise; the correct replacement for the jge instruction should be jle , not jg
- LEA
- (briefly) X86-64 calling convention
- If and loops to assembly
- X86 condition codes
- cmpq versus subq
testq %rax, %rax
- SF, ZF
- Jump Tables
| Quiz 1 (quiz for week 1) due 09:15 (released 2020-08-27)
|
Wed 02 Sep |
| Lab due by end of day |
Thu 03 Sep |
Compilation Pipeline / selected C topics [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 7-7.3
- Jump Tables
- Program Memory Layout (Stack, Heap, etc.)
- Compilation Steps and Object Files
- (briefly) C types
- Pointer Arithmetic
- Aside on undefined behavior
| Quiz 2 (quiz for week 2) released, due 2020-09-08 09:15
|
Week 3 |
Tue 08 Sep |
Bitwise [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 2.1.6-2.1.9, RISC v CISC aside (p 361)
- Bit shifting
- Bitwise and/or/xor
- Idea of bit masks
| Quiz 2 (quiz for week 2) due 09:15 (released 2020-09-03)
|
Wed 09 Sep |
| bomb HW due by 9:30am Lab due by end of day |
Thu 10 Sep |
Bitwise (finish) / ISAs [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.1-4.1.3, RISC v CISC aside (p 361)
- Bit puzzle strategies
- Divide-and-conquer for
?:
- Parallelism example: any-bit-set with
&
- ISAs
- RISC v CISC (start)
| Quiz 3 (quiz for week 3) released, due 2020-09-15 09:15
|
Week 4 |
Tue 15 Sep |
Y86 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.1-4.1.3, 4.1.5-6
- RISC v CISC (finish)
- Y86-64
- using YAS
- Y86 encoding/decoding
| Quiz 3 (quiz for week 3) due 09:15 (released 2020-09-10)
|
Wed 16 Sep |
| bit-fiddling HW due by 9:30am Lab due by end of day |
Thu 17 Sep |
SEQ part 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.2-4.2.5
- lab postmortem
- Y86 decoding (finish)
- describing hardware and HCLRS
- wires
- registers
- memory, reading
- nop CPU
| Quiz 4 (quiz for week 4) released, due 2020-09-22 09:15
|
Week 5 |
Tue 22 Sep |
SEQ part 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.2-4.2.5, 4.3.1-4.3.4
- MUXes
- nop+halt CPU
- interlude: using HCLRS
- interlude: HCLRS versus the book
- addq CPU
| Quiz 4 (quiz for week 4) due 09:15 (released 2020-09-17)
|
Wed 23 Sep |
| linking+ISA HW due by 9:30am Lab due by end of day |
Thu 24 Sep |
SEQ part 3 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.2-4.2.5, 4.3.1-4.3.4
- ALUs
- memory, writing
- mov to register CPU
- mov CPU, complete
- SEQ “stages”
| Quiz 5 (quiz for week 5) released, due 2020-09-29 09:15
|
Week 6 |
Tue 29 Sep |
SEQ part 4 / Pipelining 0 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
There were some technical difficulties (that is, my internet disconnected) during the PM lecture. I believe I’ve cut together a video that omits them in the (non-Zoom) recording linked here, but you might prefer to use the last 7 minutes or so of the AM lecture instead of the rushed coverage of that material in the PM lecture.
- SEQ stages walkthrough
- (briefly) setting MUXes
- pipelining idea (laundry example)
| Quiz 5 (quiz for week 5) due 09:15 (released 2020-09-24)
|
Wed 30 Sep |
| HCL2 (irmovq + rrmovq + jmp) due by 9:30am Lab due by end of day |
Thu 01 Oct |
Pipelining 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.4-4.5.3
Correction to lecture: In the AM lecture (only), I wrote “1”, “2” and “3” (to label where each instruction was) in the wrong order (not matching the assembly or the question) on the processor diagram (3 was drawn over the writeback stage, even though the question was about instruction 1 being in the writeback stage). Then, when explaining the exercise, I looked at the numbers I drew and said “instruction 3” when I really meant “instruction 1” and vice-versa.
- latency and throughput and pipelining
- register tolerances and diminishing pipelining returns
- pipelined addq
- pipelining SEQ
| Quiz 6 (quiz for week 6) released, due 2020-10-06 09:15
|
Week 7 |
Tue 06 Oct |
Pipelining 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.5-4.5.7, 4.5.9
- data hazards
- stalling
- forwarding
| Quiz 6 (quiz for week 6) due 09:15 (released 2020-10-01)
|
Wed 07 Oct |
| HCL4 (seqhw) due by 9:30am Lab due by end of day |
Thu 08 Oct |
Pipelining 3 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 4.5-4.5.7, 4.5.9
- forwarding paths exercise
- alternate pipelines?
- basic branch prediction and squashing
- implementing stalling and squashing (start)
| Quiz 7 (quiz for week 7) released, due 2020-10-13 09:15
|
Week 8 |
Tue 13 Oct |
Pipelining 4 / Cache 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.2-3
- implementing stalling and squashing (finish)
- missing pieces in pipelining
- place of cache
- direct-mapped caches (start)
| Quiz 7 (quiz for week 7) due 09:15 (released 2020-10-08)
|
Wed 14 Oct |
| HCL6 (pipehw1) due by 9:30am Lab due by end of day |
Thu 15 Oct |
Cache 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.4-6.4.4
- direct-mapped caches
- set-associative caches (start)
| Quiz 08 (quiz for week 8) released, due 2020-10-20 09:15
|
Week 9 |
Tue 20 Oct |
Cache 3 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.4.3-6.4.7
There were some technical difficulties in the AM lecture, so you might prefer the PM recording.
- set-associative caches (finish)
- tag/index/offset exercise
- replacement policies
- classifying misses: conflict / capacity / compulsory
- cache write policies
- AMAT (AM only)
| Quiz 08 (quiz for week 8) due 09:15 (released 2020-10-15)
|
Wed 21 Oct |
| HCL8 (pipehw2) due by 9:30am Lab due by end of day |
Thu 22 Oct |
Cache performance 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.5
- AMAT (PM only)
- cache tradeoffs
- cache misses and C code (start)
| Quiz 09 (quiz for week 9) released, due 2020-10-27 09:15
|
Week 10 |
Tue 27 Oct |
Cache performance 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.5
- cache misses and C code (finish)
- cache blocking
| Quiz 09 (quiz for week 9) due 09:15 (released 2020-10-22)
|
Wed 28 Oct |
| pipeline tradeoff simulator due by 9:30am
|
Thu 29 Oct |
Optimization and Out-of-order 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 6.5, 5.4, 5.7
- cache blocking (finish)
- inlining
- loop unrolling
- out-of-order processor model (start)
| Quiz 10 (quiz for week 10) released, due 2020-11-03 09:15
|
Week 11 |
Tue 03 Nov |
Optimization and Out-of-order 2 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 5
- out-of-order processor model (finish)
- data flow model
- reassociation
- multiple accumulators
- aliasing (start)
| Quiz 10 (quiz for week 10) due 09:15 (released 2020-10-29)
|
Wed 04 Nov |
| cache programs due by 9:30am Lab due by end of day |
Thu 05 Nov |
Optimizations 3 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
- aliasing (finish)
- inlining
- SIMD
| Quiz 11 (quiz for week 11) released, due 2020-11-10 09:15
|
Week 12 |
Tue 10 Nov |
Exceptions [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 8.1-8.2
- SIMD (finish)
- processes and context switching
- types of exceptions
- process idea
- (am) exception tables
| Quiz 11 (quiz for week 11) due 09:15 (released 2020-11-05)
|
Wed 11 Nov |
| Rotate due by 9:30am Smooth checkpoint (no SIMD) due by 9:30am Lab due by end of day |
Thu 12 Nov |
Exceptions (finish) / Virtual memory 1 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
Reading: 8.1-8.2, 9.1-2, 9.3.2
- exception tables
- kernel mode
- “toy” page table
- address space sizes and splitting addresses
| Quiz 12 (quiz for week 12) released, due 2020-11-17 09:15
|
Week 13 |
Tue 17 Nov |
Virtual memory 2 [ |
screencapture (browser:
pm) |
download mp4: pm;
audio only ( pm)
| Zoom (passcode on Collab): am pm ]
- storing page tables in memory
- page table tricks
- swapping (physical memory as a cache for disk)
- multi-level page tables (start)
| Quiz 12 (quiz for week 12) due 09:15 (released 2020-11-12)
|
Wed 18 Nov |
Lab: work on memory HW (no lab)
| Smooth due by 9:30am
|
Thu 19 Nov |
Virtual memory 3 [ |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm ]
- multi-level page tables (finish)
- multi-level page table access exercises
- TLBs, briefly
| Quiz 13 (quiz for week 13) released, due 2020-11-24 09:15
|
Week 14 |
Tue 24 Nov |
Final review |
screencapture (
browser:
am pm;
download mp4: am pm) |
audio only ( am pm)
| Zoom (passcode on Collab): am pm
| Quiz 13 (quiz for week 13) due 09:15 (released 2020-11-19) Memory due by 11:59pm |
Week 15 |
Tue 01 Dec |
(no class) | |
Week 16 |
Thu 10 Dec |
final exam, details TBA
Final released noon (Eastern time) 10 December
Final due noon (Eastern time) 11 December
| Quiz exam (final exam) released, due 2020-12-11 12:00 Quiz exam-draft (final exam draft) released, due 2020-12-11 12:00
|