




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM体系结构 ARMLtd ARM AdvancedRICSMachinesARM即可以认为是公司的名字 也可以认为是对一类微处理器的通称 也可以认为是一种技术的名字 还可以认为它是一种商业思想 1991年ARM公司成立于英国剑桥 主要出售芯片设计技术的授权 ARM公司简介 ARM公司作为32位处理器内核的提供者 拥有100多家办导体合作伙伴 拥有100多家半导体合作伙伴 ARMcore是目前消费类电子市场中占有量第一的CPU体系ARM是一个CPU内核 ARM公司自己并不生产或销售芯片 它采用技术授权模式 通过出售芯片技术授权 收取授权费与技术转让费随着ARM MIPS ARC等成熟内核的推出 很多过去没有32位CPU研发能力的半导体公司进入这一行列 ARM全球分布 EnglandCambridge Maidenhead Sheffield BlackburnGermanyMunichFranceParis SophiaAntipolisKoreaSeoul USSeattle LosGatos WalnutCreek Austin Boston SanDiegoAsiaTaiwanJapanShin Yokohama Tokyo ARM合作伙伴 ARMLtd 世界各大半导体商场商从ARM公司购买其设计的ARM微处理器核 根据各自不同的应用领域 加入适当的外围电路 从而形成自己的ARM微处理器芯片进入市场 基于ARM技术的微处理器应用约占据了32位RICS微处理器80 以上的市场份额 ARM技术正在逐步渗入到我们生活的各个方面 将技术授权给其它芯片厂商 形成各具特色的ARM芯片 ARM微处理器的特点 低功耗 低成本 高性能采用RICS指令集使用大量的寄存器ARM THUMB指令支持三 五级流水线 ARM微处理器的特点 采用RICS体系结构固定长度的指令格式 指令简单 基本寻找方式有2 3种使用单周期指令 便于流水线操作执行大量使用寄存器 数据处理指令只对寄存器进行操作 只有加载 存储指令可以访问存储器 以提高指令的执行效率大量使用寄存器31个通用寄存器 包括程序计数器 PC指针 均为32位寄存器6个状态寄存器 用以表示CPU的工作状态及程序运行状态 均为32位高效的指令系统ARM处理器支持两种指令集 ARM指令集和THUMB指令集ARM指令为32位的长度 THUMB指令为16位长度 THUMB指令集为ARM指令集的功能子集 但与等价的ARM代码相比较 可节省30 40 以上的存储空间 同时具备32位代码的所有优点 ARM微处理器的特点 ARM体系结构还采用一些特别的技术 在保证高性能的前提下尽量缩小芯片的面积 并降低功耗所有的ARM指令都可以根据前面的执行结果决定是否被执行 从而提高指令的执行效率可用加载 存储指令批量传输数据 以提高数据的传输效率 可在一条数据处理指令中同时完成逻辑处理和移位功能 在循环处理中使用地址的自动增减来提高运行效率 ARMcore的增强结构 Thumb指令集主要是在代码长度和窄带宽存储器性能两方面 因为当在一个16位存储器系统里面取1条32位指令的时候 需要耗费2个存储器访问周期 比之32位的系统 其速度正好大概下降一半左右 而16位指令在32位存储器系统或16位存储器系统里的表现基本相同 正是存储器造成的系统瓶颈导致了这个的差别 除了在窄带宽系统里面的性能优势外 Thumb指令的另外一个好处的代码尺寸 同样一段C代码 用Thumb指令编译的结果 其长度大约只占ARM编译结果的65 左右 可以明显地节省空间 在大多数情况下 紧凑的代码和窄带宽的存储器系统 还会带来功耗上的优势 Thumb指令集在功能上只是ARM指令集的一个子集 某些功能只能在ARM状态下执行 如CPSR和协处理器的访问 进行异常响应时 处理器会自动进入ARM状态 从系统优化考虑 在宽带存储器上不应该放置Thumb代码 很多窄带系统具有宽带的内部存储器即使是一个单纯的Thumb应用系统 也必须加一个汇编的交互头程序 因为系统总是自动从ARM开始启动所以 不可避免会产生ARM与Thumb之间的交互问题 ARMcore的增强结构 指令流水线 注意 执行ADD指令时PC已经指向CMP指令所在位置 即 8的位置 ARM7系列使用3级流水线ARM95级 ARM106级 ARM117级 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 比逐条指令执行要快 PC指向正被取指的指令 而非正在执行的指令 Fetch Decode Execute 从存储器中读取指令 解码指令 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb ARMcore的增强结构 最佳流水线 该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中 单周期执行 指令周期数 CPI 1 操作 周期 123456 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Decode Execute Fetch Decode Fetch Fetch LDR流水线举例 该例中 用6周期执行了4条指令指令周期数 CPI 1 5 周期 操作 123456 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Data Writeback Fetch Decode Execute Fetch Decode Fetch 分支流水线举例 流水线被阻断注意 内核运行在ARM状态ARM7的指令周期数 CPI 1 9 周期 12345 地址操作 Fetch Decode Execute Fetch Decode Execute Fetch Decode Fetch Fetch Decode Execute Linkret Adjust Fetch Decode Fetch ARMcore的增强结构 JAVA加速器SIMD指令集单指令流多数据流 SingleInstructionMultipleData SIMD 能力使得软件更有效地完成高性能的媒体应用象声音和图像编码器 ARMv6指令集合中加入了超过60个SIMD指令 加入SIMA指令将使性能提高2倍到4倍 SIMD能力可以完成高端的图像编码 语音识别 3D图像DSP功能扩展 早期控制 不带乘法和乘加运算 几条新的完成16位数据乘法和乘加操作指令实现饱和的有符号数的加减法操作的指令Cache预取指令PLDTRUSTZone技术 数据和指令类型 ARM采用的是32位架构 总线结构 4 8 16 32 主流8 32 8位 控制简单的低端产品 32位 手机 数码相机 PDA 通信设备 医疗设备等这些高端产品 ARM约定 Byte 8bits 最小单位为字节 Halfword 16bits 2byte 半字必须与2个字节的边界对准 Word 32bits 4byte 字必须与4个字节的边界对准 大部分ARMcore提供 ARM指令集 32 bit 执行ARM指令集的状态称之为ARM状态 Thumb指令集 16 bit 执行Thumb指令集的状态称之为Thumb状态 ARM微处理器 存储器格式 大端的数据存放格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最高有效字节的地址就是该word的地址 最高有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd ARM微处理器 存储器格式 小端的数据格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最低有效字节的地址就是该word的地址 最低有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd LPC2000 小端通常是ARM处理器的缺省格式 ARM微处理器 处理器工作状态 PROCESSOROPERATINGSTATES 处理器有两种工作状态 ARM 32位 执行字对准的ARM指令Thumb 16位 执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 状态切换开销几乎为0 从Arm状态切换到Thumb状态LDRR0 Lable 1BXR0 从Thumb状态切换到ARM状态LDRR0 LableBXR0LableADDR0 R1 R2 地址最低位为1 表示切换到Thumb状态 地址最低位为0 表示切换到ARM状态 跳转地址标号 偶数 ARM微处理器 处理器工作状态 进入Thumb状态 执行BX指令 并设置操作数寄存器的状态 位 0 为1 在Thumb状态进入异常 IRQ FIQ UNDEF ABORT SWIetc 当异常处理返回时自动转换到Thumb状态进入ARM状态 执行BX指令 并设置操作数寄存器的状态 位 0 为0 进入异常时 将PC放入异常模式链接寄存器中 从异常向量地址开始执行也可进入ARM状态 BXRm ARM状态和Thumb状态的切换 从ARM状态转变为Thumb状态CODE32LDRR0 Label 1BXR0 从ThumbARM状态转变为ARM状态CODE16LDRR0 LabelBXR0 例子 CODE32adrr0 Tstart 1bxr0nopCODE16Tstartmovr0 10movr1 3bldoaddstopbstopdoaddaddr0 r0 r1bxlrend ARM微处理器 处理器工作状态 PROCESSOROPERATINGSTATES Thumb代码所需的存储空间约为ARM代码的60 70 Thumb代码使用的指令数比ARM的代码多30 40 若使用32位的存储器 ARM代码比Thumb代码快约40 若使用16位的存储器 Thumb代码比ARM代码快约40 50 与ARM代码相比较 使用Thumb代码 存储器的功耗会降低约30 系统性能有较高要求 应用32位的存储系统与ARM指令集 对系统的成本和功耗有较高要求 则应使用16位的存储系统和Thumb指令集 两者可结合使用 ARM体系结构版本 ARM体系结构从最初开发到现在有了巨大的改进 并仍在完善和发展 为了清楚的表达每个ARM应用实例所使用的指令集 ARM公司定义了6种主要的ARM指令集体系结构版本 以版本号V1 V8表示 ARMV4 ARMV4是目前支持的最老的架构 是基于32 bit地址空间的32 bit指令集 ARMv4除了支持ARMv3的指令外还扩展了 支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令对以前的26bits体系结构的CPU不再兼容 ARMv4T ARMv4T增加了16 bitThumb指令集 这样使得编译器能产生紧凑代码 相对于32 bit代码 内存能节省到35 以上 并保持32 bit系统的好处 Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行 用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗 ARMV5TE 1999年推出ARMv5TE其增强了Thumb体系 增强的Thumb体系增加了一个新的指令同时改进了Thumb ARM相互作用 编译能力和混合及匹配ARM与Thumb例程 以更好地平衡代码空间和性能并在ARMISA上扩展了增强的DSP指令集 增强的DSP指令包括支持饱和算术 saturatedarithmetic 并且针对AudioDSP应用提高了70 性能 E 扩展表示在通用的CPU上提供DSP能力 ARMv5TEJ 2000年推出ARMv5TEJ 增加了Jazelle扩展以支持Java加速技术 Jazelle状态下允许直接运行java8位码 Java字节码8 bits独立架构的指令集 Jazelle用硬件执行大多数的字节码Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80 的功耗 ARMJazelle ARM发布的java硬件加速虚拟机优化技术 目的是为了提高java应用的启动运行及反应速度 ARMv6 2001年推出ARMv6 它在许多方面做了改进如内存系统 异常处理和较好地支持多处理器 SIMD扩展使得广大的软件应用如Video和Audiocodec的性能提高了4倍 Thumb 2和TrustZone技术也用于ARMv6中 ARMv6第一个实现是2002年春推出的ARM1136J F STM处理器 2003年又推出了ARM1156T2 F S和ARM1176JZ F S处理器 ARMv7 ARMv7定义了3种不同的处理器配置 processorprofiles ProfileA是面向复杂 基于虚拟内存的OS和应用的 2G ProfileR是针对实时系统的ProfileM是针对低成本应用的优化的微控制器的 50M 所有ARMv7profiles实现Thumb 2技术 同时还包括了NEON 技术的扩展提高DSP和多媒体处理吞吐量400 并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要 ARMv8 ARMv8 A将64位架构支持引入ARM架构中 其中包括 64位通用寄存器 SP 堆栈指针 和PC 程序计数器 64位数据处理和扩展的虚拟寻址两种主要执行状态 AArch64 64位执行状态AArch32 32位执行状态 ARM处理器的分类 结构体系版本 Architecture ARMv4TARMv5TEARMv6ARMCortex v7 ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex 按应用特征分类应用处理器ApplicationProcessor实时控制处理器Real timeController微控制器Micro controller 特征 MMU Cache最快频率 最高性能 合理功耗 特征 MPU Cache实时响应 合理性能 较低功耗 特征 nosub memorysystem一般性能 最低成本 极低功耗 ARM发展 SA 110 ARM7TDMI 4T 1 Halfwordandsignedhalfword bytesupportSystemmode Thumbinstructionset 2 4 ARM9TDMI SA 1110 ARM720T ARM940T ImprovedARM ThumbInterworkingCLZ 5TE SaturatedmathsDSPmultiply accumulateinstructions XScale ARM1020E ARM9E S ARM966E S 3 EarlyARMarchitectures ARM9EJ S 5TEJ ARM7EJ S ARM926EJ S JazelleJavabytecodeexecution 6 ARM1136EJ S ARM1026EJ S SIMDInstructionsMulti processingV6Memoryarchitecture VMSA Unaligneddatasupport V7架构 cortex RoadmapofARMV4 V5 V6 ARMFamily ARM7 Family ARM9 Family ARM10 Family ARM11 Family 150DMIPS 300DMIPS 500DMIPS 1000DMIPS ARMCortex Family ARMArchitecture 主流ARM处理器 ARM7世界上最为广泛使用的CPU之一 100MHz 一般 ARM9100 300MHz 1 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山幼儿师范高等专科学校《藏羌歌舞训练》2023-2024学年第二学期期末试卷
- 广东科贸职业学院《货币银行学》2023-2024学年第二学期期末试卷
- 武汉交通职业学院《人力资源管理综合实验》2023-2024学年第二学期期末试卷
- 塔里木大学《传播社会学》2023-2024学年第二学期期末试卷
- 丽江师范高等专科学校《潜水入门》2023-2024学年第二学期期末试卷
- 巢湖学院《动画场景设计》2023-2024学年第二学期期末试卷
- 株洲师范高等专科学校《生物工程前沿知识讲座》2023-2024学年第二学期期末试卷
- 辽源职业技术学院《传输原理》2023-2024学年第二学期期末试卷
- 沈阳航空职业技术学院《生物统计与试验设计双语》2023-2024学年第二学期期末试卷
- 宁波财经学院《传统木刻套色版画》2023-2024学年第二学期期末试卷
- 运动素质知到课后答案智慧树章节测试答案2025年春浙江大学
- 2025年甘肃农垦集团招聘笔试参考题库含答案解析
- 驾照体检表完整版本
- 中国药妆行业发展现状、药妆市场政策解读及未来发展趋势分析图
- 焊接车间作业流程看板
- 围堰施工监理实施细则
- 老年痴呆护理
- 车间精益改善总结报告课件(PPT 19页)
- 中小学教育惩戒规则(试行)全文解读ppt课件
- YY∕T 1797-2021 内窥镜手术器械 腔镜切割吻合器及组件
- 《冬病夏治工作指南》
评论
0/150
提交评论