29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

266 Chapter 20<br />

The first outcome leads to a valid schedule constructed so far. If, after<br />

returning from the recursive calls we find that the schedule is not valid we<br />

would re-explore the path again. To exhaustively explore the subgraph that<br />

exists after a given no<strong>de</strong> v all the ECSs enabled in v must be explored. This<br />

is controlled by procedure proc1.<br />

The latter two outcomes do not produce a valid schedule. Hence, after<br />

returning from the recursive call, a re-exploration of new paths will be done<br />

providing that there are still paths that have not been exhaustively explored.<br />

4. REDUCING THE SIZE OF A SCHEDULE<br />

Scheduling <strong>de</strong>als with an unboun<strong>de</strong>d reachability space stemming from source<br />

transitions of the PN given as the specification. Termination criteria make<br />

the space un<strong>de</strong>r analysis boun<strong>de</strong>d, but it is still very large in general. The<br />

efficiency of a scheduling procedure essentially <strong>de</strong>pends on the ways of compacting<br />

the explored space. Compression techniques introduced in this section<br />

explore the reachability space at a coarser granularity level by i<strong>de</strong>ntifying<br />

sequences of transitions fireable at given markings rather than firing a single<br />

transition at a time.<br />

4.1. Trace-based compression<br />

The motivation behind a trace-based compression is given by a simple<br />

example of a multi-rate producer-consumer system (see Figure 20-2).<br />

In this system a single iteration of the producer requires the consumer to<br />

iterate twice. A corresponding schedule is shown in Figure 20-2(b). Clearly<br />

if a scheduler can i<strong>de</strong>ntify that it needs to fire twice the sequence of transitions<br />

corresponding to a single iteration of the consumer, then it could fire<br />

this sequence as a whole without firing individual transitions of the sequence.<br />

This would avoid storing internal markings of the consumer’s iteration and<br />

would compress a schedule (see Figure 20-2(c)).

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

Saved successfully!

Ooh no, something went wrong!