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 ...
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