X86 - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Un processeur Intel 80486 SX 25

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.

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

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.

Cette famille de processeurs, dont le Pentium est emblématique, est en train de passer au 64 bit. 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 bit IA-64, différente et incompatible, pour ses processeurs Itanium et Itanium 2.

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.

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 Kio 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 1 Mio de mémoire adressable, divisée en segments de 64 Kio, 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 Kio 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 Kio pour le code, 64 Kio pour les données, 64 Kio 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ébi-octet d'espace adressable. Les modèles medium (64 Kio de données, plusieurs segments de code) et compact (plusieurs segments de données, 64 Kio de code) sont des compromis.

Le 80286 brise la barrière des 1 024 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.

Page générée en 0.008 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise