Arquitectura de Computadores

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

Download "Arquitectura de Computadores"

Transcripción

1 Arquitectura de Computadores TEMA 4 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso

2 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo de Tomasulo. Tratamiento de dependencias de control: Predicción de saltos Tratamiento i de saltos Técnicas de predicción: Estáticas y dinámicas Especulación R1 Bibliografía o Cap 2 [HePa07] o o Capítulos 4, 7 y 8 de [SiFK97] Simulador DLXview AC Tema 4 F. Tirado / R. Hermida ( ) 2

3 Diapositiva 2 R1 He actualizado la referencia de HePa Román; 26/09/2007

4 Introducción OBJETIVO: Ejecutar el mayor numero de instrucciones por ciclo Obtener el máximo numero de instrucciones independientes CPI = CPI ideal + Penaliz. Media por Instr. (paradas pipe ) Que técnicas conocemos? Conflictos de recursos - Riesgos estructurales Replicación/segmentación Dependencias de datos Cortocircuitos Dependencias de control ( Un salto cada 4-7 instrucciones) Saltos retardados Mecanismos para explotar ILP Basados en HW en tiempo de ejecución ( dinámicos). Ej Pentium, AMD, IBM Toda la información disponible en ejecución Código independiente de la implementación Basados en SW en tiempo de compilación (estáticos). Ej Itanium Dependencias de memoria muy difíciles de determinar AC Tema 4 F. Tirado / R. Hermida ( ) 3

5 Introducción Paralelismo a nivel de instrucción ILP Es la técnica consistente en explotar paralelismo entre instrucciones próximas en la secuencia El bloque básico es muy pequeño Un bloque básico (BB) es una secuencia de código sin saltos. Un solo punto de entrada y salida Solo de 4 a 7 instrucciones Fuertes dependencias entre ellas El camino es explotar ILP entre varios BB El caso más simple: paralelismo a nivel de bucle for ( i =1; i<=1000; i++) x (i) = x (i) + s ; Todas las iteraciones son independientes (saltos) AC Tema 4 F. Tirado / R. Hermida ( ) 4

6 Técnicas para explotar ILP Introducción Dinámicas Estáticas Técnica Planificación Dinámica Predicción dinámica de saltos Lanzamiento múltiple Varias instrucciones por ciclo Especulación Dynamic memory disambiguation Desenrollado de bucles Reduce Paradas por riesgos de datos Paradas por riesgos de control CPI Ideal Riesgos de datos y control Paradas por riesgos de datos en memoria Paradas por riesgos de control Planificación ió por el compilador Paradas por riesgos s de datos Software pipelining R3 Predicción estática y Especulación por el Compilador CPI Ideal y Paradas por riesgos de datos CPI Ideal, paradas por riesgos de datos y control AC Tema 4 F. Tirado / R. Hermida ( ) 5

7 Diapositiva 5 R3 Quito "trace scheduling" ya que no se estudia Román; 26/09/2007

8 Dependencias Determinar las dependencias d es crítico para obtener el máximo paralelismo Cuáles hay?, A qué recursos afectan? Las dependencias d son propias de los programas o La presencia de una dependencia indica la posibilidad de aparición de un riesgo, pero la aparición de éste y la posible parada depende de las características del pipe o La dependencias Indican la posibilidad de un riesgo Determinan el orden de cálculo de los resultados Imponen un límite al paralelismo que es posible obtener AC Tema 4 F. Tirado / R. Hermida ( ) 6

9 Dependencias Tipos de Dependencias R4 Dependencias de datos Dependencia verdadera (LDE) Dependencias de nombre - Antidependencia (EDL) - Dependencia de salida (EDE) Dependencias de control Dependencia verdadera (LDE) o La instrucción i depende de j i produce un resultado que usa j j depende de k y k depende de i LD ADDD F0,0(R1) F4,F0,F2 AC Tema 4 F. Tirado / R. Hermida ( ) 7

10 Diapositiva 7 R4 Desde siempre, aquí hay una inconsistencia con el Tema 2. Allí se llama depedencia de datos a las LDE, EDL y EDE, mientras que aquí se llama dependencias de datos sólo a las LDE. Sugiero unificar la nomenclatura, tal como queda en la transparencia Román; 26/09/2007

11 Dependencias Dependencias de nombre ( Reutilización de los registros ) o Dos instrucciones i y j donde i precede a j presentan dependencias de nombre en las siguientes situaciones: o Antidependencia WAR (EDL) La L instrucción ió j escribe ( Reg o memoria) antes de que i lea. ADDD F4,F0,F2 LD F0,-8(R1) o Dependencia de salida WAW (EDE) Las instrucciones i y j escriben el mismo reg. o memoria ADDD F4,F0,F2 SUBD F4,F3,F2F3 F2 ILP y Dependencias de datos o Los mecanismos de ejecución deben preservar el orden del programa. Mismo resultado que en ejecución secuencial o Explotar todo el paralelismo posible sin afectar al resultado de la ejecución o Para las dependencias de nombre eliminar la dependencia usando otros nombres AC Tema 4 F. Tirado / R. Hermida ( ) 8

12 Dependencias Dependencias de control o Cada instrucción depende de un conjunto de saltos y en general esta dependencia debe preservarse para preservar el orden del programa If P1 ( ); if P2 ( ) S1; S2; S1 depende de P1 ; S2 depende de P2 Las dependencias d de control pueden violarse. Se pueden ejecutar instrucciones no debidas si esto no afecta al resultado correcto del programa LO IMPORTANTE: el comportamiento de las excepciones y el flujo de datos deben preservase AC Tema 4 F. Tirado / R. Hermida ( ) 9

13 Dependencias Dependencias de control y Excepciones o Comportamiento de excepciones se debe preservar. Cualquier cambio en el orden de ejecución no debe cambiar como las excepciones son atendidas en la ejecución. DADDU R2,R3,R4 BEQZ R2,L1 LW R1,0(R2) L1: o LW no se puede mover antes de BEQZ ( posible fallo de pagina ) Dependencias de control y flujo de datos o Se debe mantener el flujo de datos entre instrucciones productoras y consumidoras de datos. DADDU R1,R2,R3 BEQZ R4,L1 DSUBU R1,R5,R6R5 R6 L1: OR R7,R1,R8 o OR usa el valor de DADDU o DSUBU dependiendo del comportamiento del salto. El flujo de datos se debe preservar. AC Tema 4 F. Tirado / R. Hermida ( ) 10

14 Dependencias El compilador se concentra en dependencias del programa, no en riesgos de un pipe determinado Dependencias de datos Fáciles de determinar para registros Difíciles para direcciones de memoria Son el mismo dato 100( R4 ) y 20( R6 )? En dos iteraciones diferentes 20(R6) y 20(R6) son el mismo dato? Debe conocer dependencias entre load y stores para permitir su reordenación Más registros para evitar dependencias de nombre Dependencias de control En general: Una instrucción dependiente de un salto no puede moverse antes del salto Una instrucción no dependiente de un salto no puede moverse después del salto Efecto de las dependencias de control sobre el orden de las excepciones y el flujo de datos SOLUCIÓN : HW + SW (PROCESADOR + COMPILADOR) AC Tema 4 F. Tirado / R. Hermida ( ) 11

15 Técnicas SW para explotar ILP Un programa: Bucle simple Código maquina DLX Loop LD F0,0(R1) ADDD F4,F0,F2F0 F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop for ( i =1; i <= 1000; i++) x (i) = x (i) + s ; R5 Instrucción que produce resultado Instrucción que usa el resultado FP ALU FP ALU 3 Datos de la etapa F ALU S ORE F de ejecución FP ALU STORE FP 2 LOAD FP FP ALU 1 LOAD FP STORE FP 0 Entera Entera 0 Latencia de uso AC Tema 4 F. Tirado / R. Hermida ( ) 12

16 Diapositiva 12 R5 Utilizo el término "latencia de uso" por coherencia con los términos usados en el Tema 2 y en los problemas Román; 26/09/2007

17 Un programa: Bucle simple Técnicas SW para explotar ILP for ( i =1; i <= 1000; i++) x (i) = x (i) + s ; Ejecución ó en el procesador Loop LD F0,0(R1) Ciclo 1 Espera 2 ADDD F4,F0,F2 3 Espera 4 Espera 5 SD 0(R1),F4 6 SUBI R1,R1,#8 7 Espera 8 BNEZ R1,Loop 9 Espera 10 Una instrucción cada 2 ciclos AC Tema 4 F. Tirado / R. Hermida ( ) 13

