Microprocesadores

Arquitectura IA-32
Universidad Tecnológica Nacional - FRH Técnicas Digitales III

Ciclo Lectivo 2011

Autor: Mariano Mercado

1

Arquitectura IA-32

Paginación

Autor: Mariano Mercado

2

una Unidad de Gestión de Memoria que contiene una Unidad de Paginación a ó continuación de la Unidad de Segmentación Autor: Mariano Mercado Unidad de Paginación No activada Dirección Física= Dirección Lineal 3 .Estructura de la MMU Dirección Lógica Dirección Lineal Dirección Física SELECTOR INDEX DESPLAZAMIENTO T RPL I Unidad de Segmentación Unidad de Paginación Memoria Física La IA 32 introduce como L IA-32 i d una de las mejoras mas importantes a nivel de la arquitectura interna de los procesadores 80386 y subsiguientes.

000 descriptores de páginas Autor: Mariano Mercado 1.000 descriptores de página c/u .000 tablas con 1. Se necesita una tabla de descriptores de página de 4 Mbytes!!!.000.000 descriptores de tablas de página Una tabla de 4 Mbytes con 1.000 descriptores de páginas 1001 Tablas de 4 Kbytes c/u con 1. La primer PC 386 venía con 4 Mbytes de RAM.Tabla de Páginas de Memoria 4 bytes por cada descriptor y un millón de descriptores de página. Evidentemente se necesita otro approach. Estructura de Paginación Jerárquica Directorio de Tablas de Páginas con 1.

Modos de Paginación en IA-64 Modo Protegido Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación 32 bits (4Kb-Page) Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación 32 bits (4 Mb-Page) Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación PAE PDPTE: Page Directory Pointer Table Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación IA-32e (4Kb-Pages) PML4E: Page Map Level 4 l Entry Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación IA-32e (2Mb-Pages) Autor: Mariano Mercado .

Tabla de Páginas de Memoria Modo Paginación IA-32e (1Gb-Pages) Autor: Mariano Mercado .

PSE 0) (CR4.Modo Paginación 32 bits Páginas de 4Kb (CR4.PSE=0) Autor: Mariano Mercado .

Bit 3: PWT – Page Write-Through. Se debe inicializar CR3 con los siguientes valores: 2 Bits 12 al 31: Base del Directorio de Tablas de Páginas (Page Directory Table). esta página en la Memoria Cache. siempre se leerá la misma desde memoria dinámica. No se guardará en la cache esta página. 2 2 Autor: Mariano Mercado . Las modificaciones del procesador en Write Through.Paginación 32-bits Se habilita colocando un 1 en el bit PG de CR0. Table) Bit 4: PCD – Page Cache Disable. Se debe colocar en CR4 el bit PSE en 0 (Bit 4). forzarán la actualización en la memoria dinámica.

Page Directory Entry (PDE). t ada a ab a ág a. Autor: Mariano Mercado 12 11 10 9 Reservado S. / ( / ) ( / ) U/S: Nivel de Privilegio.Paginación 32-bits Page Directory A cada elemento del Directorio de Tablas de Página se lo denomina Entrada del Directorio de Tablas de Página. e g és. Page Table Entry (PTE). o en su inglés. 8 0 7 0 6 D 5 4 3 2 1 0 A PCD PWT U/S R/W P . Indica que el procesador escribió en esta página. 8 0 7 0 6 D 5 4 3 2 1 0 A PCD PWT U/S R/W P A cada elemento de la Tabla de Pagina (Page Table) se lo denomina Entrada de la Tabla de Página. o en inglés. Su formato es: 31 Dirección Base de la Tabla de Página 12 11 10 9 Reservado S. age ab e t y( ) Su formato es: 31 Dirección Base de la Página P: PDE o PTE Presente R/W: Permisos de Lectura (R/W=0) o Lectura-Escritura (R/W=1).O.O. U/S=0 Modo Supervisor (No podrán acceder CPLs=3) D: Dirty.

Paginación de Memoria en dos niveles Sistema de Traducción de Páginas de dos niveles Dirección Lineal Unidad de Segmentación 10 31 22 21 1211 0 Memoria Directorio Tabla 10 Offset 12 CPU CR0 CR1 CR2 CR3 CR4 31 0 31 0 31 0 Raí Raíz Tabla de Páginas Directorio de Tablas de Páginas Page Directory Entries (PDE’s) Page Table Entries (PTE’s) Autor: Mariano Mercado .

