Aquí hay un desglose de por qué esto conduce a ganancias de rendimiento:
* Aumento del rendimiento de la instrucción: El beneficio clave es la capacidad de emitir una nueva instrucción cada ciclo de reloj, incluso si cada instrucción toma múltiples ciclos de reloj para completar. Esto aumenta significativamente el número de instrucciones procesadas por unidad de tiempo.
* Utilización mejorada de los recursos de la CPU: La tubería mantiene ocupados varios componentes de la CPU. Mientras que una instrucción está realizando su operación aritmética en el ALU, otra instrucción podría estar obteniendo la siguiente instrucción de la memoria, y otra podría estar escribiendo el resultado en un registro. Esto maximiza la utilización de recursos.
* Tiempo de ejecución de instrucciones promedio reducido (aunque no tiempo de instrucción individual): Si bien el tiempo para ejecutar una instrucción * única * podría permanecer en gran medida igual (o incluso aumentar ligeramente debido a la sobrecarga de las etapas de la tubería), el tiempo * promedio * para ejecutar una * secuencia * de instrucciones se reduce considerablemente debido a la ejecución superpuesta.
Sin embargo, las tuberías no están exentas de limitaciones:
* Peligros de tubería: Estas son situaciones que pueden interrumpir el flujo suave de las instrucciones a través de la tubería. Los tipos principales son:
* Peligros de datos: Una instrucción necesita datos que aún no se hayan producido por una instrucción anterior.
* Peligros de control: Una instrucción de rama altera el flujo del programa, haciendo que algunas instrucciones en la tubería sean irrelevantes.
* Peligros estructurales: El hardware carece de los recursos para ejecutar múltiples instrucciones simultáneamente en la tubería (por ejemplo, solo un acceso de memoria a la vez).
Estos peligros requieren técnicas como reenviar, estancamiento (insertar burbujas) y predicción de ramas para mitigar su impacto negativo en el rendimiento. A pesar de estos desafíos, los beneficios de la tubería en términos de mayor rendimiento superan con creces los costos en la mayoría de las CPU modernas. Las técnicas sofisticadas se desarrollan constantemente para optimizar aún más el rendimiento de la tubería y manejar los peligros de manera más efectiva.