x86

Un article de Wikipedia, l'encyclopedie libre.
(Redirige depuis IA-32 )

X86
Un processeur Intel 80486 SX 25
Presentation
Type
Fondation

La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l' Intel 8086 . Cette serie est nommee IA-32 (pour Intel architecture 32 bits ) par Intel pour ses processeurs a partir du Pentium .

Un constructeur de microprocesseur pour PC doit maintenir une compatibilite descendante avec ce jeu d'instructions s'il veut que les logiciels deja ecrits fonctionnent sur les nouveaux microprocesseurs.

Origine du nom [ modifier | modifier le code ]

Le nom ≪ x86 ≫ est un terme generique pour la famille de processeurs Intel, le "x" correspondant a plusieurs valeurs, depuis le 8086 , en passant par 80286 , 80386 ou 80486 [ 1 ] .

Historique [ modifier | modifier le code ]

A l'origine de conception CISC , les nouvelles generations ont ete de plus en plus concues comme des processeurs RISC , les instructions complexes etant transformees dans le microprocesseur en instructions plus elementaires depuis le Pentium Pro .

Cette famille de processeurs, dont le Pentium est emblematique, est passee au 64  bits . La gamme AMD64 d' AMD introduit des extensions 64 bits , integrees partiellement un an plus tard par Intel avec les instructions Intel 64 ou EM64T. Intel propose egalement une architecture 64 bits IA-64 , differente et incompatible, pour ses processeurs Itanium et Itanium 2 .

Chronologie [ modifier | modifier le code ]

Le tableau ci-dessous dresse une liste non exhaustive des processeurs grand public [ 2 ] implementant le jeu d'instructions x86 , regroupes par generations qui decrivent les evolutions importantes dans l'histoire du x86.

