Schedule for CSC 252, Fall 2020 (Tentative)

The following schedule is subject to change, so please check back frequently. Slides for the individual lectures were derived from those by the course text authors: Dave O'Hallaron and Randy Bryant, with other attributations included for material taken from elsewhere. The slides are intended for the sole purpose of instruction of computer organization at the University of Rochester.


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