Transcript
Page 1: Procesador IA-32 - Clase5 - Paginacion - 2011

Microprocesadores

Arquitectura IA-32

Universidad Tecnológica Nacional - FRH

Técnicas Digitales III

Ciclo Lectivo 2011

Autor: Mariano Mercado 1

Page 2: Procesador IA-32 - Clase5 - Paginacion - 2011

Arquitectura IA-32Arquitectura IA-32

PaginaciónPaginación

2Autor: Mariano Mercado

Page 3: Procesador IA-32 - Clase5 - Paginacion - 2011

Estructura de la MMU

Dirección Lógica

Dirección Lineal

Dirección Física

SELECTOR

Unidad de Unidad de SegmentaciónSegmentación

Unidad de Unidad de SegmentaciónSegmentación

Unidad de Unidad de PaginaciónPaginaciónUnidad de Unidad de PaginaciónPaginación

MemoriaMemoriaFísicaFísica

MemoriaMemoriaFísicaFísica

INDEX TI

RPL

SELECTOR

DESPLAZAMIENTO

L IA 32 i d L IA 32 i d La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386

La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386 los procesadores 80386

y subsiguientes, una Unidad de Gestión de Memoria que contiene

una Unidad de ó

los procesadores 80386 y subsiguientes, una Unidad de Gestión de Memoria que contiene

una Unidad de ó

3

Unidad de Paginación No activadaDirección Física= Dirección Lineal

Paginación a continuación de la

Unidad de Segmentación

Paginación a continuación de la

Unidad de SegmentaciónAutor: Mariano Mercado

Page 4: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de Memoria

4 bytes por cada descriptor y un millón de descriptores de página.Se necesita una tabla de descriptores de página de 4 Mbytes!!!.Se necesita una tabla de descriptores de página de 4 Mbytes!!!.La primer PC 386 venía con 4 Mbytes de RAM.Evidentemente se necesita otro approach.Estructura de Paginación JerárquicaEstructura de Paginación Jerárquica

1001 Tablas de 4 1001 Tablas de 4

Directorio de Tablas de Páginas con 1.000 descriptores de tablas de

página

Una tabla de 4 Mbytes

con

Una tabla de 4 Mbytes

con

Kbytes c/u con 1.000 descriptores

de páginas

Kbytes c/u con 1.000 descriptores

de páginas

1.000.000 descriptores de páginas

1.000.000 descriptores de páginas

1.000 tablas con 1.000 descriptores de página c/uAutor: Mariano Mercado

Page 5: Procesador IA-32 - Clase5 - Paginacion - 2011

Modos de Paginación en IA-64Modo Protegido

Autor: Mariano Mercado

Page 6: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación 32 bits (4Kb-Page)

Autor: Mariano Mercado

Page 7: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación 32 bits (4 Mb-Page)

Autor: Mariano Mercado

Page 8: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación PAE

PDPTE: Page DirectoryDirectoryPointer Table

Autor: Mariano Mercado

Page 9: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación IA-32e (4Kb-Pages)

PML4E: Page lMap Level 4

Entry

Autor: Mariano Mercado

Page 10: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación IA-32e (2Mb-Pages)

Autor: Mariano Mercado

Page 11: Procesador IA-32 - Clase5 - Paginacion - 2011

Tabla de Páginas de MemoriaModo Paginación IA-32e (1Gb-Pages)

Autor: Mariano Mercado

Page 12: Procesador IA-32 - Clase5 - Paginacion - 2011

Modo Paginación32 bits32 bits

Páginas de 4Kb(CR4.PSE=0)(CR4.PSE 0)

Autor: Mariano Mercado

Page 13: Procesador IA-32 - Clase5 - Paginacion - 2011

Paginación 32-bits

Se habilita colocando un 1 en el bit PG de CR0.

Se debe colocar en CR4 el bit PSE en 0 (Bit 4).Se debe colocar en CR4 el bit PSE en 0 (Bit 4).Se debe inicializar CR3 con los siguientes valores:

2 Bits 12 al 31: Base del Directorio de Tablas de Páginas (Page DirectoryTable)Table).

2 Bit 4: PCD – Page Cache Disable. No se guardará en la cache esta página, siempre se leerá la misma desde memoria dinámica.

