To jest dokładny poradnik dotyczący modyfikacji Biosu w kartach 5900Xt,5900,5900Ultra,5950Ultra. Został on skopiowany z forum Guru3D
Basic FX59xxx bios changes
________________________________________
Guide to Modifying bios of Nvidia FX59xxx Series Graphics Cards.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This Guide is written in a way that should allow any layman with no bios software design experience to make selected changes to a bios file, which can appreciably improve the performance of a 59xxx series graphics card.
I will start with a simple cautionary warning to all who think that bios modding appears very straight forward and thus holds no threat to them.
The major, but least understood, problem with modifying bios's and flashing cards, is that whatever defaults you flash to, may, in extreme cases, be too much and thus not allow your card to post during your computer's bootup. It may not in fact be a bad bios, just a bad flash of a bios to your card which stops it posting. And if this does happen, then unfortunately for you, to recover the situation, only a professional with the right tools may be able to erase and reflash your card to a working state.
Just a small warning then to everybody wanting to play about with bios modding -----> Do something wrong, doesn't have to be more than a wrong binary digit in wrong place or a bad flash and you could be looking for that professional bios fixer or another card.
So be careful out there !!!
The FX5900nu, FX5900u and FX5950u cards are essentially the same design and therefore bios's are generally interchangeable, and likewise any modified versions of each bios. The new and more unique FX5900XT type (including SE/LX/SP etc) however is a somewhat different and cheaper design of card, and its bios, although interchangeable with other XT's, is not in fact useable with any of the original 59xx cards. When proposing bios changes it is therefore best to consider them separately.
However a number of the performance inducing changes included in the guide, derive from interchanging some of the beneficial parameters from XT type bios's with those of higher card bios's, and vice versa.
It is suggested that the Ray Adams X-Bios Editor v1.0.3.520 be used for all bios changes as it includes the best free Hex Editor, and most importantly it will add the correct CRC bit to ensure a successful flash. And for flashing, it is also suggested that nvflash.exe v4.41 be used. It is a flashing program I have used with complete success literally hundreds of times.
1. FX5900nu, FX5900u and 5950u.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(a). SPEEDS.
~~~~~~~~~~~~
For the purposes of bios speed changes, neither the ASUS5900u or 5950u bios's are considered applicable as GPU and Memory speed table structures are totally different from all others bios's.
The first thing about GPU and Memory speeds is to identify how to find and read them. All speeds are stored as 8 bit binary words which are derived from a hex conversion of the speed required as follows,
A typical stock speed setup of 300/400/850 means that,
2D speed is 300MHz.
3D speed is 400MHz.
Memory speed is 850MHz (Actually 425MHz, only stated as 850 as it is DDR Memory).
In simplistic terms, the binary word is derived by multiplying the speed by 100, converting to Hex, transposing the last and first two digits of Hex value and adding four zero's to the end.
2D speed = 300x100 = 30000 = 7530 Hex = 30750000 bin word (or 30 75 00 00)
3D speed = 400x100 = 40000 = 9C40 Hex = 409C0000 bin word (or 40 9C 00 00)
Mem speed = 425x100 = 42500 = A604 Hex = 04A60000 bin word (or 04 A6 00 00)
So to find any GPU or Memory speed in a bios just look for the 8 bit binary word that represents it, ie for 300MHz look for "30 75 00 00", and change it to any other 8 bit binary word. It is important that you look for the 8 bit binary value rather than just the front 4 bit word, as that particular 4 bit sequence may exist in a number of places in the bios file as programming code, which, if you change, could cause serious problems.
The GPU and Memory speed tables are located near the end of the bios file and are structured as three closely positioned tables starting with 2D, then Throttling and finally 3D. Each table consists of nine 8 bit binary words, the first bin word being for GPU speed followed by eight 8 bit words for Memory speed. Throttling is set at 375MHz regardless of GPU 2D/3D speeds, And Memory speed is set the same for all Tables.
Using the above example of 300/400/850 will show,
2D Table (300/850),
~~~~~~~~~~~~~~~~~~~
30 75 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00
Throttling Table (375/850),
~~~~~~~~~~~~~~~~~~~~~~~~~~~
7C 92 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00
3D Table (400/850),
~~~~~~~~~~~~~~~~~~~
40 9C 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00 04 A6 00 00 04 A6 00 00 04 A6 00 00
04 A6 00 00
The Throttling function is only applicable to 3D Mode of operation and can be effectively disabled if desired by setting speed to same as 3D. This is what is normally done for some FX5700u bios's I have checked. Also remember to change the GPU throttling volts to cater for whatever speed you have set it at.
Another possible way of removing throttling however is to use a ASUS5900u or 5950u bios as they operate in 3D all the time and feedback has indicated they have no throttling mode ?
(B). GPU VOLTS.
~~~~~~~~~~~~~~~
Closely located to the three speed tables, is another Table of seven 2 Bit values for controlling GPU Volts, structured as follows,
07 78 04 82 05 8C 06
The purpose of this table is to set the GPU volts during 2D, Throttling and 3D modes. In simple terms, the first two bit value represents the max number of table options, and the follow on three 4 bit words show the actual options that are set for this bios. However note that the first two bits of each 4 bit word is only an indicator, and has no functional purpose other than it indicates the volts expected (found by, converting to decimal/100). The last two bits of each 4 bit word are the important ones, because they set the GPU volts for the various modes of the card.
Using above example shows,
(hex 78)/100 or 120/100 = 1.2 = 04 option.
(hex 82)/100 or 130/100 = 1.3 = 05 option.
(hex 8C)/100 or 140/100 = 1.4 = 06 option.
This shows that GPU volts in 2D as set by option 04 is 1.2V, and in Throttling mode as set by option 05 is 1.3V and finally 3D as set by option 06 is 1.4V. You can however interchange any of the 4 bit values, and thus set 2D GPU volts at 1.4V if desired.
There is a seventh option, indicated by the "07" at the start of the table, which is needed by a 5950u, where it sets the GPU volts at 1.5V in order that it can run at higher speeds. And when present is normally represented by "96 07" in the 3D position of the table. And, although not normally used in a 5900nu or 5900u bios, there is no reason why either of these can't have the GPU volts set to give the same 1.5v of a 5950u.
So a 5900nu, 5900u or 5950u bios can be changed to make GPU volts in 2D, Throttling and 3D modes anything from 1.2V to 1.5V.
©. MEMORY LATENCIES.
~~~~~~~~~~~~~~~~~~~~~~
Almost as an extension to each of the three speed tables, and for the sake of simplicity, is a 28 bit word for controlling memory timings. A typical binary sequence in a 5900nu bios is "040205150017000E000707030403", whereas in a 5950u it is "04030517001A000F000808040503". Changing the binary sequence to "040204110013000B000606030404", which is typical of the tighter timing control of XT type bios's, can give good performance improvement.
The change must be done to each of the binary sequences which run concurrent to each of the three speed tables.
However, a byproduct of the tighter timings will be a sharp reduction in the ability to overclock memory speeds. Likely in the region of 5%, for good stability.
Nearer the end of the bios file is another table with the basic memory latencies, made up of eight 8 bit binary words. Standard values set for a 5900nu are "07 00 0F 43" and for both 5900u and 5950u are "07 03 0F 43". And hard trials have shown that the optimum for improved performance with good stability is got by reducing the 43 to 40. The change must be made to each of the eight binary words in the table. Some extra performance benefit can also be gained from changing any "07 03" sequence to "07 00". Which would now make the final latency sequence into "07 00 0F 40".
2. FX5900XT/SE/LE/LX/SP etc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(a). SPEEDS.
~~~~~~~~~~~~
Changing speeds in a XT types bios is exactly the same as above for 5900nu, 5900u and 5950u bios's.
(B). GPU VOLTS.
~~~~~~~~~~~~~~~
Closely located to the three speed tables, is the seven 2 Bit binary Table for controlling GPU Volts in a typical XT bios. It is structured as follows,
03 78 01 82 02 8C 03
And like the table at 1(B) above, the purpose of this table is also to set the GPU volts during 2D, Throttling and 3D modes. In simple terms, the first two bit value represents the max number of table options, and the follow on three 4 bit words show the actual options that are set for this bios. However note that the first two bits of each 4 bit word is only an indicator, and has no functional purpose other than it indicates the volts expected (found by, converting to decimal/100). The last two bits of each 4 bit word are the important ones, because they set the GPU volts for the various modes of the card.
Using above example shows,
(hex 78)/100 or 120/100 = 1.2 = 01 option.
(hex 82)/100 or 130/100 = 1.3 = 02 option.
(hex 8C)/100 or 140/100 = 1.4 = 03 option.
This shows that GPU volts in 2D as set by option 01 is 1.2V, and in Throttling mode as set by option 02 is 1.3V and finally 3D as set by option 03 is 1.4V. You can however interchange any of the 4 bit values, and thus set 2D GPU volts at 1.4V if desired.
Other than some manufacturers initial entry XT cards which were based on 5900nu's, there is no direct readaccross to the GPU 1.5V option of a 5950u. If the volts control table starts with "07" you have the 5950u 1.5V option, and if it starts with "03" you haven't.
However a XT type bios can still be changed to make GPU volts in 2D, Throttling and 3D modes anything from 1.2V to 1.4V.
©. MEMORY LATENCIES.
~~~~~~~~~~~~~~~~~~~~~~
Almost as an extension to each of the three speed tables, and for the sake of simplicity, is a 28 bit word for controlling memory timings. A typical binary sequence in a 5900XT bios is "040205110013000B000606030404". Changing the binary sequence to "0301040C000F0009000505020303" has shown to give some performance improvement. However a caution to note; this particular change has only been proven on cards with memory spec of Prolink 5900XT GL.
And if applicable, the change must be done to each of the binary sequences which run concurrent to each of the three speed tables. However, a byproduct of the tighter timings will be a sharp reduction in the ability to overclock memory speeds. Likely in the region of 5%, for good stability.
Changing the basic memory latencies in a XT type bios is exactly the same as above for 5900nu, 5900u and 5950u bios's. The only difference you will encounter is that a XT bios is normally set at a very tight value of "07 03 0F 03". So in this case you will change the last "03" up to "40", for each of the eight binary words in the table. This will give much better memory overclocking and performance. Some extra performance benefit can also be gained with some XT cards from changing the "07 03" sequence to "07 00". Which would now make the final latency sequence into "07 00 0F 40".
NOTE:
This procedure only covers the simple basics of what can be changed easily in a FX59xxx bios and not everything that is possible !
@ jimmor v2.1b