ARQUITECTURA DE COMPUTADORES Enero de 2006

Anuncio
ARQUITECTURA DE COMPUTADORES
Enero de 2006
EJERCICIO 1: (3 puntos)
En un procesador segmentado lineal de 6 etapas (CP, B, D/L, ALU, M, ES) se interpreta el siguiente
código:
dirección
1$:
...
2$:
...
...
bne
...
beq
...
bne
...
bne R3, 2$
...
bne R4, 1$
84
164
188
El bucle 1$ itera 5 veces
El bucle 2$ itera 100 veces
Las direcciones están expresadas en decimal
Una instrucción ocupa 4 bytes
Queremos evaluar la relación entre errores de predicción y ejecuciones ( errores/ejecuciones) para varias técnicas de predicción de sentido en instrucciones de secuenciamiento condicional. En el código
anterior nos centramos en el análisis de la capacidad de predicción de la instrucción bne R3, 2$.
Pregunta a: Se utiliza predicción fija de sentido analizando el signo del desplazamiento. Si el signo es
positivo se predice seguir en secuencia. En caso contrario se predice modificar el secuenciamiento. Calcule el cociente errores/ejecuciones.
En las siguientes preguntas se supone que el número de entradas de la tabla de historia (TH), que se
describe posteriormente, es 1024. A TH se accede utilizando los bits menos significativos de la dirección
de la instrucción y las entradas de TH están inicializadas a cero.
Pregunta b: Se utiliza predicción dinámica de sentido. Para ello, se almacena en TH el sentido de la
instrucción de secuenciamiento condicional en la ejecución previa. El autómata para actualizar una entrada de TH se muestra en la siguiente figura. Calcule el cociente errores/ejecuciones.
NT
NT
T
0
no tomar el salto
T
1
NT: salto no tomado
T: salto tomado
tomar el salto
predicción
Pregunta c: Se utiliza predicción dinámica de sentido. Para ello, se almacena en TH, de forma agregada, el sentido de la instrucción de secuenciamiento condicional en las ejecuciones previas. El autó-
Examen, enero de 2006
1
Dep. Arquitectura de Computadores
mata para actualizar una entrada de TH se muestra en la siguiente figura. Calcule el cociente errores/
ejecuciones.
NT
NT
0
T
NT
1
NT: salto no tomado
NT
2
T
no tomar el salto
T
3
T
T: salto tomado
tomar el salto
predicción
Para reducir la penalización por retardo de búsqueda se utiliza una cache de direcciones destino de salto (CDDS). La CDDS utilizada es de mapeo directo y se accede a ella utilizando los bits menos significativos de la dirección de la instrucción. El contenido de una entrada de la CDDS es un campo etiqueta
y un campo dato. El campo etiqueta permite identificar si la instrucción es de secuenciamiento y el campo dato contiene la dirección destino que se ha calculado en una ejecución previa.
En la CDDS sólo se almacena información relativa a instrucciones de secuenciamiento que calculan la
dirección destino de forma relativa a la dirección de la instrucción.
La CDDS utilizada tiene 4 entradas y están inicializadas con el valor cero. Nos centraremos en el análisis de las 3 instrucciones de secuenciamiento mostradas en el código previo, cuyas direcciones son:
84, 164 y 188. Estas tres instrucciones de secuenciamiento se ejecutan en todas las iteraciones y las
otras 2 instrucciones de secuenciamiento del código no entran en conflicto con las que se analizan.
Pregunta d: Calcule el número de veces que se utiliza la información leida de la CDDS para reducir el
retardo de búsqueda.
En un procesador segmentado, la energía media consumida por instrucción en el conjunto de etapas
CP, B y D/L es E nanojulios. Este procesador, al que denominamos de partida, determina el secuenciamiento en la etapa siguiente a D/L. Las instrucciones buscadas después de un salto, hasta que se determina el secuenciamiento, se descartan cuando llegan a la etapa D/L, inyectándose una instrucción
NOP.
Una versión mejorada del procesador de partida utiliza un predictor de sentido dinámico que acierta el
90% de las veces cuando se interpreta una instrucción de secuenciamiento condicional o incondicional
y una CDDS ideal (se encuentra información del salto el 100% de las veces).
Supondremos que el acceso al predictor de sentido y a la CDDS no consume energía. También supondremos que la instrucciones NOP inyectadas no consumen energía en las etapas posteriores a D/L.
Pregunta e: Al ejecutar un programa se mide que un 15% de las instrucciones ejecutadas son de secuenciamiento condicional o incondicional. Calcule la reducción porcentual de energía consumida, respecto del procesador de partida, en las etapas CP, B y D/L en la versión mejorada del procesador.
Las siguientes preguntas se refieren a procesadores multiciclo y/o con planificación dinámica de instrucciones.
Pregunta f: Indique, si es el caso, cuál es el riesgo de datos que se gestiona en la fase de escritura
utilizando el control de escritura en el banco de registros. Así mismo, describa la acción que se toma
sobre la instrucción origen o destino de la dependencia.
riesgo de datos
descripción de la acción
multiciclo
algoritmo marcador
algoritmo de Tomasulo
Examen, enero de 2006
2
Dep. Arquitectura de Computadores
Pregunta g: Dado un registro cualquiera del banco de registros, indique si el registro almacena, en
cualquier caso, toda la secuencia de valores que calculan las instrucciones para este registro.
toda la secuencia (SI /NO)
multiciclo
algoritmo marcador
algoritmo de Tomasulo
Pregunta h: En el algoritmo de Tomasulo una estación de reserva tiene asociada una etiqueta de forma biunívoca, que se utiliza para efectuar el renombre dinámico de registros. El número de etiquetas
es finito y en algún instante de tiempo deben reutilizarse. La pregunta es: ¿Cuándo una etiqueta puede
volver a utilizarse?. Indique cuál de las siguientes contestaciones es correcta.
a) Una vez la instrucción que tenía asociada previamente la etiqueta es emitida.
b) Una vez la instrucción que tenía asociada previamente la etiqueta inicia la ejecución.
c) Una vez la instrucción que tenía asociada previamente la etiqueta finaliza la fase de escritura.
d) Ninguna de las contestaciones propuestas.
Pregunta i: Indique en cuál de los siguientes dos procesadores es de mayor utilidad el algoritmo de
Tomasulo. Justifique la contestación haciendo mención al riesgo o riesgos que se minimizan.
a) Procesador con 128 registros en el banco de registros y un compilador que asigna eficientemente los
registros a las instrucciones.
b) Procesador con 8 registros en el banco de registros y un compilador que asigna eficientemente los
registros a las instrucciones.
Un procesador que utiliza el algoritmo marcador está interpretando la siguiente secuencia de instrucciones.
instrucciones
add R6, R2, R3
sub R2, R9, R10
xor R7, R2, R12
No hay ninguna instrucción más vieja en curso de interpretación que calcule el contenido de los registros
R2, R9, R10, R12, R6 y R7. Sin embargo, el contenido del registro R3 lo está calculando una instrucción.
Suponemos que disponemos de 4 ramificaciones ALU que tienen caminos independientes de lectura y
escritura al banco de registros.
Pregunta j: Indique si alguno de los siguientes diagramas temporales es correcto. Justifique la contestación haciendo mención del riesgo o riesgos que se gestionan de forma indebida.
ciclo
ciclo
U.F:
Instrucción
1
2
3
4
5
6
1
add R6, R2, R3
sub R2, R9, R10
xor R7, R2, R12
...
V/L
V/L
V/L
ALU
E
...
ALU
R
R
E
...
D/L
V/L
V/L
V/L
2
3
V/L
7
ALU
8
E
A)
ciclo
1
2
3
4
5
6
1
2
3
4
5
6
...
V/L
V/L
V/L
ALU
E
...
V/L
V/L
V/L
ALU
E
...
ALU
R
R
E
...
ALU
E
...
D/L
ALU
E
...
D/L
V/L
V/L
ALU
E
B)
C)
Los acrónimos R, V/L indican respectivamente, esperar la concesión de escritura y esperar en la entrada de la ventana de instrucciones a que se le conceda el permiso de inicio de ejecución. Por último, el
acrónimo D/L indica emisión si se cumplen las condiciones e inicio de ejecución si se le concede el permiso.
Examen, enero de 2006
3
Dep. Arquitectura de Computadores
EJERCICIO 2: (3.5 puntos)
Un procesador (PR 1) segmentado lineal de 6 etapas, las típicas CP/B/DL/A/M/E , interpreta el código
(C 1) que es el bucle de 16 instrucciones siguiente:
1.-
r2 := r1 - r2
9.-
nop
2.-
r3 := r3 + r1
10.-
r9 := r5 - 1
3.-
nop
11.-
r1 := r1 -2
4.-
nop
12.-
M[r3+0] = r4
5.-
r4 := r2 + r4
13.-
nop
6.-
r5 := r6 + r7
14.-
si (r9) saltar a 1.-
7.-
nop
15.-
nop
8.-
nop
16.-
nop
El PR1 no tiene lógica para bloquear y tampoco tiene ningún cortocircuito, y sabemos que el resultado
de la ejecución de C1 sería incorrecto si se elimina o cambia de posición cualquiera de sus 16 instrucciones.
RESPONDA EN LA HOJA DE RESPUESTAS :
Pregunta a: Deduzca si puede o no puede escribir y leer un registro en el mismo ciclo.
Deduzca la duración de cada riesgo de secuenciamiento (RdS) y en función de la distancia, la de cada
riesgo de datos (RdD) . Calcule cuántos ciclos tarda cada iteración del bucle. Calcule el CPI.
Pregunta b: Deduzca cuál es el cortocircuito que debemos añadir al PR 1 para que interprete correctamente un código (C2) con 13 instrucciones, que es el que resulta al retirar del C 1 las tres instrucciones numeradas como 7.- 8.- y 9.Pregunta c: Deduzca cuál es el cortocircuito que debemos añadir al PR 1 para que interprete correctamente un código (C3) con 15 instrucciones, que es el que resulta al retirar del C1 la instrucción numerada como 13.Añadimos al PR 1 lógica para bloquear y también los dos cortocircuitos deducidos en los dos apartados
anteriores, y llamamos PR2 a este nuevo procesador, que tiene frecuencia de reloj de 2 Ghz.
Interpreta el código (C4) que es el bucle de 8 instrucciones que resulta al retirar de C1 todas las instrucciones nop.
Pregunta d: Presente el grafo de dependencias de C4. Presente el cronograma de interpretación de
una iteración completa .
Pregunta e: Calcule cuántos ciclos se bloquea por RdS y cuántos por RdD. Calcule el CPI.
Pregunta f: Deduzca cuáles son las dos instrucciones de C4 cuyo orden debe intercambiarse para
conseguir que los RdD no provoquen ningún ciclo de bloqueo. Resulta el código C5.
Añadimos al PR2 lógica para predicción fija de saltos “salta siempre” y un sumador para calcular el nuevo CP en la tercera etapa, y llamamos PR3 a este nuevo procesador.
Pregunta g: Calcule cuántos ciclos se bloquea PR3 por RdS y cuántos por RdD cuando interpreta C4.
Calcule el CPI.
Pregunta h: Calcule el tiempo de ciclo del PR3, sabiendo que para interpretar C5 tarda el mismo tiempo que tarda el PR2 para interpretar C4.
Pregunta i: Calcule cuántas iteraciones del bucle C5 debe interpretar el PR 3 para tardar 3 x 10-5 s.
Examen, enero de 2006
4
Dep. Arquitectura de Computadores
EJERCICIO 3: (3.5 puntos)
Un processador segmentat multicicle amb 1.9 GHz de freqüència de rellotge està segmentat en les següents etapes:
cicles
1
2
3
4
etapes
PC
B
D
L
5
6
7
8
ALU
E
S
M1
M2
E
X1
X2
X3
X4
9
Eop, Bcond
Load, Store, FLoad, FStore
E
Fop, FBcond
Hi han 2 Bancs de Registres (Enters i Punt Flotant). Cada Banc té 2 camins de lectura i 2 camins d'escriptura. Cada Banc permet també l'escriptura i lectura d'un mateix registre en un cicle de rellotge.
El camí de dades només diposa de curtcircuits per reduir la latència efectiva d'escriptura al banc de registres Enters.
Els riscs de dades i de seqüenciament es detecten en l'etapa D. Quan es detecta un risc de dades, es
retenen les instruccions en les etapes D, B i PC fins que desapareix la condició del risc. Només les instruccions amb operant font enter poden obtenir-lo mitjançant curtcircuit durant l'etapa L.
Un risc de seqüenciament es resol descartant les instruccions buscades fins que s'actualitza el Comptador de programa amb l'adreça de la instrucció que segueix a un salt condicional (cicle 5).
Aquest processador executa el programa P:
for (i=0; i<N; ; i++)
{
p = X[i];
*p = *p + s;
}
for: Load
FLoad
FAdd
FStore
Add
Sub
fi: bne
r1,0(r0)
f1,0(r1)
f3,f1,f2
f3,0(r1)
r0,r0,#8
r2,r2,#1
r2,for
;i1 r1 ← mem[r0+0]
;i2 f1 ← mem[r1+0]
;i3 f3 ← f1 + f2
;i4 mem[r1+0] ← f3
;i5 r0 ← r0 + 8
1
;i6 r2 ← r2 - 1
3
;i7 si (r2≠0) salta a for
Valors inicials:
r0 = @x[0]; r2 = N; f2 = s
Pregunta a: Dibuixa el graf de dependències veritables, etiquetant els arcs del graf amb el retard productor-consumidor.
Pregunta b: Indica per cada instrucció d'una iteració el cicle en el que el control de la segmentació detecta que està Llesta.
Calcula el rendiment en MIPS quan el processador executa el programa.
El compilador desenrotlla el cos del bucle 2 vegades abans de planificar les instruccions. Suposa que
no hi ha dependències de dades degut a posicions de memòria entre instruccions de distintes iteracions.
Pregunta c: Mostra el codi resultat després de desenrotllar, reordenar i renombrar registres i constants.
Pregunta d: Per cada instrucció d'una iteració del codi resultat, indica el cicle en que el control detecta
que està Llesta.
Calcula el rendiment en MIPS del codi resultat i el Guany obtingut.
Pregunta e: Dedueix el nombre mínim de vegades que cal desenrotllar el cos del bucle per tal que,
després de planificar-lo, el processador no detecti riscs per dependències de dades.
Pregunta f: Calcula el rendiment MIPS suposant que es desenrotlla N vegades el cos del bucle (N es
el nº de iteracions).
Examen, enero de 2006
5
Dep. Arquitectura de Computadores
Es vol modificar la gestió dels riscs WaW (escriptura després d’escriptura). En lloc de bloquejar en l'etapa D la instrucció destí de dependència per forçar que les escriptures al registre comú es facin en ordre,
el control de la segmentació permetrà que la instrucció destí inicii l'execució i anul•larà l'escriptura de la
instrucció origen de la dependència. La decisió d'inhibir l'escriptura es pren quan la instrucció origen
ocupa l'etapa E.
Pregunta g: Mostra, per a qualsevol programa, tots els possibles casos en que un risc WaW en registres enters es pot resoldre anul•lant escriptures.
Per gestionar els riscs WaW de la forma descrita, es proposa modificar la circuiteria que controla les
escriptures al banc de registres. La figura mostra el circuit corresponent al banc de registres Enters.
D
L
ALU
E
RdaE
RdD
vaE
vaD
PEa
CTRL_PE
vmE
vmD
PEm
RdmE
L
@
M1
M2
E
La part superior propaga l'identificador del registre destí associat a la ramificació ALU, la part inferior
correspon a la ramificació MEM. Per cada camí d'escriptura, des de l'etapa D s'injecta l'identificador del
registre destí (RdD) i el bit de validesa (vaD i vmD).
El mòdul seqüencial CTRL_PE observa cada cicle la petició d'escriptura de cada ramificació (RdaE-vaE,
RdmE-vmE) i calcula els senyals de permís d'escriptura (PEa, PEm).
Pregunta h: Utilitzant comparadors, portes lògiques i registres, dissenya el mòdul CTRL_PE.
Examen, enero de 2006
6
Dep. Arquitectura de Computadores
Descargar