Voici ce que dit Wikipédia :
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 1 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ébi-octet 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 1 Go, un segment ne peut pas dépasser 64 Ko. Avec le 386, Intel introduit un processeur 32 bit. Les segments peuvent être aussi gros que tout l'espace adressable, soit 4 Go. La pagination vient s'ajouter à la segmentation.
Partager