La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ISI374 – Arquitectura de Computadores Clase 12: Segmentación (Pipelining) Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1.

Presentaciones similares


Presentación del tema: "ISI374 – Arquitectura de Computadores Clase 12: Segmentación (Pipelining) Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1."— Transcripción de la presentación:

1 ISI374 – Arquitectura de Computadores Clase 12: Segmentación (Pipelining) Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia

2 ISI374 - Arquitectura de Computadores (2010-1) 2 Resumen La recurrente analogía con una lavandería Latencia, throughput Pasos en la ejecución de una instrucción MIPS Procesador MIPS segmentado Rendimiento del procesador segmentado Speedup del pipeline ISA y pipeline Riesgos (Hazards)

3 ISI374 - Arquitectura de Computadores (2010-1) La recurrente analogía con una lavandería Tenemos cuatro canastas de ropa sucia para lavar, secar, doblar y guardar en el armario El lavado toma 30 minutos El secado toma 30 minutos El doblado toma 30 minutos Ubicar la ropa en el armario toma 30 minutos 3 ABCD

4 ISI374 - Arquitectura de Computadores (2010-1) Lavado secuencial 4 El lavado secuencial toma 8 horas para 4 canastas 30 Time 30 6 PM AM TaskOrderTaskOrder B C D A

5 ISI374 - Arquitectura de Computadores (2010-1) Lavado segmentado (pipelined) 5 El lavado segmentado toma 3.5 horas para 4 cargas Speedup = 8 / 3.5 = 2.3 ¿Qué pasa si el número de canastas es grande? Speedup Número de etapas Ej: 500 canastas toman (4+499)×0.5 = horas Speedup = 500× 2 / = 3.98 TaskOrderTaskOrder B C D A 12 2 AM 6 PM Time 30

6 ISI374 - Arquitectura de Computadores (2010-1) Latencia Tiempo necesario para ejecutar completamente una tarea (retardo) Throughput Cantidad de trabajo realizado en un periodo de tiempo (tasa) Recordatorio 6

7 ISI374 - Arquitectura de Computadores (2010-1) Lecciones de la analogía La segmentación no reduce la latencia de una tarea, sino que eleva el throughput de un proceso completo Varias tareas operan simultáneamente usando recursos diferentes Speedup potencial: número de etapas del pipe El speedup se reduce porque hay que llenar (fill) y vaciar (flush) el pipeline (2.3× contra 4× en este ejemplo) 7 6 PM Time 30 TaskOrderTaskOrder B C D A

8 ISI374 - Arquitectura de Computadores (2010-1) Lecciones de la analogía Supongamos que las tareas de lavar y ubicar la ropa en el armario ahora toman 20 minutos cada una. ¿Qué tanto más rápido es el nuevo pipeline? La rata del pipeline está limitada por la etapa más lenta Etapas desequilibradas del pipeline reducen el speedup 8 6 PM Time TaskOrderTaskOrder B C D A Secuencial= 6.67 h Segmentado= 3.17 h Speedup= 2.11

9 ISI374 - Arquitectura de Computadores (2010-1) Pasos en la ejecución de una instrucción MIPS 1.IF: (Instruction Fetch) Búsqueda de la instrucción, actualización del PC 2.ID: (Instruction Decode) Decodificación de la instrucción, lectura del banco de registros 3.EX: (Execution) Instrucción de acceso a memoria: Cálculo de la dirección Instrucción aritmético-lógica: Cálculo de la operación 4.MEM: (Memory) Load: Lectura de la memoria de datos Store: Escritura de la memoria de datos 5.WB: (Write Back) Escritura del resultado en el banco de registros 9

10 ISI374 - Arquitectura de Computadores (2010-1) Procesador MIPS segmentado Tendremos cinco etapas, una por cada paso de ejecución de una instrucción Cada etapa del pipeline se completa en un ciclo de reloj Cada instrucción toma el mismo número de etapas (5) para ejecutarse, aunque algunas de ellas estén inactivas algunas veces Mejora el throughput aunque la latencia de cada instrucción no se reduce 10 IFIDEXMEMWB IFIDEXMEMWB IFIDEXMEMWB IFIDEXMEMWB IFIDEXMEMWB Instr. i Instr. i+1 Instr. i+2 Instr. i+3 Instr. i+4 Time cc 1cc 2cc 3cc 4cc 5cc 6cc 7cc 8cc 9 Una vez el pipeline está lleno, se finaliza una instrucción cada ciclo (CPI = 1)

11 ISI374 - Arquitectura de Computadores (2010-1) Rendimiento del procesador segmentado Ciclo de reloj del procesador monociclo asumiendo que los retrasos de todos los componentes son despreciables (incluidos los cables), excepto los de los siguientes, cuyo retraso se indica: Unidades de memoria:200 ps ALU y sumadores:200 ps Banco de registros (R/W):100 ps Ciclo de reloj para la versión monociclo: 800 ps Ciclo de reloj de la versión segmentada: 200 ps 11 Tipo de instrucción Memoria de instrucciones Lectura banco de registros Operación ALU Memoria de datos Escritura banco de registros Total Tipo R ps Load word ps Store word ps Branch ps

12 ISI374 - Arquitectura de Computadores (2010-1) Rendimiento del procesador segmentado 12 Monociclo (T c = 800ps) Segmentado (T c = 200ps) El tiempo de ciclo del pipeline está limitado por la etapa más lenta

