x86 architecture mess

x86 architecture is total mess when it comes to naming. Basically there were “i386”, “i486”, “i586”, “i686” — nothing more was used. But this gives lot of problems.

First one — which optimisations can be used on “i686”? It has MMX for sure but does it have SSE? SSEv2? SSEv3? 3DNow! technology? It depends on cpu… for example PentiumPro (the first “i686”) has MMX but lack any other addons. Athlon64 will have most of them (or even all in newest cores) but under 32bit Linux it still be “i686”.

Second thing is how Linux recognize CPU. On ALIX board I have AMD Geode LX which has MMX and 3DNow! but lack SSE. According to some data it is “i686” but under Linux it is “i586”:

root@alix:~$ uname -m
i586

Currently I am running Ångström on it but is it built with “i686” optimisations…

1 thought on “x86 architecture mess”

  1. The x86 architecture is a mess. The i386…i686 relate to additions to the original 80386 32-bit instruction set.

    i386 will work on everything and is the base. If there’s ever a doubt about what you need to get, get this one. It might be slower, sometimes a lot slower, but it will work.

    If you want advanced optimization and utilization of the new features, then typically i586 is enough.

    i386 = 80386, 80486, Pentium, Pentium II/III/4/M, Core, Core 2 i486 = 80486 and later i586 = Pentium and later i686 = MMX/SSE and later, which came in some Pentium III and later

    K6-III, Athlon, Athlon XP, Athlon 64, Opteron are all i586 or later.

Comments are closed.