home .. forth .. misc mail list archive ..

No Subject


                      F21 Serial/Network Coprocessor
                             Network Topology
                           and Robotics Example
                                                          Jeff Fox 6/7/95

The F21 microprocessor contains a Serial/Network Coprocessor to facilitate
the construction of a network of computers, or a multiprocessing computer.
The Serial/Network Coprocessor scans the serial bit stream for instructions
and node addresses and provides DMA and CPU interrupt capability in
hardware.

Following are some explanations of possible network topologies, methods of
pre and post processing of network data, variations in network topologies,
and some robotics examples.

                      Simple F21 Network Topologies

1. Ring.          +-> F21 > F21 >-+
                  |               |
                  +-< F21 < F21 <-+

The F21 provides all the hardware you need to run a ring.  The ring
can operate in one of two modes, sequential or pipelined.  In the
sequential mode one or more processors are allowed to transmit at
one time.  In the pipelined mode half of the processors transmit at
one time, but none of them may echo data.

2. Star.
                 +-> F21 >--+
                 |          |
       +-> F21 >-+-> F21 >- or >-+
       |         |          |    |
       |         +-> F21 >--+    |
       +-------------------------+

The star mode might require amplifying the output of one F21, and will
require ORing the outputs of the nodes back to the hub processor input.
In this star only one F21 can echo, so only one can have the echo bit
turned on at a time.  This topology can not operate in the pipeline mode,
but it does permit more complex topologies to be constructed.

The star is possible because there is an echo bit in the network
configuration register.

When echo is turned on data is echoed with a 1 bit delay if there
is no DMA.  If the SOM header matches, then there is DMA to memory,
and then there is more than one bit delay, but if the echo bit
is on it will still echo.

       CPU Pre and Post Processing of Serial/Network Data

The code I wrote for preprocessing does 2 things, first it checks
for any sequence of five or more 0 or 1 bits a row.  (the actual
number may greater than 5, but 5 is the number in fiberchannel)
The second step is to check each data word against any assigned
SOM (or SOM group match).  If the data has too many consecutive
0 or 1 bits, or is a match to a SOM then it must be altered.
This is done by first simply xoring it with AAAAA to see if that
makes it legal.  Then when it is transmitted, at the end of the
the message the address and xor pattern of all corrected words
must be added to the message.

On the post processing all of these xored words must be corrected
before the message is finished.  A length, and a checksum, and
maybe some other stuff will be added to message packets also.

Since a DMA is always followed by an interrupt of the CPU, the CPU
will go to an interrupt routine.  It will determine from the 
configuration register that the source of interrupt was the network.
Then it will post process the message, and place the DMA transfer
into the real destination address rather than just to the communication
buffer where it is normally sent.

For simple remote interrupts, a short message can include the address
for the real interrupt (and checksum and maybe message number and length
or whatever extra stuff we add also).  Then after processing the data
in the normal manner from the interrupt vector to post process
a message transfer, it would then jump to the vector address in the
remote execute type transfer.

The Serial/Network Coprocessor is designed to be internally compatible
with operation at fiberchannel speeds of up to a gigahertz.  In
fiberchannel an 8 bit byte is changed into a 10 bit number with a table
lookup to get the safe data with no more than 4 consective 0 or 1 bits.
We can not do it this way with 20 bit numbers. We can not use a
20 bit table, or expand from 20 to 25 since the hardware sends 20 bit 
patterns.

Normally in a ring all processors will have the echo bit set except
the master processor.  The master processor will not normally echo,
but will be able to capture and retransmit messages that must go
past the master to get to an address upstream of that of the sender.

               Some variations in F21 network topologies.

1. Ring   +-> F21 > F21 >-+          * Advantage: ring or pipeline mode,
          |               |                       most general
          +-< F21 < F21 <-+

2. Star     +-> F21 >--+             * Only one processor at an OR gate
            |          |               will echo or transmit at one time
  +-> F21 >-+-> F21 >- or >-+
  |         |          |    |
  |         +-> F21 >--+    |
  +-------------------------+

3. Bridged rings   +-> F21 > F21 >-+
                   |               |
                   +-< F21 < F21 <-+
                              ||      Parallel Port as software bridge
                   +-> F21 > F21 >-+
                   |               |
                   +-< F21 < F21 <-+