18 Técnicas SW para explotar ILP Planificación de instrucciones Loop LD F0,0(R1) Ciclo1 Reordenamiento para ocultar latencias SUBI R1,R1,#8 2 ADDD F4,F0,F2 3 6 ciclos 1 instrucción por ciclo Espera 4 BNEZ R1,Loop 5 2 ciclos de overhead por el salto SD #8(R1),F4 6 Desenrollado 4 veces para más paralelismo (elimina saltos) Loop LD F0,0(R1) ADDD F4,F0,F2 Expone más paralelismo y elimina saltos SD 0(R1),F4 LD F6,-8(R1) ADDD F8,F6,F2 Se elimina 3 saltos y 3 decrementos SD -8(R1),F8 LD F10,-16(R1) ADDD F12,F10,F2 Permanecen dependencias y paradas SD -16(R1), F12 LD F14,-24(R1) ADDD F16,F14,F2 SD -24(R1),F16 MÁS REGITROS = Renombrado por el Compilador SUBI R1,R1,#32 (Imprescindible??) BNEZ R1,Loop AC Tema 4 F. Tirado / R. Hermida ( ) 14

19 Técnicas SW para explotar ILP Desenrollado + Planificación ió Loop LD F0,0(R1) LD F6,-8(R1) LD F10,-16(R1) LD F14,-24(R1) ADDD F4,F0,F2 ADDD F8,F6,F2, ADDD F12,F10,F2 ADDD F16,F14,F2 SD 0(R1),F4 SD -8(R1),F8 R20 SD -16(R1),F12 SUBI R1,R1,#32 BNEZ R1,Loop SD 8(R1),F16; 8-32 = ciclos por iteración Más registros (Imprescindible!!) Mover SD después de SUBI, valor de R1 El compilador planifica para minimizar los riesgos y eliminar i las paradas del pipe AC Tema 4 F. Tirado / R. Hermida ( ) 15

20 Diapositiva 15 R20 Corregido error en nº registro Román; 21/11/2007

21 Software pipelining i Idea: Técnicas SW para explotar ILP Si las diferentes iteraciones de un bucle son independientes, tomemos instrucciones de diferentes iteraciones para aumentar el ILP Reorganiza los bucles de manera que cada instrucción ió pertenece a una iteración diferente Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración SW Pipelened AC Tema 4 F. Tirado / R. Hermida ( ) 16

22 Software pipelining Antes: Unrolled 3 veces 1 LD F0,0(R1) 2 ADDD F4,F0,F2F0 F2 3 SD 0(R1),F4 4 LD F6,-8(R1) 5 ADDD F8,F6,F2F6 F2 6 SD -8(R1),F8 7 LD F10,-16(R1) 8 ADDD F12,F10,F2 9 SD -16(R1),F12 10 SUBI R1,R1,#24 11 BNEZ R1,LOOP Loop unrolling simbólico Maximiza la distancia resultado-uso Menor tamaño del código Llenado y vaciado del pipe solo una vez Técnicas SW para explotar ILP Después: Software Pipelined 1 SD 0(R1),F4 ; Stores M[i] 2 ADDD F4,F0,F2 F0 F2 ; Adds to M[i-1] 3 LD F0,-16(R1); Loads M[i-2] 4 SUBI R1,R1,#8 5 BNEZ R1,LOOP ove erlapped ops SW Pipeline Time Loop Unrolled Time AC Tema 4 F. Tirado / R. Hermida ( ) 17

23 Técnicas SW para explotar ILP Ejecución SW pipelined (suposición ió R1=1000) 1000) F0 M(1000) LD F0, 0(R1) F4 F0 + F2 ; M(1000)+F2 Cabecera ADDD F4,F0,F2F0 F2 F0 M(992) LD F0,-8(R1) M(1000) F4 ; M(1000)+F2 SD 0(R1),F4 ; Stores M[i] F4 F0 + F2 ; M(992)+F2 Iteración 1 ADDD F4,F0,F2 F0 F2 ; Adds to M[i-1] F0 M(984) LD F0,-16(R1); Loads M[i-2] R M(992) F4 ; M(992)+F2 F4 F0 + F2 ; M(984)+F2 SD 0(R1),F4 Iteración 2 F0 M(976) ADDD F4,F0,F2 R1 984 LD F0,-16(R1) F0 M(0) ; Ahora R1=16 Iteración n R M(8) F4 ; M(8)+F2 SD 0(R1),F4 F4 F0 + F2 ; M(0)+F2 Cola ADDD F4,F0,F2, M(0) F4 ; M(0)+F2 SD -8(R1),F4 AC Tema 4 F. Tirado / R. Hermida ( ) 18

24 Comparación Técnicas SW para explotar ILP Loop Unrolling Bloque grande para planificar Reduce el numero de saltos Incrementa el tamaño del código Tiene que incluir iteraciones extra Presión sobre el uso de registros Software Pipelining No hay dependencias en el cuerpo del bucle No reduce el numero de saltos Necesita inicio y finalización especial AC Tema 4 F. Tirado / R. Hermida ( ) 19

25 Tratamiento de dependencias de datos en ejecución Planificación dinámica : Procesador. Modifica la secuencia de instrucciones resolviendo las dependencias en tiempo de ejecución. Disponibilidad de más unidades funcionales. Código valido para diferentes implementaciones Problema : Lanzamiento de instrucciones en orden. DIVD F0,F2,F4 S1 S2 depende de S1 ADDD F10,F0,F8 S2 SUBD F12,F8,F14 S3 S3 es independiente de la demás La etapa ID bloquea la ejecución en S2 hasta que se resuelve la dependencia ( F0 disponible) y SUBD no puede ejecutarse. Solución : Dividir la etapa ID en dos etapas diferenciadas. Issue: Decodifica y chequea riesgos estructurales. Lectura de operandos : Chequea disponibilidad de operandos. Debe implementarse para permitir el flujo de instrucciones. Ejecución fuera de orden Finalización fuera de orden? AC Tema 4 F. Tirado / R. Hermida ( ) 20

26 Planificación Dinámica : Tomasulo (IBM 360/91, año 1967) Elimina dinámicamente los riesgos EDE y EDL mediante el renombrado de registros Motivación: Arquitectura 360, 4 registros FP( Pocos registros, muchas dependencias ) Arquitectura RM UF segmentadas Add(3), Mul(2), Load (6), Stores (3) R6 Solo consideraremos las operaciones de PF en la explicación ió Casi todos los procesadores actuales usan mecanismo basados en este algoritmo Alpha 21264, HP 8000, MIPS 10000, Pentium III-4-Core, PowerPC 604, AC Tema 4 F. Tirado / R. Hermida ( ) 21

27 Diapositiva 21 R6 He eliminado el párrafo dedicado a diferencias con Scoreboard Román; 26/09/2007

28 Planificación Dinámica : Tomasulo Dir Valor Busy De Memoria Cola de Ope FP Registros FP Qi Vi Load1 Load2 Load3 Load4 Load5 Load6 Load Buffers Load5 Qi Dir Vi Busy Store Buffers TAGs TAGs Add1 Add2 Add3 Mult1 Mult2 Op Qj Valorj Qk Valork Busy SumadorFP Estaciones De Reserva MultiplicadorFP A Memoria Common Data Bus (CDB) Excepciones imprecisas Issue en orden - Ejecución fuera de orden Finalización fuera de orden AC Tema 4 F. Tirado / R. Hermida ( ) 22

29 Planificación Dinámica : Tomasulo Tres estados para una instrucción en el algoritmo 1 Issue Toma la instrucción de la cola de instrucciones. Envía la instrucción a la ER correspondiente si hay entradas disponibles. Envía los operandos si están disponibles o UF que los generara. En load/store si hay buffer libre. (Copiar Tag+Valor de registros fuente sobre campos Tag+Valor de ER) Marca registro destino (tag) con ID de la ER que ejecutará la instrucción 2 Ejecución Monitoriza CDB para disponibilidad de operandos. Cuando lista manda ejecutar. 3 Escritura de resultados Vía CDB en registros y estaciones de reserva (ER) y marca ER como libre. Bus normal: dato + destino, va a CDB: dato + fuente, viene de No chequea riesgo EDE ni EDL (renombrado dinámico) Componentes de las ER Op: Operación a realizar Vj, Vk: Valores de los operandos fuente Store buffers tienen un campo V para el resultado que debe ser almacenado. Qj, Qk: ER produciendo los operandos fuente Notar: Qj,Qk=0 => ready Store buffers tienen Qi para ER produciendo el resultado Busy: Indica ER ocupada Estado de registro resultado Indica di la FU que producira el resultado para el Registro. En blanco ninguna intrucción esta pendiente de escribir en el registro. AC Tema 4 F. Tirado / R. Hermida ( ) 23

30 Planificación Dinámica : Tomasulo Ejemplo: Ejecución de la secuencia: (S1): COD1 F2, ---, --- (S2): COD2 F4, ---, --- (S3): ADDD F0, F2, F4 Suposiciones: S1 y S2 ya lanzadas a ejecución, S3 se va a lanzar Estado inicial de registros: TAG VALOR F0???? F2 Y?? F4 Z?? AC Tema 4 F. Tirado / R. Hermida ( ) 24

