18
Microprocesadores Procesador IA-32 - Gesti ´ on de Memoria en 64 bits Alejandro Furfaro Mayo de 2012

Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

  • Upload
    lylien

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Microprocesadores

Procesador IA-32 - Gestion de Memoria en 64 bits

Alejandro Furfaro

Mayo de 2012

Page 2: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Temario

1 Segmentacion

Generalidades

Sub Modos IA-32e

2 Paginacion

Modos de Paginacion

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 2 / 18

Page 3: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Generalidades

Descriptores de segmento en 64 bits

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 3 / 18

Page 4: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Generalidades

Direcciones

Seguimos conceptualmente con las mismas definiciones:

Direccion LogicaEs el mismo puntero far compuesto por el par de registros desegmento:offset, con la unica diferencia que ahora el offset es un valorde 64 bits.

Direccion LinealEs un numero de 64 bits, producto de sumar a la base del segmentoque se obtiene del descriptor, el valor del offset que en modo IA-32eesta en un registro de 64 bits.

Direccion FısicaEs el numero traducido por la Unidad de Paginacion a partir de ladireccion lineal de 64 bits, y que sale finalmente por los pines deaddress del procesador.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 4 / 18

Page 5: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Generalidades

Direccionamiento Canonico

La arquitectura de 64 bits define un espacio de direccioneslineales de 64 bits.Sin embargo la cantidad de bits soportados en una direccionLineal es implementacion dependiente. El primer procesador conextensiones de 64 bits soportaba direcciones lineales de 48 bitsPara manejar esta situacion se define el concepto de DireccionCanonica, como aquella que tiene los bits 63 hasta el massignificativo implementado por la arquitectura, o bien todos en ’0’o bien todos en ’1’.Si como resultado de la generacion de la direccion lineal, esta noresulta en un formato canonico, se genera una excepcion #GP enel caso de estar involucrados los registros CS, ES, o DS, o bienuna excepcion #SS en el caso de estar involucrado el registro SS.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 5 / 18

Page 6: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Generalidades

Espacio Fısico en 64 bits

Es implementacion dependiente

Para averiguarlo se debe emplear la instruccion CPUID, funcion0x80000008.En general la funcion se pasa como valor en el registroeax, y los resultados retornan en los registros de proposito general.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 6 / 18

Page 7: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Generalidades

Tipos de Descriptores de Sistema en 64 bits

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 7 / 18

Page 8: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Sub Modos IA-32e

¿Como se selecciona un sub-modo u otro?

El procesador no dispone de un mecanismo para seleccionar lossub-modosSi se ejecuta codigo en un segmento cuyo atributo L lo marcacomo de 64 bits y se esta en el modo IA-32e, el procesadortrabaja en el modo 64 bits.Si el procesador esta en modo IA-32e, pero se esta ejecutandocodigo en un segmento de 32 o 16 bits de acuerdo con susatributos en el descriptor correspondiente, el procesador seencuentra trabajando en el modo Compatibilidad.Ambos modos pueden coexistir. Un proceso puede trabajar enmodo 64 bits, y otro en modo compatibilidad.En el modo compatibilidad las reglas de segmentacion son lasmismas que en el Modo Protegido de 32 bits.En el modo 64 bits las reglas de modo protegido cambian

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 8 / 18

Page 9: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Segmentacion Sub Modos IA-32e

Reglas de segmentacion en 64 bits

En el modo 64 bits la segmentacion esta casi diluida.Los segmentos asociados a los registros CS, DS, ES, y SS,tienen direccion Base 0, a partir de la cual se despliega unespacio Lineal de direcciones que coincide con la direccionefectiva, es decir con el valor de offset contenido en el registro dedesplazamiento.Los registros FS y GS pueden tener otra direccion base de modode dejar alguna herramienta de direccionamiento mas amplia almenos al nivel del Sistema Operativo.En el modo 64 bits no se chequea el lımite de segmento contra elvalor del registro de desplazamiento.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 9 / 18

Page 10: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Hay tres modos de Paginacion posibles

Los tres modos dependen del estado de tres bits: CR0.PG, CR4.PAE,y IA32 EFER.LME

Paginacion de 32 bits.Para ingresar a este modo se debenestablecer los siguientes valores: CR0.PG = 1, CR4.PAE = 0, yIA32 EFER.LME = 0.Paginacion PAE.Para ingresar a este modo se deben establecerlos siguientes valores: CR0.PG = 1, CR4.PAE = 1, yIA32 EFER.LME = 0.Paginacion de 64 bits.Para ingresar a este modo se debenestablecer los siguientes valores: CR0.PG = 1, CR4.PAE = 1, yIA32 EFER.LME = 1.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 10 / 18

Page 11: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Caracterısticas de cada Modo

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 11 / 18

Page 12: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Estructura General de Paginacion

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 12 / 18

Page 13: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 32 bitsPara trabajar con paginas de 4 Kbytes se tiene la siguiente estructurajerarquica.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 13 / 18

Page 14: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 32 bitsPara trabajar con paginas de 4 Mbytes se tiene la siguiente estructurajerarquica.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 14 / 18

Page 15: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 64 bitsPara trabajar con paginas de 4Kbytes de tamano en modo 64 bits setiene la siguiente estructura jerarquica.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 15 / 18

Page 16: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 64 bitsPara trabajar con paginas de 2Mbytes de tamano en modo 64 bits setiene la siguiente estructura jerarquica.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 16 / 18

Page 17: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 64 bitsPara trabajar con paginas de 1 Gbyte de tamano (ouch!!) en modo 64bits se tiene la siguiente estructura jerarquica.

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 17 / 18

Page 18: Procesador IA-32 - Gestión de Memoria en 64 bitsafurfaro/descargas/Procesadores de 32... · Alejandro Furfaro Procesador IA-32 - Gestion de Memoria en 64 bits´ Mayo de 2012 10

Paginacion Modos de Paginacion

Paginacion de 64 bits

Paginas de 1 Gbyte de tamano ????Sip.... siempre que CPUID, funcion 0x80000001, devuelva el bit26 de EDX seteado....

Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 18 / 18