TEMA 2 ILP BASADO EN PLANIFICACIÓN ESTÁTICA DE INSTRUCCIONES ÍNDICE
|
|
- Raúl Ávila Fernández
- hace 7 años
- Vistas:
Transcripción
1 TEMA 2 ILP BASADO EN PLANIFICACIÓN ESTÁTICA DE INSTRUCCIONES ÍNDICE 2.1. Conceptos fundamentales: Grafo y tipos de dependencias, Bloques básicos, Límite teórico de ejecución (dataflow-limit), compatibilidad de las aplicaciones Planificación estática básica. Desenrollado de bucles Planificación estática avanzada: Segmentación software Ejecución predicativa, Planificación de trazas y Especulación software Enfoques del paralelismo: Procesadores VLIW Ejemplos reales TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 1
2 2.1. CONCEPTOS FUNDAMENTALES Definición de Planificación, secuenciamiento o reordenamiento (scheduling): reordenar instrucciones para evitar bloqueos. Objetivo: reducir Bloqueos de datos. for (i=0; i<n; i++) { ejercicio: hallar cuerpo del bucle } LF F2, 0(R1) MULTF F1, F2, F3 DIVF F2, F1, F4 ADDF F1, F2, F3 SF 0(R1), F ADDI R1, R1, 4 SLT R2, R1, R7 BNEZ R2, bucle LF F2, 0(R1) MULTF F1, F2, F3 ADDI R1, R1, 4 DIVF F2, F1, F4 SLT R2, R1, R7 ADDF F1, F2, F3 SF -4(R1), F1 BNEZ R2, bucle TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 2
3 Tipos de dependencias de datos Dependencia real (registros) o RAW (read after write) o Es inevitable e inherente al algoritmo o son muy frecuentes Dependencias ficticias (registros) o WAW (write after write): dependencia de salida o WAR (write after read): se le llama antidependencia o Se pueden eliminar mediante renombrado de registros Dependencia real (memoria) o Analizar dinámicamente direcciones ejercicio: señalar tipos de dependencias en código anterior ejercicio: qué significa dinámicamente? Renombrado. Ejemplo MULTF F1, F2, F3 DIVF F2, F1, F4 ADDF F1, F2, F3 SF 0(R1), F1 MULTF F1, F2, F3 DIVF F20, F1, F4 ADDF F10, F20, F3 SF 0(R1), F10 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 3
4 Conclusión: programa como grafo de dependencias reales. Pero existe un límite de CPI (data flow limit o límite de flujo de datos) o Solo se ven las fases de ALU y acceso memoria: EX/MEM o Fases IF ID WB etc. se hacen en paralelo MULTF F1, F2, F3 MULT DIVF F20, F1, F4 IF ID IF ID ADDF F10, F20, F3 IF ID SF 0(R1), F10 Tiempo TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 4 DIV Bypass y Registros temporales ADD Planificación estática limitada por saltos (es difícil cruzarlos ). Bloques básicos: barreras de Planificación for (i=0; i<n ; i++) { if (a[i]<0) { } } else { } b[i]=-a[i]; b[i]=a[i]; WB WB MEM ejercicio: renombrar registros para eliminar dep. ficticias en bucle anterior. ATENCION: R1
5 Importancia de planificación estática Usar un buen compilador (incluso si CPU es muy dinámica) Buscar flags de optimización del compilador Compilador nativo de intel : icc 12 (ahora Composer XE) NOTA: esta gráfica no es de un VLIW, sino de Intel Xeon: familia Intel para servidores (actualmente similar a Core i7) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 5
6 2.2 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. EJEMPLO / RESUMEN DE DESENROLLADO Bucles: más del 90% t. de ejec. Suponemos bucle paralelizable (iteraciones independientes). Ejemplo: double s, x[m], y[m]; int i; for (i=0 ; i<m ; i++ ) y[i]= x[i] * s ; Desenrollado (en alto nivel) : for (i=0 ; i<m%3 ; i++) y[i]= x[i] * s; //start-up (prólogo o cabecera) // sup. tiempo de ejecución pequeño (M es grande) for ( ; i<m ; i+=3 ) { y[i+0]= x[i+0] * s ; y[i+1]= x[i+1] * s ; y[i+2]= x[i+2] * s ; } TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 6
7 Pasos para el Desenrollado (bajo nivel) bucle_orig: LD F2, 0(R1) ; Instrucciones útiles MULTD F4, F2, F24 ; F24 contiene el valor de s SD (R3)0, F4 ; ADDI R1, R1, 8 ; Instrucciones de overhead (control bucle) ADDI R3, R3, 8 SLTI R7, R1, fin_array_x; constante apunta al final de x[m] BNEZ R7, bucle_orig o instr. de overhead (de control del bucle) o instr. útiles de cálculo sobre estructuras de datos (p ej vectores) casi no hay dependencias entre ambos grupos Reordenación evidente TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 7
8 bucle_intermedio2: // Desenrollado del bucle principal LD F2, 0(R1) MULTD F4, F2, F24 ; F24 contiene el valor de s SD (R3)0, F4 LD F2, 8(R1) MULTD F4, F2, F24 SD (R3)8, F4 LD F2, 16(R1) MULTD F4, F2, F24 SD (R3)16, F4 ; ADDI R1, R1, 8*3 ADDI R3, R3, 8*3 SLTI R7, R1, fin_array_x BNEZ R7, bucle_intermedio2 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 8
9 Se renombran registros para evitar dependencias ficticias WAR, WAW. Usamos notación con primas ( ) por simplicidad bucle_intermedio3: LD F2, 0(R1) MULTD F4, F2, F24 ; F24 contiene el valor de s SD (R3)0, F4 LD F2, 8(R1) MULTD F4, F2, F24 SD (R3)8, F4 LD F2, 16(R1) MULTD F4, F2, F24 SD (R3)16, F4 ; ADDI R1, R1, 8*3 ADDI R3, R3, 8*3 SLTI R7, R1, fin_array_x BNEZ R7, bucle_intermedio3 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 9
10 Se entrelazan las instrucciones de las distintas iteraciones bucle_desenrollado: LD F2, 0(R1) LD F2, 8(R1) LD F2, 16(R1) MULTD F4, F2, F24 ; F24 contiene el valor de s MULTD F4, F2, F24 MULTD F4, F2, F24 SD (R3)0, F4 SD (R3)8, F4 SD (R3)16, F4 ; ADDI R1, R1, 8*3 ADDI R3, R3, 8*3 SLTI R7, R1, fin_array_x BNEZ R7, bucle_desenrollado TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 10
11 Opcionalmente se colocan instrucciones tras la más larga (para evitar ciclos de bloqueo) bucle_desenrollado_opc: LD F2, 0(R1) LD F2, 8(R1) LD F2, 16(R1) MULTD F4, F2, F24 ; F24 contiene el valor de s MULTD F4, F2, F24 MULTD F4, F2, F24 ADDI R1, R1, 8*3 SD (R3)0, F4 SD (R3)8, F4 SD (R3)16, F4 SLTI R7, R1, fin_array_x ; ADDI R3, R3, 8*3 BNEZ R7, bucle_desenrollado_opc Prestaciones máximas si desenrollo infinitas veces x[0]= x[0] * s ; x[1]= x[1] * s ; x[m-1]= x[m-1] * s ; ejercicio: hacerlo para otro bucle de vectores TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 11
12 Aceleración: o ATENCIÓN! al reducir el número de instrucciones, el CPI no es buena medida de rendimiento. o Si se puede usar Ciclos / elem. procesado del vector Instr./elem vector Bucle original (3 instr útiles + 4 instr overhead) / elem = 7 instr /elem. Bucle desenrollado (3 iter.) (3*3 instr útiles + 4 instr overhead) / 3 elem vector = = (3 instr útiles + 4/3 instr overhead) /elem= 4.33 instr/elem Fsaltos 1/7 = 14.3% 1/13 = 7.7% 0% Tam código estático (bytes) Desenrollado infinitas iteraciones (K ) (3*K instr útiles + 4 instr overhead) / K elem vector = (K ) = 3 instr útiles/elem 7 * 4 13 * 4 3 * K * 4 Notas Desprecio iteraciones de prólogo Prestaciones máximas. Tamaño de código estático máximo ejercicio: hallar A entre las 3 columnas si CPI=1.4,1.1,1.0 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 12
13 CONCLUSIONES: - Se han reducido las instr. overhead o estamos rescribiendo el código fuente de leng. iterativo para hacerlo más rápido - Se aumenta las posibilidades de planif. estática, en cuanto se reducen el porcentaje de saltos o por cada salto, hay más instr. de otro tipo - Se necesitan más registros (en RISC los hay) - Se ha de conocer la endoarquitectura de la CPU (duración de U.F., existencia de bypass, etc.) o compatibilidad en entredicho (se verá en VLIW). TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 13
14 2.3. Planificación estática avanzada Bucles no paralelizables: gran variedad de casos. Aquí ejemplos ilustrativos Hay una dependencia entre la iteración actual i y las anteriores. o Serie de Fibonacci (serie con recurrencia: a i+k =f(a i ) ) for (i=2;i<m; i++) x[i]=x[i-1]+x[i-2]; //(2 Load, 1 Store)/1 elem // Si desenrollo: for (i=2;i<m; i+=3) { x[i]=x[i-1]+x[i-2]; x[i+1]=x[i]+x[i-1]; x[i+2]=x[i+1]+x[i]; } // En total:(2 Load,3 Store)/3 elem o Se obtiene cierta aceleración por eliminar instrucciones. o Para a i+k =f(a i ), si k es grande puedo desenrollar k veces: for (i=0;i<m; i++) x[i+4]=x[i]*s; // desenrollo 4 iteraciones: for (i=0;i<m; i+=4) { x[i+4]=x[i+0]*s; x[i+5]=x[i+1]*s; x[i+6]=x[i+2]*s; x[i+7]=x[i+3]*s; } TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 14
15 Operaciones que cumplen propiedad asociativa o Sumatorio, producto múltiple, búsqueda de mínimo/máx de un vector, etc. o Existe dependencia en la variable acumuladora o Si se rescribe, desaparece. Por ej con acumuladores parciales: - for (i=0;i<m;i++) t = t + y[i]; - for (i=0;i<m; i+=3){ t0 += y[i+0]; t1 += y[i+1]; t2 += y[i+2]; } t = t0 + t1 + t2; Ejercicio: Desenrollar el Producto escalar de dos vectores ejercicio: pensar en búsqueda de mínimo/máx de un vector var. Acumuladoras de y[0] y[m/3], y[m/3] y[2m/3-1], y[2m/3] y[m-1], TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 15
16 2.3. Segmentación software o encadenamiento de iteraciones (software pipelining). o bucle paralelizable o no hay registros suficientes (CISC) para desenrollar, o o no interesa tamaño grande de código. Recordemos el mismo ejemplo: for (i=0 ; i<m ; i++ ) y[i]= x[i]*s; bucle_orig: ; instr útiles LD F2, 0(R1) MULTD F4, F2, F24 ; F24 contiene el valor de s SD (R3)0, F4 ; instr overhead a continuación (increm. punteros, saltos, comp.) ADDI R1, R1, 8 ADDI R3, R3, 8 SLTI R7, R1, fin_array_x; constante apunta al final de x[m] BNEZ R7, bucle_orig TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 16
17 Software pipelining: Esquema Esquema en la siguiente tabla: instr. útiles iter 0 LD 0 MULTD 0 SD0 iter 1 LD 1 MULTD 1 SD 1 iter 2 LD 2 MULTD 2 SD 2 iter 3 LD 3 MULTD 3 SD 3 iter 4 LD 4 MULTD 4 SD 4 prólogo iteraciones reordenadas epílogo De la ejecución normal (flechas rojas) cambio a Sw pipelining (flechas verdes). TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 17
18 Software pipelining: Ejemplo Prólogo: LD 0 MULTD 0 LD 1 Bucle_sw_pp: SD 0 (K) MULTD 1 (K+1) LD 2 (K+2) instr overhead (contendrán el salto a etiqueta Bucle_sw_pp) Epílogo: SD M-2 MULTD M-1 SD M-1 // se alejan las dependencias reales (van de una iter. a la siguiente) NOTAS: o las instr overhead deberán modificar las constantes (offset) convenientemente (no es fácil). o Habrá otras instr overhead en el prólogo y epílogo. o Se presupone que al menos se van a ejecutar dos iteraciones. TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 18
19 Software pipelining más desenrollado Desenrollando 2 iteraciones (no se dibujan las instr overead por simplificar el esquema) PRÓLOGO BUCLE EPÍLOGO LD 0 MULTD 0 LD 1 MULTD 1 LD 2 LD 3 SD 0 (K) SD 1 (K+1)... MULTD 2 (K+2) MULTD 3 (K+3)... SDM-4 SD M-3 LD 4 (K+4) LD 5 (K+5)... MULTDM-2 SD M-2 MULTD M-1 SD M-1 Sw pipelining: ejecución por columnas (flecha verde). Práctica 1: CCS (compilador familia TMS320) puede usar esta técnica TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 19
20 2.4. Ejecución predicativa, LEMA: Más planificación estática si aumenta nº medio instrucciones entre 2 saltos. Solución: Transformar dependencias de control en dependencias de datos. Útil sobre todo para saltos difíciles de predecir (if else) Idea: Instrucciones Condicionadas o Predicadas : sólo se ejecutan si se cumple una condición. Gran variedad en máquinas reales. Todas similares a: CMOVZ Rd,Rf,Rcond; equivale a if (Rcond==0) Rd=Rf; CMOVNZ Rd,Rf,Rcond; equivale a if (Rcond!=0) Rd=Rf; Ejemplo: Rb = abs(ra): Rb=Ra; if (Ra<0) Rb=-Rb; Addi Rb,Ra,0 Comparar si fuera así: Slti Rcond,Rb,0 //Rcond=1 si Rb<0 if (Ra<0) Rb=-Ra; Beqz Rcond,sigue else Rb=Ra; Sub Rb,R0,Rb // sólo se ejecuta si NT sigue: Salto: difícil acertar en su predicción. Si uso CMOVZ Addi Rb,Ra,0 Sgei Rcond,Rb,0 //Rcond=0 si Rb<0 Sub Rd,R0,Rb // inst que siempre se ejecuta CMOVZ Rb,Rd,Rcond TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 20
21 Instrucciones Condicionadas o Predicadas (II) Otro ejemplo: k = min(c,m,y); mínimo de 3 valores (usado en conversión RGB CMYK k=c; if (k>m) k = m; if (k>y) k = y; ADDI Rk, Rc, 0 SGT R1cond, Rk, Rm CMOVNZ Rk, Rm, R1cond SGT R2cond, Rk, Ry CMOVNZ Rk, Ry, R2cond Instr predicadas completas (full predication) Arquitectura ARM (casi toda instrucción) Intel VLIW Itanium IA-64 (casi toda instrucción) Muchos otros VLIW, como DSP TMS320C6713 (práctica) Ejemplo: Rb = abs(ra): Rb=Ra; if (Ra<0) Rb=-Rb; Addi Rb,Ra,0 Slti Rcond,Rb,0 //Rcond=1 si Rb<0 [Rcond] Sub Rb,R0,Rb // se ejecuta Sub pero sólo modifica // el registro destino Rb si Rcond!=0 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 21
22 Instrucciones Predicadas (III): caso general if else con n variables de salida: if (cond==0) { x1 =... x2 = xn=... } else { y1 =... y2 = yn=... } Seqi Rcond, cond, 0 [Rcond] Oper Rx1,... [Rcond] Oper Rx2, [Rcond] Oper Rxn,... [!Rcond] Oper Ry1,... [!Rcond] Oper Ry2, [!Rcond] Oper Ryn,... Donde Oper es la última operación que se asigna a la variable de salida Se ejecutarían aprox. doble número de instr. En teoría pueden desaparecer todos los if else, pero: o Compiladores usuales: sólo predican 3 o 4 instrucciones o Compiladores para VLIW: predican más (CCS de TMS320 hasta 7 instr.) Más ejemplos Procesado Condicional: tema 4 PARALELISMO DATOS (DLP) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 22
23 2.4. Planificación de trazas y (I) Concepto de Planificación de trazas: Planificar (reordenar) instrucciones a través de la traza de ejecución más probable, cruzando saltos Se usa mucho para proc. VLIW //CÓDIGO EJEMPLO Instr previas; If (cond) { x=x+s+t; otras instr del if; } else { y=y+s+u; otras instr del else; } ejercicio: dibujar diagrama flujo Posible traducción (no completa): Instr previas; //varios LW If (cond) { ADD Rst, Rs, Rt ADD Rx, Rx, Rst SW 0(RBx), Rx otras instr del if; } else { ADD Rsu, Rs, Ru ADD Ry, Ry, Rsu SW 0(RBy), Ry otras instr del else; } TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 23
24 Planificación de trazas y (II) Cambio inocuo que permite tener más instr antes del if Instr previas; ADD Rst, Rs, Rt ADD Rsu, Rs, Ru If (cond) { ADD Rx, Rx, Rst SW 0(RBx), Rx otras instr del if; } else { ADD Ry, Ry, Rsu SW 0(RBy), Ry otras instr del else; } O también se podría (barajar estas posibilidades según convenga): Instr previas; ADD Rst, Rs, Rt ADD Rsu, Rs, Ru ADD Rx, Rx, Rst ADD Ry, Ry, Rsu If (cond) { SW 0(RBx), Rx otras instr del if; } else { SW 0(RBy), Ry otras instr del else; } TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 24
25 Planificación de trazas y Especulación software (III) Concepto de especulación de instr. Cambio especulativo. Si apuesto (en tiempo compilación) que caso T (cond. cierta) es más probable: Instr previas; // LW Rx, 0(RBx) ADD Rst, Rs, Rt ADD Rxnuevo, Rx, Rst SW 0(RBx), Rxnuevo if (cond) { Pensar otro ejemplo de planif. trazas otras instr del if;/*incluso estas instr se podrían sacar del cuerpo del if*/ } else { SW 0(RBx), Rx /*deshace lo especulado */ ADD Rsu, Rs, Ru ADD Ry, Ry, Rsu SW 0(RBy), Ry otras instr del else; } Existe gama catalogada de técnicas de planificación de trazas, en función de si hay saltos hacia fuera de un bloque básico o hacia adentro. Esta técnica, combinada con la predicación, permite múltiples reordenaciones Atención: Qué ocurre si llega una interrupción tras SW 0(RBx), Rxnuevo? TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 25
26 Procesadores LIW o VLIW Reducir N inst. Very Long Instruction Word IDEA: Trasladar la complejidad de la emisión (y planificación) al compilador o Compilador agrupa varias operaciones (instrucciones RISC), en macroinstrucciones VLIW: hasta p operaciones en paralelo (p slots ) o Necesita técnicas avanzadas de planificación (scheduling) estática o No tienen algoritmo de planificación dinámica (in-order-execution). Instrucciones EX IF ID EX ME WB EX EX IF ID EX ME WB EX OPC= operaciones/ciclo (pues CPI no indica nada) Tiempo IPC ideal = 1 OPC ideal = p OPC <= p (slots vacíos) % slots vacíos si OPC=2<p=3 IF: normalmente 64, 128, 256 bits ID: típicamente p= 3 a 8 operaciones EX y MEM: al menos tantas UF como p. WB: numerosos puertos del fichero de registros (normalmente más de 10, con ID) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 26
27 Implementación de VLIW EMISIÓN TOTALMENTE ESTÁTICA: o No detecta riesgos (en tiempo de ejecución) o Nunca bloquea la máq. CPI = 1+CPI MEM siempre o Compatibilidad en entredicho: compilador debe conocer la arquitectura (la duración de las operaciones). ALGO DE EMISIÓN DINÁMICA (la estática ayuda): > Ciertos bits especifican posibles dependencias y paralelismo de instr. > Puede haber bloqueos calcular el OPC no es tan fácil Los 1º VLIW tenían instr muy rígidas: obligaban a recompilar el código. Los actuales tienen instr más flexibles y complejas: compatibilidad: no necesitan recompilar (aunque sería mejor). Ventajas VLIW: Ahorro hardware permite complicar otros recursos: o 128 registros GPR de 64 bits, 128 reg FP, etc. en Itanium. o Menor consumo atractivo en sistemas empotrados (embedded media processors). Mucha Variedad: Sólo INT, orientado a FP, etc. Empotrar un VLIW full-custom en un SoC (system-on-a-chip, explicado en Máster MICR) Desventajas VLIW: mayor tamaño del código. Caché de instr. desperdiciado Proponer 3 y 5 slots para balancear bien el SAXPY o Tecn estáticas carecen de información de ejecución (ej. BTB, RAW memoria, ) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 27
28 Ejemplo: código RISC VLIW CON EMISIÓN TOTALMENTE ESTÁTICA Código RISC escalar :bucle lf f1, 0(r11) lf f2, 0(r12) multf f3, f1, f2;; addi r11, r11, 4 addi r12, r12, 4 subi r8, r11, vec2 /*apunta al final del vector 1 */ rbnez r8, bucle /* instr de hueco */ addf f31, f31, f3 Qué hace este código? Para dos vectores apuntados por r11, r12 código (sin desenrollar) VLIW-RISC :bucle addi r11, r11, 4 lf f1, 0(r11) lf f2, 0(r12) nop nop;; addi r12, r12, 4 nop nop nop nop;; nop nop nop nop nop;; subi r8, r11, vec2 nop nop nop multf f3, f1, f2;; nop nop nop nop nop;; nop nop nop nop nop;; nop nop nop nop nop;; bnez r8, bucle nop nop nop nop;; /* instr de hueco */ Nop nop nop addf f31, f31, f3 nop;; Hallar OPC, y Tam efectivo caché si OPC<p TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 28
29 Ejemplo 2: TMS320C6713 DSP (Digital Signal Processor) De Texas Instrument Juego instr. RISC Macroinstrucciones 256 bits: IPC ideal hasta 8 instr. (operaciones) por ciclo Arquitectura muy ortogonal o Casi todos los reg. Valen para todo o No hay restricciones en las instr. Exactamente 8 U.F. (una por instrucción/operación ): o 2 grupos ( Data Paths ) de 4 UF cada una - 16 reg. (32 bits) por cada grupo: A0-A15 y B0-B15 o UF agrupadas por slots. A grosso modo (más detalles en práctica 1) Slots para operaciones INT Slots para operaciones FP 2 Ld/St 2 Ld/St 2 MULT 2 MULT FP 4 INT 4 varias (2 de ADDFP, otras: CMP, conversión ) Caché L1 separada instr y datos o 2 puertos cache datos (32 bits ancho) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 29
30 ESQUEMA TMS320C67x TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 30
31 Empaquetamiento de 8 instrucciones Se pueden ejecutar varias en paralelo o de una en una (en serie) Empaquetamiento reduce tamaño de código F.P. Fetch packet : o son 256 bits (8 instr.) E.P. Execution packet : o grupo de instr. que se pueden ejecutar en paralelo (de 1 a 8) El bit p indica si se paraleliza con la sig. TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 31
32 CADENA (PIPELINE) PG: Program address generate PS: Program address send PW: Program access ready wait PR: Program fetch packet receivee DP: Instruction dispatch (parallell detection) DC: Instruction decode E1 a E10: operands read, execution and WB (duración variable según instr.) TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 32
33 EJEMPLO DE EMPAQUETAMIENTO Y EJEC.DE INSTR. Ejemplo: o Fetch Packet número n con 3 E.P. o Resto de F Fetch Packets con un solo E.P. (8 instrucciones en paralelo totalmente) instruction A ;EP k FP n instruction B ; instruction C ;EP k+1 FP n instruction D instruction E instruction F ;EP k+2 FP n instruction G instruction H Cuántos ciclos durará el FetchPacket n?... OTRAS FPs con EP de k + 3 a k + 8 (8 instr. En paralelo) indica que se ejecuta en paralelo con la anterior. Ver cronograma (trivial) en pag. Sig. TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 33
34 CRONOGRAMA PARA EL EJ. Bloqueo (stall) debido a ejecución en serie de E.P. k, k+1,k+2 El cronograma supone duración máxima de las UF Tipo de instr. Duración Otras duraciones INT E1 Saltos : hueco de 5 ciclos MULT (INTEGER), CMP FP E2 Fallo Cache : STORE E3 bloqueo total de 2 ciclos LOAD E5 ADDFP E7 MULFP E10 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 34
35 PRESTACIONES MEDIAS familia C MHz por 8 instr = 1600 MIPS pico (peak) Típicamente IPCreal_medio 0.6 * IPCideal Consumo medio 1300mW MIPS/mW (pico) = 1600 /1300 = 1.23 MIPS/mW MIPS/mW (real_medio) = 0.6 * 1600 /1300 = 0.74 MIPS/mW EJEMPLO Fusión bucles Importancia del balanceo de instrucciones del código frente a slots (UF) del procesador: La resolución de ecuaciones lineales por eliminación gaussiana, implica el cálculo de muchos bucles SAXPY, donde uno de los vectores es siempre el mismo (x[]). Se pide comparar para un TMS320 el empaquetamiento de 4 bucles SAXPY frente a un SAXPY de 4 sentencias donde x[] siempre es el mismo. Suponer que todo riesgo lo evita el compilador. UF agrupadas por slots. A grosso modo (más detalles en práctica 1) Slots para operaciones INT Slots para operaciones FP 2 Ld/St 2 Ld/St 2 MULT 2 MULT FP 4 INT 4 varias (2 ADDFP, otras: CMP, conversión ) for (i=0; i<n; i++) { y[i]= a * x[i] + y[i];} //SAXPY TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 35
36 Procesadores VLIW (actuales) - TMS C6000 DSP (Texas Instruments). Práctica - TriMedia media (NXP, antes Philips Semiconductors). p= 5 a 8 slots Tamaño de macroinstrucción variable (código comprimido) Muy parecido a VLIW con emisión totalmente estática - SHARC DSP (Analog Devices), Super Harvard Architecture Single-Chip Computer. Arq. Harvard Alta relación MFLOPS/W. Tiene un secuenciador de programa que controla el flujo de ejecución (previamente programado p ej con bucles). p= 8: 2 clusters de 4 operaciones (FP, 2 ALU, 1 Ld/St) - STMicroelectronics ST200 (Hewlett-Packard Laboratories y STMicroelectronics). p= 8: 2 clusters de 4 operaciones (FP, 2 ALU/MULT, 1 Ld/St) - Itanium (Intel, IA-64): Tres slots de 41 bits más 5 bits para especificar que UF requiere cada slot y las posibles dependencias. Tiene muchos tipos de instrucciones que resumimos aproximadamente en: Acc. Memoria /salto Cualquiera/ Inm32 Cualquiera excepto acc. mem./inm32 TEMA 2. ILP BASADO EN PLANIFICACIÓN ESTÁTICA SPD: Sistemas Paralelos y Distribuidos 3º GIC. pág 36
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 detallesTEMA 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 detallesArquitectura 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 detallesIntroducció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 detallesSISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713 OBJETIVOS. En esta práctica se trata de estudiar dos de las técnicas de planificación estática más importantes:
Más detallesTEMA 4. ARQUITECTURA IA-64
TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura
Más detalles1.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 detallesTEMA 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 detallesTema 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 detallesDefinició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 detallesEjercicios 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 detallesARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 3.
ARQUIECURA DE SISEMAS PARALELOS I. 4º INGENIERÍA INFORMÁICA. PRÁCICA 3. BLOQUEOS DE COROL, DESENROLLADO DE BUCLES Y PREDICCIÓN DINÁMICA DE SALOS. OBJEIVOS. En esta práctica se trata de estudiar teóricamente,
Más detallesParalelismo 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 detallesTutorí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 detallesParalelismo 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 detallesTema 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 detalles3. 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 detallesArquitectura 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 detallesArquitectura 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 detallesDepartamento 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 detallesDpto. 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 detallesTema 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 detalles6. 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 detallesint 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 detallesOBJETIVOS 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 detalles2. 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 detallesProcesadores 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 detallesArquitectura 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 detallesPlanificación estática
Planificación estática Planificación de bloques básicos Planificación de bucles Planificación global Serafín Benito AIC: Planificación estática 1 Planificación de bloques básicos.. Técnica sencilla. Eficiencia
Más detallesTEMA 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 detalles2. 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 detallesADDI 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 detallesProcesadores 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 detallesExplotació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 detallesCOMPUTADORES 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 detallesArquitectura 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 detallesArquitectura 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 detallesAspectos 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#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 detallesARQUITECTURA 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 detalles1. 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 detallesArquitectura 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 detallesTema 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 detallesArquitectura 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 detallesTEMA 1: CONCEPTOS BÁSICOS DE PARALELISMO Y ANÁLISIS DE PRESTACIONES
TEMA 1: CONCEPTOS BÁSICOS DE PARALELISMO Y ANÁLISIS DE PRESTACIONES SISTEMAS PARALELOS Y DISTRIBUIDOS www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla 1 Arquitectura:
Más detallesPipeline (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 detallesArquitectura 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 detallesArquitectura 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 detallesIngenierí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 detallesHISTORIA 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 detallesARQUITECTURA 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 detallesProcesadores 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 detallesPlataformas 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 detallesUnidad 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 detallesArquitectura 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 detallesArquitectura 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 detallesEstrategias 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 detallesSistemas embebidos basados en FPGAs para instrumentación
Sistemas embebidos basados en FPGAs para instrumentación Introducción a los sistemas de instrumentación basados en microprocesador Guillermo Carpintero del Barrio Introducción al contenido de la asignatura
Más detallesPrimer Semestre Laboratorio de Electrónica Universidad de San Carlos de Guatemala. Electrónica 5. Aux. Marie Chantelle Cruz.
Laboratorio de Electrónica Universidad de San Carlos de Guatemala Primer Semestre 2017 Overview 1 Cortex La más usada para dispositivos móviles Encoding por 32 bits, excepto Thumb y Thumb-2 15x32bits registros
Más detallesArquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA
Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de
Más detallesIntroducció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 detallesQué 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 detallesARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX
ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX OBJETIVOS. En esta práctica manejaremos un simulador (WinDLX,
Más detallesARQUITECTURA 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 detalles5. 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 detallesGranularidad y latencia
Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación
Más detallesDepartamento 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 detallesProcesador 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 detallesTema 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
Más detallesMICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI
MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos
Más detallesOrganización de Computadoras. Principios de Conjuntos de Intrucciones
Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load
Más detallesAutor: 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 detallesTratamiento 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 detallesPrá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 detallesSistema 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 detallesARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 5. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO.
ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 5. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. OBJETIVOS. En esta práctica vamos a estudiar una técnica de scheduling dinámico
Más detallesMultiplicació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 detallesTEMA 4: PARALELISMO A NIVEL DE DATOS (DLP).
TEMA 4: PARALELISMO A NIVEL DE DATOS (DLP). ÍNDICE: 4.1. Introducción: Aplicaciones científicas y multimedia. 4.2. Arquitecturas vectoriales segmentadas clásicas. 4.3. Extensiones multimedia y núcleos
Más detallesEstructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique
Más detallesMicrocontroladores. Sistemas embebidos para tiempo real
Microcontroladores Sistemas embebidos para tiempo real Objetivos Describir los conceptos y bloques básicos de microcontroladores CPU, ISA, arquitectura Comprender la importancia de conocer el uc Utilizar
Más detallesArquitectura 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 detallesTEMA 2: ARQUITECTURAS MULTIMEDIA Y VECTORIALES.
TEMA 2: ARQUITECTURAS MULTIMEDIA Y VECTORIALES. ÍNDICE: Introducción Concepto Procesadores Vectoriales Modelo Núcleo Multimedia Instrucciones Ensamblador Ejemplo completo: bucle SAXPY Procesado Condicional
Más detallesIngenierí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 detallesArquitectura 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 detallesTecnologías y Arquitecturas
Tecnologías y Arquitecturas Parte II Andrés Djordjalian Seminario de Sistemas Embebidos 19 de mayo de 2011 Facultad de Ingeniería de la UBA 06:13 1 de 22 Temas de esta Clase Medición
Más detallesParalelismo en monoprocesadores. Planificación en ILP
Paralelismo en monoprocesadores Planificación en ILP Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año 1 Conceptos básicos
Más detallesTecnologí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 detallesARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. 1. OBJETIVOS.
ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. 1. OBJETIVOS. En esta práctica vamos a estudiar una técnica de scheduling
Más detallesArquitectura 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 detallesORGANIZACIÓN DOCENTE del curso
ORGANIZACIÓN DOCENTE del curso 2010-11 1. DATOS GENERALES DE LA ASIGNATURA NOMBRE Arquitectura e Ingenieria de es PÁGINA WEB http://aulavirtual.unican.es CÓDIGO 5411 DEPARTAMENTO ELECTRÓNICA Y COMPUTADORES
Más detallesARQUITECTURA DE COMPUTADORAS
ARQUITECTURA DE COMPUTADORAS Información General Objetivos Al terminar el curso, el estudiante estará capacitado para: 1. Manejar medidas de performance que permitan comparar diversos sistemas de Computadora.
Más detalles2EMHWLYRV 5HIHUHQFLDV
7HPD6HJPHQWDFLyQ,,,QWURGXFFLyQ DORV6XSHUHVFDODUHV 2EMHWLYRV 5HIHUHQFLDV $SURYHFKDPLHQWRGHXQDDUTXLWHFWXUDVHJPHQWDGD 3ODQLILFDFLyQGLQiPLFD 3UHGLFFLyQGLQiPLFDGHVDOWRV 5HQRPEUDGRGHUHJLVWURV 3UHGLFDFLyQ 3URFHVDGRUHV6XSHUHVFDODUHV
Más detallesOrganización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017
Organización del Computador 1 CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Estructura de una máquina von Neumann Ciclo de Ejecución 1. 2. 3. 4. 5. 6. UC obtiene la próxima instrucción de
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa
Más detallesCAPÍ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 detallesARQUITECTURA 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 detalles202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES
202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES César Represa Pérez Carmen Rodríguez Clavería Nº de Asiento Registral 00/2013/1733 Burgos, 2013 202 Problemas de Arquitectura de Computadores 2º G.I.I 202
Más detallesIntroducció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 detallesProcesador MIPS - Registros
MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros
Más detalles