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 frente a DRAM) y problemas de localidad (en el chip frente a 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?
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 (la latencia más baja), en comparación con la capacidad que debe tener para proporcionar una tasa de "aciertos" adecuada. Por lo tanto, está construido con transistores más grandes y pistas de metal más anchas, intercambiando espacio y potencia por velocidad. Los cachés de nivel superior deben tener capacidades más altas, pero pueden darse el lujo de ser más lentos, por lo que utilizan transistores más pequeños que se empaquetan de forma más compacta.
L1 generalmente se usa como 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 y más rápido suele ser. Como regla general aproximada para los procesadores de PC:
Caché L1: acceso de 2-3 ciclos de reloj
Caché L2: acceso a ~10 ciclos de reloj
Caché L3: acceso a ~20-30 ciclos de reloj
El diseño de la caché L1 debe ser para maximizar la tasa de aciertos (la probabilidad de que la dirección de instrucción deseada o la dirección de datos estén en la caché) mientras se mantiene la latencia de la caché lo más baja posible. Intel utiliza una caché L1 con una latencia de 3 ciclos. La caché L2 se comparte entre una o más cachés L1 y, a menudo, es mucho, mucho más grande. Mientras que la caché L1 está diseñada para maximizar la tasa de aciertos, la caché L2 está diseñada para minimizar la penalización por error (la demora en la que se incurre cuando ocurre un error L1). Para los chips que tienen cachés L3, el propósito es específico del diseño del chip. Para Intel, las cachés L3 aparecieron por primera vez en sistemas multiprocesador de 4 vías (procesadores Pentium 4 Xeon MP) en 2002. Las cachés L3 en este sentido redujeron en gran medida los retrasos en entornos de subprocesos múltiples y quitaron carga al FSB. En el momento,
Cita obtenida aquí de la respuesta de "Pinhedd".
Hay varias razones por las que la velocidad es inversamente proporcional al tamaño. Lo primero que me viene a la mente es el dominio físico 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 tardar tanto como una señal eléctrica tarda en recorrer la distancia más larga dentro del mosaico de memoria y volver. Otra razón relacionada es la separación de los dominios del reloj. Cada CPU funciona con su propio generador de reloj, lo que permite que la CPU funcione con relojes de varios GHz. El caché de nivel 1 se ejecuta y se sincroniza con el reloj de la CPU, que es el más rápido del sistema. El caché de nivel 2, por otro lado, tiene que servir a muchas CPU y se ejecuta en un dominio de reloj diferente (más lento). No solo el reloj L2 es más lento (mosaico más grande), sino que cruzar un límite de dominio de reloj agrega otro retraso. Luego, por supuesto, están los problemas de fan-out (ya mencionados).
Aparte de las características de rendimiento inherentes, la localidad también tiene un papel (L1 está más cerca de la CPU). Según lo que todo programador debe saber sobre la memoria :
Es interesante notar que para el caché L2 en matriz, una gran parte (probablemente incluso la mayoría) del tiempo de acceso es causado por retrasos en los cables. 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, pasar de 60 nm para Merom a 45 nm para Penryn en la línea de Intel) puede mejorar esos números.
Ignacio Vázquez-Abrams
Ignacio Vázquez-Abrams
hassan789
pedro cordes