\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
{\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}
\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
\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
\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}
\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}
\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}
\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}
\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}
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
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
\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}{}
\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}
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
\hspace{-1cm}{\tt move}\\
\bitsMove
-\color{red}
\bitsFlush
\color{black}