Generation Introduction Principaux modeles grand public Espace d'adressage Principales evolutions
Lineaire Virtuelle Physique
x86 1 1978 Intel 8086 , Intel 8088 (1979) 16-bit NA 20-bit Premiers processeurs x86
1982 Intel 80186 , Intel 80188
NEC V20 /V30 (1983)
calcul rapide des adresses en hardware, operations rapides (division, multiplication, etc.)
2 Intel 80286 et clones 30-bit 24-bit Mode protege , IBM PC XT 286, IBM AT
3 1985 Intel 80386 , AMD Am386 (1991) 32-bit 46-bit 32-bit Jeu d'instructions 32-bit, MMU avec pagination
4 1989 Intel 80486
Cyrix Cx486 SLC , DLC (1992)
AMD Am486 (1993), Am5x86 (1995)
Pipeline de type RISC, FPU et Memoire Cache integres
5 1993 Intel Pentium , Pentium MMX (1996) Processeur superscalaire , 64-bit bus de donnees , FPU plus rapide, MMX , SMP
1994 NexGen Nx586
AMD 5k86 / K5 (1996)
Discrete microarchitecture (μ-op translation)
1995 Cyrix Cx5x86
Cyrix 6x86 /MX(1997)/ MII (1998)
Renommage de registres , execution speculative , Execution dans le desordre
6 1995 Intel Pentium Pro 36-bit ( EAP ) Traduction des micro-instructions, execution speculative , EAP (Pentium Pro), cache L2 integre (Pentium Pro)
1997 Intel Pentium II , Pentium III (1999)
Celeron (1998), Xeon (1998)
Support du cache L3, 3DNow! , SSE , Socket 370
1997 AMD K6 / K6-2 (1998)/ K6-III (1999) 32-bit 3DNow! , support du cache L3 (K6-III)
Optimisation de la plateforme 1999 AMD Athlon , Athlon XP / MP (2001)
Duron (2000), Sempron (2004)
36-bit FPU superscalaire, meilleure conception ( jusqu'a 3 instructions x86 par top d'horloge ), Slot A ou Socket A
2000 Crusoe 32-bit Very long instruction word
Intel Pentium 4 36-bit Pipeline profond, haute frequence, SSE2 , Hyper-Threading , Socket 478
2003 Intel Pentium M
Intel Core (2006), Pentium Dual-Core (2007)
Optimise pour une faible consommation d' energie , NX Bit (Dothan) (Intel Core "Yonah")
Efficeon Very long instruction word , NX bit , Hyper Transport , AMD64
IA-64 Transition 64-bit
1999 ~ 2005
2001 Intel Itanium (2001 ~ 2017) 52-bit Architecture EPIC
x86-64 Extension 64-bit
depuis 2001
x86-64 est l'architecture etendue 64 bits, elle preserve l'integralite de l'architecture x86. Elle reside en mode 64 bits, manque de mode d'acces dans la segmentation, presente un espace d'adressage lineaire a autorisation architecturale de 64 bits, une architecture IA-32 adaptee dans le mode de compatibilite avec le mode 64 bits est fournie pour prendre en charge la plupart des applications x86.
2003 Athlon 64 / FX / X2 (2005), Opteron
Sempron (2004)/ X2 (2008)
AMD Turion (2005)/ X2 (2006)
40-bit Jeu d'instructions x86-64 , controleur memoire integre, HyperTransport , Socket 754 / 939 / 940 ou AM2
2004 Pentium 4 (Prescott)
Celeron D , Pentium D (2005)
36-bit Pipeline tres profond, tres haute frequence, SSE3 , LGA 775
2006 Intel Core 2
Pentium Dual-Core (2007)
Celeron Dual-Core (2008)
Faible consommation d'energie, multi-cœur , frequence d'horloge plus faible, SSSE3 (Penryn)
2007 AMD Phenom / II (2008)
Athlon II (2009), Turion II (2009)
48-bit quad-core monolithique, FPU 128-bit, SSE4a , HyperTransport 3, conception modulaire, Socket AM2+ ou AM3
2008 Intel Core 2 (45 nm) 40-bit SSE4.1
Intel Atom Tres faible consommation d'energie
Intel Core i7
Core i5 (2009), Core i3 (2010)
out-of-order , superscalaire, bus QPI , conception modulaire, controleur memoire integre, 3 niveaux de cache
VIA Nano out-of-order , superscalaire, chiffrement materiel, tres faible consommation d'energie, gestion de l'energie adaptative
2010 AMD FX 48-bit Huit cœurs, Multiply-accumulate , OpenCL , Socket AM3+
2011 AMD APU series A et E ( Llano ) 40-bit PCI Express 2.0 , Socket FM1
AMD APU series C, E et Z ( Bobcat ) 36-bit Faible consommation energetique
Intel Core i3 , Core i5 and Core i7
( Sandy Bridge / Ivy Bridge )
Connexion en anneau interne, cache de micro-operation decode, LGA 1155
2012 AMD APU serie A ( Bulldozer , Trinity et suivants) 48-bit AVX , conception hautement modulaire, Socket FM2 ou Socket FM2+
Intel Xeon Phi (Knights Corner) Coprocesseur de carte d'extension PCI-E pour systeme base sur XEON, Manycore Chip, In-order P54C , VPU tres large (512-bit SSE), LRBni instructions (8× 64-bit)
2013 AMD Jaguar
(Athlon, Sempron)
SoC , console de jeu et processeur de peripherique intelligent basse consommation
Intel Silvermont   (en)
(Atom, Celeron, Pentium)
36-bit SoC , basse/tres basse consommation energetique
Intel Core i3 , Core i5 et Core i7 ( Haswell / Broadwell ) 39-bit AVX2 , extensions de synchronisation transactionnelle, LGA 1150
2015 Intel Broadwell-U
( Intel Core i3 , Core i5 , Core i7 , Core M , Pentium , Celeron )
SoC , PCH-LP sur la meme puce pour Broadwell-U
2015-2020 Intel Skylake / Kaby Lake / Coffee Lake / Rocket Lake / Cannon Lake
(Intel Pentium/Celeron Gold, Core i3 , Core i5 , Core i7 , Core i9 )
46-bit AVX-512 (limite a Cannon Lake-U et aux variants bureaux/serveurs de Skylake)
2016 Intel Xeon Phi (Knights Landing) 48-bit Processeur et coprocesseur multi-coeurs pour les systemes Xeon
2016 AMD Bristol Ridge
(AMD (Pro) A6/A8/A10/A12)
Integrated FCH on die, SoC , Socket AM4
2017 AMD Ryzen / Epyc Implementation de SMT par AMD, plusieurs dies sur une puce
2017 Zhaoxin   (en) WuDaoKou (KX-5000, KH-20000) Introduction de la toute nouvelle architecture x86-64 de l'entreprise chinoise
2018-2021 Intel Sunny Cove (Ice Lake-U et Y), Cypress Cove ( Rocket Lake ) 57-bit Premiere implementation du jeu d'instructions AVX-512 dans le grand public. Ajout du Vector Neural Network Instructions (VNNI)
2020 Intel Willow Cove ( Tiger Lake -Y/U/H) Dual ring interconnect architecture, mise a jour du Gaussian Neural Accelerator (GNA2), nouvelles instructions AVX-512 (Vector Intersection), protection contre les malwares au niveau processeur avec Control-Flow Enforcement Technology (CET)
2021 Intel Alder Lake Architecture hybride avec cœurs haute performances (Golden Cove) et cœurs basse consommation (Gracemont), support du PCIe 5.0 et DDR5 , mise a jour du Gaussian Neural Accelerator (GNA3)
Generation Introduction Principaux modeles grand public Espace d'adressage Principales evolutions

