ArqComp t4 pma

Anuncio
Departament d’Informàtica de Sistemes i Computadors
ARQUITECTURA DE COMPUTADORES
Problemas TEMA 4: Microprocesadores avanzados
SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS
La ruta de datos propuesta en todos los problemas presentados es la del microprocesador MIPS
R2000 (que es la misma que la del procesador segmentado DLX de las prácticas), ambos de arquitectura
RISC y segmentados en las cinco etapas que se muestran en la Fig. 1. Para la adecuada resolución de los
problemas, se sugieren las siguientes propuestas (sobre el código fuente en ensamblador que también se
presenta en la Fig. 3):
Búsqueda de
instrucción
Búsqueda de
registros y
decodificación
Ejecución y
cálculo dirección
de salto
Acceso a
memoria
Memoria
de
instrucciones
Banco de
registros
(lectura)
UAL
Memoria
de
datos
Etapa 5
Escritura del
resultado en el
buffer de
entrada
Registros
temporales
Etapa 4
Registros
temporales
Etapa 3
Registros
temporales
Etapa 2
Registros
temporales
Etapa 1
Banco de
registros
(escritura)
Fig. 1. Esquema simplificado de la ruta de datos del microprocesador MIPS R2000 junto con los registros de
segmentación. En la última etapa (etapa 5, Write Back) se procede a la escritura del resultado en el banco de
registros y su anticipación en el buffer de entrada de la etapa de ejecución (UAL).
Fig. 2. Ruta de datos del DLX. Tal y como se puede apreciar, en la etapa 4 se procede a la escritura de los valores en
la memoria de datos, mientras que en la etapa 5 se anticipan los resultados sobre el buffer de entrada de la etapa de
ejecución.
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
1
Departament d’Informàtica de Sistemes i Computadors
I1 
I2 
I3 
I4 
I5 
I6 
I7 
I8 
I9 
I10 
a:
b:
lw
lw
loop:
add
sub
bnez
nop
nop
nop
add
trap #0
.word 33
.word 2355
r1, a(r0)
r2, b(r0)
r6, r6, r1
r2, r2, #1
r2, loop
r10, r6,r0
Fig. 3. Código fuente en ensamblador del programa que se va a utilizar en los ejemplos y que
presenta la multiplicación de los números a y b, almacenando el resultado final en r10.

Riesgos por dependencia de datos (detención de la segmentación): cuando se detecta un riesgo de este
tipo se debe tener en cuenta que, como el valor correcto no se obtiene hasta la 5ª etapa (desde donde
el valor calculado se anticipa al buffer de entrada de la etapa de ejecución) y, como los operandos de
las instrucciones anteriores no se leen de registros hasta la 2ª etapa, únicamente se verán implicadas
en el riesgo las 3 instrucciones siguientes a la analizada (la 4ª se encuentra en la 1ª etapa donde sólo
se busca la instrucción a partir del PC). Así pues, para el análisis de la dependencia de datos sobre la
instrucción I1 (lw r1,a(r0)), comprobaremos el riesgo sobre las tres instrucciones siguientes. Como
aparece una dependencia en el registro R1 con la instrucción I3 (add r6,r6,r1), ésta última debe
esperarse en la etapa de decodificación y búsqueda de operandos hasta que el valor de R1 sea el
correcto. Esto sucede en t4 (donde I1 escribe el valor correcto de R1) por lo que, en t5, I3 ya lee el
valor correcto de R1 y puede proseguir su ejecución. En este caso la segmentación se ha detenido en
una etapa para resolver un riesgo entre dos instrucciones no consecutivas (Fig. 4).
Fig. 4. La instrucciónde ‘add’ se detiene 1 ciclo en la etapa de decodificación (en t5) ya que
presenta dependencia de datos en R1 con la instrucción de ‘lw’. Lo mismo sucede en R2 con la
instrucción de ‘bnez’ que queda detenida en la etapa 2 hasta que se escriba el resultado correcto
en R2 (en t9).
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
2
Departament d’Informàtica de Sistemes i Computadors

