11-jun
authoradam <adam@megacz.com>
Wed, 11 Jun 2008 19:37:48 +0000 (12:37 -0700)
committeradam <adam@megacz.com>
Wed, 11 Jun 2008 19:37:48 +0000 (12:37 -0700)
darcs-hash:20080611193748-5007d-d9eb9be4da1f7c32efabd580e4e3fdb9652ae65d.gz

am33.tex

index ce927e6..19eea2f 100644 (file)
--- a/am33.tex
+++ b/am33.tex
@@ -37,7 +37,7 @@
 %\pdfpagewidth 8.5in
 %\pdfpageheight 11in 
 %\topmargin 0in
-%\textheight 7.5in
+\textheight 7.9in
 %\textwidth 6.0in
 %\oddsidemargin 0.25in
 %\evensidemargin 0.25in
@@ -68,7 +68,8 @@ Changes:
 \begin{tabular}{rl}
 \color{red} 
 11-Jun
-& \color{red}  XXX \\
+& \color{red} Changed all uses of ``Payload'' to ``Immediate'' \color{black} (not in red) \\
+& \color{red} Reworked encoding of {\tt set} instruction \\
 \color{black} 
 06-Jun
 & Factored in Russell Kao's comments (thanks!)\\
@@ -463,10 +464,10 @@ The dock supports for instructions:
 
 \begin{bytefield}{26}
   \bitheader[b]{0,12,13}\\
-  \bitbox[1]{11}{\raggedleft {\tt moveto} ({\tt Payload\to Path})}
+  \bitbox[1]{11}{\raggedleft {\tt moveto} ({\tt Immediate\to Path})}
   \bitbox[r]{1}{}
   \bitbox{1}{\tt 1}
-  \bitbox{13}{\tt Payload}
+  \bitbox{13}{\tt Immediate}
 \end{bytefield}
 
 \begin{bytefield}{26}
@@ -529,38 +530,118 @@ counter, outer loop counter, and data latch.
 \setlength{\bitwidth}{5mm}
 {\tt
 \begin{bytefield}{26}
-  \bitheader[b]{0,13-15,16-20}\\
-\color{light}
+  \bitheader[b]{19-25}\\
   \bitsHeader
-\color{black}
   \bitbox{1}{1}
   \bitbox{1}{0} 
-  \bitbox{2}{SRC}
-  \bitbox{3}{DST}
-  \bitbox{14}{Payload} 
+\color{light}
+  \bitbox{5}{Dest} 
+  \bitbox{14}{} 
 \color{black}
 \end{bytefield}}
+
+\color{red}
+\begin{bytefield}{26}
+  \bitheader[b]{0,5,11-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Immediate}\to{\tt OLC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 10000}
+  \bitbox{3}{\tt 100}
+  \bitbox{5}{}
+  \bitbox{6}{\tt Immediate}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{11-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Data Latch}\to{\tt OLC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 10000}
+  \bitbox{3}{\tt 010}
+  \bitbox{11}{}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{11-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt OLC-1}\to{\tt OLC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 10000}
+  \bitbox{3}{\tt 001}
+  \bitbox{11}{}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{0,5,6,11-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Immediate}\to{\tt ILC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 01000}
+  \bitbox{3}{\tt 100}
+  \bitbox{4}{}
+  \bitbox{1}{\tt 0}
+  \bitbox{6}{\tt Immediate}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{6,11-18}\\
+  \bitbox[1]{6}{\raggedleft $\infty$\to{\tt ILC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 01000}
+  \bitbox{3}{\tt 100}
+  \bitbox{4}{}
+  \bitbox{1}{\tt 1}
+  \bitbox{6}{}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{11-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Data Latch}\to{\tt ILC}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 01000}
+  \bitbox{3}{\tt 010}
+  \bitbox{11}{}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{0,12,13-18}\\
+  \bitbox[1]{6}{\raggedleft \footnotesize {\tt 0-Extended Immediate}\to{\tt Data Latch}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 00100}
+  \bitbox{1}{\tt 0}
+  \bitbox{13}{\tt Immediate}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{0,12,13-18}\\
+  \bitbox[1]{6}{\raggedleft \footnotesize {\tt 1-Extended Immediate}\to{\tt Data Latch}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 00100}
+  \bitbox{1}{\tt 1}
+  \bitbox{13}{\tt Immediate}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{0,5,6,11,14-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Update Flags}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 00010}
+  \bitbox{2}{}
+  \bitbox{6}{\tt nextA}
+  \bitbox{6}{\tt nextB}
+\end{bytefield}
+
+\begin{bytefield}{26}
+  \bitheader[b]{0,12,14-18}\\
+  \bitbox[1]{6}{\raggedleft {\tt Immediate}\to{\tt TAPL}}
+  \bitbox[r]{1}{}
+  \bitbox{5}{\tt 00001}
+  \bitbox{1}{}
+  \bitbox{13}{\tt Immediate}
+\end{bytefield}
+
+\color{black}
+
 }
 \bitsSet
 
