Clasificación de los datos de las instrucciones (ARM I-cache y D-cache)

3

Algunos núcleos ARM como la familia de núcleos ARM9 tienen una arquitectura de Harvard, al menos a nivel de caché. Es decir, acceden a dos cachés independientes, un caché I para instrucciones y un caché D para datos (ejemplo ARM926EJ-S).

Sin embargo, el I & Los cachés D terminan siendo interconectados a SDRAM de vainilla simple externamente. Por lo tanto, parece que en el nivel de RAM volvemos al diseño de von Neumann donde una tienda (SDRAM) contiene las instrucciones > y < datos.

En los diseños de ejemplo que he visto, parece que hay un solo bus que conecta la SDRAM con el chip SOC.

¿Cómo se diferencian, clasifican y enrutan las instrucciones y los datos del bus combinado que interconecta la SDRAM externa con los cachés internos I y D?

    
pregunta darbehdar

2 respuestas

5

La lógica de control registra por qué emitió una búsqueda particular a una dirección particular, por lo que puede hacer algo sensible con el resultado. Habrá una pequeña cola de recuperaciones sobresalientes (recuerde, obtener datos de DRAM puede durar cientos de ciclos). Al llegar un valor, se vuelve a escribir en la parte de la arquitectura que lo solicitó, y la parte relevante de la tubería del procesador no está bloqueada.

    
respondido por el pjc50
0

la memoria caché L1 está a menudo en el núcleo del brazo, sram, muy rápido, L2 podría estar fuera del chip podría no estarlo.

La respuesta real a su pregunta es ir a infocenter.arm.com, luego ir al enlace de AMBA en el lado izquierdo y luego descargar una de las especificaciones de AMBA o AXI, incluso la más antigua que existe AMBA2 está bien.

Dentro del núcleo, si hay un caché L1, el procesador sabe si un acceso a la memoria es un dato o datos de instrucciones, y esa información se coloca en el bus interno y si el caché está habilitado, buscará ese resultado antes de ir a El borde del núcleo. el borde del núcleo es un sabor de amba, ahb o bus axi que tiene como uno de los bits en el bus un tipo de acceso que incluye, entre otras cosas, cacheable o no. Entonces, todo lo que esté pegado a eso, en particular si el proveedor ha comprado la lógica de caché L2 de un brazo a otro en este núcleo, esa lógica L2, utilizando 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 / cualquier) para resolver la transacción o desalojar algo necesario para completar la transacción, etc.

Las diferencias en los sabores de los buses o versiones ARM pueden proporcionar más o menos información según los detalles del bus. Pero si el sistema es capaz de tener un caché, la transacción indicará o no en caché e indicará de alguna manera las instrucciones de los datos (si ese caché puede separar los dos, L1 podría y L2 no, por ejemplo, L1 en cierta medida controla qué está en L2)

    
respondido por el old_timer

Lea otras preguntas en las etiquetas