Segmentación y Paginación de Memoria Dirección Lógica o puntero far Selector Desplazamiento Espacio Lineal de Direcciones (4Gbytes) Segmento Dirección Lineal 31 22 12 0 Directorio Tabla Offset Directorio de Tablas de Páginas PDE PTE Tabla d T bl de Páginas Espacio Físico de Direcciones Dirección Física Dirección Lineal Descriptor de Segmento Dirección Base del Segmento Páginas Tabla de Descriptores SEGMENTACION Autor: Mariano Mercado Página g PAGINACION .

Modelos de Memoria Modelo Flat Básico CS SS DS ES FS GS Tabla de Descriptores Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Espacio Lineal de Direcciones (o Memoria Física) FFFFFFFF Código No Presente Datos y Pila Tanto el Sistema Operativo como las aplicaciones 0 tienen acceso a un espacio de 4 Gbytes no segmentado. Se evitan las excepciones por exceso en el límite de memoria ya que el límite de todos los descriptores es FFFFFFFF. Autor: Mariano Mercado . Aún si se accede a áreas en las que no existe memoria física.

Modelos de Memoria Modelo Flat Protegido CS SS DS ES FS GS Tabla de Descriptores p Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Di ió B Atributos Límite Dirección Base Atributos Límite Dirección Base Espacio Lineal de Direcciones (o Memoria Física) Código FFFFFFFF No Presente Memoria M i para E/S Datos y Pila 0 Los segmentos tienen el límite acorde a la memoria física instalada en el sistema. Autor: Mariano Mercado .

Modelos de Memoria. Modelo Multi Segment Tabla de Descriptores Espacio Lineal de Direcciones (o Memoria Física) FFFFFFFF Código Códi Datos CS SS DS ES FS GS Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Atributos Límite Dirección Base Pila Datos Datos Datos 0 Autor: Mariano Mercado .

Al igual que en los segmentos los chequeos se realizan dentro de la ventana de decodificación y ejecución de la instrucción. Cualquier violación al sistema de protección de páginas genera una Excepción 0Eh definida por Intel como Page Fault (#PF). aportando granularidad al sistema de protección dentro de un mismo segmento. De acuerdo al sistema de protección de páginas (reflejado en la estructura del descriptor de página) hay dos niveles: Usuario (bit U/S=1) Supervisor (U/S 0) y el ti d página puede ser d L t U/S 1) y S i (U/S=0).-) ti Autor: Mariano Mercado .. y rebautizada bajo el misterioso y tristemente familiar nombre de “Error grave 0Eh” en algunos Si t l Sistemas O Operativos.. . l tipo de á i d de Lectura o Lectura/Escritura..Protección a nivel de Páginas Se combina con la Protección a nivel de segmentos.

1. se corresponde con el nivel Usuario. El CPL 3. Autor: Mariano Mercado . por default. En el modo supervisor se accede por default a todas las páginas y en modo usuario solo a las que tienen en su descriptor el bit U/S = 1 A partir del 80486. y en cada Page Table Entry.Protección a nivel de Páginas Los CPL’s 0. (Se ignora la protección de escritura) Si es 1 impide al procesador escribir una página Read Only de nivel usuario desde código que ejecuta en una página en Modo Supervisor . el bit 16 del registro CR0. 2 Cuando el procesador esta en Modo Supervisor. se utiliza bajo el nombre WP (Write Protect). 2 El procesador chequea la protección en el Page Directory Entry (PDE). accede a cualquier página con permiso de lectura y/o escritura. y 2 del sistema de protección de segmentos mapean en el nivel Supervisor del esquema de páginas.

En el caso de un segmento de datos con permiso de escritura. ya que la Unidad de Paginación puede o no estar habilitada. ya que l i it las á i iti á ibi lo impedirá el di á l mecanismo de protección de segmentos. no permitirá escribir. Si genera una excepción por segmentación no se genera la #PF. l t / it Autor: Mariano Mercado .Combinación de Protección a nivel de Páginas y Segmentos El procesador evaluará siempre en primer lugar la protección de segmentos. La protección a nivel de página no pisa a la protección a nivel de segmento. Paginar un segmento de código fijando permisos de escritura en l páginas. la paginación permite definir diferentes permisos para cada página con lo cual podremos dividirlo en áreas de lectura solamente y otras de lectura/escritura.