Really? The integrated memory controller helps none? If you're
Uhh, last I checked the integrated memory controller worked just fine
in 32-bit mode as well as 64-bit mode! :>
Perhaps I should have made the above a bit more clear, I was talking
about 32-bit vs. 64-bit code on the Athlon64/Opteron, and NOT about
32-bit code on the AthlonXP vs. 64-bit code on the Athlon64/Opteron.
That's a rather broad statement.
Fairly broad, hence the reason why I said "Generally speaking". There
are situations where 64-bit integers are beneficial, 99 times out of
100 that is not the case.
Or want to avoid floats. Or have arrays of logicals, or...
Logic simulation is one place that the-more-the-merrier. Crypto
is another, just off the top of my head. There are many reasons
Sure, there are plenty of applications that will benefit from 64-bit
integers, but as mentioned above, 99 times out of 100 you're probably
going to be better off using 32-bit ints.
for 64-bit processors, though as you've said the address space is
the most obvious one. Note that now that real memory space is
getting close to the limits of virtual, more virtual is goodness
too.
For sure! I still see some of the trade-rags saying that 64-bit chips
are only helpful for people who want more than 4GB of physical memory!
Not so at all! Even with only 2GB of physical memory your system
starts to become rather constrained by the limits of a 32-bit chip.
Depends on your definition of "performance-critical". I'd say
that were it performance critical, it *would* be done in 64-bit
code, if possible. It's not like 64-bit processors were invented
yesterday and no one has a use for them until the next millennia.
What I meant by the above is that the most common uses for 64-bit
variables in the "standard" applications that most users run, ie
office suites, word processors, games, etc., are for "extra"
variables. Things like keeping track of time and date, or some data
pointers in the file system or similar uses. A lot of the real
number-crunching is done using 32-bit ints. Of course, a certain part
of this is a chicken and egg kind of thing. With a 32-bit chip (by
far the most common type of x86 chip) it might be worthwhile doing the
number crunching with 32-bit code, hence 64-bit chips wouldn't see
much benefit. On the other, 64-bit chips COULD do things a faster if
the code were rewritten to handle the number crunching using 64-bit
ints.
Multiplies are a bad example. How about an add? shift?
Logical? THe only thing worse than a multiply is a divide, and
that has nothing to do with AMD or anyone else. Indeed the Intel
I just mentioned the multiply because that was the only instruction
that I had all the numbers for off-hand. I seem to recall that most
of the simple instructions like those you listed have the same
throughput in 64-bit mode vs. 32-bit mode on the Opteron, but some
(most? all?) have higher latency.
P4 is *very* bad at integer multiplies, even 32 bit ones.
My understanding is that Intel has "fixed" this problem with the
Prescott core for the P4.
Obviously. When was the last time you multiplied addresses
though. ;-)
Hehe, true enough! Might be able to get some really nifty hack if you
did multiply some addresses... if you could get it to do anything
remotely useful! :>