-\begin{center}{\tt
-\begin{tabular}{|r|r|l|l|}\hline
-Source & SRC & DST & Destination \\\hline
-\hline
-Payload            & 00 & 000 & OLC \\
-Data Latch         & 01 & 000 & OLC \\
-OLC-1              & 10 & 000 & OLC \\
-Payload            & 00 & 001 & ILC \\
-Data Latch         & 01 & 001 & ILC \\
-$\infty$           & 10 & 001 & ILC \\
-Payload            & 00 & 010 & TAPL \\
-Payload, 0-extend  & 01 & 100 & Data Latch \\
-Payload, 1-extend  & 10 & 100 & Data Latch \\
-       see below   &    & 111 & Flags \\
-\hline
-\end{tabular}
-}\end{center}
-
 The FleetTwo implementation is likely to have an unarchitected
 ``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}
@@ -568,34 +649,9 @@ with the possibly-extended literal {\it at the time that the {\tt set}
 latch when a {\tt set Data Latch} instruction
 executes\color{black}.
 
-If the {\tt Dest} field is {\tt flags}, the {\tt Payload} field is
-interpreted as two fields, each giving the truth table for the new
-value of one of the two user-settable flags:
-
-\begin{center}
-\setlength{\bitwidth}{5mm}
-{\tt
-\begin{bytefield}{26}
-  \bitheader[b]{0,5,6,11}\\
-\color{light}
-  \bitsHeader
-  \bitbox{1}{1}
-  \bitbox{1}{0} 
-\color{light}
-  \bitbox{2}{}
-\color{black}
-  \bitbox{3}{111}
-\color{light}
-  \bitbox{2}{}
-\color{black}
-  \bitbox{6}{nextA}
-  \bitbox{6}{nextB}
-\end{bytefield}}
-\end{center}
-\color{black}
-Each field has the following structure, and indicates which old flag
-values should be logically {\tt OR}ed together to produce the new flag
-value:
+Each of the {\tt nextA} and {\tt nextB} fields has the following
+structure, and indicates which old flag values should be logically
+{\tt OR}ed together to produce the new flag value:
 
 \begin{center}
 {\tt
@@ -623,15 +679,15 @@ be used to create a {\tt nop} (no-op) by setting each flag to itself.
 \pagebreak
 \subsection{{\tt shift}}
 
-\newcommand{\shiftPayloadSize}{19}
+\newcommand{\shiftImmediateSize}{19}
 
-Each {\tt shift} instruction carries a payload of \shiftPayloadSize\ 
-bits.  When a {\tt shift} instruction is executed, this payload is copied
-into the least significant \shiftPayloadSize\  bits of the data latch,
+Each {\tt shift} instruction carries an immediate of \shiftImmediateSize\ 
+bits.  When a {\tt shift} instruction is executed, this immediate is copied
+into the least significant \shiftImmediateSize\  bits of the data latch,
 and the remaining most significant bits of the data latch are loaded
 with the value formerly in the least significant bits of the data latch.
 In this manner, large literals can be built up by ``shifting'' them
-into the data latch \shiftPayloadSize\ bits at a time.
+into the data latch \shiftImmediateSize\ bits at a time.
 
 \newcommand{\bitsShift}{
 \setlength{\bitwidth}{5mm}
@@ -644,7 +700,7 @@ into the data latch \shiftPayloadSize\ bits at a time.
   \bitbox{1}{0} 
   \bitbox{1}{0} 
 \color{black}
-  \bitbox{\shiftPayloadSize}{Payload} 
+  \bitbox{\shiftImmediateSize}{Immediate} 
 \end{bytefield}}
 }
 \bitsShift