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
Thu 19 Jan

Course Introduction

 [ | screencapture (browser or download or audio only ) ]
Reading:

1, 2.1.3

Due to technical issues, the quality of the audio recording is poor (probably still usable, but not as good as it should be). (last semester’s first lectures cover similar technical material and have recordings available, too.)

  • Semester preview: Layers of abstraction
  • Processor + Memory Fetch Loop
  • Endianness
Week 2
Tue 24 Jan

Assembly 1

 [ | screencapture (browser or download or audio only ) ]
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

The video for the first ~hour of the lecture is reconstructed from the slides and so may be a little out of sync. Sorry for the inconvenience. You might also look at last semester’s recording.

  • AT&T syntax assembly
  • (briefly) X86-64 calling convention
  • labels
Wed 25 Jan

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

Assembly 2

 [ 
slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
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 2) released, due 2023-01-31 09:15
Week 3
Tue 31 Jan

Compilation Pipeline / selected C topics

 [ | screencapture (browser or download or audio only ) ]
Reading:

7-7.3

  • Program Memory Layout (Stack, Heap, etc.)
  • Compilation steps and object files
Quiz 1 (quiz for week 2) due 09:15 (released 2023-01-26)
Wed 01 Feb

Lab: bomb lab


lab writeup
Lab due by end of day
Thu 02 Feb

selected C topics / Bitwise

 [ | screencapture (browser or download or audio only ) ]
Reading:

2.1.6-2.1.9

Quiz 2 (quiz for week 3) released, due 2023-02-07 09:15
Week 4
Tue 07 Feb

Bitwise / ISAs

 [ | screencapture (browser or download or audio only ) ]
Reading:

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

  • Bitwise and/or/xor
  • Idea of bit masks
  • Bit puzzle strategies (start)
    • Divide-and-conquer example: ?:
    • Parallelism example: any-bit-set with &
  • ISAs / RISC v CISC (start)
Quiz 2 (quiz for week 3) due 09:15 (released 2023-02-02)
Wed 08 Feb

Lab: bit-fiddling lab


tentative lab writeup
bomb HW due by 4:59pm
Lab due by end of day
Thu 09 Feb

RISC v CISC / Y86

 [ | screencapture (browser or download or audio only ) ]
Reading:

4.1-4.1.3, 4.1.5-6

  • RISC v CISC / ISAs (finish)
  • Y86-64
  • using YAS
  • Y86 encoding/decoding
Quiz 3 (quiz for week 4) released, due 2023-02-15 09:15
Week 5
Tue 14 Feb

SEQ part 1

 [ | screencapture (browser or download or audio only ) ]
Reading:

4.2-4.2.5

  • describing hardware and HCLRS
    • wires
    • registers
    • memory, reading
  • nop CPU
  • MUXes
  • nop+halt CPU
    • extracting parts of instructions
Wed 15 Feb

Lab: linking+ISA lab


lab writeup
Quiz 3 (quiz for week 4) due 09:15 (released 2023-02-09)
bit-fiddling HW (tentative writeup) due by 4:59pm
Lab due by end of day
Thu 16 Feb

SEQ part 2

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
Reading:

4.2-4.2.5, 4.3.1-4.3.4

  • addq CPU
Quiz 4 (quiz for week 5) released, due 2023-02-21 09:15
Week 6
Tue 21 Feb

SEQ part 3

 [  ]
Reading:

4.2-4.2.5, 4.3.1-4.3.4

Due to technical issues, only the audio recording of this lecture is available. Please watch the last semester’s lectures instead, part 1 and first half of part 2.

  • ALUs
  • memory, writing
  • mov to register CPU
Quiz 4 (quiz for week 5) due 09:15 (released 2023-02-16)
Wed 22 Feb

Lab: HCL1 (pc)


lab writeup
linking+ISA HW due by 4:59pm
Lab due by end of day
Thu 23 Feb

SEQ part 4

 [ | screencapture (browser or download or audio only ) ]
Reading:

4.4-4.5.3

  • mov CPU
  • SEQ “stages”
  • SEQ stages walkthrough (start)
Quiz 5 (quiz for week 6) released, due 2023-02-28 09:15
Week 7
Tue 28 Feb

SEQ (finish) / Pipelining 1

 [ | screencapture (browser or download or audio only ) ]
  • SEQ stages walkthrough (finish)
  • setting MUXes

  • pipelining idea
  • latency and throughput and pipelining
  • adding pipelines to circuits
Quiz 5 (quiz for week 6) due 09:15 (released 2023-02-23)
Wed 01 Mar

Lab: HCL3 (seqlab)


lab writeup
HCL2 (irmovq + rrmovq + jmp) (tentative writeup) due by 4:59pm
Lab due by end of day
Thu 02 Mar

Pipelining 2

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
Reading:

4.5-4.5.7, 4.5.9

  • register tolerances and diminishing pipelining returns
  • pipelined addq
  • critical paths
  • pipelining SEQ
  • data hazards
  • stalling
Quiz 6 (quiz for week 7) released, due 2023-03-14 09:15
Week 8
Tue 07 Mar

Spring Break

(no class)
Thu 09 Mar

Spring Break

(no class)
Week 9
Tue 14 Mar

Pipelining 3

 [ | screencapture (browser or download or audio only ) ]
Reading:

4.5-4.5.7, 4.5.9

  • forwarding
  • forwarding paths exercise
  • alternate pipelines?
