- Joined
- Mar 2, 2001
- Location
- Seattle, WA
Well, I've been doing some digging around inside of my card and playing with NiBiTor and my BIOS even though I promised myself I wouldn't.
After some experimental BIOS flashing with various reference timings and ratios of core clock to shader clock, and using ATITool to change clocks up/down and looking at real clock settings as displayed by RivaTuner, I've discovered a few things.
Nvidia uses a 27mhz reference clock for everything. In other words, everything is clocked to a multiple of 27mhz. It appears that the additional granularity provided by ATITool where you can adjust everything in multiples of 9mhz is an illusion. Everything only changes by a multiplier of some number times 27. So, in other words, you can choose from a memory speed of 999 (27x37) or a memory speed of 1026 (27x38). Setting a clock speed in between 999 and 1026 will always round down or up to the nearest multiple of 27.
Setting an arbitrary clock by editing your BIOS does nothing to override this fundamental clocking method. No matter what you do with the BIOS setting, once you get into Windows and open RivaTuner and examine your clock, the internal clock will always be set back to the lowest value which is a multiple of 27 rounded down from the BIOS. So if you create a BIOS that has a core clock of 630 and boot into Windows, when you get there, what you see in RivaTuner is a clock speed of 621. If you edit your BIOS and set a speed of 631, again, when you get to Windows and check RivaTuner, it's 621. Only if you flash your BIOS to a core clock of 648, will you suddenly get 648 from RivaTuner. I guess the always rounding down and never rounding up from BIOS clocks is a safety mechanism Nvidia built in to make sure that BIOS is never at fault if a card cannot reach a certain speed, which I'm sure makes the OEMs happy. Foxconn is benefiting from this, because they sold me this 8800GTX OC Edition card with a BIOS clock set to 630, but in reality the clock is 621. So in reality the card is not performing as Foxconn advertises, although the point is moot since the BIOS clock is correctly set to 630, it's the internal clock generator which is forcing 621 and that's probably not something I could sue Foxconn for, nor would I even bother.
Anyways, this is what I've found so far. Clocking Nvidia cards seems to be quite interesting, especially coming from my previous X1900XTX where ATITool seemed to be able to control clocks with a great deal of granularity. I don't personally know if there is a way to set clocks with greater precision in Nvidia cards, but I suspect there is not if Nvidia's multiplier is fixed to 27mhz because that's what the clock generator onboard the card is set to. If the clock generator on the card is fixed to 27mhz then you would have to hardware modding to mess with that, which I definitely will never do. Hah.
After some experimental BIOS flashing with various reference timings and ratios of core clock to shader clock, and using ATITool to change clocks up/down and looking at real clock settings as displayed by RivaTuner, I've discovered a few things.
Nvidia uses a 27mhz reference clock for everything. In other words, everything is clocked to a multiple of 27mhz. It appears that the additional granularity provided by ATITool where you can adjust everything in multiples of 9mhz is an illusion. Everything only changes by a multiplier of some number times 27. So, in other words, you can choose from a memory speed of 999 (27x37) or a memory speed of 1026 (27x38). Setting a clock speed in between 999 and 1026 will always round down or up to the nearest multiple of 27.
Setting an arbitrary clock by editing your BIOS does nothing to override this fundamental clocking method. No matter what you do with the BIOS setting, once you get into Windows and open RivaTuner and examine your clock, the internal clock will always be set back to the lowest value which is a multiple of 27 rounded down from the BIOS. So if you create a BIOS that has a core clock of 630 and boot into Windows, when you get there, what you see in RivaTuner is a clock speed of 621. If you edit your BIOS and set a speed of 631, again, when you get to Windows and check RivaTuner, it's 621. Only if you flash your BIOS to a core clock of 648, will you suddenly get 648 from RivaTuner. I guess the always rounding down and never rounding up from BIOS clocks is a safety mechanism Nvidia built in to make sure that BIOS is never at fault if a card cannot reach a certain speed, which I'm sure makes the OEMs happy. Foxconn is benefiting from this, because they sold me this 8800GTX OC Edition card with a BIOS clock set to 630, but in reality the clock is 621. So in reality the card is not performing as Foxconn advertises, although the point is moot since the BIOS clock is correctly set to 630, it's the internal clock generator which is forcing 621 and that's probably not something I could sue Foxconn for, nor would I even bother.
Anyways, this is what I've found so far. Clocking Nvidia cards seems to be quite interesting, especially coming from my previous X1900XTX where ATITool seemed to be able to control clocks with a great deal of granularity. I don't personally know if there is a way to set clocks with greater precision in Nvidia cards, but I suspect there is not if Nvidia's multiplier is fixed to 27mhz because that's what the clock generator onboard the card is set to. If the clock generator on the card is fixed to 27mhz then you would have to hardware modding to mess with that, which I definitely will never do. Hah.