Articulo de referencia

Modelo de memoria plana

El modelo de memoria plana o modelo de memoria lineal se refiere a un paradigma de direccionamiento de memoria en el que " la memoria aparece para el programa como un único espa...

El modelo de memoria plana o modelo de memoria lineal se refiere a un paradigma de direccionamiento de memoria en el que " la memoria aparece para el programa como un único espacio de direcciones contiguo ". [ 1 ] La CPU puede direccionar directamente (y linealmente ) todas las ubicaciones de memoria disponibles sin tener que recurrir a ningún tipo de conmutación de bancos , segmentación de memoria o esquemas de paginación .

La gestión de memoria y la traducción de direcciones aún pueden implementarse sobre un modelo de memoria plana para facilitar la funcionalidad del sistema operativo , la protección de recursos, la multitarea o para aumentar la capacidad de memoria más allá de los límites impuestos por el espacio de direcciones físicas del procesador, pero la característica clave de un modelo de memoria plana es que todo el espacio de memoria es lineal, secuencial y contiguo.

En un controlador sencillo o en una aplicación integrada de una sola tarea , donde la gestión de memoria no es necesaria ni deseable, el modelo de memoria plana es el más apropiado, ya que proporciona la interfaz más simple desde el punto de vista del programador, con acceso directo a todas las ubicaciones de memoria y una complejidad de diseño mínima.

En un sistema informático de propósito general, que requiere multitarea, asignación de recursos y protección, el sistema de memoria plana debe complementarse con algún esquema de gestión de memoria, que normalmente se implementa mediante una combinación de hardware dedicado (dentro o fuera de la CPU) y software integrado en el sistema operativo. El modelo de memoria plana (a nivel de direccionamiento físico) sigue ofreciendo la mayor flexibilidad para implementar este tipo de gestión de memoria.

Modelos de memoria

La mayoría de los modelos de memoria modernos se dividen en tres categorías:

Modelo de memoria plana sin paginar

  • Interfaz sencilla para programadores, diseño limpio.
  • Máxima flexibilidad gracias a la velocidad de acceso uniforme (los cambios de página de memoria segmentada suelen generar latencia variable debido a accesos más prolongados a otras páginas, ya sea por lógica adicional de la CPU al cambiar de página o por requisitos de hardware).
  • Hardware y espacio de CPU mínimos para aplicaciones de controlador sencillas.
  • Máxima velocidad de ejecución, ya que no es necesario acceder a estructuras de datos auxiliares como una tabla de segmentos o páginas en la RAM.
  • No apto para sistemas operativos de computación general o multitarea.

Modelo de memoria paginada

  • Adecuado para multitarea, diseño general de sistemas operativos, protección y asignación de recursos.
  • Adecuado para la implementación de memoria virtual
  • Más espacio para la CPU, velocidad algo menor.
  • Más complejo de programar
  • Límites de página rígidos, no siempre la opción más eficiente en cuanto a memoria.
  • Este modelo de memoria es necesario al usar la extensión de dirección física (PAE) en procesadores Pentium Pro y posteriores x86 para admitir direcciones físicas de 36 bits y así direccionar más de 4 GB de memoria física.

Modelo de memoria segmentada x86

  • Similar a la memoria paginada, pero la paginación se logra mediante la suma implícita de dos registros desplazados relativamente: segmento:desplazamiento
  • Límites de página variables, más eficientes y flexibles que el modelo de memoria paginada.
  • Bastante complejo y engorroso desde el punto de vista de un programador.
  • Más difícil para los compiladores
  • Las páginas pueden superponerse / protección y aislamiento deficientes de los recursos
  • Correspondencia de traducción de direcciones de muchos a uno: Muchas combinaciones de segmento:desplazamiento se resuelven en la misma dirección física.
  • Mayor probabilidad de errores de programación
  • Implementado en los procesadores Intel 8086, 8088 , 80186 y 80286 originales , y compatible con el 80386 y todos los procesadores x86 posteriores , hasta los actuales Pentium y Core 2. Este modelo de memoria se ha mantenido desde entonces en los procesadores x86, que ahora ofrecen funcionamiento multimodo y rara vez operan en el modo segmentado compatible. Consulte la sección sobre segmentación de memoria x86 para obtener más detalles.
  • Ahorra memoria RAM al mover la dirección del segmento, lo que permite saltos cortos que requieren menos bytes.

Dentro de las arquitecturas x86, cuando se opera en modo real (o emulación), la dirección física se calcula como: [ 2 ]

Dirección = 16 × segmento + desplazamiento

(Es decir, el registro de segmento de 16 bits se desplaza 4 bits a la izquierda y se le suma un desplazamiento de 16 bits, lo que da como resultado una dirección de 20 bits).

Véase también

Referencias

  1. González, Antonio; Latorre, Fernando; Magklis, Grigorios (2011). Microarquitectura del procesador: una perspectiva de implementación . Morgan & Claypool Publishers. pág.  72. ISBN 9781608454525.
  2. Descripción general del modo real "La dirección física se puede calcular como Valor_en_registro_de_segmento
    • 16 + Valor_en_el_registro_de_desplazamiento."