Arquitectura de la computadora: ¿cuánto afecta la memoria caché del procesador al rendimiento del sistema en comparación con una mayor velocidad de reloj?

Mucho. Y continuará adquiriendo cada vez más importancia a medida que las CPU / GPU continúen siendo más rápidas y la memoria no tanto, la infame brecha de CPU-memoria. Básicamente, el caché está ahí para suavizar el ancho de banda que la CPU necesita de la memoria y actuar en su lugar siempre que sea posible. Hay un documento brillante de Ulrich Drepper que trata con un montón de ejemplos y puntos de referencia llamados Lo que todo programador debe saber sobre la memoria, Parte 1. Es una lectura interesante si encuentra que los cachés del procesador son fascinantes, lo que supongo que al preguntar de esta pregunta que haces. Y definitivamente responde tu pregunta mucho mejor que yo.

En cuanto a la velocidad del reloj de la CPU, se está volviendo cada vez menos importante a medida que hemos estado tendiendo hacia más núcleos y utilizando menos energía. Las velocidades de reloj han sido bastante estables los últimos dos años, y eso es porque no podemos hacer que vayan mucho más rápido sin que se vuelvan kamikaze y se quemen hasta la muerte. Ergo, más núcleos para más potencia de cómputo directo y más eficiencia, por lo que podemos adelantar el reloj un poquito más y también usar los ciclos que tenemos de manera más eficiente. El procesamiento multiproceso definitivamente será la próxima gran cosa, en realidad ahora mismo es realmente un gran problema, en términos de programación.

El rendimiento del sistema es (entre otras cosas) un producto de su interacción, no son entidades comparables.

Si no se utiliza la memoria caché, es posible que no haya nada que hacer hasta que los datos lleguen de la memoria. Si el caché estuviera lleno y el procesador no pudiera analizar esos datos en el tiempo que tomaría llenarlo nuevamente, el ancho de banda de la memoria se subutilizaría, a menos que todos los datos necesarios ya estuvieran en el caché.

Esto último no es un problema en ninguna arquitectura moderna, pero el punto es que el rendimiento del sistema depende del tamaño de la memoria caché y de la velocidad de procesamiento, no se pueden comparar entre sí.

En términos simples, necesita datos de la memoria. Estás limitado por la latencia de memoria. No importa qué tan rápido se ejecute el reloj de su procesador. Esperas los datos.

Agregue un caché ahora. Utilice la captación previa y obtenga datos con anticipación si es posible. La latencia de caché es mucho más baja. El procesador tiene que esperar menos.

Sin embargo, los sistemas multinúcleo, la coherencia de caché, la ejecución fuera de orden y muchas otras cosas afectan esto. También lo hace la memoria caché, las descargas de memoria caché, etc. Pero eso probablemente sea demasiado avanzado para este propósito.

Observe también la arquitectura de Harvard, donde las instrucciones y los datos se leen en diferentes pines. Esto hace que el paquete sea más costoso, pero permite que la caché de datos y las cachés de instrucciones sean verdaderamente independientes.