Introducción a paralelismo a nivel de instrucción

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción a paralelismo a nivel de instrucción"

Transcripción

1 Introducción a paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS 1/66

2 Introducción a la segmentación 1 Introducción a la segmentación 2 3 Operaciones multiciclo 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS 2/66

3 Introducción a la segmentación Segmentación Técnica de implementación en la que una la ejecución de múltiples instrucciones se solapan en el tiempo. Se divide una operación costosa en varias sub-operaciones simples. Ejecución de las sub-operaciones por etapas. Efectos: Aumenta el throughput. No disminuye la latencia. cbed Arquitectura de Computadores Grupo ARCOS 3/66

4 Introducción a la segmentación Segmentación Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Llenado de pipeline Normal IF1 IF2 ID1 IF3 ID2 EX1 IF4 ID3 EX2 M1 IF5 ID4 EX3 M2 WB1 IF6 ID5 EX4 M3 WB2 IF7 ID6 EX5 M4 WB3 IF8 ID7 EX6 M5 WB4 Latencia: Una instrucción requiere 5 etapas. 5 ciclos. Throughput: Termina una instrucción en cada ciclo (con pipeline lleno). 1 instrucción por ciclo. cbed Arquitectura de Computadores Grupo ARCOS 4/66

5 Introducción a la segmentación Etapas del pipeline Modelo simplificado: 5 etapas. Modelos más realistas requieren muchas más etapas. Etapas: Captación (Instruction Fetch). Decodificación (Instruction Decode). Ejecución (Execution). Memoria (Memory). Post-escritura (Write-back). cbed Arquitectura de Computadores Grupo ARCOS 5/66

6 Introducción a la segmentación Captación Next PC 4 Sum MUX Envío de PC a memoria. Lectura de instrucción. PC ADDR Memory IR Actualización de PC. cbed Arquitectura de Computadores Grupo ARCOS 6/66

7 Introducción a la segmentación Decodificación IR R1 R2 RD Registers Next PC MUX MUX ALU Decodificación de instrucción. Lectura de registros. Extensión de signo de desplazamientos. Inm Sign Ext Cálculo de posible dirección de salto. cbed Arquitectura de Computadores Grupo ARCOS 7/66

8 Introducción a la segmentación Ejecución Next PC MUX Next PC R1 CMP Zero Operación de ALU sobre registros. Next PC or R1 ALU Dir or Data Alternativamente, cálculo de dirección efectiva. Inm or R2 cbed Arquitectura de Computadores Grupo ARCOS 8/66

9 Introducción a la segmentación Memoria Dir Data Memory Data Lectura o escritura en memoria. Data cbed Arquitectura de Computadores Grupo ARCOS 9/66

10 Introducción a la segmentación Post-escritura Data Mem. ALU MUX Regs Escritura de resultado en banco de registros. cbed Arquitectura de Computadores Grupo ARCOS 10/66

11 Introducción a la segmentación Arquitectura general MUX 4 Sum Next PC CMP Zero R1 PC ADDR Memory IR R2 RD Registers MUX MUX ALU Data Memory MUX Inm Sign Ext Captación Post-escritura Ejecución Memoria Decodificación Postescritura cbed Arquitectura de Computadores Grupo ARCOS 11/66

12 Introducción a la segmentación Efectos del pipeline Un pipeline de profundidad n, multiplica por n el ancho de banda necesario de la versión sin pipeline con la misma frecuencia de reloj. Cachés, cachés,... La separación de caché de datos e instrucciones elimina algunos conflictos de memoria. Las instrucciones que están en el pipeline no deberían intentar usar el mismo recurso en el mismo momento. Introducción de registros de pipeline entre etapas sucesivas. cbed Arquitectura de Computadores Grupo ARCOS 12/66

13 Introducción a la segmentación Comunicación entre etapas 4 Sum Next PC Next PC CMP Zero MUX R1 PC ADDR Memory IF/ID R2 Registers ID/EX MUX ALU EX/MEM Data Memory MEM/WB MUX MUX Inm Sign Ext RD RD RD WB data cbed Arquitectura de Computadores Grupo ARCOS 13/66

14 Lectura registros segunda mitad de ciclo. cbed Escritura Arquitectura de Computadores registros primera Grupo ARCOS mitad de ciclo. 14/66 Introducción a paralelismo a nivel de instrucción Introducción a la segmentación El pipeline a lo largo del tiempo Tiempo (ciclos) Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 IMem Reg ALU DM Reg IMem Reg ALU DM Reg Instr IMem Reg ALU DM Reg IMem Reg ALU DM Reg

15 Introducción a la segmentación Ejemplo Procesador no segmentado. Ciclo de reloj: 1 ns. 40% operaciones ALU 4 ciclos. 20% operaciones de bifurcación 4 ciclos. 40% operaciones de memoria 5 ciclos. Sobrecoste de segmentación 0.2 ns. Qué aceleración se obtiene con la segmentación? t orig = ciclo reloj CPI = 1ns ( ) = 4.4ns t nuevo = 1ns + 0.2ns = 1.2ns S = 4.4ns 1.2ns = 3.7 cbed Arquitectura de Computadores Grupo ARCOS 15/66

16 1 Introducción a la segmentación 2 3 Operaciones multiciclo 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS 16/66

17 Un riesgo es una situación que impide que la siguiente instrucción pueda comenzar en el ciclo de reloj previsto. Los riesgos reducen el rendimiento de las arquitecturas segmentadas. Tipos de riesgos: Riesgo estructural. Riesgo de datos. Riesgo de control. Aproximación simple ante riesgos: Detener (stall) el flujo de instrucciones. Las instrucciones que ya han iniciado continúan. cbed Arquitectura de Computadores Grupo ARCOS 17/66

18 estructurales 2 estructurales de datos de control cbed Arquitectura de Computadores Grupo ARCOS 18/66

19 estructurales Riesgo estructural Se produce cuando el hardware no puede soportar todas las posibles secuencias de instrucciones. En un mismo ciclo dos etapas de la segmentación necesitan hacer uso del mismo recurso. Razones: Unidades funcionales no totalmente segmentadas. Unidades funcionales no duplicadas. Este tipo de riesgos es evitable pero encarece el hardware. cbed Arquitectura de Computadores Grupo ARCOS 19/66

