% -*- Mode:Text  -*- 
     
\chapter{Block structure}\label{sect.block-structure}

In the \step{} architecture, the minimal functional unit is the
individual module: realizations of arbitrary size can be built by
simple iteration of this basic unit.

However, for reasons of concrete interconnection geometry it is
desirable to introduce a larger ``prefabricated'' structure, called a
{\em block}, consisting of eight sectors that stand in a distinguished
geometrical relationship with one another within \step{} space.
This logical grouping of sectors is reflected in the implementation,
where the eight modules that realize the eight sectors of a block are
housed in the same physical {\em box} (\cf{system-overview} and
\sect{block-wiring}).

We have seen (\sect{sites-layers}) that the topology of the three
extendible dimensions of \step{} space is that of a 3-torus.
The block structure discussed here provides a systematic way to embed
the 3-torus into ordinary {\em 3-space} (three-dimensional space) in
such a way that
 \begin{itemize}
	\item Boxes can be stacked in a plain, orthogonal, three-dimensional
array (no curving of the array to make opposite ends meet).
	\item No matter what size the array, modules that realize
logically contiguous sectors are found in adjacent boxes. This
arrangement avoids size-dependent propagation delays.
 \end{itemize}

\section{Background}

As mentioned in \sect{sectors}, each \step{} module is responsible for
storing and updating the dynamical variables associated with a {\em
sector}, i.e., a parallelepiped-shaped portion of simulation space.  A
sector exchanges information with contiguous sectors, along the three
extendible dimensions $x$, $y$, and $z$, through its six
faces---labeled $x_-$, $x_+$, \ldots, $z_-$, $z_+$ as in \fig{faces}.

Since a module scans the sites of its sector {\em sequentially}
(\cf{scanner}), data communication between contiguous modules is
handled serially by serial {\em glue ports}, using a modest number of
pins. For the purposes of the present chapter, a glue port's detailed
structure and the direction of data flow (in or out of a module) on a
particular port line at a given moment are irrelevant; all that
matters is that the glue ports handle the flow of information in and
out of a sector's faces.

The assignment of a specific glue port to a specific face
is software-reconfigurable. Here, by `glue port $x_-$', say, we shall mean
whatever port has been assigned to face $x_-$.


\section{Wraparound}

In some applications, the simulation volume represented by an array of
\step{} sectors arranged as in \fig{big-crate} will correspond to a
similarly shaped volume of the system under study.  The exposed faces
which delimit this volume represent the interface between the
simulated portion of the system and the rest of the system which
surrounds it; the latter is not explicitly modeled within the \step{}
machine. In these circumstances, it is up to the experimenter to feed
appropriate boundary conditions (e.g., constant, random)
to the exposed faces so as to approximate the influence of the
surroundings.\footnote
	{This can be done in a variety of ways, as explained
elsewhere.\relax \plug{boundary conditions}}

 \figonegiven{cylinder}{\psfig{file=fig/cylinder.ps}}{Two-dimensional
array wrapped around in one dimension ({\em cylinder}).}
 \figonegiven{torus}{\psfig{file=fig/torus.ps}}
{Two-dimensional array wrapped around in two dimensions ({\em torus}).}

However, in most applications (and chiefly in those of a more
conceptual nature) the experimenter will prefer to model a
self-contained system having no distinguished boundaries.  To
this purpose, one can bend the \step{}-space volume back onto itself,
directly connecting each exposed face to the corresponding one on the
opposite side.\footnote
	{Physicist often use the term `periodic boundary conditions'
for such an arrangement.}
	\fig{cylinder} shows a two-dimensional array
wrapped around in one dimension (cylinder), while \fig{torus} shows
a two-dimensional array wrapped around in both dimensions (torus).

With \step, the most demanding situation is when a three-dimensional
array as that of \fig{big-crate} is to be wrapped around in all three
dimensions, yielding a {\em 3-torus}. That is, how is this functional
wraparound going to be achieved physically?

