Los procesadores caché L1, L2 y L3 están hechos de SRAM?


10

¿Los cachés del procesador L1, L2 y L3 están todos hechos de SRAM? Si es cierto, ¿por qué L1 es más rápido que L2 y L2 es más rápido que L3? No entendí esta parte cuando leí sobre ellos.


Pregunta relacionada: ¿Por qué necesitamos múltiples niveles de memoria caché? . También algo relacionado: ¿Qué es realmente el caché multinivel en los procesadores? . De tu comentario allí, veo que ya encontraste la última pregunta.
Paul A. Clayton

Respuestas:


12

En general , todos se implementan con SRAM.

(Los chips POWER y zArchitecture de IBM usan memoria DRAM para L3. Esto se llama DRAM incrustado porque se implementa en el mismo tipo de tecnología de proceso que la lógica, lo que permite que la lógica rápida se integre en el mismo chip que la DRAM. el chip L3 usó eDRAM; POWER7 tiene el L3 en el mismo chip que los núcleos de procesamiento).

Aunque usan SRAM, no todos usan el mismo diseño de SRAM. SRAM para L2 y L3 están optimizados para el tamaño (para aumentar la capacidad dado un tamaño de chip fabricable limitado o reducir el costo de una capacidad dada) mientras que es más probable que la SRAM para L1 esté optimizada para la velocidad.

Más importante aún, el tiempo de acceso está relacionado con el tamaño físico del almacenamiento. Con un diseño bidimensional, se puede esperar que la latencia de acceso físico sea aproximadamente proporcional a la raíz cuadrada de la capacidad. (La arquitectura de caché no uniforme aprovecha esto para proporcionar un subconjunto de caché con una latencia más baja. Los segmentos L3 de los procesadores Intel recientes tienen un efecto similar; un golpe en el segmento local tiene una latencia significativamente más baja). Este efecto puede hacer que un caché DRAM sea más rápido que una memoria caché SRAM a altas capacidades porque la DRAM es físicamente más pequeña.

Otro factor es que la mayoría de las memorias caché L2 y L3 utilizan el acceso en serie de etiquetas y datos, donde la mayoría de las memorias caché L1 acceden a etiquetas y datos en paralelo. Esta es una optimización de energía (las tasas de fallas L2 son más altas que las tasas de fallas L1, por lo que es más probable que el acceso a los datos se desperdicie; el acceso a los datos L2 generalmente requiere más energía, en relación con la capacidad), y los cachés L2 generalmente tienen una mayor asociatividad lo que significa que más entradas de datos tendrían que leerse especulativamente). Obviamente, tener que esperar a que coincida la etiqueta antes de acceder a los datos aumentará el tiempo requerido para recuperar los datos. (El acceso a L2 también generalmente solo comienza después de que se confirma una falla de L1, por lo que la latencia de la detección de fallas de L1 se agrega a la latencia de acceso total de L2).

Además, el caché L2 está físicamente más alejado del motor de ejecución. Colocar el caché de datos L1 cerca del motor de ejecución (de modo que el caso común de un golpe L1 sea rápido) generalmente significa que L2 debe colocarse más lejos.


Gran respuesta. Pero no estoy de acuerdo con su afirmación de que las tasas de falla L2 son más altas que las tasas de falla L1. A medida que avanzamos más abajo en la jerarquía de la memoria, tenemos estructuras más grandes que proporcionan errores menores pero con mayor latencia.
Harshavardhan Ramanna

@HarshavardhanRamanna Sí aumenta la capacidad y la asociatividad ayuda a la tasa de fallas, pero los niveles más bajos filtran los accesos (la transferencia tradicional de un bloque completo desde L2 filtra la localidad espacial a corto plazo dentro del bloque; el golpe solo cuenta para un acceso en L2 mientras que el es probable que el bloque en sí mismo proporcione visitas en L1 para accesos adicionales). La tasa de falla total disminuye (por ejemplo, un L2 con una tasa de acierto decente del 80% y un L1 con una tasa de acierto del 95% obtiene una tasa de acierto total del 99%).
Paul A. Clayton
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.