Alt-BEAM Archive

Message #10063



To: beam@sgiblab.sgi.com
From: AprLBrooke@aol.com
Date: Fri, 11 Feb 2000 10:29:49 EST
Subject: [alt-beam] Re: rich TI calculator site


Rich,

I've only been getting a blank page when I use this URL - not just this
morning, but a time or two yesterday.



In a message dated 2/10/00 11:20:58 PM Central Standard Time,
richfile@rconnect.com writes:

> Wrong
>
> http://richfiles.calc.org
>
> The xoom address hasn't been updated for a long time. I don't even
> remember the password!



10064 Fri, 11 Feb 2000 07:32:33 -0800 [alt-beam] Hypersaturation, wavefront processors, -Nv/+Nv et al "'beam@sgiblab.sgi.com'" Wilf Rigter THE Nv WAVEFRONT PROCESSOR PARADIGM

Not to be confused with the much more complex Wavefront processor used in
DSP arrays, Nvs are, in a very pure sense, logical wavefront processors
which transmit, inhibit, delay or generate wavefront transitions that mark
the boundaries of processes.

The Nv waveform processor paradigm can help to explain all possible process
states of an Nv loop including single, multiple, saturated and
hypersaturated states using the same terms of reference. To do this, it is
necessary to consider the signals in a Nv loop as dynamical "process
wavefronts" rather than static "process states". In that sense, a process
wavefront (any Nv output transition) will propagate through the Nv loop at
very high speed, changing the state of one or more Nv stages until the
wavefront propagation is inhibited. Not surprising, a wavefront propagates
through successive Nv stages if the phase polarity of the wavefront at the
Nv input is such that it causes a change of state in that Nv output.
Conversely, the wavefront is inhibited if the phase at the Nv input
re-enforces (is in phase with) the current state of the Nv. Before giving
examples of wavefront processing in Nv loops, it is useful to describe the
relationship between process states and patterns to the behaviour of signals
in Nv loops.

SINGLE PROCESS STATE

With a single process in a Nv loop, a single Nv is active at a time and each
Nv output produces a pulse in succession. The time constant (TC) of the
active Nv is independent of the other Nv time constants. Propagation of the
process from one Nv to the next is often described as "the end of one
process triggers the beginning of the next process". Simple and straight
forward in the single process case but that description is insufficient when
multiple processes are active in the Nv loop.

TWO PROCESSES IN A 6Nv LOOP EXAMPLE

For example, in a 6Nv loop 2 processes can be active at one time as long as
they are separated by at least one inactive Nv (exclusion principle). There
are several patterns used which describe one step in a sequence, for example
0,1,1,0,1,1. In that pattern the processes are completely independent of
each other, however since the process durations are also independent, the
next step may be 1,0,1,0,1,1 as Nv1 times out before Nv4 and triggers Nv2.
Note that this intermediate pattern has a different order of active and
inactive Nv and it's behaviour is quite different from other process states
with the same pattern. In the first example, the two processes may remain
independent. But this is not always the cases for example one that starts
with pattern 0,1,0,1,1,1,1 and/or where Nv1 has a time constant that is much
larger than the sum of the other Nv TCs. Then the sequence may progress as:

0,1,0,1,1,1
0,1,1,0,1,1
0,1,1,1,0,1
1,0,1,1,1,0

In accordance with the exclusion principle, the long Nv1 time constant will
be pre-empted. So in some cases two processes are independent and but
sometimes change in lockstep. In fact, 2 process pattern in a 6Nv loop with
significant differences in Nv TC may have a very complex development of
patterns or may simple converge on a lockstep pattern. Both the process
state or process pattern description are more or less useless to predict the
behaviour of 2 processes in an 6Nv or greater loop.

3 PROCESS/6Nv LOOP

According to the nNv/2 saturation rule, 3 processes in a 6Nv loop begets
saturation ie the maximum number of processes. But what does this tell us
about the behaviour of a saturated loop. No matter what significant
difference in Nv time constants, all Nv output pulses are in lockstep
because of the exclusion principle. The positive pulse width is set by the
shortest TC of Nv1,Nv3,Nv5 and the negative pulsewidth is set by the
shortest TC of Nv2,Nv4,Nv6. Huh?
So the most significant aspect of saturation is not "maximum process state"
but the loss of independent time constants. A bicore loop has only two Nvs
and with the maximum of 1 process would be considered to be saturated but
this process is completely independent as it propagates through each Nv and
is therefore the exception to the rule that in "saturated" loops processes
are not independent.

HYPERSATURATION IN NV LOOPS

This is the bugaboo of all processes in Nv loops. For example, a
hypersaturated 6Nv loop was described by Mark T. as:

"What happens is you get two processes "on" diametrically opposite neurons,
and two others between transitions from one neuron to another. The pattern
looks like this...

0.5, 0.5, 1, 0.5, 0.5, 1

The phase angles are tightly locked:

and

"Fortunately it can only happen with absolutely concurrent signal injection
during a transition step in a saturated 6Nv, so it's rare and hard to get
to".

and it's usefulness seems restricted to cooking motor drivers.

Huh? Of course Mark just posted an abbreviated comment to the list but while
the information is concise it is not particularly useful to help us
understand the phenomenon.

Nv LOOPS AS A WAVEFRONT PROCESSOR ARRAY

When viewing Nvs as wavefront processors, the behaviour of processes
including hypersaturation in a Nv loop becomes clear. For a Schmitt inverter
ground referenced Nv loop,the following wavefront processing rule applies:

a wavefront propagates through an Nv, if the Nv output is the same polarity
as the wavefront polarity at the input, the propagation is inhibited if the
Nv output state is the opposite polarity as the wavefront polarity at the
input and a propagated wavefront is inverted at the output.