Riesgos por dependencia de datos (anticipación en la ALU): en este caso, el resultado correcto se
obtiene al final de la 3ª etapa (cálculo en la ALU) y puede ser anticipado:
1. desde la 5ª etapa al registro de entrada de la ALU (WB to EX)
Fig. 5. Donde desde la etapa de ‘write back’ se anticipa la información a los registros de la etapa
de ‘decodificación’ y a los registros de la etapa de ‘ejecución’ (ver path en rojo). Además los
resultados anticipados aparecen en las etapas rotuladas ‘en blanco’.
Por este motivo, si existe dependencia entre las instrucciones I1 e I3, esta queda automáticamente
resuelta mediante el método de anticipación pues, aunque I3 ha leído los operandos incorrectos en
la etapa 2 (decodificiación y búsqueda de operandos), estos valores incorrectos que se cargan en
el registro temporal de la ALU, son automáticamente ‘machacados’ por el valor correcto de los
operandos que se acaba de calcular a la salida de la ALU en la etapa 3 y que viene por la vía
(path) de anticipación hasta el mismo registro temporal de entrada en la ALU. Por lo tanto no será
necesaria la inserción de ninguna burbuja en este caso (¡Error! No se encuentra el origen de la
referencia.).
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
3
Departament d’Informàtica de Sistemes i Computadors
2. desde la 4ª etapa al registro de entrada de la ALU (MEM to EX)
Fig. 6. Donde desde la 4ª etapa (‘memory write’) se anticipa la información a los registros de la
etapa de ‘ejecución’ y al multiplexor de entrada para el caso de salto condicional (ver path en
morado). Además los resultados anticipados aparecen en las etapas rotuladas ‘en blanco’.

Riesgos de control (detención de la segmentación): por un lado, la dirección de salto no se conoce
hasta el final de la 3ª etapa mientras que, por otro lado, el riesgo de control no se detecta hasta el
principio de la 2ª etapa (cuando se decodifica la instrucción). Por este motivo, ante una instrucción de
control, se detiene la segmentación y no entra ninguna instrucción nueva, hasta que se resuelva la
dirección de salto (en la etapa 3). En el caso del simulador del DLX (Fig. 7), la segmentación se
detiene hasta que se escribe el valor correcto del salto en los registros (en el PC, 4ª etapa).
Fig. 7. En este caso la instrucción de ‘add’ no se empieza a ejecutar hasta que la instrucción de
control (‘bnez’) ha resuelto la dirección de salto y la ha escrito en el PC (al terminar la 4ª etapa,
en t12).
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
4
Departament d’Informàtica de Sistemes i Computadors

Riesgos de control (anticipación en la ALU): se podría decir que el hecho de anticipar resultados por
parte de la ALU, no resuelve más rápidamente los riesgos de control (Fig. 8).
Fig. 8. En este caso la anticipación de resultados en la ALU no influye en la ejecución de la
instrucción de salto condicional (ni es determinante en la resolución del riesgo de control) ya
que, la dirección de salto continúa sin resolverse hasta su carga en el PC, una vez se ejecuta la
instrucción de control en la 4ª etapa (escritura en registros).

Riesgos de control (ejecución especulativa): en el caso de resolver los riesgos de control mediante
ejecución especulativa se supone que las siguientes instrucciones a la de control entran en el micro (se
especula con que su ejecución es correcta) y, una vez se resuelve la dirección de salto y se escribe en
el PC (cuando la instrucción de control termina en la etapa 4), se decide si las instrucciones
ejecutadas son o no las correctas (desechándolas o no). Esto significa que en ejecución especulativa
siempre se van a colar las TRES instrucciones siguientes a la de control (Fig. 9).
Fig. 9. En este caso, tras la instrucción de salto (‘bnez’) se han colado tres instrucciones de
‘nop’, que son automáticamente desechadas en t12 cuando se resuelve que la dirección de salto
correcta supone la ejecución de la instrucción de ‘add’.
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
5
Departament d’Informàtica de Sistemes i Computadors