A simple way is to arrange the modules in straight rows as in
\fig{big-crate}, and join ports at opposite ends with
long ``return'' cables, as shown in \fig{wrap-one} for one dimension.

 \figonegiven{wrap-one}{\relax
 \begin{picture}(224,40)(-112,-24)
	\thicklines
	\multiput(-88,16)(48,0){4}{\line(1,0){32}}
	\multiput(-88,16)(48,0){4}{\line(0,-1){32}}
	\multiput(-88,-16)(48,0){4}{\line(1,0){32}}
	\multiput(-56,16)(48,0){4}{\line(0,-1){32}}
	\multiput(-56,0)(48,0){3}{\line(1,0){16}}
	\put(-88,-24){\line(1,0){176}}
	\put(-88,-12){\oval(40,24)[l]}
	\put(88,-12){\oval(40,24)[r]}
	\multiput(-88,-4)(48,0){4}{\makebox(32,8)[tl]{$\;x_-$}}
	\multiput(-88,-4)(48,0){4}{\makebox(32,8)[tr]{$x_+$}}
 \end{picture}
 }{Wraparound of modules, in one dimension.}
 
\noindent However, as the number of modules in a row increases, such an
arrangement would lead to proportionally longer propagation delays,
and the clock rate would have to be slowed down correspondingly.


\section{\Step{} blocks}\label{sect.cam-blocks}

Let us consider now the {\em interleaved} arrangement of
\fig{wrap-fix}, where both legs of a round trip are evenly strewn
with modules.  In this arrangement the physical distance between
logically contiguous sectors is somewhat greater than in
\fig{wrap-one}, but the need for a return wire of unbounded length is
eliminated.

 \figonegiven{wrap-fix}{\relax
 \begin{picture}(224,56)(-112,-40)
	\thicklines
	\multiput(-88,16)(96,0){2}{\line(1,0){32}}
	\multiput(-88,16)(96,0){2}{\line(0,-1){32}}
	\multiput(-88,-16)(96,0){2}{\line(1,0){32}}
	\multiput(-56,16)(96,0){2}{\line(0,-1){32}}
	\multiput(-96,0)(96,0){2}{\line(1,0){8}}
	\multiput(-56,0)(96,0){2}{\line(1,0){56}}

	\multiput(-40,-8)(96,0){2}{\line(1,0){32}}
	\multiput(-40,-8)(96,0){2}{\line(0,-1){32}}
	\multiput(-40,-40)(96,0){2}{\line(1,0){32}}
	\multiput(-8,-8)(96,0){2}{\line(0,-1){32}}
	\multiput(-96,-24)(96,0){2}{\line(1,0){56}}
	\multiput(-8,-24)(96,0){2}{\line(1,0){8}}

	\put(-96,-12){\oval(24,24)[l]}
	\put(96,-12){\oval(24,24)[r]}
	\multiput(-88,-4)(96,0){2}{\makebox(32,8)[tl]{$\;x_-$}}
	\multiput(-88,-4)(96,0){2}{\makebox(32,8)[tr]{$x_+$}}
	\multiput(-40,-28)(96,0){2}{\makebox(32,8)[tl]{$\;x_+$}}
	\multiput(-40,-28)(96,0){2}{\makebox(32,8)[tr]{$x_-$}}
 \end{picture}
 }{Interleaved wraparound, in one dimension.}

\fig{wrap-fix} suggests that in the interleaved arrangements
individual modules may be left in essentially the same physical
position as in \fig{wrap-one} (and, in three dimensions, as in
\fig{big-crate}); only their interconnection is modified.  While the
new interconnection may entail a longer propagation delay, the extra
delay is a {\em fixed} one, independent of the number of modules in
the chain.\footnote
	{A closer packing of modules in the given dimension is of
course possible, but that only at the cost of building up
thickness---and thus propagation delays---in another dimension.}

\medskip