20 estructurales Speedup de la segmentación Speedup de la segmentación: t noseg : Tiempo medio de instrucción en arquitectura no segmentada. t seg : Tiempo medio de instrucción en arquitectura segmentada. S = t noseg t seg = CPI noseg ciclo noseg CPI seg ciclo seg En el caso ideal el CPI segmentado es 1. Hay que añadir ciclos de detención por instrucción. cbed Arquitectura de Computadores Grupo ARCOS 20/66

21 estructurales Speedup de la segmentación En el caso del procesador no segmentado. CPI = 1, con ciclo noseg > ciclo seg. ciclo noseg = N ciclo seg. N Profundidad del pipeline. Speedup S = N 1 + detenciones por instrucción cbed Arquitectura de Computadores Grupo ARCOS 21/66

22 estructurales estructurales: ejemplo Tiempo (ciclos) Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 LOAD Mem Reg ALU Mem Reg Instr + 1 Mem Reg ALU Mem Reg Instr + 2 Mem Reg ALU Mem Reg Instr + 3 Mem Reg ALU Mem Reg Asumiendo memoria de un único puerto. cbed Arquitectura de Computadores Grupo ARCOS 22/66

23 estructurales estructurales: ejemplo Tiempo (ciclos) Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 LOAD Mem Reg ALU Mem Reg Instr + 1 Mem Reg ALU Mem Reg Instr + 2 Instr Mem Reg ALU Mem Reg Instr + 3 stall stall stall stall stall Instr + 4 Mem Reg Asumiendo memoria de un único puerto. cbed Arquitectura de Computadores Grupo ARCOS 23/66

24 estructurales Ejemplo Se consideran dos diseño alternativos: A: Sin riesgos estructurales. Ciclo de reloj 1ns B: Con riesgos estructurales. Ciclo de reloj 0.9ns Instrucciones de acceso a datos con riesgo 30%. Alternativa más rápida? t inst (A) = CPI ciclo = 1 1ns = 1ns t inst (B) = CPI ciclo = ( (1+1)) 0.9ns = 1.17ns cbed Arquitectura de Computadores Grupo ARCOS 24/66

25 de datos 2 estructurales de datos de control cbed Arquitectura de Computadores Grupo ARCOS 25/66

26 de datos Riesgo de datos Se produce un riesgo de datos cuando la segmentación modifica el orden de accesos de lectura/escritura a los operandos. Ejemplo I1 : dadd $1, $2, $3 I2 : dsub $4, $1, $5 I3 : and $6, $1, $7 I4 : or $8, $1, $9 I5 : xor $10, $1, $11 I2 lee R1 antes que I1 la modifique. I3 lee R1 antes de que I1 la modifique. I4 obtiene valor correcto. Banco de registros leído en segunda mitad de ciclo. I5 obtiene valor correcto. cbed Arquitectura de Computadores Grupo ARCOS 26/66

27 de datos de datos Tiempo (ciclos) Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 dadd $1, $2, $3 Mem Reg ALU Mem Reg dsub $4, $1, $5 Mem Reg ALU Mem Reg and $6, $1, $7 Mem Reg ALU Mem Reg or $8, $1, $9 Mem Reg ALU Mem Reg xor $10, $1, $11 Mem Reg ALU Mem Reg cbed Arquitectura de Computadores Grupo ARCOS 27/66

28 de datos Detenciones en riesgos de datos Tiempo (ciclos) Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 dadd $1, $2, $3 Mem Reg ALU Mem Reg dsub $4, $1, $5 stall stall Mem Reg ALU Mem Reg and $6, $1, $7 Mem Reg ALU Mem or $8, $1, $9 Mem Reg ALU xor $10, $1, $11 Mem Reg cbed Arquitectura de Computadores Grupo ARCOS 28/66

29 de datos de datos: RAW Lectura después de escritura (Read After Write). La instrucción i+1 trata de leer un dato antes de que la instrucción i lo escriba. Ejemplo i : add $1, $2, $3 i+1: sub $4, $1, $3 Si hay dependencia de datos, las instrucciones: No pueden ejecutarse en paralelo ni solaparse completamente. La instrucción sub necesita el valor de $1 producido por la instrucción add. Soluciones: Detección hardware. Control por el compilador. cbed Arquitectura de Computadores Grupo ARCOS 29/66

30 de datos de datos: WAR Escritura después de lectura (Write After Read). La instrucción i+1 modifica operando antes de que la instrucción i lo lea. Ejemplo i : sub $4, $1, $3 i+1: add $1, $2, $3 i+2: mul $6, $1, $7 Conocido como antidependencia en compiladores. Reutilización de nombre La instrucción add modifica $1 antes de sub la lea. No puede ocurrir en un MIPS con pipeline de 5 etapas. Todas las instrucciones de 5 etapas. Lecturas siempre en etapa 2. Escrituras siempre en etapa 5. cbed Arquitectura de Computadores Grupo ARCOS 30/66

31 de datos de datos: WAW Escritura después de escritura (Write After Write). La instrucción i+1 modifica el operando antes de que la instrucción i lo modifica. Ejemplo i : sub $1, $4, $3 i+1: add $1, $2, $3 i+2: mul $6, $1, $7 Conocido como dependencia de salida en compiladores. Reutilización de nombre La instrucción add modifica $1 antes de sub la modifique. No puede ocurrir en un MIPS con pipeline de 5 etapas. Todas las instrucciones de 5 etapas. Escrituras siempre en etapa 5. cbed Arquitectura de Computadores Grupo ARCOS 31/66

32 de datos Soluciones a los riesgos de datos Dependencias RAW: Envío adelantado (forwarding). Dependencias WAR y WAW: Renombrado de registros. Estáticamente por el compilador. Dinámicamente por el hardware. cbed Arquitectura de Computadores Grupo ARCOS 32/66

33 de datos Envío adelantado Técnica para evitar algunas detenciones de datos. Idea básica: No hace falta esperar a que el resultado se escriba en el banco de registros. Ya está en los registros de segmentación. Se puede usar ese valor en vez del que hay en el banco de registros. Implantación: Los resultados de las fases EX y MEM se escriben en registros de entrada a ALU. La lógica de forwarding selecciona entre entradas reales y registros de forwarding. cbed Arquitectura de Computadores Grupo ARCOS 33/66

