Anda di halaman 1dari 14

Curso:

Computadoras

Arquitectura de

Tema:

Teora del Pipeline y


Simulacin
8 LEDS en 500
ms

Docente:

Mori Quiroz, Francisco

Turno:

Noche

Ciclo:

VI

Integrantes:
Noem

Carhuas Isidro, Paola

Caldern Rosales, Jonathan


Niltn
Coronacin Huaman,
Christian

Introduccin
Para comenzar a hablar de la ejecucin segmentada de instrucciones
(Pipeline), primero tenemos que tener en cuenta que este se aplica en los
procesadores con arquitectura RICS (Reduced Intruction Set Computer).
La arquitectura computacional RISC es un tipo de diseo de CPU
generalmente utilizado en microprocesadores. El objetivo de disear maquinas
con esta arquitectura es posibilitar la segmentacin y el paralelismo en la
ejecucin de instrucciones y reducir los accesos a memoria.
Esta arquitectura surgi por el hecho de que las caractersticas que eran
incluidas en los diseos tradicionales de CPU para aumentar la velocidad
estaban siendo ignoradas por los programas que eran ejecutados en ellas.
Adems, la velocidad del procesador en relacin con la memoria de la
computadora que acceda era cada vez ms alta. Esto conllevo la aparicin de
numerosas tcnicas para reducir el procesamiento dentro del CPU, as como
de reducir el nmero total de accesos a memoria.

TEORA DEL PIPELINE

Pipeline (Tuberas) es un trmino que pertenece 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 elemento
con almacenamiento temporal de datos o buffering entre todos los procesos.
Esta arquitectura es muy comn en el desarrollo de programas para
el intrprete de comandos, ya que se pueden concatenar comandos fcilmente
con tuberas (pipe).
Tambin es una arquitectura muy natural en el paradigma de programacin
funcional, ya que equivale a la composicin de funciones matemticas1.

Grafico 01. Diagrama de tiempos pipeline


1Arquitectura de Computadoras (2014). Patricia Quiroga.Pag.75

El pipeline es comn verlo en sistemas operativos multitarea ya que ejecutan


