What are the fundamental differences between 32-bit software and 64-bit software?
From the point of view of the average user or average programmer, there really is no fundamental difference between 32-bit and 64-bit, other than the amount of memory that can be accessed by a single process. (If you are someone who develops operating system kernels or programming-language compilers, then there are major differences, but you wouldn’t be asking the question here if that’s who you are.) On Intel-based architectures, the 64-bit instruction set is an improvement over the 32-bit instruction set, so 64-bit code may be faster than the equivalent 32-bit code, but the code tends to use more memory. So whether one is “better” than the other does not have a clear answer. However, it is pretty clear that computer users will be using more and more RAM, and RAM prices will continue to drop. so 64-bit software may become the norm within a few years. However, software developers will maintain compatibility for 32-bit operating systems for as long as it is cost-effective.
For chess engines that use bitboards (http://en.wikipedia.org/wiki/Bit…) to represent the state of a game, 64-bit CPUs offer a substantial performance gain over their 32-bit counterparts. This is because a single 64-bit word manipulation operation on a 64-bit CPU usually translates to multiple instructions on a 32-bit CPU.