Está en la página 1de 15

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS


ESCUELA ACADMICA PROFESIONAL DE ING. INFORMTICA

TEMA: ARQUITECTURA PIPELINE CURSO: TOPICOS EN SOFTWARE PROFESOR: DIAZ PULIDO ARTURO INTEGRANTES: ABANTO VERA ANGELICA MARIA CASTILLO FARFAN GEORGE IDROGO ZAVALETA ALEX JAIME

TRUJILLO PER 2014

ARQUITECTURA EN PIPELINE

INDICE

DEDICATORIA ................................................................................................................................ 2 INTRODUCCIN ............................................................................................................................ 3 MARCO TERICO ......................................................................................................................... 4 CAPITULO I: PIPELINE ................................................................................................................ 4 CAPITULO II: CARACTERISTICAS ........................................................................................ 10 CAPITULO III: RALENTIZACION............................................................................................ 11 CAPITULO IV: APLICACIONES .............................................................................................. 13 CONCLUSIONES ........................................................................................................................... 14 REFERENCIA BIBLIOGRAFICA .............................................................................................. 14

ARQUITECTURA EN PIPELINE

DEDICATORIA

Con mucho cario y estima dedicamos este trabajo a las personas quienes luchan diariamente por ver de nosotros personas dignas en la sociedad y en el sendero de la vida. El presente trabajo lo dedicamos a usted profesor Arturo Daz Pulido por el esfuerzo que realiza con la Institucin de formarnos profesionalmente y ser futuros Ingenieros Informticos de capacidad competitiva.

Abanto Vera Anglica Mara Castillo Farfn George Idrogo Zavaleta Alex Jaime

ARQUITECTURA EN PIPELINE

INTRODUCCIN
Es un trmino perteneciente a la ingeniera de software y consiste en una cadena de elementos de procesamiento ordenados de tal manera que la salida de cada elemento es la entrada del siguiente, bueno suena algo complicado pero no lo es; el nombre quiere decir en espaol tuberas y el sistema es bsicamente como el agua que circula por caeras y tubos. En este caso el agua vendra a ser la informacin o los procesos.

ARQUITECTURA EN PIPELINE

MARCO TERICO

CAPITULO I:
PIPELINE Es un trmino ingls que puede traducirse como tubera .Aunque no forma parte del diccionario de la real academia espaola (RAE), el concepto se utiliza en nuestra lengua para hacer referencia a una arquitectura de informtica. Un pipeline o tubera es un conjunto de elementos procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del siguiente. Los elementos del pipeline son generalmente ejecutados en paralelo, en esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos. Esta arquitectura es muy comn en el desarrollo de programas para el intrprete, ya que se pueden concatenar por comandos fcilmente con tuberas (pipe).Tambin es comn verlo en sistemas operativos multitarea ya que ejecutan una serie de procesos de manera simultaneas, los cuales son ejecutados de manera secuencial mediante una administrador de tareas dndoles diferente prioridad y capacidad de procesamiento, alternando entre este sistema pipeline y los dems. En informtica nuestra rama, el pipeline se emplea en: Microprocesadores Tarjetas graficas Software. Los clculos que se realizan en el proceso de programacin deben sincronizarse con un reloj para evitar los tramos ms recargados que se detectan entre dos registros. Se pueden diferenciar entre: Pipelines sin nombre funcionan de manera temporal y se borra al no estar en uso. Pipelines con nombre son creados en el propio sistema de archivos (facilitan la Comunicacin de los diversos procesos que apelan a la tubera).

ARQUITECTURA EN PIPELINE

El proceso en pipeline o encadenado es similar al utilizado en cualquier cadena de montaje, y el nombre pipeline (tubera) se debe al hecho de que como en una tubera, en la entrada se aceptan nuevos elementos (instrucciones) antes de que los previamente aceptados salgan por la salida. Por ejemplo: Supongamos una gran pastelera en la que los pasteles primero se hacen en el horno y despus se empaquetan para la venta. El proceso de empaquetar una tarta consiste en: 1. 2. 3. 4. 5. Poner una caja vaca en la mesa. Meter un pastel en la caja. Cerrar y precintar la caja. Poner una etiqueta en la caja. Llevar la caja a un gran contenedor

