¿Qué es la canalización en informática?

El término tiene algunos usos diferentes, pero en su mayoría tienen en común la idea de realizar una secuencia de pasos superpuestos. Un par de ejemplos:

  • Canalización de instrucciones: un microprocesador necesita realizar varias etapas para procesar una instrucción: buscar, decodificar, ejecutar, acceder a la memoria, escribir para registrarse. Con la canalización, después de que la primera instrucción completa la etapa de recuperación, pasa a la decodificación, y la segunda instrucción comienza a recuperar. A medida que esos dos avanzan, la tercera instrucción comienza a buscar. En cualquier momento, puede haber cinco instrucciones, cada una en una etapa de canalización diferente. (Algunos eventos, como la falta de memoria caché, pueden “detener” la canalización, porque una etapa tarda demasiado en completarse para algunas instrucciones).
  • Canalización de consultas: en un procesador de consultas de bases de datos, hay un árbol de operadores, como filtro, unión y unión. En algunos casos, un operador puede comenzar a enviar resultados a su padre antes de que haya consumido toda su información. Por ejemplo, las filas que se filtran de una tabla se pueden pasar a un operador de unión a medida que se examinan. Por lo tanto, el operador de unión puede comenzar la ejecución antes de que el operador de filtro se haya completado.

Supongo que estás hablando de la canalización de instrucciones. En un sistema no canalizado, una CPU puede procesar una instrucción cada cierto número de ciclos en función del conjunto de instrucciones. Con la canalización implementada a través del hardware, una CPU utiliza buffers o registros de canalización para realizar múltiples instrucciones en el mismo hardware. Idealmente, la instrucción por ciclo es igual a 1 instrucción por ciclo, a diferencia de un sistema sin tubería.

La canalización general se acelera al aumentar el número de instrucciones procesadas a costa de hardware adicional y algunas complejidades con riesgos de datos.

En pocas palabras, las tuberías toman la salida de un programa y lo introducen en otro. Por ejemplo, usando el shell bash

$ grep “hey” hello.txt | head

Devolverá las primeras 10 líneas con el texto oye