Test 2 will be Tuesday, Nov. 15, in class. You will be allowed a one-page (front and back) 8.5" x 11" "cheat sheet" of notes.
I've compiled a list of topics for the test, but I have not written the test yet.
Chapter 8. Pipelining (general pipeline material covered on the last test)
Ways to reduce the branch penalty: branch prediction and delayed branch
Branch History Table
Performance Enhancements: superpipelining, superscalar, VLIW architectures
Superscalar characteristics
Instruction-level parallelism and its limitations due to write-read/RAW data dependencies, procedural dependencies, and resource conflicts.
Machine-level parallelism
Instruction-issue policies: In-order Issue with In-order Completion, In-order Issue with Out-of-Order Completion, and Out-of-Order Issue with Out-of-Order Completion
Dependencies: output (write-write/WAW) dependencies, antidependencies (read-write/WAR)
Instruction window, Register renaming, Tomasulo's algorithm
Chapter 16. Memory System Design
Sequential Circuits (Memory): SR latch - know how it remembers (two stable
states, etc.), know how it changes states;
Gated/Clocked SR and D latches. Master-slave D Flip Flop; their characteristic tables
Register file - design and usage
Square-memory implementation of large memories
fast page-mode of Synchronous DRAM
static vs. dynamic
Chapter 17. Cache Memory
Motivation for cache: performance issues, Locality of reference (temporal and spatial)
Types of cache: direct mapped, fully associative, set associative
Replacement policies: random, FIFO, LRU
Write policies: write-through, write-back; cache-coherency solutions;
Types of cache: unified vs. split cache (separate instruction and data caches), number/level of caches, virtual vs. physically tagged caches
Pentium and PowerPC examples
Cache design issues: cache capacity, cache line size, degree of associativity
Chapter 18. Virtual Memory (saved for the Final)