La Red de Conocimientos Pedagógicos - Conocimientos históricos - Historial de ejecución desordenada

Historial de ejecución desordenada

De la tecnología en orden a la tecnología fuera de servicio

Hasta aproximadamente 1993, la mayoría de las CPU solo podían procesar una instrucción a la vez. Si se adoptara un diseño de tubería en ese momento, como Motorola 68040 o Intel 80486, se podrían procesar diferentes instrucciones en diferentes etapas de ejecución al mismo tiempo.

En 1991 y 1992 aparecieron MIPS R4000, Alpha 21064 y Pentium, que estuvieron entre los primeros procesadores "superescalares" del mercado general: cada ciclo de CPU podía procesar (leer, ejecutar y salir) dos instrucciones. .

Más tarde, en 1995, apareció Alpha 21264, la primera CPU que podía procesar cuatro instrucciones por ciclo, con una frecuencia de reloj de 300MHz, lo cual era sorprendente en ese momento. Cuando Alpha21664 apareció en foros de microprocesadores, provocó exclamaciones de la audiencia, incluidos diseñadores de Intel e IBM, sin mencionar a los de Sun Microsystems. Es una pena que Alpha no haya tenido éxito al final.

En cualquier caso, estos fabricantes utilizaban tecnología de orden secuencial en ese momento: cuando se ejecutaban las instrucciones del programa, los códigos de operación se leían, ejecutaban y retiraban en orden, y se ejecutaban de dos a cuatro instrucciones a la vez. .

Diferentes instrucciones requieren diferentes recursos de ejecución. El flujo del programa suele ser así: la ejecución debe esperar a que se liberen los recursos o se resuelvan las dependencias de las instrucciones antes de continuar ejecutando la siguiente instrucción. Para empeorar las cosas, cada vez que aparece una nueva generación de CPU, es necesario recompilar y optimizar el código para la nueva CPU. De lo contrario, es probable que haya demasiadas burbujas o tiempo de inactividad entre las instrucciones de lectura/escritura, lo que dará como resultado poca mejora en el rendimiento y poca ventaja sobre los productos de la competencia.

En este momento se produce una ejecución fuera de orden. El propio hardware de la CPU reorganiza el orden de ejecución de las instrucciones después de leerlas y proporciona más unidades de ejecución, cambia el nombre de los registros, maneja las dependencias de las instrucciones, etc., en función de los recursos existentes. Por lo tanto, casi todas las nuevas CPU posteriores a Pentium Pro y Alpha 21264 utilizan tecnología de ejecución desordenada.

En la mayoría de los casos, la ejecución fuera de orden puede acelerar el chip y, a veces, la aceleración es obvia. El 21264 es casi el doble de rápido que el 21164 y el Pentium Pro también es mucho más rápido que el Pentium. La última arquitectura MIPS R10000 se ha mejorado enormemente y también utiliza ejecución fuera de orden.

De Itanium a Potente 6

La ejecución fuera de orden iba evolucionando bien hasta que Intel introdujo una tecnología completamente nueva. El importante procesador Itanium tiene un motor verdaderamente único y utiliza la importante tecnología de Computación de Instrucción Paralela Explícita (EPIC). Sin mencionar las más de 100 combinaciones de formatos de instrucciones del procesador Itanium, su enorme conjunto de registros lentos, etc. De hecho, reintroduce técnicas de ejecución ordenada. Por lo tanto, el compilador debe hacer todo el trabajo para garantizar que las unidades de ejecución estén siempre ocupadas. Excepto en aplicaciones de procesamiento intensivo de punto flotante, no es fácil hacer esto, basta con mirar los resultados de referencia del sistema Itanium.

En el desarrollo posterior, este enfoque del marco Itanium nunca ha cambiado. En cambio, Sun había cambiado al SPARC64 de Fujitsu, que usaba tecnología fuera de orden, en lugar de su propio UltraSPARC IV, que usaba tecnología en orden. Otras arquitecturas importantes, como x86, continúan utilizando tecnología fuera de servicio, utilizan nuevos motores como Core 2 y K10 y mejoran aún más esta solución para aprovechar al máximo cada MHz.

