puertos de CPU y controladores de caché

0

He visto CPU que se ajustan a la arquitectura de Harvard con puertos dedicados para la memoria del programa y la memoria de datos. También he visto que los cachés de instrucciones y datos (cachés de lectura completa) están conectados a estos puertos.

¿Es posible que una CPU tenga solo un puerto [como una máquina Von-Neumann] y dos cachés dedicados [Instr-L1 y Data-L1] conectados al puerto único? Si los cachés fueran de tipo aparente, estoy pensando que esto podría ser posible. Si existiera una LLC, ¿cómo se conectaría esto al Instr-L1 y al Data-L1?

    
pregunta Raj

1 respuesta

0

Es posible acceder a cachés de datos e instrucciones por separado a través de una única interfaz física, e incluso podría haber tenido sentido cuando los cachés estaban fuera del chip y se usaron chips SRAM de productos básicos. Dados los límites de conteo de almohadillas / pines y el uso de SRAM de productos básicos, los cachés asignados directamente fueron comunes, agregar un bit a la dirección para seleccionar la memoria de datos o de la instrucción permitiría una única interfaz amplia (al doble de la velocidad) para proporcionar la mejor tasa de éxito de cachés separadas (bajo asignación directa).

Esto podría verse como una predicción de manera perfecta basada en el tipo de acceso en un conjunto de caché asociativa de dos vías.

Para cachés en el mismo chip, el uso de interfaces separadas evita la necesidad de manejar la contención. (Además de duplicar la velocidad de la interfaz y alternar entre la instrucción y los accesos de datos, la contención podría reducirse mediante el uso de una interfaz más amplia que obtenga dos o más instrucciones secuenciales por acceso. Dado que, típicamente, menos de la mitad de todas las instrucciones acceden a los datos de la memoria y las ramas tomadas (lo que podría sea la primera de las dos instrucciones obtenidas y salte a la segunda de las dos instrucciones) son menos de una quinta parte de las instrucciones, esto no tiene por qué degradar demasiado el rendimiento.)

Las interfaces separadas permiten optimizar la latencia al ubicar el almacenamiento de datos más cerca de las ALU y el almacenamiento de instrucciones más cerca de la lógica de decodificación de instrucciones. (Puede encontrar el Dyer Rolán et al. "Prácticamente dividir el caché: un mecanismo eficiente para distribuir Instrucciones y datos " ( PDF ) de interés.)

Normalmente, un caché L2 usa una sola interfaz. La sobrecarga de arbitraje es menos significativa porque la latencia de L2 ya es sustancial y los fallos de L1 no son el caso común.

    
respondido por el Paul A. Clayton

Lea otras preguntas en las etiquetas