23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.3 Communication 179<br />

Clocks<br />

An interesting example <strong>of</strong> a multicast communication that we will require for hardware<br />

and for co-design is a clock message. A clock message is a synchronisation message<br />

to all clocked modules. A clock multicast must enforce synchronisation in the form <strong>of</strong><br />

immediate involuntary reception. Enforcement could make us think about interrupts as<br />

a mechanism. This mechanism is inappropriate. We want to enforce that the receivers<br />

themselves take their responsibility to be ready for reception <strong>of</strong> a clock message. This is<br />

exactly what synchronous hardware systems demand. Before the clock tick all modules<br />

must be ready and have stable signals. A violation <strong>of</strong> this requirement can lead to severe<br />

problems such as meta-stability. So we always want to verify that this requirement is<br />

met. An elegant construct can be achieved by giving the receivers the responsibility to<br />

send a ready message to the clock. By doing so we can be sure that all receivers are<br />

ready simultaneously before we send the clock multicast message. We want to verify<br />

that all receivers are ready in time (to check set-up and hold times) and that all receivers<br />

receive the clock in time. A timely reception is related to transport time. A variation in<br />

reception time, called clock skew, must be held within limits. These aspects cannot be<br />

modelled adequately yet with the proposed forms <strong>of</strong> behaviour description.<br />

A dedicated multicast primitive together with a real-time primitive are expected to <strong>of</strong>fer<br />

a solution. The integration <strong>of</strong> such primitives in the formal semantics has priority in our<br />

future research program.<br />

6.3.8 Communication with Object-Multiples<br />

A multiple object is a collection <strong>of</strong> objects from the same class connected to the same<br />

channels (see Subsection 4.4.4). A multiple represents a collection <strong>of</strong> equivalent objects.<br />

These objects have in principle independent states. Communication with a multiple<br />

Multiple X<br />

Figure 6.13: Communication with a Multiple Process Object<br />

looks like a multi-way communication, however, it is not. A message flow to a multiple<br />

(see Figure 6.13) must be interpreted as a single flow to one <strong>of</strong> the objects in the collection.<br />

So the pair-wise character <strong>of</strong> the communication flows is respected. When more<br />

that one object is ready to perform a rendezvous for a message then one object is chosen<br />

non-deterministically. This is a convenient way to model communication with collections<br />

<strong>of</strong> identical resources, such as collections <strong>of</strong> mailboxes and buffers. During the<br />

development <strong>of</strong> the model for the case in Chapter 12 we found two ways to communicate<br />

with multiples.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!