4. Multiring (semi grid)

            +-> F21 > F21 > F21 > F21 >--+   * some piplelined operation
            |    ||    ||    ||    ||    |
  +-> F21 >-+-> F21 > F21 > F21 > F21 >- or >-+  || parallel port
  |         |    ||    ||    ||    ||    |    |
  |         +-> F21 > F21 > F21 > F21 >--+    |
  +-------------------------------------------+

5. Can of Worms *                  +-> F21 > F21 >--+
                                   |                |
            +-> F21 >-+            +-> F21 > F21 >- or > F21 > F21 >-+
            |         |            |                |                |
            +-< F21 <-+            +-> F21 > F21 >--+      +-< F21 <-+
                 ||                |                       |
            +-> F21 > F21 > F21 >--+                       |
            |                                              |
  +-> F21 >-+-> F21 > F21 > F21 > F21 > F21 > F21 - or >-+ |
  |         |                                       |    | |
  |         +-> F21 > F21 > F21 > F21 > F21 > F21 --+    | |
  |                                                      | |
  +-< F21 <---------------------------------------------< or
       ||
+---> F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 >-+
|      ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||   |
| +-< F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 <-+
| |    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||
| +-> F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 >-+
|      ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||   |
+---< F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 <-+

 * any combination of, ring, star, bridged rings, and multirings.

                           Robotic Examples

                   Simple F21 Robot Based on One F21

 camera ->     image recognition   image output  -> TV and RGB Monitor
  sound -> F21 speech recognition  speech output -> speaker
sensors ->     reflexes  planning  coordination  -> motors

            Anthropomorphic Robot Network Topology Example

This topology presents an example where a few F21 provide a standard
subsumption architecture reflexive base, some F21 are used for dedicated
I/O, and some F21 are used for specialized or generalized nervous system
functions.  The number of dedicated or general purpose processors can
be varied freely.  Software contains a combination of simulated
neural network reflexive behaviour, conventional expert systems that can
explain their reasoning, and agents that arbitrate the competing neural
nets and expert systems.  It is implemented on top of a network and OS
system layer and underlying F21 hardware.  The details of this particular
Anthropomorphic Robot Topology are somewhat arbitrary and is meant as an
example only.

                        +--------< F21 <-----------------------------------+
                        |                                                  |
                        +------------------------------+                   |
      Video Camera >--> F21          Video Camera >--> F21                 |
             Sound >--+ |                   Sound >--+ |                   |
                        |                              |                   |
      +---+---+---+---+-+-+---+---+      +---+---+---+-+-+---+---+---+     |
     F21 F21 F21 F21 F21 F21 F21 F21    F21 F21 F21 F21 F21 F21 F21 F21    |
      retinal - auditory neurons         retinal - auditory neurons        |
     F21 F21 F21 F21 F21 F21 F21 F21    F21 F21 F21 F21 F21 F21 F21 F21    |
      instantaneous and temporal              pattern recognizers          |
     F21 F21 F21 F21 F21 F21 F21 F21    F21 F21 F21 F21 F21 F21 F21 F21    |
      +---+---+---+---+---+---+---+      +---+---+---+---+---+---+---+     |
                    OR                                OR                   |
                    +---------------- OR -------------+                    |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+    |
     F21 F21 F21 F21 F21 F21 F21 F21     F21 F21 F21 F21 F21 F21 F21 F21   |
     3D imaging - object definition      speaker - sound identification    |
     F21 F21 F21 F21 F21 F21 F21 F21     F21 F21 F21 F21 F21 F21 F21 F21   |
              visual cortex                     audio memory               |
     F21 F21 F21 F21 F21 F21 F21 F21     F21 F21 F21 F21 F21 F21 F21 F21   |
      +---+---+---+---+---+---+---+      +---+---+---+---+---+---+---+     |
                    OR                                OR                   |
                    +---------------- OR -------------+                    |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+    |
     F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21   |
     F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21   |
     F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21   |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+    |
      memory        perception        OR      integration     language     |
                                      +---------------------------------+  |
  +-< F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 <-+  |
  |    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||      |
  +-> F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 >-+  |
       ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||   |  |
  +-< F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 < F21 <-+  |
  |   rationalization and logic     expert agents     management agents    |
  |                                                                        |
  |                                                                        |
  |      Subsumption Architecture Autonomic Nervous System in Body         |
  |        sensation            reflexes        motor control              |
  +-> F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 > F21 >----+
       ||    ||    ||    ||    ||    ||    ||    ||    ||    ||    ||
            sensors                                outputs