14-nov
authoradam <adam@megacz.com>
Fri, 14 Nov 2008 17:54:40 +0000 (09:54 -0800)
committeradam <adam@megacz.com>
Fri, 14 Nov 2008 17:54:40 +0000 (09:54 -0800)
darcs-hash:20081114175440-5007d-02d257fbbf89da36fbe6a0897c24eda75a61240e.gz

am33.tex

index 11f2503..45373b1 100644 (file)
--- a/am33.tex
+++ b/am33.tex
@@ -67,10 +67,13 @@ Changes:
 
 \begin{tabular}{rl}
 \color{red}
+14-Nov
+& \color{red} Roll back ``Distinguish {\tt Z}-flag from OLC=0'' \\
+& \color{red} Clarify what ``{\tt X-Extended}'' means \\
 07-Nov
-& \color{red} Distinguish {\tt Z}-flag from OLC=0\\
-& \color{red} Add {\tt flush} instruction\\
-& \color{red} Change {\t I} bit from ``Interruptable'' to ``Immune''\\
+& Distinguish {\tt Z}-flag from OLC=0\\
+& Add {\tt flush} instruction\\
+& Change {\t I} bit from ``Interruptable'' to ``Immune''\\
 20-Sep
 & Update hatch description to match \href{http://fleet.cs.berkeley.edu/docs/people/ivan.e.sutherland/ies50-Requeue.State.Diagram.pdf}{IES50} \\
 28-Aug
@@ -269,21 +272,6 @@ The diagram below shows an input dock for purposes of illustration:
 {\it an input dock}
 \end{center}
 
-%\subsection{The Hatch}
-%
-%\color{red}
-%
-%Note the mux on the path between {\tt EF} (epilogue fifo) and {\tt IF}
-%(instruction fifo); this is known as ``the hatch''.  The exact
-%behavior of the hatch is documented in
-%\href{http://fleet.cs.berkeley.edu/docs/people/ivan.e.sutherland/ies50-Requeue.State.Diagram.pdf}{IES50};
-%a summary of its behavior is included below.
-%
-%When an instruction arrives at the epilogue fifo ({\tt EF}), it waits
-%there until the hatch is in the unsealed state; the instruction then
-%enters the instruction fifo.  When an instruction emerges from the
-%instruction fifo, it arrives at the ``on deck'' ({\tt OD}) stage,
-%where it may execute.
 \color{black}
 
 \begin{center}
@@ -326,9 +314,9 @@ All instruction words have the following format:
 
 \begin{itemize}
 
-\item The {\tt I} bit stands for \color{red}{\tt Immune}\color{black},
+\item The {\tt I} bit stands for {\tt Immune},
   and indicates if an instruction is
-  \color{red}immune\color{black}\ to torpedoes.  This bit only appears
+  immune to torpedoes.  This bit only appears
   in {\tt move} instructions.
 
 \item The {\tt OS} (``One Shot'') bit indicates whether or not this
@@ -370,8 +358,8 @@ to {\tt 1}, {\it not to 0}).
 \color{black}
 \subsection{Flags and Predication}
 
-The pump has \color{red}four\color{black}\ flags: {\tt A}, {\tt B},
-{\tt C}, \color{red}and {\tt Z}\color{black}.
+The pump has four flags: {\tt A}, {\tt B},
+{\tt C}, and {\tt Z}.
 
 \begin{itemize}
 \item The {\tt A} and {\tt B} flags are general-purpose flags which
@@ -396,9 +384,8 @@ The pump has \color{red}four\color{black}\ flags: {\tt A}, {\tt B},
 \color{red}
 
 \item The {\tt Z} flag is known as the {\it zero} flag; it is set
-  whenever the {\tt OLC} is {\it decremented to zero} or a torpedo strikes, and is cleared
-  whenever the {\tt OLC} is loaded.  Note that loading the {\tt OLC}
-  with zero will actually {\it clear} the {\tt Z} flag.
+  whenever the {\tt OLC} is zero, and is cleared whenever the {\tt
+  OLC} is nonzero.
 
 \color{black}
 
@@ -413,13 +400,13 @@ order for an instruction to execute:
 \begin{center}
 \begin{tabular}{|r|l|}\hline
 Code       & Execute if \\\hline
-{\tt 000:} & \color{red}{\tt Z=0}\color{black}\   and {\tt A=0} \\
-{\tt 001:} & \color{red}{\tt Z=0}\color{black}\   and {\tt A=1} \\
-{\tt 010:} & \color{red}{\tt Z=0}\color{black}\   and {\tt B=0} \\
-{\tt 011:} & \color{red}{\tt Z=0}\color{black}\   and {\tt B=1} \\
+{\tt 000:} & {\tt Z=0}\   and {\tt A=0} \\
+{\tt 001:} & {\tt Z=0}\   and {\tt A=1} \\
+{\tt 010:} & {\tt Z=0}\   and {\tt B=0} \\
+{\tt 011:} & {\tt Z=0}\   and {\tt B=1} \\
 {\tt 100:} & Unused  \\
-{\tt 101:} & \color{red}{\tt Z=1}\color{black}\   \\
-{\tt 110:} & \color{red}{\tt Z=0}\color{black}\   \\
+{\tt 101:} & {\tt Z=1}\   \\
+{\tt 110:} & {\tt Z=0}\   \\
 {\tt 111:} & always  \\
 \hline\end{tabular}
 \end{center}
@@ -451,10 +438,10 @@ To avoid deadlock, the programmer must ensure that:
 
 \item If a requeueable instruction is preceded by a one-shot
   instruction or a {\tt tail}, then it must be the case that
-  \color{red}{\tt Z=0}\color{black}\ both before and after the first
+  {\tt Z=0} both before and after the first
   time that instruction executes.
 
-\item If \color{red}{\tt Z=1}\color{black}, only a one-shot instruction may set it to a
+\item If {\tt Z=1}, only a one-shot instruction may set it to a
       nonzero value.
 
 \end{itemize}
@@ -470,7 +457,7 @@ The dock guarantees that:
 
 \item Once a {\tt tail} instruction reaches the hatch, no further
       instructions will be enqueued until a requeueable instruction
-      reaches the execution stage and \color{red}{\tt Z=1}\color{black}.
+      reaches the execution stage and {\tt Z=1}.
 
 \end{itemize}
 
@@ -484,7 +471,7 @@ started:
 \item Requeueing:
       \begin{itemize}
       \item If the instruction on deck is a requeueable instruction
-        ({\tt OS=0}) and \color{red}{\tt Z=0}\color{black}, a copy of
+        ({\tt OS=0}) and {\tt Z=0}, a copy of
         the instruction is requeued.
       \end{itemize}
 
@@ -495,9 +482,9 @@ started:
       section on predicates), do nothing.
 
       \item