13 ISI374 - Arquitectura de Computadores (2010-1) Speedup del pipeline Si todas las etapas están balanceadas, es decir, todas tardan el mismo tiempo: Tiempo entre instrucciones segmentado = Bajo condiciones ideales y con un gran número de instrucciones, el speedup de la segmentación es aproximadamente igual al número de etapas del pipeline Si no está balanceado, el speedup es menor La segmentación eleva el rendimiento incrementando la tasa de ejecución de instrucciones (throughput), sin reducir el tiempo de ejecución de una instrucción individual (latencia) La tasa de ejecución de instrucciones es la medida que importa porque los programas ejecutan miles de millones de instrucciones 13 Tiempo entre instrucciones no segmentado Número de etapas del pipe

14 ISI374 - Arquitectura de Computadores (2010-1) ISA y segmentación La ISA del MIPS fue diseñada para una ejecución segmentada Todas las instrucciones son de la misma longitud Facilita la búsqueda de instrucciones en la primera etapa (IF) y su decodificación en la segunda (DE) Pocos formatos de instrucción Los campos de registros fuente ocupan el mismo lugar en cada formato Esta simetría permite que en la segunda etapa se lea el banco de registros a la misma vez que se determina el tipo de instrucción Los operandos de memoria sólo aparecen en las instrucciones load y store La etapa de ejecución (EX) se usa para calcular la dirección de memoria, y el acceso se produce en la siguiente etapa (MEM) Cada instrucción escribe a lo sumo un resultado y lo hace en las últimas etapas (MEM, WB) Alineamiento de memoria Los accesos a memoria se realizan en un solo ciclo de reloj 14

15 ISI374 - Arquitectura de Computadores (2010-1) Representación gráfica del pipeline Útil para: Saber cuántos ciclos de reloj toma la ejecución de un código Saber qué hace una unidad funcional en un ciclo determinado Si ocurre un riesgo (hazard), saber porqué y saber cómo resolverlo 15

16 ISI374 - Arquitectura de Computadores (2010-1) Riesgos (Hazards) El principio de la segmentación es simple pero su implementación introduce una serie de problemas Riesgos (Hazards) Situaciones en las cuales la próxima instrucción no puede ejecutarse en el siguiente ciclo de reloj Pueden obligar a detener (stall) el pipeline, evitando que se logre el speedup ideal Los riesgos se pueden resolver esperando, pero será el controlador del pipeline quien los detecte y resuelva Tipos: Riesgos estructurales (Structural hazards) Riesgos de datos (Data hazards) Riesgos de control (Control hazards) 16

17 ISI374 - Arquitectura de Computadores (2010-1) Riesgos estructurales Se presentan cuando dos instrucciones diferentes intentar usar el mismo recurso simultáneamente Ej: ¿Qué sucede si el procesador tiene una memoria de un puerto, compartida para datos e instrucciones? Solución: » Emplear memorias de datos e instrucciones independientes (I$ y D$). » En general, replicar los recursos necesarios para permitir todas las combinaciones posibles de instrucciones en el pipeline 17

18 ISI374 - Arquitectura de Computadores (2010-1) Riesgos estructurales ¿Qué sucede con los accesos al banco de registros? Para resolver el riesgo estructural al momento de acceder al banco de registros, las escrituras se realizan en la primera mitad del ciclo, y las lecturas en la segunda 18 add $t0, $t1, $t2 Instr. 1 Instr. 2 add $s2, $t0, $s3 Flanco de reloj que controla la lectura de operandos del banco de registros Flanco de reloj que controla la escritura de resultados en el banco de registros Clock

19 ISI374 - Arquitectura de Computadores (2010-1) Riesgos de datos Ocurren cuando una instrucción no puede ser ejecutada porque depende del resultado de una instrucción previa que no lo ha producido aún Ocurren cuando el pipeline modifica el orden de los accesos de lectura/escritura a los operandos tal que este orden difiere del orden visto por una ejecución secuencial no segmentada 19

20 ISI374 - Arquitectura de Computadores (2010-1) Riesgos de datos Considere la ejecución segmentada de la siguiente secuencia de instrucciones: add $t0, $t1, $t2 sub $t3, $t0, $t4 and $t5, $t0, $t6 or $t7, $t0, $t8 nor $t9, $t0, $t9 20

21 ISI374 - Arquitectura de Computadores (2010-1) Riesgos de datos Considere la ejecución segmentada de la siguiente secuencia de instrucciones: add $t0, $t1, $t2 sub $t3, $t0, $t4 and $t5, $t0, $t6 or $t7, $t0, $t8 nor $t9, $t0, $t9 Las dependencias de datos hacia atrás en el tiempo ocasionan riesgos de datos 21

22 ISI374 - Arquitectura de Computadores (2010-1) Riesgos de datos Los riesgos de datos pueden afectar seriamente el rendimiento Una primera solución para evitarlos consiste en producir paradas en el pipeline para satisfacer las dependencias de datos add$s0, $t0, $t1# También aplica con lw sub$t2, $s0, $t3 22 Bubble (burbuja), pipeline stall (parada del pipe)

23 ISI374 - Arquitectura de Computadores (2010-1) 23 Lecturas recomendadas Computer organization and design. The hardware/software Interface, 3rd ed., Chapter 6. D. Patterson & J. Hennessy. Morgan Kaufmann Publishers Computer architecture. A quantitative approach, 3rd ed., Appendix A. J Hennessy and D. Patterson. Morgan Kaufmann Publishers


Descargar ppt "ISI374 – Arquitectura de Computadores Clase 12: Segmentación (Pipelining) Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1."

Presentaciones similares


Anuncios Google