Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 27
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 28
Repaso de Algoritmo Tomasulo (Planif. dinámica)
1 2 3
ALU INT MULT
Del caché de datos
Caché de instrucciones
Buffers de carga Instrucciones Registros ETQ
Buffers almacenamiento
Buses de operando
Bus de operación
Estaciones de reserva
Bus Común de Datos (CDB)
1 2 3 4 5 6
123
12
Al caché de datos
OTRAS U.F.
IF
EX
EX (MEM)
WB
IS
EX (MEM)
IS
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 29
Implementación de Superescalares Planif. dinámica Todo similar al Algoritmo de Tomasulo
Muchos más Buffers de carga
123
ALU INT MULT
Del caché de datos
Caché de instrucciones
Instrucciones Registros ETQ
Muchos más búferes almacenamiento
Buses de operando
Bus de operación
Muchas más Estaciones de reserva
Buses Comunes de Datos (CDB)
1 2 3 4 5 6
123
12
Al caché de datos
más U.F. INT
IF
EX
EX (MEM)
WB
IS
EX (MEM)
IS
U.F. FP
Todo similar para instr. FP
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 30
• 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 31
• 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 32
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.)
IF 16 bytes por ciclo
16 bytes DEC
3 instr. por ciclo
6 µops REN (RAT)
y DIS 3 µops por
ciclo
20 R.S. EX 5 U.F.
FP+INT+MEM
40 ROB
WB 3 resultados
por ciclo Alinea-miento
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 33
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 34
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; // F2←s ; R1← &x[N]
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. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 35
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.
Diferenciaτetapa
IF ID EX Etc.
IF2 EX1IF1 ID2ID1 Etc.
Superescalar
Superencaden.EX2
Latches (reg Temp.)τrelojτreloj
> 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 36
> 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:
τetapa IF ID EX ME WB
IF ID EX ME WB
IF2 EX1IF1 ID2ID1 EX2 M2 M1 WB2WB1
IF2 EX1IF1 ID2ID1 EX2 M2M1 WB2WB1
τreloj
- - -
SuperescalarLoadALU -
Superencaden.LoadALU
Bloqueo (Latencia de acceso a memoria) por dependencia RAW
ABORTAR: SÓLO 2 CICLOS DE PENALIDAD
IF ID EX ME WB
τetapa IF ID EX ME WB
IF ID
IF2 EX1IF1 ID2ID1 EX2 M2M1 WB2WB1
τreloj
SuperescalarSalto
Instr predicha 1Instr predicha 2
Instr correcta
Superencaden.Salto
Instr predicha 1Instr predicha 2Instr predicha 3Instr predicha 4Instr predicha 5
Instr correcta
IF2 EX1IF1 ID2ID1
IF2IF1 ID2ID1
IF2IF1 ID1
IF2IF1
IF1
IF2 EX1IF1 ID2ID1 EX2 M2M1 WB2WB1
ABORTAR: 5 CICLOS DE PENALIDAD
IF
Ejemplo: Fallo de BTB:
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 37
• 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 P4 / PIII
Nº fases 11 22 2 Frecuencia para la misma tecnología 1.5 GHz 2.5 GHz 1.667 Prestaciones relativas SPEC INT2000 1 (1GHz) 1.26(1.7GHz)
1.45(2GHz) CPI de P4
es 1.34 mayor
Prestaciones relativas SPEC FP2000 1 (1GHz) 1.85(1.5GHz) 2.22(2GHz)
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 38
Diferencias Superescalares vs VLIW MÁQUINAS SUPERESCALARES MÁQUINAS VLIW Deben decodificar una secuencia de instrucciones, comprobar que son independientes y pueden emitirse a la vez según las reglas de emisión.
Etapas IF e ID van a ser más simples (no hacer comprobación de depcias o criterios).
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).
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)
Cuello de botella en ID o IS: proporcional a m2
La dificultad de ID o IS la resuelve el compilador.
tamaño de los programas es menor. tamaño de los programas es mayor (algunos slots quedan vacíos, desenrollado masivo).
Código generado puede ser compatible con otras máquinas, tanto escalares como superescalares
Código generado no suele ser compatible con otras máquinas (incluso en otras versiones de VLIW tampoco).
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 39
Máquinas Superescalares vs Superpipeline MÁQUINAS SUPERESCALARES MÁQUINAS SUPERPIPELINES
Necesitan replicar UF para poder ejecutar varias instr. en el mismo ciclo
UF de estarán supersegmentadas
paralelismo espacial de UF paralelismo temporal de UF Penalidades y c.bq. en ciclos menores 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 40
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.)
1 2 K Instr 1 IF ID EX M WB Instr 2 IF ID EX M WB Instr 3 IF ID EX M WB Instr 4 WB
Total : K + N –1 ciclos
K ETAPAS
N-1 ciclos
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 41
Superescalar (CPI ideal, 0 c. bq.)
1 2 … … K
Instr 1 IF ID EX M WB Instr 2 IF ID EX M WB Instr 3 IF ID EX M WB Instr 4 IF ID EX M WB Instr 5 IF ID EX M WB Instr 6 IF ID EX M WB Instr 7 IF ID EX M WB Instr 8 IF ID EX M WB Instr 9 IF ID EX M WB
Total : K + (N –m)/m = K + N /m - 1ciclos
K ETAPAS
(N-m)/m ciclos
m
m m
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 42
SuperPipeline(CPI ideal, 0 c. bq.)
1 2 K
Instr 1 IF1 - IF2 ID1 - ID2 EX1- EX2 M1 - M2 WB1-WB2 Instr 2 IF1 IF2 - ID1 ID2 – EX1 EX2 - M1 M2 - WB1 WB2 Instr 3 IF1 - IF2 ID1 - ID2 EX1- EX2 M1 - M2 WB1-WB2 Instr 4 IF1 IF2 - ID1 ID2 – EX1 EX2 - M1 M2 - WB1 WB2 Instr 3 IF1 - IF2 ID1 - ID2 EX1- EX2 M1 - M2 WB1-WB2
Total : K + (N –1)/n ciclos
K ETAPAS, K*n microetapas
(N-1)/n ciclos, N-1 microciclos
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 43
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.):
⎥⎥⎤
⎢⎢⎡ −
+
−+===
mmNK
NKmT
TT
TmAversiónSE
icaversiónbás 1)1,()1,1()1,(
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 conseguirá será: m
KmNKmmN
mmNK
NKmA limlimlimNNN
=−+−+
=−
+
−+=
∞→∞→∞→ )1()1(1)1,(
• 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.):
nNK
NKnT
TT
TnAversiónSP
icaversiónbás
11
),1()1,1(),1(
−+
−+===
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 44
• Llevando el número de instrucciones al infinito tendremos:
nnKN
KnnN
nNK
NKnA limlimlimNNN
=−+−+
=−
+
−+=
∞→∞→∞→ 1)1(
11),1(
• 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
nm·1 por ciclo de reloj. Por tanto (suponiendo ningún c. bq.):
nmnmA
nmmNK
NKnT
TTT
nmA límNPversiónSES
icaversiónbás ·),(
·
1),1()1,1(),( =⇒
⎥⎥⎤
⎢⎢⎡ −
+
−+===
∞→
• 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 45
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 46
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 47
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 48
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 49
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 50
Estudio de ILP según recursos
0 20 40 60 80 100 120 140 160
gcc
espresso
li
fpppp
doduc
tmcatv
ILP idealILP realizable
ILP ideal (con simulador usando una traza) ILP para procesadores “realizables” • 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
• 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
FP
INT
Instr emitidas/ciclo
Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 51
• 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.
Total Nº comp.= mmijmmi
i
mj
j−==− ∑∑
−=
=
=
=
21
112)(2 , crece orden cuadrático.
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 52
• 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-INTb ME WB
IF ID EX-INTa ME WB
IF ID EX-INTa ME WB
IF ID EX-INTb ME WB
IF ID EX-INTb ME WB
IF ID EX-INTa 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 53
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.