31 Planificación Dinámica : Tomasulo Ejemplo: Ejecución de la secuencia: (S1): COD1 F2, ---, --- (S2): COD2 F4, ---, --- (S3): ADDD F0, F2, F4 Paso 1: Lanzamiento de ADD a la ER X (X es una ER libre de la UF de Suma/Resta de Punto Flotante) Estación de reserva Busy OP TAGj Valorj TAGk Valork X yes + Y?? Z?? Estado de registros TAG VALOR F0 X?? F2 Y?? F4 Z?? AC Tema 4 F. Tirado / R. Hermida ( ) 25

32 Planificación Dinámica : Tomasulo Ejemplo: Ejecución de la secuencia: (S1): COD1 F2, ---, --- (S2): COD2 F4, ---, --- (S3): ADDD F0, F2, F4 Paso 2: Esperar a que se generen los operandos a) Escritura del resultado de S1 sobr el CDB: Estación de reserva Busy OP TAGj Valorj TAGk Valork X yes Z?? Estado de registros TAG VALOR F0 X?? F F4 Z?? b) Escritura del resultado de S2 sobre el CDB: Estado de registros Estación de reserva Busy OP TAGj Valorj TAGk Valork X yes TAG VALOR F0 X?? F F AC Tema 4 F. Tirado / R. Hermida ( ) 26

33 Planificación Dinámica : Tomasulo Ejemplo: : Ejecución de la secuencia: (S1): COD1 F2, ---, --- (S2): COD2 F4, ---, --- (S3): ADDDF0, F2, F4 Paso 3: Ejecutar operación y escribir resultado sobre el CDB UF (X,25.77) CDB Estado de registros TAG VALOR F F F A todas las ER, Store Buffers y Registros que tengan la marca X AC Tema 4 F. Tirado / R. Hermida ( ) 27

34 Planificación Dinámica:TOMASULO Ejemplo LD 2 ciclos, ADDD y SUBD 2 ciclos, MULT 10 ciclos, DIVD 40 ciclos Instuc J K Issue Ejecución escritura LD F6 34+ R2 LD F2 45+ R3 MULT F0 F2 F4 SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Load1 Load2 Load3 Ocupada Dirección Estado de ER Operación Qj y Qk ER produciendo operandos Vj y Vk valores de los operandos Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 Estado de REG Qué FU escribirá en el Reg FU F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 28

35 Planificación Dinámica:TOMASULO Ciclo 1 Instuc J K Issue Ejecución escritura LD F6 34+ R2 1 LD F2 45+ R3 MULT F0 F2 F4 SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Ocupada Dirección Load1 SI 34+R2 Load2 NO Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO Mul1 NO Mul2 NO Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Load1 AC Tema 4 F. Tirado / R. Hermida ( ) 29

36 Planificación Dinámica:TOMASULO Ciclo 2 Instuc J K Issue Ejecución escritura LD F6 34+ R2 1 LD F2 45+ R3 2 MULT F0 F2 F4 SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Ocupada Dirección Load1 SI 34+R2 Load2 SI 45+R3 Load3 NO No hay bloqueo Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO Mul1 NO Mul2 NO Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Load2 Load1 AC Tema 4 F. Tirado / R. Hermida ( ) 30

37 Planificación Dinámica:TOMASULO Ciclo 3 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R3 2 MULT F0 F2 F4 3 SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Ocupada Dirección Load1 SI 34+R2 Load2 SI 45+R3 Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO Mul1 SI Mult R(F4) Load2 Mul2 NO Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Mult1 Load2 Load1 AC Tema 4 F. Tirado / R. Hermida ( ) 31

38 Planificación Dinámica:TOMASULO Ciclo 4 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F4 3 SUBD F8 F6 F2 4 DIVD F10 F0 F6 ADDD F6 F8 F2 Ocupada Dirección Load1 NO Load2 SI 45+R3 Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 SI Subd M(34+R2) Load2 Add2 NO Add3 NO Mul1 SI Mult R(F4) Load2 Mul2 NO Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Mult1 Load2 M(34+R2) Add1 AC Tema 4 F. Tirado / R. Hermida ( ) 32

39 Planificación Dinámica:TOMASULO Ciclo 6 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F4 3 SUBD F8 F6 F2 4 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Ocupada Dirección Load1 NO Load2 NO Load3 NO Ningún bloqueo Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk 2 Add1 SI Subd M(34+R2) M(45+R3) Add2 SI Addd M(45+R3) Add1 Add3 NO 10 Mul1 SI Mult M(45+R3) R(F4) Mul2 SI Divd M(34+R2) Mult1 Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Mul1 M(45+R3) Add2 Add1 Mul2 F6 reasignado AC Tema 4 F. Tirado / R. Hermida ( ) 33

40 Planificación Dinámica:TOMASULO Ciclo 8 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F4 3 SUBD F8 F6 F DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Ocupada Dirección Load1 NO Load2 NO Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO 2 Add2 SI Addd M()-M() M(45+R3) Add3 NO 7 Mul1 SI Mult M(45+R3) R(F4) Mul2 SI Divd M(34+R2) Mult1 Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Mul1 M(45+R3) Add2 M()-M() Mul2 AC Tema 4 F. Tirado / R. Hermida ( ) 34

41 Planificación Dinámica:TOMASULO Ciclo 13 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F4 3 SUBD F8 F6 F DIVD F10 F0 F6 5 ADDD F6 F8 F Ocupada Dirección Load1 NO Load2 NO Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO 3 Mul1 SI Mult M(45+R3) R(F4) Mul2 SI Divd M(34+R2) Mult1 Estado de REG F0 F2 F4 F6 F8 F10 F12 FU Mul1 M(45+R3) F8+M() M()-M() Mul2 AC Tema 4 F. Tirado / R. Hermida ( ) 35

42 Planificación Dinámica:TOMASULO Ciclo 16 Instuc J K Issue Ejecución escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F6 5 ADDD F6 F8 F Ocupada Dirección Load1 NO Load2 NO Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO Mul1 NO 40 Mul2 SI Divd M*F4 M(34+R2) Estado de REG F0 F2 F4 F6 F8 F10 F12 FU M*F4 M(45+R3) F8+M() M()-M() Mul2 AC Tema 4 F. Tirado / R. Hermida ( ) 36

43 Planificación Dinámica:TOMASULO Ciclo 57 Fi li ió d d E i Finalización en desorden Excepciones Instuc J K Issue Ejecución. escritura LD F6 34+ R LD F2 45+ R MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F ADDD F6 F8 F Ocupada Dirección Load1 NO Load2 NO Load3 NO Estado de ER Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 NO Add2 NO Add3 NO Mul1 NO Mul2 SI Divd M*F4 M(34+R2) Estado de REG F0 F2 F4 F6 F8 F10 F12 FU M*F4 M(45+R3) F8+M() M()-M() Mul2 AC Tema 4 F. Tirado / R. Hermida ( ) 37

44 Planificación Dinámica:TOMASULO Renombrado dinámico en un unrolling Loop LD F0,0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Operación: vector F0 * escalar F2 Suposiciones: MULT 4 ciclos En 1ª iter. Load 8 ciclos ( fallo ), en 2ª 1 ciclo (acierto) Mostraremos dos iteraciones AC Tema 4 F. Tirado / R. Hermida ( ) 38

45 Planificación Dinámica:TOMASULO Bucle Instuc J K Issue Ejecución escritura LD F0 0 R1 MULT F4 F0 F2 SD F4 0 R1 LD F0 0 R1 MULT F4 F0 F2 SD F4 0 R1 Ocupada Dirección Load1 NO load2 NO load3 NO Qi store1 NO store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 Estado de REG FU F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 39

46 Planificación Dinámica:TOMASULO Ciclo 1 Instuc J K Issue ejecución escritura LD F0 0 R1 1 MULT F4 F0 F2 SD F4 0 R1 LD F0 0 R1 MULT F4 F0 F2 SD F4 0 R1 Ocupada Dirección Load1 SI 80 load2 NO load3 NO Qi store1 NO store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 Estado de REG R1=80 FU Load1 Ojo latencia del primer load F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 40

47 Planificación Dinámica:TOMASULO Ciclo 2 Instuc J K Issue Ejecución escritura LD F0 0 R1 1 MULT F4 F0 F2 2 SD F4 0 R1 LD F0 0 R1 MULT F4 F0 F2 SD F4 0 R1 Ocupada Dirección Load1 SI 80 load2 NO load3 NO Qi store1 NO store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 SI MULT R(F2) Load1 Mul2 Estado de REG R1=80 FU Load1 Mul1 Ojo latencia del 1 load F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 41

