ARQUITECTURA DE COMPUTADORES Junio de 2005

Anuncio
ARQUITECTURA DE COMPUTADORES
Junio de 2005
EJERCICIO 1: (3 puntos)
Una unidad funcional segmentada multifunción (UFS) tiene 4 etapas y puede realizar tres tipos diferentes de operaciones, siguiendo las Tablas de Reserva (TdR) que se muestran :
ciclos
etapas
1
A
B
2
3
ciclos
4
X
etapas 1
A
X
C
B
X
D
3
X
ciclos
4
5
6
7
X
X
X
D
etapas 1
A
X
C
X
OPa
2
X
2
4
X
X
B
D
OPb
5
6
X
C
X
3
X
X
X
OPc
El retardo de la lógica combinacional de cada etapa es, respectivamente, de 154 ns, 196ns,
180ns y 170 ns.
El retardo de cada registro separador de desacoplo es de 4 ns.
RESPONDA EN LA HOJA DE RESPUESTAS :
Pregunta a: Calcule la secuencia óptima de latencias de inicio, cuando UFS realiza una sucesión ilimitada de operaciones, todas del tipo OPb.
Pregunta b: Calcule la latencia media mínima, cuando UFS realiza una sucesión ilimitada de operaciones, todas del tipo OPc.
Pregunta c: Calcule el tiempo de ciclo en ns. y la frecuencia en MHz, de UFS.
Pregunta d: Calcule la velocidad de UFS, cuando realiza una sucesión ilimitada de operaciones repitiendo la terna OPa OPb OPc siempre en este orden, medida en MOPS (millones de operaciones por
segundo).
Pregunta e: Calcule la ganancia de UFS sobre una unidad funcional no segmentada construida con la
misma lógica combinacional, cuando realizan una sucesión ilimitada de operaciones repitiendo la terna
OPa OPb OPc siempre en este orden.
Pregunta f: Calcule el tiempo (en seg.) que tarda UFS en realizar 4 millones de operaciones, todas del
tipo OPc.
Examen, junio de 2005
1
Dep. Arquitectura de Computadores
Pregunta g: Calcule la productividad de UFS, en función del número (n) de operaciones, cuando realiza una sucesión de operaciones repitiendo la pareja OPb OPc siempre en este orden. Considere n par.
Pregunta h: Calcule la productividad ideal de UFS, cuando realiza una sucesión ilimitada de operaciones, que son todas del tipo OPa.
Pregunta i: Calcule el número mínimo (NM) de operaciones, todas del tipo OPa, que debe realizar
UFS para alcanzar el 90% de la productividad ideal calculada en el anterior apartado.
Otra unidad funcional segmentada multifunción (UFSlinc) es igual que la UFS pero con dos etapas más,
ya que se añaden copia de la C y copia de la D. De esta manera consigue realizar de forma lineal ( sin
conflictos, 6 ciclos y 6 etapas) cualquier sucesión de operaciones OPc. Las Tablas de Reserva de las
operaciones se modifican para usar las 6 etapas de la forma más eficaz posible y sin cambiar la cantidad
de ciclos (4 para las OPa y 7 para las OPb).
RESPONDA EN LA HOJA DE RESPUESTAS :
Pregunta j: Calcule la latencia media mínima, cuando UFSlinc realiza una sucesión ilimitada de operaciones, todas del tipo OPb.
Pregunta k: Calcule la energía (en julios) para que UFSlinc realice tres mil millones de operaciones,
todas del tipo OPb, sabiendo que su potencia es de 50 w.
Pregunta l: Calcule la relación entre tensiones de alimentación V(UFSlinc) / V(UFS) si ambas tienen
igual potencia. Sabemos que UFSlinc tiene la misma frecuencia y tiene el doble de capacidad efectiva
equivalente que UFS.
EJERCICIO 2: (3 puntos)
En la siguiente figura se muestra la segmentación en etapas del proceso de interpretación de las instrucciones en un procesador.
ciclos
1
2
3
4
5
6
etapas
CP
B
D/L
ALU
M
ES
La funcionalidad de las etapas y recursos básicos se describen en la siguiente tabla.
ETAPA
FUNCIONALIDAD
ETAPA
FUNCIONALIDAD
CP
determinar el CP
ALU
operación aritmético-lógica
B
búsqueda de la instrucción
M
acceso a memoria de datos
D/L
decodificación, lectura de registros
ES
escritura en el banco de registros o en el registro CP
Las instrucciones de secuenciamiento, condicionales e incondicionales, actualizan el registro CP en la
etapa ES. El conjunto de instrucciones del procesador puede interpretarse sin que se produzcan riesgos
estructurales. En el mismo ciclo se puede escribir y leer, en este orden, un registro del banco de registros.
Riesgos y actuación
En la etapa D/L se detectan los riesgos de datos y de secuenciamiento y se actúa para respetar la semántica del lenguaje máquina.
Examen, junio de 2005
2
Dep. Arquitectura de Computadores
Cuando se produce un riesgo de datos se bloquea la interpretación de la instrucción que ocupa la etapa
D/L y esta retención se propaga a las instrucciones que están en las etapas previas. Durante los ciclos
de bloqueo se inyectan, mediante circuitería, instrucciones NOP desde la etapa D/L hacia la etapa ALU.
Cuando se detecta un riesgo de secuenciamiento se suspende la interpretación de instrucciones posteriores a la instrucción de secuenciamiento. La suspensión perdura hasta que se actualiza el registro
CP con la dirección de la siguiente instrucción que debe interpretarse. Las etapas CP y B siguen de
forma autónoma calculando una dirección y buscando una instrucción. La instrucción buscada en memoria se descarta, ya que durante los ciclos de suspensión se inyectan, mediante circuitería, instrucciones nop desde la etapa B hacia la etapa D/L.
Código
En el procesador segmentado descrito se interpreta la siguiente secuencia de instrucciones.
1$:
20
load R1, X(R2)
24
load R9, X (R5)
28
beq R1 1$
32
load R4, X(R1)
36
add R6, R4, R1
40
sub R7, R6, R8
44
load R10, X(R6)
48
add R11, R1, R10
Supondremos en todas la preguntas que el salto es no tomado. Esto es, no se cumple la condición.
Visualización del progreso de las instrucciones en un diagrama temporal
Para representar una instrucción que se retiene en una etapa se utilizan varias filas. Cada vez que se
retiene una instrucción en una etapa se utiliza una nueva fila. En esta nueva fila se empieza la representación en el ciclo siguiente al de retención, indicando la etapa en la cual está la instrucción. Si se
sigue produciendo una acción de retención se utiliza una nueva fila. Desde la etapa más avanzada de
la segmentación, en la cual se produce la retención, se inyecta una instrucción nop al finalizar el ciclo
de retención. Esta instrucción nop se propaga por todas las restantes etapas. Para visualizar esta instrucción nop en el diagrama temporal se utilizará el acrónimo nop, en lugar del acrónimo de etapa, una
vez inyectada la instrucción nop.
Para representar el descarte de instrucciones posteriores a una instrucción de secuenciamiento se utilizará el acrónimo nop, en lugar del acrónimo de la etapa, una vez se ha inyectado la instrucción nop.
Un ciclo perdido se identificará en el ciclo en que finaliza una instrucción nop inyectada por el hardware.
Estos ciclos se mostraran en el diagrama temporal en la parte inferior indicando el tipo. Para los riesgos
de datos utilice la etiqueta D y para los riesgos de secuenciamiento la etiqueta S. Así mismo, en la columna etiquetada con la palabra instrucción indique la instrucción cuya interpretación se está representando en la fila correspondiente.
Pregunta a: Muestre en un diagrama temporal la interpretación de la secuencia de instrucciones previa. Tenga en cuenta cómo se ha descrito la forma de visualizar la interpretación de las instrucciones.
Así mismo, indique los ciclos perdidos por riesgos de datos y de secuenciamiento. La última instrucción
cuya interpretación debe mostrarse, incluyendo la escritura en el banco de registros, es load R10,
X(R6).
En el procesador descrito se añaden cortocircuitos desde las etapas ALU y M a la etapa D/L. En la siguiente figura se muestra un diagrama con su identificación.
Examen, junio de 2005
3
Dep. Arquitectura de Computadores
D/L
ALU
M
DL_ALU
BUS_DL
ES
ALU_MEM
MEM_ES
3
0
0
0
4
La
2
0
0
Reloj
Ldm
Edm
A
0
1
1
dir
ALU
1
1
MD
B
0
EsMem
MUXA
EsReg
Rb
Ra
1
1
1
MUXB
Ed BR
Rd
Lb
MUXData
literal
1
Reloj
EV
Además, se añade la característica de utilizar predicción fija en las instrucciones de secuenciamiento
condicional y el cálculo de la dirección destino del salto, en instrucciones de secuenciamiento condicional e incondicional, se efectúa en la etapa D/L. Para predecir el sentido se utiliza el signo del literal y
esta predicción se utiliza en la etapa D/L para establecer el secuenciamiento predicho.
La comprobación de la predicción se efectúa en la etapa ALU (que etiquetamos CPre) y en caso de error
de predicción, el registro CP se actualiza con la dirección correcta cuando la instrucción de secuenciamiento está en la etapa ES (que etiquetamos Rec).
ciclos
1
2
3
4
etapas
CP
B
D/L
CPre
5
6
Rec
Pregunta b: Muestre en un diagrama temporal simplificado, sin mostrar la inyección de instrucciones
nop, la interpretación de TODA la secuencia de código del enunciado. Indique los ciclos perdidos por
riesgos de datos y de secuenciamiento. Así mismo, en el ciclo que se utilice un cortocircuito indique el
cortocircuito utilizado mediante el número que tiene en la figura previa. Considere que la codificación
de las instrucciones es la siguiente.
load rd, #literal (rb)
add/sub rd, ra, rb
br ra, #literal
En una operación de escritura a un banco de registros se suministra un identificador de registro y un
dato. El identificador de registro (Rd) se decodifica por el decodificador y la salida del decodificador activa la señal de escritura en un registro del banco de registros (Sel), condicionada al permiso de escritura
(EsReg). Entonces, cuando llega el flanco ascendente de la señal de reloj se almacena el dato (Ed) en
el banco de registros.
Reloj
EsReg
Ed
0
1
...
MUX
Q
La
...
D
E
C
O
...
Rd
Ra
C
Sel registro
D
Banco de
registros
7
Desde el punto de vista de una operación de lectura, la salida de los registros se conecta a un multiplexor. Para leer un valor se utiliza el identificador de registro (Ra) que determina cuál de las entradas
del multiplexor se selecciona (La). El retardo de los componentes del banco de registros se indica en la
siguiente tabla.
COMPONENTE
RETARDO en u.t.
COMPONENTE
DECO
10
Escritura en el registro
6
AND
1
MUX
10
Examen, junio de 2005
4
RETARDO en u.t.
Dep. Arquitectura de Computadores
En el camino de datos de un procesador segmentado observamos las conexiones que se muestran en
la siguiente figura. Las etiquetas Rd, Ed y EsReg indican respectivamente identificador de registro destino, dato y permiso de escritura. La etiqueta Ra es el identificador del registro que se quiere leer y “La”
es la salida del multiplexor utilizado en operaciones de lectura en el banco de registros.
D/L
ALU
BUS_DL
M
ES
DL_ALU ALU_M
M_ES
Rd BR
Ed
Rd
EsReg
Ed
La
Ra
Reloj
EsReg
not Reloj
El retardo del inversor y de los registros de desacoplo es 1 u.t.
Pregunta c: Suponga que se quiere poder leer el valor escrito en ese mismo ciclo en un registro. Muestre en un ciclo de la señal de reloj el retardo de los componentes.
Con el objetivo de poder reducir el tiempo de ciclo, la actualización de un registro del banco de registros
se efectúa utilizando el flanco ascendente de la señal de reloj y ello requiere modificar el conexionado
de las señales utilizadas para efectuar una operación de escritura, lo cual se muestra en la siguiente
figura. El retardo del buffer es 1 u.t.
D/L
ALU
BUS_DL
DL_ALU
M
ES
ALU_M
Rd BR
Ed
M_ES
Rd
EsReg
Ed
La
Ra
Reloj
EsReg
buffer
Pregunta d: Suponga que se quiere poder leer el valor escrito en ese mismo ciclo en un registro. Muestre en 2 ciclos consecutivos de la señal de reloj el retardo de los componentes.
EJERCICIO 3: (4 puntos)
Un processador que interpreta els següents tipus d'instruccions
Fop
Fd = Fa op Fb
Eop
Rd = Ra op Rb
FLoad
Fd = M[Rb+d]
Load
Rd = M[Rb+d]
FStore
M[Rb+d] = Fa
Store
M[Rb+d] = Ra
FBcond
si cond (Fa) PC = PC +d
altrament PC = PC+4
Bcond
si cond (Ra) PC = PC +d
altrament PC = PC+4
està segmentat en les següents etapes
cicles
1
2
3
etapes
PC
B
D/L
4
5
6
7
ALU
ES
S
M1
M2
ES
X1
X2
X3
X4
8
Eop
Load, Store, FLoad, FStore, Bcond, FBcond
ES
Fop
La figura mostra el camí de dades corresponent a la part d'execució de les instruccions. Hi han 3 rami-
Examen, junio de 2005
5
Dep. Arquitectura de Computadores
ficacions: ENT executa les instruccions de càlcul amb enters; MEM executa les instruccions d'accés a
memòria i els salts condicionals; PF executa les instruccions de càlcul amb punt flotant. Els mòduls etiquetats com XCE i XCPF contenen multiplexors per encaminar dades des de les sortides de les ramificacions als registres d'entrada de les ramificacions.
DL
E
ALU
Rb
XCE
0 1
b
Ra
ENT
a
S
M1
M2
E
MEM
d
mux
FEav
X1
Fa
XCPF
Fb
X2
X3
X4
E
a
PF
b
2 3
Pregunta a: Tenint en compte els recursos del camí de dades de la figura i suposant que el processador inicia la interpretació d'una instrucció cada cicle de rellotge, determina:
el nombre màxim d'instruccions que poden estar simultàniament en fase d'escriptura
el nombre màxim d'instruccions que poden estar simultàniament en fase d'execució
el nombre màxim d'instruccions en procés d'interpretació
Pregunta b: Suposant que l'etapa de búsqueda subministrés cada cicle 3 instruccions a l'etapa DL (una
instrucció per cada ramificació), calcula:
el nombre mínim de camins de lectura a cada Banc de registres
el nombre màxim d'instruccions que poden estar simultàniament en fase d'escriptura
el nombre màxim d'instruccions que poden estar simultàniament en fase d'execució
Cada Banc de Registres, que no es mostra en la figura, disposa de 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.
Els riscs de dades i de seqüenciament es detecten en l'etapa DL. La detecció d'un risc de dades impedeix el progrés de les instruccions en les etapes DL, B i PC fins que desapareix la condició del risc. 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 (etapa S). El mòdul FEav
avalua la condició. En el camí de dades no es mostra el subministre d'adreces a la etapa PC.
Aquest processador executa el programa P:
for (i=1; i<N; ; i++)
{
x[i]=x[i]+x[i-1];
}
for: FLoad
FLoad
FAdd
FStore
Add
Sub
fi: bne
f0,0(r0)
f1,-8(r0)
f1,f1,f0
f1,0(r0)
r0,r0,r1
r2,r2,r3
r2,for
;f0 ← mem[r0+0]
;f1 ← mem[r0-8]
;f1 ← f1 + f0
;mem[r0+0] ← f1
;r0 ← r0 + r1
1
;r2 ← r2 - r3
3
;si (r2≠0) salta a for
Valors inicials:
r0 = @x[1]; r1 = 8; r2 = N-1; r3 = 1
Examen, junio de 2005
6
Dep. Arquitectura de Computadores
Pregunta c: Mostra el cronograma d'una iteració del bucle i de la primera instrucció de la següent iteració. Indica els curtcircuits utilitzats. Un curtcircuit s'identifica mitjançant la parella o-d, on o val (0, 1,
2, 3) i d val (a, b). Calcula el CPI.
Volem reduir el retard productor-consumidor entre instruccions de càlcul punt flotant (productor) i instruccions que actualitzen la memòria de dades (consumidor) mitjançant curtcircuits. Es modifica el camí
de dades original tal com mostra la figura, on s'observen els multiplexors d'encaminament de dades
MX1 i MX2 en la ramificació MEM.
S
M1
M2
E
0
0
1
0
MX1
1
1
MX2
1
de la sortida
etapa X4
Control MXs
FaMDL
vaMDL
FdPDL
vdPDL
FaMS
vaMS
FdPS
vdPS
FdPM1
vdPM1
FdPM2
vdPM2
FdPE
vdPE
Pregunta d: Mostra el cronograma d'execució de la seqüència de 5 instruccions, indicant les entrades
seleccionades dels multiplexors MX1 i MX2 en les 3 instruccions FStore. Indica el retard productor-consumidor entre instrucccions Fop-FStore en el processador original i en el nou processador.
FAdd f3,f4,f5
FMul f4,f0,f2
FStore f3,0(r0)
FStore f3,8(r0)
FStore f3,16(r0)
Pregunta e: Calcula el CPI a l'executar el programa P en el nou processador.
Els senyals de control dels multiplexors MX1 i MX2 es determinen en el cicle en que una instrucció FStore ocupa l'etapa S. En aquest cicle es localitza la instrucció productora que s'executa per la ramificació
PF. Per dur a terme aquesta funció:
• Quan s'inicia l'execució d'una instrucció Fop, l'etapa DL subministra a la ramificació MEM
l'identificador del registre destí FdP i el bit de validesa vdP de la instrucció Fop. Aquesta
informació es propaga per les etapes de la ramificació MEM.
• Quan s'inicia l'execució d'una instrucció FStore, l'etapa DL subministra a la ramificació
MEM l'identificador del registre font punt flotant FaM i el bit de validesa vaM de la instrucció
FStore.
Pregunta f: Utilitzant comparadors i portes lògiques, dissenya el mòdul de control dels multiplexors
MX1 i MX2. Segueix l'esquema del full de respostes.
Examen, junio de 2005
7
Dep. Arquitectura de Computadores
Descargar