Monday, May 11, 2009

Processor Name Confusions

It used to be confusing a lot when people talk about i386, x86, AMD64, opterons etc. However there are some minor (and some major) differences in these terms. I try to explain some of the differences in this post. Consider this a very brief history lesson too :)

BTW, I oversimplified some product lines, so that clarity is maintained.

8088:An 8 bit processor from Intel, one of the first ones. You wont find this anywhere on PCs [EDIT: This is actually a 16 bit processor with an 8-Bit external bus]

8086:A 16 bit processor from Intel. Code written for this processor will STILL execute on even the latest Xeon multi-core processors! Such is the level of backwards compatibility provided

80x86:This is used to indicate the processors after 8086 like 80186, 80286, 80386 etc. This has been shortened to "x86".

x86:See 80x86

286:This processor had some basic support for segmentation etc

386:This was the first 32 bit processor in the Intel line and had a fully supported protected mode (along with an MMU), paging etc, which enabled development of complicated operating systems like Windows, Linux etc which provide features like Virtual Memory, protection between user processes & kernel etc.

486, 586, 686:Subsequently improved versions of 386

Pentium:For All processors mentioned before, other companies like AMD etc could make similar clones, AND use the same name, essentially denying branding of Intel's products. Intel's efforts to trademark 386 were denied by the US Govt on the grounds that a number cannot be trademarked. So Intel released the Pentium Line of processors to overcome these trademark issues. It was now able to prevent other companies from using the same names as itself.

Athlon:After Intel trademarked Pentium name, AMD was forced to use a new name for its processor line. It chose Athlon.

Itanium:Itanium was a 64 bit processor from Intel which was NOT backwards compatible with the x86 line. It was also fundamentally different at the ISA level using a VLIW architecture instead of the standard CISC of the x86 line. This was a major disaster for Intel, since AMD undercut it by releasing a x86-backwards compatible 64 bit processor. Barring a few HP machines, this did not sell much.

Athlon64:After Itanium, which required special OS and application development was faltering in the market, AMD released the AMD64 ISA which was backwards compatible. The corresponding 64 bit processor was Athlon64.

Opteron:Opteron is the AMD's Server class processor

Xeon:Xeon was a newer x86 64 bit Server-Class processor which was compatible with the AMD64 ISA. (Intel actually chose to call it EM64t instead of AMD64) (The 64 bit desktop processor was simply Pentium IV with EM64t)

IA32:This is the processor Instruction Set Architecture (ISA) of the i386 and above, 32 bit processors. Although this used to be called the x86 ISA, it was retroactively named as IA32 by Intel after the release of the IA64 line

IA64:See Itanium

AMD64/EM64T:See Xeon. Linux takes a neutral approach and calls it x86_64 architecture.

Xeon with HyperThreading: Hyperthreading (from Intel) is the poor silbling of Multi-Cores. Basically using just one processor core (and cache etc) they try to execute multiple threads. Some applications actually faced decrease in performance with this enabled. AMD never bothered to implement this.

DualCore: Intel failed horribly while trying to push processor speeds to more than 10GHz. It conceptualized a new Processor Architecture called NetBurst, which was supposed to do this, but it was overheating at sub-5Ghz levels itself. So Intel cleverly shifted focus away from processor speeds to Processor Cores per Package. Now even 8 cores in a single package are also being developed.

I chose not cover the Mobile class of processors like Pentium M, Atom etc and the latest GPGPU offerings from NVidia etc as this post was getting too big!

4 comments:

Sagar said...

Excellent aggregation! I was facing the same confusion a few months back and had to read through a bunch of wikipedia pages to understand what each one meant.

B said...

I still remember the time when I confused IA64 with AMD64 :) It was kind of an eye opener for me at that time.

Intel's history of the then-top secret Yamhill project (EM64t) makes an interesting read. Story of how marketing tried to kill a more popular alternative to prevent poaching on the IA64 line :)

Satish Rangavajjula said...

Great compilation bhanu.. extremely useful

Kirti Sanchana said...

Cool compilation and excellent explanation Bhanu... Got to know a lot from this post! :)