A small (relative) fast memory area that holds frequently used blocks from a much larger and slower storage mechanism. Reads and Writes to the slower storage first check to see if the requested block is in the cache and if so it is used. Only if no cache block exists is the slower storage accessed. An algorithm is used to ensure that the most frequently needed blocks are kept in the cache. If the block exists in the cache it is called a hit, if not a miss.