%==============================================================================
%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.8in}
\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 3}
\author{B. Gonzalez Kriegel - N. Wolovick}
\date{20 de Junio de 2000}

\begin{document}
\maketitle

\begin{enumerate}

	\item{Para el siguiente \emph{datapath} obtenga la \emph{secuencia de control} para realizar
		la operaci\'on	$r_{0} \leftarrow r_{0}\oplus r_{1}$.
		\begin{center}
		\begin{tabular}[t]{cc}
			\includegraphics[keepaspectratio=true, height=37mm]{p3e1.eps}
			&
			\begin{minipage}[t]{1.5in}
			\begin{scriptsize}
			\begin{tabular}{|cc|c|}
				\hline $F_{1}$ & $F_{0}$ & Funci\'on \\
				\hline 0 & 0 & ADD(A,B) \\
				\hline 0 & 1 & OR(A,B) \\
				\hline 1 & 0 & A  \\
				\hline 1 & 1 & NOT(A) \\
				\hline
			\end{tabular}
			\end{scriptsize}
			\end{minipage}
		\end{tabular}
		\end{center}
		La secuencia de palabras de control deber\'a ser dada en formato nemot\'ecnico
		$ r_{escr} \leftarrow op(r_{busA},r_{busB}) $
		y en formato binario como se muestra a continuaci\'on:
		\begin{scriptsize}
		\begin{center}
		\begin{tabular}{|c|c|c|c|c|c|c|c|}
			\multicolumn{2}{c|}{BusA} & \multicolumn{2}{c|}{BusB} &
				\multicolumn{2}{c|}{BusC} & \multicolumn{2}{c}{ALU} \\
			\hline 1 & 0 & 1 & 0 & 1 & 0 & $F_{1}$ & $F_{0}$ \\
			\hline &&&&&&&\\
			\hline
		\end{tabular}
		\end{center}
		\end{scriptsize}
	}
	
	
	\item{Se quiere implementar las funciones booleanas $A,B,C,D:{\bf B^{3}}\rightarrow {\bf B}$
		(X$\rightarrow$lsb) usando una tabla de b\'usqueda (\emph{lookup-table})
		en memoria de s\'olo lectura utilizando ROMs de 4 palabras y 4 bits por palabra
		($4\times 4$).
		\begin{center}
			\begin{tabular}{cccc}
			\begin{minipage}[b]{2in}
			\begin{footnotesize}
			\begin{eqnarray*}
				A(X,Y,Z) & = & {\textstyle \sum} m(1,2,4,6) \\
				B(X,Y,Z) & = & {\textstyle \sum} m(0,1,6,7) \\
				C(X,Y,Z) & = & {\textstyle \sum} m(2,6) \\
				D(X,Y,Z) & = & {\textstyle \sum} m(1,2,3,5,7)
			\end{eqnarray*}
			\end{footnotesize}
			\end{minipage}
			& & &
			\includegraphics[keepaspectratio=true, height=25mm]{p3e2.eps}
			\end{tabular}
		\end{center}
		\begin{enumerate}
			\item{Dise\~ne una ROM de $8\times 4$ con entradas $A_{2\cdots 0}$, $CS$ y
				salidas $D_{3\cdots 0}$ utilizando ROMs de $4\times 4$ como la que
				se muestra arriba m\'as un decodificador externo.}
			\item{Conecte las entradas y salidas de las funciones que se quieren implementar
				a la ROM constru\'{\i}da en el punto anterior y muestre en formato de tabla
				binaria locaci\'on/valor $(A_{1}A_{0},D_{3}D_{2}D_{1}D_{0})$ el contenido de las ROMs de $4\times 4$ que
				har\'{\i}an que el circuito implemente las funciones $A,B,C,D$.}
		\end{enumerate}
	}

	\item{El subsistema de memoria cache de nivel 1 para datos del microprocesador Alpha 21064
		divide la direcci\'on de memoria de 34 bits en campos \emph{tag}, \emph{set} y
		\emph{word} de la siguiente manera:
		\begin{center}
		\begin{footnotesize}
		\Prog{
		\begin{tabular}{|ccccccccccccccccccccc|cccccccc|ccccc|}
%			\multicolumn{21}{c}{} & \multicolumn{8}{c}{} & \multicolumn{5}{c}{} \\
			\multicolumn{21}{c}{Tag<21>} & \multicolumn{8}{c}{Set<8>} & \multicolumn{5}{c}{Word<5>}\\
			\hline &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& \\
			\hline
		\end{tabular}
		}
		\end{footnotesize}
		\end{center}
		
		\smallskip
		Tomando en cuenta que la asociatividad es 1, o sea mapeo directo, calcule:
		
		(a) Cantidad de ranuras
		(b) Cantidad de bytes por ranura que almacena, teniendo en cuenta que cada palabra es de un byte
		(c) Tama\~no total de almacenamiento de la cach\'e en kBytes
		(d) Tama\~no total \underline{en bits} de cada l\'{\i}nea, teniendo
			en cuenta los campos \emph{valid} y \emph{tag} asociados a cada
			ranura (el campo \emph{dirty} no es necesario porque esta
			cache implementa la pol\'{\i}tica \emph{write-through}).
	}

\end{enumerate}	
	

\end{document}