Skip to main content
Log in

A Framework for Data Partitioning for C++ Data-Intensive Applications

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

We present an automated framework that partitions the code and data types for the needs of data management in an object-oriented source code. The goal is to identify the crucial data types from data management perspective and separate these from the rest of the code. In this way, the design complexity is reduced allowing the designer to easily focus on the important parts of the code to perform further refinements and optimizations. To achieve this, static and dynamic analysis is performed on the initial C++ specification code. Based on the analysis results, the data types of the application are characterized as crucial or non-crucial. Continuing, the initial code is rewritten automatically in such a way that the crucial data types and the code portions that manipulate them are separated from the rest of the code. Experiments on well-known multimedia and telecom applications demonstrate the correctness of the performed automated analysis and code rewriting as well as the applicability of the introduced framework in terms of execution time and memory requirements. Comparisons with Rational’s QuantifyTM suite show the failure of QuantifyTM to analyze correctly the initial code for the needs of data management.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Aigner, G., A. Diwan, D. L. Heine, M. S. Lam, D. L. Moore, B. R. Murphy, and C. Sapuntzakis. An Overview of the SUIF2 Compiler Infrastructure, Technical report, Stanford University, 2000.

  2. ATOMIUM, http://www.imec.be/atomium

  3. Benini, L., and G. De Micheli. System-Level Power Optimization Techniques and Tools. ACM TODAES, vol. 5, no. 2, pp. 115–192, 2000.

  4. Bisdounis, L., S. Blionas, M. Speitel, E. Macii, S. Nikolaidis, A. Milidonis, and M. Bonno. Design Story-II. Public Deliverable of Energy-Aware SYstem-on-chip design of the HIPERLAN/2 standard, IST 2000-30093 Project. 2003.

  5. Catthoor, F., S. Wuytack, E. De Greef, F. Balasa, L. Nachtergaele, and A. Vandecappelle. CUSTOM MEMORY MANAGEMENT METHODOLOGY-Exploration of Memory Management Organization for Embedded Multimedia System Design. Kluwer Academic Publishers, 1998.

  6. Catthoor, F., K. Danckaert, S. Wuytack, and N. D. Dutt. Code Transformations for Data Transfer and Storage Exploration Preprocessing in Multimedia Processors. IEEE Design and Test of Computers, vol. 18, no. 3, pp. 70–82, 2001.

    Google Scholar 

  7. Catthoor, F., K. Danckaert, C. Kulkarni, E. Brockmeyer, P. Kjeldsberg, T. Achteren, and T. Omnes. Data Accesses and Storage Management for Embedded Programmable Processors. Kluwer Academic Publishers, 2002.

  8. EDG, “C++ Front End”, Propiertary Information of Edison Design Group, www.edg.com, 1992.

  9. Edwards, S., L. Lavagno, E. Lee, and A. Sangiovanni-Vincentelli. Design of Embedded Systems: Formal Models. Validation, and Synthesis. In Proc. of IEEE, 1997, pp. 366–390.

  10. Falk H., and M. Verma. Combined Data Partitioning and Loop Nest Splitting for Energy Consumption Minimization. In International Workshop on Software and Compilers for Embedded Systems (SCOPES), 2004.

  11. Gajksi, D., F. Vahid, S. Narayan, and J. Gong. Specification and Design of Embedded Systems. Prentice Hall, 1994.

  12. Gupta, R., M. Soffa, and D. Ombres. Efficient Register Allocation via Coloring using Clique Separators. ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 16, Issue 3, May 1994.

  13. Hu, J. S., N. Vijaykrishnan, M. Kandemir, and M. J. Irwin. Power-efficient Trace Caches. In The Proceedings of the 5th Design Automation and Test in Europe Conference (DATE’02), Paris, France, 2002.

  14. Kandemir, M., J. Ramanujam, and A. Choudhary. Improving Cache Locality by Combination of Loop and Data Transformations. In IEEE Trans. on Computers, 1999, pp. 159–167.

  15. Levine, J. R., T. Mason, and D. Brown. Lex & Yacc. O’REILLY & Associates Inc. 1992.

  16. Lueh, G., T. Gross, and A. Adl-Tabatabai. Fusion-based Register Allocation. ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 22, Issue 3, May 2000.

  17. Luepers, R. Code Optimization for Embedded Processors. Kluwer Academic Publishers, 2002.

  18. Macci, A., L. Benini, and M. Poncino. Memory Design Techniques for Low Energy Embedded Systems. Kluwer Academic Publishers, 2002.

  19. Panda P. and N. Dutt. Memory Issues in Embedded Systems-on-Chip Optimization and Exploration. Kluwer Academic Publishers, 1999.

  20. Panda, P., F. Catthoor, N. Dutt, K. Danckaert, E. Brockmeyer, C. Kulkarni, A. Vandecappelle, and P.G. Kjeldsberg. Data and Memory Optimizations for Embedded Systems. In ACM TODAES, vol. 6, no. 2, pp. 142–206, 2001.

    Google Scholar 

  21. POWERESCAPE, http://www.powerescape.com

  22. Steinke, S., L. Wehmeyer, B. Lee, and P. Marwedel. Assigning Program and Data Objects to Scratchpad for Energy Reduction. In the Proceedings of the 5th Design Automation and Test in Europe Conference (DATE’02), Paris, France, 2002.

  23. Rational Quantify for Windows v2001A. Rational Software Corporation.

  24. VIC, VideoConferencingTool, in www-nrg.ee.lbl.gov/vic

  25. Wess, B., and T. Zeitlhofer. On the Phase Coupling Problem Between Data Memory Layout Generation and Address Pointer Assignment. In International Workshop on Software and Compilers for Embedded Systems (SCOPES) 2004.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to A. Milidonis.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Milidonis, A., Dimitroulakos, G., Galanis, M.D. et al. A Framework for Data Partitioning for C++ Data-Intensive Applications. Des Autom Embed Syst 9, 101–121 (2004). https://doi.org/10.1007/s10617-005-1185-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-005-1185-5

Keywords

Navigation