Unit | Topics | Reading | Assignments |
---|---|---|---|
Overview | |||
Wed. Aug. 26 | Introduction | Chapter 1 | Get an account and set it up |
Data representation | |||
Mon. Aug. 31 | Overview | Chapter 2 | A1: bit twiddling |
Wed. Sep. 2 | Integer arithmetic | A1 trivia due, noon on Thursday Sep. 3 | |
Wed. Sep. 9 | Floating Point | A1 due 11:59 pm Sep. 11 | |
Assembly-level programs | |||
Mon. Sep. 14 | overview and addressing modes | Chapter 3 | A2: the binary bomb |
Wed. Sep. 16 | addressing modes and control flow | A2 trivia due, 11:59 pm Friday Sep. 18 | |
Mon. Sep. 21 | more on control flow: conditional and indirect jumps, from if to switch statements | ||
Wed. Sep. 23 | procedure calls and stacks | ||
Mon. Sep. 28 | data layout in memory | A2 due 11:59 pm Sep. 28; | |
Wed. Sep. 30 | Data layout wrapup: arrays, structs, unions; potential memory layout exploits | A3: the attack lab | |
Processor architecture | |||
Mon. Oct. 5 | floating point instructions; implementation building blocks: combinational logic, memory elements, and clocks; | Chapter 4 | A3 trivia due midnight |
Wed. Oct. 7 | single-cycle implementation | A4: Processor design | |
Mon. Oct. 12 | single-cycle implementation continued; pipelining | A3 due midnight | |
Wed. Oct. 14 | more on pipelining: hazards, modern processors, the key performance formula; | A4 due by 11:59 pm on Thursday | |
Mon. Oct. 19 | limitations of forwarding; branch prediction; program optimization | ||
Wed. Oct. 21 | Midterm Exam | ||
Mon. Oct. 26 | Machine-independent compiler optimizations; out-of-order execution | Chapter 5 | A5: Tuning performance |
The storage hierarchy | |||
Wed. Oct. 28 | optimization wrap-up; memory hierarchy | Chapter 6 | A5 trivia due by 11:59 pm Friday |
Mon. Nov. 2 | caching | ||
Wed. Nov. 4 | performance tuning, storage technology | ||
Exceptional control flow | |||
Mon. Nov. 9 | exceptions, processes | Chapter 8 | A5 due by midnight |
Wed. Nov. 11 | process control | A6: Unix shell | |
Mon. Nov. 16 | signals | skim Chapter 7 | Quiz 7 due before class, A6 trivia due 11:59 p.m. |
Virtual memory and memory management | |||
Wed. Nov. 18 | Memory and storage technologies | Sections 6.1 and 9.1 | |
Mon. Nov. 23 | Virtual memory | Chapter 9, Sections 9.1-9.8 | |
Mon. Nov. 30 | Linux and the virtual memory system, Dynamic memory allocation | Sections 9.9, 9.11 | A6 due midnight, Monday Nov. 30 A7: memory allocation |
I/O, networking, (more on) concurrency | |||
Wed. Dec. 2 | More on memory allocation, introduction to I/O interfaces | Section 9.9, Chapter 10 | |
Mon. Dec. 7 | I/O, networking, and concurrency | Chapters 11, 12 | |
Wed. Dec. 9 | Wrap-up | A7 due 11:59pm Wednesday | |
Mon. Dec. 14 | Final Exam | Online |