34 de datos Forwarding dadd $1, $2, $3 IM Reg ALU DM Reg dsub $4, $1, $5 IM Reg ALU DM Reg and $6, $1, $7 IM Reg ALU DM Reg or $8, $1, $9 IM Reg ALU DM Reg xor $10, $1, $11 IM Reg ALU DM Reg cbed Arquitectura de Computadores Grupo ARCOS 34/66

35 de datos Limitaciones del forwarding Ejemplo No todos los riesgos se pueden evitar con forwarding. No se puede viajar hacia atrás en el tiempo! I1 : lw $1, ( 0 ) $2 I2 : dsub $4, $1, $5 I3 : and $6, $1, $7 I4 : or $8, $1, $9 I5 : xor $10, $1, $11 IM Reg ALU DM Reg IM Reg ALU DM Reg Si el riesgo no se puede evitar se debe introducir una detención. cbed Arquitectura de Computadores Grupo ARCOS 35/66

36 de datos Detenciones en acceso a memoria lw $1, 0($2) IM Reg ALU DM Reg dsub $4, $1, $5 IM Reg stall ALU DM Reg and $6, $1, $7 IM stall Reg ALU DM Reg or $8, $1, $9 stall IM Reg ALU DM Reg xor $10, $1, $11 IM Reg ALU DM Reg cbed Arquitectura de Computadores Grupo ARCOS 36/66

37 de control 2 estructurales de datos de control cbed Arquitectura de Computadores Grupo ARCOS 37/66

38 de control de control Un riesgo de control se produce en una instrucción de alteración del PC. Terminología: Bifurcación tomada: Si se modifica el PC. Bifurcación no tomada: Si no se modifica el PC. Problema: La segmentación asume que lo bifurcación no se tomará. Qué hacer si después de la etapa ID se determina que hay que tomar la bifurcación? cbed Arquitectura de Computadores Grupo ARCOS 38/66

39 de control Alternativas ante riesgos de control Tiempo de compilación: Prefijadas durante toda la ejecución del programa. El software puede intentar minimizar su impacto si conoce el comportamiento del hardware. El compilador puede hacer este trabajo. Alternativas en tiempo de ejecución: Comportamiento variable durante la ejecución del programa. Intentan predecir qué hará el software. cbed Arquitectura de Computadores Grupo ARCOS 39/66

40 de control de control: soluciones estáticas 1 Congelación del pipeline. 2 Predicción prefijada. Siempre no tomado. Siempre tomado. 3 Bifurcación con retraso. En muchos casos el compilador necesita saber qué se va a hacer para reducir el impacto. cbed Arquitectura de Computadores Grupo ARCOS 40/66

41 de control Congelación del pipeline Idea: Si la instrucción actual es una bifurcación parar o eliminar del pipeline instrucciones posteriores hasta que se conozca el destino. Penalización en tiempo de ejecución conocida. El software (compilador) no puede hacer nada. El destino de la bifurcación se conoce en la etapa ID. Repetir el FETCH de la siguiente instrucción. cbed Arquitectura de Computadores Grupo ARCOS 41/66

42 de control Repetición de captación Bifurcación IF ID EX M WB Instr i+1 IF IF ID EX M WB Instr i+2 IF ID EX M WB Instr i+3 IF ID EX M WB La repetición de IF equivale a una detención. Una detención por bifurcación puede dar lugar a una pérdida de rendimiento de 10% a 30%. cbed Arquitectura de Computadores Grupo ARCOS 42/66

43 de control Predicción prefijada: no tomada Idea: Asumir que la bifurcación será no tomada. Se evita modificar el estado del procesador hasta que se tiene la confirmación de que la bifurcación no se toma. Si la bifurcación se toma, las instrucciones siguientes se retiran del pipeline y se capta la instrucción en el destino del salto. Transformar instrucciones en NOP. Tarea del compilador: Organizar código poniendo la opción más frecuente como no tomada e invirtiendo condición si es necesario. cbed Arquitectura de Computadores Grupo ARCOS 43/66

44 de control Predicción prefijada: no tomada Bifurcación IF ID EX M WB Instr i+1 IF Destino bifurc. IF ID EX M WB Instr j+1 IF ID EX M WB Cuando se sabe que el salto se tomará se capta la nueva instrucción (j+1). cbed Arquitectura de Computadores Grupo ARCOS 44/66

45 de control Predicción prefijada: tomada Idea: Asumir que la bifurcación será tomada. Tan pronto como se decodifica la bifurcación y se calcula el destino se comienza a captar instrucciones del destino. En pipeline de 5 etapas no aporta ventajas. No se conoce dirección destino antes que decisión de bifurcación. Útil en procesadores con condiciones complejas y lentas. Tarea del compilador: Organizar código poniendo la opción más frecuente como tomada e invirtiendo condición si es necesario. cbed Arquitectura de Computadores Grupo ARCOS 45/66

46 de control Bifurcación retrasada Idea: La bifurcación se produce después de ejecutar las n instrucciones posteriores a la propia instrucción de bifurcación. En pipeline de 5 etapas 1 ranura de retraso (delay slot). Ejemplo I0 : bnez $1, e t i q I1 : addi $2, $2, 1 I2 : mul $3, $2, $4... IN : sub $1, $1, 1 IN +1: mul $3, $3, $4 Las instrucciones I1, I2,..., IN se ejecutan independientemente del sentido de la condición de bifurcación. La instrucción IN+1 solamente se ejecuta si no se produce la bifurcación. cbed Arquitectura de Computadores Grupo ARCOS 46/66

47 de control Bifrucación retrasada Bifurcación IF ID EX M WB Instr. retrasada IF ID EX M WB Instr. sig o destino IF ID EX M WB Caso de bifurcación retrasada con una ranura de retraso. Se espara siempre una instrucción antes de tomar la bifurcación. Es responsabilidad del programador poner código útil en la ranura. cbed Arquitectura de Computadores Grupo ARCOS 47/66

