Readings are sections of the textbook (Computer Systems: A Programmer's Perspective, 3rd Edition) unless otherwise noted.
| Week 1 | 
| Tue 24 Aug | 
Course Introduction [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  1, 2.1.3 
  - Semester preview: Layers of abstraction
 
  - Processor + Memory Fetch Loop
 
  - Endianness
 
  - (start) AT&T syntax assembly
 
 
 |  | 
| Wed 25 Aug | 
Lab: getting C+Unix-like environment
 Work on getting a working C environment on your own.
The lab will not be staffed. 
 |  | 
| Thu 26 Aug | 
Assembly 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( 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 
  - AT&T syntax assembly
 
  - LEA
 
  - labels
 
 
 | Quiz 1 (quiz for week 1) released, due 2021-08-31 09:15
  | 
| Week 2 | 
| Tue 31 Aug | 
Assembly 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  3.6.3, 3.6.8 
  - (briefly) X86-64 calling convention
 
  - If and loops to assembly
 
  - X86 condition codes
    
      - cmpq versus subq
 
      testq %rax, %rax 
      - SF, ZF
 
     
   
  - (briefly) Jump Tables
 
 
 | Quiz 1 (quiz for week 1) due 09:15 (released 2021-08-26)
  | 
| Wed 01 Sep | 
Lab: bomb lab
  | Lab due by end of day | 
| Thu 02 Sep | 
Compilation Pipeline / selected C topics [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  7-7.3 
  Due to technical difficulties the 5pm lecture video is incomplete: the screencapture for the first 27 minutes was not recorded, I’ve replaced it with a static shot of the slides that were being displayed, but without the pointer/drawings on those slides. 
 
  - 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 2021-09-07 09:15
  | 
| Week 3 | 
| Tue 07 Sep | 
Bitwise [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
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 2021-09-02)
  | 
| Wed 08 Sep | 
Lab: bit-fiddling lab
  | bomb HW due by 9:30am Lab due by end of day | 
| Thu 09 Sep | 
Bitwise (finish) / ISAs [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.1-4.1.3, RISC v CISC aside (p 361) 
  - Bit puzzle strategies (con’t)
    
      - Parallelism example: any-bit-set with 
& 
     
   
  - ISAs
 
  - RISC v CISC
 
 
 | Quiz 3 (quiz for week 3) released, due 2021-09-14 09:15
  | 
| Week 4 | 
| Tue 14 Sep | 
Y86 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.1-4.1.3, 4.1.5-6 
  - Y86-64
 
  - using YAS
 
  - Y86 encoding/decoding
 
  - describing hardware and HCLRS
    
  
 
 
 | Quiz 3 (quiz for week 3) due 09:15 (released 2021-09-09)
  | 
| Wed 15 Sep | 
Lab: linking+ISA lab
  | bit-fiddling HW due by 9:30am Lab due by end of day | 
| Thu 16 Sep | 
SEQ part 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.2-4.2.5 
  - describing hardware and HCLRS (con’t)
    
      - wires
 
      - registers
 
      - memory, reading
 
     
   
  - nop CPU
 
  - MUXes
 
  - nop+halt CPU (start)
    
      - extracting parts of instructions
 
     
   
 
 | Quiz 4 (quiz for week 4) released, due 2021-09-21 09:15
  | 
| Week 5 | 
| Tue 21 Sep | 
SEQ part 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.2-4.2.5, 4.3.1-4.3.4 
  - nop+halt CPU (con’t)
    
      - extracting parts of instructions (reprise)
 
     
   
  - interlude: using HCLRS
 
  - interlude: HCLRS versus the book
 
  - addq CPU
 
  - ALUs
 
  - memory, writing
 
  - mov to register CPU
 
 
 | Quiz 4 (quiz for week 4) due 09:15 (released 2021-09-16)
  | 
| Wed 22 Sep | 
Lab: HCL1 (pc)
  | linking+ISA HW due by 9:30am Lab due by end of day | 
| Thu 23 Sep | 
SEQ part 3 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.2-4.2.5, 4.3.1-4.3.4 
  - mov CPU, complete
 
  - SEQ “stages”
 
 
 | Quiz 5 (quiz for week 5) released, due 2021-09-28 09:15
  | 
| Week 6 | 
| Tue 28 Sep | 
SEQ part 4 / Pipelining 0 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - SEQ stages walkthrough (finish)
 
  - 
    
setting MUXes 
   
  - pipelining idea
    
      - latency and throughput and pipelining
 
     
   
 
 | Quiz 5 (quiz for week 5) due 09:15 (released 2021-09-23)
  | 
| Wed 29 Sep | 
Lab: HCL3 (seqlab)
  | HCL2 (irmovq + rrmovq + jmp) due by 9:30am Lab due by end of day | 
| Thu 30 Sep | 
Pipelining 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  4.4-4.5.3 
  - latency and throughput and pipelining (review)
 
  - adding pipelines to circuits
 
  - register tolerances and diminishing pipelining returns
 
  - pipelined addq
 
  - pipelining SEQ
 
 
 | Quiz 6 (quiz for week 6) released, due 2021-10-05 09:15
  | 
| Week 7 | 
| Tue 05 Oct | 
Pipelining 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( 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 2021-09-30)
  | 
| Wed 06 Oct | 
Lab: HCL5 (pipelab1)
  | HCL4 (seqhw) due by 9:30am Lab due by end of day | 
| Thu 07 Oct | 
Pipelining 3 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( 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 2021-10-14 09:15
  | 
| Week 8 | 
| Tue 12 Oct | 
Reading Day
(no class) |  | 
| Wed 13 Oct | 
 |  | 
| Thu 14 Oct | 
Pipelining 4 / Cache 0 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.2-3 
  - implementing stalling and squashing
 
  - missing pieces in pipelining
 
  - place of cache
 
 
 | Quiz 08 (quiz for week 8) released, due 2021-10-19 09:15 Quiz 7 (quiz for week 7) due 09:15 (released 2021-10-07)
  | 
| Week 9 | 
| Tue 19 Oct | 
Cache 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.4-6.4.4 
  - direct-mapped caches
 
  - set-associative caches (start)
 
 
 | Quiz 08 (quiz for week 8) due 09:15 (released 2021-10-14)
  | 
| Wed 20 Oct | 
Lab: HCL7 (pipelab2)
  | HCL6 (pipehw1) due by 9:30am Lab due by end of day | 
| Thu 21 Oct | 
Cache 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.4.3-6.4.7 
  - set-associative caches (finish)
 
  - replacement policies
 
  - classifying misses: conflict / capacity / compulsory
 
  - cache write policies
 
 
 | Quiz 09 (quiz for week 9) released, due 2021-10-26 09:15
  | 
| Week 10 | 
| Tue 26 Oct | 
Cache performance 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.5 
  - AMAT
 
  - cache tradeoffs
 
  - cache misses and C code (start)
 
 
 | Quiz 09 (quiz for week 9) due 09:15 (released 2021-10-21)
  | 
| Wed 27 Oct | 
Lab: CacheLab
  | HCL8 (pipehw2) due by 9:30am Lab due by end of day | 
| Thu 28 Oct | 
Cache performance 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.5 
  - cache misses and C code (finish)
 
  - loop orders
 
  - cache blocking (start)
    
  
 
 
 | Quiz 10 (quiz for week 10) released, due 2021-11-02 09:15
  | 
| Week 11 | 
| Tue 02 Nov | 
Cache performance 3 / Optimization and Out-of-order 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  6.5, 5.4, 5.7 
  - cache blocking (finish)
    
  
 
  - loop unrolling
 
  - out-of-order processor model (start)
 
 
 | Quiz 10 (quiz for week 10) due 09:15 (released 2021-10-28)
  | 
| Wed 03 Nov | 
Lab: cache programs (lab)
  | pipeline tradeoff simulator due by 9:30am Lab due by end of day | 
| Thu 04 Nov | 
Optimization and Out-of-order 2 [  
    (tentative) slides: see  02 Nov |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  5 
  - out-of-order processor model (finish)
    
      - register renaming
 
      - instruction dispatch
 
     
   
  - reassociation
 
  - multiple accumulators
 
  - data flow model
 
 
 | Quiz 11 (quiz for week 11) released, due 2021-11-09 09:15
  | 
| Week 12 | 
| Tue 09 Nov | 
Optimizations 3 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - data flow model (con’t)
 
  - aliasing
 
  - inlining
 
 
 | Quiz 11 (quiz for week 11) due 09:15 (released 2021-11-04)
  | 
| Wed 10 Nov | 
Lab: LoopLab
  | cache programs (hw) due by 9:30am Lab due by end of day | 
| Thu 11 Nov | 
Optimizations 4 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - misc optimizations
 
  - SIMD / vector instructions
 
 
 | Quiz 12 (quiz for week 12) released, due 2021-11-16 09:15
  | 
| Week 13 | 
| Tue 16 Nov | 
Optimizations 5 / Exceptions 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  8.1-8.2 
  - 
    
profilers (briefly) 
   
  - processes and context switching
 
  - types of exceptions
 
  - process idea
 
  - exception tables
 
 
 | Quiz 12 (quiz for week 12) due 09:15 (released 2021-11-11)
  | 
| Wed 17 Nov | 
Lab: SIMDLab
  | Rotate due by 9:30am Smooth checkpoint (no SIMD) due by 9:30am Lab due by end of day | 
| Thu 18 Nov | 
Exceptions 2 / Virtual memory 1 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
Reading:  9.1-2, 9.3.2 
  - 
    
kernel mode 
   
  - 
    
“toy” page table 
   
 
 | Quiz 13 (quiz for week 13) released, due 2021-11-23 09:15
  | 
| Week 14 | 
| Tue 23 Nov | 
Virtual memory 2 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - address space sizes and splitting addresses
 
  - storing page tables in memory
 
 
 | Quiz 14 (quiz for week 14) released, due 2021-11-30 09:15 Quiz 13 (quiz for week 13) due 09:15 (released 2021-11-18)
  | 
| Wed 24 Nov | 
No lab
(no class) |  | 
| Thu 25 Nov | 
No class
(no class) |  | 
| Week 15 | 
| Tue 30 Nov | 
Virtual memory 3 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - page table tricks
    
  
 
  - multi-level page tables
 
  - multi-level page table access exercises (start)
 
 
 | Quiz 14 (quiz for week 14) due 09:15 (released 2021-11-23)
  | 
| Wed 01 Dec | 
Lab: work on memory HW (no lab)
  | Smooth due by 9:30am
  | 
| Thu 02 Dec | 
Virtual memory 4 [   |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      ]  
  - multi-level page table access exercises (con’t)
 
  - TLBs
 
 
 | Quiz 15 (quiz for week 15) released, due 2021-12-07 09:15
  | 
| Week 16 | 
| Tue 07 Dec | 
Final review |
      screencapture (
        browser: 
       am pm;
        download mp4:  am pm) |
      audio only ( am pm)
      
 | Quiz 15 (quiz for week 15) due 09:15 (released 2021-12-02) Memory due by 11:59pm | 
| Fri 10 Dec | 
final exam
7PM (both sections); Maury 209 & 104 & 115 
conflict form 
 |  |