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 ante 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 banco , segmentación de memoria o esquemas de paginación .
La gestión de la memoria y la traducción de direcciones todavía se pueden implementar 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 la memoria más allá de los límites impuestos por el espacio de direcciones físicas del procesador, pero la 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 simple, o en una aplicación integrada de una sola tarea , donde la administración de memoria no es necesaria ni deseable, el modelo de memoria plana es el más apropiado, porque proporciona la interfaz más simple desde el punto de vista del programador, con acceso directo a toda la memoria. ubicaciones y mínima complejidad de diseño.
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) aún proporciona 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 clasifican en una de tres categorías:
Modelo de memoria plana
- Interfaz sencilla para programadores, diseño limpio.
- Mayor flexibilidad debido a la velocidad de acceso uniforme (los cambios de página de memoria segmentada generalmente incurren en latencia variada debido a accesos más prolongados a otras páginas, ya sea debido a la lógica adicional de la CPU al cambiar de página o a los requisitos de hardware)
- Espacio mínimo de hardware y CPU para aplicaciones de controlador simples [ se necesita aclaración ]
- Velocidad máxima de ejecución. Simplemente no hay latencia debido a la CPU o la lógica. [ ¿por qué? ]
- No apto para informática general o sistemas operativos multitarea a menos que estén mejorados [ ¿por qué? ] con hardware/software de gestión de memoria adicional; pero este es casi siempre el caso de los procesadores CISC modernos , que implementan tecnología avanzada de protección y administración de memoria en un modelo de memoria plana. Linux , por ejemplo, utiliza un modelo de memoria plana; consulte Segmentación de memoria x86#Prácticas .
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 de CPU, velocidad algo menor
- Más complejo de programar
- Límites de página rígidos, no siempre los más eficientes en memoria
- Este modelo de memoria es necesario cuando se utiliza la extensión de dirección física (PAE) en Pentium Pro y CPU x86 posteriores para admitir direcciones físicas de 36 bits para 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 adición implícita de dos registros relativamente desplazados: segmento:desplazamiento
- Límites de página variables, más eficiente y flexible que el modelo de memoria paginada
- Bastante complejo e incómodo desde el punto de vista de un programador.
- Más difícil para los compiladores
- Las páginas pueden superponerse/pobre protección y aislamiento de recursos
- Correspondencia de traducción de varias direcciones a una: muchas combinaciones de segmento:desplazamiento se resuelven en la misma dirección física
- Mayor probabilidad de errores de programación
- Implementado en los Intel 8086, 8088 , 80186 , 80286 originales y compatible con 80386 y todas las máquinas x86 posteriores hasta los procesadores Pentium y Core 2 actuales . Este modelo de memoria se ha mantenido desde entonces en las máquinas x86, que ahora proporcionan operación multimodo y rara vez operan en el modo segmentado compatible. [ se necesita aclaración ] Consulte Segmentación de memoria x86 para obtener más detalles.
- Ahorra RAM moviendo la dirección del segmento, esto 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 del segmento de 16 bits se desplaza 4 bits hacia la izquierda y se suma a un desplazamiento de 16 bits, lo que da como resultado una dirección de 20 bits).
Ver también
Referencias
- ^ González, Antonio; Latorre, Fernando; Magklis, Grigorios (2011). Microarquitectura del procesador: una perspectiva de implementación. Editores Morgan y Claypool. pag. 72.ISBN 9781608454525.
- ^ Descripción general del modo real "La dirección física se puede calcular como Value_in_segment_register
- 16 + Valor_en_registro_compensación."