In case you were getting excited by the whole thing, this
should bring you back to earth. As the results from this benchmark show, running
the same program in 64-bit mode is not necessarily going to net you a
performance increase if the program itself does not take advantage of the
benefits that 64-bit operations or the Athlon 64's extra registers offer.
Indeed, the additional complexities of 64-bit memory operations may even slow
things down.
The STREAMS benchmark is designed to test the
'sustainable' memory bandwidth of a given system by providing it with a steady
stream of large operations which exceed the size of the processor's available
cache memory. This simulates the efficiency and performance of the system under
sustained, heavy workloads while steering clear of dubious 'peak memory
bandwidth' numbers which are dependent on the processor having the required data
available in its cache memory.
Since the STREAMS benchmark is sending the same set of
operations from the memory to the processor in both the 32-bit and 64-bit bit
benchmarks, the performance should stay essentially the same (unless perhaps you
installed more than 4GB of memory on the 64-bit mode test).
What we saw was that using 64-bit memory addressing, or
especially converting the memory addressing of a 32-bit executable to work with
the 64-bit version of XP, imposed a slight memory bandwidth hit. While not big
enough to be an issue, it proves what we were already seeing from the previous
benchmark results: 32-bit code runs slightly slower in a 64-bit environment than
it does in its native 32-bit habitat.
On a more positive note, the results from this memory
bandwidth test indicate that any gains made in 64-bit mode on the other tests
are specifically the result of the processor using the extra registers and
headroom available to it. Since we know that memory bandwidth is the same or
slightly reduced in 64-bit mode, any gains in performance must come from within
the processor itself.