[comp.arch] The Burst Computer

aglew@urbana.mcd.mot.com (Andy-Krazy-Glew) (11/09/89)

[Bob Blau]: ...There is a solution however - micropipelines. ...

(Sutherland visited the UI a while back, talking about micropipelines
and other asynchronous logic (he joked that he felt uneasy, with
Muller, the man who invented the field back in the Illiac days,
sitting in the audience).  I asked him roughly this question.)

One problem with asynchronous logic is the answer/response paradigm.
IE. the "local cycle time" (you figure out what that means) must be
the time for the initial signal to propagate, plus the time for the
acknowledgement to come back, plus whatever processing has to be done.

In an ideal synchronous system (where you don't worry about clock
skew) you can "write and forget" - simply send the data, and wait for
the next clock to send the next, not wait for the response. So the
cycle time can be a single propagation delay (but the worst case in
the entire system).

In a world where interconnect/propagation times are beginning to
dominate, a single propagation delay duty cycle wins out on a double
propagation delay.

Sutherland indicated that this is an important problem.

Someone from the audience indicated later that, in the Illiac days,
once the system was running they simply removed the acknowledge lines.

I am not quite sure what that last involved, but my thinking on this
subject leads me to a "locally synchronous/globally asynchronous"
system.
    IE. in order to be able to "write and forget" and so locally
operate at a single propagation delay, a subsystem needs an estimate
of when it can send the next datum.  This could be obtained from a
global lock (where you don't worry about skews) or a purely local
clock (that might be adjusted according to the load on the outgoing
signal lines).  The outgoing signal lines would still use Sutherland's
transition signalling - ie. they would carry their own clock with them
- so skews between the clocks one subsystem uses to send data and the
local clock at the receiving end would not matter.
    With this scheme the outgoing signal lines can be treated as delay
lines, so the local cycle time is not a propagation delay, but the
minimum spacing in time required so that transitions propagating down
the line do not cross.
    The sender would send up to N data on its outgoing lines, before
waiting for ack transitions. To networking folk, this is very much a
sliding window.

--
Andy "Krazy" Glew,  Motorola MCD,    	    	    aglew@urbana.mcd.mot.com
1101 E. University, Urbana, IL 61801, USA.          {uunet!,}uiucuxc!udc!aglew
   
My opinions are my own; I indicate my company only so that the reader
may account for any possible bias I may have towards our products.

ccplumb@rose.waterloo.edu (Colin Plumb) (11/21/89)

In article <AGLEW.89Nov8184733@chant.urbana.mcd.mot.com> aglew@urbana.mcd.mot.com (Andy-Krazy-Glew) writes:
> [Talking about the handshake overhead in micropipelines]

>     With this scheme the outgoing signal lines can be treated as delay
> lines, so the local cycle time is not a propagation delay, but the
> minimum spacing in time required so that transitions propagating down
> the line do not cross.
>     The sender would send up to N data on its outgoing lines, before
> waiting for ack transitions. To networking folk, this is very much a
> sliding window.

You've just described synchronous SCSI, and probably a few other things.
The idea is nice... you have a basically asynchronous system, but certain
speed-critical parts you design very carefully, so you probably know their
maximum speeds anyway.  Those, you run partially synchronously, without
immediate handshakes.

It's the same micropipeline as always, but the sender's ack line is connected
to its data-ready line && (outstanding < n), and the receiver's ack line 
feeds to a counter at the sender's end.  I could design it in edge-transition
logic.  Only the design-rule checker would choke on it...

--------+                                   +---------
        |<-------------------+--------------|ready
        |                    |              |
Receiver|                    V              |   Sender
        |             +----------------+    |
        |------------>| pipeline logic |--->|ack
--------+             +----------------+    +---------

The pipeline logic keeps a count of unacknowledged sends and stops
feeding the sender with acks when this exceeds a threshold.
For maximum speed, the pipeline logic should be close to the sender, but
it doesn't matter for correctness.

I like it!
-- 
	-Colin

don@gp.govt.nz (Don Stokes, GPO) (11/24/89)

In article <1989Nov1.213049.1697@ico.isc.com>, rcd@ico.isc.com (Dick Dunn) writes:
> mmm@cup.portal.com (Mark Robert Thorson) writes:
> ) ...interesting idea for increasing computer performance:  the burst computer.
> ) This would be a computer which delivers 10X or 100X performance over some 
> ) short span of time.
> Sorry...the original question was kind of interesting; it just hit me in a
> strange way.  I've encountered a few pieces of hardware which were built in
> such a way that an (ab)errant piece of OS code could do physical damage
> (like a disk drive without an inner crash stop!).  These somewhat unhappy
> incidents lead me to suggest that the "bursts" would have to be limited by
> hardware, which would probably get in the way of speed.  Also, seriously,
> there are some doubts about reliability for hardware which is temperature-
> cycled to an extreme.

Just an aside - I seem to recall someone putting a scope on the ZX-81's 
clock line way back when, and noting that the clock speed (a nominal 
3.75 MHz or thereabouts) depended heavily on the temperature of the 
machine.... (also noted that the 9 volt power pack actually put out 18 
volts, which tended to heat the machine more than it should have....).

Don Stokes  ZL2TNM  /  /                                 vuwcomp!windy!gpwd!don
Systems Programmer /GP/ Government Printing Office       PSI%0530147000028::DON
__________________/  /__Wellington, New Zealand__________don@gp.govt.nz________
Do not believe in miracles; depend on them.