48 de control Compilador y ranuras de retraso Original add $1, $2, $3 beqz $2, e t i q nop xor $5, $6, $7 e t i q : and $8, $9, $10 Original e t i q : add $1, $2, $3 xor $5, $6, $7 beqz $5, e t i q nop and $8, $9, $10 Original add $1, $2, $3 beqz $1, e t i q nop xor $5, $6, $7 e t i q : and $8, $9, $10 Mejorado beqz $2, e t i q add $1, $2, $3 xor $5, $6, $7 e t i q : and $8, $9, $10 Mejorado add $1, $2, $3 e t i q : xor $5, $6, $7 beqz $5, e t i q add $1, $2, $3 and $8, $9, $10 Mejorado add $1, $2, $3 beqz $1, e t i q xor $5, $6, $7 e t i q : and $8, $9, $10 cbed Arquitectura de Computadores Grupo ARCOS 48/66

49 de control Bifurcaciones retrasadas Efectividad del compilador para el caso de 1 ranura: Rellena alrededor del 60% de ranuras. En torno al 80% de instrucciones ejecutadas en ranuras útiles para computación. En torno al 50% de ranuras rellenados de forma útil. Al usarse pipelines más profundos y emisión múltiple hacen falta más ranuras. En desuso a favor de enfoque dinámicos. cbed Arquitectura de Computadores Grupo ARCOS 49/66

50 de control Rendimiento y predicción prefijada El número de detenciones de bifurcaciones depende de: Frecuencia de las bifurcaciones. Penalización por bifurcación. Ciclos de penalización por bifurcación: ciclos bifurc = frecuencia bifurc penaliz bifurc Aceleración S = profundidad pipeline 1 + frecuencia bifurc penaliz bifurc cbed Arquitectura de Computadores Grupo ARCOS 50/66

51 de control Caso práctico MIPS R4000 (pipeline más profundo). 3 etapas antes de conocer destino de bifurcación. 1 etapa adicional para evaluar condición. Asumiendo que no hay detenciones de datos en comparaciones. Frecuencia de bifurcaciones: Bifurcación incondicional: 4%. Bifurcación condicional, no-tomada: 6% Bifurcación condicional, tomada: 10% Esquema Penalización bifurcación incondicional no-tomada tomada Vaciar pipeline Predecir tomada Predecir no-tomada cbed Arquitectura de Computadores Grupo ARCOS 51/66

52 de control Solución Esquema Bifurcación Total bifurcación incondicional no-tomada tomada Frecuencia 4% 6% 10% 20% Vaciar pipeline = = = Predecir tomada = = = Predecir notomada = = = Contribución sobre CPI ideal Speedup de predecir tomada sobre vaciar pipeline S = = Speedup de predecir no tomada sobre vaciar pipeline S = = cbed Arquitectura de Computadores Grupo ARCOS 52/66

53 de control Bifurcaciones y tiempo de ejecución Cada bifurcación condicional está fuertemente sesgada. O se toma la mayoría de las veces, O no se toma la mayoría de las veces. Predicción basada en perfil de ejecución: Se ejecuta una vez para recoger estadísticas. Se utiliza la información recogida para modificar el código y aprovechar la información. cbed Arquitectura de Computadores Grupo ARCOS 53/66

54 de control Predicciones con perfil de ejecución SPEC92: Frecuencia de bifurcaciones 3% a 24% Coma flotante: Fallo de predicción. Media: 9%. Desviación estándar: 4%. Enteros: Fallo de predicción. Media: 15%. Desviación estándar: 5%. cbed Arquitectura de Computadores Grupo ARCOS 54/66

55 de control Predicciones con perfil de ejecución su2cor mdljdp hydro2d ear doduc li gcc espresso eqntott compress Tasa de fallo de predicción cbed Arquitectura de Computadores Grupo ARCOS 55/66

56 de control Predicción dinámica: BHT Tabla histórica de saltos (Branch History Table) Índice: Bits menos significativos de dirección (PC). Valor: 1 bit (salto tomado o no la última vez). T NT Predict Taken (11) T Predict Not Taken (01) T NT T Predict Taken (10) NT Predict Not Taken (00) NT Mejoras: Uso de más bits para mejorar la precisión. cbed Arquitectura de Computadores Grupo ARCOS 56/66

57 de control BHT: Precisión Fallos de predicción: Predicción errónea para el salto. Historia de otro salto en la entrada de la tabla. Resultados BHT de 2 bits y 4K entradas: nasa7 matrix300 fpppp doduc spice gcc li espresso eqntott Tasa de fallo de predicción cbed Arquitectura de Computadores Grupo ARCOS 57/66

58 de control Predicción dinámica de bifurcación Por qué funciona la predicción de saltos? El algoritmo presenta regularidades. Las estructuras de datos presenta regularidades. Es mejor la predicción dinámica que la predicción estática? Parecer serlo. Hay un pequeño número de bifurcaciones importantes en programas con comportamiento dinámico. cbed Arquitectura de Computadores Grupo ARCOS 58/66

59 Operaciones multiciclo 1 Introducción a la segmentación 2 3 Operaciones multiciclo 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS 59/66

60 Operaciones multiciclo Operaciones de coma flotante Operaciones de coma flotante en un ciclo? Tener un ciclo de reloj extremadamente largo. Impacto en rendimiento global. Lógica de control de FPU muy compleja. Consumo excesivo de recursos de diseño. Alternativa: Segmentación de coma flotante. La etapa de ejecución se puede repetir varias veces. Múltiples unidades funcionales en EX. Ejemplo: Unidad entera, multiplicador FP y entero, sumador FP, divisor FP y entero. cbed Arquitectura de Computadores Grupo ARCOS 60/66

61 Operaciones multiciclo Segmentación con coma flotante La etapa EX pasa a tener una duración mayor que 1 ciclo de reloj. IF ID EX (unidad entera) MEM WB EX (multiplicador int/fp) EX (sumador fp) EX (divisor int/fp) cbed Arquitectura de Computadores Grupo ARCOS 61/66

62 Operaciones multiciclo Latencia e intervalo de iniciación Latencia: Número de ciclos entre la instrucción que produce un resultado y la instrucción que usa ese resultado. Intervalo de iniciación: Número de ciclos entre la emisión de dos instrucciones que usan la misma unidad funcional. Operación Latencia Intervalo iniciación ALU entera 0 1 Instrucciones load 1 1 Suma FP 3 1 Multiplicación FP 6 1 División FP cbed Arquitectura de Computadores Grupo ARCOS 62/66

