Difference entre i386 & i686

bonjour ,

tout est dans le titre , j’aurais aimer savoir si il y a vraiment une difference entre i386 & i686 et ces raisons … :blush:

merci :slightly_smiling:

FROM GCC 3.4 MANUAL
3.17.11 Intel 386 and AMD x86-64 Options

These `-m’ options are defined for the i386 and x86-64 family of
computers:

`-mtune=CPU-TYPE’
Tune to CPU-TYPE everything applicable about the generated code,
except for the ABI and the set of available instructions. The
choices for CPU-TYPE are:
i386
Original Intel’s i386 CPU.

_i486_
      Intel's i486 CPU.  (No scheduling is implemented for this
      chip.)

_i586, pentium_
      Intel Pentium CPU with no MMX support.

_pentium-mmx_
      Intel PentiumMMX CPU based on Pentium core with MMX
      instruction set support.


i686, pentiumpro
Intel PentiumPro CPU.

_pentium2_
      Intel Pentium2 CPU based on PentiumPro core with MMX
      instruction set support.

_pentium3, pentium3m_
      Intel Pentium3 CPU based on PentiumPro core with MMX and SSE
      instruction set support.

_pentium-m_
      Low power version of Intel Pentium3 CPU with MMX, SSE and
      SSE2 instruction set support.  Used by Centrino notebooks.

_pentium4, pentium4m_
      Intel Pentium4 CPU with MMX, SSE and SSE2 instruction set
      support.

_prescott_
      Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2
      and SSE3 instruction set support.

_nocona_
      Improved version of Intel Pentium4 CPU with 64-bit
      extensions, MMX, SSE, SSE2 and SSE3 instruction set support.

_k6_
      AMD K6 CPU with MMX instruction set support.

_k6-2, k6-3_
      Improved versions of AMD K6 CPU with MMX and 3dNOW!
      instruction set support.

_athlon, athlon-tbird_
      AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE
      prefetch instructions support.

_athlon-4, athlon-xp, athlon-mp_
      Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and
      full SSE instruction set support.

_k8, opteron, athlon64, athlon-fx_
      AMD K8 core based CPUs with x86-64 instruction set support.
      (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and
      64-bit instruction set extensions.)
_winchip-c6_
      IDT Winchip C6 CPU, dealt in same way as i486 with additional
      MMX instruction set support.

_winchip2_
      IDT Winchip2 CPU, dealt in same way as i486 with additional
      MMX and 3dNOW!  instruction set support.

_c3_
      Via C3 CPU with MMX and 3dNOW!  instruction set support.  (No
      scheduling is implemented for this chip.)

