03.08.2013 Views

Design and Implementation of TinyGALS: A Programming Model for ...

Design and Implementation of TinyGALS: A Programming Model for ...

Design and Implementation of TinyGALS: A Programming Model for ...

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.

Conditions <strong>for</strong> well-<strong>for</strong>medness Here, we summarize the conditions <strong>for</strong> well-<strong>for</strong>medness<br />

<strong>of</strong> a system, as discussed in Section 2.3.<br />

1. Source (interrupt-driven) components must only have outputs, they may not have<br />

inputs. In other words, source components may not also be triggered components<br />

(triggered by an event on a module input port) nor called components (called by<br />

other components).<br />

2. Cycles among components within a module are not allowed, but loops around mod-<br />

ules are allowed.<br />

3. Within a module, component source DAGs <strong>and</strong> triggered DAGs must be discon-<br />

nected.<br />

4. Within a module, component source DAGs must not be connected to other source<br />

DAGs, but triggered DAGs may be connected to other triggered DAGs. We assume<br />

that an interrupt whose h<strong>and</strong>ler is running is masked, but other interrupts are not<br />

masked.<br />

5. Within a module, outgoing component methods may be associated with either one<br />

method <strong>of</strong> another component, or with one or more module output ports.<br />

6. Within a module, module input ports may be associated with either one method <strong>of</strong> a<br />

single component, or with one or more module output ports.<br />

3.1 Determinacy<br />

Given the definitions in the previous section, we first discuss determinism <strong>of</strong> a <strong>TinyGALS</strong><br />

system in the case <strong>of</strong> a single interrupt when in a quiescent state. We then discuss deter-<br />

minism <strong>for</strong> one or more interrupts during module iteration in the cases where there are no<br />

global variables <strong>and</strong> when there are global variables.<br />

26

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

Saved successfully!

Ooh no, something went wrong!