¿Qué determina el tamaño máximo de un caché de CPU?

1

Mirando una lista de las CPU más recientes, veo varias de ellas con un tamaño de caché de 12 MB u 8 MB, bastante pequeño, en comparación con el tamaño cada vez mayor de los discos duros y el ram. Parece que se da por sentado que un caché de cpu siempre será pequeño, pero, ¿por qué? ¿Es económicamente poco factible, o hay razones de ingeniería por las que tiene que ser pequeño?

Estoy pensando en algunas criptomonedas (es decir, ethereum), que están diseñadas para ser duras para la memoria, por lo que la velocidad del algoritmo está limitada por el ancho de banda IO de la memoria, con la idea de que esto hace que sea imposible diseñar un chip personalizado específicamente para resolver ese algoritmo como se hizo para bitcoin. Pero, si alguien estuviera haciendo un chip personalizado de todos modos, ¿no podrían simplemente meter un gigabyte en el caché y eliminar el cuello de botella de IO?

    
pregunta Benubird

3 respuestas

6

Es un compromiso entre la mayor tasa de aciertos de una memoria caché grande y la velocidad más rápida de la memoria RAM de memoria caché más pequeña. La tasa de aciertos sigue una ley de rendimientos decrecientes a medida que el caché aumenta de tamaño.

Duplicar el tamaño de un caché grande solo puede aumentar en menos de un par de porcentajes en la tasa de aciertos, pero sin duda aumentará su tiempo de acceso, lo que ralentiza el rendimiento de la CPU.

    
respondido por el TonyM
2

El problema es el tamaño de la estructura frente a la velocidad de propagación de la señal.

Si construyes un caché más grande, ocupa más espacio físico, lo que significa que la longitud de las señales para viajar aumenta, lo que reduce la velocidad máxima de reloj en la que se puede ejecutar el caché. La memoria caché L1 debe ejecutarse de forma síncrona con la CPU para que sea útil, por lo que el tamaño de la memoria caché es un factor limitante en la velocidad del reloj.

Otras capas de caché pueden ser más grandes y funcionar en relojes más lentos, pero esto requiere que la CPU espere hasta que la caché responda.

El enfoque de la GPU es tener muchos subprocesos por núcleo (es decir, un factor SMT de 16 o más, en comparación con 2 en CPU Intel o 4 en POWER). Esto significa que cada subproceso individual solo se ejecutará a una fracción de la velocidad del reloj, pero los resultados para un acceso a la memoria no se requieren hasta que todos los otros subprocesos hayan comenzado su acceso a la memoria, momento en el cual el resultado para el primer acceso debería estar listo.

Es por esto que la minería de GPU es interesante para estas monedas.

    
respondido por el Simon Richter
2

La memoria de tamaño Gigabyte (DRAM) no usa el mismo proceso de fabricación que las CPU (lógica), por lo que no puede tener ambos dentro del mismo chip, a menos que esté dispuesto a hacer compromisos que lo hagan todo ineficaz .

La memoria caché utiliza RAM estática, que es más lógica, pero que ocupa más espacio de silicio que DRAM, por lo que prácticamente no se puede tener tanto. Además, las memorias caché grandes utilizan celdas de contenido direccionable, que es aún más complicado de hacer. En resumen, hacer un caché de tamaño gigabyte no es realmente asequible económicamente.

Pero de todos modos, incluso si pudieras hacerlo, no resolvería tu problema. Es posible que gane algunos ciclos de latencia, pero aún así necesitaría tener un bus entre el procesador y la memoria, incluso dentro del chip. Ese sería su cuello de botella de la misma manera que en una computadora normal.

    
respondido por el dim

Lea otras preguntas en las etiquetas