¿Por qué el caché L1 es más rápido que el caché L2?

14

Estoy tratando de entender por qué ciertas memorias caché de CPU son más rápidas que otras. Al comparar la memoria caché con algo como la memoria principal, existen diferencias en el tipo de memoria (SRAM vs DRAM) y problemas de localidad (en chip vs tener que atravesar un bus de memoria) que pueden afectar las velocidades de acceso. Pero L1 y L2 generalmente están en el mismo chip, o al menos en el mismo dado, y creo que son el mismo tipo de memoria. Entonces, ¿por qué L1 es más rápido?

    
pregunta ConditionRacer

4 respuestas

24

No, no son el mismo tipo de RAM, aunque están en el mismo chip que utiliza el mismo proceso de fabricación.

De todos los cachés, el caché L1 debe tener el tiempo de acceso más rápido posible (latencia más baja), en comparación con la cantidad de capacidad que debe tener para proporcionar una tasa de "aciertos" adecuada. Por lo tanto, se construye utilizando transistores más grandes y pistas metálicas más anchas, intercambiando espacio y potencia por velocidad. Los cachés de nivel superior deben tener capacidades más altas, pero pueden permitirse ser más lentos, por lo que utilizan transistores más pequeños que se empaquetan más apretadamente.

    
respondido por el Dave Tweed
5

L1 se usa generalmente como un almacenamiento para instrucciones decodificadas, mientras que L2 es un caché general para un solo núcleo. Cuanto más bajo es el caché, más pequeño es el tamaño y más rápido suele ser. Como regla general para los procesadores de PC:

Caché L1: acceso de ciclo de reloj de 2-3

Caché L2: ~ 10 ciclos de reloj de acceso

Caché L3: ~ 20-30 acceso de ciclo de reloj

  

El diseño de la memoria caché L1 debe ser maximizar la tasa de aciertos (la probabilidad de que la dirección de instrucciones o la dirección de datos deseadas estén en la memoria caché) mientras se mantiene la latencia de la memoria caché lo más baja posible. Intel usa un caché L1 con una latencia de 3 ciclos. El caché L2 se comparte entre uno o más cachés L1 y, a menudo, es mucho más grande. Mientras que la memoria caché L1 está diseñada para maximizar la tasa de aciertos, la memoria caché L2 está diseñada para minimizar la penalización por fallas (el retraso incurrido cuando ocurre una falla L1). Para los chips que tienen cachés L3, el propósito es específico para el diseño del chip. Para Intel, los cachés L3 aparecieron por primera vez en sistemas multiprocesadores de 4 vías (procesadores Pentium 4 Xeon MP) en 2002. El caché L3 en este sentido redujo enormemente los retrasos en entornos multihilo y eliminó la carga del FSB. En ese momento, los cachés L3 aún estaban dedicados a cada procesador central hasta que los procesadores Intel Dual-Core Xeon estuvieran disponibles en 2006. En 2009, los cachés L3 se convirtieron en un pilar de los microprocesadores Nehalem en sistemas de escritorio y servidores con múltiples zócalos.

Cita de aquí de la respuesta de "Pinhedd".

    
respondido por el Gonzik007
3

Hay varias razones por las que la velocidad es inversamente proporcional al tamaño. Lo primero que me viene a la mente es la dominación física de los conductores, donde la propagación de la señal se limita a algún factor de la velocidad de la luz. Una operación puede tomar tanto tiempo como una señal eléctrica para recorrer la distancia más larga dentro de la placa de memoria y hacia atrás. Otra razón relacionada es la separación de los dominios de reloj. Cada CPU funciona con su propio generador de reloj, que permite que la CPU se ejecute en relojes de varios GHz. El caché de nivel 1 se ejecuta en y se sincroniza con el reloj de la CPU, que es el más rápido en el sistema. El caché de nivel 2, por otro lado, tiene que servir a muchas CPU y se está ejecutando en un dominio de reloj diferente (más lento). No solo el reloj L2 es más lento (azulejo más grande) sino que para cruzar un límite de dominio del reloj agrega otro retraso. Luego, por supuesto, están los problemas de fan-out (ya mencionados).

    
respondido por el LR24
1

Además de las características de rendimiento inherentes, la localidad también tiene un rol (L1 está más cerca de la CPU). Según Lo que todo programador debería saber sobre la memoria :

  

Es interesante observar que para la memoria caché L2 en la matriz, una gran parte del tiempo de acceso (probablemente incluso la mayoría) es causada por demoras de conexión. Esta es una limitación física que solo puede empeorar con el aumento de los tamaños de caché. Solo la reducción del proceso (por ejemplo, al pasar de 60 nm para Merom a 45 nm para Penryn en la alineación de Intel) puede mejorar esos números.

    
respondido por el assylias

Lea otras preguntas en las etiquetas

Comentarios Recientes

Caché El caché L2 se usa en el código de manejo de Extensiones de caché. ¡El caché L2 tiene un tamaño de 64 bytes! Este caché tiene 1 bus, que se puede usar en dos canales: L2 + L1. Solo encontré una actualización. De hecho, voy a cambiar a microcódigos de 64 bits para fines de 2012. Sí, no soy yo, así que el infierno está sonriendo. :) De todos modos B / S - ¡deja de funcionar para mí! La función hash está habilitada con 99.3% de scripts cuda <| endoftext |> A la edad de seis años, David Boddy parece... Lees verder