63 Conclusión 1 Introducción a la segmentación 2 3 Operaciones multiciclo 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS 63/66

64 Conclusión Resumen Una arquitectura segmentada requiere mayor ancho de banda de memoria. Los riesgos en el pipeline provocan detenciones. Degradación del rendimiento. Las detenciones de riesgos de datos se pueden mitigar con técnicas de compilación. Las detenciones de riesgos de control se pueden reducir con: Alternativas en tiempo de compilación. Alternativas en tiempo de ejecución. Las operaciones multi-ciclo permiten mantener ciclos de reloj cortos. cbed Arquitectura de Computadores Grupo ARCOS 64/66

65 Conclusión Referencias Computer Architecture. A Quantitative Approach 5th Ed. Hennessy and Patterson. Secciones C.1, C.2 y C.5 Ejercicios recomendados: C.1, C.2, C.3, C.4 y C.5. cbed Arquitectura de Computadores Grupo ARCOS 65/66

66 Conclusión Introducción a paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS 66/66

3. SEGMENTACIÓN DEL CAUCE

3. SEGMENTACIÓN DEL CAUCE 3. SEGMENTACIÓN DEL CAUCE 1 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 2. Etapas del MIPS64 3. Riesgos 4. Operaciones muticiclo 2 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 3 Conceptos básicos Ciclo

Más detalles

Ejercicios de Paralelismo a Nivel de Instrucción

Ejercicios de Paralelismo a Nivel de Instrucción Ejercicios de Paralelismo a Nivel de Instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo

Más detalles

Arquitectura de Computadores II Clase #5

Arquitectura de Computadores II Clase #5 Arquitectura de Computadores II Clase #5 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Algunas ideas para mejorar el rendimiento Obvio: incrementar la frecuencia

Más detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características

Más detalles

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Segmentación (Pipeline) MIPS 64 7. Memoria Caché 8. Arquitecturas RISC Arquitectura

Más detalles

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones Arquitectura de Computadoras Clase 4 Segmentación de Instrucciones Segmentación de cauce: Conceptos básicos La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware

Más detalles

Pipeline (Segmentación)

Pipeline (Segmentación) Pipeline (Segmentación) Segmentación (Pipeline) Es una técnica de implementación por medio de la cual se puede traslapar la ejecución de instrucciones. En la actualidad la segmentación es una de las tecnologías

Más detalles

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Pipeline Facultad de Ingeniería - Universidad de la República Curso 2017 Objetivo Mejorar el rendimiento Incrementar frecuencia de reloj? Ancho de los

Más detalles

Segmentación del ciclo de instrucción

Segmentación del ciclo de instrucción Segmentación del ciclo de instrucción William Stallings, Organización y Arquitectura de Computadores, Capítulo 11: Estructura y función de la CPU. John Hennessy David Patterson, Arquitectura de Computadores

Más detalles

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación Segmentación: Mejora del rendimiento IEC UTM Moisés E. Ramírez G. 1 Segmentación La segmentación (pipelining) es una técnica de implementación por la cual se solapa la ejecución de múltiples instrucciones.

Más detalles

Soluciones a ejercicios de Paralelismo a Nivel de instrucción

Soluciones a ejercicios de Paralelismo a Nivel de instrucción Soluciones a ejercicios de Paralelismo a Nivel de instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores

Más detalles

Memoria caché básica

Memoria caché básica Memoria caché básica Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 1. La

Más detalles

Segmentación del ciclo de instrucción

Segmentación del ciclo de instrucción Segmentación del ciclo de instrucción v.2012 William Stallings, Organización y Arquitectura de Computadores, Capítulo 11: Estructura y función de la CPU. John Hennessy David Patterson, Arquitectura de

Más detalles

Definición de prestaciones

Definición de prestaciones Definición de prestaciones En términos de velocidad. Diferentes puntos de vista: Tiempo de ejecución. Productividad (throughput) Medidas utilizadas En función de la duración del ciclo de reloj y del número

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 1. La

Más detalles

Procesadores Superescalares

Procesadores Superescalares Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Prof. Mónica Parada Segmentación de Cauce y Paralelismo Multiples unidades de

Más detalles

Arquitectura de Computadoras. Clase 8 Procesadores superescalares

Arquitectura de Computadoras. Clase 8 Procesadores superescalares Arquitectura de Computadoras Clase 8 Procesadores superescalares Procesador Escalar Ejecución secuencial de instrucciones F: búsqueda D: decodificación F D ALU F D ALU F D ALU Instrucción 1 Instrucción

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2006-07 1. El siguiente fragmento de código se ejecuta en un DLX con segmentación: SUB R1,R2,R3 ADD R4,R5,R6 SUB R5,R4,R8 ADD R7,R2,R3 ADD R9,R7,R3

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2012-13 1. Sea la siguiente secuencia de código de instrucciones en punto flotante para un computador similar al DLX que aplica gestión dinámica de

Más detalles

Procesador Segmentado

Procesador Segmentado Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Segmentación Descompone una determinada operación

Más detalles

Arquitectura de Computadores - 2001

Arquitectura de Computadores - 2001 IV. Segmentación o Pipelining Alternativas de Implementación de Procesador 1. Procesador Uniciclo CPI = 1 Pero Período de Reloj Grande 2. Procesador Multiciclo CPI > 1 Pero Período de Reloj más Pequeño

Más detalles

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012 Apellidos Nombre Grupo Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las

Más detalles

Aspectos avanzados de arquitectura de computadoras Superescalares I. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Superescalares I. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Superescalares I Facultad de Ingeniería - Universidad de la República Curso 2017 Instruction Level Parallelism Propiedad de un programa. Indica qué tanto

Más detalles

Explotación del paralelismo a nivel de instrucción

Explotación del paralelismo a nivel de instrucción Explotación del paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato

Más detalles

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION SEGMENTACION SEGMENTACION SEGMENTACION I I I I I 1 2 3 4 5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB SEGMENTACION INTRODUCIR NUEVA INSTRUCCIÓN CADA CICLO 1 CICLO,

Más detalles

Segmentación de instrucciones

