La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Gustavo Andrés Uribe Gómez

Presentaciones similares


Presentación del tema: "Gustavo Andrés Uribe Gómez"— Transcripción de la presentación:

1 Gustavo Andrés Uribe Gómez
Pipeline Pipeline es una técnica para mejorar el rendimiento de los procesadores. Gustavo Andrés Uribe Gómez

2 Pipeline FI: Fetch Instruction DI: Decode Instruction
FI: Fetch Instruction DI: Decode Instruction CO:Calculate Operands FO: Fetch Operands EI: Execute Instruction WO: Write Operand CO, FO y WO acceden a memoria y pueden ocasionar que existan conflictos si estas posiciones de memoria no están en la caché. Este problema sin embargo no entorpece la eficiencia del Pipeline. Sin embargo los saltos condicionales son un problema pues no se puede predecir cual es la siguiente instrucción. Por otro lado las interrupciones son eventos fortuitos que cambian el curso del programa.

3 Pipeline La instrucción 3 es un salto condicional hasta la instrucción15. Adicional al problema mostrado en la diapositiva esta la dependencia entre instrucciones. Es decir es posible que la instrucción 5 dependa de la 4 y deba esperar el resultado de esta. ¿Que pasa en un salto incondicional?

4 Pipeline Speedup Sk=T1/Tk= nk / [k+(n-1)]
n: Número de instrucciones entre dos saltos k: Número de etapas del pipeline Tk:Tiempo en realizar las n instrucciónes con un pipeline de k etapas. T1:Tiempo en realizar las n instrucciónes. Si n tiende a infinito el speedup se hace igual a k (constante).  Los diseñadores intentan aumentar el k para tener mejores rendimientos, pero esto aumenta considerablemente los costos.

5 Pipeline Speedup

6 Pipeline Speedup

7 Manejo de los Saltos Flujos Múltiples (Multiple Streams)
Precargado del destino del salto (Prefetch branch target)  Loop buffer Predicción de saltos Saltos retrasados (Delayed branch)

8 Flujos Múltiples Los saltos condicionales provocan demoras porque la maquina no sabe cual de dos instrucciones será la siguiente. Las máquinas con flujos múltiples manejan paralelamente las dos posibles opciones hasta que se resuelva cual es la que debió seleccionarse. Problemas: Redundancia de los registros y de la memoria. En caso de encontrarse un salto antes de resolver el anterior necesita crear más flujos paralelos.

9 Pre-cargado del Destino del Salto
Se carga (fetch) la instrucción destino del salto y la instrucción siguiente al salto. Problemas: La mejora de este tipo de máquina es muy mínima.

10 Loop Buffer Estas máquinas cargan en una memoria de alta velocidad las n instrucciones más frecuentemente usadas en secuencia. Estas máquinas presentan una ventaja considerable para las instrucciones del tipo if-else y ciclos cortos.  El funcionamiento de esta memoria es similar al de la caché de instrucciones pero de menor tamaño.

11 Predicción de Saltos Existen varias técnicas:
Predicción nunca se realiza (Predict never taken ) Predicción siempre se realiza (Predict always taken) Predicción por opcode Cambio tomar/no tomar salto (Taken/not taken switch) Tabla de historia de saltos (Branch history table) Las tres primeras son estáticas, es decir no dependen de la historia de ejecución del programa. La primera técnica carga las instrucciones como si el salto no se realizara. La segunda técnica carga las instrucciones como si el salto siempre se realizara. Estudios han demostrado que en máquinas no paginadas la segunda técnica es mejor que la primera, dado que los saltos se realizan más del 50% de las veces. En la tercera técnica la decisión de salto se toma de acuerdo al opcode de la instrucción de salto. Con esta aproximación se tiene un 75% de aciertos. La tabla de historia de saltos es una pequeña cache asociada con las instrucciones cargadas en el pipeline. La table tiene 3 entradas: la instrucción de salto, la dirección destino del salto y 3 bits indicando el estado actual de la maquina.

12 Predicción de Saltos Cambio tomar/no tomar salto

13 Práctica Pipeline Mediante varios programas mostrar las perdidas de rendimiento causadas por: Saltos incondicionales Saltos condicionales Instrucciones dependientes    2.  Por medio de un programa intentar descubrir el tipo de algoritmo que usa la máquina para manejar los saltos.

14 Gracias


Descargar ppt "Gustavo Andrés Uribe Gómez"

Presentaciones similares


Anuncios Google