Riesgos de control (predicción del salto): para el mismo ejemplo que en el punto anterior y
suponiendo que la BTB (Branch Target Buffer) contenga la estimación correcta del salto a ejecutar
(esto significa que, en alguna iteración anterior, ya se ha producido el mismo salto), el riesgo de
control presentado por la instrucción ‘bnez’ no se identifica hasta la etapa de decodificación de la
instrucción (2ª etapa) por lo que se habrá colado en la 1ª etapa una sola instrucción que, dependiendo
del valor almacenado en la BTB (para ‘bnez’), será la siguiente instrucción a ejecutar (si el salto
llevaba a ella) o no (en cuyo caso la instrucción ‘colada’ se marca como no válida y se desecha).
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
6
Departament d’Informàtica de Sistemes i Computadors
PROBLEMA 1
Dada la siguiente secuencia de instrucciones que se va a ejecutar en el procesador segmentado cuya
ruta de datos aparece en la figura adjunta:
a) Enumera los tipos de riesgos que pueden aparecer en un procesador segmentado.
b) En el procesador de la figura y para el programa ensamblador propuesto: ¿cuáles de los riesgos
anteriores aparecen? ¿por qué?
c) En el procesador de la figura y para el programa ensamblador propuesto: ¿cuáles de los riesgos
anteriores NO aparecen? ¿por qué?
d) Soluciona los riesgos descritos anteriormente mediante la técnica de inserción de burbujas de la
forma más eficiente posible (mínimo nº de burbujas posible colocadas de forma que se
ralentice al mínimo la ejecución del programa). Presenta la traza de la ejecución.
e) Suponiendo que, en este caso, el procesador utiliza la técnica de la anticipación desde la ALU,
¿qué riesgos se solucionarían?, ¿persistiría alguno de ellos? Justifica la respuesta. Presenta la
traza de la ejecución.
NOTA: El formato de las instrucciones es del tipo NOMBRE Destino Operando 1 Operando 2
I1  etiq: ADD R2, R2, R1
I2 
SUB R2, R2, R3
I3 
SUB R3, R3, R4
I4 
XOR R2, R1, R4
I5 
BEQ R5, R0, etiq
I6 
LW R6, R2
// Resta R1 y R2 y guarda el resultado en R2
// Resta R2 y R3 y guarda el resultado en R2
// Resta R3 y R4 y guarda el resultado en R3
// Operación XOR entre R1 y R4 guardando el resultado en R2
// El PC “salta” a la posición etiq si R5 = R0
// Carga en R6 el contenido de la posición de memoria indicada en R2
Etapa 5
Búsqueda de
instrucción
Búsqueda de
registros y
decodificación
Ejecución y
cálculo dirección
de salto
Acceso a
memoria
Guardar el
resultado
Memoria
de
instrucciones
Banco de
registros
(lectura)
UAL
Memoria
de
datos
Registros
temporales
Etapa 4
Registros
temporales
Etapa 3
Registros
temporales
Etapa 2
Registros
temporales
Etapa 1
Banco de
registros
(escritura)
Esquema simplificado de la ruta de datos junto con los registros de segmentación
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
7
Departament d’Informàtica de Sistemes i Computadors
PROBLEMA 2
Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va
a ejecutar en el procesador segmentado cuya ruta de datos aparece en la figura adjunta:
a) Lista los posibles riesgos que pueden aparecer en un procesador segmentado y justifica, tanto si
aparecen como si no, en el procesador segmentado presentado.
b) Suponiendo una CPU programada para resolver riesgos por dependencia de datos y de control
mediante la técnica de la detención automática de la segmentación: resuelve el programa para las dos
primeras pasadas del bucle (8 instrucciones) en este caso, y presenta la traza correspondiente.
c) Repite el apartado anterior (b) en el caso de que los riesgos por dependencia de datos se resuelvan por
scoreboarding y los de control mediante la técnica de ejecución especulativa. Justifica la actuación de
la CPU en el caso de tener que desechar alguna instrucción que ya haya iniciado su ejecución en el
procesador segmentado.
d) Repite el apartado anterior (c) para las dos últimas pasadas del bucle.
NOTA: El formato de las instrucciones es del tipo NOMBRE Destino Operando 1 Operando 2
loop:
.word 33
.word 55
lw
r1, a(r0)
lw
r2, b(r0)
add
r6, r6, r1
sub
r2, r2, #1
bnez r2, loop
add
r10, r6,r0
nop
trap #0
// Primero de los operandos a multiplicar
// Segundo de los operandos a multiplicar
// Carga el contenido de la dirección a en r1 (33)
// Carga el contenido de la dirección b en r2 (55)
// Suma r1 y r6 (suponemos inicialmente a 0) y guarda en r6
// Resta al contenido de r2 una unidad y guarda resultado en r2
// Salta a la dirección de loop si el valor de r2 es distinto de 0
// Almacena el resultado final
// Burbuja (No Opera) insertada por software
// Devuelve el control al S.O.
Etapa 4
Etapa 5
Búsqueda de
instrucción
Búsqueda de
registros y
decodificación
Ejecución y
cálculo dirección
de salto
Acceso a
memoria
Guardar el
resultado
Memoria
de
instrucciones
Banco de
registros
(lectura)
UAL
Memoria
de
datos
Registros
temporales
Etapa 3
Registros
temporales
Etapa 2
Registros
temporales
Etapa 1
Registros
temporales
I1 
I2 
I3 
I4 
I5 
I6 
I7 
I8 
a:
b:
Banco de
registros
(escritura)
Esquema simplificado de la ruta de datos junto con los registros de segmentación
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
8
Departament d’Informàtica de Sistemes i Computadors
PROBLEMA 3
Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va
a ejecutar en el procesador segmentado cuya ruta de datos aparece en la figura adjunta:
a) Suponiendo que la duración de la intrucción de carga (lw) es de 5 ciclos y la duración del resto
de instrucciones es de 4 ciclos, calcula la mejora (aceleración) que supone la ejecución del
programa propuesto en el procesador segmentado (ciclos ejecutados=10050; instrucciones
ejecutadas=3770; ciclos de parada=6276), respecto de su ejecución en un procesador no
segmentado.
b) Suponiendo una CPU programada para resolver riesgos por dependencia de datos mediante la
técnica de la detención automática de la segmentación y los de control mediante la predicción
de los saltos (se presupone detención de la segmentación si hay fallo en la BTB): resuelve el
programa para las dos primeras pasadas del bucle (8 instrucciones) en este caso, y presenta la
traza correspondiente.
c) Del apartado anterior, ¿qué significa que ha habido un fallo en la BTB (branch target buffer)?
¿qué sucede en este caso?
d) Repite el apartado (b) en el caso de que los riesgos por dependencia de datos se resuelvan por
anticipación en la ALU. Justifica la actuación de la CPU para los riesgos de control, en el caso
de tener que desechar alguna instrucción que ya haya iniciado su ejecución en el procesador
segmentado.
NOTA: El formato de las instrucciones es del tipo NOMBRE Destino Operando 1 Operando 2
loop:
I6 
I7 
I8 
.word 48
.word 1255
lw
r1, a(r0)
lw
r2, b(r0)
add
r6, r6, r1
sub
r2, r2, #1
bnez r2, loop
add
r10, r6,r0
nop
trap #0
// Primero de los operandos a multiplicar
// Segundo de los operandos a multiplicar
// Carga el contenido de la dirección a en r1
// Carga el contenido de la dirección b en r2
// Salta a la dirección de loop si el valor de r2 es distinto de 0
// es decir, ejecuta el bucle 1255 veces
// Almacena el resultado final
// Devuelve el control al S.O.
Etapa 4
Etapa 5
Búsqueda de
instrucción
Búsqueda de
registros y
decodificación
Ejecución y
cálculo dirección
de salto
Acceso a
memoria
Guardar el
resultado
Memoria
de
instrucciones
Banco de
registros
(lectura)
UAL
Memoria
de
datos
Registros
temporales
Etapa 3
Registros
temporales
Etapa 2
Registros
temporales
Etapa 1
Registros
temporales
I1 
I2 
I3 
I4 
I5 
a:
b:
Banco de
registros
(escritura)
Esquema simplificado de la ruta de datos junto con los registros de segmentación
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
9
Departament d’Informàtica de Sistemes i Computadors
PROBLEMA 4
Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se
ejecuta en el procesador segmentado cuya ruta de datos aparece en la figura adjunta:
a) Suponiendo que la duración de la instrucción de carga (lw) es de 5 ciclos y la duración del resto
de instrucciones es de 4 ciclos, calcula la mejora (aceleración) que supone la ejecución del
programa propuesto en el procesador segmentado (ciclos ejecutados=80; instrucciones
ejecutadas=34; ciclos de parada=42; y valores iniciales de las variables -> a=2; b=10),
respecto de su ejecución en un procesador no segmentado. (NOTA: los valores de a y b
especificados sólo aplican al presente apartado).
b) Suponiendo una CPU programada para resolver riesgos por dependencia de datos mediante la
técnica de la detención automática de la segmentación y los de control mediante la predicción de
los saltos (se presupone detención de la segmentación si hay fallo en la BTB): presenta la traza
correspondiente a la ejecución del programa completo.
c) Repite el apartado (b) en el caso de que los riesgos por dependencia de datos se resuelvan por
anticipación en la ALU, y los de control por ejecución especulativa. Justifica la actuación de la
CPU para los riesgos de control, en el caso de tener que desechar alguna instrucción que ya haya
iniciado su ejecución en el procesador segmentado.
d) Calcula la mejora obtenida en el apartado c) respecto de la ejecución del programa según los
parámetros establecidos en el apartado b) (Mejora = CPIb/CPIc).
NOTA 1: no hay que tener en cuenta la instrucción de trap #0 para el cálculo de la duración del programa.
NOTA 2: El formato de las instrucciones es del tipo NOMBRE Destino Operando 1 Operando 2.
loop:
.word 10
.word 2
lw
r1, a(r0)
lw
r2, b(r0)
add
r6, r6, r1
sub
r2, r2, #1
bnez r2, loop
add
r10, r6,r0
nop
trap #0
// Primero de los operandos a multiplicar
// Segundo de los operandos a multiplicar
// Carga el contenido de la dirección a en r1
// Carga el contenido de la dirección b en r2
// Suma el contenido de r1 + r6 y guarda en r6
// Realiza la resta del contenido de r2 -1 y guarda en r2
// Salta a la dirección de loop si el valor de r2 es distinto de 0
// Almacena el resultado final en r10
// No opera
// Devuelve el control al S.O.
Etapa 4
Etapa 5
Búsqueda de
instrucción
Búsqueda de
registros y
decodificación
Ejecución y
cálculo dirección
de salto
Acceso a
memoria
Guardar el
resultado
Memoria
de
instrucciones
Banco de
registros
(lectura)
UAL
Memoria
de
datos
Registros
temporales
Etapa 3
Registros
temporales
Etapa 2
Registros
temporales
Etapa 1
Registros
temporales
I1 
I2 
I3 
I4 
I5 
I6 
I7 
I8 
a:
b:
Banco de
registros
(escritura)
Esquema simplificado de la ruta de datos junto con los registros de segmentación
Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados)
10
Descargar