Estoy tratando de entender por qué ciertas memorias caché de la 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 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é es L1 más rápido?
14
Respuestas:
No, no son del mismo tipo de RAM, aunque estén en el mismo chip que usa el mismo proceso de fabricación.
De todos los cachés, el caché L1 necesita tener el tiempo de acceso más rápido posible (latencia más baja), en comparación con la capacidad que necesita para proporcionar una tasa de "acierto" 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 usan transistores más pequeños que están más apretados.
fuente
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é, menor 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 2-3
Caché L2: ~ 10 ciclos de acceso de reloj
Caché L3: ~ 20-30 acceso de ciclo de reloj
Cita obtenida aquí de la respuesta de "Pinhedd".
fuente
Hay varias razones por las cuales la velocidad es inversamente proporcional al tamaño. Lo primero que 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 llevar tanto tiempo como una señal eléctrica para recorrer la mayor distancia dentro del mosaico de memoria y viceversa. Otra razón relacionada es la separación de dominios de reloj. Cada CPU funciona con su propio generador de reloj, que permite que la CPU se ejecute en relojes de varios GHz. La caché de nivel 1 se ejecuta en 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, debe 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 al cruzar un límite de dominio de reloj agrega otro retraso. Luego, por supuesto, están los problemas de despliegue (ya mencionados).
fuente
Además 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 :
fuente