Models de memòria x86

De la Viquipèdia, l'enciclopèdia lliure

En informàtica, els models de memòria x86 són un conjunt de sis models de memòria diferents de la CPU x86 que funcionen en mode real que controlen com s'utilitzen els registres de segment i la mida predeterminada dels punters.[1]

Segmentació de la memòria[modifica]

S'utilitzen quatre registres per referir-se a quatre segments a l'arquitectura de memòria segmentada x86 de 16 bits. DS (segment de dades), CS (segment de codi), SS (segment de pila) i ES (segment addicional). Un altre registre de 16 bits pot actuar com un desplaçament en un segment determinat, de manera que una adreça lògica en aquesta plataforma s'escriu segment : offset, normalment en notació hexadecimal. En mode real, per calcular l'adreça física d'un byte de memòria, el maquinari desplaça el contingut del registre de segment adequat 4 bits restants (multiplicant efectivament per 16) i després afegeix el desplaçament.[2]

Per exemple, l'adreça lògica 7522:F139 dóna l'adreça física de 20 bits:

75220
+ F139
84359

Tingueu en compte que aquest procés condueix a l'àlies de memòria, de manera que qualsevol adreça física determinada té fins a 4096 adreces lògiques corresponents. Això complica la comparació de punters a diferents segments.[3]

Models de memòria[modifica]

Els models de memòria són:

Model Dades Codi Definició
petit* prop CS=DS=SS
Petit prop** prop DS=SS
Mitjana prop** lluny DS=SS, diversos segments de codi
Compacte lluny prop segment de codi únic, segments de dades múltiples
Gran lluny lluny múltiples segments de codi i dades
Enorme enorme lluny múltiples segments de codi i dades; una matriu única pot ser >64 KB

* En el model Tiny, els quatre registres de segments apunten al mateix segment.

** En tots els models amb punters de dades propers, SS és igual a DS.

*** La pila sempre es limita a 64 KByte com a màxim.[4]

Referències[modifica]

  1. «A Better x86 Memory Model: x86-TSO» (en anglès). [Consulta: 8 desembre 2023].
  2. Owens, Scott; Sarkar, Susmit; Sewell, Peter «A Better x86 Memory Model: x86-TSO» (en anglès). Springer link. Springer [Berlin, Heidelberg], 2009, pàg. 391–407. DOI: 10.1007/978-3-642-03359-9_27.
  3. «Memory Consistency Models: A Tutorial» (en anglès). [Consulta: 8 desembre 2023].
  4. «research!rsc: Hardware Memory Models (Memory Models, Part 1)» (en anglès). [Consulta: 8 desembre 2023].