Proc. Superescalares con Planificación dinámica • Arquitectura muy distinta a la de los superescalares con planif. estática. • En estas máquinas superescalares se implementa un algoritmo de planificación o “scheduling” dinámico muy similar de Tomasulo • También emisión dinámica: en tiempo de ejecución • Fases: IF IS EX WB. Para Ld/St en EX se hace EA+MEM • La emisión en IS de todas las instr. de la ventana sólo suele depender de que existan R.S. (o búferes de acceso a memoria) libres y no tiene reglas de emisión. • El grado m suele ser las instrucciones que puede emitir hacia las R.S. • Recordar casi máxima: las técnicas dinámicas acaban imponiéndose a las estáticas en máquinas de propósito general, por compatibilidad del sw. • Compilador no debe influir, en principio (en realidad siempre ayuda). • No obstante: Más complejidad ⇒ más consumo, son peores para sist empotrados. • Se ha llegado casi al límite de ILP (m=4) extraíble dinámicamente y realizable físicamente con la tecnología actual ⇒ no olvidar alternativas estáticas (VLIW) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 27 Repaso de Algoritmo Tomasulo (Planif. dinámica) Caché de instrucciones Del caché de datos Buffers de carga 6 Instrucciones IF EX Registros ETQ (MEM) 5 4 3 2 1 IS IS Buses de operando 3 2 1 Buffers almacenamiento EX (MEM) Bus de operación Al caché de datos WB 3 2 1 Estaciones de reserva ALU INT EX 2 1 MULT OTRAS U.F. Bus Común de Datos (CDB) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 28 Implementación de Superescalares Planif. dinámica Todo similar al Algoritmo de Tomasulo Caché de instrucciones Del caché de datos Muchos más Buffers de carga 6 Instrucciones IF EX Registros Todo similar para instr. FP ETQ (MEM) 5 4 3 2 1 IS IS Buses de operando 3 2 1 Muchos más búferes almacenamiento EX (MEM) Bus de operación Al caché de datos WB Muchas más 2 Estaciones 1 de reserva 3 2 1 ALU INT EX MULT más U.F. INT U.F. FP Buses Comunes de Datos (CDB) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 29 • IF: se buscan m instr (o más). Si no se emiten todas, se quedan en cierto búfer de búsqueda (para nosotros la ventana de instrucciones). - Aquí la ventana rígida no reduce prácticamente las prestaciones (mientras haya R.S. se emiten todas). Muchos superescalares con planif. dinámica la implementan así para simplificar. - En realidad es una ventana de emisión (issue window) en una fase intermedia - Se accede a la BTB. • IS: (generalmente subdivida en varias etapas). Emite todas las m instrucciones mientras haya R.S. - Actualmente casi ningún procesador de propósito general impone reglas o criterios sobre las m instrucciones. Pueden ser de cualquier tipo y balanceo (no existe el concepto de “tubería”). La emisión rígida no tiene mucho sentido aquí. - Se van encolando las instrucciones en las diferentes estaciones de reserva R.S., que se enviarán (dispatch) hacia las U.F., cuando estén todos los operandos. - Luego si nada lo impide se alcanza el límite IPC=IPCideal=m - Si se agotan las R.S. (por ej. muchas instr del mismo tipo seguidas, muchas RAW en cadena, muchos fallos caché), sí habrá bloqueos de emisión. - La complejidad de muchos factores de la fase IS crece con m2 - Se aumenta el número de RS para que soporten la tasa de instrucciones. Nº R.S. debe tener relación con Nº instr. en vuelo (k x m = Nº fases x grado ) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 30 • EX: - Balanceo de U.F. en función del % tipos instr. - Debe ser Nº U.F. > m. - Muchas de ellas pueden estar ociosas. • MEM: - Doble puerto (o doble banco) cada vez más habitual. - El búfer de escritura (últimos Store) más importante. Los Load pueden leer de él sin bajar a caché (muchas dependencias en memoria en CISC). - Los cachés no son bloqueantes (non-blocking caches). Ante fallo de acceso a caché, las U.F. y R.S. siguen trabajando (el número de R.S. y de instrucciones en vuelo es altísimo) y se “oculta la latencia” de acceso a L2. • WB: Nº CDB’s proporcional a m. Además se complica con la especulación (apartado siguiente). > Con esta arquitectura (algor. Tomasulo), el cronograma de proc. encadenado (m=1) es similar al superescalar (m>1), pero con más de todo. Además suponemos que existen recursos abundantes (RS, CDB, puertos, etc.). Diferencias principales: - Se pueden saturar los búferes o RS por existir muchas RAW - Si el número de UF es menor que el número de instrucciones/ciclo de ese tipo, se saturará también las RS. - Fallos cache, de BTB hacen que se vacíen las RS Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 31 Algunos aspectos de las máquinas reales > En realidad se insertan búferes, colas o listas intermedias entre cada una de las fases Ejemplo: Búferes en el Pentium Pro (no se muestran todas las fases ni el superencad.) 6 µops 16 bytes IF 16 bytes por ciclo DEC 3 instr. por ciclo Alineamiento 20 R.S. REN (RAT) y DIS 3 µops por ciclo EX 5 U.F. FP+INT+ MEM WB 3 resultados por ciclo 40 ROB Cuello de Botella: m = 3 µops/ciclo > Nº máximo instr. en vuelo = suma de instrucc. o entradas de todos los búferes. > Difícil ver el cronograma. Se ocultan bloqueos de cualquier tipo, vaciando las colas. > Bloqueo total se produce p.ej. si en un bucle se van acumulando instrucciones hasta que se llena las R.S. completamente. > Las depend. reales RAW y fallos cachés marcan el ritmo de ejecución: se acerca al Data Flow Limit, límite del flujo de datos (recordar grafo de dependencias) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 32 Ejemplo 3: superescalar planif. dinámica Supongamos DLX superescalar con planificación dinámica que busca y emite hasta m=4 instrucciones por ciclo (similar al MIPS R10000). No hay reglas de emisión. - Dos ALU’s enteras EX1, EX2 (también ejecutan los saltos). - Una de carga/almacenamiento (EA+MEM). - Otra de punto flotante simple (ADD/SUB-FP) totalmente segmentada Las fases son IF REN DIS EX WB (IS se divide en REN+DIS). En REN se renombran registros lógicos por físicos (desaparecen WAR, WAW) Desenrollar en un procesador con algoritmo de planificación dinámica no aumenta mucho las prestaciones (al revés, se corre riesgo de que se agoten las R.S.) Calcular: a) Número de CDB enteros y FP para que no haya bloqueos estructurales. b) Renombrar los registros para eliminar falsas dependencias. ¿Qué ocurre con la segunda iteración (registro R1)? c) Dibujar el cronograma, calcular el IPC y el número de ciclos por elemento del vector procesado. d) Hallar el número de R.S. de cada tipo que se necesitan. ¿Qué ocurre si hubiera otras instrucciones con RAW tras la ADDD; ej. MULTD F4, F4, F4)? Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 33 e) ¿Qué ocurre si m=5? ¿Y si la fase IF tiene una ventana de 8 instrucciones con acceso a BTB en todas ellas? f) Calcular la aceleración respecto de la máquina ideal (IPC=5), si el porcentaje de fallos de la BTB es 3% y 5%. Proponer algunos mecanismos de penalidad de fallo de predicción, y calcular la nueva aceleración. g) Analizar el caso de tener en cuenta los accesos caché de datos de 64 bytes/línea. Calcular nº búferes de carga necesarios. h) ¿Qué ocurre si la primera instrucción fuera Loop: LD F0, 8(R1)? (se deja como ejercicio, ahora el bucle no sería paralelizable y habría una dependencia real en la memoria entre un Store de una iteración y un Load de la siguiente) Suponer BTB que siempre acierta. for (i=N ; i>0 ; i--) x[i] = x[i] +s; Loop: LD F0, 0(R1) ADDD F4, F0, F2 SD 0(R1), F4 SUBI R1, R1, 8 BNEZ R1, Loop Dpto. Arquitectura y Tecnología de Computadores. // F2←s ; R1← &x[N] ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 34 1.2. Implementación de Proc. Superencadenados • No complejidad desde el p de v de la arquitectura sino de la tecnología. Grado n. • La misma UF se supersegmenta y vale para n instrucciones (no hay que replicarla). • Problemas: > Se necesitan latches entre las microetapas (registros temporales de cadena) para independizarlas y permitir tener varias instrucciones en la misma etapa. Esto provoca que se alargue el tiempo total de la instruc. y un poco el espacio requerido por el hw. Latches (reg Temp.) τreloj τreloj Superencaden. IF1 Superescalar IF2 τetapa IF ID1 ID2 EX1 EX2 Etc. Diferencia ID EX Etc. > Periodo de reloj a mínimos => surgen problemas con el clock skew: desfases de la señal de reloj en distintas partes del procesador (máximo si es ida y vuelta de una señal). Ejemplo el Pentium 4 tiene dos fases que no hacen nada, sólo amplifican la señal para llevarla o conducirla (fases “Drive”) de un punto a otro del chip. Esto sucederá cada vez más con los superencadenados más “agresivos”. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 35 > Número de ciclos (del reloj acelerado) de bloqueo crece ahora. Idem con las penalidades de fallo de caché, de fallo de predicción de BTB, etc. Ejemplos: Superescalar Load ALU Superencaden. Load ALU Bloqueo (Latencia de acceso a memoria) por dependencia RAW IF IF1 ID EX ME WB IF ID - EX IF2 ID1 ID2 EX1 EX2 M1 M2 IF1 IF2 ID1 ID2 - - - M1 M2 τetapa ME τreloj WB1 WB2 EX1 EX2 M1 Superencaden. Salto Instr predicha 1 Instr predicha 2 Instr predicha 3 Instr predicha 4 Instr predicha 5 Instr correcta IF1 IF2 ID1 ID2 EX1 EX2 IF1 IF2 ID1 ID2 EX1 IF1 IF2 ID1 ID2 IF1 IF2 ID1 IF1 IF2 WB M2 WB1 WB2 Ejemplo: Fallo de BTB: WB1 WB2 ABORTAR: 5 CICLOS DE PENALIDAD τreloj IF1 IF1 IF2 ID1 ID2 EX1 EX2 M1 M2 WB1 WB2 Superescalar Salto Instr predicha 1 Instr predicha 2 Instr correcta IF ID EX IF ID Dpto. Arquitectura y Tecnología de Computadores. IF ME WB ABORTAR: SÓLO 2 CICLOS DE PENALIDAD IF ID EX ME τetapa WB ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 36 • Lo anterior reduce mucho las prestaciones de un superencadenado (si tiene planif dinámica es el problema principal en cuanto a ciclos perdidos). Se intentan reducir al máximo: mayores cachés, algoritmos de predicción más sofisticados, etc. Y se intentan recortar tales penalidades: ej. UltraSPARC III tiene un búfer que guarda las instrucciones siguientes para el caso de predicción de un salto como tomado: si falla la predicción, se recogen del búfer las instrucc. de la rama no tomada, y no se gasta la penalidad de buscarlas (se empieza por la fase ID1 directamente). • En general, las etapas con circuitos secuenciales (IF, MEM, IS) se supersegmentan mucho; mientras que las combinacionales (EX de INT) apenas se supersegmentan. • Conclusión: el CPI de superencadenado es mucho mayor que el de superescalar. Ejemplo: Pentium 4 / Pentium III: Pentium III Pentium 4 Nº fases 11 22 Frecuencia para la misma tecnología 1.5 GHz 2.5 GHz Prestaciones relativas SPEC INT2000 1 (1GHz) 1.26(1.7GHz) 1.45(2GHz) Prestaciones relativas SPEC FP2000 Dpto. Arquitectura y Tecnología de Computadores. 1 (1GHz) P4 / PIII 2 1.667 CPI de P4 es 1.34 mayor 1.85(1.5GHz) 2.22(2GHz) ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 37 Diferencias Superescalares vs VLIW MÁQUINAS SUPERESCALARES Deben decodificar una secuencia de instrucciones, comprobar que son independientes y pueden emitirse a la vez según las reglas de emisión. Organización del código no suele existir. Balanceo de instr. con respecto a UF en tiempo de ejecución (peor, ventana de instr. reducida). Cuello de botella en ID o IS: proporcional a m2 tamaño de los programas es menor. Código generado puede ser compatible con otras máquinas, tanto escalares como superescalares Dpto. Arquitectura y Tecnología de Computadores. MÁQUINAS VLIW Etapas IF e ID van a ser más simples (no hacer comprobación de depcias o criterios). Organización del código y balanceo de instr. con respecto a UF en tiempo de compilación (mejor, ventana de instr. que “ve” el compilador es infinita) La dificultad de ID o IS la resuelve el compilador. tamaño de los programas es mayor (algunos slots quedan vacíos, desenrollado masivo). Código generado no suele ser compatible con otras máquinas (incluso en otras versiones de VLIW tampoco). ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 38 Máquinas Superescalares vs Superpipeline MÁQUINAS SUPERESCALARES Necesitan replicar UF para poder ejecutar varias instr. en el mismo ciclo paralelismo espacial de UF Penalidades y c.bq. en ciclos menores MÁQUINAS SUPERPIPELINES UF de estarán supersegmentadas paralelismo temporal de UF Penalidades o c.bq. en ciclos altísimas (no dejarse engañar por los GHz) latches entre microetapas => ν (superenc.) nunca será n * ν (superescalar) Más problemas con el clock skew • Lo normal es tener combinadas las mejoras de ambas soluciones. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 39 Comparativa prestaciones superescalar-superencadenado • Ciclos que tarda un fragmento de código (saltos “rompen” la ejecución) • N instrucciones, K etapas Encadenado (CPI ideal, 0 c. bq.) K ETAPAS Instr 1 Instr 2 Instr 3 Instr 4 1 2 K IF ID EX M WB IF ID EX M WB IF ID EX M WB Total : K + N –1 ciclos Dpto. Arquitectura y Tecnología de Computadores. WB N-1 ciclos ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 40 Superescalar (CPI ideal, 0 c. bq.) K ETAPAS m m m Instr 1 Instr 2 Instr 3 Instr 4 Instr 5 Instr 6 Instr 7 Instr 8 Instr 9 1 IF IF IF 2 ID ID ID IF IF IF … EX EX EX ID ID ID IF IF IF … M M M EX EX EX ID ID ID K WB WB WB M M M EX EX EX WB WB WB M WB M WB M WB (N-m)/m ciclos Total : K + (N –m)/m = K + N /m - 1ciclos Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 41 SuperPipeline(CPI ideal, 0 c. bq.) K ETAPAS, K*n microetapas 1 Instr 1 Instr 2 Instr 3 Instr 4 Instr 3 IF1 - IF2 IF1 2 K ID1 - ID2 EX1- EX2 M1 - M2 IF2 - ID1 ID2 – EX1 EX2 - M1 IF1 - IF2 ID1 - ID2 EX1- EX2 IF1 IF2 - ID1 ID2 – EX1 IF1 - IF2 ID1 - ID2 WB1-WB2 M2 - WB1 WB2 M1 - M2 WB1-WB2 EX2 - M1 M2 - WB1 WB2 EX1- EX2 M1 - M2 WB1-WB2 (N-1)/n ciclos, N-1 microciclos Total : K + (N –1)/n ciclos Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 42 Aceleración Superescalar y Superpipeline. • Medida de prestaciones en función de lo anterior • Sea m el grado de superescalaridad de nuestra máquina. Entonces la aceleración de un superescalar respecto de un procesador básico será (suponiendo ningún c. bq.): A( m,1) = Tversiónbásica T (1,1) = = TversiónSE T ( m,1) K + N −1 ⎡ N − m⎤ K +⎢ ⎥ ⎢ m ⎥ siendo K el número de etapas de la máquina sin “supersegmentar”, N el número de instrucciones y m el grado SE. • Si llevamos el número de instrucciones a infinito, la máxima aceleración que se K + N −1 mN + m( K − 1) conseguirá será: lim A(m,1) = lim = lim =m N m − N →∞ N →∞ N → ∞ N + m( K − 1) K+ m • Sea n el grado de superpipeline (número de microetapas por etapa). La aceleración respecto a la máquina básica será (K=Nº etapas sin supersegmentar, sup. 0 c. bq.): A(1, n) = Dpto. Arquitectura y Tecnología de Computadores. Tversiónbásica T (1,1) K + N − 1 = = TversiónSP T (1, n) K + N − 1 n ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 43 • Llevando el número de instrucciones al infinito tendremos: K + N −1 nN + n( K − 1) ( 1 , ) A n = = =n lim lim lim N − 1 N → ∞ N + nK − 1 N →∞ N →∞ K+ n • Combinando ambas T(m,n) será los K ciclos de la máquina básica para las primeras m instrucciones y paras las N-m instrucciones restantes iremos terminando a razón de 1 por ciclo de reloj. Por tanto (suponiendo ningún c. bq.): m· n A(m, n) = Tversiónbásica T (1,1) = = TversiónSESP T (1, n) K + N −1 ⇒ lím A(m, n) = m·n ⎡ N − m⎤ N →∞ K+⎢ ⎢ m·n ⎥⎥ • Si m=n=4, y tenemos 1 salto cada 12 instrucciones, que nos rompe el límite, tendremos que la aceleración entre superescalar y superpipeline será ligeramente mayor que 2, ganándole la superescalar a la superpipeline en las mismas condiciones. Pero si K=9 (¡superencadenado con 36 microetapas!), la aceleración de cada frag. es pobre: Fragm. 12 instr. Superescalar m=4 Superencadenado n=4 Comp. K=5 A=16/(5+8/4)=2.29 A=16/(5+11/4)=2.06 10.7% K=9 A=16/(9+8/4)=1.45 A=16/(9+11/4)=1.36 6.8% Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 44 Máquinas reales con ILP (Superescalares, etc.) Intel Pentium Pro (válido para PII, PII en instr enteras). m=3, RISC Core. 2 UF Int, 1 UF FP, 3 UF para acc a mem. 20 R.S. compartidas. ROB (especulación). Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 45 Power PC 620 (Motorola + IBM). - Registros y buses de 64 bits. Superescalar de grado 4, con algor. de Tomasulo y 6 UF(XS0,XS1,MCFXU, LSU, FPU and BPU). R.S. separadas por UF - Similar a DLX con Tomasulo: Etapas IF, ID, IS, EX, CM (especulación) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 46 Alpha 21264 (Digital, ahora COMPAQ) - 80 Registros INT de 64 bits. 72 Reg FP (es como un pequeño caché) - Superescalar de grado m=4 (Los anteriores Alpha eran muy supersegm. y estáticos) - Primero renombran reg. Luego, R.S. (Integer y FP queue) se quedan a la espera de leer operandos. Cuando están disponibles, los leen (etapa posterior, no hay bypass CDB) - Los bancos de registros enteros están duplicados para permitir 4 UF enteros trabajando en paralelo. Se gasta un ciclo de reloj en actualizar ambos bancos. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 47 Microfotografías de procesadores reales con ILP Intel Pentium 4 (2001) Alpha 21264 (1999) • Decode + µcode ocupa mucho • UF (Int+FP) muy poco • Out of Order control+Scheduling: Mucho • Mem control+L1+L2+Trace Cache+System Interf.: casi el 50% del chip • Decode ocupa tan poco que no está puesto. • UF (Int+FP) muy poco. Registros mucho • FP, Integer Map and queues (R.S.) grande • Mem control+BIU+Bus Interf. Unit+ Instr. Fetch +L1(64KB datos, 64KB instr):casi 60% Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 48 1.3 Paralelismo de instrucciones disponible: programas enteros, científicos y multimedia. • Explotar más ILP => ¿ límite ILP del software? && ¿Máquina realizable? • Realidad: grado m superescalaridad no ha aumentado en los últimos años. • ¿Tiene sentido implementar más grado de superescalaridad? • ¿Qué factores limitan el paralelismo extraíble? o Balanceo de instrucciones. Evitarlo, añadiendo más UF (en el caso extremo m UF de cada tipo para que no haya problemas), aumenta el tamaño del chip considerablemente, mientras se desperdician transistores, cuando un proceso no sólo utiliza ciertas UF (p ej si es programa INT no usará las UF FP). o Dependencias reales (recordar límite del flujo de datos data-flow limit). El algor. Tomasulo las oculta al principio, pero las colas se llenan ⇒ bloqueo o Acierto en la predicción de saltos. BTB cada vez más sofisticada, compleja y grande. o Accesos a memoria de datos (caché): Ancho de banda altísimo, latencia de acceso no decrece casi, muchas dependencias en memoria... Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 49 Estudio de ILP según recursos tmcatv FP doduc fpppp ILP ideal ILP realizable li INT espresso gcc 0 20 40 60 80 ILP ideal (con simulador usando una traza) • ventana de infinitas instrucciones • predicción saltos perfecta • Toda dirección Ld/ST conocida • Infinitas UF • Duración toda UF=1 ciclo • Cache perfecto 100 % acierto • Infinita planificación estática y dinámica • SOLO LIMITA LAS PRESTACIONES EL DATA FLOW LIMIT 100 120 140 160 Instr emitidas/ciclo ILP para procesadores “realizables” • • • • • • • • Ventana de 64 instrucciones Predicción saltos: BTB 1K entradas Toda dirección Ld/ST comparada dinámicam. Emite hasta 64 inst/ciclo sin reglas emisión Duración toda UF=1 ciclo Cache perfecto 100 % acierto (64 puertos) Planificación dinámica: 64 etiq FP y 64 INT DEMASIADO OPTIMISTA... o Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 50 • Recordar: o Programas INT más algorítmicos (más RAW entre instrucciones). o Programas FP: bucles de vectores, procesador vectorial podría explotar ese ILP. • Pero dificultad hardware proporcional a m2: (muchos factores de la fase IS) • Número de comparadores en ID o IS para la detección de dependencias: (HP 8600 tiene pensados 7000 comparadores en sus R.S.) o Cálculo teórico: ALU1 Rd1, Rfa1, Rfb1 ALU2 Rd2, Rfa2, Rfb2 ... ALUm Rdm, Rfam, Rfbm Comparar Rd1 con Rfa2, Rfb2, ... Rfam, Rfbm, es decir 2(m-1) comparaciones Comparar Rd2 con Rfa3, Rfb3, ... Rfam, Rfbm, es decir 2(m-2) comparaciones. etc. j =m i =m−1 2 2 ( m − j ) = 2 i = m − m , crece orden cuadrático. ∑ Total Nº comp.= ∑ j =1 i =1 Idem Tomasulo: número CDB’s × número R.S. ; (ambos son proporcionales a m) Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 51 • Número de bypasses (en máquinas sin planificación dinámica, VRm2=m2), INTa → INTa INTa → INTb INTb → INTa INTb → INTb IF ID EX-INTa ME WB IF ID EX-INTb ME WB IF ID EX-INTa ME WB IF ID EX-INTb ME WB IF ID EX-INTa ME WB IF ID EX-INTb ME WB IF ID EX-INTa ME WB IF ID EX-INTb ME WB o El acceso a caché y detección dependencias en memoria se convierte en cuello de botella. • Para m alto la complejidad del superescalar lo hace inabordable actualmente. (por esto el VLIW es la otra alternativa que no debe olvidarse). • Por otro lado están otras técnicas: o Procesador consistente en una superRAM con “pequeña” unidad de ejecución. o Superespeculación : intentar adivinar la dirección de acceso a memoria antes de tener el valor del registro índice, etc. o Otra idea: VLIW con “code morphing” (traducción dinámica de otros ISA’s). o Computación reconfigurable: para programas con mucho ILP, se puede reconfigurar (FPGA) una parte del micro para que se “adapte” al programa Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 52 Simultaneous Multithreading, SMT - Un procesador ejecuta a la vez varios hilos. - Sólo replica los registros y el estado. - Intenta aprovechar los recursos (UF que están ociosas para un hilo), ejecutando otro hilo. - Con algoritmo de Tomasulo, y renombrando registros de forma que los dos hilos tienen registros físicos siempre diferentes, aunque se ejecutan en las mismas UF. - Caché instr. debe buscar dos trazas - Importante para que las prestaciones suban: balanceo de hilos (gestión del S.O.). - Pentium 4 HT (Hyper-Threading: nombre comercial) - NOTA: Procesador Dual y Programas paralelos: Tema 3, ASP2. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 53