Quiz 6 (quiz for week 7) due 09:15 (released 2023-03-02)
Wed 15 Mar

Lab: HCL5 (pipelab1)


lab writeup
HCL4 (seqhw) due by 4:59pm
Lab due by end of day
Thu 16 Mar

Pipelining 4

 [ | screencapture (browser or download or audio only ) ]
Reading:

6.2-3

  • Watch today’s video
  • data hazards, forwarding
  • forwarding paths, control hazard
  • basic branch prediction
Quiz 7 (quiz for week 9) released, due 2023-03-21 09:15
Week 10
Tue 21 Mar

Pipelining 5 (Branch prediction, implementing stalling)

 [ | screencapture (browser or download or audio only ) ]
Reading:

6.4-6.4.4

  • branch prediction and squashing
  • implementing stalling and squashing
  • PC-setting logic for jXX, ret
Quiz 7 (quiz for week 9) due 09:15 (released 2023-03-16)
Wed 22 Mar

Lab: HCL7 (pipelab2)


lab writeup
HCL6 (pipehw1) due by 4:59pm
Lab due by end of day
Thu 23 Mar

Cache 1

 [ | screencapture (browser or download or audio only ) ]
Reading:

6.4.3-6.4.7

  • place of cache, locality
  • direct-mapped caches
    • tag/index/offset
    • access patterns
Quiz 08 (quiz for week 10) released, due 2023-03-28 09:15
Week 11
Tue 28 Mar

Cache 2

 [ | screencapture (browser or download or audio only ) ]
Reading:

6.4.3-6.4.7, 6.5

  • set-associative caches
  • replacement policies
  • cache write policies
Quiz 08 (quiz for week 10) due 09:15 (released 2023-03-23)
Wed 29 Mar

Lab: CacheLab


lab writeup
HCL8 (pipehw2) due by 4:59pm
Lab due by end of day
Thu 30 Mar

Cache performance 1

 [ | screencapture (browser or download or audio only ) ]
Reading:

6.5

  • AMAT
  • cache tradeoffs
  • cache misses and C code (start)
Quiz 09 (quiz for week 11) released, due 2023-04-04 09:15
Week 12
Tue 04 Apr

Cache performance 2

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
Reading:

6.5

Quiz 09 (quiz for week 11) due 09:15 (released 2023-03-30)
Wed 05 Apr

Lab: cache programs (lab)


lab writeup
pipeline tradeoff simulator due by 4:59pm
Lab due by end of day
Thu 06 Apr

Optimization and Out-of-order 1

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
Reading:

5.2-5.3, 5.7-5.8

  • cache blocking (finish)
  • loop unrolling
Quiz 10 (quiz for week 12) released, due 2023-04-11 09:15
Week 13
Tue 11 Apr

Optimizations 2

 [ | screencapture (browser or download or audio only ) ]
  • out-of-order processor model
    • register renaming
    • instruction dispatch
  • data flow model
  • reassociation
  • multiple accumulators (start)
Quiz 10 (quiz for week 12) due 09:15 (released 2023-04-06)
Wed 12 Apr
cache programs (hw) due by 4:59pm
Lab due by end of day
Thu 13 Apr

Optimizations 4

 [ 
 (tentative) slides (more than one day of slides)
| screencapture (browser or download or audio only ) ]
  • multiple accumulators (finish)
  • aliasing
  • inlining
  • misc optimizations
Quiz 11 (quiz for week 13) released, due 2023-04-18 09:15
Week 14
Tue 18 Apr

SIMD / Exceptions

 [ | screencapture (browser or download or audio only ) ]
Reading:

8.1-8.2

  • SIMD / vector instructions
  • profilers (briefly)
Quiz 11 (quiz for week 13) due 09:15 (released 2023-04-13)
Wed 19 Apr

Lab: SIMDLab


lab writeup
Rotate due by 4:59pm
Smooth checkpoint (no SIMD) due by 4:59pm
Lab due by end of day
Thu 20 Apr

Exceptions and Virtual memory 1

 [ 
 (tentative) slides
| screencapture (browser or download or audio only ) ]
Reading:

9.1-2, 9.3.2-4, 9.6

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

  • “toy” page table
  • permission bits in page tables
Quiz 12 (quiz for week 14) released, due 2023-04-25 09:15
Week 15
Tue 25 Apr

Virtual memory 2

 [ | screencapture (browser or download or audio only ) ]
Reading:

9.1-2, 9.3.2-4, 9.6

note: the first 20 minutes of the video of the lecture recording may be out of sync — it was reconstructed later (due to a technical issue)

  • address space sizes and splitting addresses
  • storing page tables in memory
  • page table in memory access exercise
Quiz 12 (quiz for week 14) due 09:15 (released 2023-04-20)
Wed 26 Apr

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


Smooth due by 4:59pm

Thu 27 Apr

Virtual memory 3 * multi-level page tables * multi-level page table access exercise * TLBs, briefly * (if time) page table tricks

 [ 
 (tentative) slides
| screencapture (browser or download or audio only ) ]
Quiz 13 (quiz for week 15) released, due 2023-05-03 09:15
Week 16
Tue 02 May

Final exam review

 [ | screencapture (browser or download or audio only ) ]
  • TLBs, briefly

  • final exam review:

Wed 03 May
Quiz 13 (quiz for week 15) due 09:15 (released 2023-04-27)
Memory due by 11:59pm (tentative writeup)
Week 17
Thu 11 May

final exam

2-5pm.

Wilson 301.