AGP Aperture BIOS Setting

mikeblas

[H]ard|DCer of the Month - May 2006
Joined
Jun 26, 2004
Messages
12,777
I've been wondering about the "AGP Aperture" BIOS setting lately.

I see there's been recent traffic on this board about it here . But that thread doesn't seem to have very conclusive answers.

First, what is it? My understanding is that it's an area in the address space of the machine where video memory is mapped directly to the system's memory. Is that correct?

If so, the advice given in that other thread -- about setting the BIOS AGP Aperture parameter to half the system's installed physical memory -- doesn't seem to make much sense. Why would the value you wanted to use for this window get larger when you have more RAM installed?

On a moderm AGP-equipped machine, how much time does the CPU really spend writing to video memory, anyway? Aren't all these drawing tasks offloaded to the graphics processor on the video card?

It seems to me that I'd want to set the AGP Aperture size to exactly match my video card's memory size. If it is set larger, then I end up wasting addressing space, but not necessarily memory. If I have a large amount of memory -- four gigs, say -- then I don't think the CPU can address the video card memory because it needs all four gigs of its address space for the physical memory.

But in such a case, if the memory on the card isn't mapped into the CPU's address space, how is it accessed? Or, if the AGP Aperture size I give is smaller than the size of the memory on my vide ocard, how does the CPU address it?

Maybe the "half the size of your physical memory" advice really is valid, but I don't understand why.

I'd love to read an explanation of what this parameter means, and learn how video memory addressing really works.

.B ekiM
 
Everybody has a different opinion about this. Most will tell you to try various settings and see what works best for you. Generally, I suggest 64 or 128 for a 256 MB card, 128 or 256 for a 128 MB card, and 256 for a 64 MB card. Technically you should set it lower as the video card's RAM amount increases. The setting refers to how much system RAM is reserved for the video card. Just because you set 256 doesn't mean it will use it, in fact the system can still use RAM beyond that...it just means the maximum the card can use (when and if needed). Your video card's RAM is generally much faster and more efficient to access, so the amount of system RAM used will be as little as possible. However RAM reserved for the video card, if accessed by the system, may cause performance degradation. "Half of your system's RAM" is a relic of the past, no one uses that guideline anymore.
 
Generally, I suggest 64 or 128 for a 256 MB card, 128 or 256 for a 128 MB card, and 256 for a 64 MB card.
Why? How did you arrive at that recommendation? Why do you believe it should be lower as the amount of double-port RAM on the card increases?

The setting refers to how much system RAM is reserved for the video card.
I'm not sure that's true. I have two gigs of memory. I moved my setting from 16 megs to 512 megs, and after I boot and load Windows, it still reports two gigs of RAM available.

no one uses that guideline anymore.
Well, someone who posted in the thread I referenced yesterday does. But, let's say that it really is a relic. What changed that made that old advice obsolete? And what was the basis for that old advice?

.B ekiM
 
i was under the impression that the video card only uses system ram once it runs out of ram on the card itself? so when the textures are too big to fit on the cards (faster) memory, they kind of overflow onto the system memory. So a card with 64mb of ram is more likely to use the system ram than a card with 256mb of ram. Which means you can set it smaller for cards with lots of ram on them as they are less likely to need to extra space to put textures in. I think . . .
 
I was always told that you set the AGP aperature setting to twice the amount of video ram that you have, for example if your card is 128mb, then you set the aperature setting to 256
 
^that is flawed logic, because cards w/ less memory need a larger AGP aperature, and cards with large amounts of ram need less. (plus, with that logic you would be setting it to 512 w/ a 256 mb card, and that would be rediculous)
 
Im not saying its logically corect, im just saying what i have been told, maybe it doesnt apply to newer graphic cards
 
I wish I could find the article . There was an extensive study done by sharky or anand I can't remember . The found that 128 was the sweet spot no matter what.
 
The best site I've ever run across for understanding BIOS settings is by a guy named Adrian Ropot or something of that nature. Maybe someone can help me out a little bit here so the thread starter can find it? Thanks!
 
Adrian's Rojak Pot http://www.rojakpot.com/

Bios guide (best on the net): http://www.rojakpot.com/bog.aspx

Basically as stated earlier 128mb is the max you should ever use, if you have a 128 ro 256mb card 64mb is likely enough. The reason being the GART table has to get bigger if you have a huge AGP aperture, so keeping the aperture to a minimum will keep your GART smaller, reducing hte amount of time the GPU spends searching for a given texture.

Enjoi
 
mikeblas said:
I'm not sure that's true. I have two gigs of memory. I moved my setting from 16 megs to 512 megs, and after I boot and load Windows, it still reports two gigs of RAM available.
.B ekiM

go re-read your mobo manual. you're thinking of the frame buffer, not the aperture
 
Woofer00 said:
go re-read your mobo manual. you're thinking of the frame buffer, not the aperture

Nope, I'm sure I'm changing the aperture setting. In fact, my motherboard doesn't have a frame buffer size setting.

Here's a link so you can go re-read it yourself.

.B ekiM
 
mikeblas said:
Why is that?

.B ekiM
because the AGP aperature is system memory reserved for use by the video card to supplement its onboard memory when it doesn't have enough. if you have a card with alot of memory then it doesn't need to use much system memory so a large AGP aperature is unecessary and can even hurt performance, on the other hand, a card with a small amount of memory needs a larger AGP aperature to help it store everything, so having one too small is harmful, and hurts performance, sometimes significantly. also having an AGP aperature that is too big not only will hurt performance due to the fact that you will be loosing system memory for no gain, the video card can get bogged down by it aswell.
 
