Me refiero a la página de Wikipedia sobre memoria virtual , el último párrafo en la sección Uso:
Los sistemas integrados y otros sistemas informáticos de propósito especial que requieren tiempos de respuesta muy rápidos y/o muy consistentes pueden optar por no utilizar la memoria virtual debido a la disminución del determinismo; Los sistemas de memoria virtual desencadenan trampas impredecibles que pueden producir retrasos no deseados e impredecibles en respuesta a la entrada, especialmente si la trampa requiere que los datos se lean en la memoria principal desde la memoria secundaria. El hardware para traducir direcciones virtuales a direcciones físicas generalmente requiere un área de chip significativa para implementar, y no todos los chips utilizados en sistemas integrados incluyen ese hardware, que es otra razón por la que algunos de esos sistemas no usan memoria virtual.
Sin embargo, por ejemplo, en CodeWarrior IDE (usado con MCU NXP) o STM32 Cube IDE (usado con MCU STM32), podemos ver monitores de memoria de memoria virtual, como este:
¿Cómo manejan los microcontroladores el direccionamiento de memoria y la traducción de direcciones de memoria? ¿Qué es esta "área de chip significativa"?
El hardware para traducir direcciones virtuales a direcciones físicas generalmente requiere un área de chip significativa para implementar, y no todos los chips utilizados en sistemas integrados incluyen ese hardware, que es otra razón por la que algunos de esos sistemas no usan memoria virtual.
Esto se llama "MMU". Para ser claros, no está separado, si está presente, será parte del mismo troquel que el microcontrolador.
Generalmente, los sistemas Cortex-M no tienen MMU y Cortex-A sí.
El área significativa proviene de las tablas de páginas: esta es una matriz de direcciones, es decir, una porción significativa de memoria, que forma una tabla de búsqueda donde el HW (la MMU) busca la dirección física asignada a una dirección virtual (y se queja si la virtual la dirección no está asignada). Estas tablas de páginas son la mayor parte del área de MMU.
La queja se conoce como "falla de página" y es manejada por el sistema operativo que obtiene el contenido de la memoria virtual del disco en una página libre de memoria física. Esto puede implicar liberar algo de memoria física primero. Por lo general, implica encontrar la página más antigua ("usada menos recientemente" o LRU), guardarla en el disco, marcar su entrada en la tabla del buscapersonas como no asignada y luego marcar la nueva entrada en la tabla del buscapersonas con la dirección física recién liberada antes de cargar los nuevos datos.
Los pequeños sistemas integrados no tienen esta traducción; la dirección "virtual" ES la dirección física.
(¡A menudo no tienen un sistema operativo, ni tampoco un disco!)
pjc50
brahans
broma
Supa Nova