This quiz will focus on memory. (Linking and I/O libraries will be covered on the final exam.) For this quiz, be able to: -- Describe the tasks performed in each stage of the Fetch-Decode-Execute-Memory-Writeback-PC pipeline (now that you know what writeback is). -- Schedule instructions in such a pipeline, and see where bubbles occur due to data dependencies and branches. -- Explain why function calls and possible memory aliasing block optimization by compilers. -- Trace the contents of a cache while a sequence of memory accesses is performed. -- Distinguish direct mapped cache from associative cache. -- Distinguish write-through + no-write-allocate from writeback + write-allocate. -- Determine average access time given a miss rate. -- Write cache-friendly code and determine the number of misses per inner loop iteration. -- Solve the exercises for October 31 and the practice problems listed on the sched.html page of the website. -- Give (three) good reasons why virtual memory is used. -- Use virtual memory as a cache for files stored on disk. -- Explain what happens with write-back and write-through. -- Distinguish a page hit from a page fault and explain what happens for each. -- Explain why virtual memory pages are larger than cache blocks.