48 Planificación Dinámica:TOMASULO Ciclo 3 Instuc J K Issue Ejecución escritura LD F0 0 R1 1 MULT F4 F0 F2 2 SD F4 0 R1 3 LD F0 0 R1 MULT F4 F0 F2 SD F4 0 R1 Ocupada Dirección Load1 SI 80 load2 NO load3 NO Qi store1 SI 80 Mult1 store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 SI MULT R(F2) Load1 Mul2 Estado de REG R1=80 FU Load1 Mul1 Ojo latencia del 1er load F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 42

49 Planificación Dinámica:TOMASULO Ciclo 6 Cierre del bucle Instuc J K Issue Ejecución escritura LD F0 0 R1 1 MULT F4 F0 F2 2 SD F4 0 R1 3 LD F0 0 R1 6 MULT F4 F0 F2 SD F4 0 R1 Ocupada Dirección Load1 SI 80 load2 SI 72 load3 NO Qi store1 SI 80 Mult1 store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 SI MULT R(F2) Load1 Mul2 Estado de REG R1=72 FU Load2 Mul1 Ojo latencia del 1 load Renombrado F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 43

50 Planificación Dinámica:TOMASULO Ciclo 7 Instuc J K Issue Ejecución escritura LD F0 0 R1 1 MULT F4 F0 F2 2 SD F4 0 R1 3 LD F0 0 R1 6 MULT F4 F0 F2 7 SD F4 0 R1 Ocupada Dirección Load1 SI 80 load2 SI 72 load3 NO Qi store1 SI 80 Mult1 store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 SI MULT R(F2) Load1 Mul2 SI MULT R(F2) Load2 Estado de REG R1=72 FU Load2 Mul2 Ojo latencia del 1 load F0 F2 F4 F6 F8 F10 F12 Renombrado AC Tema 4 F. Tirado / R. Hermida ( ) 44

51 Planificación Dinámica:TOMASULO Ciclo 10 Instuc J K Issue Ejecución escritura LD F0 0 R MULT F4 F0 F2 2 SD F4 0 R1 3 LD F0 0 R MULT F4 F0 F2 7 SD F4 0 R1 8 Ocupada Dirección Load1 NO load2 SI 72 load3 NO Qi store1 SI 80 Mult1 store2 SI 72 Mult2 store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 4 Mul1 SI MULT M(80) R(F2) Mul2 SI MULT R(F2) Load2 Estado de REG R1=64 FU Load2 Mul2 Ojo latencia del 1 load F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 45

52 Planificación Dinámica:TOMASULO Ciclo 11 Instuc J K Issue Ejecución escritura LD F0 0 R MULT F4 F0 F2 2 SD F4 0 R1 3 LD F0 0 R MULT F4 F0 F2 7 SD F4 0 R1 8 Ocupada Dirección Load1 NO load2 NO load3 SI 64 Qi store1 SI 80 Mult1 store2 SI 72 Mult2 store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 3 Mul1 SI MULT M(80) R(F2) 4 Mul2 SI MULT M(72) R(F2) Estado de REG R1=64 FU Mul2 F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 46

53 Planificación Dinámica:TOMASULO Ciclo 15 Instuc J K Issue Ejecución escritura LD F0 0 R MULT F4 F0 F SD F4 0 R1 3 LD F0 0 R MULT F4 F0 F SD F4 0 R1 8 Ocupada Dirección Load1 NO load2 NO load3 SI 64 Qi store1 SI 80 M()*F2 store2 SI 72 Mult2 store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 SI MULT M(72) R(F2) Estado de REG R1=64 6 FU Mul2 F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 47

54 Planificación Dinámica:TOMASULO Ciclo 16 Instuc J K Issue Ejecución escritura LD F0 0 R MULT F4 F0 F SD F4 0 R LD F0 0 R MULT F4 F0 F SD F4 0 R1 8 Ocupada Dirección Load1 NO load2 NO load3 SI 64 Qi store1 NO store2 SI 72 M()*F2 store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 Estado de REG R1=64 FU F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 48

55 Planificación Dinámica:TOMASULO Ciclo 17 Instuc J K Issue Ejecución escritura LD F0 0 R MULT F4 F0 F SD F4 0 R LD F0 0 R MULT F4 F0 F SD F4 0 R Ocupada Dirección Load1 NO load2 NO load3 SI 64 Qi store1 NO store2 NO store3 NO Estado de ER Loop LD F0,0(R1) 0(R1) MULTD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Tiempo FU Ocupada Operación S1 S2 ER.P.J ER.P:K Vj Vk Qj Qk Add1 Add2 Add3 Mul1 Mul2 Estado de REG R1=64 FU F0 F2 F4 F6 F8 F10 F12 AC Tema 4 F. Tirado / R. Hermida ( ) 49

56 Planificación Dinámica:TOMASULO (detalle de las fases) Nomenclatura: m n l : o Instrucción aritmética: D OP (S1, S2) Instrucción aritmética que realiza la operación OP sobre el contenido de los registros S1 y S2, y deposita el resultado en el registro D o Instrucción Load: D Mem[Dirección] Carga en el registro D el contenido de la posición de memoria Dirección o Instrucción Store: Mem[Dirección] S Almacena el contenido del registro S en la posición de memoria Dirección R19 o Estación de reserva x: o Registro x: Reg(x)( Qi, Vi ) ER(x)(Busy, OP, Qj, Vj, Qk, Vk) o Load Buffer x: LB(x)(Busy, Dir) o Store Buffer x: SB(x)( Busy, Dir, Qi, Vi ) AC Tema 4 F. Tirado / R. Hermida ( ) 50

57 Diapositiva 50 R19 Nota 1: se intenta obviar el cálculo de la dirección efectiva que se contempla en H&P 4ª edición por las siguientes razones: 1. Los ejemplos que tenemos en las transparencias previas lo ignoran. 2. Las soluciones que explicamos a los problemas propuestos tb lo ignoran (no se contempla ningún ciclo de reloj para ello). 3. Añade complejidad innecesaria para comprender el concepto. 4. Los ejemplos de las transparencias que usa Patterson en Berkely tampoco lo usan. 5. El simulador DLXView tampoco funciona según lo descrito en el libro. Nota 2: En la fase Issue se mejora la explicación de H&P, al sustituir un condicional (if ) por unos movimientos de datos y tags que son los realmente implicados en la operación. Román; 01/10/2007

58 Planificación Dinámica:TOMASULO (detalle de las fases) Fase Issue Tipo de instrucción Esperar hasta que Hacer Aritmética: D OP (S1, S2) La estación de reserva ER(x) está libre y es capaz de ejecutar OP ER(x).Busy Yes ER(x).OP OP ER(x).Q j Reg(S1).Q i ER(x).V j Reg(S1).V i ER(x).Q k Reg(S2).Q i ER(x).V k Reg(S2).V i Reg(D).Q i x Load: El Load Buffer LB(x) está LB(x).Busy Yes D Mem[Dirección] libre LB(x).Dir Dirección Reg(D).Q i x Store: Mem[Dirección] S El Store Buffer SB(x) está libre SB(x).Busy Yes SB(x).Dir Dirección SB(x).Q i Reg(S).Q i SB(x).V i Reg(S).V i AC Tema 4 F. Tirado / R. Hermida ( ) 51

59 Planificación Dinámica:TOMASULO (detalle de las fases) Fase Ejecución Tipo de instrucción Esperar hasta que Hacer Aritmética: (ER(x).Q j = 0) Y (ER(x).Q k = 0) Ejecutar cálculo lo OP sobre la UF D OP (S1, S2) usando operandos V j y V k Generar RESULTADO Load: D Mem[Dirección] Store: Mem[Dirección] S (La dirección efectiva está disponible) Y (LB(x).Dir no tiene dependencias d respecto de Stores lanzados antes) (Uso de cola de Load / Store: explicación posterior) (La dirección efectiva está disponible) Y (SB(x).Dir no tiene depenedencias con Load ni Sores previos) Y (SB(x).Q i ) = 0) RESULTADO Mem[LB(x).Dir] Mem[SB(x).Dir] SB(x).V i SB(x).Busy No AC Tema 4 F. Tirado / R. Hermida ( ) 52

