To read all comments associated with this story, please click here.
Well, it does if you have to save them to main memory (context switches, for instance). Inside the CPU, as you say, it makes no difference.
I should also have noted in my original post that 64 bit architectures vastly speed up computational work involving 64-bit integerss or very precise floating point values. This is really noticeable in scientific applications (physics simulations for instance).
There should be no impact on floating point operations, since the x86 FPU registers are 80 bits wide and is capable of handling the common 64 bit double precision floating point with ease (with the additional 16 bits for overflow). This is why you rarely see any improvement in FP heavy code when moving from x86 - x86-64.
The move from 32 bit to 64 bit doesn't affect floating point.
Net result is no difference.
Not quite true. 64-bit programs use more memory than 32-bit ones. As such, less memory is available for the system to use, more bandwidth is used shuttling the program around in memory, and since less memory is available, less things can be cached, etc.
Actually x86 chips have used larger datapaths under the hood for years. They will write/read combine multiple 32bit accesses together into larger chunks (e.g. 64bit) - so it's moot. The first post is right - on one hand you get more registers, on the other you need to throw more memory around if it contains pointers of any sort.





Member since:
2006-03-23
"1. Words become twice as large. When you have to swap registers around, you have to move twice as much data. This makes the system slow down."
The words are twice as wide but so are the data paths.
Net result is no difference.