Changes:
\begin{tabular}{rl}
-\color{red} 06-Jun
-& \color{red} Factored in Russell Kao's comments (thanks!)\\
-& \color{red} Added mechanism for setting C-flag from fabric even on outboxes\\
-\color{red} 05-Jun
-& \color{red} Made {\tt OLC} test a predicate-controlled condition\\
-& \color{red} Rewrote ``on deck'' section \\
-& \color{red} Added ``{\tt unset}'' value for {\tt ILC}\\
-& \color{red} Changed {\tt DP} to {\tt DataPredecessor} for clarity\\
+\color{red}
+11-Jun
+& \color{red} XXX \\
+\color{black}
+06-Jun
+& Factored in Russell Kao's comments (thanks!)\\
+& Added mechanism for setting C-flag from fabric even on outboxes\\
+05-Jun
+& Made {\tt OLC} test a predicate-controlled condition\\
+& Rewrote ``on deck'' section \\
+& Added ``{\tt unset}'' value for {\tt ILC}\\
+& Changed {\tt DP} to {\tt DataPredecessor} for clarity\\
\color{black}
30-Apr
& added comment about address-to-path ship \\
Each dock consists of a {\it data latch}, which is as wide as a single
machine word and a {\it pump}, which is a circular fifo of
instruction-width latches. The values in the pump control the data
-latch. \color{red}The dock also includes a {\it path latch}, which
+latch. The dock also includes a {\it path latch}, which
stores the path along which outgoing packets will be sent.\color{black}
Note that the pump in each dock has a destination of its own; this is
the {\it instruction destination} mentioned in the previous section.
-\color{red} From any source to any dock's data destination there are
+From any source to any dock's data destination there are
two distinct paths which differ by a single bit. This bit is known as
the ``signal'' bit, and the routing of a packet is not affected by it;
the signal bit is used to pass control values between docks. Note that paths
loops may be nested within an outer loop, but no other nesting of
loops is allowed.
-\color{red}
The dock has two loop counters, one for each kind of loop:
\begin{itemize}
% operations (such as sending a completion token) only on the last
% iteration of an outer loop.
-\color{red}
\item The {\tt C} flag is known as the {\it control} flag, and may be
set by the {\tt move} instruction based on information from the
ship or from an inbound packet. See the {\tt move} instruction
\end{itemize}
-\color{red}
-
The {\tt P} field specifies a three-bit {\it predicate}. The
predicate determines which conditions must be true in order for the
instruction to execute; if it is not executed, it is simply {\it
ignored}. The table below shows what conditions must be true in
order for an instruction to execute:
-\color{red}
\begin{center}
\begin{tabular}{|r|ll|}\hline
-\color{red}Code & Execute & if \\\hline
+Code & Execute & if \\\hline
{\tt 000:} & {\tt OLC$\neq$0} & and {\tt A=0} \\
{\tt 001:} & {\tt OLC$\neq$0} & and {\tt A=1} \\
{\tt 010:} & {\tt OLC$\neq$0} & and {\tt B=0} \\
\pagebreak
\subsection{On Deck}
-\color{red}
-
When an instruction arrives on deck, two concurrent processes are
started. No subsequent instruction may come on deck until both
processes have completed:
The data successor and token successor must both be empty in order for
a {\tt move} instruction to attempt execution.
-\color{red}
-
Every time the {\tt move} instruction executes, the {\tt C} flag may
be set:
``literal latch'' at the on deck ({\tt OD}) stage, which is loaded
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 \color{red}a {\tt set Data Latch} instruction
+latch when a {\tt set Data Latch} instruction
executes\color{black}.
If the {\tt Dest} field is {\tt flags}, the {\tt Payload} field is