您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ch02ARM体系架构及汇编程序设计-1
2013年11月4日星期一芜湖职业技术学院信息工程系1/145ARM体系架构及汇编程序设计陶维成2013年11月4日星期一芜湖职业技术学院信息工程系2/145ARM微处理器11ARM微处理器概述2ARM微处理器体系结构3ARM微处理器指令系统4ARM微处理器程序设计5ARM微处理器初始化2013年11月4日星期一芜湖职业技术学院信息工程系3/1451ARM微处理器概述1.1嵌入式微处理器评价指标1.2ARM微处理器简介1.3ARM微处理器版本与系列2013年11月4日星期一芜湖职业技术学院信息工程系4/1451.1嵌入式微处理器评价指标功耗代码存储密度集成度多媒体加速2013年11月4日星期一芜湖职业技术学院信息工程系5/145功耗MIPS/W、MFLOPS/WMIPS(每秒执行100万条指令)MFLOPS(每秒执行100万次浮点运算)工作模式运行模式(operational)待机模式(standbyorpowerdown)停机模式(andclock-off)2013年11月4日星期一芜湖职业技术学院信息工程系6/145代码存储密度CISC与RISCCISC代码存储密度高RISC代码存储密度低C编译器ANSIC是嵌入式领域的标准编程语言,面向对象的语言(例如C++)也将成为主流编译器供应商开始解决代码存储密度问题2013年11月4日星期一芜湖职业技术学院信息工程系7/145集成度把微处理器和外设集成到一个芯片上集成度并不是越高越好。这是因为高集成度使芯片变得复杂,芯片引脚变密,增加了系统设计和测试的复杂性2013年11月4日星期一芜湖职业技术学院信息工程系8/145多媒体加速将微处理器指令集与JPEG、MPEG使用的离散余弦变换指令集成在一起2013年11月4日星期一芜湖职业技术学院信息工程系9/1451.2ARM微处理器简介2013年11月4日星期一芜湖职业技术学院信息工程系10/145ARM公司ARMAdvancedRISCMachines设计ARM微处理器内核授权ARM内核给合作伙伴IP(IntelligenceProperty)ARM公司不生产芯片提供ARM开发设计技术软件工具、评估板、调试工具、应用软件总线架构、外围设备单元2013年11月4日星期一芜湖职业技术学院信息工程系11/145ARM的优势低功耗灵活的应用方案多媒体信号处理指令集Java高效执行单元3D图形协处理器大量的系统软件WindowsCEPalmOSSymbian2013年11月4日星期一芜湖职业技术学院信息工程系12/145ARM的应用主要应用于消费类电子领域应用领域包括:工业控制领域、无线通讯领域、网络应用、消费电子产品、成像和安全产品ARM占据了32位嵌入式微处理器75%以上的市场份额全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM“掌上计算”的所有领域皆为其所主宰ARM正在渗入到生活的各个方面2013年11月4日星期一芜湖职业技术学院信息工程系13/145ARM的应用2013年11月4日星期一芜湖职业技术学院信息工程系14/145ARM的业务ARM授权费IPARM创造和设计IPPartner芯片Partner把ARMIP和其他IP集成进产品OEMCustomer版权费单价OEM用来自ARMPartner的芯片设计制造最终用户产品业务拓展/市场格局2013年11月4日星期一芜湖职业技术学院信息工程系15/1451.3ARM微处理器版本与系列ARM微处理器版本(架构版本,体系结构版本)ARMv1~ARMv7指令集功能不断扩大ARM微处理器系列一个版本包括多个系列ARM1~ARM11相同版本不同系列的ARM微处理器的应用软件是兼容的ARM7采用普林斯顿结构、ARM9以后采用哈佛结构ARM7、ARM9、ARM10、ARM11微处理器分别采用3、5、6、8级流水2013年11月4日星期一芜湖职业技术学院信息工程系16/145ARM微处理器的流水线结构2013年11月4日星期一芜湖职业技术学院信息工程系17/145ARM微处理器的命名规则ARM{X}{Y}{Z}{T}{D}{M}{I}{E}{J}{F}{-S}X—系列Y—存储管理/保护单元Z—CacheT—Thumb16位译码器D—JTAG调试器M—快速乘法器I—嵌入式跟踪宏单元E—增强DSP指令J—JazelleF—向量浮点单元S—可综合版本,以源代码形式提供的ARM核例如:ARM9TDMI2013年11月4日星期一芜湖职业技术学院信息工程系18/1452ARM微处理器体系结构2.1概述2.2流水线2.3寄存器组织2.4运行模式2.5异常2013年11月4日星期一芜湖职业技术学院信息工程系19/145数据类型与指令类型数据类型字(Word):32位,4字节半字(Half-Word):16位,2字节字节(Byte):8位指令类型ARMcoreARM指令集(32bit)Thumb指令集(16bit)(T变种)JazellecoreJavabytecode(J变种)2013年11月4日星期一芜湖职业技术学院信息工程系20/145地址总线地址总线:32位寻址空间:232B=4GB存储器视为从0地址开始的字节线性组合1字用4字节存放PC每次增加1字(4字节)字的存储可以采用小端方式或大端方式2013年11月4日星期一芜湖职业技术学院信息工程系21/145ARM体系结构ARM7采用普林斯顿结构ARM9以后采用哈佛结构但是这种差异对于程序员是不可见的2013年11月4日星期一芜湖职业技术学院信息工程系22/145ARM体系结构32位ALU寄存器组织(37个32位寄存器)32位通用寄存器(31个)32位状态寄存器(6个)32×8位乘法器32×32位桶形移位寄存器指令译码及控制逻辑地址寄存器指令流水线数据输入/输出寄存器2013年11月4日星期一芜湖职业技术学院信息工程系23/1452.1.6ARM微处理器的工作状态从编程的角度两种状态ARM状态:执行32位字对齐ARM指令Thumb状态:执行16位半字对齐Thumb指令两种状态之间可以切换ARM指令集和Thumb指令集均有切换处理器状态的指令ARM微处理器开始执行代码时应处于ARM状态2013年11月4日星期一芜湖职业技术学院信息工程系24/145(1)切换到Thumb状态操作数寄存器的状态位(位0)为1时,使用BX指令切换BX{cond}Rm;PC←Rm,切换处理状态切换处理状态Rm[0]=1:CPSR中T=1,Thumb代码Rm[0]=0:CPSR中T=0,ARM代码与ARM、THUMB状态PC的低位比较当ARM微处理器处于Thumb状态时发生异常,则异常处理返回时,自动切换到Thumb状态2013年11月4日星期一芜湖职业技术学院信息工程系25/145(2)切换到ARM状态操作数寄存器的状态位(位0)为0时,使用BX指令切换BX{cond}Rm;PC←Rm,切换处理状态切换处理状态Rm[0]=1:CPSR中T=1,Thumb代码Rm[0]=0:CPSR中T=0,ARM代码与ARM、THUMB状态PC的低位比较处理器异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以切换2013年11月4日星期一芜湖职业技术学院信息工程系26/145例:从ARM状态切换到Thumb状态LDRR0,=Label+1BXR0从Thumb状态切换到ARM状态LDRR0,=LabelBXR0常量装载伪指令=2013年11月4日星期一芜湖职业技术学院信息工程系27/1452.2流水线流水线技术和超标量执行是影响程序执行速度的主要因素由于指令的各个执行阶段相对独立,大多数微处理器都设计流水线采用流水线重叠技术,指令可以并行执行,大大提高了微处理器的运行效率2013年11月4日星期一芜湖职业技术学院信息工程系28/1452.2流水线增加流水线级数(深度)的优点处理能力增加,指令吞吐量增加每级工作量减少,可以工作在更高频率,同时改进性能增加流水线深度(级数)的缺点增加了系统延时,即内核在执行一条指令前,需要更多的周期来填充流水线在某些级之间会产生数据相关2013年11月4日星期一芜湖职业技术学院信息工程系29/1452.2流水线2.2.1ARM流水线设计2.2.2ARM7的3级流水线2.2.3ARM9的5级流水线2013年11月4日星期一芜湖职业技术学院信息工程系30/1452.2.1ARM流水线设计2.2.1.1缩短程序执行时间2.2.1.2流水线的相关问题2013年11月4日星期一芜湖职业技术学院信息工程系31/1452.2.1.1缩短程序执行时间2013年11月4日星期一芜湖职业技术学院信息工程系32/145程序执行时间clkinstclkinstprogfCPINTCPINTTprog:程序执行时间Ninst:程序中指令的条数CPI:执行一条指令的平均时钟周期数Tclk:微处理器的时钟周期fclk:微处理器的时钟频率2013年11月4日星期一芜湖职业技术学院信息工程系33/145缩短程序执行时间的两种方法clkinstclkinstprogfCPINTCPINTTprog:↓;Ninst:常数(1)CPI:↓(提高每个周期流水线指令吞吐量,需解决流水线相关问题)(2)fclk:↑(简化流水线每级逻辑,但流水线级数会增加)2013年11月4日星期一芜湖职业技术学院信息工程系34/1452.2.1.2流水线的相关问题结构相关数据相关控制相关2013年11月4日星期一芜湖职业技术学院信息工程系35/145结构相关资源冲突普林斯顿结构数据通路访问冲突、存储器访问冲突解决方法资源重复分离式指令Cache和数据CacheALU采用单独加法器完成地址运算2013年11月4日星期一芜湖职业技术学院信息工程系36/145数据相关一条指令需要前面指令的执行结果写后读、写后写、读后写解决方法定向(旁路、短路)技术前面指令的运算结果直接传送给后面指令不必写入寄存器后由后面指令读取流水线互锁技术存在数据相关就产生管道互锁,停止执行汇编器及汇编程序员可减少管道互锁的数量2013年11月4日星期一芜湖职业技术学院信息工程系37/145控制相关分支指令或其他改变PC的指令破坏流水线分支损失控制阻滞延时流水线被破坏,暂停分支指令后的所有指令解决方法延迟分支允许一些直接跟在分支指令后面的指令被执行尽早计算出分支转移成功时的PC2013年11月4日星期一芜湖职业技术学院信息工程系38/1452.2.2ARM7的3级流水线3级流水线取指、译码、执行3个时钟周期指令执行的延时3个时钟周期2013年11月4日星期一芜湖职业技术学院信息工程系39/145ARM7单周期3级流水线单周期指令2013年11月4日星期一芜湖职业技术学院信息工程系40/145ARM7多周期3级流水线多周期指令会流水线阻塞2013年11月4日星期一芜湖职业技术学院信息工程系41/1452.2.3ARM9的5级流水线ARM9的5级流水线取指(I-Cache)指令译码执行缓冲/数据(D-Cache)回写与3级流水相比,增加I-Cache和D-Cache,把存储器的取指和数据存储分开,增加数据回写的专门通路和寄存器,以减少数据通路冲突与3级流水相比,减少了每个时钟周期完成的最大工作量,从而可以使用更高的时钟频率2013年11月4日星期一芜湖职业技术学院信息工程系43/1452.3寄存器组织37个32位寄存器31个通用寄存器6个程序状态寄存器2013年11月4日星期一芜湖职
本文标题:ch02ARM体系架构及汇编程序设计-1
链接地址:https://www.777doc.com/doc-23955 .html