Memory-access-aware data structure transformations for embedded software with dynamic data accesses

Embedded systems are evolving from traditional, stand-alone devices to devices that participate in Internet activity. The days of simple, manifest embedded software [e.g. a simple finite-impulse response (FIR) algorithm on a digital signal processor (DSP] are over. Complex, nonmanifest code, executed on a variety of embedded platforms in a distributed manner, characterizes next generation embedded software. One dominant niche, which we concentrate on, is embedded, multimedia software. The need is present to map large scale, dynamic, multimedia software onto an embedded system in a systematic and highly optimized manner. The objective of this paper is to introduce high-level, systematically applicable, data structure transformations and to show in detail the practical feasibility of our optimizations on three real-life multimedia case studies. We derive Pareto tradeoff points in terms of accesses versus memory footprint and obtain significant gains in execution time and power consumption with respect to the initial implementation choices. Our approach is a first step to systematically applying high-level data structure transformations in the context of memory-efficient and low-power multimedia systems.

[1]  Francky Catthoor,et al.  Custom Memory Management Methodology , 1998, Springer US.

[2]  Giovanni De Micheli,et al.  Cache-efficient memory layout of aggregate data structures , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[3]  Connie U. Smith,et al.  Software performance antipatterns , 2000, WOSP '00.

[4]  Hugo De Man,et al.  Matisse: A System-on-Chip Design Methodology Emphasizing Dynamic Memory Management , 1999, J. VLSI Signal Process..

[5]  Dipl.-Ing,et al.  Real-time Rendering , 2022 .

[6]  Karen A. Frenkel An interview with the 1986 A. M. Turing Award recipients—John E. Hopcroft and Robert E. Tarjan , 1987, CACM.

[7]  Goetz Graefe,et al.  B-tree indexes and CPU caches , 2001, Proceedings 17th International Conference on Data Engineering.

[8]  Betty Prince High Performance Memories: New Architecture DRAMs and SRAMs — Evolution and Function , 1996 .

[9]  Michael Franz,et al.  Automated data-member layout of heap objects to improve memory-hierarchy performance , 2000, TOPL.

[10]  Walter Dosch,et al.  The Lübeck Transformation System: A Transformation System for Equational Higher Order Algebraic Specifications , 2001, WADT.

[11]  Francky Catthoor,et al.  Custom Memory Management Methodology: Exploration of Memory Organisation for Embedded Multimedia System Design , 1998 .

[12]  Hugo De Man,et al.  Transforming set data types to power optimal data structures , 1995, ISLPED '95.

[13]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[14]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[15]  V. De Florio,et al.  Methodology for refinement and optimization of dynamic memory management for embedded systems in multimedia applications , 2003, 2003 IEEE Workshop on Signal Processing Systems (IEEE Cat. No.03TH8682).

[16]  Bruce Powel Douglass Real-time UML - developing efficient objects for embedded systems , 1997, Addison-Wesley object technology series.

[17]  Bruce Powell Douglass,et al.  Real-time UML (2nd ed.): developing efficient objects for embedded systems , 1997 .

[18]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[19]  Luca Benini,et al.  Dynamic Power Management , 1998 .

[20]  Antonin Guttman,et al.  R-trees: a dynamic index structure for spatial searching , 1984, SIGMOD '84.

[21]  Chantal Ykman-Couvreur,et al.  Incorporating energy efficient data structures into modular software implementations for internet-based embedded systems , 2002, WOSP '02.

[22]  Chantal Ykman-Couvreur,et al.  Memory management for embedded network applications , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[23]  William H. Mangione-Smith,et al.  Filtering Memory References to Increase Energy Efficiency , 2000, IEEE Trans. Computers.

[24]  Tomas Akenine-Möller,et al.  Real-time rendering , 1997 .

[25]  Hugo De Man,et al.  Efficient system exploration and synthesis of applications with dynamic data storage and intensive data transfer , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[26]  M.A. Horowitz,et al.  Speed and power scaling of SRAM's , 2000, IEEE Journal of Solid-State Circuits.

[27]  Kathryn S. McKinley,et al.  Composing high-performance memory allocators , 2001, PLDI '01.

[28]  Rajiv Gupta,et al.  Data Compression Transformations for Dynamically Allocated Data Structures , 2002, CC.

[29]  James R. Larus,et al.  Making Pointer-Based Data Structures Cache Conscious , 2000, Computer.

[30]  Mario A. López,et al.  Post-optimization and incremental refinement of R-trees , 1999, GIS '99.

[31]  Peter D. Mosses,et al.  CASL: the Common Algebraic Specification Language , 2002, Theor. Comput. Sci..

[32]  Hugo De Man,et al.  Exploration and synthesis of dynamic data sets in telecom network applications , 1999, Proceedings 12th International Symposium on System Synthesis.

[33]  Pekka Kuismanen,et al.  View-dependent Polygonal Simplification , 2001 .

[34]  Niraj K. Jha,et al.  Low power system scheduling and synthesis , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[35]  Lars Lundberg,et al.  A method for automatic optimization of dynamic memory management in C++ , 2001, International Conference on Parallel Processing, 2001..

[36]  Krishna V. Palem,et al.  Design space optimization of embedded memory systems via data remapping , 2002, LCTES/SCOPES '02.

[37]  Sally A. McKee,et al.  Dynamic Access Ordering for Streamed Computations , 2000, IEEE Trans. Computers.

[38]  David Walker,et al.  Alias Types for Recursive Data Structures , 2000, Types in Compilation.

[39]  Miron Livny,et al.  E-ADTs: Turbo-Charging Complex Data. , 1996 .

[40]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[41]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[42]  Chantal Ykman-Couvreur,et al.  Analyzing energy friendly steady state phases of dynamic application execution in terms of sparse data structures , 2002, ISLPED '02.

[43]  Luca Benini,et al.  Dynamic power management - design techniques and CAD tools , 1997 .