Pipelining

En el contexto de modelos de alto rendimiento, se estudia el pipelining o canalización como un acercamiento que permite utilizar los recursos de una computadora de una forma más constante y eficiente, por ende produciendo más resultados.

Definición de pipeline

Pipeline es un término inglés que puede traducirse como “tubería”. Aunque no forma parte del diccionario de la Real Academia Española (RAE), el concepto se utiliza en nuestra lengua para hacer referencia a una arquitectura de la informática.

Estas tuberías virtuales se crean para segmentar los datos y, de este modo, incrementar el rendimiento de un sistema digital. Se trata de una arquitectura basada en el funcionamiento de los oleoductos, que están segmentados en diversos ramales y que cuentan con bombas para impulsar, en cada trecho, el avance del gas.

En la informática, el pipeline se emplea en microprocesadores, tarjetas gráficas y software. Los cálculos que se realizan en el proceso de programación deben sincronizarse con un reloj para evitar los tramos más recargados que se detectan entre dos registros.

Segmentar los cálculos, por lo tanto, permite mejorar la frecuencia de trabajo. Este tipo de flujo de datos implica que la salida de una fase es una entrada de otra. Así, los diversos tramos o fases se encadenan a la manera de una tubería, logrando agilizar el flujo a través de este pipeline.

Lo habitual es que la ejecución de estos elementos se desarrolle en paralelo, lo que hace que se apele a un buffer (un tipo de almacenamiento) cuando los elementos se hallan en posiciones consecutivas.

Pipeline en ejecución

Aplicaciones de pipelines en informática

  1. Pipelines gráficos, se encuentran en la mayoría de las tarjetas gráficas, consiste en múltiples unidades aritméticas o CPUs completas, que implementan variados escenarios de operaciones típicas de renderizado, por ejemplo, cálculos de luz y colores, renderizado, proyección de perspectiva, etc.
  2. Pipelines de software o tuberías, consiste en múltiples procesos ordenados de tal forma que el flujo de salida de un proceso alimenta la entrada del siguiente proceso. Por ejemplo, los pipelines de Unix.

Características de pipeline

Se puede hablar de niveles de paralelismo caracterizados de la siguiente manera:

–       Multiprogramación y Multiprocesamiento.- Estas acciones se toman a nivel de Programa o Trabajo.

–       Tarea o Procedimientos.- Acciones que se toman dentro de un mismo programa ejecutándose procesos independientes en forma simultánea.

–       Inter instrucciones.- Acciones a nivel de instrucción o sea dentro de mismo proceso o tarea se pueden ejecutar instrucciones independientes en forma simultánea.

 

Un ejemplo sin pipelining.

Tiempo atrás, los procesadores sin pipelining trabajaban sobre una instrucción a la vez, moviendo cada instrucción a través de las cuatro fases de su ciclo de vida en el tiempo de un ciclo de reloj. Así, los procesadores sin pipeline se llaman también procesadores de ciclo simple, porque todas las instrucciones toman exactamente un ciclo de reloj para ejecutarse completamente (o, para pasar a través de las cuatro fases de sus ciclos de vida).

Como el procesador completa instrucciones al ritmo de una por ciclo de reloj, queremos que el reloj del CPU corra lo más rápidamente posible, para que la tasa de ejecución de instrucciones del procesador (esto es, el número de instrucciones completadas por nanosegundo) sea tan alta como sea posible. Así necesitamos calcular la mínima cantidad de tiempo que toma completar una instrucción, y hacer el ciclo de reloj equivalente a esa longitud de tiempo. Simplemente pasa que, en nuestro caso hipotético de CPU, las cuatro fases del ciclo de vida de la instrucción toman un total de cuatro nanosegundos para completarse, por lo tanto deberíamos setear la duración del ciclo de reloj del CPU a cuatro nanosegundos, así el CPU puede completar todo el ciclo de vida de la instrucción, desde fetch hasta write-back, en un solo ciclo. (Un ciclo de reloj de CPU es simplemente denominado ciclo.)

La diferencia entre la secuencia y el pipeline

Consumo en la arquitectura pipeline

Para poder reducir el consumo que se produce, se investigan unas series de soluciones de compromiso entre la resolución por etapa y la cantidad de etapas.

Estos poseen un método de escalamiento de capacitores que está descripto para reducir la potencia con el cual se ha sobredimensionado en las últimas etapas del caso de una arquitectura Pipeline convencional. También está el uso de la corrección digital que permite eliminar los efectos no deseados causados por imperfecciones de los comparadores utilizando circuitos digitales de bajo consumo y de bajo costo.

 

Bibliografía

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.