Algunos núcleos ARM como la familia de núcleos ARM9 tienen una arquitectura Harvard, al menos a nivel de caché. Es decir, acceden a dos cachés separados, un I-cache para instrucciones y un D-cache para datos (ejemplo ARM926EJ-S).
Sin embargo, los cachés de I & D terminan siendo interconectados externamente con SDRAM normal y corriente. Así que parece que a nivel de RAM volvemos al diseño de von Neumann donde una tienda (SDRAM) contiene instrucciones > y < datos.
En los diseños de ejemplo que he visto, parece haber un solo bus que conecta la SDRAM con el chip SOC.
¿Cómo se diferencian, clasifican y enrutan las instrucciones y los datos desde el bus combinado que conecta la SDRAM externa con las cachés I y D internas?
La lógica de control registra por qué emitió una búsqueda en particular a una dirección en particular, por lo que puede hacer algo sensato con el resultado. Habrá una pequeña cola de recuperaciones pendientes (recuerde, la recuperación de DRAM puede tardar cientos de ciclos). Cuando llega un valor, se vuelve a escribir en la parte de la arquitectura que lo solicitó y la parte relevante de la canalización del procesador se desata.
el caché L1 a menudo está en el núcleo del brazo, sram, muy rápido, L2 puede estar fuera del chip, puede que no.
La verdadera respuesta a su pregunta es ir a infocenter.arm.com, luego ir al enlace AMBA en el lado izquierdo y luego descargar una de las especificaciones AMBA o AXI, incluso la más antigua AMBA2 está bien.
Dentro del núcleo, si hay un caché L1, el procesador sabe si un acceso a la memoria es una obtención de instrucciones o datos, y esa información se coloca en el bus interno y, si el caché está habilitado, buscará ese resultado antes de ir al borde de el núcleo. el borde del núcleo es una especie de bus amba, ahb o axi que tiene como uno de los bits en el bus un tipo de acceso que incluye, entre otras cosas, caché o no. Entonces, lo que sea que esté pegado a eso, en particular si el proveedor ha comprado la lógica de caché L2 del brazo para pegarlo en este núcleo, esa lógica L2, usando los elementos en el bus, buscará y posiblemente devolverá el resultado al núcleo. De lo contrario, vaya a la memoria principal en el otro lado del caché l2 (también un bus amba/axi/lo que sea) para resolver la transacción o desalojar algo necesario para completar la transacción, etc.
Las diferencias en los sabores de los buses ARM o versiones, pueden/brindarán más o menos información dependiendo de los detalles del bus. Pero si el sistema es capaz de tener un caché, la transacción indicará que se puede almacenar en caché o no e indicará de alguna manera las instrucciones de los datos (si ese caché puede separar los dos, L1 podría y L2 podría no, por ejemplo, L1 en cierta medida impulsa lo que está en L2)
viejo contador de tiempo
viejo contador de tiempo
Pablo A. Clayton
viejo contador de tiempo