On Mon, Nov 12, 2007 at 09:46:57AM -0500, Lennart Sorensen wrote: > They also deprecated MMX and x87 (hence reducing the old crap to carry > around on centext switches), and switched to sse match (which is much > faster and not stack based), and add some new instructions that can help > code in general.
AFAIK SSE is also available in 32-bit mode so that is no reason why x86_64 should be faster. > That almost certainly is much more important than the > register count. As far back as the Pentium Pro the pipeline's out of > order execution had a large register rename file which allowed it to do > speculative execution. It also allowed skipping stack accesses to > memory by simply renaming the old register into an unused spot in the > register file boing by the assumption that stuff put on the stack is > often needed again soon, so rather than putting it in memory, just keep > it in an unused virtual register. As a result the Pentium Pro and most > newer x86 processors actually already perform as if they had more > registers than the architecture does in most cases. Again this is a reason why new 32-bit processors are faster than old 32-bit processors, but not a reason why x86_64 mode should be faster than i386 mode on the same processor. > I am not saying > adding registers wasn't a good idea, but I think people are highly over > estimating their significance. I don't have numbers so I can't really argue, but that is the largest visible difference between the two modes. > I guess a simple way to test is to > convince the compiler that the 64bit mode has the same number of > registers as 32bit mode and then compiling software that way and > comparing the result in 32 and 64bit mode when both have the same > register count. Shouldn't be too hard to do for someone that > understands gcc's code (which is not me). I don't think it would be that easy, but the idea is interesting. > Given the amount of ram in your average desktop is getting close to > requiring a 64bit OS, there is really no point designing anything new > with 32bit operation in mind. People have to switch to 64bit OSs if > they want to be able to use more ram within the next year or so. You said Sparc/Solaris; I don't know the current top-of-line configs but several hundred gigabytes of memory should not present a problem for a really high-end Sun server and as you said most of the userspace is still 32-bit... The kernel of course must be 64-bit, but that's not a problem even if 64-bit mode is significanlty slower since applications do not spend too much time in the kernel (and if they do that's almost certainly a bug). But back to the original issue: x86_64 is _NOT_ faster because it is using 64-bit addressing - quite the contrary, that alone would have made it slower than 32-bit mode. But AMD also did a lot of other modifications that they _could_ have also enabled in 32-bit mode but they simply choose not to, because otherwise they could not have sold their 64-bit processors. Gabor -- --------------------------------------------------------- MTA SZTAKI Computer and Automation Research Institute Hungarian Academy of Sciences --------------------------------------------------------- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]