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 MHz | 17368 | 0% |
105 MHz | 725 MHz | 761 MHz | 18266 | 5.2% |
110 MHz | 725 MHz | 794 MHz | 19074 | 9.8% |
115 MHz | 725 MHz | 834 MHz | 19873 | 14.4% |
GeForce 8800 GT |
100 MHz | 660 MHz | 660 MHz | 28916 | 0.0% |
105 MHz | 660 MHz | 660 MHz | 28912 | 0.0% |
110 MHz | 660 MHz | 660 MHz | 28908 | 0.0% |
115 MHz | 660 MHz | 660 MHz | 28913 | 0.0% |