2 Bit 3: PWT – Page Write-Through. Las modificaciones del procesador en Bit 3: PWT Page Write Through. Las modificaciones del procesador en esta página en la Memoria Cache, forzarán la actualización en la memoria dinámica.

Autor: Mariano Mercado

Page 14: Procesador IA-32 - Clase5 - Paginacion - 2011

Paginación 32-bitsPage Directory

A cada elemento del Directorio de Tablas de Páginase lo denomina Entrada del Directorio de Tablas de Página, o en inglés, Page Directory Entry (PDE). Su formato es:

Dirección Base de la Reservado 0 0 D A PCD PWT U/S R/W P

31 012 1234567891011

A cada elemento de la Tabla de Pagina (Page Table) se lo denomina Entrada de la Tabla de Página, o en su inglés, Page Table Entry (PTE).

Tabla de Página S.O.0 0 D A PCD PWT U/S R/W P

t ada de a ab a de ág a, o e su g és, age ab e t y ( )Su formato es:

Dirección Base de la Reservado 0 0 D A PCD PWT U/S R/W P

31 012 1234567891011

P: PDE o PTE PresenteR/W: Permisos de Lectura (R/W=0) o Lectura-Escritura (R/W=1).

Dirección Base de la Página

ReservadoS.O.

0 0 D A PCD PWT U/S R/W P

/ ( / ) ( / )U/S: Nivel de Privilegio. U/S=0 Modo Supervisor (No podrán acceder CPLs=3)D: Dirty. Indica que el procesador escribió en esta página.

Autor: Mariano Mercado

Page 15: Procesador IA-32 - Clase5 - Paginacion - 2011

Paginación de Memoria en dos niveles

31 022 12 MemoriaDirecciónLineal

Sistema de Traducción de Páginas de dos niveles

21 11DirectorioDirectorio TablaTabla OffsetOffset

121010

Unidad de Unidad de SegmentaciónSegmentación

31 0

10

CPU

CR0CR1CR2

31 031 0

Tabla dePage Table

RaRaíízzRaRaíízzCR2CR3CR4

PáginasDirectorio de

Tablas de Páginas Page Directory Entries (PDE’s)

Page Table Entries (PTE’s)

Autor: Mariano Mercado

Page 16: Procesador IA-32 - Clase5 - Paginacion - 2011

Segmentación y Paginación de Memoria

SelectorSelector DesplazamientoDesplazamientoEspacio LinealEspacio Lineal

Dirección Lógica o puntero farDirección Lógica o puntero farEspacio Físico Espacio Físico

de de DireccionesDirecciones

Dirección LinealDirección Lineal

DirectorioDirectorio TablaTabla31 022 12

OffsetOffset

Espacio Lineal Espacio Lineal de Direcciones de Direcciones

(4Gbytes)(4Gbytes)

SegmentoSegmento

Dirección LinealDirección Lineal

T bl dT bl dDirectorio deDirectorio deSegmentoSegmento

Dirección LinealDirección Lineal

Dirección FísicaDirección Física

PDE

Tabla de Tabla de PáginasPáginas

Directorio de Directorio de Tablas de Tablas de PáginasPáginas

Descriptor de Descriptor de SegmentoSegmento

PTE

PáginasPáginas PáginaPágina

Dirección BaseDirección Basedel Segmentodel Segmento

Tabla de Tabla de DescriptoresDescriptores

PAGINACIONSEGMENTACION

gg

Autor: Mariano Mercado

Page 17: Procesador IA-32 - Clase5 - Paginacion - 2011

Modelos de Memoria

Modelo Flat Básico

CS Tabla de DescriptoresFFFFFFFF

Código

Espacio Lineal de Direcciones (o Memoria Física)

CSSS Dirección Base

Dirección Base

Atributos

Atributos Límite

Límite

Tabla de Descriptores

DSES

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos Límite

Límite No Presente

ESFS

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos Límite

Límite

GS0

Datos y Pila

Tanto el Sistema Operativo como las aplicaciones 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. Aún si se accede a áreas en las que no existe memoria física.Autor: Mariano Mercado

Page 18: Procesador IA-32 - Clase5 - Paginacion - 2011

