Cheng-Chang Yang Generally speaking, faster memory is more expensive than slower memory. To provide the best performance at the reasonable cost, memory is organized in a hierarchical function. Memory Hierarchy The base types that hierarchical memory system include: Registers Cache Memory Main Memory Secondary Memory: hard disk, CD… What is Cache Memory? Cache memory is to speed up memory accesses by storing recently used data closer to the CPU, instead of storing it in main memory. Cache and Main Memory Cache and Main Memory Cache and Main Memory The Level 2 cache is slower and larger than the Level 1 cache, and the Level 3 cache is slower and Larger than the Level 2 cache. Transmission speed Level 1 > Level 2 > Level 3 Transmission capacity Level 1 < Level 2 < Level 3 Flow Chart (Cache Read Operation) RA: read address Cache Mapping Function How to determining which main memory block currently holds a cache line? Direct Mapping Associate Mapping Set Associate Mapping Direct Mapped Cache Direct Mapped Cache Maps each block of main memory into only one possible cache line. Associative Mapping Instead of placing main memory blocks in specific cache locations based on main memory address, we could allow a block to go anywhere in cache. In this way, cache would have to fill up before any blocks move out. This is how associative mapping cache works. Associative Mapping Associative mapping overcomes the disadvantages of direct mapping by permitting each main memory block to be loaded into any line of the cache. Associative Mapping We must determine which block to move out from the cache . A simple first-in first-out (FIFO) algorithm would work. However, there are many replacement algorithms that can be used; these are discussed in later. Set Associative Mapping The problem of the direct mapping is eased by having a few choices for block placement. At the same time, the hardware cost is reduced by decreasing the size of the associative mapping search. Set associative mapping is a compromise that exhibits both the direct mapping and associative mapping while reducing their disadvantages. Replacement Algorithms For direct mapping there is only one possible line for any block, and no choice is possible. For associative and set associative mapping, a replacement algorithms is needed. Least recently used (LRU) First in first out (FIFO) Least frequently used (LFU) Random Replacement Algorithms Least recently used (LRU) algorithm keeps track of the last time that a block was assessed and evicts the block that has been unused for the longest period of time. First in first out (FIFO) algorithm: the block that has been in cache the longest would be selected and removed from cache memory. Replacement Algorithms Least frequently used (LFU) algorithm: replace that block in the set that has experienced the fewest references. The most effective is least recently used (LRU) Reference Internet Source Wikipedia (http://en.wikipedia.org/wiki/Cache_memory) Book Computer Organization And Embedded Systems(6th) Computer Organization And Architecture(8th)