Models de memòria x86
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 dona 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]- ↑ «A Better x86 Memory Model: x86-TSO» (en anglès). [Consulta: 8 desembre 2023].
- ↑ 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.
- ↑ «Memory Consistency Models: A Tutorial» (en anglès). [Consulta: 8 desembre 2023].
- ↑ «research!rsc: Hardware Memory Models (Memory Models, Part 1)» (en anglès). [Consulta: 8 desembre 2023].