Si cada una de estas operaciones la realiza un operario en 10 segundos, parece claro que se tarda 50 segundos en empaquetar un pastel y, por lo tanto, en empaquetar 10 tartas se tardara 500 segundos. 6. 7. 8. 9. 10. 11. 12. 13.

Sale un pastel empaquetado cada 50 segundos

Ahora supongamos que se dispone de una cadena de empaquetado de pasteles con una cinta transportadora sobre la que trabajan cinco operarios especializados en tareas distintas. El primer operario pone la caja 1 en la cinta transportadora, esta avanza hasta que la caja 1 esta donde el segundo operario, que introduce el pastel dentro de la caja 1, al mismo tiempo que primero operario pone otra caja 2 en la cinta. La caja 1 sigue avanzando hasta el tercer operario, que la cierra y la precinta, al mismo tiempo que el segundo operario mete otro pastel en la caja 2 y el primero operario pone otra caja 3 en la cinta. La caja 1 sigue su camino en la cinta pasando por el cuarto operario, que pone una etiqueta, hasta llegar al quinto operario, que la retira de la cinta.

ARQUITECTURA EN PIPELINE

En el momento que el quinto operario retira la caja de la cinta, hay cuatro cajas ms en la cinta. Si cada una de estas fases de empaquetado se realiza en 10 segundos, a partir de ahora, cada 10 segundos saldr un nuevo pastel empaquetado, en lugar de hacerlo cada 50 segundos que se tardaba cuando no haba una cadena de empaquetado. A partir de ahora, en tener 10 pasteles empaquetados se tardara solamente 100 segundos, mientras que en el caso de cuando se tena un solo operario se tardaba 500 segundos. Debe quedar claro que aunque ahora sale una nueva tarta empaquetada cada 10 segundos, la preparacin completa de cada tarta requiere 50 segundos.

14. 15.

Sale un pastel empaquetado cada 10 segundos

ARQUITECTURA EN PIPELINE

En una primera aproximacin, se puede observar que para ejecutar una instruccin en la CPU se requieren 2 pasos: 1. 2. Alimentar o extraccin de las instruccin desde memoria (fetching). Ejecucin de instruccin.

En 1959, el ordenador Stretch de IBM, teniendo en cuanta que durante la fase de ejecucin hay momentos en los que no se accede a memoria principal, aprovechaba para alimentar instrucciones por adelantado y guardarlas en un buffer de prealimentacin, todo ello en paralelo con la ejecucin de la instruccin en curso, con lo que al terminar de ejecutar dicha instruccin poda cargar la siguiente instruccin directamente desde el buffer sin tener que esperar a traerla de memoria. Esta tcnica de prealimentacin puede verse como un pipeline de dos etapas. En la primera etapa se alimenta una instruccin de memoria y se guarda en un buffer. La segunda etapa toma una instruccin del buffer y la ejecuta. Mientras en la segunda etapa se est ejecutando una instruccin, la primera etapa aprovecha (los ciclos en los que la segunda etapa no accede a memoria) para leer la siguiente instruccin y guardarla en el buffer. Cuando la segunda etapa acabe la ejecucin y vaci el buffer de prealimentacin, la primera etapa puede volver a leer una nueva instruccin de memoria. Con estas dos etapas de alimentacin y ejecucin de instrucciones, parece que la velocidad de ejecucin de instrucciones por segundo (rendimiento) se duplica. Y si nos fijamos en el ejemplo de la lnea de empaquetado de pasteles, tenemos que su velocidad de pasteles empaquetados por minuto se multiplica por cinco cuando se establece una cadena de empaquetado de cinco etapas. Esto es as, simplemente porque el nmero de etapas dice cuntas cosas se estn haciendo simultneamente, y claro, cuantas ms mejo

ARQUITECTURA EN PIPELINE

