Accueil🇫🇷Chercher

x86

La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium.

X86
Un processeur Intel 80486 SX 25
Présentation
Type
Fondation

Un constructeur de microprocesseur pour PC doit maintenir une compatibilité descendante avec ce jeu d'instructions s'il veut que les logiciels déjà écrits fonctionnent sur les nouveaux microprocesseurs.

Origine du nom

Le nom « x86 » est un terme générique pour la famille de processeurs Intel, le "x" correspondant à plusieurs valeurs, depuis le 8086, en passant par 80286, 80386 ou 80486[1].

Historique

À l'origine de conception CISC, les nouvelles générations ont été de plus en plus conçues comme des processeurs RISC, les instructions complexes étant transformées dans le microprocesseur en instructions plus élémentaires depuis le Pentium Pro.

Cette famille de processeurs, dont le Pentium est emblĂ©matique, est passĂ©e au 64 bits. La gamme AMD64 d'AMD introduit des extensions 64 bits, intĂ©grĂ©es partiellement un an plus tard par Intel avec les instructions Intel 64 ou EM64T. Intel propose Ă©galement une architecture 64 bits IA-64, diffĂ©rente et incompatible, pour ses processeurs Itanium et Itanium 2.

Chronologie

Le tableau ci-dessous dresse une liste non exhaustive des processeurs grand public[2] implémentant le jeu d'instructions x86, regroupés par générations qui décrivent les évolutions importantes dans l'histoire du x86.

Génération Introduction Principaux modèles grand public Espace d'adressage Principales évolutions
Linéaire Virtuelle Physique
x8611978Intel 8086, Intel 8088 (1979)16-bitNA20-bitPremiers processeurs x86
1982Intel 80186, Intel 80188
NEC V20/V30(1983)
calcul rapide des adresses en hardware, opérations rapides (division, multiplication, etc.)
2Intel 80286 and clones30-bit24-bitMode protégé, IBM PC XT 286, IBM AT
31985Intel 80386, AMD Am386 (1991)32-bit46-bit32-bitJeu d'instructions 32-bit, MMU avec pagination
41989Intel 80486
Cyrix Cx486S, DLC (1992)
AMD Am486 (1993), Am5x86 (1995)
Pipeline de type RISC, FPU et Mémoire Cache intégrés
51993Intel Pentium, Pentium MMX (1996)Processeur superscalaire, 64-bit bus de données, FPU plus rapide, MMX, SMP
1994NexGen Nx586
AMD 5k86/K5 (1996)
Discrete microarchitecture (µ-op translation)
1995Cyrix Cx5x86
Cyrix 6x86/MX(1997)/MII(1998)
Renommage de registres, exécution spéculative, Exécution dans le désordre
61995Intel Pentium Pro36-bit (EAP)Traduction des micro-instructions, exécution spéculative, EAP (Pentium Pro), cache L2 intégré (Pentium Pro)
1997Intel Pentium II, Pentium III (1999)
Celeron (1998), Xeon (1998)
Support du cache L3, 3DNow!, SSE, Socket 370
1997AMD K6/K6-2 (1998)/K6-III (1999)32-bit3DNow!, support du cache L3 (K6-III)
Optimisation de la plateforme1999AMD Athlon, Athlon XP/MP (2001)
Duron (2000), Sempron (2004)
36-bitFPU superscalaire, meilleure conception (jusqu'Ă  3 instructions x86 par top d'horloge), Slot A ou Socket A
2000Crusoe32-bitVery long instruction word
Intel Pentium 436-bitPipeline profond, haute fréquence, SSE2, Hyper-Threading, Socket 478
2003Intel Pentium M
Intel Core (2006), Pentium Dual-Core (2007)
Optimisé pour une faible consommation d'énergie, NX Bit (Dothan) (Intel Core "Yonah")
EfficeonVery long instruction word, NX bit, Hyper Transport, AMD64
IA-64Transition 64-bit
1999 ~ 2005
2001Intel Itanium (2001 ~ 2017)52-bitArchitecture EPIC
x86-64Extension 64-bit
depuis 2001
x86-64 est l'architecture étendue 64 bits, elle préserve l'intégralité de l'architecture x86. Elle réside en mode 64 bits, manque de mode d'accès dans la segmentation, présente un espace d'adressage linéaire à autorisation architecturale de 64 bits, une architecture IA-32 adaptée dans le mode de compatibilité avec le mode 64 bits est fournie pour prendre en charge la plupart des applications x86.
2003Athlon 64/FX/X2 (2005), Opteron
Sempron (2004)/X2 (2008)
AMD Turion (2005)/X2 (2006)
40-bitJeu d'instructions x86-64, contrôleur mémoire intégré, HyperTransport, Socket 754/939/940 ou AM2
2004Pentium 4 (Prescott)
Celeron D, Pentium D (2005)
36-bitPipeline très profond, très haute fréquence, SSE3, LGA 775
2006Intel Core 2
Pentium Dual-Core (2007)
Celeron Dual-Core (2008)
Faible consommation d'énergie, multi-cœur, fréquence d'horloge plus faible, SSSE3 (Penryn)
2007AMD Phenom/II (2008)
Athlon II (2009), Turion II (2009)
48-bitquad-core monolithique, FPU 128-bit, SSE4a, HyperTransport 3, conception modulaire, Socket AM2+ ou AM3
2008Intel Core 2 (45 nm)40-bitSSE4.1
Intel AtomTrès faible consommation d'énergie
Intel Core i7
Core i5 (2009), Core i3 (2010)
out-of-order, superscalaire, bus QPI, conception modulaire, contrôleur mémoire intégré, 3 niveau de cache
VIA Nanoout-of-order, superscalaire, chiffrement matériel, très faible consommation d'énergie, gestion de l'énergie adaptative
2010AMD FX48-bitHuit cœurs, Multiply-accumulate, OpenCL, Socket AM3+
2011AMD APU A and E Series (Llano)40-bitPCI Express 2.0, Socket FM1
AMD APU C, E and Z Series (Bobcat)36-bitFaible consommation énergétique
Intel Core i3, Core i5 and Core i7
(Sandy Bridge/Ivy Bridge)
Connexion en anneau interne, cache de micro-operation décodé, LGA 1155
2012AMD APU A Series (Bulldozer, Trinity et suivants)48-bitAVX, conception hautement modulaire, Socket FM2 ou Socket FM2+
Intel Xeon Phi (Knights Corner)Coprocesseur de carte d'extension PCI-E pour système basé sur XEON, Manycore Chip, In-order P54C, VPU très large (512-bit SSE), LRBni instructions (8× 64-bit)
2013AMD Jaguar
(Athlon, Sempron)
SoC, console de jeu et processeur de périphérique intelligent basse consommation
Intel Silvermont
(Atom, Celeron, Pentium)
36-bitSoC, basse/très basse consommation énergétique
Intel Core i3, Core i5 and Core i7 (Haswell/Broadwell)39-bitAVX2, extensions de synchronisation transactionnelle, LGA 1150
2015Intel Broadwell-U
(Intel Core i3, Core i5, Core i7, Core M, Pentium, Celeron)
SoC, on-chip Broadwell-U PCH-LP
2015-2020Intel Skylake/Kaby Lake/Cannon Lake/Coffee Lake/Rocket Lake
(Intel Pentium/Celeron Gold, Core i3, Core i5, Core i7, Core i9)
46-bitAVX-512 (limité à Cannon Lake-U et aux variants bureaux/serveurs de Skylake)
2016Intel Xeon Phi (Knights Landing)48-bitProcesseur et coprocesseur multi-coeurs pour les systèmes Xeon
2016AMD Bristol Ridge
(AMD (Pro) A6/A8/A10/A12)
Integrated FCH on die, SoC, Socket AM4
2017AMD Ryzen/EpycAMD's implementation of SMT, on-chip multiple dies
2017Zhaoxin WuDaoKou (KX-5000, KH-20000)Introduction de la toute nouvelle architecture x86-64 de l'entreprise chinoise
2018-2021Intel Sunny Cove (Ice Lake-U and Y), Cypress Cove (Rocket Lake)57-bitPremière implémentation du jeu d'instructions AVX-512 dans le grand public. Ajout du Vector Neural Network Instructions (VNNI)
2020Intel Willow Cove (Tiger Lake-Y/U/H)Dual ring interconnect architecture, mise Ă  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)
2021Intel Alder LakeArchitecture hybride avec cœurs haute performances (Golden Cove) et cœurs basse consommation (Gracemont), support du PCIe 5.0 et DDR5, mise à jour du Gaussian Neural Accelerator (GNA3)
Génération Introduction Principaux modèles grand public Espace d'adressage Principales évolutions

