ARQUITECTURA DE COMPUTADORES Junio de 2006 El

Anuncio
ARQUITECTURA DE COMPUTADORES
Junio de 2006
El examen es sin apuntes ni libros, sin teléfonos celulares y sin PDA.
Duración: 4 horas como máximo.
Publicación de notas : 27 - junio - 2006
Revisión : 29 - junio - 2006 de 10 a 11 h y de 16 a 17 h
Lugar: C6E106
EJERCICIO 1: (1.5 puntos)
Tenemos tres clases de bloques, A B y C, de lógica combinacional, cuyos retardos respectivos son
t(A) = 50 ns. t(B) = 90 ns. t(C) = 80 ns. De cada clase de bloque disponemos de cualquier cantidad.
Tenemos registros cuyo retardo es de 10 ns.
Con estos elementos se realiza cierta operación, que necesita usarlos siguiendo este patrón:
A B A C B
Queremos realizar una sucesión ilimitada de estas operaciones, que no tienen ninguna dependencia
entre ellas.
RESPONDA EN LA HOJA DE RESPUESTAS, con una breve justificación.
Pregunta a: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de
ciclo en nanosegundos, si usamos una Unidad Funcional no segmentada que tiene 5 bloques.
Pregunta b: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de
ciclo en nanosegundos, si usamos una Unidad Funcional segmentada no lineal con tres etapas, en
cada una de las cuales ponemos uno de los bloques disponibles.
Pregunta c: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de
ciclo en nanosegundos, si usamos una Unidad Funcional segmentada lineal con cinco etapas, en cada
una de las cuales ponemos uno de los bloques disponibles, y son iguales entre sí los de la 3ª y la 1ª, y
los de la 5ª y la 2ª.
Pregunta d: Cierta Unidad Funcional segmentada no lineal utiliza un reloj de 4 MHz, y tiene una productividad de 1,6 millones de operaciones por segundo cuando realiza una sucesión ilimitada de operaciones iguales e independientes entre sí.
Sabemos que, desde que comienza la 2ª operación, en cada ciclo hay siempre DOS operaciones sucesivas usando esta Unidad Funcional simultáneamente.
Calcule la secuencia de latencias de inicio, que está formada por dos valores diferentes.
Calcule el número de ciclos que dura cada operación.
Examen, junio de 2006
1
Dep. Arquitectura de Computadores
EJERCICIO 2: (3 puntos)
En el lenguaje máquina de un procesador podemos distinguir el siguiente formato, clases y tipo de instrucciones:
Campos de la instrucción
31
Clases
...
26 25 ... 21 20 ... 16 15 ... 12 11 ... 5
4 ... 0
Tipo
6
5
5
4
7
5
ENT
RR
CoOp
ra
rb
0 ... 0
func
rc
IS
BR
CoOp
ra
JMP
CoOp
ra
0 ... 0
0 ... 0
Cálculo
Saltos relativos
literal
rb
Descripción
Saltos indexados
En la siguiente tabla se describe la semántica de cada tipo de instrucción:
Clase Tipo
Descripción
Operandos
Especificación semántica
ENT
RR
cálculo
ra
rb
rc
IS
BR
llamada a
procedimiento
ra
literal
incondicional
ra
literal
CPv = CPv + 4 x ExtSig (literal) + 4
condicionales
ra
literal
if (f[rav , CoOp]) then CPv = CPv + 4 x ExtSig (literal) + 4
v
v
v
rc = F ( ra , rb )
rav = CPv
CPv = CPv + 4 x ExtSig (literal) + 4
else CPv = CPv + 4
JMP
llamada a
procedimiento
ra
indexado
ra
rb
0
rav = CPv
CPv = rbv + 4
rb
0
CPv = rbv + 4
donde el superíndice v indica el valor almacenado en el registro.
Las instrucciones de la clase ENT leen el contenido de dos registros, efectúan un cálculo y almacenan
el resultado en un registro.
Las instrucciones de tipo BR calculan la dirección destino de la siguiente forma: a la dirección de la instrucción siguiente a la de secuenciamiento se le suma el campo literal especificado en la instrucción (el
tamaño de una instrucción es de 4 bytes). Las instrucciones de secuenciamiento condicional evalúan
además el contenido de un registro. El resultado de la evaluación se utiliza para seleccionar entre seguir
en secuencia o modificar el secuenciamiento implícito. Las instrucciones de secuenciamiento de tipo
JMP suman 4 al contenido de un registro y el resultado se utiliza como dirección de la siguiente instrucción que debe interpretarse. Los dos tipos de instrucciones de secuenciamiento (BR y JMP) incluyen
instrucciones que almacenan la dirección de la instrucción de secuenciamiento en un registro especificado en la instrucción.
El lenguaje máquina también dispone de instrucciones para acceder a memoria. Ahora bien, nosotros
nos centraremos en las instrucciones que se han descrito. Para interpretar las instrucciones descritas
supondremos que el procesador utiliza la siguiente segmentación.
ciclos
1
2
3
4
5
CP
BUS
D/L
ALU
ES
La actualización de un registro del banco de registros y del registro CP en instrucciones de secuenciamiento se efectúa en el ciclo 5 relativo al inicio de interpretación.
Examen, junio de 2006
2
Dep. Arquitectura de Computadores
En la siguiente figura se muestran los elementos del camino de datos del procesador segmentado y las
conexiones necesarias para interpretar las instrucciones de la clase ENT.
CP
BUS
D/L
ALU
BUS_DL
ES
DL_ALU
ALU_ES
M1
Despl EXTSIG
MI
+4
+
dir
inst
Reloj
rb 15..5 rc
1
CP
CoOp ra
MUXImp
0
Ed BR
Rd
Lb
0
EsReg
Rb
Ra
0
1
B
1
1
0
0
1
ALU
La
M2
M3
A
EV
0
1
MUXREG
M4
0
1
0
1
EsRegDL
Dec_CoOp
JMPCall DL
BRI DL
EvalCond
EsRegALU
EvalCondES
EsRegES
B
EsReg
JMP DL
BR DL
BRCall DL
CMOV DL
JMPALU
BR ALU
JMPCall ALU
BRCall ALU
BRI ALU
CMOVALU
CMOV ES
JMP ES
JMPCall ESL
BR ES
BRI ES
BRCall
ES
La señal EvalCond toma el valor 1 cuando se cumple la condición. Las señales BR y JMP indican tipo
de instrucción. Las señales BRI, BRCall o JMPCall indican respectivamente instrucción de secuenciamiento incondicional o llamada a procedimiento de tipo BR o JMP. La señal CMOV sólo hay que utilizarla para contestar a la pregunta e) e indica instrucción de movimiento condicional. Todas estas
señales cuando se activan toman el valor 1.
En las siguientes preguntas se solicita establecer conexiones entre los elementos del camino de datos
para interpretar las instrucciones de secuenciamiento. Cuando se contesta una pregunta debe tenerse
en cuenta que las conexiones que se establezcan deben ser compatibles con las conexiones establecidas en contestaciones anteriores. Del mismo modo la contestación de la primera pregunta debe tener
en cuenta las conexiones que se muestran en el camino de datos para interpretar las instrucciones de
la clase ENT.
Pregunta a: Añada en el camino de datos anterior las conexiones necesarias para interpretar las instrucciones de tipo BR.
Pregunta b: Añada en el camino de datos mostrado previamente, exclusivamente, las conexiones necesarias para interpretar las instrucciones de tipo JMP.
Pregunta c: Especifique el control de los multiplexores MUXImp, M2, M3 y M4 teniendo en cuenta todas las instrucciones de secuenciamiento.
Examen, junio de 2006
3
Dep. Arquitectura de Computadores
En el registro de desacoplo BUS_DL se pueden distinguir en general varias señales o campos. Una de
las señales se corresponde con los bits que codifican la instrucción que se ha leido de memoria y que
se decodifica en la etapa D/L; a este campo lo denominaremos inst (ver figura). Suponga que cuando,
en un riesgo de secuenciamiento, desde la etapa BUS se inyecta una instrucción NOP sólo se actúa
sobre el campo inst. Las otras señales o campos transmiten la misma información que se transmitiría si
no se hubiera inyectado la instrucción NOP.
Pregunta d: Modifique el camino de datos para que todas las instrucciones de secuenciamiento tengan
un ciclo menos de penalización debido al riesgo de secuenciamiento. Para ello sólo puede utilizar multiplexores de 2 entradas en la etapa CP. Suponiendo que el tiempo de ciclo está determinado por la
etapa CP, la solución propuesta debe reducir el tiempo de ciclo.
Algunos procesadores disponen de instrucciones cuya operación es condicional. El objetivo de incluir
estas instrucciones en el lenguaje máquina es eliminar las instrucciones de secuenciamiento condicional en algunas secuencias de código. Con ello se pretende reducir los ciclos perdidos. Una instrucción
condicional típica es la siguiente instrucción de movimiento condicional.
• cmovge: mover si mayor igual a cero.
El formato de estas instrucciones es el especificado para la clase ENT y la semántica es la siguiente:
Clase
Descripción
ENT mov. condicional
Operandos
ra
rb
rc
Especificación semántica
if (f[rav , CoOp]) then rcv = rbv
El contenido del registro ra se evalúa utilizando la condición especificada en la instrucción. Si la condición especificada se cumple, se escribe el contenido del registro rb en el registro rc. En caso contrario
no se modifica el contenido del registro rc.
Un registro del banco de registros se puede escribir y leer, en este orden, en el mismo ciclo. Suponga
que en las instrucciones de movimiento condicional la señal EsRegDL siempre se activa en la etapa D/
L, ya que se efectúa la hipótesis de que se actualizará el registro destino.
Pregunta e: Añada al camino de datos mostrado previamente, exclusivamente, las conexiones necesarias para interpretar una instrucción de movimiento condicional. Indique la función lógica que hay que
implementar en el módulo B. Así mismo indique los ciclos perdidos, en función del resultado de evaluar
la condición, si la instrucción consumidora del resultado producido por una instrucción de movimiento
condicional está a distancia 1, 2 o 3.
Examen, junio de 2006
4
Dep. Arquitectura de Computadores
EJERCICIO 3: (2 puntos)
Tenemos que ejecutar el código siguiente :
valores iniciales: r0 = 100, r1 = 200, r2 = 5
1
2
3
4
5
6
7
r4 := M[r0 + 0]
r3 := r2 - M[r0 + 4]
r0 := r0 + 8
r5 := r3 - r4
M[r1 + 0] := r5
r1 := r1 - 4
saltar a 1 si (r1 > r0)
LD
OPRM
OP
OP
ST
OP
BRC
ra : = M[rb + cte]
rc := ra op M[rb + cte]
rc := ra op cte
rc := ra op rb
M[rb + cte] := ra
rc := ra op cte
saltar si condición (ra , rb)
Tenemos un procesador segmentado lineal con 7 etapas, y sin riesgos estructurales
CP
B
DL
@
M
A
E
la verificación de riesgos y, en su caso, el bloqueo, se hace en la etapa DL
el cálculo de la dirección efectiva [rb + cte] se hace en la etapa @
el acceso a la cache de datos se hace en la etapa M
el cálculo de cualquier op se hace en la etapa A
la evaluación de condición y la escritura del CP por salto se hace en la etapa A
Este procesador interpreta las instrucciones BRC con predicción estática No Saltar.
Este procesador puede escribir (E) y leer (L) un registro durante el mismo ciclo.
RESPONDA EN LA HOJA DE RESPUESTAS, con una breve justificación.
Pregunta a: Calcule, mediante expresiones aritméticas, el número de iteraciones de este bucle.
Pregunta b: Presente el Grafo de Dependencias completo de las 7 instrucciones de este bucle.
Pregunta c: La cache de instrucciones es ideal, pero la cache de datos tiene un fallo después de cada
5 aciertos consecutivos en los accesos. Consideramos un acceso cada lectura o cada escritura en una
dirección efectiva. Suponga que el primer acceso es un acierto.
Calcule el cociente entre accesos fallados y accesos totales (tasa de fallos) tras completarse todas las
iteraciones del bucle.
Calcule cuantos fallos ocurren al ejecutarse instrucciones ST.
Pregunta d: El procesador no tiene ningún cortocircuito. Cada fallo en la cache de datos provoca bloqueo durante 10 ciclos.
Calcule, sin presentar ningún cronograma, el número total de ciclos que tarda en ejecutarse todas las
iteraciones del bucle.
Pregunta e: Ahora tenemos que añadir un cortocircuito, que debe acabar al final de la etapa DL. Presente el cronograma de una iteración y el inicio de la siguiente, para mostrar el efecto de usar ese cortocircuito. Suponga aquí que no hay ningún fallo en la cache de datos.
Calcule el número de ciclos en que se reduce ahora la ejecución de cada iteración del bucle.
Dibuje ese cortocircuito sobre el esquema parcial de Camino de Datos que se le facilita.
Examen, junio de 2006
5
Dep. Arquitectura de Computadores
EJERCICIO 4: (3.5 puntos)
La figura mostra l'esquema parcial del camí de dades d'un processador segmentat amb planificació
dinàmica d'instruccions.
L
D
xD
xA1
LM
xA2
LA1
Banc Registres
xM
E
@
M1
A1
E
M2
MEM
E
A2
LA2
ALU1
ALU2
Hi han 3 ramificacions. Les instruccions d'accés a memòria s'executen en la ramificació MEM (3 cicles
de latència d’execució, 1 cicle de latència de repetició); les instruccions de càlcul amb enters s'executen
en les ramificacions ALU1 o ALU2 (1 cicle de latència d’execució). No hi han curtcircuits. Cada
ramificació disposa de 2 camins de lectura i 1 camí d'escriptura al Banc de Registres. Un registre del
banc es pot escriure i llegir, en aquest ordre, en un cicle de rellotge.
En la taula següent s’indiquen les fases finals del procés d'interpretació d'una instrucció i les condicions
que impedeixen l’avenç d'una instrucció a la fase posterior.
D
L
Emissió
Inici
Riscs WAW,
WAR i
Estructural
E
Execució
Escriptura
Risc RAW
Les instruccions s’emeten des de l’etapa D, en ordre de programa, cap a una de les ramificacions
segons el tipus d’instrucció. En el cas de que no es pugui emetre, la instrucció es reté en el registre
d’entrada de l’etapa D. En la fase d’Inici (etapes LM, LA1, LA2), les instruccions llegeixen els operants
font del Banc de Registres. Una instrucció amb risc RAW es reté en el registre d’entrada a la ramificació
associada; durant els cicles de retenció no es poden emetre noves instruccions cap a aquesta
ramificació fins que desapareix la condició de risc.
En un cicle de rellotge, el control de la segmentació determina el progrés de les instruccions en aquest
ordre temporal:
lògica
Inici
lògica
Emissió
1) per cada instrucció en fase d'Inici comprova les dependències vertaderes amb instruccions que no
han completat la fase d'Execució (riscs RAW)
2) comprova si es compleix alguna de les 3 condicions que impedeixen l'Emissió de la instrucció que
ocupa l’etapa D.
• és destí de dependència de sortida d'alguna instrucció que encara no haurà completat la
fase d'Execució en aquest cicle (risc WAW)
• és destí d'antidependència d'alguna instrucció que encara no haurà completat la fase d'Inici
en aquest cicle (risc WAR)
• no hi haurà cap ramificació disponible per a aquesta instrucció (risc Estructural)
Examen, junio de 2006
6
Dep. Arquitectura de Computadores
Pregunta a: Mostra el cronograma de la seqüència de 5 instruccions següent. En les instruccions que
escriuen resultats en registres, l'identificador de registre destí és el primer que s'especifica.
Load r5,0(r0)
Add r4,r5,r4
Add r3,r3,#8
Sub r1,r1,#1
Store r4,0(r3)
La figura mostra el cronograma d’execució d’una seqüència de 6 instruccions amb dependències de
dades.
cicles
i1
i2
i3
i4
i5
i6
Instrucció
1
2
3
4
5
6
Load r1,0(r0)
Load r ,0(r1)
Add r2,r ,r3
Store r ,0(r )
Add r ,r5,r6
Sub r0,r0,#8
D
LM
@
M1
M2
E
D
D
D
D
LM
D
7
8
9
10
@
M1
M2
E
11
LA1 LA1 LA1 LA1
D
12
13
14
15
16
E
A1
E
LM
LM
LM
LM
LM
@
M1
M2
D
LA2
A2
E
D
D
D
D
LA1
A1
E
17
18
19
20
Pregunta b: Dedueix els identificadors de registres font i destí que falten. Dibuixa el graf de dependències de dades en registres.
Pregunta c: Dedueix una seqüència de 4 instruccions que al ser interpretada en aquest processador
s’observi un cicle en que les tres ramificacions inicien l’execució de les instruccions simultàniament.
Pregunta d: Dedueix una seqüència de 5 instruccions que al ser interpretada s’observi un cicle en que
les 3 ramificacions escriuen els resultats simultàniament al banc de registres.
La figura mostra un esquema de la lògica que controla l'Emissió i l'Inici de les instruccions. Les entrades
de la lògica són:
xM
xA1
xA2
Mraw
Mwaw
OR
Mwar
xD
Mestruct
ID
MD
•
•
Identificadors del tipus d'instrucció (MD: Load o Store; ID: càlcul) en fase d'Emissió
Identificadors i bits de validesa dels operants font i de les instruccions que no han començat
la fase d'Execució (no es mostren en la figura)
• Identificadors i bits de validesa dels operants destí de les instruccions que no han acabat
a la fase d'Execució (no es mostren en la figura)
Les sortides de la lògica de control actuen sobre els multiplexors xM, xA1, xA2 i xD.
En la lògica de control es poden distingir 4 mòduls. El mòdul Mraw detecta riscs RAW de les instruccions
que estan en la fase d'Inici. Els altres 3 mòduls detecten els riscs WAR, WAW i Estructurals de la
instrucció en fase d'Emissió.
Pregunta e: Suposant que els mòduls que detecten els riscs de dades estan dissenyats amb lògica
combinacional: Quants comparadors es necessiten en el mòduls Mraw, Mwar i Mwaw?
Pregunta f: Utilitzant portes lògiques, dissenya el mòdul que detecta riscs estructurals. Les entrades
del mòdul són: ID, MD, xM, xA1 i xA2. Els senyals s'activen amb el valor 1.
Examen, junio de 2006
7
Dep. Arquitectura de Computadores
Descargar