(1) To store data locally in order to speed up subsequent retrievals. Pronounced "cash." See Web cache and browser cache.|
(2) Reserved areas of memory in every computer that are used to speed up instruction execution, data retrieval and data updating. Pronounced "cash," they serve as staging areas, and their contents are constantly changing. There are two kinds: memory caches and disk caches.
First Kind: Memory Caches
A memory cache, or "CPU cache," is a memory bank that bridges main memory and the CPU. It is faster than main memory and allows instructions to be executed and data to be read and written at higher speed. Instructions and data are transferred from main memory to the cache in fixed blocks, known as cache "lines," using some kind of look-ahead algorithm. See cache line.
Temporal and Spatial (Time and Space)
Caches take advantage of "temporal locality," which means the same data item is often reused many times. They also benefit from "spatial locality," wherein the next instruction to be executed or the next data item to be processed is likely to be the next in line. The more often the same data item is processed or the more sequential the instructions or data, the greater the chance for a "cache hit." If the next item is not in the cache, a "cache miss" occurs, and the CPU has to go to main memory to retrieve it.
Level 1 and Level 2
A level 1 (L1) cache is a memory bank built into the CPU chip. A level 2 cache (L2) is a secondary staging area that feeds the L1 cache. Increasing the size of the L2 cache may speed up some applications but have no effect on others. L2 may be built into the CPU chip, reside on a separate chip in a multichip package module (see MCP) or be a separate bank of chips on the motherboard. Caches are typically static RAM (SRAM), while main memory is generally some variety of dynamic RAM (DRAM). See SRAM and DRAM.
The whole idea is to keep staging more instructions and data in a high-speed memory closer to the CPU.
Second Kind: Disk Caches
A disk cache is a section of main memory or memory on the disk controller board that bridges the disk and the CPU. When the disk is read, a larger block of data is copied into the cache than is immediately required. If subsequent reads find the data already stored in the cache, there is no need to retrieve it from the disk, which is slower to access.
If the cache is used for writing, data are queued up at high speed and then written to disk during idle machine cycles by the caching program. If the cache is built into the hardware, the disk controller figures out when to do it. See cache coherency, write back cache, write through cache, pipeline burst cache, lookaside cache, inline cache, backside cache and NV cache.
Disk caches are usually just a part of main memory made up of common dynamic RAM (DRAM) chips, whereas memory caches (CPU caches) use higher-speed static RAM (SRAM) chips.