%==============================================================================
%TODO
%
%==============================================================================


\documentclass[legalpaper]{article}

\newcommand{\Prog}[1]{\texttt{#1}}
% Para escribir los campos de los formatos ARC ISA.
\newcommand{\Field}[2]{\stackrel{#1}{\overline{\mbox{\texttt{#2}}}}\ }

\setlength\topmargin{0in}
\setlength\textwidth{6.7in}
\setlength\oddsidemargin{0in}
\setlength\evensidemargin{0in}
\setlength\headheight{0in}
\setlength\headsep{0in}
\setlength\footskip{0in}

\pagestyle{empty}

\usepackage[spanish]{babel}
\usepackage[]{graphicx}

\title{Organizaci\'{o}n del Computador \\ Parcial 2}
\author{B. Gonzalez Kriegel - N. Wolovick}
\date{19 de Mayo de 2000}

\begin{document}
\maketitle

\begin{enumerate}

	\item{Dados los siguientes n\'umeros binarios complemento a 2's de 6 bits
		$a=000111\ (7)$ y $b=100001\ (-31)$:
		\begin{enumerate}
			\item{Obtener el \textsl{Booth recorded multiplier} de ambos n\'umeros.}
			\item{Contar la cantidad de operaciones de suma y complemento a 2's que deber\'{\i}a
				realizar para multiplicar $a\!\times\!b$ y $b\!\times\!a$ usando el algoritmo de Booth.}
			\item{Multiplicar estos dos n\'umeros eligiendo el orden de \emph{menor costo}, donde suponemos
				que el costo est\'a dado por la cantidad de operaciones de adici\'on y complemento a
				2's que genera el \textsl{Booth recorded multiplier}.}
		\end{enumerate}
	}
	
	\item{Dado el siguiente circuito que implementa un tipo de \textsl{carry skip adder}(CSA):
		
		

		\begin{center}
			\begin{tabular}{cc}
			\begin{minipage}[b]{2in}
			\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*}
			\end{minipage}
			&
			\includegraphics[keepaspectratio=true, height=20mm]{p2-e2_1.eps}
			\end{tabular}
			
			\includegraphics[keepaspectratio=true, height=25mm]{p2-e2.eps}
		\end{center}
		\begin{enumerate}
			\item{Obtener las expresiones para $c_{1}, \ldots, c_{4}$ a partir del diagrama.}
			\item{Calcular el m\'aximo retardo de compuerta y en que salida/s se producen.}
			%Censurado
			%\item{Recordar o calcular de manera r\'apida el m\'aximo retardo de compuerta de un
			%	RCA de 4 bits y decidir cual de los dos es m\'as r\'apido.}
		\end{enumerate}	
	}
	
	\item{Dado el siguiente programa de 2 instrucciones de la ISA de ARC:
	
		\begin{enumerate}
			\item{Dar el valor en decimal (por ejemplo como suma de potencias de 2) del registro
				\Prog{\%r1} luego de la ejecuci\'on del \Prog{sethi}.}
			\item{Indicar el rango de memoria que puede cubrir la instrucci\'on \Prog{ld},
				modificando su par\'ametro impl\'{\i}cito de 13 bits con signo (\Prog{simm13}).
				Este rango tambi\'en deber\'a ser expresado en decimal.}
		\end{enumerate}
		\begin{center}
		\begin{tabular}{ll}
			\Prog{sethi 0x80,\%r1}
			&
			$\Field{op}{00} \Field{rd}{00001} \Field{op2}{100}
			 \Field{imm22}{0000000000000010000000}$ \\
			
			\Prog{ld \%r1+a, \%r2}
			&
			$\Field{op}{11} \Field{rd}{00010} \Field{op3}{000000}
			 \Field{rs1}{00001} \Field{i}{1} \Field{simm13}{AAAAAAAAAAAAA}$
		\end{tabular}
		\end{center}
	}
	
	\item{Se tiene el siguiente programa escrito en una \textsl{stack machine}, tambi\'en conocida como
	 	arquitectura de 0 registros. Indicar que expresi\'on calcula, es decir que valor queda en
	 	el tope del stack cuando se termina de ejecutar el programa.
	 	\Prog{
	 	\begin{tabbing}
	 		\ \ \ \ \ \ \ \ \= PUSH \= A \\
	 		\> PUSH \> B \\
	 		\> PUSH \> C \\
	 		\> ADD \\
	 		\> PUSH \> D \\
			\> MULT \\
			\> ADD \\
	 	\end{tabbing}
	 	}
	}

\end{enumerate}

\end{document}


			$s_{i} = a_{i}\oplus b_{i}\oplus c_{i}$
			\linebreak
			$G_{i} = a_{i}.b_{i}$
			\newline
			$P_{i} = a_{i}+b_{i}$