The interleaved arrangement of \fig{wrap-fix} consists of two parallel
{\em strands} of modules, one with the $x_+$ ports facing rightward
and one leftward (and conversely for $x_-$). 
With this arrangement, the minimal repetitive unit is no longer
the individual module, but a {\em block} of two modules---one
from each strand---as shown in \fig{wrap-block}. Though in close
physical proximity, the two modules of a block are not connected to
one another within the block itself.

 \figonegiven{wrap-block}{\relax
 \begin{picture}(224,64)(-112,-44)
	\thicklines
	\multiput(-88,16)(96,0){2}{\line(1,0){32}}
	\multiput(-88,16)(96,0){2}{\line(0,-1){32}}
	\multiput(-88,-16)(96,0){2}{\line(1,0){32}}
	\multiput(-56,16)(96,0){2}{\line(0,-1){32}}
	\multiput(-96,0)(96,0){2}{\line(1,0){8}}
	\multiput(-56,0)(96,0){2}{\line(1,0){56}}

	\multiput(-40,-8)(96,0){2}{\line(1,0){32}}
	\multiput(-40,-8)(96,0){2}{\line(0,-1){32}}
	\multiput(-40,-40)(96,0){2}{\line(1,0){32}}
	\multiput(-8,-8)(96,0){2}{\line(0,-1){32}}
	\multiput(-96,-24)(96,0){2}{\line(1,0){56}}
	\multiput(-8,-24)(96,0){2}{\line(1,0){8}}

	\put(-96,-12){\oval(24,24)[l]}
	\put(96,-12){\oval(24,24)[r]}
	\multiput(-88,-4)(96,0){2}{\makebox(32,8)[tl]{$\;x_-$}}
	\multiput(-88,-4)(96,0){2}{\makebox(32,8)[tr]{$x_+$}}
	\multiput(-40,-28)(96,0){2}{\makebox(32,8)[tl]{$\;x_+$}}
	\multiput(-40,-28)(96,0){2}{\makebox(32,8)[tr]{$x_-$}}
	\thinlines
	\multiput(-92,-44)(96,0){2}{\dashbox{2}(88,64){}}
 \end{picture}
 }{With interleaved wraparound, the minimal
repetitive unit is a two-module {\em block}.}

In \step, the above doubling up and interleaving of module chains is
carried out for all three dimensions, leading to a minimal repetitive
unit consisting of an eight-module block. A block can be thought of as
a sector-size ``window'' on the eight three-dimensional strands that
run parallel to one another when the 3-torus is ``squashed'' onto
ordinary 3-space.  Figures \ref{fig.squashed} and \ref{fig.4strand}
illustrate the analogous situation in two dimensions.

\figonegivenp{squashed}{\psfig{file=fig/squashed.ps}}{A two-dimensional
torus, which is usually visualized as embedded in three-dimensions,
here is shown in the process of being ``squashed'' onto
two-dimensions. Like a folded handkerchief, the resulting structure has a
``thickness'' of four two-dimensional layers, or {\em strands}.}

\figonegivenp{4strand}{\psfig{file=fig/4strand.ps}}{In the squashed
torus of \protect\fig{squashed}, a {\em block} is a sector-size window
cutting through all four two-dimensional strands.}

Note that, just as in the one-dimensional case there are two separate
strands of one-dimensional space that run parallel to one another but
with {\em opposite orientations} within a block (cf.\
\fig{wrap-block}), and in the two-dimensional case there are four
separate strands of two-dimensional space (\fig{4strand}), thus in
three dimensions each block is traversed by {\em eight} separate
strands of 3-space, one for each of the eight possible orientations.

These eight strand orientations (and thus the eight sectors within a
block) will be labeled by three binary parameters, $s_x$, $s_y$, and
$s_z$, defined as follows. For a given strand, we'll let $s_x$=0 if
the $x_+$ ports of that strand face in the positive $x$ direction of
physical space, and $s_x$=1 if they face in the opposite direction
(cf.\ \fig{wrap-block}); and similarly for $s_y$ and $s_z$.  To each of the
eight strands there will correspond a different value of the triplet
$\langle s_x,s_y,s_z \rangle$, which can also be interpreted in an
obvious way as an integer $S$ in the range 0--7,
as in the following table
 \begin{equation}\label{eq.strands}
 \let\slab=\bullet
 \begin{array}{|c|c|}\hline
	s_xs_ys_z & S\\\hline\hline
	000 & 0\\
	100 & 1\\
	010 & 2\\
	110 & 3\\
	001 & 4\\
	101 & 5\\
	011 & 6\\
	111 & 7\\\hline
 \end{array}.
 \end{equation}

\medskip

