Oh, and as for the benefits, 64 bit has a ton of other benefits right now actually. Everything is faster on 64 bit as calculating anything over 4GB or a number over 4,096,000,000 has to be a calculated with an algoryth instead of a striaght forward calculation. To break it down, say you want to add 2 numbers over 4 billion. When you do it in 32 bit it concatinates smaller numbers together to create the visual expression. In other words in simple forms it would be like taking 2 strings and concatinating them together like "5,000,000," and "000". This is not exactly how it calculates but for people to understand it, that is essentially how it works. It breaks numbers down into pieces then does calculations with them separately with a certain algorythm, then puts them back together to form a number that works. think about how many times a number is over 4 billion in anything that has to do with computers, like games for instance. You will notice a HUGE difference in Half Life 2 64 as apposed to 32. To put it in another way, anything over 4 billion I have to use a variable called currency, which is exactly that, a concatinated set of numbers. Anything under 4 billion I can use the native 32 bit DWORD which is a native integer. Now consider this: How many of you have drives over 4GB? LOL, I know its a joke right? Well guess what, the native addressible space in memory is only 4GB. So every time you access something on a drive that is over 4GB the kernel uses a play on number much like what I explained above. Yes in real life it is very complicated and out side the scope of this post or even forum, but nevertheless, it is a HUGE difference. Now remember I mentioned doing calculations over 4 billion? Take this for instance:
Add two numbers of 5,000,000,000 to equal 10,000,000,000. Then write a program in 32 bit C or C++ and compile. Then do the same on a 64 bit box with a 64 bit compiler.
Then, here's the trick:
Decompile both into assembly language. For the native 64 bit code, lets say it gives 20 assembly instructions.
Now here's the noticable part: Look at how many lines of code are in the 32 bit version. You will have about 5 times more instructions. Yes, about 100 instructions just to calculate two number because it has to "FAKE" the calculation and break it down in an algorythm to add it. Now imagine running a program...
Further, on 32 bit, you can allow for better memory managament, large pagefiles over 4GB, and a few other optimizations like large memory support with Intel's "Physical Address Translation" or PAE. Vista happens to do this automatically for you but XP you had to set the /PAE switch in the boot.ini file.