Originally posted by: Gamingphreek
So why dont we make a whole mess of small caches. Like L1 8kb L2 8kb L38kb L4 8kb and just have a decent amount that way.
We do. You can look at it this way
L0 - on-chip registers
L1 - Close to the CPU - 8-64K or so
L2 - Slower than L1. Still on CPU. 128K to 1M or so.
L3 - 256MB to 1GB. Often called DDR DRAM. Made my Mushkin, PNY, Crucial, etc.
L4 - 100Gb. Made by Seagate, Western Digital (this actually happens when you use virtual memory)
L5 - Multiple Terrabytes. Service provided by EarthLink, RoadRunner, AOL, etc.
You can literally think of it this way. When comparing ANY two memory technologies, one will be faster, and the other will be cheaper per bit. If this is NOT the case, the one that is more expensive per bit AND slower will not be used, and will become obsolete instantly.
So, every type of memory fits in a different place in the speed/size curve. But people want speed AND size. A lot of cheap memory only will hold all of your stuff, but you will wait forever for it. A system with only the fast and expensive memory will fly, but will be priced so high that you will have to sell your house to buy it.
The way that current systems are designed is the ultimate compromise. You can have as much of the cheap storage as possible, but you use ever-decreasing amounts of the faster stuff to make the level below appear to be faster.