60 Planificación Dinámica:TOMASULO (detalle de las fases) Fase Write Tipo de instrucción Aritmética: D OP (S1, S2) Esperar hasta que (Ejecución completa en ER(x)) Y (CDB disponible) Hacer Escribir sobre CDB: (x, RESUL) z (Si Reg(z).Q i ) = x ) (Reg(z).Q i = 0) Y (Reg(z).V i = RESUL) z (Si ER(z).Q j) = x ) (ER(z).Q j = 0) Y (ER(z).V j = RESUL) z (Si ER(z).Q k ) = x ) (ER(z).Q k = 0) Y (ER(z).V k = RESUL) z (Si SB(z).Q i ) = x ) (SB(z).Q i = 0) Y (SB(z).V i = RESUL) Load: (Acceso a D memoria Mem[Dirección] completo en LB(x)) Y (CDB disponible) ER(x).Busy = No Escribir sobre CDB: (x, RESUL) z (Si Reg(z).Q i ) = x ) (Reg(z).Q i = 0) Y (Reg(z).V i = RESUL) z (Si ER(z).Q j ) = x ) (ER(z).Q ( j = 0) Y (ER(z).V ( j = RESUL) z (Si ER(z).Q k ) = x ) (ER(z).Q k = 0) Y (ER(z).V k = RESUL) z (Si SB(z).Q i ) = x ) (SB(z).Q i = 0) Y (SB(z).V i = RESUL) Store: Mem[Dirección] S Nada LB(x).Busy Busy = No Nada AC Tema 4 F. Tirado / R. Hermida ( ) 53

61 Planificación Dinámica:TOMASULO Resumen de ventajas e inconvenientes i Elimina el cuello de botella de los registros Evita EDL y EDE Permite el unrolling en HW No esta limitado a bloques básicos si existe predicción de saltos Complejidad Muchos cargas de registros asociativas por ciclo CDB limita el rendimiento Excepciones imprecisas AC Tema 4 F. Tirado / R. Hermida ( ) 54

62 Reduciendo la penalización de los saltos Tipos de saltos: Estadísticas En promedio Instrucciones de salto 1 de cada 5 instrucc. Saltos condicionales 2 de cada 3 saltos Saltos incondicionales 1 de cada 3 saltos Saltos tomados 5 de cada 6 saltos Saltos condicionales tomados 3 de cada 4 saltos condic. Saltos incondicionales tomados Todos Conclusión (en promedio) 1 de cada 6 instrucciones es un salto tomado 1 de cada 8 instrucciones es un salto condicional 1 de cada 10 instrucciones es un salto condicional y tomado Programas enteros una de cada 4-5 instrucciones. Flotantes 1 de cada instrucciones AC Tema 4 F. Tirado / R. Hermida ( ) 55

63 Reduciendo la penalización de los saltos Tipos de saltos: Estadísticas Frcuencia diámica de saltos Frcuencia de saltos tomados lloops fft greep gcpp spice3 TeX gdi ff gaw k compress gccl espresso % gdi ff TeX greep gcpp spice3 gccl gaw k espresso compress % lloops fft Conclusión Frecuencia de los saltos depende del tipo de programa El comportamiento depende del tipo de programa AC Tema 4 F. Tirado / R. Hermida ( ) 56

64 Reduciendo la penalización de los saltos Predicción ió Idea Básica Cuando se detecta una instrucción de salto condicional sin resolver Se supone o predice el camino del salto: tomado o no tomado (Taken - Untaken) Si el salto se predice como tomado se predice la dirección destino del salto La ejecución continúa de forma especulativa a lo largo del camino supuesto Cuando se resuelve la condición Si la predicción ió fue correcta La ejecución se confirma y continúa normalmente Si la predicción fue incorrecta (fallo de predicción o misprediction ) Se descartan todas las instrucciones i ejecutadas especulativamente t Se reanuda la ejecución a lo largo del camino correcto Problemas a resolver en instrucciones de salto 1) Predecir el camino que tomará el salto TAKEN (Tomado) UNTAKEN (No Tomado) 2) Predecir la dirección de la instrucción destino del salto con un retardo mínimo (para saltos tomados) AC Tema 4 F. Tirado / R. Hermida ( ) 57

65 Tratamiento de Saltos: Predicción Consideraciones generales 1) Predecir el camino que tomará el salto TAKEN (Tomado) PREDICCIÓN CORRECTA TAKEN (Tomado) PREDICCIÓN INCORRECTA Programa I 1 I 2 BR Target I 4 Target: I target I target+1 I 1 t 1 t 2 t 3 t 4 t 5 t 6 t 7 I 2 F D E M W F D E M W BR F D E I F TA I 4 I t I t+1 Retardo (1 ciclo) F D E M W F D E M W Programa I 1 I 2 BR Target I 4 Target: I target target I target+1 I 1 t 1 t 2 t 3 t 4 t 5 t 6 t 7 F D E M W I 2 F D E M W BR F D E F D TA I 4 I 5 F I t F D E M W I t+1 F D E M W t 1 Retardo (2 ciclos) Ojo retardo mínimo AC Tema 4 F. Tirado / R. Hermida ( ) 58

66 Tratamiento de Saltos: Predicción Consideraciones generales 2) Predecir la dirección de la instrucción destino del salto con un retardo mínimo (para saltos tomados) Programa I 1 Target: I target I 2 BR Target I 4 I target+1 t 1 t 2 F D I 1 E M W t 3 t 4 t 5 t 6 t 7 I 2 F D E M W BR F D E I t I t+1 I t+2 F D E TA M W F D E M W Retardo (0 ciclo) Detectar lo más pronto posible el salto: En buffer de instrucciones, al buscarla en la cache. Más importante para pipes de más etapas (frecuencia) AC Tema 4 F. Tirado / R. Hermida ( ) 59

67 Tratamiento de Saltos: Predicción Acceso a la instrucción destino del salto I Branch Target Address Cache (BTAC) Cache que almacena la dirección destino de los últimos saltos tomados Cuando se accede a una instrucción de salto Se accede simultáneamente a la BTAC utilizando la dirección de la instrucción de salto Si la instrucción está en la BTAC y el salto se predice como tomado la dirección destino del salto se lee de la BTAC Actualización de la BTAC L a BTAC se actualiza cuando se ejecuta la instrucción de salto y se conoce: Si el salto fue tomado o no La dirección destino del salto Dirección de la Instrucción Tag Dirección destino del salto +1 Taken / Not Taken Sí el salto fue tomado Si no estaba en la BTAC Si ya estaba en la BTAC Sí el salto no fue tomado Si estaba en la BTAC MUX Dirección de la siguiente instrucción Se introduce en la BTAC Se actualiza su dirección destino en la BTAC Se elimina de la BTAC BTAC AC Tema 4 F. Tirado / R. Hermida ( ) 60

68 Tratamiento de Saltos: Predicción Acceso a la instrucción destino del salto II Alternativas de diseño de la BTAC Cache de Acceso Directo Cache Totalmente Asociativa Cache Asociativa por conjuntos Ventaja: Menor coste Desventaja: Aliasing (destrucción de información si dos saltos compiten por la misma entrada) Ventaja: menos Aliasing Desventaja: Mayor coste HW Solución intermedia EJEMPLOS: Pentium (256), Pentium II (512), Pentium 4 (4K), AMD 64 (2K) Variación Branch Target Instruction Cache Almacenar la instrucción más ventajas si tempo de acceso a las instrucciones es alto Ejemplos: AMD K6,K7, NexGen Nx586 AC Tema 4 F. Tirado / R. Hermida ( ) 61

69 Tratamiento de Saltos: Predicción Clasificación ió de técnicas de predicción ió de saltos Predicción de saltos Estática Dinámica Fija Basada en Desplaz. Basada en Opcode Dirigida por Compilador Historia Local Historia Global Híbridos AC Tema 4 F. Tirado / R. Hermida ( ) 62

70 Tratamiento de Saltos: Predicción Predicción estática Predicción Fija ALWAYS TAKEN Predecir todos los saltos como tomados Mayor número de aciertos de predicción (3 de cada 4 saltos cond. son tomados) Mayor coste hardware (necesita almacenar la dirección destino del salto) ALWAYS NOT TAKEN Predecir todos los saltos como no tomados Menor número de aciertos de predicción (sólo 1 de cada 4 saltos cond. es no tomado) Menor coste hardware Predicción basada en la DIRECCIÓN del salto Saltos hacia atrás : TOMADOS La mayoría de saltos hacia atrás corresponden a bucles Saltos hacia delante: NO TOMADOS La mayoría de saltos hacia delante corresponden a IF-THEN-ELSE E E Mal comportamiento en programas con pocos bucles y muchos IF-THEN-ELSE AC Tema 4 F. Tirado / R. Hermida ( ) 63

71 Tratamiento de Saltos: Predicción Predicción estática Predicción basada en el OPCODE de la instrucción de salto R7 Fundamento: La probabilidad de que un salto sea tomado depende del tipo de salto El salto es tomado para ciertos códigos de operación y no tomado para otros Predicción dirigida por el COMPILADOR Basada en el tipo de CONSTRUCCIÓN Basada en PROFILING Especificado por el PROGRAMADOR El compilador predice si el salto será tomado o no dependiendo del tipo de construcción de control El compilador predice en función del comportamiento de esa instrucción en ejecuciones previas del programa El programador indica al compilador si el salto debe ser tomado o no (mediante directivas específicas) de construcc ón de control prev as del programa (med ante d rect vas espec f cas) Se añade un Bit de Predicción al opcode de la instrucción El compilador activa o desactiva este bit para indicar su predicción AC Tema 4 F. Tirado / R. Hermida ( ) 64