Segmentación de instrucciones 7HPD6HJPHQWDFLyQGH,QVWUXFFLRQHV 2EMHWLYRV 5HIHUHQFLDV (WDSDVGHXQFDXFH 3DURQHV HVWUXFWXUDOHV SRUGHSHQGHQFLDGHGDWRV SRUGHSHQGHQFLDGHFRQWURO 0RGLILFDFLyQGHXQFDXFHSDUDRSHUDFLRQHVPXOWLFLFOR (MHPSORHO0,365 1

Más detalles

DEPENDENCIAS Y BLOQUEOS DE CONTROL (Apartado 2.8)

DEPENDENCIAS Y BLOQUEOS DE CONTROL (Apartado 2.8) DEPENDENCIAS Y BLOQUEOS DE CONTROL (Apartado 2.8) 1. Introducción. 2. Dependencias, riesgos y bloqueos de control. 3. Consideraciones de implementación. 4. Comportamiento de los saltos condicionales. 5.

Más detalles

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas de memoria caché de memoria caché Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática

Más detalles

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados.

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. TEMA 9: LANZAMIENTO MÚLTIPLE DE INSTRUCCIONES 1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. Bibliografía: J.L. Hennessy & D. A. Patterson. Computer

Más detalles

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 2 Estructuras segmentadas Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 2. Estructuras segmentadas Noción de segmentación Rendimiento.

Más detalles

Tema 5. Segmentación: conceptos básicos

Tema 5. Segmentación: conceptos básicos Tema 5. Segmentación: conceptos básicos Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI

Más detalles

Pipelining. Introducción

Pipelining. Introducción Pipelining Introducción Definición Técnica de implementación. Consiste en ejecutar traslapadas varias instrucciones al mismo tiempo. Universidad de Sonora Arquitectura de Computadoras 2 Ejemplo Pasos para

Más detalles

Aspectos avanzados de arquitectura de computadoras Pipeline II. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Pipeline II. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Pipeline II Facultad de Ingeniería - Universidad de la República Curso 2017 Excepciones (1/5) Tipos de excepciones: Externas, provocadas por hardware

Más detalles

Ejercicios para el 3er parcial

Ejercicios para el 3er parcial Problema 1: Representar la ejecución de las siguientes instrucciones: Add $2, $5, $4 Add $4, $2, $5 Lw $5, 100($2) Add $3, $5, $4 Beq $8, $8, s1 And $1, $2, $3 OR $4, $5, $6 s1: Sub $7, $8, $9 Ejercicios

Más detalles

Memoria compartida distribuida

Memoria compartida distribuida Memoria compartida distribuida Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento

Más detalles

Arquitectura Segmentada: Conceptos básicosb

Arquitectura Segmentada: Conceptos básicosb Arquitectura Segmentada: Conceptos básicosb Diseño de Sistemas Digitales EL-3310 I SEMESTRE 2008 4 ARQUITECTURA SEGMENTADA (PIPELINING) (4 SEMANAS) 4.1 Conceptos básicos de la arquitectura segmentada Paralelismo

Más detalles

6. PROCESADORES SUPERESCALARES Y VLIW

6. PROCESADORES SUPERESCALARES Y VLIW 6. PROCESADORES SUPERESCALARES Y VLIW 1 PROCESADORES SUPERESCALARES Y VLIW 1. Introducción 2. El modelo VLIW 3. El cauce superescalar 4. Superescalar con algoritmo de Tomasulo 2 PROCESADORES SUPERESCALARES

Más detalles

Tema 7: Procesadores superescalares

Tema 7: Procesadores superescalares Tema 7: Procesadores superescalares Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA Tema 7: Procesadores superescalares

Más detalles

EC - Bibliografía EC -

EC - Bibliografía EC - . Introducción 2. IPS 3. Segmentación 4. Riesgos estructurales 5. Riesgos de datos 6. Riesgos de control 7. Riesgos de control con riesgos LDE 8. Resumen Bibliografía Hennessy Patterson Apendice A, 4ª

Más detalles

PROCESADORES DE EMISIÓN MÚLTIPLE

PROCESADORES DE EMISIÓN MÚLTIPLE PROCESADORES DE EMISIÓN MÚLTIPLE Cómo conseguir un CPI1)? Emitiendo varias instrucciones en un mismo ciclo de reloj Dos clases de procesadores de emisión múltiple Superescalares y VLIW (Very Long

Más detalles

Segmentación de cauce

Segmentación de cauce Segmentación de cauce 11ª Semana Bibliografía: [HAM03] Cap.8 Organización de Computadores. Hamacher, Vranesic, Zaki. McGraw-Hill 2003 Signatura ESIIT/C.1 HAM org [STA8] Sec.12.4 Organización y Arquitectura

Más detalles

PROCESADORES DE EMISIÓN MÚLTIPLE

PROCESADORES DE EMISIÓN MÚLTIPLE PROCESADORES DE EMISIÓN MÚLTIPLE Cómo conseguir un CPI1)? Emitiendo varias instrucciones en un mismo ciclo de reloj Dos clases de procesadores de emisión múltiple Superescalares y VLIW (Very Long

Más detalles

Tema 6. Introducción a la segmentación avanzada: Riesgos

Tema 6. Introducción a la segmentación avanzada: Riesgos Tema 6. Introducción a la segmentación avanzada: Riesgos Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR

Más detalles

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores. HISTORIA DEL PIPELINE CRONOLOGÍA Introducción ppo. S. XX IBM 704 1955 IBM 7030 (proyecto Stretch) 1956-1961 CDC 6600 1964 VAX 8800 1987 RISC vs CISC (MIPS vs VAX 8700) 1989 R4000 (Supersegmentado) 1991

Más detalles

Paralelismo al nivel de instrucciones

Paralelismo al nivel de instrucciones Paralelismo al nivel de instrucciones Arquitectura de Computadoras M. C. Felipe Santiago Espinosa Mayo de 2017 Qué es la segmentación o pipelining? O Técnica para la generación de paralelismo en microprocesadores.

Más detalles

Tratamiento de Excepciones en MIPS

Tratamiento de Excepciones en MIPS Tratamiento de en MIPS Elías Todorovich Arquitectura I - Curso 2013 Riesgos de Control Las direcciones del PC no son secuenciales (PC = PC + 4) en los siguientes casos: Saltos condicionales (beq, bne)

Más detalles

1) En un DLX con segmentación ejecutamos el siguiente fragmento de código:

1) En un DLX con segmentación ejecutamos el siguiente fragmento de código: Arquitectura e Ingeniería de Computadores. Examen Parcial (Problemas). 10/02/2009 1) En un DLX con segmentación ejecutamos el siguiente fragmento de código: ADDI r3,r0,#3 L1 : SUBD F2,F6,F8 SUBD F4,F8,F6