Architecture

La conception de la gamme x86 a mis l'accent sur la compatibilité ascendante. Ainsi, les générations successives de processeurs admettent plusieurs modes de fonctionnement, qui diffèrent en particulier du point de vue de l'accès à la mémoire.

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

Accès mémoire

Les possibilitĂ©s d'adressage mĂ©moire de la gamme x86 remontent au 8080, qui avait 16 bits de bus d'adresse et pouvait donc accĂ©der Ă  64 Ko de mĂ©moire.

Le 8086, pour faciliter le passage du 8080 au 8086, introduit l'adressage segmentĂ©, oĂą l'adresse rĂ©fĂ©rencĂ©e par segment:offset est segment · 0x10 + offset, avec segment et offset tous deux sur 16 bits. Cela fournit Mo de mĂ©moire adressable, divisĂ©e en segments de 64 Ko, un segment commençant tous les 16 octets. Le processeur a 4 registres de segment : un pour le code, un pour les donnĂ©es, un pour la pile et un supplĂ©mentaire (qui sert entre autres de destination dans les instructions de copie de chaĂ®nes de caractères). Intel introduit des « modèles mĂ©moire ». Dans le modèle tiny, qui imite le modèle mĂ©moire du 8080, tous les registres de segments ont la mĂŞme valeur et on accède donc effectivement Ă  64 Ko de mĂ©moire. C'est le modèle utilisĂ© sous DOS, par les exĂ©cutables .com. Dans le modèle small, les registres ont des valeurs diffĂ©rentes mais ne changent pas : on a donc 64 Ko pour le code, 64 Ko pour les donnĂ©es, 64 Ko pour la pile. Pour manipuler plus de mĂ©moire, il faut faire des accès « far », c'est-Ă -dire aller chercher le mot en mĂ©moire en changeant d'abord la valeur du registre de segment, puis en lisant le segment Ă  l'offset voulu. Le modèle « large » fait des accès far dans le code et les donnĂ©es et donc utilise effectivement le mĂ©bioctet d'espace adressable. Les modèles medium (64 Ko de donnĂ©es, plusieurs segments de code) et compact (plusieurs segments de donnĂ©es, 64 Ko de code) sont des compromis.

Le 80286 brise la barrière des 1 024 Ko 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 Mo, l'espace virtuel est potentiellement de Go, un segment ne peut pas dĂ©passer 64 Ko. Avec le 80386, Intel introduit un processeur 32 bits. Les segments peuvent ĂŞtre aussi gros que tout l'espace adressable, soit Go. La pagination vient s'ajouter Ă  la segmentation.

Notes et références

  1. (en) https://techterms.com/definition/x86
  2. (en) « Microprocessor Hall of Fame », Intel (consulté le ).

Voir aussi

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.