This schedule is tentative more than two weeks in advance.

Readings are sections of the textbook (Computer Systems: A Programmer's Perspective, 3rd Edition) unless otherwise noted.

DateTopicAssignment
Week 1
Tue 23 Aug

Course Introduction

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

1, 2.1.3

  • Semester preview: Layers of abstraction
  • Processor + Memory Fetch Loop
  • Endianness
Wed 24 Aug

Lab: getting C+Unix-like environment


lab writeup

Work on getting a working C environment on your own. The lab will not be staffed.


Thu 25 Aug

Assembly 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

(should be mostly review except for parts of 3.4 about syntax) 3.4-3.5, 3.7.2-5; or use assembly handout written by our textbook authors

Due to a technical issue the last half of video recording for the 9:30am lecture is missing. (Sorry for the error.) The audio should still be fine. The 11:30am recording should be complete.

  • AT&T syntax assembly
  • (briefly) X86-64 calling convention
  • labels
Quiz 1 (quiz for week 1) released, due 2022-08-30 09:15
Week 2
Tue 30 Aug

Assembly 2

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

(should be mostly review except for parts of 3.6 about condition codes) 3.4-3.6.3, 3.6.5, 3.6.7; or use assembly handout written by our textbook authors

  • LEA
  • X86 condition codes
    • cmpq versus subq
    • testq %rax, %rax
    • SF, ZF
  • If and loops to assembly
  • (briefly) Jump Tables
Quiz 1 (quiz for week 1) due 09:15 (released 2022-08-25)
Wed 31 Aug

Lab: bomb lab


lab writeup
Lab due by end of day
Thu 01 Sep

Compilation Pipeline / selected C topics

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

7-7.3

  • [11am] finish loops-to-asm
  • Program Memory Layout (Stack, Heap, etc.)
  • Compilation steps and object files
  • (briefly) C types
  • pointer arithmetic and arrays
  • Aside on undefined behavior
Quiz 2 (quiz for week 2) released, due 2022-09-06 09:15
Week 3
Tue 06 Sep

Bitwise

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

2.1.6-2.1.9

  • Bit shifting
  • Bitwise and/or/xor
  • Idea of bit masks
  • Bit puzzle strategies (start)
    • Divide-and-conquer example: ?:
Quiz 2 (quiz for week 2) due 09:15 (released 2022-09-01)
Wed 07 Sep

Lab: bit-fiddling lab


lab writeup
bomb HW due by 9:30am
Lab due by end of day
Thu 08 Sep

Bitwise (finish) / ISAs

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.1-4.1.3, RISC v CISC aside (p 361)

  • Bit puzzle strategies (con’t)
    • Divide-and-conquer example: ?: (finish)
    • Parallelism example: any-bit-set with &
  • ISAs
  • RISC v CISC
Quiz 3 (quiz for week 3) released, due 2022-09-13 09:15
Week 4
Tue 13 Sep

Y86

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.1-4.1.3, 4.1.5-6

  • Y86-64
  • using YAS
  • Y86 encoding/decoding
  • describing hardware and HCLRS (start)
Quiz 3 (quiz for week 3) due 09:15 (released 2022-09-08)
Wed 14 Sep

Lab: linking+ISA lab


lab writeup
bit-fiddling HW due by 9:30am
Lab due by end of day
Thu 15 Sep

SEQ part 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.2-4.2.5

  • describing hardware and HCLRS (con’t)
    • wires
    • registers
    • memory, reading
  • nop CPU
  • MUXes
  • nop+halt CPU
    • extracting parts of instructions
Quiz 4 (quiz for week 4) released, due 2022-09-20 09:15
Week 5
Tue 20 Sep

SEQ part 2

 [ 
 (tentative) slides
| screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.2-4.2.5, 4.3.1-4.3.4

  • addq CPU
  • ALUs
  • memory, writing
  • mov to register CPU
  • mov CPU
Quiz 4 (quiz for week 4) due 09:15 (released 2022-09-15)
Wed 21 Sep

Lab: HCL1 (pc)


lab writeup
linking+ISA HW due by 9:30am
Lab due by end of day
Thu 22 Sep

SEQ part 3

 [ 
 (tentative) slides plus beginning of 27 Sep
| screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.2-4.2.5, 4.3.1-4.3.4

  • SEQ “stages”
  • SEQ stages walkthrough
  • [9am] setting MUXes
Quiz 5 (quiz for week 5) released, due 2022-09-27 09:15
Week 6
Tue 27 Sep

Pipelining 1

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.4-4.5.3

  • setting MUXes (finish)

  • pipelining idea
  • latency and throughput and pipelining
  • adding pipelines to circuits
  • register tolerances and diminishing pipelining returns
  • pipelined addq (start)
Quiz 5 (quiz for week 5) due 09:15 (released 2022-09-22)
Wed 28 Sep

Lab: HCL3 (seqlab)


lab writeup
HCL2 (irmovq + rrmovq + jmp) due by 9:30am
Lab due by end of day
Thu 29 Sep

Pipelining 2

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
  • pipelined addq (finish)
  • critical paths
  • pipelining SEQ
  • data hazards
  • stalling
  • forwarding (start)
Quiz 6 (quiz for week 6) released, due 2022-10-06 09:15
Week 7
Tue 04 Oct

reading day

Wed 05 Oct
Thu 06 Oct

Pipelining 3

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.5-4.5.7, 4.5.9

  • forwarding (finish)
  • forwarding paths exercise
  • alternate pipelines?
Quiz 7 (quiz for week 7) released, due 2022-10-11 09:15
Quiz 6 (quiz for week 6) due 09:15 (released 2022-09-29)
Week 8
Tue 11 Oct

Pipelining 4

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

4.5-4.5.7, 4.5.9

  • basic branch prediction and squashing
  • implementing stalling and squashing
Quiz 7 (quiz for week 7) due 09:15 (released 2022-10-06)
Wed 12 Oct

Lab: HCL5 (pipelab1)


lab writeup
HCL4 (seqhw) due by 9:30am
Lab due by end of day
Thu 13 Oct

Pipelining 4 / Cache 0

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.2-3

  • PC-setting logic for jXX, ret
  • missing pieces in pipelining
  • place of cache
  • direct-mapped caches (start)
    • tag/index/offset
Quiz 08 (quiz for week 8) released, due 2022-10-18 09:15
Week 9
Tue 18 Oct

Cache 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.4-6.4.4

  • direct-mapped caches
    • access patterns
  • set-associative caches (start)
Quiz 08 (quiz for week 8) due 09:15 (released 2022-10-13)
Wed 19 Oct

Lab: HCL7 (pipelab2)


lab writeup
HCL6 (pipehw1) due by 9:30am
Lab due by end of day
Thu 20 Oct

Cache 2

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.4.3-6.4.7

  • set-associative caches (finish)
  • replacement policies
  • classifying misses: conflict / capacity / compulsory
  • cache write policies
  • AMAT (start)
Quiz 09 (quiz for week 9) released, due 2022-10-25 09:15
Week 10
Tue 25 Oct

Cache performance 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.5

  • AMAT (finish)
  • cache tradeoffs
  • cache misses and C code (start)
Quiz 09 (quiz for week 9) due 09:15 (released 2022-10-20)
Wed 26 Oct

Lab: CacheLab


lab writeup
HCL8 (pipehw2) due by 9:30am
Lab due by end of day
Thu 27 Oct

Cache performance 2

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.5

  • cache misses and C code (finish)
  • counting misses approximately
  • loop orders
Quiz 10 (quiz for week 10) released, due 2022-11-01 09:15
Week 11
Tue 01 Nov

Cache performance 3 / Optimization and Out-of-order 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

6.5, 5.4, 5.7

Quiz 10 (quiz for week 10) due 09:15 (released 2022-10-27)
Wed 02 Nov

Lab: cache programs (lab)


lab writeup
pipeline tradeoff simulator due by 9:30am
Lab due by end of day
Thu 03 Nov

Optimization and Out-of-order 2

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

5

  • out-of-order processor model (finish)
    • register renaming
    • instruction dispatch
  • data flow model
  • reassociation
  • multiple accumulators
Quiz 11 (quiz for week 11) released, due 2022-11-10 09:15
Week 12
Tue 08 Nov

Election Day

Wed 09 Nov

Lab: LoopLab


lab writeup
cache programs (hw) due by 9:30am
Lab due by end of day
Thu 10 Nov

Optimizations 3

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]

Due to a technical issue, the screencapture of the 11am lecture is incomplete. Please use the 9:30am one instead.

  • aliasing
  • inlining
  • misc optimizations
Quiz 12 (quiz for week 12) released, due 2022-11-17 09:15
Quiz 11 (quiz for week 11) due 09:15 (released 2022-11-03)
Week 13
Tue 15 Nov
(no class)
Wed 16 Nov

Lab: SIMDLab


lab writeup
simdlab due 6 December
rotate + smooth-checkpoint are due after Thanksgiving break.
(They were originally due today, and I'd recommend doing them early.)
Thu 17 Nov

Optimizations 4

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
  • SIMD / vector instructions
  • profilers (briefly)
Quiz 12 (quiz for week 12) due 09:15 (released 2022-11-10)
Week 14
Tue 22 Nov

Exceptions / Virtual memory 0

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

8.1-8.2

  • processes and context switching
  • types of exceptions
  • process idea
  • exception tables
  • kernel mode

  • “toy” page table
Wed 23 Nov

No lab

(no class)
Thu 24 Nov

No class

(no class)
Quiz 14 (quiz for week 14) released, due 2022-11-29 09:15
Week 15
Tue 29 Nov

Virtual memory 1

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

9.1-2, 9.3.2-4, 9.6

  • review “toy” page table
  • address space sizes and splitting addresses
  • storing page tables in memory
Quiz 14 (quiz for week 14) due 09:15 (released 2022-11-24)
Wed 30 Nov

Lab: work on memory/smooth HW (no lab)



Thu 01 Dec

Virtual memory 3

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Reading:

9.1-2, 9.3.2-4, 9.6

  • page table in memory access exercise
  • multi-level page tables
  • multi-level page table access exercise
  • page table tricks, briefly
    • allocate-on-demand + swapping
Quiz 15 (quiz for week 15) released, due 2022-12-06 09:15
Week 16
Tue 06 Dec

Final exam review

 [ | screencapture (browser:9:30am 11am; download:9:30am 11am; audio only:9:30am 11am) ]
Quiz 15 (quiz for week 15) due 09:15 (released 2022-12-01)
Rotate due by 9:30am
Smooth checkpoint (no SIMD) due by 9:30am
SIMDlab due by end of day
Smooth due at 11:59pm
Memory due by 11:59pm
Week 17
Sat 10 Dec

final exam

7-10pm.

9:30am lecture section in Nau Hall 101. 11am lecture section in Warner Hall 209.