To each of the eight strands the block contributes
a six-ported module, for a total of 8 modules and 48 ports in each
block, as detailed in the following table \eq{block-ports}

 \begin{equation}\label{eq.block-ports}
 \let\slab=\bullet
 \begin{array}{|cc||c@{}c|c@{}c|c@{}c|}\hline
	\multicolumn{2}{|c||}{\rm strand} & \multicolumn{6}{c|}{\rm ports}\\
	s_xs_ys_z& S & \multicolumn{1}{c@{}}{x_-} & \multicolumn{1}{@{}c|}{x_+}
	      & \multicolumn{1}{c@{}}{y_-} & \multicolumn{1}{@{}c|}{y_+}
	      & \multicolumn{1}{c@{}}{z_-} & \multicolumn{1}{@{}c|}{z_+}\\\hline\hline
	000 & 0 & \slab & \slab & \slab & \slab & \slab & \slab\\
	100 & 1 & \slab & \slab & \slab & \slab & \slab & \slab\\
	010 & 2 & \slab & \slab & \slab & \slab & \slab & \slab\\
	110 & 3 & \slab & \slab & \slab & \slab & \slab & \slab\\
	001 & 4 & \slab & \slab & \slab & \slab & \slab & \slab\\
	101 & 5 & \slab & \slab & \slab & \slab & \slab & \slab\\
	011 & 6 & \slab & \slab & \slab & \slab & \slab & \slab\\
	111 & 7 & \slab & \slab & \slab & \slab & \slab & \slab\\\hline
 \end{array}
 \end{equation}

\noindent Each of a blocks's 48 glue ports, represented here by
black dots, is uniquely identified by a face label ($x_-$, $x_+$,
\ldots, $z_+$) and a strand label ($S=0,\ldots,7$).

Blocks can be physically implemented so that adjacent blocks directly
mate both mechanically and electrically.

 
\section{Block wiring}\label{sect.block-wiring}

This section may be skipped on first reading. It contains
implementation notes that properly belong to Part II.  However, it was
found more convenient for reference purposes to put all block-related
material in one chapter.

\subsection{Block wiring, naive}\label{sect.naive-wiring}

In the present realization, a \step{} module consists
of a {\em board} having all of its connectors on one edge, as in \fig{board},
and a \step{} block will consist of a {\em box} containing a card
cage with a backplane where eight of these boards can be plugged in.

 \figonegiven{board}{
 \setlength{\unitlength}{1.25pt}
 \begin{picture}(184,56)(-16,-8)
	\thicklines
	\put(-8,24){\oval(16,48)[l]}	% left oval side
	\put(160,24){\oval(16,48)[r]}	% left oval side
	\put(-8,48){\line(1,0){168}}	% top edge
	\multiput(0,0)(56,0){3}{\line(0,-1){4}}
	\multiput(16,0)(56,0){3}{\line(0,-1){4}}
	\multiput(24,0)(56,0){3}{\line(0,-1){4}}
	\multiput(40,0)(56,0){3}{\line(0,-1){4}}
	\multiput(-8,0)(56,0){3}{\line(1,0){8}}
	\multiput(16,0)(56,0){3}{\line(1,0){8}}
	\multiput(40,0)(56,0){3}{\line(1,0){8}}
	\multiput(0,-4)(56,0){3}{\line(1,0){16}}
	\multiput(24,-4)(56,0){3}{\line(1,0){16}}
	\put(8,0){\makebox(0,0){$\;x_-$}}
	\put(32,0){\makebox(0,0){$\;x_+$}}
	\put(64,0){\makebox(0,0){$\;y_-$}}
	\put(88,0){\makebox(0,0){$\;y_+$}}
	\put(120,0){\makebox(0,0){$\;z_-$}}
	\put(144,0){\makebox(0,0){$\;z_+$}}
 \end{picture}}
 {\Step{} module board, showing the six glue port connectors.}

\noindent For such a realization of a \step{} block, table
\eq{block-ports} can be interpreted as a template for the backplane,
indicating the eight slots (horizontal rows) and, for each slot, the
position of the six glue-port connectors.

Using this template, \fig{naive-wiring} shows in its essentials the
actual wiring between boxes. We only show the wiring for strand 0, and
then only for the $x$ and $y$ dimensions (the wiring for the $z$
dimension would go ``through the page'').

 \figonegivenp{naive-wiring}{\psfig{file=fig/naive-wiring.ps,height=2.5in}}
{Backplane wiring for an indefinitely extended array of \step{} boxes,
with no wraparound. Four boxes are shown, and only the wiring for
strand 0. The arrow direction goes from a `$+$' port to a `$-$' port
(cf.\ table \protect\eq{block-ports}).}
 \figonegivenp{naive-wrap}{\psfig{file=fig/naive-wrap.ps,height=2.5in}}{How
strands are connected at the edges of the array to form loops.}

