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.

Data Space Oriented Scheduling 243<br />

one that will reuse the cache contents most). Method3 does not restructure<br />

the process co<strong>de</strong>s and but tries to reor<strong>de</strong>r their schedule or<strong>de</strong>r to minimize<br />

cache conflicts. Method4 is similar to the original (<strong>de</strong>fault) scheme except that<br />

the arrays are placed in memory so as to minimize the conflict misses. To<br />

obtain this version, we used extensive array padding. We see from these results<br />

that our strategy outper<strong>for</strong>ms the remaining scheduling strategies <strong>for</strong> all benchmarks<br />

in our experimental suite. The reason <strong>for</strong> this is that in many cases it<br />

is not sufficient to just try to reuse the contents of the cache by consi<strong>de</strong>ring<br />

the previously-scheduled process.<br />

4. CONCLUDING REMARKS<br />

Process scheduling is a key issue in any multi-programmed system. We present<br />

a locality conscious scheduling strategy whose aim is to exploit data cache<br />

locality as much as possible. It achieves this by restructuring the process co<strong>de</strong>s<br />

based on data sharing between processes. Our experimental results indicate<br />

that the scheduling strategy proposed brings significant per<strong>for</strong>mance benefits.<br />

NOTE<br />

1 A reference to an array can be represented by where is a linear trans<strong>for</strong>mation<br />

matrix called the array reference (access) matrix, is the offset (constant) vector; is a column<br />

vector, called iteration vector, whose elements written left to right represent the loop indices<br />

starting from the outermost loop to the innermost in the loop nest.<br />

REFERENCES<br />

l. S. P. Amarasinghe, J. M. An<strong>de</strong>rson, M. S. Lam, and C. W. Tseng. “The SUIF Compiler <strong>for</strong><br />

Scalable Parallel Machines.” In Proceedings of the 7th S1AM Conference on Parallel<br />

Processing <strong>for</strong> Scientific Computing, February, 1995.<br />

2. W. Kelly, V. Maslov, W. Pugh, E. Rosser, T. Shpeisman, and David Wonnacott. “The Omega<br />

Library Interface Gui<strong>de</strong>.” Technical Report CS-TR-3445, CS Department, University of<br />

Maryland, College Park, MD, March 1995.<br />

3. I. Kodukula, N. Ahmed, and K. Pingali. “Data-Centric Multi-Level Blocking.” In Proceedings<br />

of ACM SIGPLAN Conference on Programming Language Design and Implementation, June<br />

1997.<br />

4. C-G. Lee et al. “Analysis of Cache Related Preemption Delay in Fixed-Priority Preemptive<br />

Scheduling.” IEEE Transactions on Computers, Vol. 47, No. 6, June 1998.<br />

5. Y. Li and W. Wolfe. “A Task-Level Hierarchical Memory Mo<strong>de</strong>l <strong>for</strong> System Synthesis of<br />

Multiprocessors.” IEEE Transactions on CAD, Vol. 18, No, 10, pp. 1405-1417, October 1999.<br />

6. WARTS: Wisconsin Architectural Research Tool Set. http://www.cs.wisc.edu/~larus/<br />

warts.html<br />

7. W. Wolfe. Computers as Components: Principles of <strong>Embed<strong>de</strong>d</strong> Computing System Design,<br />

Morgan Kaufmann Publishers, 2001.<br />

8. A. Wolfe. “<strong>Software</strong>-Based Cache Partitioning <strong>for</strong> Real-Time Applications.” In Proceedings<br />

of the Third International Workshop on Responsive Computer Systems, September 1993.

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

Saved successfully!

Ooh no, something went wrong!