Windows Reaches 64-Bits, For OEMs
thatrez writes: "Microsoft 's Windows Advanced Server, Limited Edition, is now
available for computers based on Intel's 64-bit Itanium chip. The
Itanium chip supports greater amounts of system memory and offers
stronger floating-point, or mathematical, capabilities than current
32-bit desktop processors. The extra memory support and the
floating-point capabilities increase the performance of Web hosting,
data warehousing and other applications." Now available in this case means that certain OEMs will soon be selling systems loaded with 64-bit Advanced Server, and later other manufacturers will join in. 64-bit versions of XP are expected sometime next year as well.
This release will not work on AMD SledgeHammer. This one is particularly for the IA64 instruction set, not IA32 or x86-64. The standard Windows 2000 and Windows XP will work just fine on SledgeHammer, if you want to waste all that AMD goodness on a 32-bit Microsoft OS.
Microsoft is also considering an x86-64 port of Windows XP, but they have not announced their decision yet.
Even Slashdot wants to hide some things
My question is how much of an advantage does software not specifically compiled for 64bit gain?
None. In fact, they get slower. Check out this article (link pilfered from poster above).
MS's (correct) mantra about it being all about the apps is gonna bite 'em in the ass on this one. Until SQL server, IIS, and the rest of the back office stuff is also native 64 bit (along with all thier dev tools) it ain't gonna be anything but an expensive, slow box.
I've read the manuals, and I've talked to a number of CPU architects and compiler writers. They have no trouble believing how hard it is to get good performance out of the IA64 architecture.
The fundamental problem is that IA64 is an in-order design. Your code hums along, does a load from memory, misses in the cache --- and everything stops until that value comes in. In an out-of-order machine (every other high performance CPU since the Pentium Pro in 1995), while it's waiting for that value to come in from memory, it will be executing other instructions that technically are supposed to happen AFTER the load, but don't actually depend on its value.
The IA64 was supposed to get around this problem by providing speculative loads with alias masks and other tricks so the compiler could hoist the load and perform it super-early, long before the value was needed, so any delay due to cache miss would not impact execution. Intel's big bet was that this would make out-of-order execution unnecessary. They lost the bet, for two reasons: 1) real programs (as opposed to toy benchmarks) are too unpredictable. There just isn't enough information available at compile time to decide what can and should be loaded early, which order instructions should go in, etc. The decisions have to be made at run time by the CPU itself. 2) The cost of out-of-order execution was overestimated. In the last five years we've been able to build really big horrible superscalar out of order cores with really fast cycle times. OTOH, the Itanium's supposedly "simpler" core has a crap clock speed. Go figure.
95% of what you read about the IA64 architecture is marketing hype. Just because it's "new" and "different" doesn't make it better. In fact, on the numbers, it appears to be worse in most cases.