NVIDIA's shady trick to boost the GeForce 9600GT Review 174

NVIDIA's shady trick to boost the GeForce 9600GT Review

(174 Comments) »

How NVIDIA made the 9600 GT gain extra performance .. secretly

When we first reviewed NVIDIA's new GeForce 9600 GT (review here), we noticed a discrepancy between the core clock speed reported by the driver and the core clock speed read from the clock generator directly.



RivaTuner Overclocking and GPU-Z read the clocks from the NVIDIA driver, displaying whatever the driver returns as core clock. Rivatuner Monitoring however accesses the clock generator inside the GPU directly and gets its information from there. A PLL to generate clocks works as follows. It is fed a base frequency from a crystal oscillator, typically in the 13..27 MHz range. It then multiplies and divides this frequency by an integer value to reach the final clock speed. For example 630 MHz = 27 MHz * 70 / 3.

The information which crystal is used is stored inside the GPU's strap registers which are initialized from a resistor configuration on the PCB and the VGA BIOS. In case of the GeForce 9600 GT the strap says "27 MHz" crystal frequency and Rivatuner Monitoring applies that to its clock reading code, resulting frequency: 783 MHz = 27 MHz * 29 / 1. The NVIDIA driver however uses 25 MHz for its calculation: 725 MHz = 25 * 29 / 1.

This explains the clock difference and can only be seen on the core frequency (the memory PLL is always running at 27 MHz).

We verified this personally on three 9600 GT cards from various manufacturers, other users confirm this too.

Now the big question is, what is going on here? When I asked NVIDIA about this phenomenon they replied:
The crystal frequency is 25MHz on 9600GT. Clock is 650MHz.
No further details were given. I also sent another email later asking for an update on this - no reply.

25 MHz? But from where?


When looking at the PCB, the only crystal we could find is a 27 MHz one, so where is the magical 25 MHz coming from ?

As many of you know, the PCI-Express bus clock frequency which connects the card to the rest of the system is running at 100 MHz by default. What NVIDIA did is to take this frequency and divide it by four to get their reference frequency for the core clock.

On systems where the PCI-E bus runs at 100 MHz, this results in the 25 MHz used for the default clock indeed. But once the PCI-E clock is increased beyond that, the GPU will magically run at higher clock speeds, without any changes to the graphics configuration, BIOS, driver or any software.

On "normal" VGA cards, when you increase the PCI-Express bus frequency you increase the theoretical bandwidth available between card and the rest of the system, but do not affect the speed the card is running at. On the GeForce 9600 GT, a 10% increase in PCI-Express frequency will make the card's core clock run 10% faster!

Please also note that RivaTuner's monitoring clock reading is wrong. It uses 27 MHz for its calculation which is incorrect. When the PCI-E bus is 100 MHz, the core clock is indeed 650 MHz on the reference design. A RivaTuner update is necessary to reflect GPU clock changes cause by PCI-E clock properly though.

My dear friend Unwinder had this to say regarding an update in RivaTuner:
There won't be such an update. I'll always use 25MHz just like the NV driver.

Putting it to the test



In order to test our theory we ran 3DMark06 Multitexture Fillrate tests on both the GeForce 9600 GT (G94) and the GeForce 8800 GT (G92). Both use the same underlying GPU architecture, with the G92 being the faster part. We always tested at the stock frequencies of our two cards, we never adjusted the GPU frequency manually.

We ran the fillrate test with four difference PCI-E clocks set in the BIOS: 100 MHz, 105 MHz, 110 MHz and 115 MHz.

As you can see, the diagram above is pretty conclusive and shows exactly the behaviour we expected.

PCI-Express
Clock
Clock reported
by driver
Actual
Frequency
Fillrate MT/s % Change vs.
100 MHz
GeForce 9600 GT
100 MHz 725 MHz 725 MHz173680%
105 MHz 725 MHz761 MHz 182665.2%
110 MHz 725 MHz794 MHz 190749.8%
115 MHz 725 MHz834 MHz 1987314.4%
GeForce 8800 GT
100 MHz 660 MHz 660 MHz 289160.0%
105 MHz 660 MHz 660 MHz 289120.0%
110 MHz 660 MHz 660 MHz 289080.0%
115 MHz 660 MHz 660 MHz 289130.0%
Our Patreon Silver Supporters can read articles in single-page format.
Discuss(174 Comments)
May 7th, 2024 15:19 EDT change timezone

New Forum Posts

Popular Reviews

Controversial News Posts