| 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! :)
|