Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n:...
-
Upload
jesus-picazo -
Category
Documents
-
view
217 -
download
0
Transcript of Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n:...
![Page 1: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/1.jpg)
Pipeline
Gustavo Andrés Uribe Gómez
![Page 2: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/2.jpg)
Pipeline
![Page 3: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/3.jpg)
Pipeline
![Page 4: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/4.jpg)
Pipeline Speedup
Sk=T1/Tk= nk / [k+(n-1)]
n: Número de instrucciones entre dos saltosk: Número de etapas del pipelineTk:Tiempo en realizar las n instrucciónes con un pipeline de k etapas.T1:Tiempo en realizar las n instrucciónes.
![Page 5: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/5.jpg)
Pipeline Speedup
![Page 6: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/6.jpg)
Pipeline Speedup
![Page 7: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/7.jpg)
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)
![Page 8: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/8.jpg)
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:o Redundancia de los registros y de la memoria.o En caso de encontrarse un salto antes de resolver el
anterior necesita crear más flujos paralelos.
![Page 9: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/9.jpg)
Pre-cargado del Destino del Salto
• Se carga (fetch) la instrucción destino del salto y la instrucción siguiente al salto.
• Problemas:o La mejora de este tipo de máquina es muy mínima.
![Page 10: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/10.jpg)
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.
![Page 11: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/11.jpg)
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)
![Page 12: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/12.jpg)
Predicción de SaltosCambio tomar/no tomar salto
![Page 13: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/13.jpg)
Práctica Pipeline
1. 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.
![Page 14: Pipeline Gustavo Andrés Uribe Gómez. Pipeline Pipeline Speedup S k =T 1 /T k = nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número.](https://reader036.fdocuments.es/reader036/viewer/2022082506/5665b4441a28abb57c90907f/html5/thumbnails/14.jpg)
Gracias