Video RAM Caching

 






What If We Enable It?

Now, let's examine what may possibly happen if we use the processor's L2 cache to cache that small 64KB region of the video RAM. The performance of the graphics card will most probably receive a boost from the lower latency and higher bandwidth of the processor's L2 cache. However, the L2 cache is a very limited resource. Pentium II/IIIs have only 512KB of it and Celerons even less! Using a significant part of that limited resource to cache the video RAM would naturally deprive the motherboard of the cache it needs to alleviate the performance bottleneck of the much slower system RAM. That means while the performance of the graphics card may improve, the performance of the system RAM will invariably suffer.

Also, remember that the needless traffic through the AGP (or PCI) bus will reduce the bandwidth for texture transfers, etc... The traffic runs both ways since for the L2 cache to store the data from the video RAM, it needs to be sent in through the AGP bus; and when that memory region is read, the data is sent back though the AGP bus to the graphics chip. Because the AGP bus is pipelined and is mainly used for texture reads from the system RAM to the video RAM, the data reads from the A0000h-AFFFFh region of the video RAM to the L2 cache will cause the flushing of the pipeline since the transfer is in the opposing direction and such data cannot be transferred via the SBA port.

However, since the memory region cached is small, it's also quite possible that the disruption of the AGP bus will be minimal. It all depends on just how often the data transfers occur (especially in the direction of the L2 cache) and how deep the AGP pipeline is. Lots of data writes to the L2 cache will be particularly disruptive since it flushes the pipeline which stalls further texture transfers to the video RAM. Pipeline-wise, a deeper pipeline would be particularly affected by such flushes since more data would be lost and it takes a longer time to get the pipeline running in the opposite direction again.

 

What Kind Of Performance Boost Can We Expect?

The Video RAM Cacheable feature only enables/disables the caching of a small 64KB region of the graphics card's framebuffer. Most graphics cards these days have at least 16MB of onboard RAM, if not 32MB or more. That means only a maximum of 0.004% of the graphics card's onboard RAM is cached. Not a very large figure as you can see. Of course, not all of the onboard RAM would be used in most cases...

So, let's look at the usual amount of RAM that would be in use by the card at all times. The screen resolution of 1024x768 with the corresponding colour resolution of 16-bit is pretty much the standard resolutions adopted by most users. For 2D work only (no Z-buffer), that means about 1.6MB of RAM is used and in 3D accelerated environments (not considering textures), the card will need about 4.8MB of RAM.

Therefore, the Video RAM Cacheable feature actually caches about 0.04% of the RAM in use for 2D work and about 0.01% of the RAM in use for 3D work. Not very significant, if you ask me. So, I doubt the performance boost would be anything radical for today's graphics cards with linear framebuffers. But it could possibly help improve the performance of graphics cards that don't have a linear framebuffer (are there any these days?) or are being used with an OS that does not support linear framebuffering. That's because those cards will only be able to read the contents of their framebuffers through a 64KB wide window or page.

Okay... enough of theories! Let's test the BIOS option out and see what really happens in the real world! :)

 

 
 

 

 
     
   

 

 
   

 
     
 

                   

 
   

 

 
 
Last Updated 15-09-2000

All trademarks used are properties of their respective owners.
Copyright © 1998-2000 Adrian Wong. All rights reserved.

 
Visit the new Tech ARP @ http://www.techarp.com/ !