Carnival Forces said:

Thanks for the link, Carnival.

That's a very interesting write up. It says that "First of all, AGP Aperture memory will not be used until your video card's on-board memory is running low."

But then, two paragraphs later, it says this:

When using an AGP card the video memory on the graphics adapter is mapped into the 4 GB memory address space (above the region of the physical installed memory). Any accesses to this memory region are directly forwarded to the video memory, greatly increasing transfer rates.

I'm a little confused by that. If the memory on the card is mapped to my system's addressable memory space, then why would the AGP Aperture memory only be used when the video card's on-board memory is running low? Why wouldn't we always want to maximimze transfer rates, instead of just maximizing them when the card is running low on its own memory?

The address space drawing implies something different than the way I read the text. It seems to say that the memory on the card is mapped into the system address space regardless, and that isn't adjustable. What happens, then, when I build a system with four gigs of memory? All of the address space is taken up by physical memory, and there's no empty address space to remap.

The illustration indicates that the aperture is mapped in addition to the address space used for card's on-board memory. What is the GART doing, then? Is it remapping memory from one virtual address to a virtual address that lands in the aperture? Or is it actually copying bytes?

The GART must not be copying bytes, since I can show that the aperture doesn't affect the amount of system memory available. If it were copying bytes, it would need somewhere to copy them to, and that means it would have to reserve physical memory to avoid it being used by the operating system.

.B ekiM
 
Warriorprophet said:
Bios guide (best on the net): http://www.rojakpot.com/bog.aspx

Basically as stated earlier 128mb is the max you should ever use, if you have a 128 ro 256mb card 64mb is likely enough. The reason being the GART table has to get bigger if you have a huge AGP aperture, so keeping the aperture to a minimum will keep your GART smaller, reducing hte amount of time the GPU spends searching for a given texture.

That's an interesting site, too, Warrior. I'll have to read up on some of the other settings. Thanks for the link!

For the aperture size, the site confirms that it's just an amount of address space, and not an amount of reserved physical memory.

How does the GPU identify a particular texture? I would assume that the GARP is just a list of mapped addresses related to a list of physical addresses. Is it something more?

How many entries are in a GARP for a 128 megabyte aperture? The article says that the size of the aperture determines the size of the GARP, so that must mean the sizes of textures are fixed. What algorithm, then, does the GPU use to "search for" a texture, and why is it dependent on the size of the memory, and not the number of textures?

.B ekiM
 
Merlin45 said:
because the AGP aperature is system memory reserved for use by the video card

Can we be certain of that?

By experimentation, I think it's just address space and not actual system memory. If I increase the aperture, the system memory must be reserved and then not available to the OS. But I can change the aperture setting and not lose physical memory. If the memory wasn't reserved from the OS, it would require the card and the BIOS to request the memory from the operating system when it was required. The BIOS can't make such a request, since it doesn't know what operating system is required.

This article says it's not memory, as well -- that the aperture is not pyhsical memory. Is that article incorrect?

When the GART is mapping a block of memory into the aperature, who owns the memory? Did the driver for the graphics card reserve it at startup, then tell the GART where it was located? Or does the memory actually stay pinned in the OS, marked such by the code that allocated it before it handed it off to the GART?

.B ekiM
 
Have you tried this? Go to the BIOS and set it to the different sizes and run some benchmarks and see which one performs the best. What works the best for someone else doesn't mean it's going to be the best for you.
 
just a comment about the maximizing of transfer speeds when onboard memory is low, the onboard memory is much faster than system ram, you always want to avoid having to use the system ram if possible. if you do run out of memory you have two ways to get around the problem, access the ram in a conventional PCI manner via the FSB, which will cut transfer rates and also hurt the CPU's performance slightly, or use the AGP aperature's reserved space that can be accessed directly through the gart. this is preferable though idealy we wouldn't have to acccess system ram at all and the card would always use local memory.
 
Major_A said:
Have you tried this? Go to the BIOS and set it to the different sizes and run some benchmarks and see which one performs the best. What works the best for someone else doesn't mean it's going to be the best for you.

Hello, Major. Thanks for your suggestion.

Maybe I'll have the time to run benchmarks, but for now I'm not interested in benchmarking; I'm interested in learing how it works and what it does.

.B ekiM
 
Merlin45 said:
access the ram in a conventional PCI manner via the FSB, which will cut transfer rates and also hurt the CPU's performance slightly, or use the AGP aperature's reserved space that can be accessed directly through the gart. this is preferable though idealy we wouldn't have to acccess system ram at all and the card would always use local memory.

Hi, Merlin.

Which RAM are you accessing? It must be memory on the video card, since you're saying it's through the GART and in the AGP's reserved space.

Is that right? Am I correct in thinking that the GART maps system memory into the AGP aperture, and is not mapping video card memory into the processor's address space?

.B ekiM
 
yes you are correct, local memory is that on the video card, and only used by the video card. the video card can use the system ram for additional storage in one of two ways, either agp texturing through the gart with the files stored in the agp aperature, or via standard PCI ram access through the FSB. the local ram on the card is significanlty faster than the system ram in the aperature which is somewhat faster than accessing the ram via the pci bus.
 
Back
Top