ECE 463/563 Fall 2021 Microprocessor Architecture
Schedule
Date | Topics | Notes | Reading Assignment |
---|---|---|---|
Mon., Aug. 16 | Introduction: Overview of class topics, pipelining techniques, defining computer architecture Performance: static vs. dynamic instructions; T = (# cycles) x (cycle time); what influences cycles and cycle time | pptx(opens in new window)(opens in new window) | § 1.1 – 1.4 |
Wed., Aug. 18 | Caches: Processor-memory perf. gap, temporal and spatial locality, memory hierarchy | pptx(opens in new window)(opens in new window) | § 2.1 (also recommended: § 2.2) |
Mon., Aug. 23 | Caches: Cache organization and operation, direct-mapped vs. set-associative vs. fully-associative caches pre-recorded modules: module-cache2a-pptx(opens in new window)(opens in new window) | Part A: pptx(opens in new window)(opens in new window) Part B: pptx (opens in new window)(opens in new window) | § B.1 |
Wed., Aug. 25 | Caches: Modeling caches generically, replacement policies, LRU, write policies (WBWA, WTNA) Example L1+L2 simulation (WBWA for both caches) | pptx(opens in new window)(opens in new window) pptx(opens in new window)(opens in new window) | § B.1 |
Mon., Aug. 30 | continued previous | ||
Wed., Sep. 1 | Caches: Victim caches, write buffers pre-recorded modules: victim caches(opens in new window)(opens in new window) write buffers (link to recording to be posted) | pptx(opens in new window)(opens in new window) pptx(opens in new window)(opens in new window) | |
Mon., Sep. 6 | Labor Day: no class | ||
Wed., Sep. 8 | Caches: 3C’s model of misses | pptx(opens in new window)(opens in new window) | § B.2 – B.3, § 2.1 – 2.3 |
Mon., Sep. 13 | Caches: Average access time (AAT) equation; impact of cache size, assoc., and block size, on three factors of AAT (and 3C’s misses); impact of adding L2 cache on AAT. | pptx(opens in new window)(opens in new window) | “ |
Wed., Sep. 15 | Caches: Reducing misses via prefetching and program transformations. | pptx(opens in new window)(opens in new window) | “ |
Mon., Sep. 20 | Caches: Virtual memory, translation lookaside buffer (TLB), constraints for parallel cache/TLB access. | pptx(opens in new window)(opens in new window) | § B.3 – B.4 |
Wed., Sep. 22 | Performance: CPU time equation, benchmarks, summarizing performance, speedup, Amdahl’s Law pre-recorded modules: 1 of 5 (CPU time)(opens in new window)(opens in new window) (34 min.) 2 of 5 (benchmarks)(opens in new window)(opens in new window) (33 min.) 3 of 5 (speedup and Amdahl’s Law)(opens in new window)(opens in new window) (20 min.) | pptx(opens in new window)(opens in new window) | § 1.8 – 1.9 |
Mon., Sep. 27 | costs: chip area and power, power metrics pre-recorded modules: 4 of 5 (chip cost)(opens in new window)(opens in new window) (25 min.) 5 of 5 (power metrics)(opens in new window)(opens in new window) (41 min.) | (see Sep. 22 notes) | § 1.8 – 1.9, 1.5 – 1.6 |
Wed., Sep. 29 | Midterm Exam | ||
Mon., Oct. 4 | Fall Break: no class | ||
Wed., Oct. 6 | Pipelining: Work out the steps for executing instructions, design unpipelined datapath, pipelined datapath | pptx(opens in new window)(opens in new window) NEW: pptx(opens in new window)(opens in new window) (with valid bits superimposed on the datapath and showcased in an animation) | Appendix C |
Mon., Oct. 11 | Pipelining: Critical path, cycle time and CPI with/without pipelining, pipeline hazards, structural hazards, control hazards | pptx (opens in new window)(opens in new window) | Appendix C |
Wed., Oct. 13 | Pipelining: Dynamic branch prediction, branch target buffer (BTB), separate BTB+BHT, 1-bit counter, 2-bit counter, global branch history, gselect and gshare predictors, local branch history, Yeh/Patt predictor, hybrid predictors | pptx(opens in new window)(opens in new window) | Appendix C |
Mon., Oct. 18 | Pipelining: Dynamic branch prediction (cont.) | (see Oct. 13 notes) | Appendix C |
Wed., Oct. 20 | Pipelining: Dynamic branch prediction (cont.) | (see Oct. 13 notes) | Appendix C |
Mon., Oct. 25 | Pipelining: Static branch prediction, delayed branches, data hazards, RAW hazards, eliminating or minimizing stalls due to RAW hazards through data forwarding, load-use stall, WAR and WAW hazards, techniques for mitigating WAR and WAW hazards, data dependencies (true, anti, and output) pre-recorded module: static branch prediction(opens in new window)(opens in new window) | pptx(opens in new window)(opens in new window) pptx(opens in new window)(opens in new window) | Appendix C |
Wed., Oct. 27 | ILP: From in-order to out-of-order: the Issue Queue (IQ); speculation and register renaming: the Reorder Buffer (ROB) | pptx(opens in new window)(opens in new window) | § 3.1, § 3.4 |
Mon., Nov. 1 | ILP: (cont.) | ||
Wed., Nov. 3 | ILP: (cont.) | ||
Mon., Nov. 8 | ILP: (cont.) | ||
Wed., Nov. 10 | ILP: Precise interrupts, immediate branch misprediction recovery, handling memory dependencies, superscalar complexity | pptx(opens in new window)(opens in new window) | |
Mon., Nov. 15 | ILP: (Nov. 10 topics, cont.) | ||
Wed., Nov. 17 | ILP: (Nov. 10 topics, cont.) | ||
Mon., Nov. 22 | ILP: (Nov. 10 topics, cont.) | ||
Wed., Nov. 24 | Thanksgiving Holiday: no class | ||
Mon., Nov. 29 | ILP: VLIW ISA: What is ISA, impact of ISA choices: CISC vs. RISC, alignment, endian-ness, expressing parallelism in ISA | pptx(opens in new window)(opens in new window) | Appendix A (all sections) |