Si necesita AIX por algún motivo, entonces la importancia del poder es evidente. Power4 y Power5 son procesadores RISC complejos pero de alta velocidad que utilizan tecnología fuera de orden y combinan cuatro mecanismos de ejecución superescalares con un ancho de banda de sistema muy alto. Sin embargo, Power6 ha regresado a una era de tecnología ordenada. ¿Por qué?

Una respuesta es que si el multiproceso sincrónico de Power6 funciona bien, no tiene que preocuparse demasiado por desperdiciar recursos de ejecución en un solo subproceso: en este caso, ejecutar dos subprocesos al mismo tiempo está bien. Además, para mejorar aún más significativamente el rendimiento, duplicar la frecuencia, duplicar el caché secundario y acortar la latencia de la unidad aritmética lógica (ALU) puede ser más crítico. Aun así, la unidad de procesamiento de punto flotante conserva algunas capacidades de ejecución fuera de orden; esta es la primera vez que se introduce una unidad de procesamiento de punto flotante (FPU) decimal en la parte aritmética de punto flotante de un procesador de propósito general. . “La ejecución sincronizada de doble subproceso, los mecanismos de predicción de carga y la captación previa mejorada de datos e instrucciones mejoran el rendimiento de la ejecución en orden en núcleos superescalares.

"Esta es la evaluación de IBM de su nuevo chip.

La ejecución desordenada de cinco vías de Power5+ es reemplazada por la ejecución en orden de siete vías de Power6, pero aun así, hay algunos puntos a tener en cuenta : Power5 + tiene la mayor cantidad de Solo cinco instrucciones, mientras que Power6 agrega dos instrucciones a un hilo, lo que es más propicio para la combinación de subprocesos informáticos y subprocesos de búsqueda de memoria. Power5 + presta más atención a los recursos internos, mientras que Power6 dedica la mayor parte del tiempo. esperando memoria, por lo que funciona dos veces por ciclo. Totalmente suficiente. Entonces, ¿cuál es la mejora de rendimiento? Mire la especificación de referenciafp2006. El Power5+ de 2,2 GHz puede alcanzar 14,9, que por supuesto se logra con el Power6 de 4,7 GHz. 22.3, la frecuencia del reloj se duplica con creces y el rendimiento es menos de la mitad.

Así, los 790 millones de transistores de Power6 están distribuidos en un tamaño relativamente grande de 341 mm2, que es más grande que los 283 mm2 de Barcelona/Agena. Eso es mucho más, sólo un poco más pequeño que el enorme tamaño del Itanium, y mejora significativamente el rendimiento, aunque tanto el ancho de banda de la memoria caché como el de la memoria aumentan a medida que aumenta la frecuencia del reloj. A la misma frecuencia de reloj, la tecnología de multiplexación en orden provocará un rendimiento. caída de aproximadamente el 30% al procesar tareas de un solo subproceso.

Por lo tanto, debemos esperar a que se compile el sistema Power6 actualizado y la próxima versión de AIX. Sin embargo, para Power6, el uso de tecnología de sincronización sí lo ha hecho. mejoró significativamente el rendimiento del procesador, pero al menos hasta ahora no ha habido ninguna mejora obvia. Es posible que x86 nunca vuelva a tener la tecnología en orden.

Sin embargo, con la tecnología del procesador avanzando a un ritmo rápido, el. Los diseñadores de Power6 no se quedarán sentados mirando el "Penryn" de 3,6 GHz de Intel y los procesadores Barcelona de 3 GHz de AMD aparecerán uno tras otro, lo que plantea un gran desafío para IBM Power6. IBM debe recordar eso para este tipo de procesador. Debido a la tecnología secuencial, con cada generación posterior de CPU, será necesario hacer más en el trabajo del compilador. Al mismo tiempo, no todos tienen tiempo para recompilar sus propias aplicaciones.