When the CPU requests a byte from a particular block from RAM, it needs to be able to determine three things very quickly:
whether or not the needed block is actually in the cache (i.e., whether there is a cache hit or a cache miss)
the location of the block within the cache (in the case of a cache hit)
the location of the desired byte (or critical word) within the block (again, in the case of a cache hit)
A cache accommodates all three needs by associating a special piece of memory—called a tag—with each block frame in the cache. The tag holds information about the blocks currently being stored in the frame, and that information allows the CPU to determine the answer to all three of the questions above. However, the speed with which that ...