Para obtener el máximo rendimiento de procesadores como ARM710a y StrongARM SA-110, las cachés deben estar habilitadas. En una aplicación, esto podría hacerlo el microkernel subyacente del sistema, por ejemplo. Sin embargo, en ausencia de tal kernel, la aplicación debe habilitar el almacenamiento en caché.
prólogo
Para obtener el máximo rendimiento de procesadores como ARM710a y StrongARM SA-110, las cachés deben estar habilitadas. En una aplicación, esto podría hacerlo el microkernel subyacente del sistema, por ejemplo. Sin embargo, en ausencia de tal kernel, la aplicación debe habilitar el almacenamiento en caché.
Hay dos sistemas de caché principales que se utilizan en los procesadores ARM. estos son:
- Unidad de gestión de memoria (ARM610, ARM710a, SA-110, etc.)
- Unidad de protección (como ARM940T)
Esta nota de aplicación proporciona código de muestra para habilitar cachés en ambos tipos de procesadores ARM, así como una introducción al módulo PageTables de ARMulator. También describe:
- Montaje repetido con @armasm@ y @tasm@
- Montaje condicional @armasm@ y @tasm@
- Macros @armasm@ y @tasm@
- Ensamblador en línea con compilador C
- función en línea
descripción general
Unidad de gestión de memoria (MMU)
La unidad de gestión de memoria proporciona un sistema de memoria virtual completo. Consulte el Manual de referencia de la arquitectura ARM (ARM DDI 0100) para obtener una descripción detallada. En pocas palabras, utiliza tablas de páginas fuera del chip para escribir en el procesador:
- Asignación de dirección virtual a dirección física
- autoridad de acceso
- Caché y control de búfer de escritura.
Se admiten tres tamaños de página (1 MB, 64 kB y 4 kB). (También hay subpáginas de 16kB y 1kB para el control de acceso). Un sistema adicional de “dominios” funciona para proporcionar una protección de acceso eficiente en un entorno de subprocesos múltiples.
Este sistema permite, por ejemplo, múltiples espacios de direcciones virtuales con paginación e intercambio bajo demanda. Las versiones del sistema operativo UNIX se han portado a computadoras basadas en ARM utilizando una unidad de administración de memoria de este tipo.
Las ventajas de este sistema son:
- Control total de la memoria con granularidad fina
- Protección basada en dominio
- Traducción de direcciones virtuales a direcciones físicas.
El principal inconveniente es que requiere una tabla de páginas en memoria (no puede habilitar el almacenamiento en caché sin habilitar la MMU).
Unidad de protección (PU)
Las unidades de protección brindan acceso y control de caché para entornos más integrados. Consulte la hoja de datos ARM940T (ARM DDI 0092) para obtener una descripción detallada.
Brevemente, la unidad de protección tiene un conjunto de registros en chip y contiene la descripción a continuación.
- derechos de acceso
- Caché y control de búfer de escritura para hasta 8 regiones de memoria (programables).
Este sistema permite la protección básica de la memoria y el control de caché para su uso en aplicaciones integradas, por ejemplo.
Las ventajas de este sistema son:
- El control de acceso está completamente en el chip (no se requieren tablas fuera del chip).
- Proporciona cuatro niveles de control de acceso, caché y control de búfer de escritura
- Controle por separado las cachés de instrucciones y datos.
Los inconvenientes son:
- pocas regiones
- Restricciones en el tamaño y la alineación de la región.
ejemplo
diseño de memoria
Aunque los dos sistemas son diferentes, ambos usan el coprocesador 15 para controlar el sistema. Ambos sistemas tienen suficientes características comunes para distinguir cuál se utiliza. Como ejemplo, considere el mapa de memoria que se muestra en la Figura 1.
- Los 16 MB inferiores de memoria están marcados como almacenables en caché. Aquí es donde se basan el código de la aplicación y el montón.
- El 1 megabyte de memoria justo por debajo de 2 GB también se marca como almacenable en caché porque ahí es donde se coloca la pila.
- La memoria restante no se puede almacenar en caché ni en búfer. En un sistema real, también podría marcar esa memoria como “sin acceso” (dejar de generar).