kpf - Could you elaborate what exactly is the benefit of the extra adress space for the users of AMD-64? (I'm pretty sure they would not care at all of what the benefits are from a programmer's viewpoint).
In a nutshell, with 32 bits under a 32 bit OS the memory limit per process is somewhere around 2Gb, may be 3Gb if some tricks which slow down the OS are used.
Imagine, your 32 bit application needs 5Gb of RAM to do the job. Your options are 1) make your code 64 bit clean and use a 64 bit architecture 2) try to rewrite the program for Intel's PAE extentions, or make it require less memory
Now, 1) is the easiest, 2) is really ugly and often is not even doable.
So, all 64 bits get you is unlimited memory space. Or yeah, and also, under a 64 bit OS 32 bit applications can have full 4Gb instead of just 2Gb. Other advantages are pure fiction. This all may not seem like a lot until you need to run something that can't get enough memory under 32 bits, and you're basically stuck. And SMP and iHT won't bail you out because you're still dealing with 32 bits.
This also means that 64 bits are now a feature that is really only needed on high end. Yet few years down the road some of the consumer applications may need it too (bloated MS Word, anyone ?) With AMD64 the whole setup is so damn attractive to high end users, get a 64 bit OS, run your database in 64 bits, and run everything else in 32. Or run your favorite monstrous application in 64 bit, and the rest in 32 bits. Can't beat this offer ...