ARM程序设计方案优化策略与技术

上传人:jin****ng 文档编号:53185035 上传时间:2022-02-10 格式:DOC 页数:9 大小:56.50KB
收藏 版权申诉 举报 下载
ARM程序设计方案优化策略与技术_第1页
第1页 / 共9页
ARM程序设计方案优化策略与技术_第2页
第2页 / 共9页
ARM程序设计方案优化策略与技术_第3页
第3页 / 共9页
资源描述:

《ARM程序设计方案优化策略与技术》由会员分享,可在线阅读,更多相关《ARM程序设计方案优化策略与技术(9页珍藏版)》请在装配图网上搜索。

1、作者:Pan Hon glia ng仅供个人学习ARM程序设计优化策略与技术程序优化是指软件编程结束后, 利用软件开发工具对程序进行调整和改进, 让程序充分利用资源, 提 高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同,程序ARM尤化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上,通过应用程序结构调整等手段来降低完成指定任务所需执行的指令数。在同一个处理器上,经过速度优化的程序比未经优化的程序在完成指定任务时所需的时间更短,即前者比后者具有更高的运行效率。代码尺寸优化是指,采取措施使应用程序在能够正确完成所需功能的前提下,尽可能减少程序的ARM代码量。然

2、而在实际的程序设计 ARM过程中,程序优化的两个目标(运行速度和代码大小)通常是互相矛盾的。为了提高程序运行效率,往往要以牺牲存储空间、增加代码量为代价,例如程序设计中经常使用的以查表代替计算、循环展开等方法就容易导致程序代码量增加。而为了减少程序代码量、压缩存 储器空间,可能又要以降低程序运行效率为代价。因此,在对程序实施优化之前,应先根据实际需求确定相应的策略。在处理器资源 ARM紧张的情况下,应着重考虑运行速度优化;而在存储器资源使用受限的情况下,则应优先考虑代码尺寸的优化。1程序运行速度优化程序运行速度优化的方法可分为以下 ARM几大类。1.1通用的优化方法(1)减小运算强度利用左/右

