A reading/writing arm
(RW-arm) is an extensible organ provided with a head,
which retrieves information from a
tape formed by a
horizontal array of cell-states
holding as binary digits (bits). The RW-arm reads one bit at
time moving forwards or backwards
step-by-step without altering the tape. Most commonly, it hosts 4 horizontal lines, the
topmost of which is formed by ordinary transmission
states (blue right-arrows)
and is folded downwards by two down-arrows
at its right-end. Just below this there is a line formed by special transmission
states (red right-arrows).
In the figure above, this line-doublet is indicated as the working
arm. With this configuration,
the two lines can work in such a
way to mutually annihilate their respective terminal states, add to
each other new terminal states or
alter neighboring cell-states. These capabilities are necessary to implement the reading process.
The working arm receives inputs (via lines A, B) from suitable coders (control organs, not shown in the figure above) formed by coders,
decoders, switches, delay lines etc, which are arranged so as to generate activation
trains that make the RW-arm
retract, advance or retrieve
information. Just below the working
arm there is the tape formed
by a binary sequence of blue downward arrows (bit 1) spaced by vacuum states (bit 0). Just below this, there is a line formed by blue left-arrows, indicated as the collecting line, which is used to convey back to the automaton the activation trains
produced by the tape-reading process.
How the RW-arm
works
At a certain stage of the
tape-reading process, the blue line of the working arm conveys a spaced triplet of pulses arranged as 10101(1
= excited state; 0 = quiescent
state), which performs the bit-reading
process. Since the line is folded downwards at its right-end, any
possible blue down-arrow in the tape (bit 1)
lets the triplet to pass unchanged to the collecting line. By contrast, a vacuum
state in the tape
(bit 0) goes to a bridging
blue down-arrow (spurious state) by the first
two pulses of the triplet living the
third pulse to reach the collecting line.
Thus, a bit 1 in the tape results to an outgoing spaced triplet, whereas a 0 results
to a single outgoing pulse (singleton). At the end of the bit-reading process, these outgoing signals must be discriminated
and addressed to different output
lines by a suitable filtering organ. Note that reading a 1 or a 0 makes a difference. In the second case,
indeed, the spurious state must be annihilated
just after the bit-reading
process in order for the
original tape configuration to be
restored. This is accomplished by the insertion of a pulse
doublet (11) into the activation train sent to the red line of the working-arm during a certain stage of the process. Thus,
since the RW-arm must behave differently according as the tape-bit is a 1 or 0, the
one-step elongation or retraction
must be performed only after the result of the bit-reading process is returned.
This condition can be fulfilled in
two ways: (1) First
read then move. 2) First
move then read. In the first
case, the controls of the RW-arm must wait
for the end of bit-reading
process in order to be able to
perform the right move. In the
second case, the result of the bit-reading
process must be used to prepare the RW-arm controls for the
next move. The first way is conceptually simpler because the type of move depends directly on the type
of returned signal. The second
way is less time-expensive because there is no waiting time. The second way suits for self-reproducing
automata, where at start the first bit of the tape must be positioned close (but not inside) the
arm head. The automata described in the next paragraphs
provide concrete examples of how the
reading process works.
RW-arm for JVN
automata
The files RW-ARM_ADV.JVN,
RW-ARM_RET.JVN and RW-ARM_CONTROLS.JVN in folder JVN provide examples of RW-arms
governed by the JVN transition rule, which
read the tape respectively while advancing, retracting or moving either
ways. The reading process is of
the type first-read-then-move. The structures and the behaviors of these organs are described in detail in
a topic of the JVN-automaton gallery. To access folder JVN, simply open the File open dialog (button ) after
making sure that the item JVN
transition rules in menu Rules is
checked. After loading a file,
click button (Walk)
on the left-toolbar and watch in
detail what happens (adjust the step-time in the Timer
dialog, if necessary).
RW-ARM_ADV.JVN and RW-ARM_RET.JVN show the RW-arm
reading the tape while moving
forwards and moving backwards, respectively. In RW-ARM_CONTROL.JVN, a combination of these two
systems forms an RW-arm capable
of reading the tape either forwards or backwards, according to the state of a changeover switch. The RW-arms are initialized
for one bit-reading process
by an activation pulse (cyan right-arrow) set at the beginning of
the input line (indicated by IN in
gray diamonds). Subsequent reading operations can be performed by re-inputting an activation pulse. To initialize the automaton for reading forwards (backwards), input a pulse
to the line indicated by >> (<<) and
run it, before initializing and starting up the bit-reading processes. These lines
are the inputs of a switch that is stored apart as a fragment in the file LU_SWITCH.JFR (left-up-switch). The outputs of the reading
process returned by the collecting line are suitably decoded and re-coded before
reaching the output lines (OUT).
In particular, the spaced
triplet is re-encoded as a pulse
doublet and the singleton as two pulses
spaced by a quiescent cell.
RW-arm for EVN
automata
The files RW-ARM_BASICS_OLD.EVN,
RW-ARM_CONTROLS_OLD.EVN, RW-ARM_BASICS.EVN
and RW-ARM_CONTROLS.EVN in folder EVN provide examples of RW-arms governed by
the EVN transition rules. Both RW-ARM_BASICS_OLD.EVN
and RW-ARM_BASICS.EVN contain a pair of RW-arms, one reading while advancing and the other
reading while retracting. Both of them are activated for a bit-reading
process. To focus only on one
of them, deactivate the
input line of the other. In RW-ARM_CONTROLS_OLD.EVN and RW-ARM_CONTROLS.EVN, combinations of these
basic RW-arms form RW-arms that can be switched to either reading mode.
The arms in the files signed as _OLD
are build up with coders assembled as described in the von Neumann & Burks' book and are of the type
first-read-then-move. A
compact implementation of a RW-arm
is found in RW-ARM_COMPACT.EVN. Those in the other files have coders that are more compact
of the type first-move-then-read.
A dedicated topic of the EVN
automaton gallery
describes in detail their
structure and their behaviors. At variance with the JVN case, the use of confluent
states with crossing
functionality simplifies considerably the structure of these arms. In particular, the result of the
reading process is returned as a singleton via separate output-lines.