Cache memories

A computer has three logical systems. The central processing unit (CPU) that processes data according to instructions. The memory and storage system that stores instructions and data (it can be a volatile temporary memory or a permanent storage system like hard disks). Lastly, the input/output system that is responsible for communication between the computer and external entities. The memory and storage system is the primary concern of this article, specifically cache memory. It stores frequently accessed instructions and data for the CPU. Cache is from the French word "cachet" which means "to hide." This is a reference to early cache implementations where the cache was invisible to the user and CPU. Cache memory is important; it bridges the gap in capabilities between the CPU and main memory. CPUs have been rapidly getting faster. Cache memory has advanced considerably since Wilkes in 1965 proposed a two-level main store: one conventional and the other unconventional "slave" memory. It has now become a conventional component of high speed computing, with increasing sophistication and size. The performance of cache is critical to overall system processing ability and the ongoing research in this area is attempting to reduce as much as possible the speed gap between the CPU and the memory.