-      {\it Otherwise} if the instruction is interruptible ({\tt I=\color{red}0\color{black}})
+      {\it Otherwise} if the instruction is interruptible ({\tt I=0})
       and a torpedo is present in the waiting area: consume the
-      torpedo, \color{red}set the {\tt Z} flag\color{black}\ and
+      torpedo, set the {\tt Z} flag and
       set the inner loop counter to one ({\tt ILC=1}).
 
       \item
@@ -595,7 +582,6 @@ be set:
       Ti} is set.
 \end{itemize}
 
-\color{red}
 The {\tt flush} instruction is a variant of {\tt move} which is valid
 only at input docks.  It has the same effect as {\tt deliver}, except
 that it sets a special ``flushing'' indicator along with the data
@@ -603,17 +589,14 @@ being delivered.
 
 \newcommand{\bitsFlush}{\setlength{\bitwidth}{5mm}
 {\tt
-\color{red}
 \begin{bytefield}{26}
   \bitheader[b]{14-18}\\
-  \bitbox[r]{7}{\raggedleft{\tt flush\ \ }} 
+  \bitbox[r]{7}{\raggedleft{\tt flush}}
   \bitbox{1}{\tt 0}
 \color{black}
-\color{red}
   \bitbox{1}{\tt 0}
   \bitbox{1}{\tt 1}
 \color{light}
-\color{red}
   \bitbox{1}{\tt 0}
   \bitbox{1}{\tt 0}
   \bitbox{14}{}
@@ -713,10 +696,16 @@ counter, outer loop counter, and data latch.
 
 \begin{bytefield}{26}
   \bitheader[b]{0,13-18}\\
-  \bitbox[1]{6}{\raggedleft \footnotesize {\tt X-Extended Immediate}\to{\tt Data Latch}}
+  \bitbox[1]{6}{\raggedleft \footnotesize {\tt Sign-Extended Immediate}\to{\tt Data Latch}}
   \bitbox[r]{1}{}
   \bitbox{4}{\tt 0010\color{black}}
-  \bitbox{1}{\tt X}
+  \bitbox{1}{\begin{minipage}{0.5cm}{
+\begin{center}
+\tt{\footnotesize{Si
+
+\vspace{-2mm}gn}}
+\end{center}}
+\end{minipage}}
   \bitbox{14}{\tt Immediate}
 \end{bytefield}
 
@@ -741,7 +730,14 @@ The FleetTwo implementation is likely to have an unarchitected
 with the possibly-extended literal {\it at the time that the {\tt set}
   instruction comes on deck}.  This latch is then copied into the data
 latch when a {\tt set Data Latch} instruction
-executes\color{black}.
+executes.
+
+\color{red}
+The {\tt Sign-Extended Immediate} instruction copies the {\tt
+Immediate} field into the least significant bits of the data latch.
+All other bits of the data latch are filled with a copy of the
+bit marked ``{\tt Sign}.''
+\color{black}
 
 Each of the {\tt nextA} and {\tt nextB} fields has the following
 structure, and indicates which old flag values should be logically
@@ -986,7 +982,6 @@ instruction fifo.
 
 \hspace{-1cm}{\tt move}\\
 \bitsMove
-\color{red}
 \bitsFlush
 \color{black}