第二章ARM微处理器硬件结构山东大学精品课程嵌入式系统原理与接口技术主编:贾智平张瑞华清华大学出版社嵌入式系统学科组2内容提要ARM存储系统机制ARM处理器模式及内部寄存器ARM处理器结构和技术特征计算机体系结构嵌入式系统学科组3计算机体系结构计算机中,按内存的组成分两种典型的结构:1.冯·诺依曼结构/普林斯顿结构嵌入式系统学科组4冯·诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2结构特点:1、指令和数据存储在相同的内存空间,但存储地址不同。2、处理器利用相同的总线处理内存中的指令和数据,指令和数据具有相同的数据宽度,指令与数据无法同时存取。ARM7嵌入式微处理器亦采用此结构嵌入式系统学科组5哈佛体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据结构特点:1、指令存储和数据存储分开,指令和数据分别位于不同的存储空间。2、指令与数据的存取采用不同总线,取指令和存取数据可同时进行,微处理器具有较高的执行效率。数字信号处理器DSP通常采用哈佛结构,ARM9嵌入式微处理器亦采用此结构。嵌入式系统学科组6第2章ARM微处理器硬件结构12计算机体系结构ARM处理器结构和技术特征ARM处理器模式及内部寄存器34ARM存储系统机制嵌入式系统学科组7ARM简介ARM公司简介ARM是AdvancedRISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务嵌入式系统学科组8ARM简介ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片...嵌入式系统学科组9ARM简介微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。算术逻辑单元寄存器控制单元微处理器存储器输入输出嵌入式系统学科组10ARM简介ARM处理器的应用当前主要应用于消费类电子领域;到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰。ARM技术正在逐步渗入到我们生活的各个方面。嵌入式系统学科组11ARM简介ARM体系结构ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件;装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计。嵌入式系统学科组12ARM简介各ARM体系结构版本ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1~V6表示。嵌入式系统学科组13ARM体系结构版本ARM体系结构版本V1-V7(自学)主要是:寻址能力提高、增加不同的指令增加不同的硬件处理部件在不同的版本,有不同应用的处理芯片ARMv7定义了3种不同的处理器配置(processorprofiles):ProfileA是面向复杂、基于虚拟内存的OS和应用;ProfileR是针对实时系统;ProfileM是针对低成本应用的系统。嵌入式系统学科组14ARM处理器的分类结构体系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex嵌入式系统学科组15ARM各系列处理器(作资料了解)ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10ARM11SecurCoreCortexXscale嵌入式系统学科组16ARM7ARM7微处理器系列特点:冯诺伊曼体系结构;ARMTDMI是目前应用最广的微处理器核;ARM720T带有MMU和8KB的指令数据混合cache;ARM7EJ执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。嵌入式系统学科组17ARM7TDMIARM7TDMI:整数处理核ARM7TDMI处理器的可综合版本;ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和JazelleTM技术,能够实现Java加速功能支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持Embeded-ICE观察硬件;ARM7TDMI的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI一致;ARM7TDMI-S嵌入式系统学科组18ARM7TDMI简介ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。嵌入式系统学科组19ARM7TDMI三级流水线ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行嵌入式系统学科组20ARM7TDMI存储器访问ARM7TDMI处理器使用了冯·诺依曼(VonNeumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。数据可以是字节(8位)、半字(16位)或者字(32位)。嵌入式系统学科组21ARM7TDMI结构框图地址寄存器乘法器32*8寄存器块31*32bit寄存器桶形移位器32位算术逻辑单元写数据寄存器指令管道读数据寄存器Thnmb指令解码指令解码控制逻辑扫描控制嵌入式系统学科组22时钟中断总线控制电源调试协处理器接口存储管理接口存储器处理器状态处理器模式边界扫描控制信号边界扫描返回嵌入式系统学科组23ARM9ARM9微处理器系列特点:基于ARM9TDMI,带16位的Thumb指令集,增强代码密度最多到35%;在0.13µm工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);集成了数据和指令Chche;32位AMBA总线接口的MMU支持;可在0.18µm、0.15µm和0.13µm工艺的硅芯片上实现。嵌入式系统学科组24ARM920T内核结构返回嵌入式系统学科组25ARM9EARM9E微处理器系列特点:ARM9E是针对微控制器、DSP和Java的单处理器解决方案;ARMJazelle技术提供8倍的Java加速性能(ARM926EJ-S);5-级整数流水线;在0.13µm工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);可选择的向量浮点单元VFP9协处理器,对于3D图形加速和实时控制可达到215MFLOPS高性能的AHB总线,带MMU可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现。返回嵌入式系统学科组26ARM10EARM10E微处理器系列特点:带分支预测的6级整数流水线;在0.13µm工艺下最高性能可达到430MIPS(Dhrystone2.1测试标准);对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS;双64位AMBA总线接口和64位内部总路线接口;优化的缓存结构提高了处理器访问低速存储器的性能;可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现返回嵌入式系统学科组27ARM11ARM11微处理器系列特点:增强的Thumb、Jazelle、DSP扩展支持;带片上和系统安全TrustZone技术支持;在0.13µm工艺下最高可达到550MHz;MPCore在0.13µm工艺下最高性能可达到740MIPS(Dhrystone2.1测试标准);支持多媒体指令SIMD;采用三种电源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能返回嵌入式系统学科组28ARM处理器工作状态ARM和Thumb状态ARM指令系统(V4版以后具有Thumb指令集):32位ARM指令集:固定的32位指令,Load/StoreRISC特征,3地址格式。16位Thumb指令集:是ARM指令集的子集,按16位指令重新编码,固定的16位指令,Load/StoreRISC特征,2地址格式。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。嵌入式系统学科组29处理器状态切换使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。;从Arm状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号嵌入式系统学科组30流水线技术流水线(Pipeline)技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间嵌入式系统学科组31流水线技术为增加处理器指令流的速度,ARM7系列使用3级流水线允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank)PCPCPC-4PC-2PC-8PC-4ARMThumb嵌入式系统学科组32在ARM7的3级流水线结构中流水线易出现阻塞或间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。(1)缩短程序执行时间:提高时钟频率fclk减少每条指令的平均时钟周期数CPI流水线技术Tprog:程序执行时间Ninst:指令条数CPI:指令平均时钟周期数FCLK:时钟频率嵌入式系统学科组33流水线技术(2)解决流水线相关:结构相关数据相关控制相关如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。解决:资源重复(Cache分离、ALU中单独的地址计算加法器)写后读”、“写后写”“读后写”解决:专用通路、流水线互锁技术当流水线遇到分支指令和其他会改变PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。解决:引入延时分支、尽早计算转移成功时的目标地址。addr0,r1,r2movr2,r0addr0,r1,r2addr0,r3,r4movr2,r0addr0,r1,r2嵌入式系统学科组34多周期ARM指令的3级流水线操作fetchADDdecodeexcute123指令时间fetchSTRdecodecalc:addrdataxferfetchADDdecodeexcutefetchADDdecodeexcutefetchADDdecodeexcute45STR计算存储器地址与ADD译码,都为下一周期产生数据传送控制信号,不能同步进行。Dataxfer-excute占用数据路径两条指令不能同时译码。取指与存数冲突若流水线产生资源冲突,则称该流水线存在结构相关。如,取指存数冲突,2条指令同时占用译码级等。嵌入式系统学科组35流水线技术超标量(Sup