72 Diapositiva 64 R7 He eliminado la transparencia anterior. Paco: supongo que querías eliminarla porque también hablaba de predicción basada en OpCode Román; 26/09/2007

73 Tratamiento de Saltos: Predicción Predictores Dinámicos Idea básica La predicción se realiza observando el comportamiento de las instrucciones de salto en las últimas ejecuciones ( Historia ) Necesario almacenar la historia de las ultimas ejecución del salto Predictores de 1 bit de historia Predictores de 2 bits de historia (bimodal) Predictores de 3 bits de historia EJEMPLOS EJEMPLOS PA 8500 (1999) EJEMPLOS Gmicro 100 (1991) MC68060 (1993) UltraSparc (1995) Alpha (1992) R8000 (1994) Pentium (1994) Alpha 21064A (1994) PowerPC 604 (1995) PowerPC 620 (1996) PA 8000 (1996) Alpha (1995) R10000 (1996) Evolución Predictores correlacionados Predictores híbridos AC Tema 4 F. Tirado / R. Hermida ( ) 65

74 Tratamiento de Saltos: Predicción Predictores Dinámicos Predictor de un BIT Utilizan un bit de predicción por cada instrucción de salto El bit de predicción refleja el comportamiento de la última ejecución de la instrucción de salto Indica si en la anterior ejecución el salto fue tomado o no Predicción El salto se predice como Taken si en la última ejecución fue tomado El salto se predice como Not Taken si en la última ejecución no fue tomado FUNCIONAMIENTO Máquina de dos estados: Not taken (0) RH1 Taken (1) Taken Not taken NT T (1) (0) Registro de historia Contador saturado de 1 bit T Predicción Valor del registro de historia i LIMITACIÓN Sólo se registra el comportamiento de la última ejecución del salto Dos malas predicciones en los cambios Más Bits Predicción: Taken NT Inicio Predicción: Not taken Cambios de estado: T: el salto ha sido tomado NT: el salto no ha sido tomado AC Tema 4 F. Tirado / R. Hermida ( ) 66

75 Diapositiva 66 RH1 Corregidos los bits RH; 17/11/2008

76 Tratamiento de Saltos: Predicción Predictores Dinámicos Predictor de dos bits (BIMODAL) Utilizan dos bits de predicción por cada instrucción de salto Estos bits reflejan el comportamiento de las últimas ejecuciones de ese salto NT Predicción Un salto que se toma repetidamente se predice como Taken Un salto que no se toma repetidamente se predice como Not taken Si un salto toma una dirección inusual una sola vez, el predictor mantiene la predicción usual Funcionamiento i Máquina de cuatro estados: Strongly not taken (00) Weakly not taken (01) Weakly taken (10) Strongly taken (11) Inicio Strongly not taken (0 0) T NT Weakly not taken (0 1) Registro de historia Contador saturado de 2 bits Predicción bit más significativo del registro de historia T NT Weakly taken (1 0) T NT Strongly taken (1 1) T Cambios de estado: T: el salto ha sido tomado NT: el salto no ha sido tomado Predicción: Not taken Predicción: Not taken Predicción: Taken Predicción: Taken AC Tema 4 F. Tirado / R. Hermida ( ) 67

77 Predictores Dinámicos Tratamiento de Saltos: Predicción Implementación m de los bits de predicción 1) Branch Target Buffer (BTB) Añade los bits de predicción a las entradas de la BTAC. La BTAC con bits de predicción se denomina BTB 2) Tabla de historia de saltos (BHT) Utiliza una tabla especial, distinta de la BTAC para almacenar los bits de predicción EJEMPLOS MC Pentium R8000 PM1 Pentium II Pentium x 2 bit 256 x 2 bit 1K x 1 bit 1K x 2 bit 512x2 bit 4kx2bits EJEMPLOS Gmicro 100 PowerPC 604 R10000 PowerPC 620 PA 8000 Alpha 21164A AMD x 1 bit 512 x 2 bit 512 x 2 bit 2K x 2 bit 256 x 3 bit 2K x 2 bit 16Kx2bits AC Tema 4 F. Tirado / R. Hermida ( ) 68

78 Tratamiento de Saltos: Predicción Predictores Dinámicos: Implementación 1) Branch Target Buffer (BTB): bits acoplados La BTB almacena La dirección destino de los últimos saltos tomados Los bits de predicción de ese salto Actualización de la BTB Los campos de la BTB se actualizan después de ejecutar el salto y se conoce: Si el salto fue tomado o no Actualizar bits de predicción La dirección destino del salto Actualizar BTA Dirección de la instrucción de salto Tag Dirección destino del salto BTA Bits de predicción MUX Lógica de Predicción Predicción Implícita (sin bits de predicción) Taken / Not Taken Aplicable con un sólo bit de predicción Sí la instrucción de salto está en la BTB El salto se predice como tomado Sí la instrucción de salto no está en la BTB El salto se predice como no tomado BTB +1 MUX Dirección de la siguiente instrucción DESVENTAJA: Sólo se pueden predecir aquellas instrucciones de salto que están en la BTB AC Tema 4 F. Tirado / R. Hermida ( ) 69

79 Tratamiento de Saltos: Predicción Predictores Dinámicos: Implementación 2) Tabla de historia de saltos (BHT): bits desacoplados Existen dos tablas distintas: La BTAC, que almacena la dirección destino de los últimos saltos tomados La BHT, que almacena los bits de predicción de todos las instrucciones de salto condicional Ventaja Puede predecir instruc.que no están en la BTAC (más entradas en BHT que en BTAC) Desventaja Aumenta el hardware necesario 2 tablas asociativas Acceso a la BHT Usando los bits menos significativos de la dirección Sin TAGs Menor coste (opción + habitual) Compartición de entradas Se degrada el rendimiento Asociativa por conjuntos Mayor coste Tablas pequeñas Para un mismo coste hardware Peor comportamiento Dirección de la instrucción de salto Tag BTAC Dirección destino del salto BTA Tag Bits de predicción X MU Lógica de Predicción +1 BTA MUX Taken / Not Taken Dirección de la siguiente instrucción AC Tema 4 F. Tirado / R. Hermida ( ) 70 BHT

80 Predictores Dinámicos Comportamiento Tratamiento de Saltos: Predicción 18% 18% 18% 16% 14% 12% 10% 8% 9% 9% 9% 9% 12% 11% 10%10% 6% 4% 5% 5% 5% 5% 5% 5% 2% 0% 1% 1% 0% 0% 0% 0% nasa7 matrix300 tomcatv doducd spice fpppp gcc espresso eqntott li 4096 entrdas. 2bits por entrdada Entrdas ilimitadas. 2bits por entrada Muchos fallos en algunos programas (enteros) Por que? AC Tema 4 F. Tirado / R. Hermida ( ) 71

81 Predictores Dinámicos Tratamiento de Saltos: Predicción Otras formas de gestionar la historia 1. Muchas instrucciones de salto ejecutan patrones repetitivos Idea : Los saltos están relacionados. El comportamiento de los últimos saltos afecta a la predicción actual. Almacenar el comportamiento de los últimos n saltos y usarlo en la selección de la predicción. For (i=1; i<=4; i++) { } Patrón: {1110} 1 = Taken 0 = Not Taken Si conocemos el comportamiento del salto en las 3 últimas ejecuciones podemos predecir como se comportará en la siguiente ejecución Predicción basada en historia LOCAL Historia Predicción 0 (NT) 1 (T) 1 (T) 1 (T) AC Tema 4 F. Tirado / R. Hermida ( ) 72

