Learn about the technologies behind the Internet with The TCP/IP Guide!|
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
System RAM Cacheability
This is one of the most misunderstood aspects of the caching equation. The amount of RAM that the system can cache is very important if you are going to be using a lot of system memory. Almost all modern fifth generation systems can cache 64 MB of system memory. However, many systems, even newer ones, cannot cache more than 64 MB of memory. Intel's popular 430FX ("Triton I"), 430VX (one of the "Triton II"s, also called "Triton III") and 430TX chipsets, do not cache more than 64 MB of main memory. There are millions and millions of these PCs on the market.
If you put more memory in a system than can be cached, the result is a performance decrease. The speed differential between the cache and memory is significant; that's why we use it. :^) When some of that memory is not cached, the system must go to memory for every access to that uncached memory, which is much slower. In addition, when using a multitasking operating system (pretty much anything other than DOS these days) you can't really control what ends up in cached memory and what ends up in non-cached memory, unless you really know what you are doing.
The keys to how much memory your system can cache are first, the design of the chipset, and second, the width of the tag RAM. The more memory you have, the more address lines you need to specify an address. This means that you have more address bits to store in the tag RAM to use in order to check for a cache hit. Of course if the chipset isn't designed to cache more than 64 MB, an extra wide tag RAM won't help anyway.
Let's take our standard example again; 64 MB of memory, 512 KB cache, 32-byte cache lines. As we described in detail in this section, 64 MB means 26 address lines (A0 to A25); A0 to A4 specify the byte in the cache line, A5 to A18 specify the cache line, and A19 to A25 go into the tag RAM to specify which memory address is currently using the cache line. That's 7 bits; let's say our tag RAM is 8 bits wide, and we are reserving one bit for the "dirty bit", to allow write-back operation of the cache. So we're fine, we have enough tag memory in the cache. Now, suppose we add another 32 MB of memory. To address 96 MB you need another address line, A26, to be held in the tag RAM. Hmm, we have a problem, because now we need 9 bits in our tag RAM and it only has 8.
The only mainstream Pentium chipset to support caching over 64 MB is the 430HX "Triton II" chipset by Intel. In actual fact, caching over 64 MB on this chipset is considered "optional"; the motherboard manufacturer has to make sure to use an 11-bit tag RAM instead of the default 8-bit. The extra 3 bits increase cacheability from 64 MB to 512 MB (2^3=8, and 64*8=512).
Many people confuse the issue of system RAM size and system RAM cacheability. The common thought is that adding more cache will let you cache more RAM, but you can see that really it is the tag RAM and chipset that controls this. Further complicating the matter is that some companies put extra tag RAM on their COASt modules. So a user will insert a 256 KB COASt module, and think that increasing his cache let him cache more system memory, when really it was the extra tag RAM that did it.
Pentium Pro PCs use an integrated level 2 cache that contains the tag RAM within it, so none of this is really a concern for these machines. The Pentium Pro will cache up to 4 GB of main memory, basically anything you can throw at it. The Pentium II uses an SEC daughtercard. It has the same general architecture as the Pentium Pro, but due to a design limitation will "only" cache up to 512 MB. This isn't nearly as much of an issue as a 64 MB barrier, but considering that the PII is used in many high-end applications, this might be a concern for some people.
One question that people ask a lot is: "How much will the system slow down if I have more RAM in it than can be cached?" There is no easy answer to this question, because it depends both on the system and what you are doing with it. Somewhere between 5% and 25% is most likely, but you should bear something else in mind: adding real physical memory to the system is one way to avoid the extreme slowdown to the system that occurs when it runs out of real memory and must use virtual memory. If you are doing heavy multitasking and notice that the system is thrashing, you will always be better off to have more memory, even uncached, instead of having the system swap a great deal to disk. Of course having all the memory cached is still preferred.