Organización del Computador
Parcial 2

B. Gonzalez Kriegel - N. Wolovick

19 de Mayo de 2000

  1. Dados los siguientes números binarios complemento a 2's de 6 bits $a=000111\ (7)$ y $b=100001\ (-31)$:
    1. Obtener el Booth recorded multiplier de ambos números.
    2. Contar la cantidad de operaciones de suma y complemento a 2's que debería realizar para multiplicar $a\!\times\!b$ y $b\!\times\!a$ usando el algoritmo de Booth.
    3. Multiplicar estos dos números eligiendo el orden de menor costo, donde suponemos que el costo está dado por la cantidad de operaciones de adición y complemento a 2's que genera el Booth recorded multiplier.

  2. Dado el siguiente circuito que implementa un tipo de carry skip adder(CSA):

    \begin{eqnarray*}
s_{i} & = & a_{i}\oplus b_{i}\oplus c_{i} \\
G_{i} & = & a_{i}.b_{i} \\
P_{i} & = & a_{i}+b_{i}
\end{eqnarray*}



    \includegraphics[keepaspectratio=true, height=20mm]{p2-e2_1.eps}

    \includegraphics[keepaspectratio=true, height=25mm]{p2-e2.eps}
    1. Obtener las expresiones para $c_{1}, \ldots, c_{4}$ a partir del diagrama.
    2. Calcular el máximo retardo de compuerta y en que salida/s se producen.

  3. Dado el siguiente programa de 2 instrucciones de la ISA de ARC:

    1. Dar el valor en decimal (por ejemplo como suma de potencias de 2) del registro %r1 luego de la ejecución del sethi.
    2. Indicar el rango de memoria que puede cubrir la instrucción ld, modificando su parámetro implícito de 13 bits con signo (simm13). Este rango también deberá ser expresado en decimal.
    sethi 0x80,%r1 $\stackrel{op}{\overline{\mbox{\texttt{00}}}}\ \stackrel{rd}{\overline{\mbox{\te...
...00}}}}\
\stackrel{imm22}{\overline{\mbox{\texttt{0000000000000010000000}}}}\ $
    ld %r1+a, %r2 $\stackrel{op}{\overline{\mbox{\texttt{11}}}}\ \stackrel{rd}{\overline{\mbox{\te...
...ox{\texttt{1}}}}\ \stackrel{simm13}{\overline{\mbox{\texttt{AAAAAAAAAAAAA}}}}\ $

  4. Se tiene el siguiente programa escrito en una stack machine, también conocida como arquitectura de 0 registros. Indicar que expresión calcula, es decir que valor queda en el tope del stack cuando se termina de ejecutar el programa.
    
            PUSH A
    	PUSH B
    	PUSH C
    	ADD
    	PUSH D
    	MULT
    	ADD
    





nicolas@turing.fis.uncor.edu