Anda di halaman 1dari 4

Arquitectura de Computadores 2018-1

Tarea 2 - Procesadores

Para esta tarea se debe trabajar en grupos de 2 personas y deberán entregar un informe con la
solución y explicación para cada problema. Se debe entregar un informe en Secretarı́a de Electrónica antes
de las 5 pm del dı́a Viernes 6 de Julio . No se aceptarán tareas atrasadas.

1. Problema 1 - Procesador Uniciclo.


Se desea agregar la instrucción SWSUM al procesador uniciclo ARM visto en clases. SWSUM Guarda
el contenido del registro Rn en la dirección de memoria dada por Rm, al mismo tiempo, el contenido
de memoria dado por Rm se suma al contenido del registro Rn y se guarda en Rd. Esta intrucción
reemplaza STR y ya no admite la constante externa. El formato de SWSUM es: SWSUM Rn, Rd, [Rm].
Su descripción RTL es la siguiente:
1 M[Rm] <− R[ Rn ] ; R[ Rd ] <− R[ Rn ] + M[Rm] ;
a)Modifique la sección de datos e indique los valores correspondientesa las señales de control para la
ejecución de esta nueva instrucción en el procesador mencionado. No se pueden agregar nuevas unidades
funcionales (ALU, sumadores, etc.).
b) El siguiente fragmento de código corresponde al cuerpo de un lazo iterativo, donde se han omitido
las instrucciones de control del lazo.

1 LDR R3 , [ R2 ]
2 STR R0 , [ R2 ]
3 ADD R1 , R0 , R3
4 ADD R0 , R1 , #10
5 ADD R2 , R2 , #4
Si el lazo itera 1000 veces, calcule el tiempo de ejecución del código anterior.
c) Modifique el fragmento de código para que utilice la nueva instrucción SWSUM y calcule el nuevo
tiempo de ejecución. ¿Se consigue alguna aceleración con respecto al código original? Fundamente su
respuesta.

2. Problema 2 - Procesador Multiciclo.


La instrucción MACUM toma dos elementos consecutivos en memoria, los multiplica y depués los suma
con el contenido del refistro Rd y guarda este resultado en el registro Rd y en la dirección de memoria
dada Rn+ExtImm, y finalmente actualiza el PC. Esta instrucción reemplaza a LDR. La instrucción tiene
el formato MACUM Rd, [Rn + ExtImm] y su descripción RTL es la siguiente:
1 R[ Rd ] <− DM[ Rn + ExtImm ] ∗DM[ Rn + ExtImm + 4 ] + R[ Rd ] ;
2 DM[ Rn + ExtImm ] <− DM[ Rn + ExtImm ] ∗DM[ Rn + ExtImm + 4 ] + R[ Rd ] ;
3 PC <− PC +4;

1
Tarea 2 - Procesadores Arquitectura de Computadores 2018-1

Agregue la instrucción MACUM al procesador multicilo. Minimice la cantidad de ciclos de ejecución


de la instrucción. Puede agregar multiplexores (con sus señales de control) y cables, pero no sumadores,
registros nu unidades funcionales. Asuma que la ALU realiza una multiplicación de 32 bits con el código
ALUControl = 11 (reemplaza a la operación OR). Se puede asumir que la instrucción ORR no existe.
Escriba un microprograma para la instrucción e indique las modificaciones necesarias para
la sección de datos.

3. Problema 3 - Pipeline Superescalar


Considere un procesador superescalar ARM con despacho de instrucciones estático, que puede iniciar
la ejecución de dos instrucciones por ciclo, siempre y cuando estas sean una del tipo Load/Store o Branch
y la otra del tipo ALU o comparación; si dos instrucciones consecutivas no cumplen las condiciones para
ser despachadas simultáneamente, se deben rellenar los espacios con NOP. Este procesador cuenta con un
pipeline regularizado de 10 etapas: 2 de fecth, 1 de decode, 2 de ejecución, 3 de acceso a memoria y 2 de
writeback. Los saltos se resuelven al final de la etapa de ejecución. El predictor de saltos tiene una tasa
de aciertos del 80 %. Considere el siguiente código.
1 I1 : LDR R2 , [ R0 ]
2 I2 : ADD R2 , R2 , R1
3 I3 : STR R2 , [ R0 ]
4 I4 : LDR R3 , [ R0 , #1000]
5 I5 : ADD R3 , R3 , R1
6 I6 : MUL R3 , R2 , R3
7 I7 : STR R3 , [ R0 , #1000]
8 I8 : ADD R0 , R0 , #4
9 I9 : CMP R0 , #1000
10 I10 : BNE I1
a) Sin reordenar instrucciones, grafique la ejecución del código (incluyendo el forwarding de datos) y
calcule su CPI sostenido.

b) Reordene el código para maximizar su desempeño, grafique la ejecución del código reordena-
do(incluyendo el forwarding de datos) y calcule el CPI sostenido optimizado.

c) Se sabe que el lazo itera un número par de veces. Aplique loop unrolling x2 con reordenamien-
to y renombramiento de registros para optimizar el cpodigo original. Grafique la ejecución del código
(incluyendo el forwarding de datos) y calcule su CPI sostenido.
d) Calcule las aceleraciones de b) y c) con respecto a la ejecución de a) y la aceleración de c) con
respecto a b).
Tip: Utilice Excel o alguna planilla de cálculo par graficar la ejecución del código.

Anda mungkin juga menyukai