您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第2章 ARM微处理器硬件结构(软)-21
第二章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处理器内核(简称ARM核)所谓ARM核就是传统意义上的微处理器,目前ARM公司共推出了7个ARM版本,这些版本的变化主要体现在内核的变化和内核的扩展。ARM核=ALU+CU+R+内部总线主要包括:1、算术逻辑部件2、控制部件3、寄存器组4、内部总线。算术逻辑单元寄存器控制单元微处理器存储器输入输出嵌入式系统学科组10ARM简介ARM处理器的应用当前主要应用于消费类电子领域;到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰。ARM技术正在逐步渗入到我们生活的各个方面。嵌入式系统学科组11ARM简介ARM体系结构ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件;装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计。嵌入式系统学科组12ARM体系结构版本ARM体系结构共定义了7个版本,版本号分别为1-7。同时,各版本中还有一些变种,这里将某些特定功能称为ARM体系的变种(variant)ARM体系结构版本的变化主要体现为增加ARM核外围的组件以改善ARM性能和增加内核的功能。硬件ARM核外围的组件扩展:1、cache和紧耦合存储器TCM(片上RAM)2、存储管理部件MMU3、协处理器(配置cache、TCM和存储管理)12嵌入式系统学科组13ARM体系结构版本ARM核的扩充功能:1、T变种Thumb指令集2、M变种增加64位长乘法指令3、E变种增强型DSP指令E变种的ARM体系增加了一些增强处理器对典型的DSP算法处理能力的附加指令。4、J变种java加速器Jazelle提供了Java加速功能,使得Java代码的运行速度比普通的Java虚拟机提高了8倍。5、SIMD变种(单指令流多数据流)ARM多媒体功能扩展ARM媒体功能扩展SIMD技术极大地提高了嵌入式应用系统的音频和视频处理能力,可使微处理器的音频和视频处理性能提高4倍。嵌入式系统学科组14ARM体系结构版本ARM体系结构版本V1-V7(自学)主要是:寻址能力提高、增加不同的指令增加不同的硬件处理部件在不同的版本,有不同应用的处理芯片ARMv7定义了3种不同的处理器配置(processorprofiles):ProfileA是面向复杂、基于虚拟内存的OS和应用;ProfileR是针对实时系统;ProfileM是针对低成本应用的系统。嵌入式系统学科组15ARM处理器的分类结构体系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex嵌入式系统学科组16ARM各系列处理器ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10ARM11SecurCoreCortexXscale嵌入式系统学科组17ARM命名规则:1、基于ARMArchitecture的版本命名规则:|ARMVn|variants|x(variants)|Vnn--指令集版本号,n[1:7]。variants--变种。x(variants)--排除x后指定的变种例,ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种。嵌入式系统学科组182、基于ARM处理器系列命名规则ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x--处理器系列y--存储管理/保护单元z--cacheD--支持片上调试(加断点,单步执行)I--支持EmbeddedICE,支持嵌入式跟踪调试。开发环境可跟踪调试目标板。-S--可综合版本,无硬核,工艺固定不可综合。嵌入式系统学科组19ARM7TDMI例:ARM7TDMI:ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和JazelleTM技术,能够实现Java加速功能,处理器的可综合版本;支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持Embeded-ICE观察硬件;ARM7TDMI的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI一致;ARM7TDMI-S嵌入式系统学科组20ARM7ARM7微处理器系列特点:冯诺伊曼体系结构;ARM7TDMI是目前应用最广的微处理器核;ARM720T带有MMU和8KB的指令数据混合cache;ARM7EJ执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。嵌入式系统学科组21ARM7TDMI简介ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。嵌入式系统学科组22ARM7TDMI三级流水线ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行嵌入式系统学科组23ARM7TDMI存储器访问ARM7TDMI处理器使用了冯·诺依曼(VonNeumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。数据可以是字节(8位)、半字(16位)或者字(32位)。嵌入式系统学科组24ARM7TDMI结构框图地址寄存器乘法器32*8寄存器块31*32bit寄存器桶形移位器32位算术逻辑单元写数据寄存器指令管道读数据寄存器Thnmb指令解码指令解码控制逻辑扫描控制嵌入式系统学科组25基本组成:(详见前图)1、寄存器块由通用寄存器和状态寄存器组成,主要用来保存处理器状态和处理器工作中的数据。2、5个对外端口2个读端口,用于读2个源操作数;1个写端口,用于写入目的操作数;上述端口都可访问任意寄存器;1个专门访问程序计数器R15的附加读端口;1个附加写端口。嵌入式系统学科组263、桶式移位器:主要完成指令中第2个操作数移位。4、ALU:执行算术逻辑运算5、地址寄存器和增值器:选择和保存所有存储器地址,并在需要时通过地址增值器生成顺序地址。6、数据寄存器:对传送到存储器或从存储器取回的数据暂存。7、控制通路/控制器:基本功能模块是指令解码器和相关的控制逻辑。26嵌入式系统学科组27ARM处理器工作状态ARM和Thumb状态ARM指令系统(V4版以后具有Thumb指令集):32位ARM指令集:固定的32位指令,Load/StoreRISC特征,3地址格式。16位Thumb指令集:是ARM指令集的子集,按16位指令重新编码,固定的16位指令,Load/StoreRISC特征,2地址格式。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。嵌入式系统学科组28处理器状态切换使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。;从Arm状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号嵌入式系统学科组29流水线技术流水线(Pipeline)技术:若干个指令可并行执行提高了CPU的运行效率内部信息流要求通畅流动(pc-8)add(pc-4)sub(pc)cmp29译码取指执行add译码取指执行sub译码取指执行cmp时间3周期指令的ARM3级流水线1T2T3T嵌入式系统学科组30流水线技术为增加处理器指令流的速度,ARM7系列使用3级流水线允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank)PCPCPC-4PC-2PC-8PC-4ARMThumb当前pc所指向的指令已完成取指的指令已完成解码的指令嵌入式系统学科组31在ARM7的3级流水线结构中流水线易出现阻塞或间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。(1)缩短程序执行时间:提高时钟频率fclk减少每条指令的平均时钟周期数CPI流水线技术Tprog:程序执行时间Ninst:指令条数CPI:指令平均时钟周期数FCLK:时钟频率嵌入式系统学科组32流水线技术(2)解决流水线相关:结构相关数据相关控制相关如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。解决:资源重复(Cache分离、ALU中单独的地址计算加法器)写后读”、“写后写”“读后写”解决:专用通路、流水线互锁技术当流水线遇到分支指令和其他会改变PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。解决:引入延时分支、尽早计算转移成功时的目标地址。addr0,r1,r2movr2,r0addr0,r1,r2addr0,r3,r4movr2,r0addr0,r1,r2嵌入式系统学科组33多周期ARM指令的3级流水线操作fetchADDdecodeexcute123指令时间fetchSTRdecodecalc:addrdataxferfe
本文标题:第2章 ARM微处理器硬件结构(软)-21
链接地址:https://www.777doc.com/doc-3183368 .html