una serie de procesos de manera simultnea, los cuales son ejecutados luego
de manera secuencial mediante una administradora de tareas dndoles
diferente prioridad y capacidad de procesamiento, alternando entre este
sistema ("pipeline ) y los dems.2
Principios de Pipeline
Para poder aplicar pipeline, o sea la particin en subfunciones de una funcin
se deben dar las siguientes condiciones :
1.- La evaluacin de la funcin es equivalente a la evaluacin secuencial
de las subfunciones.
2.- La entrada a una subfuncin proviene exclusivamente de
subfunciones previas en la secuencia de evaluacin.
3.- Excepto el intercambio de E/S, no existe otra vinculacin entre las
subfunciones.
4.- Disponer del hardware suficiente para evaluar las subfunciones.
5.- El tiempo de evaluacin de cada subfuncin es aproximadamente el
mismo.El flujo de datos dentro del pipeline es discreto y se desplazan
de etapa en etapa.
Los principios que se debe seguir son los siguientes:

Periodo del Reloj


La circuitera lgica en cada etapa Si tiene una tardanza de tiempo
Ti. Sea Tl la tardanza en llenar cada latch; llamamos entonces
perodo de reloj del pipeline T a:
T = mximo {Ti}1k + Tl = Tm + Tl
La frecuencia del perodo del reloj se define como f = 1 / T.

2 Microprocesadores Intel (2006). Barry B. Brey. Pag.50-55

Aceleracin
Definimos la aceleracin de un pipeline lineal de k etapas sobre un
procesador sin pipeline equivalente como:
Sk = T1 / Tk = ( n * k ) / ( k + ( n - 1 ) )
Ntese que la mxima aceleracin de Sk tiende a k para n tendiendo
a infinito. En otras palabras, la mxima aceleracin de un pipeline
lineal es k, donde k es el nmero de etapas en el pipe, y, en
consecuencia, la aceleracin es mayor cuanta ms instruccin se
puedan procesar. Esta mxima aceleracin nunca se alcanza debido
a dependencias de datos entre instrucciones, interrupciones,
bifurcaciones del programa y otros factores.

Eficiencia
Utilizamos este concepto para medir la performance de un pipeline:
llamaremos la eficiencia de un pipeline al porcentaje de lapsos de
espacio-tiempo ocupados sobre el total de lapsos de espacio-tiempo
(libres ms ocupados). Sea n el nmero de tareas, k el nmero de
etapas del pipeline, y T el perodo de reloj de un pipeline lineal.
Entonces la eficiencia del pipeline se define como:
Eficiencia o EF = (n * k * T) / ( k ( kT + (n-1) T ) = n / ( k + ( n - 1 ))

Rendimiento

Es el nmero de tareas que puede ser completado por un pipeline


por unidad de tiempo. Esta tasa refleja el poder de computacin de
un pipeline. En trminos de la Eficiencia y el perodo de reloj T de un
pipeline lineal, definimos el rendimiento como sigue:
Rendimiento o TH = n / ( k * T + (n-1) * T ) = EF / T
Donde n es igual al nmero total de tareas procesadas durante un
perodo de observacin k * T + (n-1) * T.
En el caso ideal, TH = 1/T = f, cuando EF tiende a 1. Esto significa
que el mximo rendimiento de un pipeline lineal es igual a su
frecuencia, la que corresponde a un resultado de salida por perodo
de reloj.

Clasificacin

Pipelines grficos
Se encuentran en la mayora de las tarjetas grficas, el cual consiste en
mltiples unidades aritmticas o CPU completas, el cual implementan
variados escenarios de operaciones tpicas, por ejemplo, clculos de luz y
colores, la proyeccin de perspectiva, etc.

Pipelines de Software o Tuberas


Consiste en mltiples 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 (permite conectar procesos, permitiendo
que la salida estndar de un proceso de alimentacin sea la entrada
estndar de otro proceso).

Aplicaciones de Pipelines en Informtica

Pipelines grficos se encuentran en la mayora de las tarjetas


grficas y consiste en mltiples unidades aritmticas o CPUs
completas que implementan variados escenarios de operaciones
tpicas, por ejemplo, clculos de luz y colores rende rizada
proyeccin de perspectiva entre otros3.

En software o tuberas consiste en varios procesos ordenados de tal


forma que el flujo de salida de un proceso alimenta la entrada del
siguiente proceso. Como, por ejemplo, los pipelines de Unix.

Consumo en la Arquitectura Pipeline


A fin de reducir consumo se investiga una solucin de compromiso entre la
resolucin por etapa y la cantidad de etapas.
El mtodo de escalamiento de capacitores est descrito para reducir la
potencia con el cual se ha sobredimensionado en las ltimas etapas del caso
de una arquitectura Pipeline convencional. Tambin

el uso de la correccin

digital permite eliminar los efectos no deseados causados por imperfecciones


en los comparadores utilizando circuitos digitales de bajo consumo y no muy
alto costo4.
Caractersticas de Pipeline
Se puede hablar de niveles de paralelismo caracterizados de la siguiente
manera5:

3 Organizacin y Arquitectura de Computadores 7 Edicin. William Stallings. Pg.43.


4 Estructura y Tecnologa de Computadores (2009). Diego Lpez. Pg. 62
5 Arquitectura de Computadores (2005). Mancia Anguita Lpez. Pg. 27

Multiprogramacin y Multiprocesamiento: Estas acciones se toman a


nivel de Programa o Trabajo.

Tarea o Procedimientos: Acciones que se toman dentro de un mismo


programa ejecutndose procesos independientes en forma simultnea.

Interinstrucciones: Acciones a nivel de instruccin o sea dentro de


mismo proceso o tarea se pueden ejecutar instrucciones independientes
en forma simultnea.

Segmentacin (Pipelining): Se consideran la siguiente descomposicin del


procesamiento:

Captacin de instruccin (Fetch Instruction, FI)

Decodificacin de la instruccin (Decode Instruction, DI)

Calculo de operandos (Calculate Operands, CO) (i.e. EAs): Calcular la EA


de c/operando.

Captacin de operandos (Fetch Operands, FO)

Ejecucin de instrucciones (Execute Instruction, EI)

Escritura de resultados (Write Operand, WO)

Sobre posicionamiento de estas operaciones

Performance de Pipeline
Un parmetro clave para la evaluacin de la performance de un Pipeline es la
"Latencia", que se define como el nmero de unidades de tiempo que separa
dos inicios de la misma o distintas tablas de reservacin. En el caso de los
Pipeline unifuncionales la latencia nunca podr ser cero, ya que todos
comienzan por la misma etapa (el menor posible es 1). En el caso de los
Pipeline dinmicos la latencia puede llegar a ser cero, ya que dos tablas de
reservacin distintas pueden superponerse. Para lograr una mejor performance
en un Pipeline es deseable obtener una "Latencia" promedio mnima. Hay que

tener en cuenta que elegir la mnima latencia entre dos inicios (estrategia
"greedy") no siempre llevar a la mejor performance.
Ntese que eligiendo la mnima latencia:

- B2 puede comenzar en el intervalo 3 (latencia 3)


- y B3 puede iniciarse en el intervalo 11 (con una latencia 8 respecto del inicio
de B2).
Ventajas y Desventajas
Una lista parcial extrada de La Facultad de Ingeniera de Montevideo presenta
las siguientes ventajas y desventajas de la arquitectura de Pipeline 6.
Ventajas

Permite comprender el comportamiento de entrada/salida de un sistema


como la composicin del comportamiento de los filtros individuales.

Facilita el mantenimiento y crecimiento

Soporte de ejecucin concurrente.

Facilita la reutilizacin de transformaciones.

Es intuitivo.

Relativamente sencillo de implementar, a nivel concurrente y secuencial.

Desventajas
6 Microprocesadores Intel. (2006). Barry B. Brey. Pg.73

No son buenos para aplicaciones interactivas.

Pueden complicarse al tener que mantener dos flujos separados pero


relacionados.

Puede ser necesario agregar los filtros conversin de datos de entrada y


salida.

Es difcil soportar interacciones basadas en eventos.

Ejemplo
Veamos el ejemplo de un pipeline de cuatro etapas: el proceso de ejecucin de
una instruccin en un computador digital envuelve cuatro pasos principales:
levantar la instruccin de memoria (Instruction Fetch - IF); identificar la
operacin que debe efectuarse (Instruction Decoding - ID); levantar los
operandos si son necesarios en la ejecucin (Operand Fetch - OF); y ejecutar
la operacin aritmtico lgica que ha sido decodificada. Antes de comenzar a
ejecutar una nueva instruccin deben completarse estos cuatro pasos.

IF, ID, OF y EX ordenadas de forma de una "cascada lineal". Las instrucciones


sucesivas se ejecutan de forma superpuesta. La diferencia entre la ejecucin
superpuesta de instrucciones y la ejecucin no superpuesta secuencial se
muestra en los diagramas de espacio/tiempo.

Cada "columna" del grfico representa un ciclo de pipeline, que es


aproximadamente igual al tiempo que tarda la etapa ms lenta. Al computador
sin pipeline le toma cuatro ciclos de pipeline completar una instruccin, en
cambio, un pipeline produce un resultado de salida por cada ciclo luego de
cargado el pipe. El ciclo de instruccin ha sido reducido efectivamente a un
cuarto del tiempo de ejecucin original, por medio de las ejecuciones
superpuestas.

Lo que hemos descripto anteriormente, es un pipeline de instruccin. La


mxima velocidad a la cual pueden ingresar las instrucciones al pipeline
depende exclusivamente del tiempo mximo requerido para atravesar una
etapa y del nmero de ellas. Hay ciertas dificultades que impedirn al pipeline
operar con su mxima velocidad. Los segmentos pueden tomar tiempos
diferentes para cumplir su funcin sobre los datos que llegan. Algunos
segmentos son salteados por ciertas instrucciones. Por ejemplo, una
instruccin modo registro no necesita un clculo de direccin de operando; por
otra parte, dos o ms segmentos pueden requerir acceso a memoria al mismo
tiempo, haciendo que un segmento tenga que esperar hasta que el otro
termine. (Los conflictos de acceso a memoria se resuelven a menudo utilizando
tcnicas de interleaving).

Conclusin
Se concluye que el importante la utilidad de Pipeline en sistemas operativos, ya
que ejecutan una serie de procesos de manera simultnea, los cuales son
ejecutados luego de manera secuencial mediante un administrador de tareas
dndoles diferente prioridad y capacidad de procesamiento, siendo esto de
suma importancia en la teora presentada.

Bibliogrfia

Microprocesadores Intel. Arquitectura, Programacin e Interfaz


Sptima Edicin (2006). Barry B. Brey. Editorial: Prentince Hall /

Pearson.
Arquitectura de Computadoras (2014). Patricia Quiroga. Editorial:

Alfaomega.
Arquitectura de Computadores (2005). Mancia Anguita Lpez, Julio

Ortega Lopera, Alberto Prieto Espinoza. Editorial: Ediciones Paraninfo.


Estructura y Tecnologa de Computadores (2009). Diego Lopez
Talavera, Francisco Charin Ojeda. Editorial: Anaya Multimedia

Coleccin.
Organizacin y Arquitectura de Computadores 7 Edicin. William
Stallings. Editorial: Prentince Hall / Pearson.