Still using template \eq{block-ports}, \fig{naive-wrap} shows the
actual placement of the shorting plugs (cf.\ \fig{wrap-block}) at the
edges of the array (using an array that is two blocks deep in both
the $x$ and $y$ dimensions; as in \fig{naive-wiring}, the $z$
interconnections are not shown). With these plugs, strand 0 forms a
single loop with strand 1 in the $x$ dimension, and with strand 2 in
the $y$ dimensions (in the $z$ dimension, it would loop back as strand
4).


\subsection{Single-block wiring}

For a small \step{} system consisting of just one block
(eight modules), each dimension exhausts itself within
the block, as indicated by the following diagram for just the $x$
dimension
 $$
 \begin{picture}(124,64)(-112,-44)
	\thicklines
	\multiput(-88,16)(96,0){1}{\line(1,0){32}}
	\multiput(-88,16)(96,0){1}{\line(0,-1){32}}
	\multiput(-88,-16)(96,0){1}{\line(1,0){32}}
	\multiput(-56,16)(96,0){1}{\line(0,-1){32}}
	\multiput(-96,0)(96,0){1}{\line(1,0){8}}
	\multiput(-56,0)(96,0){1}{\line(1,0){56}}

	\multiput(-40,-8)(96,0){1}{\line(1,0){32}}
	\multiput(-40,-8)(96,0){1}{\line(0,-1){32}}
	\multiput(-40,-40)(96,0){1}{\line(1,0){32}}
	\multiput(-8,-8)(96,0){1}{\line(0,-1){32}}
	\multiput(-96,-24)(96,0){1}{\line(1,0){56}}
	\multiput(-8,-24)(96,0){1}{\line(1,0){8}}

	\put(-96,-12){\oval(24,24)[l]}
	\put(0,-12){\oval(24,24)[r]}
	\multiput(-88,-4)(96,0){1}{\makebox(32,8)[tl]{$\;x_-$}}
	\multiput(-88,-4)(96,0){1}{\makebox(32,8)[tr]{$x_+$}}
	\multiput(-40,-28)(96,0){1}{\makebox(32,8)[tl]{$\;x_+$}}
	\multiput(-40,-28)(96,0){1}{\makebox(32,8)[tr]{$x_-$}}
	\thinlines
	\multiput(-92,-44)(96,0){1}{\dashbox{2}(88,64){}}
 \end{picture},
 $$

\noindent and the complete wiring diagram will appear as in
\fig{naive-one-block}.

 \figonegiven{naive-one-block}{
 \setlength{\unitlength}{1.5pt}
 \begin{picture}(72,72)(0,0)
	\thicklines
	\multiput(0,8)(24,0){3}{	% the dots
	 	\multiput(8,0)(0,8){8}{\circle*{2}}
		\multiput(16,0)(0,8){8}{\circle*{2}}}
	\multiput(8,8)(0,16){4}{\line(1,1){8}}
	\multiput(8,16)(0,16){4}{\line(1,-1){8}}

	\multiput(32,8)(0,8){2}{\line(1,2){8}}
	\multiput(32,24)(0,8){2}{\line(1,-2){8}}
	\multiput(32,40)(0,8){2}{\line(1,2){8}}
	\multiput(32,56)(0,8){2}{\line(1,-2){8}}

	\multiput(56,8)(0,8){4}{\line(1,4){8}}
	\multiput(56,40)(0,8){4}{\line(1,-4){8}}

	\thinlines
	\put(0,0){\dashbox{2}(72,72){}}
 \end{picture}}
 {Complete backplane wiring for a \step{} system consisting of a single
block.}

\sbox{\toy}{}

\subsection{Block wiring, improved}\label{sect.block-improved}

Each of the ``wires'' shown in \fig{naive-wiring} or
\fig{naive-one-block} is actually a collection of 16 lines (one per
layer), and typically will be implemented by a shielded flat cable.
Since such cables are stiff and bulky, it is desirable to route them
as neatly as possible, trying to keep them flat and parallel and
avoiding repeated crossings.

By systematically rearranging the order of modules within a box and
the order of ports within a module it is possible to arrive,
for a single block, at the wiring pattern of \fig{clever-one-block},
to be constrasted with that of \fig{naive-one-block}.
The improved wiring is arrived at as follows.

\medskip

