i386 i486 i586 i686 x86-64 IA-64
CPU, Processor, Architecture, i386, i486, i586, i686, x86-64, IA-64
Do I have an i386, i486, i586, or i686 processor? Is my CPU 32-Bit or 64-Bit?
I have been asked these types of questions many times, especially when it comes to Linux because some rpm and deb packages are optimized for specific processors.
To be very very brief, these are the classes as I understand them:
i386 = Intel i386, AMD 386, or above
i486 = Intel i486, AMD 486, or above (IBM, Texas Instruments, Cyrix, and other’s also made 486 CPUs)
i586 = Pentium MMX, AMD-K5, or above
i686 = Pentium Pro, AMD-K6, or above
i786 = Pentium 4, AMD-K7, or above
Here’s a little more detail: (See the many Wikipedia Links below in this text for even more detailed information.)
i386 or 80386 – Intel 386 and AMD 386 CPUs. These were the 1st Generation of 32-bit CPUs
i486 or 80486 – Intel 486, and AMD 486, along with other less known brands of 2nd Generation of 32-bit CPUs
x86-64, AMD64, Intel 64 –These are compatible with old 32-bit and 16-bit x86 programs, but also support new programs written for 64-bit. If the program is written to take advantage of 64-bit address space it will perform better.
IA-64 or Itanium – IA-64 is NOT x86-64. It is not compatible with the x86 or x86-64.
So what does all this technical jargon mean?
What we are talking about here is a class, generation, type, or architecture of microprocessor. Also know as a central processing unit (CPU) or simply “processor” for short. CPUs have evolved and been given official and unofficial names to classify them. In general, all of these are x86 processors, which means they are backward compatible with the original Intel 8086. They are grouped this way because there are many different models and manufactures of CPUs that will all run the same type of code or software. For example, software that will run on an old Intel i386SX, will also run on a Pentium II (PII). A PII is a lot different than an i386SX, but no change is needed for the software to run. The problem is the old code might not be optimized to take advantage of the extra power built into the PII. A real world example would be a game designed to run on an i386 would run too fast to be playable on a PII. This is the reason many software packages are built especially for different processors classes. Instead of listing all of the different processors the software code is optimized for, we build packages like awsome-game-i386.rpm and awsome-game-i686.rpm
The safe bet is to use the i386 package because it’s going to run on most all x86 processors. If you want better performance, try the package optimized for your class of CPU, if available.