Re: 4GB memory and Intel Dual-Core system

From: Joe Bob Spamtest
Date: Fri Oct 28 2005 - 10:59:10 EST




Fawad Lateef wrote:
Can you tell me the main differences between IA64 and x86_64 (Opteron)
? because in your one of the previous mail you said IA64 != EM64T and
its true, but I know is EM64T/AMD64 in 64-bit mode != IA32 but you
said that too EM64T is not really 64-bit, its a IA32 .. Can you give
me some link which just tells the difference between IA64 (Itanium)
and AMD64 (Opteron) ?

IA64 (Itanium [Itanic, really -- the architecture IMO is a real disappointment IRL for something which on paper looked very impressive]) is a true 64 bit CPU. It's a new architecture built from scratch -- as different from IA32 as SPARC is. IA64 has a "compatibility mode" which allows it to run IA32 code natively, albeit very, very slow. Make no mistake -- IA64 is a completely different CPU type and architecture from IA32.

x86_64 (both AMD64 and Intel's EM64T offerings) are 64-bit extensions to a 32 bit microprocessor. The system architecture stayed basically the same. This is different from IA32 in the same ways PPC64 is different from PPC32 and SPARC64 is different from SPARC32. Both CPUs use the same set of commands as their predecessors, with the inclusion of several more instructions and registers (as well as the registers being of greater width).

The differences between AMD64 and EM64T are significant as well; however from a programming standpoint the differences are almost negligible. THe biggest difference (which may have impact on programming principles) is AMD64 is a NUMA architecture whereas EM64T still uses the same memory model and architecture as the IA32. Quite simply, you gain more from AMD64 than you do from EM64T, in my opinion.

Both (really, all three) architectures have their plusses and minuses. EM64T is Intel's idea of playing catch-up with the competition (AMD), IMO.

With the Itanium, Intel proposes to examine
programs when they are compiled into their executable form and encode
concurrent operations ahead of time. Intel calls this approach EPIC,
for Explicitly Parallel Instruction Computing, and it is the genuine
difference between the Itanium and AMD's x86-64. EPIC's drawback is

This is so blatantly simplified it's outright wrong.

EPIC is a very clever, revolutionary design. When I first read the Itanium whitepapers some years ago, it seemed like this technology was definitely worth taking a look at. Apparently I wasn't the only one who thought this: HP dropped PA-RISC for Itanium, SGI dropped MIPS, Compaq (at the time its own entity) dropped Alpha... Everyone, it seems, jumped on the bandwagon with the exception of Sun, who elected to wait for AMD's offering. Turns out though, what looked good on paper turned out to be quite a disappointment. The original Itanium, at its release, was very disappointing in terms of performance. At the time, the 32-bit Pentium III Tualatin could perform the same calculations as Itanium in less time -- for a fraction of the cost. And the 32-bit codepath compatibility? It was a joke -- some compared it to a sluggish Pentium-II 266. HP took the Itanium specification from Intel, used its expertise from years with PA-RISC, and redesigned Itanium, to later release Itanium II. This offered a great performance increase over the previous release, but the 32-bit codepath is still abysmally slow. Even the new, improved EPIC still lacks; thus far nobody's compiler -- not even Intel's -- can take full advantage or make full use of the features in this CPU. Many high-performance applications are still hand-tuned in IA64 assembler to take advantage of its offerings.

Hope this helped to clear some things up.

Cheers,
-Kelsey
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/