\parhead{Port swapping} \fig{wrap-block} suggests that, if strand 0
loops back as strand 1 in the $x$ dimension, it would be more
convenient if the modules of strand 1 had their $x_+$, $x_-$ ports
arranged in the opposite order as those of strand 0. More generally,
a similar argument holds for the $u$-dimension ports ($u=x,y,z$) of
any pair of strands whose labels differ only in the $s_u$ digit
(cf.\ \eq{block-ports}).

In order to respond to design requirements of the above kind, in a
\step{} module the correspondence between logical ports ($x_+$,$x_-$,
etc.) and physical ports (the six connectors at the bottom of
\fig{board}) is software assignable rather than hardwired (cf.\
\sect{GPCR}). Taking advantage of this feature, one can
make the two $x$ ports appear on the edge of the board in the order
$x_-,x_+$ or $x_+,x_-$, depending on whether the $s_x$ bit is 0 or 1
(and similarly for $y$ and $z$), leading to the following backplane
template

 \begin{equation}\label{eq.block-ports-better}
 \begin{array}{|cc||c@{}c|c@{}c|c@{}c|}\hline
	\multicolumn{2}{|c||}{\rm strand} & \multicolumn{6}{c|}{{\rm ports}}\\
	s_xs_ys_z& S & \multicolumn{2}{c}{x} & \multicolumn{2}{c}{y}
		& \multicolumn{2}{c|}{z}\\\hline\hline
	000 & 0 & - & + & - & + & - & +\\
	100 & 1 & + & - & - & + & - & +\\
	010 & 2 & - & + & + & - & - & +\\
	110 & 3 & + & - & + & - & - & +\\
	001 & 4 & - & + & - & + & + & -\\
	101 & 5 & + & - & - & + & + & -\\
	011 & 6 & - & + & + & - & + & -\\
	111 & 7 & + & - & + & - & + & -\\\hline
 \end{array}
 \end{equation}

\medskip

\parhead{Strand swapping} Finally, we shall permute the boards
in the backplane's eight slots so that the strand labels $S$
are ordered according to {\em Gray code} rather than straight
{\em binary} code:

 \begin{equation}\label{eq.block-ports-best}
 \begin{array}{|cc||c@{}c|c@{}c|c@{}c|}\hline
	\multicolumn{2}{|c||}{\rm strand} & \multicolumn{6}{c|}{{\rm ports}}\\
	s_xs_ys_z& S & \multicolumn{2}{c}{x} & \multicolumn{2}{c}{y}
		& \multicolumn{2}{c|}{z}\\\hline\hline
	000 & 0 & - & + & - & + & - & +\\
	100 & 1 & + & - & - & + & - & +\\
	110 & 3 & + & - & + & - & - & +\\
	010 & 2 & - & + & + & - & - & +\\
	011 & 6 & - & + & + & - & + & -\\
	111 & 7 & + & - & + & - & + & -\\
	101 & 5 & + & - & - & + & + & -\\
	001 & 4 & - & + & - & + & + & -\\\hline
 \end{array}
 \end{equation}

\medskip

It is easy to verify that the port-and-strand arrangement of template
\eq{block-ports-best} indeed leads to the improved backplane wiring
pattern given in \fig{clever-one-block}. Similar methods can be used
to streamline backplane wiring in more complex situations, such as
that of \fig{naive-wrap}.

 \figonegiven{clever-one-block}{
 \setlength{\unitlength}{1.5pt}
 \begin{picture}(72,72)(0,0)
	\thicklines
	\multiput(0,8)(24,0){3}{	% the dots
	 	\multiput(8,0)(0,8){8}{\circle*{2}}
		\multiput(16,0)(0,8){8}{\circle*{2}}}
	\multiput(0,8)(0,16){4}{
		\multiput(8,0)(8,0){2}{\line(0,1){8}}}
	\multiput(0,16)(0,32){2}{
		\multiput(32,0)(8,0){2}{\line(0,1){8}}}
	\multiput(0,20)(0,32){2}{
		\multiput(32,0)(8,0){2}{\oval(8,24)[l]}}
	\multiput(56,36)(8,0){2}{\oval(4,24)[l]\oval(8,40)[l]\oval(12,56)[l]}
	\multiput(56,32)(8,0){2}{\line(0,1){8}}
	\thinlines
	\put(0,0){\dashbox{2}(72,72){}}
 \end{picture}}
 {Improved backplane wiring for a \step{} system consisting of a single
block.}

\endinput
