594 is an exceptional overclock on a chip witha 500mhz factory default speed. My Sapphire 9600XT won't go past 540Mhz for the GPU. How fast you can run the memory depends on the speed of the memory chips, are yours 3.3 nanoseconds or 2.8? Look at your memory chips on the card. If the suffix on the chip code number is something like -33 then they're 3.3ns, if -28 then 2.8ns. Mine has 3.3ns chips made by Hynix. To figure out the mhz rating on the memory, divide 1000 by the nanosecond rating on the chip, for instance my 3.3ns Hynix memory's mhz rating is 1000/3.3 = 303 Mhz. Now, my memory will run @ 330.75 mhz but will not go beyond that without generating artifacts. That's 10% beyond the rated speed of the chip, and 10% beyond is pretty normal limit accross the board on clock speeds. You could get more mhz out of the memory by increasing the wait states in the memory timing settings, which you CAN do with ATITOOL, BUT its sort of like spinning your wheels increasing wait states to up the Mhz, because your're adding delays while you increase mhz. Only way to squeeze more out of your memory would be to play around with ATITOOL and reduce each memory timing wait state setting by one click then let ATITOOL scan for artifacts for at least 5 minutes. If it throws Delta's while scanning for artifacts in ATITOOL (watch the text where it says Delta of 0 in 0 ) then it is very close to generating artifacts, i.e. errors. You want the lowest memory timing wait states that lets it not throw any Delta's in while scanning for artifacts. When you first launch the artifact scan, it may show Delta's being thrown for the first second or so, that is not a problem, as long as it clears back to Delta of 0 in 0 pixels immediately and stays 0 of 0 the rest of the time it runs the scan. At least that is how I test with ATITOOL.
But consider yourself lucky to be able to do 594mhz with the GPU.
For memory timings I am using w/ memory @ 324mhz, see this post:
http://forums.techpowerup.com/showthread.php?t=1662