[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Intel Core2Duo (T7400)

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.


     MTA SZTAKI Computer and Automation Research Institute
                Hungarian Academy of Sciences

Reply to: