[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Synchronous Communication = Swap



Hi,

I was "clearly unclear" about the barier synchronisation idea.
I'll try to clarify myself.

The basic primitive "Sync" should:
1. Allow a number of processes to synchronise.
   (Fundamentally, this is an event in CSP math)
2. Allow each of them to contribute data to the moment of
   synchronisation.
3. Allow each of them to obtain the collection of contributed
   data.

One2One, One2All, and SwapChannel are special cases (semantical
sugar) of this basic Sync primitive.  I think all these special
cases can/are easily (be) modelled in CSP maths.

I think x2Any is fundamentally different from Sync.  Has it already
been modelled in CSP maths?

Adrian:
> And I don't think that this fits at all with the sorts of thing we do in
> hardware compilation.

I think the Sync primitive is also a fundamental primitive in
hardware compilation.  The special cases One2One and One2All are
widely used.  The more powerful primitives (SwapChannel, Sync) can
probably `quite easily' be implemented.

I think x2Any is much more difficult to implement in hardware than
the Sync-based primitives because some arbitration mechanism needs
to be implemented.
Has x2Any been used in Hardware?

Cheers,
	Marcel