Architecture [ modifier | modifier le code ]

La conception de la gamme x86 a mis l'accent sur la compatibilite ascendante. Ainsi, les generations successives de processeurs admettent plusieurs modes de fonctionnement, qui different en particulier du point de vue de l'acces a la memoire.

Les logiciels penses en 32 bits (i386) fonctionnent donc sur une architecture 64 bits (AMD64).

Acces memoire [ modifier | modifier le code ]

Les possibilites d'adressage memoire de la gamme x86 remontent au 8080 , qui avait 16 bits de bus d'adresse et pouvait donc acceder a 64 Ko de memoire.

Le 8086 , pour faciliter le passage du 8080 au 8086, introduit l'adressage segmente, ou l'adresse referencee par segment:offset est segment · 0x10 + offset , avec segment et offset tous deux sur 16 bits. Cela fournit 1  Mo de memoire adressable, divisee en segments de 64 Ko, un segment commencant tous les 16 octets. Le processeur a 4 registres de segment : un pour le code, un pour les donnees, un pour la pile et un supplementaire (qui sert entre autres de destination dans les instructions de copie de chaines de caracteres). Intel introduit des ≪ modeles memoire ≫. Dans le modele tiny , qui imite le modele memoire du 8080, tous les registres de segments ont la meme valeur et on accede donc effectivement a 64 Ko de memoire. C'est le modele utilise sous DOS , par les executables .com . Dans le modele small , les registres ont des valeurs differentes mais ne changent pas : on a donc 64 Ko pour le code, 64 Ko pour les donnees, 64 Ko pour la pile. Pour manipuler plus de memoire, il faut faire des acces ≪  far  ≫, c'est-a-dire aller chercher le mot en memoire en changeant d'abord la valeur du registre de segment, puis en lisant le segment a l'offset voulu. Le modele ≪  large  ≫ fait des acces far dans le code et les donnees et donc utilise effectivement le mebioctet d'espace adressable. Les modeles medium (64 Ko de donnees, plusieurs segments de code) et compact (plusieurs segments de donnees, 64 Ko de code) sont des compromis.

Le 80286 brise la barriere des 1 024 Ko en introduisant le mode protege  : les segments ne se referent plus a l'adresse segment ·0x10 mais a une table (la GDT ou la LDT) qui maintient en plus les informations de protection. L'espace adressable est de 16  Mo , l'espace virtuel est potentiellement de 1  Go , un segment ne peut pas depasser 64 Ko. Avec le 80386 , Intel introduit un processeur 32 bits. Les segments peuvent etre aussi gros que tout l'espace adressable, soit 4  Go . La pagination vient s'ajouter a la segmentation .

Notes et references [ modifier | modifier le code ]

  1. (en) https://techterms.com/definition/x86
  2. (en) ≪  Microprocessor Hall of Fame  ≫, Intel (consulte le ) .

Voir aussi [ modifier | modifier le code ]

Articles connexes [ modifier | modifier le code ]