ECS154B Final Review Final is Comprehensive. What should you know? Everything that you were responsible for knowing for the midterm, plus chapters 4, 5, 7, and what was covered in class. If you have attended class, done the reading and the lab assignments, you should be in good shape. Final will be closed book, but you can bring along 2 pages of notes. The notes *must* be hand-written ... as stated in class, emphasis will be on how well you know the material, and in particular how well you can solve problems. Expect to see problems very much like the problems in the chapters, because they are not only illustrative but they also have answers that you can check your work on. Review of what we have covered so far: Chapter 4: Pipelining What it is, why it is important Impact on cycle time, performance, etc. Interaction with instruction set design Hazards (3 types) Structural, Data, Control Solutions to hazards (Stall, or ...) replicate hardware, forwarding, delay slots, prediction, etc. Forwarding, all the ramifications, how it is detected, etc. Branch prediction, how it is done, different types, why, etc. (Branch target buffers, indirect branches) How pipelining is implemented Exceptions Multiple Issue machines, renaming logic, etc. OOO, scoreboarding, tomasulo, etc. Chapter 5: Memory Heirarchy Review of Cache, memory heirarchy Types of caches, where blocks can be found, etc. Write Strategies (4 types) Average memory access time, total equation 4 C's of caches Fundamental cache parameters Evaluating cache performance (Analytical, trace, simulation) Advanced cache topics (lots of stuff here) VM, concepts behind it. Chapter 7: Parallel processing Need for parallel processing Flynn classifications Relationship between ILP and parallel processing Difficulty with parallel processing Different types of paralle processors Shared Address Space, non-shared (message passing) Centralized, distributed memory Caches in parallel processors Atomicitiy Consistency Multithreading