82 Predictores Dinámicos Tratamiento de Saltos: Predicción 2. Muchas instrucciones de salto dependen del comportamiento de otros saltos recientes ( historia global) Ejemplo: b1: if (d = 0) then d = 1 b2: if f( (d =1) then BNEZ R1, L1 ; salto b1 (Salto si d 0) R8 ADDI R1, R0, #1 ; Como d=0, hacer d=1 L1: SUBI R3, R1, #1 ; R3=d(R1)-1 BNEZ R3, L2 ; salto b2 (Salto si d 1)... L2: R3=0 d=1 R3 0 d 1 Si conocemos el comportamiento de la última ejecución de b1 podemos predecir el comportamiento de b2 en la siguiente ejecución Predicción basada en historia GLOBAL AC Tema 4 F. Tirado / R. Hermida ( ) 73

83 Diapositiva 73 R8 Rehago comentarios Román; 26/09/2007

84 Predictores Dinámicos Ejemplo ( continua ) Relación entre los dos saltos Tratamiento de Saltos: Predicción BNEZ R1, L1 ; salto b1 (Salto si d 0) ADDI R1, R0, #1 ; Como d=0, hacer d=1 L1: SUBI R3, R1, #1 ; R3=d(R1)-1 1 Caso 1: d=0,1,2, L2: BNEZ R3, L2 ; salto b2 (Salto si d 1)... Valor de d d 0? b1 d antes de b2 d 1? b2 0 no NT 1 no NT 1 si T 1 no NT 2 si T 2 si T Si b1 no se toma, entonces b2 tampoco: correlación entre saltos AC Tema 4 F. Tirado / R. Hermida ( ) 74

85 Predictores Dinámicos Ejemplo ( continua ) Tratamiento de Saltos: Predicción Comportamiento t del predictor de un bit. ( estado inicial i i not taken NT) BNEZ R1, L1 ; salto b1 (Salto si d 0) ADDI R1, R0, #1 ; Como d=0, hacer d=1 L1: SUBI R3, R1, #1 ; R3=d(R1)-1 Caso 2: d=2,0,2,0, d=2020 L2: BNEZ R3, L2 ; salto b2 (Salto si d 1)... Valor de d Predicción de b1 b1 Nueva predicción de b1 Predicción de b2 b2 Nueva predicción de b2 2 NT T T NT T T 0 T NT NT T NT NT 2 NT T T NT T T 0 T NT NT T NT NT Muchos fallos de predicción AC Tema 4 F. Tirado / R. Hermida ( ) 75

86 Predictores Dinámicos Solución Tratamiento de Saltos: Predicción Predictor de dos niveles (1,1): 1): Para cada salto existen 2 1 predictores de 1 bit. El comportamiento último salto (1) determina el predictor que se usa. Predictor de dos niveles (m,n) Para cada salto existen 2 m predictores de n bits. El comportamiento de los últimos m saltos determinan el predictor que se usa Significado de los bit de predicción en un predictor (1,1) Bits de predicción Predicción si el ultimo salto no tomado NT/NT NT NT Dos predictores NT/T NT T de un bit T/NT T NT T/T T T Predicción si el ultimo salto tomado Ejemplo: Tamaño de un predictor (2,2) de 4k entradas 4x2x4K = 32Kb AC Tema 4 F. Tirado / R. Hermida ( ) 76

87 Predictores Dinámicos Ejemplo ( continua ) Tratamiento de Saltos: Predicción Comportamiento del predictor de dos niveles (1,1). ( estado inicial not taken NT) BNEZ R1, L1 ; salto b1 (Salto si d 0) ADDI R1, R0, #1 ; Como d=0, hacer d=1 L1: SUBI R3, R1, #1 ; R3=d(R1)-1 BNEZ R3, L2 ; salto b2 (Salto si d 1)... L2: Sólo se predice mal la 1ª iteración (d=2) Caso 2: d=2,0,2,0, d=2020 d =? Predicción ió b1 Nueva Predicción ió b2 Nueva de b1 predicción de b2 predicción de b1 de b2 2 NT/NT T T/NT NT/NT T NT/T 0 T/NT NT T/NT NT/T NT NT/T 2 T/NT T T/NT NT/T T NT/T 0 T /NT NT T/NT NT/T NT NT/T (Subrayado en rojo: Bit de predicción seleccionado en cada caso, en función del comportamiento del salto anterior) AC Tema 4 F. Tirado / R. Hermida ( ) 77

88 Tratamiento de Saltos: Predicción Predictores Dinámicos i Dirección(4 bits) Implementación para Predictor de dos niveles (2,2) R9 con 16 entradas predictores de 2-bits por salto (predictor local) Predicción bits de historia Global de saltos (2 Saltos anteriores) (Ejemplo: 01 = not taken Y taken ) AC Tema 4 F. Tirado / R. Hermida ( ) 78

89 Diapositiva 78 R9 Añado "de 2 niveles" De acuerdo? Nos hemos referido a "2 niveles" muchas veces en problemas y exámenes Román; 26/09/2007

90 Tratamiento de Saltos: Predicción Predictores Dinámicos Comportamiento 0,2 0,18 0,16 0,14 Frequ uency of Mispre edictions 0,12 0,1 0,08 0,06 0,05 0,06 0, ,11 0,06 0,05 0,04 0,04 0,02 0 0,01 0,01 0 nasa7 matrix300 ti tomcatvt doducdd d spice fpppp gcc espresso eqntott tt li 4,096 entries: 2-bits per entry Unlimited entries: 2-bits/entry 1,024 entries (2,2) AC Tema 4 F. Tirado / R. Hermida ( ) 79

91 Tratamiento de Saltos: Predicción Predictores híbridos Idea básica Cada uno de los predictores estudiados tiene sus ventajas y sus inconvenientes Combinando el uso de distintos predictores y aplicando uno o otro según convenga, se pueden obtener predicciones mucho más correctas Predictor híbrido Mezcla varios predictores y añade un mecanismo de selección del predictor Mecanismo de selección Elige, en cada caso, el predictor que haya dado mejores resultados hasta el momento Implementación del mecanismo de selección Instrucción captada Dirección Tabla de Selección Para combinar dos predictores, P1 y P2, se utiliza una tabla de contadores saturados de dos bits indexada por la dirección de la instrucción de salto Pre edictor 1 MUX Pre edictor 2 Predicción (Taken/Not taken) P1 Fallo Fallo Acierto Acierto P2 Fallo Acierto Fallo Acierto Actualiz. del contador Cont no varía Cont = Cont +1 Cont = Cont -1 Cont no varía Si P2 acierta más que P1 Cont aumenta Si P1 acierta más que P2 Cont disminuyei Bit más signif. del contador 0 1 Predictor seleccionado P1 P2 AC Tema 4 F. Tirado / R. Hermida ( ) 80

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso 2012-2013 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo

Más detalles

Arquitectura de Computadores. TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación

Arquitectura de Computadores. TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Arquitectura de Computadores TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso 2015-2016 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo

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

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Apellidos Nombre Grupo: Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las afirmaciones puede ser cierta

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

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

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

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

Tema 10. Introducción a la op5mización de código

Tema 10. Introducción a la op5mización de código Tema 10. Introducción a la op5mización de código Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

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

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

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

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

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

Introducción a los procesadores ILP (Instruction-Level Parallel)

Introducción a los procesadores ILP (Instruction-Level Parallel) Introducción a los procesadores ILP (Instruction-Level Parallel) Herramientas básicas para conseguir paralelismo entre instrucciones: Encauzamiento (pipelining) Se usa en todo procesador ILP Utilizar varias

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

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

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

Estrategias de predicción dinámicas.

Estrategias de predicción dinámicas. Estrategias de predicción dinámicas. Las técnicas que vamos a ver ahora para predicción de saltos se basan en información conocida sólo en tiempo de ejecución. Dos estructuras son necesarias para realizar

Más detalles

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.. CONCEPTOS FUNDAMENTALES 3., 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

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

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Exámenes Ingeniería Computadores II Tutor: Antonio Rivero Cuesta Exámenes TEMA 1 Centro Asociado Palma de Mallorca Tutor: Antonio Rivero Cuesta Un procesador sin segmentación

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

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

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

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

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

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

2EMHWLYRV 5HIHUHQFLDV

2EMHWLYRV 5HIHUHQFLDV 7HPD6HJPHQWDFLyQ,,,QWURGXFFLyQ DORV6XSHUHVFDODUHV 2EMHWLYRV 5HIHUHQFLDV $SURYHFKDPLHQWRGHXQDDUTXLWHFWXUDVHJPHQWDGD 3ODQLILFDFLyQGLQiPLFD 3UHGLFFLyQGLQiPLFDGHVDOWRV 5HQRPEUDGRGHUHJLVWURV 3UHGLFDFLyQ 3URFHVDGRUHV6XSHUHVFDODUHV

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

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

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Arquitectura de Computadores. Tema 11. Pipelining Avanzado Arquitectura de Computadores Tema 11 Pipelining Avanzado Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 1 En qué se pone difícil Pipelining? Excepciones: hay 5 instrucciones

Más detalles

Paralelismo en monoprocesadores. Procesadores VLIW

