Memory footprint reduction for embedded systems

K. D. Bosschere
{"title":"Memory footprint reduction for embedded systems","authors":"K. D. Bosschere","doi":"10.1145/1361096.1361102","DOIUrl":null,"url":null,"abstract":"The memory footprint is considered an important constraint for embedded systems. This is especially important in the context of increasing sophistication of embedded software, and the increasing use of modern software engineering techniques like component-based design. Since reusability is the major motivation for using components, most components are not optimized for the (limited) functionality they have to realize in an embedded system. All this leads to an increasing amount of code and data that might not be needed for a given functionality. The memory footprint of an embedded system consists of 2 parts: the footprint of the application and the footprint of the operating system. In this keynote talk, I will focus on the memory footprint reduction of application as well as the Linux kernel. I will report memory footprint reductions that have been obtained by the Diablo binary rewriter, which has been used to substantially reduce the memory footprint of both applications and of the system software. For the applications, the optimizer is capable of reducing the code size of programs compiled with two proprietary ARM tool chains (ADS 1.1 and RVCT 2.1) with on average 16% for statically linked ARM programs, while making them 12.8% faster. Execution of the rewritten programs also consumes on average 10.7% less energy. For the system software, we specialize the kernel both for the system calls that are actually occurring in the application program, and for the boot parameters of the kernel. We also assume that the hardware is fixed so that part of the bootstrap process is completely deterministic and can be optimized based on actual trace information. Finally, we compress frozen code, and we swap cold code to flash memory. All combined, these compaction techniques on the kernel can reduce the kernel's RAM footprint with up to 48% for the Linux kernel. The slowdown was limited to 1--2%. This proves that binary rewriting can help in substantially reducing the memory footprint of both the application and the system software. The nice thing is that it can be done automatically, and that it also reduces the execution time and the power consumption.","PeriodicalId":375451,"journal":{"name":"Software and Compilers for Embedded Systems","volume":"2 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Software and Compilers for Embedded Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1361096.1361102","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

The memory footprint is considered an important constraint for embedded systems. This is especially important in the context of increasing sophistication of embedded software, and the increasing use of modern software engineering techniques like component-based design. Since reusability is the major motivation for using components, most components are not optimized for the (limited) functionality they have to realize in an embedded system. All this leads to an increasing amount of code and data that might not be needed for a given functionality. The memory footprint of an embedded system consists of 2 parts: the footprint of the application and the footprint of the operating system. In this keynote talk, I will focus on the memory footprint reduction of application as well as the Linux kernel. I will report memory footprint reductions that have been obtained by the Diablo binary rewriter, which has been used to substantially reduce the memory footprint of both applications and of the system software. For the applications, the optimizer is capable of reducing the code size of programs compiled with two proprietary ARM tool chains (ADS 1.1 and RVCT 2.1) with on average 16% for statically linked ARM programs, while making them 12.8% faster. Execution of the rewritten programs also consumes on average 10.7% less energy. For the system software, we specialize the kernel both for the system calls that are actually occurring in the application program, and for the boot parameters of the kernel. We also assume that the hardware is fixed so that part of the bootstrap process is completely deterministic and can be optimized based on actual trace information. Finally, we compress frozen code, and we swap cold code to flash memory. All combined, these compaction techniques on the kernel can reduce the kernel's RAM footprint with up to 48% for the Linux kernel. The slowdown was limited to 1--2%. This proves that binary rewriting can help in substantially reducing the memory footprint of both the application and the system software. The nice thing is that it can be done automatically, and that it also reduces the execution time and the power consumption.
减少嵌入式系统的内存占用
内存占用被认为是嵌入式系统的一个重要约束。这在嵌入式软件日益复杂,以及现代软件工程技术(如基于组件的设计)日益普及的背景下尤为重要。由于可重用性是使用组件的主要动机,因此大多数组件都没有针对它们必须在嵌入式系统中实现的(有限的)功能进行优化。所有这些都会导致给定功能可能不需要的代码和数据量不断增加。嵌入式系统的内存占用由两部分组成:应用程序的内存占用和操作系统的内存占用。在这次主题演讲中,我将重点关注应用程序和Linux内核的内存占用减少。我将报告由Diablo二进制重写器获得的内存占用减少情况,它已被用于大幅减少应用程序和系统软件的内存占用。对于应用程序,优化器能够减少用两个专有的ARM工具链(ADS 1.1和RVCT 2.1)编译的程序的代码大小,对于静态链接的ARM程序,平均减少16%的代码大小,同时使它们的速度提高12.8%。重写程序的执行也平均减少了10.7%的能源消耗。对于系统软件,我们针对应用程序中实际发生的系统调用和内核的引导参数对内核进行专门化。我们还假设硬件是固定的,因此引导过程的一部分是完全确定的,可以根据实际跟踪信息进行优化。最后,我们压缩冻结的代码,并将冻结的代码交换到闪存中。所有这些压缩技术结合在一起,可以减少内核的RAM占用,对于Linux内核最多可减少48%。经济放缓被限制在1- 2%。这证明了二进制重写可以帮助大大减少应用程序和系统软件的内存占用。好处是它可以自动完成,而且还减少了执行时间和功耗。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信