Modelos de Memoria

Modelo Flat ProtegidoTabla de Descriptores FFFFFFFF

Código

Espacio Lineal de Direcciones (o Memoria Física)

CSSS

Dirección BaseAtributos

Atributos Límite

Límite

p Código

No Presente

DSES

Dirección Base

Dirección Base

Di ió B

Atributos

Atributos Límite

Límite

No Presente

M iESFS

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos Límite

LímiteMemoria para E/S

GSDirección Base

0

Datos y Pila

Los segmentos tienen el límite acorde a la memoria física instalada en elLos segmentos tienen el límite acorde a la memoria física instalada en el sistema.

Autor: Mariano Mercado

Page 19: Procesador IA-32 - Clase5 - Paginacion - 2011

Modelos de Memoria.

Modelo Multi SegmentAtributos Límite

Tabla de Descriptores FFFFFFFFCódi

Espacio Lineal de Direcciones

(o Memoria Física)

CSSS

Dirección Base

Dirección Base

Atributos

Atributos Límite

Límite Código

Datos

DSES

Dirección Base

Dirección Base

Atributos

Atributos Límite

Límite

Pila

ESFSGS

Dirección Base

Dirección BaseAtributos

Atributos Límite

Límite Datos

GS Dirección BaseAtributos Límite

Datos

Datos

Dirección BaseAtributos Límite

0

Dirección BaseAtributos Límite

Autor: Mariano Mercado

Page 20: Procesador IA-32 - Clase5 - Paginacion - 2011

Protección a nivel de Páginas

Se combina con la Protección a nivel de segmentos, aportandogranularidad al sistema de protección dentro de un mismo segmento.

Al igual que en los segmentos los chequeos se realizan dentro de laventana de decodificación y ejecución de la instrucción.

De acuerdo al sistema de protección de páginas (reflejado en laestructura del descriptor de página) hay dos niveles: Usuario (bitU/S 1) S i (U/S 0) l ti d á i d d L tU/S=1) y Supervisor (U/S=0), y el tipo de página puede ser de Lecturao Lectura/Escritura.

Cualquier violación al sistema de protección de páginas genera unaExcepción 0Eh definida por Intel como Page Fault (#PF), yrebautizada bajo el misterioso y tristemente familiar nombre de “Error

0Eh” l Si t O ti ))grave 0Eh” en algunos Sistemas Operativos.... ;;--))

Autor: Mariano Mercado

Page 21: Procesador IA-32 - Clase5 - Paginacion - 2011

Protección a nivel de PáginasLos CPL’s 0, 1, y 2 del sistema de protección de segmentos mapeanen el nivel Supervisor del esquema de páginas. El CPL 3, secorresponde con el nivel Usuario.

En el modo supervisor se accede por default a todas las páginas y enmodo usuario solo a las que tienen en su descriptor el bit U/S = 1

A partir del 80486, el bit 16 del registro CR0, se utiliza bajo el nombreWP (Write Protect).WP (Write Protect).2 Cuando el procesador esta en Modo Supervisor, por default, accede a

cualquier página con permiso de lectura y/o escritura. (Se ignora laprotección de escritura)

2 Si es 1 impide al procesador escribir una página Read Only de nivelusuario desde código que ejecuta en una página en Modo Supervisor .

El procesador chequea la protección en el Page Directory Entry (PDE),y en cada Page Table Entry.

Autor: Mariano Mercado

Page 22: Procesador IA-32 - Clase5 - Paginacion - 2011

Combinación de Protección a nivel de Páginas y Segmentos

El procesador evaluará siempre en primer lugar la protección desegmentos, ya que la Unidad de Paginación puede o no estarhabilitada.

Si genera una excepción por segmentación no se genera la #PF.

La protección a nivel de página no pisa a la protección a nivel desegmento. Paginar un segmento de código fijando permisos de

it l á i iti á ibi l i di á lescritura en las páginas, no permitirá escribir, ya que lo impedirá elmecanismo de protección de segmentos.

En el caso de un segmento de datos con permiso de escritura, lapaginación permite definir diferentes permisos para cada página con locual podremos dividirlo en áreas de lectura solamente y otras del t / itlectura/escritura.

Autor: Mariano Mercado