El sistema de reproducción es un subsistema dentro del procesador Intel Pentium 4 . [1] Su función principal es detectar operaciones que el programador del procesador ha enviado por error para su ejecución . Las operaciones capturadas por el sistema de reproducción se vuelven a ejecutar en un bucle hasta que se cumplen las condiciones necesarias para su correcta ejecución. [2]
Descripción general
El sistema de reproducción surgió como resultado de la búsqueda de Intel de velocidades de reloj cada vez mayores . Estas velocidades de reloj más altas requirieron tuberías muy largas (hasta 31 etapas en el núcleo de Prescott ). Debido a esto, hay seis etapas entre el programador y las unidades de ejecución en el núcleo de 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 programador en un procesador Pentium 4 es tan agresivo que enviará operaciones para su ejecución sin garantía de que se puedan ejecutar con éxito. (Entre otras cosas, el planificador asume que todos los datos están en el caché de CPU de " caché de seguimiento " de nivel 1 ). La razón más común por la que falla la ejecución es que los datos requeridos no están disponibles, lo que probablemente se deba a una falta de caché. Cuando esto sucede, el sistema de reproducción le indica al programador que se detenga, luego ejecuta repetidamente la cadena fallida de operaciones dependientes hasta que se hayan completado con éxito. [2] [3]
Consideraciones de rendimiento
No es sorprendente que, en algunos casos, el sistema de reproducción pueda tener un impacto muy negativo en el rendimiento. En circunstancias normales, las unidades de ejecución del Pentium 4 se utilizan aproximadamente el 33% del tiempo. Cuando se invoca el sistema de reproducción, ocupará unidades de ejecución en casi todos los ciclos disponibles. 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 de rendimiento porque las unidades de ejecución estarían inactivas de todos modos. Sin embargo, si se usa Hyper-Threading , el sistema de reproducción evitará que el otro thread utilice las unidades de ejecución. Esta es la verdadera causa de cualquier degradación del rendimiento relacionada con el hiperproceso. En Prescott, el Pentium 4 ganó una cola de reproducción, lo que reduce el tiempo que el sistema de reproducción ocupará las unidades de ejecución. [2]
En otros casos, donde cada hilo procesa diferentes tipos de operaciones, el sistema de reproducción no interferirá y puede aparecer un aumento de rendimiento. Esto explica por qué el rendimiento con Hyper-Threading depende de la aplicación. [2]
Ver también
Referencias
- ^ https://web.archive.org/web/20180419120455/https://pdfs.semanticscholar.org/presentation/cfcc/9d5a7480c4ea87e77084386d74aaff9a1ee1.pdf
- ^ a b c d e Reproducción: Funciones desconocidas del NetBurst Core (6 de junio de 2005). "Reproducción: características desconocidas del NetBurst Core" . Laboratorios X-bit. Archivado desde el original el 8 de abril de 2014 . Consultado el 7 de abril de 2014 .
- ^ Antonio González; Fernando Latorre; Grigorios Magklis (1 de julio de 2010). "Microarquitectura de procesador: una perspectiva de implementación" . Books.google.com . Editores Morgan & Claypool . Consultado el 7 de abril de 2014 .