Más detalles

Segmentación del ciclo de instrucción v.2016

Segmentación del ciclo de instrucción v.2016 Segmentación del ciclo de instrucción v.2016 John Hennessy & David Patterson, Arquitectura de Computadores Un enfoque cuantitativo, 4ª edición Apéndice A (Capítulos 5 y 6 de la 1ª edición) Segmentación

Más detalles

Soluciones a ejercicios de Fundamentos

Soluciones a ejercicios de Fundamentos Soluciones a ejercicios de Fundamentos J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo ARCOS

Más detalles

Procesadores superescalares. Introducción

Procesadores superescalares. Introducción Procesadores superescalares Introducción Introducción El término superescalar (superscalar) fue acuñado a fines de los 80s. Todas las CPUs modernas son superescalares. Es un desarrollo de la arquitectura

Más detalles

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX. Procesadores segmentados. El DLX. Curso 2011-2012 Características de las Arquitecturas Tipos de Arquitectura Organización de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones

Más detalles

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 4). Curso Arquitectura de Computadores Problemas (hoja 4). Curso 2006-07 1. Sea un computador superescalar similar a la versión Tomasulo del DLX capaz de lanzar a ejecución dos instrucciones independientes por ciclo

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Organización general Superescalar Varios pipelines. 2 operaciones enteras,

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones

Más detalles

Memoria compartida simétrica

Memoria compartida simétrica Memoria compartida simétrica Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento

Más detalles

Tendencias y Evaluación

Tendencias y Evaluación Tendencias y Evaluación Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de

Más detalles

Ejercicios de jerarquía de memoria

Ejercicios de jerarquía de memoria Ejercicios de jerarquía de memoria J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo ARCOS Departamento

Más detalles

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0 P2. (3 puntos) El siguiente código en ensamblador recorre un vector v, que comienza en la posición 0, calculando para cada v[i] el número de combinaciones que pueden darse con v[i] elementos tomados de

Más detalles

Práctica 1 - Rendimiento *

Práctica 1 - Rendimiento * Práctica 1 - Rendimiento * Organización del Computador 1 Verano 2014 Subconjunto mínimo de ejercicios recomendado: 1 a 11 Ejercicio 1 Considere tres procesadores distintos P 1, P 2 y P 3 que ejecutan el

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES INTRODUCCIÓN Características de los procesadores superescalares Paralelismo Diversificación Dinamismo Arquitectura de un procesador superescalar genérico Características

Más detalles

Paralelismo en monoprocesadores. Introducción

Paralelismo en monoprocesadores. Introducción Paralelismo en monoprocesadores Introducción Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura Computadoras y técnicas Digitales Carrera: Ingeniería Sistemas Ciclo: 4º año 1 Técnicas para mejorar el

Más detalles

Arquitectura e Ingeniería de Computadores

Arquitectura e Ingeniería de Computadores Arquitectura e Ingeniería de Computadores Tema 2 Procesadores Segmentados Curso 2-22 Contenidos Introducción: Recordatorio MPIS-DLX Excepciones y control Segmentación Riesgos: Estructurales, de datos y

Más detalles

Riesgos de Control. Problemas con el Control de Flujo Saltos en el MIPS R3000 Métodos de Resolución

Riesgos de Control. Problemas con el Control de Flujo Saltos en el MIPS R3000 Métodos de Resolución Arquitectura (08/09) Riesgos Control Problemas con el Control Flujo Saltos en el MIPS R3000 Métodos Resolución Reducción la Latencia Predicción Salto Salto Retardado 53 Arquitectura (08/09) Problemas con

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2009 Organización general Superescalar Varios pipelines 2 ops. Enteras, 2 de

Más detalles

Organización de Computadoras. Pipeline Continuación

Organización de Computadoras. Pipeline Continuación Organización de Computadoras Pipeline Continuación Extensión del pipeline para manejar operaciones multiciclo (unpipelined) Extensión del pipeline para manejar operaciones multiciclo El pipeline del MIPS

Más detalles

Rendimiento de computadores

Rendimiento de computadores + Prof. José María Foces Morán Dept. IESA Universidad de León Rendimiento de computadores Tiempo de ejecución Tiempo de CPU Rendimiento comparativo Ley de Amdahl Ley de Gustaffson + Computador síncrono

Más detalles

Fig Riesgos por dependencias de datos.

Fig Riesgos por dependencias de datos. 5.4 Riesgos por dependencia de datos Hasta el momento se han considerado secuencias de código en las que no hay dependencias de datos, en esos casos la implementación mostrada en la figura 5.23 trabaja

Más detalles

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 3 Paralelismo a nivel de instrucción (I) Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 3. Paralelismo a Nivel de Instrucción I Planificación

Más detalles

Pipeline o Segmentación Encausada

Pipeline o Segmentación Encausada Pipeline o Segmentación Encausada Material Elaborado por el Profesor Ricardo González A partir de Materiales de las Profesoras Angela Di Serio Patterson David, Hennessy John Organización y Diseño de Computadores

Más detalles

ARQUITECTURA DE COMPUTADORES. Práctica 8

ARQUITECTURA DE COMPUTADORES. Práctica 8 ARQUITECTURA DE COMPUTADORES Práctica 8 Procesadores Segmentados: Introducción al simulador DLXIDE Evaluación de las prestaciones de la segmentación en el DLX Práctica 8: Procesadores Segmentados 1 de

Más detalles

Segmentación del ciclo de instrucción v.2014

Segmentación del ciclo de instrucción v.2014 Segmentación del ciclo de instrucción v.2014 William Stallings, Organización y Arquitectura de Computadores, Capítulo 11: Estructura y función de la CPU. John Hennessy David Patterson, Arquitectura de

Más detalles

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados Departament d Informàtica Sistemes i Computadors ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS La ruta datos propuesta en todos

