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

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

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

Hardware and <strong>Software</strong> Partitioning of Operating Systems 193<br />

Example 5-1: Consi<strong>de</strong>r the multiprocessor <strong>SoC</strong> shown in Figure 15-5. Each<br />

ARM processor runs at 200 MHz and has instruction and data L1 caches<br />

each of size 64 MB. The global memory is 16 MB and requires five cycles<br />

of latency to access the first word. A handheld <strong>de</strong>vice utilizing this <strong>SoC</strong><br />

can be used <strong>for</strong> Orthogonal Frequency Division Multiplexing (OFDM)<br />

communication as well as other applications such as MPEG2. Initially the<br />

<strong>de</strong>vice runs an MPEG2 vi<strong>de</strong>o player. When the <strong>de</strong>vice <strong>de</strong>tects an incoming<br />

signal it switches to the OFDM receiver. The switching time (which<br />

inclu<strong>de</strong>s the time <strong>for</strong> memory management) should be short or the <strong>de</strong>vice<br />

might lose the incoming message. The following table shows the sequence<br />

of memory <strong>de</strong>allocations by the MPEG2 player and then the sequence of<br />

memory allocations <strong>for</strong> the OFDM application.<br />

MPEG-2 Player<br />

2 Kbytes<br />

500 Kbytes<br />

5 Kbytes<br />

1500 Kbytes<br />

1.5 Kbytes<br />

0.5 Kbytes<br />

OFDM Receiver<br />

34 Kbytes<br />

32 Kbytes<br />

1 Kbytes<br />

1.5 Kbytes<br />

32 Kbytes<br />

8 Kbytes<br />

32 Kbytes<br />

We measure the execution time <strong>for</strong> the memory (<strong>de</strong>)allocations from the<br />

application programming interface (API) level, e.g., from malloc(). In the<br />

case where the <strong>SoC</strong>DMMU is used, the API makes special calls via<br />

memory-mapped I/O locations to request and receive global memory from<br />

the <strong>SoC</strong>DMMU. Thus, Figure 15-7 shows execution times which compare<br />

software API plus hardware execution time (using the <strong>SoC</strong>DMMU) versus<br />

only software (using optimized ARM software). Please note that the

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

Saved successfully!

Ooh no, something went wrong!