ARM与MIPS的详细对比v11_第1页
ARM与MIPS的详细对比v11_第2页
ARM与MIPS的详细对比v11_第3页
ARM与MIPS的详细对比v11_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM 与 MIPS 的详细对比 版本: v1.1Crifan Li 摘要 此文主要介绍 ARM 和 MIPS 之间的区别和联系 本文提供多种格式供:HTML 版本的在线地址为: 修订历史修订 1.01.详细对比了 ARM 和 MIPS 的区别修订 1.11.通过 Docbook 发布2012-06-22crl2011-07-19crl2 l35 .7z8 l.7z910 7z11 2 ARM 与 MIPS 的详细对比 :Crifan Li版本: v1.1出版日期 2012-06-22版权 ? 2012 Crifan, 本文章遵从: 13 ml#cc_by_nc 目录 缩略词 11. 在精简指

2、令集以减小代码空间占用方面的对比 21.1. ARM中的 Thumb 模式 21.1.1软. 件检测 CPU处于何种模式 21.2. MIPS中的MIPS16e ASE 21.2.1.MIPS16e ASE的优势和劣势 21.2.2.软件检测 CPU处于何种模式 31.2.MIPS16e ASE的一些细节特性 3参考书目 5iii插图清单1.1. Config1 (CP0 Register 16, Select 1)寄) 存器域值说 明 3 iv 缩略词ASE (ASE)Application Specific Extension (根据应用的)专用扩展1 第 1 章 在精简指令集以减小代码空

3、间占用方面的对比1.1. ARM 中的 Thumb 模式 常见的 ARM 是 32位的,其中有个 Thumb 模式,即 16位模式。在标准 32 位模式下,可以切换到 Thumb 模式下,这样的话,代码大小会压缩不 少,以此提高空间利用率。同样的代码,如果用 Thumb 模式的话,比用普通 ARM 模式的指令,代码大小最 大可以减少大约 40%。程序可以通过对应的指令,在 ARM 和 Thumb 模式之间切 换。1.1.1. 软件检测 CPU处于何种模式 软件可以通过检测 CPSR寄存器中 Thumb 位,来判断当前是处于 ARM 模式还是 Thumb 模式。1.2. MIPS中的 MIPS1

4、6e ASE 对应的, MIPS 中也有个类似的做法。 普通 MIPS是 32位的,当然也有 MIPS64 的。MIPS 中有个 MIPS16e ASE ,其中 ASE是 Application Specific Extension,(根据 应用的)专用扩展。关于为何叫做 ASE,我的理解是, MIPS16e ASE 是针对 MIPS32 来说的,是对其一种扩展,是在,某些特定的应用(多为嵌入式应用) 下减少代码大小,方面的扩展,因此,才叫做 Specific Extension 专用扩展。 MIPS16e ASE 也常被简称为 MIPS16e。在 MIPS16e ASE 之前,有个 MIPS

5、16? ,提供了一些额外的指令,用于提高代码 的兼容性。而 MIPS16eASE,可以看作是 MIPS16? 的增强版。相比 MIPS32,利用 MIPS16e 编译的应用程序平均减小 30%,最多可减少 40%。 MIPS16e的指令集,兼容 MIPS32 和 MIPS64的指令集。程序也可以在 MIPS16e 模式和 MIPS 32位模式之间切换。1.2.1. MIPS16e ASE的优势和劣势用了 MIPS16e ASE后,代码量减少,也相应的带来一个好处,还能提高指令缓存 命中率 (cache rate),即降低了 cache miss rate。 hit 而由于缓存是个耗电大户,因

6、此,相应地减少了功耗,实现省电,环保(有利于生态系统 Ecosystem)的功 效。与优点相对应的缺点是, MIPS16e ASE 比普通的 MIPS32,增加了解码的复杂 度,即解码时间相对增加了。不过,拿 MIPS16e ASE 的劣质和优势相比,总体优势还是很明显的。 不过,貌似实际应用中用到 MIPS16e ASE 的不多。2在精简指令集以减小代码空间占用方面的对比 1.2.2. 软件检测 CPU 处于何种模式 软件中可以通过检测 MIPS16e ASE中的 Config1 CP0寄存器的 CA bit 位来判断是 否是处在 MIPS16e ASE 模式。图 1.1. Config1

7、(CP0 Register 16, Select 1)寄) 存器域值说明1.2.3. MIPS16e ASE的一些细节特性1.MIPS16e指令为 16 位指令2.32个通用寄存器中有 8 个可用于 MIPS16e模式;其中包括常用于变元传递 (argument passing和) 返回值的寄存器3. 与MIPS32一起使用时,支持 8位、16位和 32位数据类型;与 MIPS64一起使 用时,支持 8位、16 位、 32位和 64位数据类型4. MIPS16e 和 MIPS32/64之间的模式切换允许特权架构 /浮点/ASE支持;通过一 条特殊的跳转指令来实现模式切换的软件控制5. EXTE

8、ND 指令可让 16位指令有效创建 16位立即值 (immediate value) 6.SAVE/RESTORE 指令可提高栈帧处理 (stack frame handling)的代码密度7.PC 相关寻址可提高创建导入 /存储地址的代码密度3在精简指令集以减小代码空间占用方面的对比 8.某些指令采用隐型寄存器描述符 (implied register specifier)来提高代码密度 -用于导入 /存储的堆栈指针或程序计数 器;分配一个 GPR(通用寄存器 )来比较分支结果9.仍支持专用宏指令序列4 参考书目1 2 213 34 5 542 http:/www.weblearn.hs- bremen.de/

温馨提示

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

评论

0/150

提交评论