En los procesadores ampliamente utilizados, ¿la lectura especulativa de la memoria adyacente realmente ralentiza la lectura (no especulativa) de la memoria no adyacente?

Cada procesador realiza diferentes compensaciones en función de su carga de trabajo esperada.

Usted pregunta sobre un comportamiento específico:

[I] fa error de caché hace que se cargue la línea A, y el siguiente error de caché hace que se cargue la línea B no adyacente, la carga de B se retrasará por la carga (s) en progreso de la (s) línea (s) adyacente a ¿UN? O, ¿la carga de B cancelará de inmediato / “puenteará” la carga de las líneas adyacentes a A?

A veces, esto se denomina pérdida de canalización , o pérdida por falta o memoria caché sin bloqueo . Algunos cachés lo admiten, otros no. He trabajado en procesadores en ambas categorías.

Sin embargo, su pregunta inicial planteó el tema de la especulación : “¿La lectura especulativa de la memoria adyacente realmente ralentiza la lectura (no especulativa) de la memoria no adyacente?”

La respuesta allí es muy dependiente de la carga de trabajo y del sistema de memoria. Y, a veces, la respuesta es sorprendente.

De hecho, hace varios años, leí un interesante artículo publicado por un equipo de la Universidad de Texas sobre la predicción de la utilidad del camino equivocado . ¿Qué es eso?

Comenzaron tratando de mejorar la eficiencia energética de su procesador al terminar la ejecución especulativa lo más rápido posible una vez que el procesador determina que se está ejecutando en el camino equivocado, en lugar de dejar que la tubería continúe hasta que se resuelva completamente el camino correcto.

Lo que descubrieron fue que sus programas se ralentizaron, a pesar de ejecutar menos instrucciones de ruta incorrecta. ¿Por qué? Resultó que algunas de esas instrucciones especulativas de ruta incorrecta todavía eran útiles para llevar los datos al caché temprano. Entonces, naturalmente, comenzaron a desarrollar un predictor de hardware que intentaría predecir qué tan útil sería la ruta incorrecta (y cuánto de la ruta incorrecta), para que pudieran mantener el beneficio de rendimiento.

Ver: Control de especulación basado en el rendimiento mediante predicción de utilidad de ruta incorrecta .

¿Lo hace? Es casi seguro que hay casos en los que lo hace, sin embargo, los arquitectos deberían haber construido el sistema para que la especulación mejore el rendimiento general del sistema.

Diseñar la cantidad correcta de especulación, bajo las circunstancias correctas, es complicado. Por ejemplo, usted toma decisiones diferentes si tiene un uso exclusivo de un sistema de memoria de alto ancho de banda, para el uso compartido de un sistema de memoria de bajo ancho de banda. Observe también que cada acceso especulado cuesta energía que no necesita haberse gastado.