EDIS: Guide | FAQ | New | Search | Bibliography | Index | Feedback

Nonblocking Mixer



Nonblocking Mixer is a handshake component with three 2-phase handshake ports, two passive and one active. The handshakes on the passive ports are `multiplexed' over the active port. That is, whenever the environment requests on a passive port and the Nonblocking Mixer is not `busy', the Nonblocking Mixer requests on the active port (becoming `busy') and acknowledges on the passive port. When the active port receives an acknowledge, the Nonblocking Mixer becomes 'idle' again.

In contrast to a nr-nonblocking-mixer, the environment of a Nonblocking Mixer need not guarantee mutual exclusion of the passive requests. A request on a passive port while the Nonblocking Mixer is `busy' (waiting for an acknowledge on the active port) is not lost but is handled when the Nonblocking Mixer becomes `idle' again.

When a Nonblocking Mixer receives requests on both passive ports, it will process exactly one of them (and delay the other). The specification leaves the choice open. Often there is a fairness requirement on this choice: if a choice situation arises `infinitely often' then both outputs are chosen `infinitely often'.


Schematic diagram for a Nonblocking Mixer:



No information available

DI Algebra

Specification in DI Algebra:

NAME = "Nonblocking-Mixer"
I = { r0, r1, a }
O = { a0, a1, r }

MX = M/a?
M  = a?;[ r0? -> a0!; r!; M, r1? -> a1!; r!; M ]
Also available through this link


XDI Report.

The roles of ports a and b can be interchanged:
MIX(a, b; c) = MIX(b, a; c)


DI Decompositions

  1. A Nonblocking Mixer can be implemented with an RGDA Arbiter and a nr-nonblocking-mixer (not equ):


Using Boolean Gates

No information available

Using Transistors

No information available


The Nonblocking Mixer is said to be nonblocking because a request on a passive port is acknowledged without waiting for a corresponding handshake on the active port to complete. This is in contrast to the Mixer, that is said to be blocking.

The Nonblocking Mixer can be generalized to a k-nonblocking-mixer, which multiplexes k passive ports onto one active port. A Nonblocking Mixer is a Nonblocking 2-Mixer.


No information available


Last modified at Fri Nov 20 10:11:40 1998
Encyclopaedia of Delay-Insensitive Systems
Copyright © 1995-1998 Tom Verhoeff / Tom.Verhoeff@acm.org