La ejecucin de una instruccin podra descomponerse en las siguientes 5 etapas: 1. 2. 3. 4. 5. F : Alimentacin de la instruccin (fetch) D: Decodificacin de la instruccin. O: Extraccin y clculo de los operandos. E: Ejecucin (en la ALU). W: Escritura del resultado (write).

Si ahora la ejecucin de una instruccin est descompuesta en 5 etapas, cada etapa puede durar aproximadamente 1/5 de la duracin total de la ejecucin de la instruccin. Si suponemos que la duracin de un ciclo de reloj es igual a la duracin de cada una de estas pequeas etapas, podemos decir, en principio, que con la tcnica de pipeline se consigue que a cada ciclo de reloj finalice una instruccin, o lo que es lo mismo, una velocidad de instruccin por ciclo.

Obsrvese que el pipelining no es lo mismo que el paralelismo (aunque en cierto modo, en el pipeline tambin hay paralelismo). Ambas tcnicas estn dirigidas a mejorar el rendimiento (nmero de instrucciones por unidad de tiempo) incrementando el nmero de mdulos hardware que operan simultneamente, pero en el primer caso, el hardware para ejecutar una instruccin no est replicado, simplemente est dividido en varias etapas distintas especializadas, mientras que en las arquitecturas paralelas, el hardware (la CPU) si esta replicado (hay varios procesadores), por lo que varias operaciones pueden ejecutarse de manera completamente simultnea. El incremento del rendimiento con el pipelining est limitado al mximo nmero se etapas del procesador, mientras que con el paralelismo, las prestaciones mejoran siempre que se aadan ms procesadores (en situaciones ideales) y el trabajo se pueda descomponer en varias tareas para poder repartirlo.

ARQUITECTURA EN PIPELINE

Veamos a continuacin, los diagramas correspondientes a la ejecucin en serie, en paralelo y mediante pipeline, suponiendo que las instrucciones se ejecutan en cinco pasos o etapas de un ciclo de reloj cada una. En la ejecucin en serie, la primera instruccin debe ejecutarse completamente antes de comenzar la segunda, y esta debe completarse a su vez antes de que comience la tercera. De esta manera, si las instrucciones son sumas, por ejemplo se obtiene un resultado cada de cinco ciclos (en t1, t2, t3,).

Con un paralelismo de N vas (N procesadores), se pueden ejecutar simultneamente N instrucciones, pero producirn resultados solamente cada 5 ciclos (N resultados cada 5 ciclos). Ya que se producen N resultados en el mismo tiempo en el que la ejecucin en serie obtiene un nico resultado, el incremento o aceleracin (en el caso ideal) es N.

10

ARQUITECTURA EN PIPELINE

En el caso del pipeline, la segunda instruccin puede comenzar en cuanto la primera instruccin haya finalizado su primera etapa. A partir del momento en que se llena el pipeline (despus de cinco ciclos) se tiene cinco instrucciones ejecutndose en distintas fases, y se puede empezar a obtener un resultado por ciclo, pues finalizara una instruccin despus de cada ciclo. Obsrvese que el rendimiento de un pipeline no depende exactamente del nmero de etapas, sino de la duracin de su etapa mas larga. Aunque con una organizacin totalmente distinta, en cuanto al rendimiento, el paralelismo y el pipeline se pueden considerar equivalentes. No olvidar que la tcnica de la segmentacin o pipelining mejora el rendimiento no el tiempo de ejecucin de cada instruccin.

CAPITULO II:
CARACTERISTICAS La segmentacin no ayuda en la realizacin de una nica tarea, ayuda en la realizacin de una carga de trabajo. Se pueden realizar mltiples tareas simultneamente utilizando diferentes recursos. La velocidad se incrementa si se aumentan el nmero de segmentos. La razn de segmentacin est dada por el segmento ms lento. El tiempo en llenar y vaciar los segmentos reduce la velocidad. Almacn para las dependencias.

11

ARQUITECTURA EN PIPELINE

