Right, I’ve finally got round to starting my over-clocking guide for A64 CPUs as a lot of people are getting Opterons & want to overclock them. So let’s begin.... HTT - What is it? Basically HTT is your memory controller's communication speed & stands for: HyperTransport Bus Frequency. The memory controller is integrated into A64 CPUS. The HTT is basically the FSB & some people will argue that calling it FSB is wrong so for this guide we will stick with calling it the HTT but will also refer to it as the FSB. A stock A64 processor has an HTT/FSB of 200, we need to increase this if we want to overclock. CPU Multiplier. Basically this value multiplies the CPU bus speed (HTT/FSB) by a set amount to get the final CPU speed. e.g. 200x10= 2000 (2Ghz) or an Athlon A64 3200. Really, all Venice core CPUs are identical, regardless of their price & speed. The only difference is their multiplier. The problem is that apart from the FX-** series all A64 CPUs have their multipliers locked at there highest (default) value, they cannot be increased, so you can’t buy an Athlon 3000 & turn it into a 3200 by increasing the multiplier. However all A64 CPUs can have their multiplier lowered. A lot of people like to lower their multiplier to get a better HTT. This does work & a system that is set at 8x250=2000 will be slightly faster than a system at 10x200=2000. However, don’t use a fraction multiplier (eg. 9.5) the memory controller doesn’t like it & it may cause issues. For the purpose of this guide we will leave the multiplier at its default level. LTD/HTT LDT (Lightning Data Transport) is kind of like the CPU multiplier but it multiplies the HTT to get the final Hypertransport frequency. The LDT is the HTT Multiplier & for Socket 939 motherboards the default value is x5. This gives you an overall HTT frequency of 1000 (200 x 5 = 1000) with socket 745 motherboards the LTD is x4 which gives it a overall frequency of 800. So if we were to overclock our CPU HTT to 250 FSB the hypertransport frequency would be at 1250. This is much too high & will probably result in an unstable system. So we drop the LDT multiplier down to x4 to bring down the frequency to 1000 again (250 x 4 = 1000). So 1000 (for socket 939 motherboards) is what we are trying to aim for. But if you were to use an HTT of 275 the frequency would be either 1100 (x4) or 825 (x3). Which one do we go for as neither are near 1000? Well it’s been proven that over-clocking the hypertransport frequency bus doesn’t increase performance & only makes a system unstable. And under-clocking the bus does not loose you performance, running it at 400 instead of 1000 only leads to about 0.1% drop in performance. So always go lower than 1000 rather than higher. Memory. Your memory speed/frequency is tied in with the CPU HTT/FSB. At default settings your memory will run at a 1:1 ratio of your CPU speed. What’s this mean? Well if your CPU is set at 200 HTT (default) then your memory is also at 200 (DDR400) or 200:200 (1:1). If we increase the HTT/FSB of the CPU to 220 then the memory also increases to 220 (DDR440). This is where a lot of people start to hit problems. Standard cheap memory doesn’t like to be over-clocked, & soon the system becomes unstable when we are trying to overclock the CPU. Most people believe the CPU is unstable but in fact it could well be the memory being pushed too high. So how can we overclock the CPU & not the memory? Well we need to use a thing in the bios called ‘Dividers’ a divider does essentially that, it divides the memory frequency by a set value to a ratio of the CPU HTT/FSB. For example: If we have a CPU that can easily do 240 FSB but the memory is just plain DDR400 & wont overclock much we need to use a 5/6 divider, this gives a memory frequency of 200; back to DDR400 while the CPU is at 240. Confused? Well it works like this: We take 240 (FSB) & divide by 6 this gives 40 (240/6=40) then we multiply it by 5 to get 200 (40x5=200). Most motherboards have a selection of dividers; some show fractions others show RAM speed. E.g. 200 = 1:1 (memory & CPU speed are the same) 166 = 5:6 (memory runs at 166 if CPU is set at 200, memory speed increases as CPU FSB increases) 150 = 3:4 (memory runs at 150 if CPU is set at 200) 133 = 2:3 (memory runs at 133 if CPU is set at 200) 100 = 1:2 (memory runs at 100 if CPU is set at 200) One thing to do to get a better overclock is to run the memory at 1:1 with the CPU; however you need to get good memory to do this. If you want to keep the memory you have but over clock it you can always use looser memory timings or ‘Latencies’ Memory timings can be broken in to 4 categories and you some times to a set of 4 numbers that look like this: 2.5 / 3 / 3 / 6. Each number is a specific timing which can be altered to improve speed or stability. The timings are as follows: CAS Latency Control (tCL) 2.5 / 3 / 3 / 6 This lantency is the delay in clock cycles between the assertion of the CAS signal and the availability of the data from the target memory cell. The timing usually comes in three speeds: 2, 2.5 & 3 where 2 is the fastest & found in expensive memory & 3 is the slowest & is found in cheaper memory. The lower the timing the better the performance. RAS# to CAS# Delay (tRCD) 2.5 / 3 / 3 / 6 This number reflects the appropriate delay for your memory module between the RAS and CAS signals. Normally this value is between 2 & 4. Where 2 is used with expensive memory & 4 in cheaper memory. Row Precharge Timing(tRP) 2.5 / 3 / 3 / 6. This timing specifies the minimum amount of time between successive activate commands to the same DDR device. The shorter the delay, the faster the next bank can be activated for read or write operations. Again, the smaller the number the better the performance. Normally this value can range from 2 to 4. Where 2 is used with expensive memory & 4 in cheaper memory. Min RAS# Active Timing(tRAS) 2.5 / 3 / 3 / 6 This latency is the time when a row is activated until the time the same row can be deactivated. If the tRAS period is too long, it can reduce performance by unnecessarily delaying the deactivation of active rows. Normally this value is 6 or 7 where lower is better. Good memory tends to use 5 or 6 & cheaper memory 7 or 8 Command Per Clock(CPC) This can also be known as ‘Command Rate’ & comes in two values 1T & 2T This timing feature allows you to select the delay between the assertion of the Chip Select signal till the time the memory controller starts sending commands to the memory bank. The lower the value, the sooner the memory controller can send commands out to the activated memory bank. Using 1T (or CPC enabled on DFI boards) will yield a much better performance than 2T. However, 2T is much more stable than 1T & when over clocking so it may be prudent to use 2T for the best result. A problem that a lot of people get is that when using a memory divider the memory controller is slightly strained & using 1T becomes difficult so using 2T becomes necessary. But as a rule of thumb if you can run at 1T use 1T as it’s a lot better. Ok, that’s the memory timings overview done with, as mentioned you normally find memory that has lower timings is better & more expensive, but this is not strictly true – let me explain…. If you want normal speed DDR400 memory & see one set at 2/2/2/5 timings you will normally find that this is a lot more than DDR400 memory running at 3/4/4/8. Also the lower timing modules usually enable you to overclock the memory by quite a lot. Memory that does 2/2/2/5 at 200Mhz (DDR400 ) might probably do 2.5/3/3/7 at 250Mhz (DDR500) .The cheaper higher latency DDR400 will only let you overclock it by a little. However, some expensive memory has slow latencies ( 3/4/4/8 ) but have very high clock speeds, maybe 250Mhz (DDR500 ) to 300Mhz (DDR600 ). The slower latencies enable the memory to run incredibly fast thus making it possible to run at 1:1 next to the CPU HTT/FSB speed. So which one do you get, low (good) latencies but slower memory (DDR400 @ 2/2/2/5) or fast memory at slow latencies (DDR500 @ 2.5/3/3/7)? Well really in an ideal world you want low latencies & fast memory but this isn’t really possible or very expensive. A lot of people argue that memory speed isn’t really that important & latencies are what to go for. But in all benchmark tests that I’ve seen, memory running at DDR500 (250Mhz) & 2.5/3/3/6 wins every time over DDR400 (200Mhz) at 2/2/2/5. So I would go for high clock speeds. If you are unsure why your PC is locking up or crashing then burn Memtest86+ on to a CD & run if for about 1 hour. If it reports any errors then your memory is not stable & you should think about changing your latencies, voltage or speed. Voltages. When over clocking your CPU there are three voltages to take into consideration, these are: CPU Voltage. RAM Voltage. Chipset voltage. CPU Voltage The most important of the three is the CPU voltage. To get the best overclock it is more than likely you need to raise the CPU voltage. The default CPU voltage for an A64 CPU is 1.40v (for newer CPUs) however check what your CPU is to find out what vcore your CPU should run at. There are certain rules to follow when adjusting the CPU voltage. Firstly, never increase the voltage by too much. How much is too much? Well most people say that for Venice/San Diego core CPUs the most you should go is 1.6v on air, or 1.65v with good air cooling. Just because your CPU is running quite cool with 1.65v doesn’t mean that 1.7v will be safe, it will probably lead to the CPU failing prematurely or it failing completely. If you are using water cooling then 1.7v up to 1.75v can be used. The problem with increasing the CPU voltage is it increases the amount of heat that the CPU produces. So you may end up in a ‘Catch 22’ situation, where you need to increase the CPU voltage to improve stability but by doing so makes your CPU overheat & thus cause instability. There’s a very fine line that you need to go down to get what’s right for your system. Max Voltages for certain CPUs (on Air) Venice/San Diego/X2/Wincester = 1.65v Newcastle/Clawhammer = 1.75v Maximum ‘safe’ temp = 55C (under full load) RAM Voltage If you are increasing your RAM speed then you may need to adjust your RAM voltages. Normal DDR RAM has a voltage of 2.5v or 2.6v but it depends highly on your type of memory. If you overclock your memory & are experiencing instability then increasing the DDR voltage may help. Try one step at a time, eg. 2.5v to 2.6v. Going too high may be unnecessary & cause the RAM module to overheat. If you have generic RAM then 2.7v should be the maximum voltage. If you are using more expensive RAM with heatsinks then 2.8v should be ok. Some modules can go higher but check online with the manufacture to make sure. Chipset Voltage This is the voltage that is supplied to the motherboard chipset. If you are overclocking your CPU then increasing this a little may help with stability. But this should be the last voltage to change as its less critical the CPU & RAM voltages. Standard A64 motherboards have a chipset voltage of 1.5v. You should only need to up the voltage as high as 1.7v. For those running with a passive heatsink, check it by touching the heatsink to see if it’s running too hot if you increased the voltage. If it’s almost too hot to touch then you should think about lowering the voltage back down. Overclocking your CPU Ok, now we get to the good bit – Overclocking!!! When overclocking the CPU we want to eliminate other factors that may cause instability. Firstly, manually set the CPU multiplier to the default value for your processor. Eg. Venice A64 3200 = 10. Don’t leave it on ‘Auto’ as some BIOS’s have a tendency to lower the multiplier if the HTT/FSB is increased. Next, Manually set the LTD multiplier to ‘3x’ instead of ‘Auto’ or ‘5x’. Don’t worry about the finally value being less then 1000 as there is still enough bandwidth available to transfer data between PC components without bottlenecking problems. Next, use a RAM divider of 1:2 or 100Mhz (Default 200Mhz) to set the RAM at half the speed of the CPU HTT/FSB. By doing this elimates the RAM as a potential instability problem. Even if you manage to get your CPU to 300HTT the ram will be at a nice low speed of 150Mhz. Finally, Increasing your Vcore. Now this is extremely difficult to just give a value & be done with it as everyone’s PC is different. Firstly some people have good cooling so they could use a larger voltage; others have different CPUs that can have slightly more voltage. So, to be safe I’m going to be conservative with the values as I don’t want to wreck anyone’s PC. If you have a Venice, Winchester, X2 or San Diego core (90nm) set your voltage to 1.50v to 1.55v. If you have an old A64 CPU with Newcastle or Clawhammer cores you can set the voltage a little higher: 1.6v to 1.65v. However, when setting voltages its always good practice to check your CPU temps. Never go above 60C underload as this is too hot. Its good practice to aim lower the 55C. Once set have all the above parameters set its time to increase the HTT/FSB. Start in steps of 10Mhz (15Mhz if you have the newer Socket 939 Opterons), so your HTT/FSB should be at 210Mhz. Boot into Windows run ‘Prime95’. Select ‘torture test’ under ‘options’ & ‘In Place Large FFTs’ Set Prime going & leave it for at least 15 minutes. Remember – Check your CPU temperature; make sure it’s not going past the ‘safe zone’ of 55C. If no errors are found, reboot & increase the HTT/FBS by another 10Mhz. Keep this up until Prime95 fails or Windows crashes. Go back into the bios & reduce the HTT/FSB by 3Mhz & test again, repeat until the PC is stable. It may be worth while to test with Prime95 for a minimum of 2 hours just to see if the PC is ‘fully’ stable at this point. Best run it over night to be sure. (Remember to always keep an eye on the temperatures) When you have hit a wall & you cannot raise the HTT/FSB any higher, you can try increasing the Vcore slightly. Remember, don’t go higher than the values given earlier & always check your CPU temperature. When you get to the stage where you can’t raise the Vcore, FSB any more or your temperatures are too high then you have reached your CPU upper limit, make a note of the settings & its time to test the RAM. Overclocking your RAM As with your CPU we want to overclock the RAM but take away other factors that may cause instability. Firstly, leave the LTD multiplier the same as for the CPU overclock, at x3. Next manually set the CPU multiplier quite lower, say x6. This will underclock the CPU thus making it run cooler & make it less stressed. Finally, you want to set the memory divider back to 1:1 or 200Mhz (default). It may be worth while to increase the memory voltage by one notch to improve stability when overclocking. Ok, its time to overclock your ram. Increase the HTT/FSB by 10Mhz, this also increases the RAM by 10Mhz, so if you are using DDR400 memory you now have DDR420 (210Mhz). Test this by using MemTest86 for about 10 minutes to see if you get an error. (Use test No.5 for maximum burn in). If all seems ok, load Windows & try out 3DMark or a game & if all is stable increase your RAM again by 10Mhz. Repeat this procedure until you get an error. When you do, lower the HTT/FSB by 3 or 4Mhz & test again. At this point you could try increase the RAM voltage a fraction more or adjust your RAM timings. All RAM timings have different effects for different modules. Somebody with the same memory as yourself may get a better overclock with the same timings as you so don’t expect to get the same overclock as someone else. Here’s a short list of timing starting from maximum performance & finishing with less performance but a better over clock. 2 / 2 / 2 / 5 (usually at 200Mhz) 2 / 3 / 2 / 5 2 / 3 / 3 / 6 2.5 / 3 / 3 / 7 3 / 4 / 4 / 8 (can get 250Mhz + with good RAM) There are hundreds of other timings so mess about & see which one suits you. Also try using 2T instead of 1T this may produce better results. Once all parameters have been tried you should now have the maximum overclock for your RAM. Now that we have the maximum overclock for both the CPU & RAM its time to combine both values. Reset the CPU multiplier back to its default value. Now adjust the memory divider to suit your overclock. Eg. Max CPU speed = 265, Max RAM speed = 230 so this requires a memory divider of 5:6 or 166. This only gives a memory speed of 220 but it’s not that much of a loss. So, that more or less wraps it up. Have a go, make sure you don’t use too much voltage & always keep an eye on the temperatures. Goodluck. Useful Programs Below are some great utilities that help you test & check your PC when you overclock it. Stability Checking Prime95. Great little program that stresses your CPU to the limit. If your PC isn’t stable it generates an error. Used by overclockers to check if their system is stable. Memtest 86. Checks your memory for errors. Completely independent from Windows & your CPU. Burn it onto a CD & boot from it. It will run automatically & check the motherboard memory for errors. Sandra SiSoftware. Superb all round bench marking & stress test package. With this you can check system settings & it gives lists of all PC components. It can monitor system temperatures & benchmark the CPU & memory. Widely used by the overclocking community. SuperPI. Nice little program that benchmarks your system. The quicker the time the better your PC is. Run 32M to check system stability, if your PC completes the task then its pretty stable. A modified version of this program can be found here which adds fractions of a second to the timing. This version is mainly used by the overclocking community. Monitoring Utilities CPU-Z. Simple yet powerful program that displays CPU speeds, voltages, memory timings & other useful things. Everest One of, if not, the best all round system information utilities on the market. This program can display system temperatures, voltages, fan speeds, hardware information & driver properties. It also has benchmark testing features. Unfortunately the freeware version was discontinued at the end of last year. However trial versions of the main programs are available. SpeedFan. Can monitor system temps & voltages. Can also display real time temperature chart. To be added……. ‘UnderVolting’ guide.