Upload
lylien
View
222
Download
0
Embed Size (px)
Citation preview
Microprocesadores
Procesador IA-32 - Gestion de Memoria en 64 bits
Alejandro Furfaro
Mayo de 2012
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
Segmentacion Generalidades
Descriptores de segmento en 64 bits
Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 3 / 18
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
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
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
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
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
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
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
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
Paginacion Modos de Paginacion
Estructura General de Paginacion
Alejandro Furfaro () Procesador IA-32 - Gestion de Memoria en 64 bits Mayo de 2012 12 / 18
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
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
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
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
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
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