3、移位操作代替乘/除2运算:通常需要乘以 ARM或除以2的幕次方都可以通过左移或右 移n位来完成。实际上乘以任何一个整数都可以用移位和加法来代替乘法。ARM 7中加法和移位可以通过一条指令来完成,且执行时间少于乘法指令。例如:i = i X 5可以用i = (i z)可变通为if ( x (y x z)。在能满足精度,且存储器空间冗余的情况下, 也可考虑使用查表法代替除法。当除数为2的ARM幂次方时,应用移位操作代替除法。(2) 利用条件执行ARM指令集的一个重要特征就是所有的指令均可包含一个可选的条件码。当程序状态寄存器(PSR )中的条件码标志满足指定条件时,带条件码的指令才能执行。利用条件

4、执行通常可以省去单独的判断arMW令,因而可以减小代码尺寸并提高程序效率。(3) 使用合适的变量类型ARM指令集支持有符号/无符号的8位、16位、32位整型及浮点型变量。恰当的使用变量的类型,不仅可以节省代码,并且可以提高代码运行效率。应该尽可能地避免使用char、short型的ARM局部变量,因为操作8位/16位局部变量往往比操作 3 2位变量需要更多指令, 请对比下列3个函 数和它们的汇编代码。in tword in c(i nta) wordi nc ADD a1,a1,#1return a + 1; MOV pc,lr short incshortshorti nc(shorta) A

5、DD a1,a1,#1 MOV a1,a1,LSL #16return a + 1; MOV a1,a1,ASR #16ARM MOV pc,lrcharchar in c(chara) char inc ADD a1,a1,#1return a + 1; AND a1,a1,#&ff MOV pc,lr可以看岀,操作3 2位变量所需的指令要少于操作 8位及16位变量。1.4存储器相关的优化方法(1) 用查表代替计算在处理器资源紧张而存储器资源相对富裕的情况下,可以用牺牲存储空间换取运行速度的办法。例如需要频繁计算正弦或余弦函数值时,可预先将函数值计算出来置于内存中供以后ARM查找。(2) 充

6、分利用片内RAM一些厂商岀产的 ARM芯片内集成有一定容量的 RAM女口 Atmel公司的AT91R40807内有128KB的RAM 夏普公司的LH75400/LH75401内有32KB的RAM处理器对片内RAM的访问速度要快于对外部 RAM的 访问,所以应尽可能将程序调入片内RAM中运行。若因程序太大无法完全放入片内RAM,可考虑ARM将使用最频繁的数据或程序段调入片内RAM以提高程序运行效率。1.5编译器相关的优化方法多数编译器都支持对程序速度和程序大小的优化,有些编译器还允许用户选择可供优化的内容及优化的程度。相比前面的各种优化方法,通过设置编译器选项对程序进行优化不失为一种简单有效的途

7、径。2代码尺寸优化精简指令集计算机的一个重要特点是指令长度固定,这样做可以简化指令译码的过程,但却容易导ARM弋码量。致代码尺寸增加。为避免这个问题,可以考虑采取以下措施来缩减程序2.1使用多寄存器操作指令ARM指令集中的多寄存器操作指令 LDM/STM可以加载/存储多个寄存器,这在保存/恢复寄存器组 的状态及进行大块数据复制时非常有效。例如要将寄存器R4R12及R14的内容保存到堆栈中,若用STR指令共需要10条,而一条STMEA R13!, R4R12, R14指令就能达到相同的目的,节省的指令存储空间相当可观。不过需要注意的是,虽然一条LDM/STM指令能代替多条LDR/STR指令,但这

8、并不意味着程序运行速度得到了 ARM提高。实际上处理器在执行 LDM/STM指令的时候还是将它拆 分成多条单独的LDR/STR指令来执行。2.2合理安排变量顺序ARM 7处理器要求ARM程序中的32位/16位变量必须按字/半字对齐,这意味着如果变量顺序安排 不合理, 有可能会造成存储空间的浪费。例如:一个结构体中的4个32位int型变量i1 i4 和4个8位char型变量cl c4,若按照i1、cl、i2、c2、i3、c3、i4、c4的顺序交错存放时,由于整型变量的对齐会导致位于 2个整型变量中间的那个 8位char型变量实际占用32位的存储器, 这样就造成了存储空间的浪费。为避免这种情况,应

9、将int型变量和char型变量按类似i1、i2、i3、i4、c1、c2、c3、c4的顺序连续存放。2.3使用Thumb指令为了从根本上有效 ARM降低代码尺寸,ARM公司开发了 16位的Thumb指令集。Thumb是ARM体系 结构的扩充。Thumb指令集是大多数常用32位ARM指令压缩成16位宽指令的集合。在执行时,16 位指令透明的实时解压成 32位ARM指令并没有性能损失。而且程序在 Thumb状态和ARM状态之间 切换是零开销的。与等价的 32位ARM代码相比,Thumb代码节省的存储器空间可高达 35%以上。结语综上所述,优化的过程是 ARM在透彻了解软/硬件结构和特性的前提下,充分

10、利用硬件资源,不断调 整程序结构使之趋于合理的过程。其目的是最大程度发挥处理器效能,最大限度利用资源,尽可能提 高程序在特定硬件平台上的性能。随着ARM处理器在通信及消费电子等行业中的应用日趋广泛,优化技术将在基于ARM处理器的程序设计过程中发挥越来越重要的作用。值得注意的是,程序的优化通常只是软件设计需要达到的诸多目标之一,优化应在不影响程序正确性、健壮性、可移植性及可维护性的前提下进行。片面追求程序的优化往往会影响健壮性、可移植性 等重要目标版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有This article in eludes someparts,

11、 in cludi ng text, pictures, and desig n. Copyright is Pan Hon glia ngs pers onal own ership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律 的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本 文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面 许可,并支付报酬。Users may use the contents or services of this articlefor pers onal study, re

12、search or appreciati on, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisi ons of copyright law and other releva nt laws, and shall n ot infringe upon the legitimate rights of this website and its releva nt obligees. In additi on, when any content

13、 or service of this article is used for other purposes, writte n permissi on and remun erati on shall be obta ined from the pers on concerned and the releva nt obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为 使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改, 并自负版权等法律责任。Reproducti on or quotatio n of the content of this articlemust be reas on able and good-faithcitati onfor the use of n ewsor in formative public free in formatio n. It shall notmisinterpret or modify the original intention of the contentof this article, and shall bear legal liability such as copyright.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!