El sistema de repetición es un subsistema dentro del procesador Intel Pentium 4. [1] Su función principal es capturar operaciones que han sido enviadas por error para su ejecución por el programador del procesador . Las operaciones capturadas por el sistema de repetición se vuelven a ejecutar en un bucle hasta que se cumplan las condiciones necesarias para su correcta ejecución. [2]
Descripción general
El sistema de repetición surgió como resultado de la búsqueda de Intel de velocidades de reloj cada vez mayores . Estas velocidades de reloj más altas requerían canales muy largos (hasta 31 etapas en el núcleo Prescott ). Debido a esto, hay seis etapas entre el programador y las unidades de ejecución en el núcleo Prescott. En un intento por mantener un rendimiento aceptable, los ingenieros de Intel tuvieron que diseñar el programador para que fuera muy optimista. [2]
El planificador de un procesador Pentium 4 es tan agresivo que envía operaciones para su ejecución sin garantía de que puedan ejecutarse con éxito. (Entre otras cosas, el planificador asume que todos los datos están en la caché de nivel 1 de la CPU , la " caché de seguimiento " ). La razón más común por la que falla la ejecución es que los datos necesarios no están disponibles, lo que probablemente se deba a una falla en la caché. Cuando esto sucede, el sistema de repetición le indica al planificador que se detenga y luego ejecuta repetidamente la cadena de operaciones dependientes fallidas hasta que se hayan completado con éxito. [2] [3]
Consideraciones de rendimiento
No es sorprendente que en algunos casos el sistema de repetición pueda tener un impacto muy negativo en el rendimiento. En circunstancias normales, las unidades de ejecución en el Pentium 4 están en uso aproximadamente el 33% del tiempo. Cuando se invoca el sistema de repetición, ocupará unidades de ejecución casi en cada ciclo disponible. Esto desperdicia energía, que es una métrica de diseño arquitectónico cada vez más importante, pero no supone una penalización en el rendimiento porque las unidades de ejecución estarían inactivas de todos modos. Sin embargo, si se utiliza hiperprocesamiento , el sistema de repetición evitará que el otro subproceso utilice las unidades de ejecución. Esta es la verdadera causa de cualquier degradación del rendimiento relacionada con el hiperprocesamiento. En Prescott, el Pentium 4 obtuvo una cola de repetición, que reduce el tiempo que el sistema de repetición ocupará las unidades de ejecución. [2]
En otros casos, cuando cada subproceso procesa distintos tipos de operaciones, el sistema de reproducción no interfiere y puede aparecer un aumento del rendimiento. Esto explica por qué el rendimiento con hiperprocesamiento depende de la aplicación. [2]
Véase también
- Canalización de instrucciones
- Ejecución especulativa
- Ejecución fuera de orden
- Multiprocesamiento simultáneo
- Dependencia de datos
Referencias
- ^ Carmean, Doug (primavera de 2002). "El procesador Intel® Pentium® 4" (PDF) .
- ^ abcde Repetición: características desconocidas del núcleo NetBurst (2005-06-06). "Replay: Unknown Features of the NetBurst Core". X-bit labs. Archivado desde el original el 2014-04-08 . Consultado el 2014-04-07 .
- ^ González, Antonio; Latorre, Fernando; Magklis, Grigorios (2010). Microarquitectura de procesadores: una perspectiva de implementación. Morgan & Claypool Publishers. pág. 68. ISBN 978-1-60845-452-5.