Mapa de memoria

Estructura de datos

En informática , un mapa de memoria es una estructura de datos (que normalmente reside en la propia memoria) que indica cómo está distribuida la memoria . El término "mapa de memoria" tiene distintos significados en distintos contextos.

  1. Es la organización de caché más rápida y flexible que utiliza una memoria asociativa . La memoria asociativa almacena tanto la dirección como el contenido de la palabra de memoria. [ se necesita más explicación ]
  2. En el proceso de arranque de algunas computadoras, se puede transmitir un mapa de memoria desde el firmware para indicarle al núcleo del sistema operativo la distribución de la memoria. Este mapa contiene información sobre el tamaño de la memoria total, las regiones reservadas y también puede brindar otros detalles específicos de la arquitectura.
  3. En las implementaciones de memoria virtual y unidades de administración de memoria , un mapa de memoria se refiere a tablas de páginas o registros de hardware , que almacenan la asignación entre el diseño de memoria virtual de un determinado proceso y cómo ese espacio se relaciona con las direcciones de memoria física.
  4. En los programas de depuración nativos , un mapa de memoria se refiere a la asignación entre archivos ejecutables (o) de biblioteca cargados y regiones de memoria. Estos mapas de memoria se utilizan para convertir direcciones de memoria (como punteros de función ) en símbolos reales.

Mapa de memoria del BIOS de la PC

La BIOS de IBM Personal Computer y compatibles ofrece un conjunto de rutinas que pueden ser utilizadas por el sistema operativo o las aplicaciones para obtener la distribución de la memoria. Algunas de las rutinas disponibles son:

Función BIOS: INT 0x15, AX=0xE801: [1]

Esta llamada de interrupción del BIOS se utiliza para obtener el tamaño de la memoria para configuraciones de 64 MB o más. Es compatible con los BIOS AMI con fecha del 23 de agosto de 1994 o posterior. El llamador establece AX en 0xE801 y luego ejecuta int 0x15. Si se ha producido algún error, la rutina retorna con CF (Carry Flag) establecido en 1. Si no hay ningún error, la rutina retorna con CF clear y el estado de los registros se describe de la siguiente manera:

RegistroDescripción del valor
EAXMemoria extendida entre 1M y 16M, en KB. (Valor máximo: 0x3C00 = 15360KB).
EBXRecuento de bloques de 64K por encima de 16M.
Extracción electrostáticaMemoria configurada de 1M a 16M, en KB.
EDXRecuento de bloques de 64K configurados por encima de 16M.

Función BIOS: INT 0x15, AX=0xE820 - OBTENER MAPA DE MEMORIA DEL SISTEMA: [2]

Aporte:

RegistroDescripción del valor
EAX0x0000E820
EBXValor de continuación o 0x0 para comenzar desde el principio del mapa.
Extracción electrostáticaTamaño del buffer para el resultado (20 bytes).
EDX0x534D4150 (ASCII para 'SMAP')
ES:DIsegmento: ubicación de desplazamiento del búfer para el resultado.

Estructura del buffer SMAP:

CompensarTamañoDescripción del valor
0PALABRAQ (8 bytes)Dirección base de la región del mapa de memoria a la que hace referencia EBX.
8PALABRAQ (8 bytes)Longitud en bytes.
16DWORD (4 bytes)Tipo de rango de direcciones.

Cómo se utiliza: El sistema operativo debe asignar un buffer SMAP en la memoria (buffer de 20 bytes). Luego, configure los registros como se especifica en la tabla "Entrada". En la primera llamada, EBX debe configurarse en 0. El siguiente paso es llamar a INT 0x15. Si no hay ningún error, la llamada de interrupción regresa con CF borrado y el buffer lleno con datos que representan la primera región del mapa de memoria. EBX es actualizado por BIOS para que cuando el SO vuelva a llamar a la rutina, se devuelva la siguiente región en el buffer. BIOS configura EBX en cero si todo está listo.

Véase también

  • BIOS
  • Mapa RAM de Mark Russinovich

Referencias

  1. ^ "INT 15 - Phoenix BIOS v4.0 - OBTENER TAMAÑO DE MEMORIA PARA CONFIGURACIONES >64M".
  2. ^ "INT 15 - BIOS más nuevas - OBTENER MAPA DE MEMORIA DEL SISTEMA".


Obtenido de "https://es.wikipedia.org/w/index.php?title=Mapa_de_la_memoria&oldid=1169022501"