_c3-2_
      Via C3-2 CPU with MMX and SSE instruction set support.  (No
      scheduling is implemented for this chip.)

 While picking a specific CPU-TYPE will schedule things
 appropriately for that particular chip, the compiler will not
 generate any code that does not run on the i386 without the
 `-march=CPU-TYPE' option being used.

(edit)
un lien

Ben ouais! 686=386+300. A moins que ce ne soit la cylindrée.

Intel a conçut il y a un bail un ensemble d’instruction de processeur CISC. C’est sorti avec le 4004, mais surtout le 8086. Je ne sais pas si la dénomination x86 viens de ce processeur. Le x peut être remplacé par tout les chiffres de 1 à 6. Chacun représente une génération du jeu d’instructions.
Il faut savoir aussi que chaque nouvelle version englobe la précédente.

Le i686 c’est les Athlon64 et les P4. Ensuite ça s’est perdu pour les X2 et les Core 2 mais certains parlent de i786 et i868.

[quote=“Grhim”]bonjour ,

tout est dans le titre , j’aurais aimer savoir si il y a vraiment une difference entre i386 & i686 et ces raisons … :blush:

merci :slightly_smiling:[/quote]
La différence, c’est que i686 est basé sur l’i386 et que le 386 était le deuxième processeur Intel, alors que le 686 date d’environ 2000…

intel fait des processeurs depuis des années, même avant le PC, et dans l’ordre des processeurs PC intel :
8086
8088
186 (qui n’a pratiquement pas existé)
286 - 287
386 sx/dx - 387
486 sx/dx/dx2/dx4
Ensuite toute la litanie des Pentium (dont les fameux Pentium 60 et Pentium 90 qui avait le “bug” de la virgule flottante)

fr.wikipedia.org/wiki/X86

[quote]x86 est la dénomination de la famille de microprocesseurs compatibles avec le jeu d’instructions de l’Intel 8086. Les différents constructeurs de microprocesseurs pour PC se doivent de maintenir une compatibilité ascendante afin que les anciens logiciels fonctionnent sur les nouveaux microprocesseurs. L’architecture de la série x86 à partir du Pentium a été nommée IA-32 par Intel.[/quote][quote]Le 80286 brise la barrière des 1024 Kio en introduisant le mode protégé : les segments ne se réfèrent plus à l’adresse segment·0x10 mais à une table (la GDT – ou la LDT) qui maintient en plus les informations de protection. L’espace adressable est de 16 Mio, l’espace virtuel est potentiellement de 1 Gio, un segment ne peut pas dépasser 64 Kio. Avec le 386, Intel introduit un processeur 32 bit. Les segments peuvent être aussi gros que tout l’espace adressable, soit 4 Gio. La pagination vient s’ajouter à la segmentation.[/quote]la génération 486 a je crois inclu le 387 (copro arithmétique) dans la puce, et la 586 a intègré des routines graphiques dans le jeu d’instructions du proc (mmx, etc…).

En gros…

586 n’a pas été une dénomination commerciale chez Intel, c’est l’équivalent du pentium, par contre si les vieux s’en souviennent je croix que c’était AMD qui avait lancer un 586 (ou Cyrix ?)

[quote=“debianhadic”]586 n’a pas été une dénomination commerciale chez Intel, c’est l’équivalent du pentium,[/quote] Si tu préfères, mais c’est bien la génération d’introduction des instructions multimedia. [quote=“debianhadic”]par contre si les vieux s’en souviennent je croix que c’était AMD qui avait lancer un 586 (ou Cyrix ?)[/quote]amd, c’est l’arrivée de l’athlon, plutot. Ca doit plutot être un processeur Cyrix qui a dû reprendre la dénomination générique.

[quote=“debianhadic”]Intel fait des processeurs depuis des années, même avant le PC, et dans l’ordre des processeurs PC intel :
8086
8088
186 (qui n’a pratiquement pas existé)
286 - 287
386 sx/dx - 387
486 sx/dx/dx2/dx4
Ensuite toute la litanie des Pentium (dont les fameux Pentium 60 et Pentium 90 qui avait le “bug” de la virgule flottante)[/quote]
Oui en fin ils n’ont pas commencé avec le 8086. Bien avant il y a eu le 4004, le 4040 et le 8008 par exemple. :laughing:

Anecdote HS de vieux con: un truc qui m’avait bien fait rire, c’est de m’apercevoir que pour contourner l’absence de multiproc de l’atari (comparé au “pipeline” de processeurs variés dont était composé l’amiga), les ataristes avaient hacké le processeur du clavier de l’atari, pour faire le traitement du son en parallèle avec le traitement graphique qui avait lieu dans le CPU (pas de GPU à l’époque). C’était un processeur de la famille 65C02, si je ne m’abuse, c’est à dire un >successeur< du processeur que j’avais dans mon apple ][. Ce qui m’a fait rire, c’est qu’à une génération prés, un tel processeur puisse être utilisé >juste pour gèrer le clavier<.

…merci pour tout ces précieux renseignements et precisions…

alors un autre petit point , je suis sous atlhonXP 1200, debian sid , donc je suis en i686 mais certains progs de linux sont en i386 , rien de mal las dedans? ou faut il vraiment faire attention ou bien, le i686 sait gerer le i386 ??

merci

[quote=“debianhadic”]186 (qui n’a pratiquement pas existé)[/quote]Il me semble qu’il fut employé comme microcontrôleur. Par contre je l’ai vu dans le schéma d’un circuit d’avion à ma grande surprise.

Je confirme : fr.wikipedia.org/wiki/Intel_80186

[quote=“Grhim”]…merci pour tout ces précieux renseignements et precisions…

alors un autre petit point , je suis sous atlhonXP 1200, debian sid , donc je suis en i686 mais certains progs de linux sont en i386 , rien de mal las dedans? ou faut il vraiment faire attention ou bien, le i686 sait gerer le i386 ??

merci[/quote]
Le i686 est un sur-ensemble de i386 autrement dis un processeur i686 fait tourner sans problème du i386.
Utiliser le i686 relève de l’optimisation je n’ai jamais vu de changement flagrant.

@Matt > Tu es sûr que tout ce qui est MMX ou SSE sont inclu dans le i686 ?

quote=“MisterFreez”
@Matt > Tu es sûr que tout ce qui est MMX ou SSE sont inclu dans le i686 ?[/quote]Que ce soit encore sur tous les proc dans le jeu d’instruction natif, peut être pas, mais pour des raison de compatibilité, les nouveaux proc doivent AMA forcément honorer les instructions mmx et sse.