We looked at the early digital computer memory, see Computer Memory – Core Memory, and we mentioned that the current standard Random Access Memory (RAM) is a memory chip. This is consistent with the often-cited Moore Law (Gordon Moore is one of Intel's founders). He points out that the density of the components of the integrated circuits, which can be paraphrased as unit price, is doubled every 18 months. The early memory core has cycle times in microseconds, today we are talking in nanoseconds.
You may be familiar with the term cache as it applies to personal computers. This is one of the performance features mentioned when talking about the latest CPU or hard drive. You can have a L1 or L2 cache on the processor and cache on a different size disk. Some programs also have a cache, also known as a buffer, for example when you record data on a CD writer. Early CD burning programs have "overflow." The end result is a good supply of cabinets!
The mainframe systems used the cache for many years. The concept became popular in the 1970s as a way to speed up memory access time. This was the time when the main memory was terminated and replaced by integrated circuits or chips. Although the chips are much more efficient in terms of physical space, they have other problems of reliability and heat generation. Chips with a certain design were faster, hotter and more expensive than other design chips that were cheaper but slower. Speed has always been one of the most important factors in computer sales, and design engineers have always been on the lookout for ways to improve performance.
The concept of cache memory is based on the fact that the computer itself is a sequential processing machine. Of course, one of the great benefits of a computer program is that it can "branch" or "jump" beyond the sequence – the subject of another article in this series. However, there is enough time when one instruction follows another to make a buffer or cache a useful addition to the computer
The main idea of the cache is to predict what data is required from the memory to be processed in the processor. Think of a program that consists of a series of instructions, each of which is stored in a memory location, say from address 100 upwards. The on-site instruction 100 is read from the memory and executed by the CPU, then the next instruction is read from location 101 and executed, then 102, 103, and so on.
If the memory in question is a primary memory, 1 microsecond to read the instruction. If the processor takes, say 100 nanoseconds, to execute the instruction, it must wait 900 nanoseconds for the next instruction (1 microsecond = 1000 nanoseconds). The effective CPU repeat rate is 1 microsecond .. (The times and speeds given are typical, but do not refer to any specific hardware, but only illustrate the principles involved).