Más detalles

Forwarding versus Stalling

Forwarding versus Stalling Forwarding versus Stalling Dependencias Considerar el siguiente código: 1.sub $2, $1, $3 2.and $12, $2, $5 3.or $13, $6, $2 4.add $14, $2, $2 5.sw $15, 100($2) Las instrucciones 2 a 5 dependen de $2. Universidad

Más detalles

TEMA I PROCESADORES SEGMENTADOS. UNED Manuel Fernandez Barcell

TEMA I PROCESADORES SEGMENTADOS. UNED Manuel Fernandez Barcell TEMA I PROCESADORES SEGMENTADOS UNED Manuel Fernandez Barcell Http://www.mfbarcell.es Capítulo 1. Procesadores segmentados 1.1. Guión-esquema 1.2. Introducción 1.3. Procesadores RISC frente a procesadores

Más detalles

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso 2006-07 1. Sea la siguiente secuencia de código de instrucciones en punto flotante para un computador similar al DLX que aplica gestión

Más detalles

Planificación dinámica - Concepto

Planificación dinámica - Concepto Planificación dinámica - Concepto Despacho y ejecución en orden: una limitación. Stall también detiene a operaciones independientes. DIVD F0,F2,F4 ADDD F10,F0,F8 SUBD F12,F8,F14 (1) (2) (3) No siempre

Más detalles

Nombre: Carnet: Examen Parcial 1 (35 Puntos)

Nombre: Carnet: Examen Parcial 1 (35 Puntos) Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC7 Arquitectura del Computador II Trimestre Abril Julio de 008 0/0/008 Nombre: Carnet: Examen Parcial

Más detalles

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS Arquitectura de Computadores Tema 4 PROCESADORES SEGMENTADOS 1. Arquitecturas RISC y CISC. 2. Unidad de Control monociclo y multiciclo. 3. Segmentación. 3.1. Ruta de datos del MIPS R2000. 3.2. Control

Más detalles

Formatos de Instrucción en el MIPS R3000

Formatos de Instrucción en el MIPS R3000 Area Arquitectura Computadores Formatos Instrucción en el IPS R3000 6 5 5 16 C.O. rs1 rd Carga /Almacenamiento Saltos Condicionales 6 5 5 5 11 C.O. rs1 rs2 rd Operaciones AL 6 26 C.O. Saltos Incondicionales

Más detalles

La Unidad de Control y el Camino de Datos

La Unidad de Control y el Camino de Datos Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 Contenido Veremos el diseño completo de un subconjunto

Más detalles

Superescalares. Scheduling estático

Superescalares. Scheduling estático Superescalares Scheduling estático Introducción La CPU ejecuta las instrucciones en orden. El compilador: Puede cambiar el orden de ejecución. Genera el paquete de emisión. Trata de prevenir o reducir

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras (Cód. 5561) 1 Cuatrimestre 2016 Dra. Dana K. Urribarri DCIC - UNS Dana K. Urribarri AC 2016 1 Instruction-level parallelism Dana K. Urribarri AC 2016 2 Instruction-level parallelism

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión 2 Diego. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice 1. Segmentación

Más detalles

Predictores Dinámicos

Predictores Dinámicos Predicción dinámica. La predicción de saltos pretende reducir la penalización producida por los saltos, haciendo prebúsqueda ( prefetching ), emitiendo y ejecutando instrucciones del camino destino del

Más detalles

Seminario 1: Procesadores paralelos

Seminario 1: Procesadores paralelos Seminario 1: Procesadores paralelos Índice Introducción Procesadores superescalares Procesadores VLIW Procesadores vectoriales Índice Introducción Procesadores superescalares Procesadores VLIW Procesadores

Más detalles

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES Escuela Universitaria de Informática Ingeniería de Computadores ARQUITECTURA DE COMPUTADORES PRÁCTICA Nº 3 DESENROLLADO DE BUCLES INTRODUCCIÓN Este documento contiene el enunciado de la práctica de desenrollado

Más detalles

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Aprovecha el paralelismo entre instrucciones en una corriente secuencial de instrucciones.

Más detalles

Procesador Segmentado

Procesador Segmentado Procesador Segmentado 1 Se desea ejecutar varias instrucciones, al mismo tiempo. Se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa. Cinco etapas, pueden ejecutarse

Más detalles

5. Procesador: camino de datos y control

5. Procesador: camino de datos y control Fundamentos de Computadores Ingeniería de Telecomunicación Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Contenidos 1 Control de operaciones elementales 2 3 4 5 Objetivos

Más detalles

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Departamento de Ingeniería de Sistemas Universidad id d de Antioquia i 2011 2 Unidad de control principal Mediante el

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES LECTURA DE INSTRUCCIONES (etapa if) Falta de alineamiento Rotura de secuencialidad Tratamiento de los saltos Estrategias de predicción dinámica Pila de dirección

Más detalles

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-2011. 6.1 Introducción a la segmentación de Instrucciones.

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-2011. 6.1 Introducción a la segmentación de Instrucciones. SEGMENTACIÓN 6.1 Introducción a la segmentación de Instrucciones. La segmentación o pipeline es una técnica de realización de procesadores por la cual se solapa la ejecución de las instrucciones. Hoy en

Más detalles

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline:

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline: PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline: Observemos que la técnica de Pipelining no mejora el tiempo de cada tarea, sino el tiempo de toda la carga de trabajo.

Más detalles

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; }

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; } PROBLEMA 1 Memoria Cache (10 puntos) Supongamos un sistema con un procesador que lanza direcciones de 32 bits. Dispone de dos caches, una para instrucciones y otra para datos, de 8 KBytes cada una. La

Más detalles

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos: Unidades principales en la implementación Data El procesador: camino de datos y control IEC UTM Moisés E. Ramírez G. 1 Register # PC Address Instruction Instruction Registers Register # ALU memory Register

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

1. Objetivo y evolución de los procesadores ILP.

1. Objetivo y evolución de los procesadores ILP. Arquitectura de Computadores Tema 3: Procesadores ILP Índice. Objetivo y evolución de los procesadores ILP. 2. Segmentación (Pipeline).. Concepto y medida de rendimiento. i 2. Pipeline de instrucciones..

Más detalles