Paralelismo en monoprocesadores. Procesadores VLIW Paralelismo en morocesadores Procesadores VLIW Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año Arquitectura VLIW básica

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

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.1. CONCEPTOS FUNDAMENTALES 3.2, 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

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

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX Arquitectura de Sistemas Paralelos 3 er curso de Ingeniería Técnica en Informática de Sistemas Práctica: Procesador segmentado DLX. Técnicas de optimización Curso 2005/2006 OBJETIVOS En esta práctica se

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

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1;

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1; ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERIA TECNICA EN INFORMATICA DE SISTEMAS. BOLETÍN DE EJERCICIOS DE Introducción al paralelismo. Curso 04/05 (SOLUCIONES) 1. Inicialmente R3 = R2 + 400. como

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

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes Introducción PROCESADOR SUPERESCALAR Paralelismo bus d/le eje mem es t ciclo seg =t ciclo supes Grado m: en cada ciclo se buscan/decodifican m instrucciones Introducción CICLOS POR INSTRUCCION tciclo identico

Más detalles

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso Arquitectura de Computadores TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading Curso 2010-2011 Contenidos o Introducción: CPI < 1 o o o o o o o Lanzamiento múltiple de instrucciones: Superescalar,

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

1.2. Implementación de Procesadores Superescalares

1.2. Implementación de Procesadores Superescalares 1.2. Implementación de Procesadores Superescalares Técnicas dinámicas: Complejidad alta desde el p. de v. de estructura o arquitectura Aquí las instrucciones son las normales o clásicas : compatibilidad

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

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

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción

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

5. PREDICCIÓN DINÁMICA DE SALTOS

5. PREDICCIÓN DINÁMICA DE SALTOS 5. PREDICCIÓN DINÁMICA DE SALTOS 1 PREDICCIÓN DINÁMICA DE SALTOS 1. Introducción 2. Buffer de Predicción de Saltos (BPB) 3. Buffer de Destinos de Saltos (BTB) 4. Predictores Globales 5. Predictores Adaptativos

Más detalles

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o Unidad 4 - Procesamiento paralelo. D o c e n t e : E r n e s t o L e a l E q u i p o : J e s s i c a F i e r r o L u i s N a v e j a s Arquitectura de computadoras Introducción Cuestionario Conclusiones

Más detalles

COMPUTADORES SEGMENTADOS (DLX)

COMPUTADORES SEGMENTADOS (DLX) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica

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

ARQUITECTURA DE COMPUTADORAS

ARQUITECTURA DE COMPUTADORAS 2-12-2012 INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS Cuestionario Unidad 4 Claudia Cristina Enríquez Zamarrón 10 55 05 10 Laura Michell Montes Blanco 10 55 05 02 INTRODUCCIÓN: En

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

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN De Diego Varona, Rubén Romay López, Oscar Manuel Vega Martínez, Jorge INTRODUCCIÓN La representación de la instrucción en la computadora se denomina formato.

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

Tema 4. Condiciones para el paralelismo: Dependencias

Tema 4. Condiciones para el paralelismo: Dependencias Tema 4. Condiciones para el paralelismo: Dependencias Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

Más detalles

Trabajo Práctico Número 6

Trabajo Práctico Número 6 Página 1 de 6 Trabajo Práctico Número 6 Arquitectura de Computadoras 24/05/2014 Instrucciones Los problemas de ejercitación propuestos en el presente trabajo práctico pueden ser resueltos en forma individual

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Sistema de memoria 3 (Solución): Segmentación + Bancos En un

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

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA. UNIDAD TEMÁTICA 3: ACELERACIÓN DEL ACCESO A MEMORIA. 10. Evaluación de las prestaciones del subsistema de memoria. 11. Mejora de las prestaciones de las antememorias. 12. Mejora de las prestaciones de

Más detalles

Procesadores de palabra de instrucción muy larga (VLIW) v.2012

Procesadores de palabra de instrucción muy larga (VLIW) v.2012 Procesadores de palabra de instrucción muy larga (VLIW) v.2012 William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 13: Paralelismo a nivel de instrucciones y procesadores

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

Más detalles

Tecnologías, Organización y Microarquitectura

Tecnologías, Organización y Microarquitectura Septiembre 2012 Tecnología de Integración Nanotecnología Tecnología de Integración Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la influenza, y de un transistor

Más detalles

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

Cuestionario Unidad 4: Procesamiento paralelo 2012

Cuestionario Unidad 4: Procesamiento paralelo 2012 SEP SNEST DGEST INSTITUTO TECNOLÓGICO DE CHIHUAHUA II INGENIERÍA EN SISTEMAS COMPUTACIONALES ARQUITECTURA DE COMPUTADORAS Ing. Ernesto Leal Procesamiento paralelo ELABORADO POR: Miguel Angel Chávez Reza

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

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

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Clase 7 Memoria Sistema de Memoria Los programadores desean acceder a cantidades ilimitadas de memoria rápida!! Solución práctica: Jerarquía de memoria organizada en niveles

Más detalles

Modelos de Programación Paralela Prof. Gilberto Díaz

Modelos de Programación Paralela Prof. Gilberto Díaz Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Modelos de Programación Paralela Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

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

ARQUITECTURA VON NEUMANN

ARQUITECTURA VON NEUMANN ARQUITECTURA VO EUMA Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de Entrada

Más detalles

Arquitectura del MIPS: Introducción

Arquitectura del MIPS: Introducción Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Autor: Longinos Recuero Bustos

Autor: Longinos Recuero Bustos Actividad 1.1 Autor: Longinos Recuero Bustos Suponiendo que se aplica una mejora a una máquina de tal forma que el rendimiento es 20 veces superior al que tenía y considerando que la mejora únicamente

Más detalles

PROCESADORES SUPER-ESCALARES

PROCESADORES SUPER-ESCALARES PROCESADORES SUPER-ESCALARES ARQUITECTURA DEL PROCESADOR II 1. De los procesadores escalares a los procesadores super-escalares En la materia ya hemos visto el pipeline de 5 etapas. 1 La idea básica entonces

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:cabarcas@udea.edu.co Oficina:

Más detalles

Organización lógica Identificación de bloque

Organización lógica Identificación de bloque Cómo se encuentra un bloque si está en el nivel superior? La dirección se descompone en varios campos: Etiqueta (tag): se utiliza para comparar la dirección requerida por la CPU con aquellos bloques que

Más detalles

TEMA 3. ILP BASADO EN PLANIFICACIÓN DINÁMICA Sistemas Paralelos y Distribuidos 3º GIC. pág 1

TEMA 3. ILP BASADO EN PLANIFICACIÓN DINÁMICA Sistemas Paralelos y Distribuidos 3º GIC. pág 1 TEMA 3 (Segunda Parte) PARALELISMO A NIVEL DE INSTRUCCIONES (ILP) BASADO EN TÉCNICAS DINÁMICAS ÍNDICE 3.1. Técnicas de Planificación dinámica: Algoritmo del marcador, Implementación del Algoritmo de Tomasulo,

Más detalles

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11 6.3.3 Riesgo de Control. Los riesgos por control en DLX son menos frecuentes que los riesgos por dependencia de datos, pero al no haber una solución tan buena como el adelantamiento de datos, se convierten

Más detalles

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Sistema Cache Técnicas Digitales III Ing. Gustavo Nudelman 2012 RAM dinámica Almacena un bit como una capacidad espuria en un transistor La necesidad de conservar la carga y la lectura destructiva obliga

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras 4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice

Más detalles

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo Arquitectura de Computadoras Clase 9 Procesamiento paralelo Introducción al procesamiento paralelo Sea cual sea el nivel de prestaciones, la demanda de máquinas de mayor rendimiento seguirá existiendo.

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) 7. Memoria Caché 8. Arquitecturas RISC Arquitectura de

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

Plataformas de soporte computacional: arquitecturas avanzadas,

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

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes

Más detalles

Sección de procesamiento: El camino de datos

Sección de procesamiento: El camino de datos Sección de procesamiento: El camino de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución

Más detalles

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1 SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 5. PROCESADORES SUPERESCALARES: PLANIFICACIÓN DINÁMICA. OBJETIVOS. En esta práctica se trata de estudiar, por un lado, el aumento de prestaciones que

Más detalles

Procesadores Vectoriales

Procesadores Vectoriales Procesadores Vectoriales Curso 2011-2012 Por qué procesamiento vectorial? La segmentación tiene límites: Si se aumenta mucho el número de etapas, baja el ciclo de reloj, pero aumentan las dependencias.

Más detalles

Paralelismo en monoprocesadores. Procesadores Superescalares

Paralelismo en monoprocesadores. Procesadores Superescalares Paralelismo en monoprocesadores Procesadores Superescalares Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año 1 Procesadores

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

Multiplicación de matrices con DLX

Multiplicación de matrices con DLX Multiplicación de matrices con DLX Universidad de Salamanca Depto. Informática y Automática Arquitectura e Ingeniería de computadores Trabajo presentado por: Sergio Garrido Chamorro Santiago González Pérez

Más detalles

ARQUITECTURA VON NEUMANN

ARQUITECTURA VON NEUMANN ARQUITECTURA VON NEUMANN Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de

Más detalles

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita

Más detalles