CAPITULO III:
RALENTIZACION Una vez elegido el numero ptimo de etapas, para el factor de aceleracin sea igual al nmero de etapas se requiere que todas las etapas del pipeline siempre estn llenas de instrucciones tiles, y que nada retrase el avance de las instrucciones a travs del pipeline. Existen tres motivos que impiden mantener siempre ocupadas todas las etapas del pipeline. 1. Motivos estructurales: cuando una etapa no es capaz de realizar su cometido en un ciclo de reloj, el pipeline se detiene hasta que dicha etapa finaliza su trabajo. Entre las causas estructurales que pueden hacer que el pipeline se detenga tenemos: No todas las etapas son de la misma duracin Acceso simultneo a memoria desde varias etapas Hay instrucciones ms complejas que otras

Puede suceder incluso que alguna de las etapas ni siquiera necesite ejecutarse. Por ejemplo, en un procesador cuya ltima etapa se dedique a escribir en memoria principal, la carga de un registro no requerir dicha ltima etapa. En este caso, simplemente suceder que cuando una instruccin corta va despus de una normal, ambas finalicen su ejecucin simultneamente, y en el siguiente ciclo de reloj no termine ninguna instruccin; por lo tanto, el rendimiento no vara. Aqu, para simplificar el problema, supondremos que todas las instrucciones pasan por todas las etapas y que todas son de la misma duracin. Nos permitimos realizar estas simplificaciones para poder centrarnos en las principales causas de la ralentizacin del pipeline: las dependencias de datos y las bifurcaciones. 2. Dependencia de operandos: Las dependencias de datos se producen cuando dos instrucciones comparten un dato (operando o resultado). Hay tres tipos de dependencias de datos, pero aqu vamos a comentar solamente el ms evidente, el que se denomina lectura despus de escritura (Read After Write, o RAW). En el programa del ejemplo, la dependencia se denomina lectura despus de escritura ( Read After Write, o RAW) puede producirse entre las instrucciones I2 e I3 si la instruccin MUL lee el contenido de R3 (en el ciclo 5) antes de que el resultado de la suma anterior (al final del ciclo 6) se cargue en l. Obviamente, la operacin MUL no se ejecutar con los operandos esperados por el programador, por lo que el resultado del programa ser incorrecto.

12

ARQUITECTURA EN PIPELINE

Hay dos opciones bsicas para resolver este problema de dependencia de datos; uno es mediante la Prevencin: evitando que pueda llegarse a esta situacin de dependencia; el otro es mediante la deteccin y resolucin, es decir, no preocupndose de evitarlo, pero s detectarlo en caso de que se produzca y solucionarlo de alguna manera. La dependencia de datos: Prevencin El problema de la dependencia de datos entre una instruccin I1, y otra instruccin I2 que le sigue pueda prevenirse retrasando la ejecucin de I2 un nmero K de etapas hasta que desaparezca el problema de que I2 lea un operando que I1 no ha escrito todava. Este retraso puede conseguirse insertando un nmero K de instrucciones que puedan ejecutarse despus de I1 y antes de I2, sin que por ello vare la estructura lgica del programa. La dependencia de datos: Deteccin y resolucin Este mtodo requiere un hardware adicional en la CPU, pues se deben detectar las dependencias de datos durante la ejecucin y resolver estas dependencias. Detectarlas significa que debe darse cuenta de que en un momento dado hay dos instrucciones arrancadas I 1 e I2, tal que I2 depende de un resultado establecido por I1. El dispositivo hardware que detecta estas dependencias se denomina interlock. Resolver las dependencias significa hacer algo para retrasar la ejecucin de I 2 o para acelerar, en la medida de lo posible, la entrega a I2 del resultado que produce I1. Veamos dos posibilidades de resolucin (no excluyentes) para cuando se detecta una dependencia de datos entre dos etapas del pipeline. Detener el pipeline: La aproximacin ms sencilla para evitar los problemas de dependencias de datos con ayuda del hardware es detener la actividad en las etapas necesarias del pipeline hasta que desaparezca la dependencia, es decir, hasta que se pueda ejecutar correctamente la instruccin dependiente. En el ejemplo de la transparencia, esto significa detener las instrucciones que siguen a la instruccin add desde el ciclo 5 hasta que el registro R3 pueda leerse debidamente actualizado en el ciclo 7. Con esta estrategia, primero se detecta la dependencia y despus se detiene el pipeline a partir de la instruccin dependiente hasta que desaparece la dependencia. 3. Instrucciones de bifurcacin: Una instruccin de bifurcacin hace que la direccin de la siguiente instruccin a ejecutar no se conozca hasta el momento justo de la ejecucin de la instruccin de bifurcacin (en la etapa de ejecucin), por lo que la etapa de alimentacin no puede extraer la siguiente instruccin a una bifurcacin hasta que esta ltima no finalice su etapa de ejecucin, y por lo tanto al terminar la etapa de ejecucin, esta tendra que esperar hasta que se alimente la siguiente instruccin y

