Canalización: arquitectura, ventajas y desventajas

Canalización: arquitectura, ventajas y desventajas

El aumento de la velocidad de ejecución del programa aumenta en consecuencia la velocidad de el procesador. Se han inventado muchas formas, tanto de implementación de hardware como de arquitectura de software, para aumentar la velocidad de ejecución. Se observó que al ejecutar instrucciones al mismo tiempo, se puede reducir el tiempo requerido para la ejecución. El concepto de paralelismo en programación fue propuesto. Según esto, se puede ejecutar más de una instrucción por ciclo de reloj. Este concepto puede ser practicado por un programador a través de varias técnicas como Canalización, múltiples unidades de ejecución y múltiples núcleos . Entre todos estos métodos de paralelismo, la canalización es la más comúnmente practicada. Entonces, ¿cómo se puede ejecutar una instrucción en el método de canalización? ¿Cómo aumenta la velocidad de ejecución?

¿Qué es la canalización?

Para comprender el concepto de canalización, veamos el nivel raíz de cómo se ejecuta el programa. La instrucción es el paquete de ejecución más pequeño de un programa. Cada instrucción contiene una o más operaciones. Los procesadores escalares simples ejecutan una o más instrucciones por ciclo de reloj, y cada instrucción contiene solo una operación. Las instrucciones se ejecutan como una secuencia de fases, para producir los resultados esperados. Esta secuencia se da a continuación


Secuencia de ejecución de instrucciones

Secuencia de ejecución de instrucciones



  • SI: Obtiene la instrucción en el registro de instrucciones.
  • ID: Decodificación de instrucciones, decodifica la instrucción para el código de operación.
  • AG: Address Generator, genera la dirección.
  • DF: Data Fetch, recupera los operandos en el registro de datos.
  • EJ: Ejecución, ejecuta la operación especificada.
  • WB: escribir, escribe el resultado en el registro.

No todas las instrucciones requieren todos los pasos anteriores, pero la mayoría sí. Estos pasos utilizan diferentes funciones de hardware. En la canalización, estas diferentes fases se realizan al mismo tiempo. En la canalización, estas fases se consideran independientes entre las diferentes operaciones y pueden superponerse. Por tanto, se pueden realizar múltiples operaciones simultáneamente, estando cada operación en su propia fase independiente.

Canalización de instrucciones

Veamos cómo se procesan las instrucciones en la canalización. Esto se puede entender fácilmente con el diagrama siguiente.

Canalización de instrucciones

Canalización de instrucciones

Suponga que las instrucciones son independientes. En un procesador de canalización simple, en un momento dado, solo hay una operación en cada fase. La fase inicial es la fase IF. Entonces, en el primer ciclo de reloj, se recupera una operación. Cuando llega el siguiente pulso de reloj, la primera operación pasa a la fase ID dejando vacía la fase IF. Ahora, esta fase vacía se asigna a la siguiente operación. Entonces, durante el segundo pulso de reloj, la primera operación está en la fase ID y la segunda operación está en la fase IF.

Para el tercer ciclo, la primera operación estará en fase AG, la segunda operación estará en la fase ID y la tercera operación estará en la fase IF. De esta manera, las instrucciones se ejecutan al mismo tiempo y después de seis ciclos el procesador generará una instrucción completamente ejecutada por ciclo de reloj.


¿Esta instrucción se ha ejecutado secuencialmente, inicialmente la primera instrucción tiene que pasar por todas las fases y luego se buscará la siguiente instrucción? Entonces, para la ejecución de cada instrucción, el procesador requeriría seis ciclos de reloj. Pero en un procesador canalizado, dado que la ejecución de las instrucciones tiene lugar simultáneamente, solo la instrucción inicial requiere seis ciclos y todas las instrucciones restantes se ejecutan como una por cada ciclo, lo que reduce el tiempo de ejecución y aumenta la velocidad del procesador.

Arquitectura de tuberías

El paralelismo se puede lograr con técnicas de hardware, compilador y software. Para explotar el concepto de canalización en arquitectura de Computadores muchas unidades procesadoras están interconectadas y funcionan al mismo tiempo. En la arquitectura de procesadores en cadena, se proporcionan unidades de procesamiento separadas para los números enteros y las instrucciones de punto flotante. Mientras que en la arquitectura secuencial, se proporciona una sola unidad funcional.

Unidad procesadora canalizada

Unidad procesadora canalizada

En la canalización estática, el procesador debe pasar la instrucción a través de todas las fases de la canalización independientemente del requisito de instrucción. En un procesador de canalización dinámica, una instrucción puede omitir las fases según sus requisitos, pero debe moverse en orden secuencial. En un procesador de canalización dinámico complejo, la instrucción puede pasar por alto las fases así como elegir las fases fuera de orden.

Canalización en procesadores RISC

El más popular Arquitectura RISC El procesador ARM sigue la canalización de 3 y 5 etapas. En la canalización de 3 etapas, las etapas son: Obtener, Decodificar y Ejecutar. Esta canalización tiene una latencia de 3 ciclos, ya que una instrucción individual tarda 3 ciclos de reloj en completarse.

Tubería ARM de 3 etapas

Tubería ARM de 3 etapas

Para una implementación adecuada de la canalización, la arquitectura del hardware también debe actualizarse. El hardware para la canalización de 3 etapas incluye un banco de registros, ALU, cambiador de barril, generador de direcciones, un incrementador, decodificador de instrucciones y registros de datos.

Ruta de datos de canalización de 3 etapas ARM

Ruta de datos de canalización de 3 etapas ARM

En 5 etapas, la canalización de las etapas son: recuperar, decodificar, ejecutar, almacenar en búfer / datos y escribir.

Peligros de oleoductos

En un programa de computadora típico, además de instrucciones simples, hay instrucciones de bifurcación, operaciones de interrupción, instrucciones de lectura y escritura. La canalización no es adecuada para todo tipo de instrucciones. Cuando se ejecutan algunas instrucciones en la canalización, pueden detener la canalización o eliminarla por completo. Este tipo de problemas causados ​​durante la canalización se denomina peligros de canalización.

En la mayoría de los programas de computadora, el resultado de una instrucción es usado como operando por la otra instrucción. Cuando tales instrucciones se ejecutan en canalización, se produce una ruptura porque el resultado de la primera instrucción no está disponible cuando la instrucción dos comienza a recopilar operandos. Por lo tanto, la instrucción dos debe detenerse hasta que se ejecute la instrucción uno y se genere el resultado. Este tipo de peligro se denomina peligro de canalización de lectura después de escritura.

Leer después de escribir Peligro de canalización

Leer después de escribir Peligro de canalización

La ejecución de instrucciones de bifurcación también causa un peligro de canalización. Instrucciones de bifurcación mientras se ejecutan en canalización efectúa las etapas de recuperación de las siguientes instrucciones.

Comportamiento de la rama canalizada

Comportamiento de rama canalizada

Ventajas de la canalización

  • Aumenta el rendimiento de las instrucciones.
  • El aumento en el número de etapas de la canalización aumenta el número de instrucciones ejecutadas simultáneamente.
  • Se puede diseñar una ALU más rápida cuando se utilizan tuberías.
  • La CPU canalizada funciona a frecuencias de reloj más altas que la RAM.
  • La canalización aumenta el rendimiento general de la CPU.

Desventajas de la canalización

  • El diseño del procesador canalizado es complejo.
  • La latencia de las instrucciones aumenta en los procesadores en cadena.
  • El rendimiento de un procesador interconectado es difícil de predecir.
  • Cuanto más larga sea la tubería, peor será el problema de peligro para las instrucciones de derivación.

La canalización beneficia a todas las instrucciones que siguen una secuencia similar de pasos para su ejecución. Los procesadores que tienen instrucciones complejas donde cada instrucción se comporta de manera diferente a la otra son difíciles de canalizar. Los procesadores tienen implementos razonables con 3 o 5 etapas de la tubería porque a medida que aumenta la profundidad de la tubería, aumentan los peligros relacionados con ella. Nombra algunos de los procesadores en canalización con su etapa de canalización.