For example in a 6Nv loop with a single process state, the output state at
step one is 0,1,1,1,1,1,1, so that the wavefront at the output of Nv1 at
the end of step one goes positive and propagates through Nv2 whose output
was high. The wavefront is transformed by the "invert" function and then
propagates as a negative wavefront through the Nv2 output before being
inhibited at Nv3 whose output is high. (1,0,1,1,1,1,1). At the end of the
active Nv2 process, a new positive wavefront is generated which will
propagate through Nv3 etc.

WAVEFRONT SATURATION

In the example of a 6Nv loop,"saturation" can be described as a condition in
which all Nvs change state in rapid succession as a single wavefront
propagates around the loop. Half of the Nvs (ie Nv1, Nv3, Nv5) receive
positive input transitions and are triggered and the other Nvs (ie Nv2, Nv4,
Nv6) are reset with a negative input transition. The triggered Nv (eg Nv1)
with the shortest TC times out first and generates the next wavefront which
propagates rapidly (50-100ns) around the loop resetting Nv3 and NV5 and
triggering Nv2,4,6 until it arrives "in phase" at the input of the
initiating Nv1 at which point the wavefront propagation is terminated. So
you can see why Nv3 and Nv5 process TCs are no longer independent. The next
wavefront is generated by one of the triggered Nv (eg Nv2) with the shortest
time constant. So transitions are generated by Nvs with the shortest time
constant in each of the odd/even numbered Nvs which sets the frequency and
duty cycle of the Nv output pulses in the normal "saturated" state.

Note that the saturated state is the normal condition for a 2Nv grounded
bicore loop which has only one odd and one even Nv and therefore is the
exception to the rule that "saturated" processes are not independent.

WAVEFRONT HYPERSATURATION

Hypersaturation can be introduced into even numbered Nv loops by injecting a
second wavefront at a time when a normal "saturation" transition wavefront
has propagated halfway around the loop such that two out of phase wavefronts
are present, simultaneously propagating out of phase around the loop.
Wavefront transitions arrive at the Nv input with a polarity that changes
the current state of the Nv, causing the Nv output to change after one gate
delay and continues inverted to propagate to the next Nv and so on around
the loop.

In fact hypersaturation is not rare at all since it is the normal startup
state for _odd_ numbered Nv loops (ie 3Nv or 5Nv cores). In odd numbered Nv
loops, the normal Nv/2 "saturation" state (ie 1.5 or 2.5 processes) cannot
exist or rather it is equal to the hypersaturated state because the
propagating wavefront will never be inhibited since it will always be 180
degree out of phase (the .5 process right?) when returning to the input of
the initiating Nv. Therefore only one wavefront propagates around an odd
numbered loop in the hypersaturated state. In fact, even numbered Nv
hypersaturated loops behave as a pair of odd numbered Nv loops in connected
series since the two uninhibited propagating wavefronts generate the same
frequency (f) at the outputs as a hypersaturated odd numbered Nv loop of
half the length ie f6Nv=f3Nv! (~12Mhz)

For a 1Nv loop (yes 1Nv), the hypersaturated state is the only possible
state and the output frequency is in the order of 30-40 Mhz depending on
logic family, layout, stray capacitance. Nv loops up to 6Nv, I have tested
all have hypersaturated frequencies in the megahertz range, much higher than
the 100KHz reported for other Nv loops.

INITIATING HYPERSATURATION IN A 6NVCORE

To initiate hypersaturation in a 6Nv loop, configure it first as a 5Nv loop
by bypassing one of the Nv stages, using a 1K in series with that stage
output for isolation. When powered up, the 5Nv core is in hypersaturation
and by removing the bypass, the hypersaturated state is transferred to the
6Nvcore almost doubling in frequency in the process.

KILLING HYPERSATURATION

While 3Nv loops (tricores) can be very useful since they will revert to a
single process state after suppressing the hypersaturated startup state.

Adding a 5K resistor between one Nv output and the coupling cap of the next
Nv, delays the high frequency wavefront transitions in the odd numbered
Nvloop and the hypersaturated state in the 3Nv loop quickly reverts to a
normal maximum one process (ie not saturated) waveform. The same suppression
can be achieved with a 1000pf capacitor from one Nv output to ground. Both
methods are useful to eliminate odd numbered Nv loop hypersaturation.


WAVEFRONT PROCESSORS AND WAVEFRONT PROCESSORS

I suggested the Wavefront Processor as a model for Nv neurons but the
analogy is not precise. Waveform processors are generally used in
asynchronous parallel signal processor 2-dimensional arrays connected in a
nearest neighbor topology. Data is processed by applying two terms (x and y)
at the top and left side of the array which propagate unaltered from top to
bottom and left to right of the array while leaving the result of the
processor function (m+xy) in each processor local memory. The two terms
applied ripple asynchronously through the array at high speed and drop out
of the array at the bottom and right boundary cells. The result is read
directly from the array elements and not from the boundary cells as might be
expected.

I will post another article which will describe Nv arrays with some more
interesting topology as shown in the attached gif.

But here is a paraphrased snippet of a discussion of MIT's CAM-8 cellular
automation processor applications for inspiration and a little humor:

wavefront calculations:

calculations that can be laid out in an n-dimensional space in such a way
that we're only interested in the evolution of a wavefront through the
space. This can be viewed as a way of performing calculations that aren't
uniform in space or in time. A wavefront calculation is laid out in
n-dimensions so that the direction of dataflow is always positive along one
of the dimensions, and then we simulate discrete steps by sweeping the
signal wavefront through this dataflow-dimension once. Since the
dataflow-dimension is virtual, it can be thought of as holding the
time-dependance information for an n-1 dimensional spatial calculation, and
so this is really just a generalization of static routing to arbitrary
space-time logic. duh?

wilf
<<...>>

Home