13

ARQUITECTURA EN PIPELINE

vaya avanzando por todas las etapas anteriores, que se habrn quedado vacas. A estas etapas vacas que aparecen se las denomina huecos de retardo (delay slots). En algunos sistemas, las bifurcaciones incondicionales pueden detectarse en la fase de alimentacin o extraccin (fetch) si se le aade un poco hardware de ayuda tambin extrae la direccin de salto con lo que se puede proseguir la extraccin de instrucciones de la direccin de salto. Sin embargo, en el caso de las bifurcaciones condicionales no se puede hacer esto, pues puede ocurrir que la condicin del salto se establezca precisamente en la etapa de ejecucin de la instruccin anterior, con lo que no hay ms remedio que esperar a que la bifurcacin llegue a la etapa de ejecucin para conocer la direccin de la siguiente instruccin. Esto quiere decir que se debe detener la alimentacin de instrucciones al pipeline hasta que en la etapa de ejecucin se averige la direccin de la siguiente instruccin. Afortunadamente, hay diversas tcnicas que pueden evitar o minimizar el impacto de las instrucciones de bifurcacin, tales como la bifurcacin retardada, la prediccin del salto y algunas ms.

CAPITULO IV:
APLICACIONES 1. Pipelines grficos, se encuentra en la mayora de las tarjetas grficas, el cual consiste en mltiples unidades aritmticas o CPUs completas, que implementan variados escenarios de operaciones tpicas de renderizacin por ejemplo: Clculos de luz y colores Renderizado Proyeccin de perspectiva, etc. 2. Pipelines software o tuberas, consiste en mltiples procesos ordenados de tal forma que el flujo de salida de un procesador alimenta la entrada del siguiente proceso. Por ejemplo: Pipelines de Unix. (permite conectar procesos, permitiendo que la salida estndar de un proceso de alimentacin sea la entrada estndar de otro proceso)

14

ARQUITECTURA EN PIPELINE

CONCLUSIONES
Las tuberas virtuales se crean para segmentar los datos y de este modo incrementar su rendimiento de un sistema digital. Hemos podido trabajar con el pipeline trmino perteneciente a la ingeniera de software. Aunque el estudio que hemos hecho sobre este tema es breve nos enfocamos a sealar sus principales elementos, aplicaciones y riesgos. El pipeline es comn verlo en sistemas operativos multitarea, como los que empleamos hoy en da en nuestras computadoras; se ejecutan una serie de procesos de manera simultnea, que son ejecutados luego de manera secuencial mediante una administrador de tareas dndoles diferente prioridad y capacidad de procesamiento, alternando entre un "pipeline" y los dems hemos dedicado por tener que familiarizarnos con el entorno de desarrollo por primera vez. En cuanto al entorno de desarrollo nos hemos dedicado por tener que familiarizarnos con l por primera vez.

REFERENCIA BIBLIOGRAFICA

http://www.alegsa.com.ar/Dic/pipeline.php http://www.wordreference.com/definicion/ralentizaci%C3%B3n http://definicion.de/pipeline/ http://www.alegsa.com.ar/Dic/pipeline.php http://www.slideshare.net/rehoscript/arquitectura-pipeline http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF