嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt

上传人:您的****手 文档编号:297760 上传时间:2018-09-16 格式:PPT 页数:176 大小:3.82MB
下载 相关 举报
嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt_第1页
第1页 / 共176页
嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt_第2页
第2页 / 共176页
嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt_第3页
第3页 / 共176页
嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt_第4页
第4页 / 共176页
嵌入式系统及应用Chapter2嵌入式硬件系统基础.ppt_第5页
第5页 / 共176页
点击查看更多>>
资源描述

1、嵌入式系统及应用,第二章嵌入式硬件系统基础,主要内容,嵌入式硬件系统基本组成,嵌入式微处理器,嵌入式系统总线,嵌入式存储系统,第一节嵌入式硬件系统基本组成,嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。嵌入式微处理器 总线 存储器 输入/输出接口和设备,嵌入式微处理器,每个嵌入式系统至少包含一个嵌入式微处理器 嵌入式微处理器体系结构可采用冯诺依曼(Von Neumann)结构或哈佛(Harvard)结构,冯诺依曼结构,哈佛结构,嵌入式微处理器,传统的微处理器采用的冯诺依曼结构将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一

2、总线访问。哈佛结构则是不同于冯诺依曼结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线(程序总线和数据总线),从而使数据的吞吐率提高了一倍。,嵌入式微处理器,嵌入式微处理器的指令系统可采用精简指令集系统RISC(Reduced Instruction Set Computer)或复杂指令集系统CISC(Complex Instruction Set Computer),嵌入式微处理器,嵌入式微处理器有许多不同的体系,即使在同一体系中也可能具有不同的时钟速度和总线数

3、据宽度、集成不同的外部接口和设备。据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种嵌入式微处理器体系,主流的体系有ARM、MIPS、PowerPC、SH、 X86等。,总线,嵌入式系统的总线一般集成在嵌入式微处理器中。从微处理器的角度来看,总线可分为片外总线(如:PCI、ISA等)和片内总线(如:AMBA、 AVALON、OCP、WISHBONE等)。选择总线和选择嵌入式微处理器密切相关,总线的种类随不同的微处理器的结构而不同。,存储器,嵌入式系统的存储器包括主存和外存。大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中。系统上电后在主存中的代码直接运

4、行。主存储器的特点是速度快,一般采用ROM、EPROM、Nor Flash、SRAM、DRAM等存储器件。,存储器,目前有些嵌入式系统除了主存外,还有外存。外存是处理器不能直接访问的存储器,用来存放各种信息,相对主存而言具有价格低、容量大的特点。在嵌入式系统中一般不采用硬盘而采用电子盘做外存,电子盘的主要种类有NandFlash、 SD (Secure Digital)卡、CompactFlash、SmartMedia、Memory Stick、MultiMediaCard、 DOC(Disk On Chip)等。,输入/输出接口和设备,嵌入式系统的大多数输入/输出接口和部分设备已经集成在嵌入

5、式微处理器中。输入/输出接口主要有中断控制器、DMA、串行和并行接口等,设备主要有定时器(Timers)、计数器(counters)、看门狗(watchdog timers)、RTC、UARTs、PWM(Pulse width modulator)、AD/DA、显示器、键盘和网络等。,第二节嵌入式微处理器,嵌入式微处理器的发展嵌入式微处理器的分类嵌入式微处理器的特点主流的嵌入式微处理器(ARM, MIPS, SH, PowerPC, x86),嵌入式微处理器的发展,嵌入式微处理器的分类,嵌入式微处理器种类繁多,按位数可分为4位、8位、16位、32位和64位。按用途来分,嵌入式微处理器可分为嵌入

6、式DSP和通用的嵌入式微处理器两种: 嵌入式DSP:专用于数字信号处理,采用哈佛结构,程序和数据分开存储,采用一系列措施保证数字信号的处理速度,如对FFT(快速傅立叶变换)的专门优化。 通用的嵌入式微处理器:一般是集成了通用微处理器的核、总线、外围接口和设备的SOC芯片,有些还将DSP作为协处理器集成。,嵌入式微处理器的特点,基础是通用微处理器与通用微处理器相比的区别:体积小、重量轻、成本低、可靠性高功耗低工作温度、抗电磁干扰、可靠性等方面增强,嵌入式微处理器的特点,体系结构,指令集,性能,功耗和管理,成本,集成度,嵌入式微处理器的集成度,用于桌面和服务器的微处理器的芯片内部通常只包括CPU核

7、心、Cache、MMU、总线接口等部分,其他附加的功能如外部接口、系统总线、外部总线和外部设备独立在其他芯片和电路内。 嵌入式微处理器除了集成CPU核心、Cache、MMU、总线等部分外,还集成了各种外部接口和设备,如中断控制器、DMA、定时器、UART等。符合嵌入式系统的低成本和低功耗需求,一块单一的集成了大多数需要的功能块的芯片价格更低,功耗更少。,嵌入式微处理器的集成度,嵌入式微处理器是面向应用的,其片内所包含的组件的数目和种类是由它的市场定位决定的。在最普通的情况下,嵌入式微处理器包括:片内存储器:部分嵌入式微处理器外部存储器的控制器,外设接口(串口,并口)LCD控制器:面向终端类应用

8、的嵌入式微处理器中断控制器,DMA控制器,协处理器定时器,A/D、D/A转换器多媒体加速器:当高级图形功能需要时总线其他标准接口或外设,嵌入式微处理器的集成度,单芯片方式(Single Chip) 芯片组方式(Chip Set):由微处理器主芯片和一些从芯片组成,嵌入式微处理器的集成度,单芯片方式:华邦W90P710芯片的内部结构,嵌入式微处理器的集成度,芯片组方式:两芯片组的手持PC方案,返回,嵌入式微处理器的体系结构,算术格式(Arithmetic Format) 由于低成本和低功耗的限制,大多数的嵌入式微处理器使用定点运算(fixed-point arithmetic),即数值被表示为整

9、数或在1.0和1.0之间的分数,比数值表示为尾数和指数的浮点版本的芯片便宜。当嵌入式系统中需要使用浮点运算时,可采用软件模拟的方式实现浮点运算,只不过这样要占用更多的处理器时间。 功能单元(Functional Units) 通常包括不止一个的功能单元,典型的是包含一个ALU、移位器和MAC,处理器通常用一条指令完成乘法操作。 流水线(Pipeline)通常采用单周期执行指令,可能导致比较长的流水线,返回,嵌入式微处理器的指令集,为满足应用领域的需要,嵌入式微处理器的指令集一般要针对特定领域的应用进行剪裁和扩充。目前很多应用系统需要类似于DSP的数字处理功能。这些指令主要有:乘加(MAC)操作

10、:它在一个周期中执行了一次乘法运算和一次加法运算。 SIMD类操作:允许使用一条指令进行多个并行数据流的计算。 零开销的循环指令:采用硬件方式减少了循环的开销。仅使用两条指令实现一个循环,一条是循环的开始并提供循环次数,另一条是循环体。 多媒体加速指令:像素处理、多边形、3D操作等指令。,返回,嵌入式微处理器的性能,低端(低价,低性能) 一般低端嵌入式微处理器的性能最多达到50MIPS,应用在对性能要求不高但对价格和功耗有严格要求的应用系统中。 中档,低功耗 中档的嵌入式微处理器可达到较好的性能(如150MIPS以上),采用增加时钟频率、加深流水深度、增加Cache及一些额外的功能块来提高性能

11、,并保持低功耗。 高端,嵌入式微处理器的性能,高端嵌入式微处理器用于高强度计算的应用,使用不同的方法来达到更高的并行度 单指令执行乘法操作:通过加入额外的功能单元和扩展指令集,使许多操作能在一个单一的周期内并行执行。每个周期执行多条指令:桌面和服务器的超标量处理器都支持单周期多条指令执行,在嵌入式领域通常使用VLIW(very large instruction word)来实现,这样只需较少的硬件,总体价格会更低些。例如TI的TMS320C6201芯片,通过使用VLIW方法,能在每个周期同时执行8条独立的32位指令。使用多处理器:采用多处理器的方式满足应用系统的更高要求。一些嵌入式微处理器采

12、用特殊的硬件支持多处理器。如TI的OMAP730包括了三个处理器核ARM9、ARM7、DSP。,返回,嵌入式微处理器的功耗管理,大多数嵌入式系统有功耗的限制(特别是电池供电的系统),它们不支持使用风扇和其他冷却设备。 降低工作电压:1.8v、1.2v甚至更低,而且这个数值一直在下降。提供不同的时钟频率:通过软件设置不同的时钟分频。关闭暂时不使用的功能块:如果某功能块在一个周期内不使用,就可以被完全关闭,以节约能量。,嵌入式微处理器的功耗管理,提供功耗管理机制 运行模式(Running Mode):处理器处于全速运行状态下。 待命模式(Standby Mode):处理器不执行指令,所有存储的信息

13、是可用的,处理器能在几个周期内返回运行模式。 时钟关闭模式(clock-off mode):时钟完全停止,要退出这个模式系统需要重新启动。影响功耗的其他因素还有总线(特别是总线转换器,可以采用特殊的技术使它的功耗最小)和存储器的大小(如果使用DRAM,它需要不断的刷新)。为了使功耗最小,总线和存储器要保持在应用系统可接受的最小规模。,返回,嵌入式微处理器的成本,为降低价格,需要在嵌入式微处理器的设计中考虑不同的折衷方案。处理器的价格受如下因素影响:处理器的特点:功能块的数目、总线类型等。 片上存储器的大小。芯片的引脚数和封装形式:如PQFP(Plastic Quad Flat Package)

14、通常比BGA(Ball Grid Array Package)便宜。芯片大小(die size):取决于制造的工艺水平。,嵌入式微处理器的成本,代码密度(code density):代码存储器的大小将影响价格,不同种类的处理器有不同的代码密度:CISC芯片代码密度高,但结构复杂,其额外的控制逻辑单元使价格变得很高;RISC芯片拥有简单的结构,代码密度低,因为其指令集简单;VLIW代码密度最低,因为它的指令字倾向于采用多字节。,主流的嵌入式微处理器,目前主流的嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列、Super H系列和X86系列等。属于这些系列的嵌入式微处理器产品很

15、多,有上千种以上。,Units (millions),Source: Andrew Allison, Inside The New Computer Industry, January 2001,Embedded RISC Processor Shipments,32位浪潮的到来,Source: Semico Research Corp. and SIA/WSTS,Total MCU, by Sub-Category (excl. DSP),Total Embedded Control Market Shipments by Type,总共约26亿个32位处理器付运,占总数96亿的27%,20

16、05年ARM为17亿个,约占32位总量的70%左右,X86系列,主要由AMD,Intel,NS,ST等公司提供,如:Am186/88、Elan520、嵌入式K6,386EX、STPC等。 主要应用在工业控制、通信等领域。 国内由于对X86体系比较熟悉,得到广泛应用,特别是嵌入式PC的应用非常广泛。,MPC/PPC系列,Motorola推出的MPC系列,如MPC8XX。IBM推出PPC系列,如PPC4XX。主要应用在通信、消费电子及工业控制、军用装备等领域。,MPC/PPC系列,IBM PowerPC 集成10/100Mbps以太网控制器、串行和并行端口、内存控制器以及其它外设的高性能嵌入式处理

17、器。Motorola MPC 高度综合的SOC设备,它结合了PPC微处理器核心的功能、通信处理器和单硅成分内的显示控制器。这个设备可以在大量的电子应用中使用,特别是在低能源、便携式、图象捕捉和个人通信设备。,技术,0.25,微米,CMoS SA-12E,282 Dhrystone 2.1 MIPS 200MHz,375 Dhrystone 2.1 MIPS 266MHz,200/100/66/50 MHz,266/133/66/66 MHz,晶体数量,480,万,电源消耗,1.1,瓦,信号,I/O,300,温度范围,-40到80度,电源供应,2.5V (,逻辑电路,),3.3V (I/O),,

18、支持,5V I/Os,456-Ball,Enhanced PBGA (35mm x 35mm),性能,频率,(CPU /,SDRAM /PCI /EBC),封装,PowerPC 405 GP技术规格,*Dhrystone是一个综合性的基准测试程序,它是为了测试编译器和CPU处理整数指令和控制功能的有效性,人为地选择一些典型指令综合起来形成的测试程序。,ARM系列,ARM(Advanced RISC Machine)公司是一家专门从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及各类外围接口。ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。目前,90

19、%的移动电话、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成为业界公认的嵌入式微处理器标准。,ARM处理器的分类,结构体系版本(Architecture)ARM v4TARM v5TE ARM v6ARM Cortex (v7),Processor FamilyARM7 ARM9ARM10ARM11ARM Cortex,按应用特征分类应用处理器 Application Processor实时控制处理器 Real-time Controller微控制器 M

20、icro-controller,特征:MMU, Cache 最快频率、最高性能、合理功耗,特征:MPU, Cache 实时响应、合理性能、较低功耗,特征:no sub-memory system 一般性能、最低成本、极低功耗,Roadmap of ARM V4/V5/V6,ARM V4,ARMV4是目前支持的最老的架构,是基于32-bit地址空间的32-bit指令集。ARMv4除了支持ARMv3的指令外还扩展了:支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令 对以前

21、的26bits体系结构的CPU不再兼容,ARMv4T,ARMv4T增加了16-bit Thumb指令集,这样使得编译器能产生紧凑代码(相对于32-bit代码,内存能节省到35%以上)并保持32-bit系统的好处。Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行。用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗。,ARM V5TE,1999年推出ARMv5TE其增强了Thumb体系,增强的Thumb体系增加了一个新的指令同时改进了Thumb/ARM相互作用、编译能力和混合及匹配ARM与Thumb例程,以更好地平衡代码空间和性能并在ARM ISA上扩展了增强

22、的DSP指令集: 增强的DSP指令包括支持饱和算术(saturated arithmetic), 并且针对Audio DSP应用提高了70%性能。E扩展表示在通用的CPU上提供DSP能力。,ARMv5TEJ,2000年推出ARMv5TEJ,增加了Jazelle扩展以支持Java加速技术。Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80的功耗。,ARMv6,2001年推出ARMv6,它在许多方面做了改进如内存系统、异常处理和较好地支持多处理器。SIMD扩展使得广大的软件应用如Video和Audio codec的性能提高了4倍。Thumb-2和TrustZone 技术也用于A

23、RMv6中。ARMv6第一个实现是2002年春推出的ARM1136J(F)-STM处理器,2003年又推出了ARM1156T2(F)-S和ARM1176JZ(F)-S处理器。,ARMv7,ARMv7定义了3种不同的处理器配置(processor profiles): Profile A是面向复杂、基于虚拟内存的OS和应用的Profile R是针对实时系统的Profile M是针对低成本应用的优化的微控制器的。所有ARMv7 profiles实现Thumb-2技术,同时还包括了NEON技术的扩展提高DSP和多媒体处理吞吐量400,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需

24、要。,ARM Family,ARM7 Family,ARM9 Family,ARM10 Family,ARM11 Family,150DMIPS,300 DMIPS,500 DMIPS,1000 DMIPS,ARM Cortex Family,ARM Architecture,当前的主流ARM处理器,ARM7世界上最为广泛使用的 CPU 之一100MHzARM9100-300MHz,1.7B ARM Powered shipment in year of 2005, 31% is ARM9 based.,ARM11 芯片已经面世,ARM11300-700+ MHzSIMD 指令扩展支持更丰富的

25、多媒体应用40家授权芯片公司,一些已开始量产,FOMA N902iFirst ARM11 based phone,OMAP2420,i.MX31/i.MX31L,目前最快的嵌入式处理器,最快的处理器提供超过2000 DMIPS 的性能运行于 1GHz 频率 (90nm or 65nm 制造工艺)功耗小于 300mW,ARM Cortex A8 Application Processor,Cortex-M3 实现 $1 ARM芯片,ARM Cortex ArchitectureThumb-2 ISA3 Stage Pipeline1.22 DMIPS/MHz 30% over ARM7TDMI3

26、3K gates 30% smaller than ARM7TDMI,Luminary Micro的Stellaris系列MCU产品售价仅1美元,ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。,领先嵌入式处理器技术发展讨论,多处理器技术单处理器技术的性能提升终有一天会遭遇瓶颈对嵌入式系统而言,尤其要考虑付出的代价把任务进行并行分解是理想的选择ARM MPcore可以集成1-4个ARM11处理器关键是要提供给软件开发者一个友好的编程界面64位处理器?哪儿是系统性能瓶颈?是需要64位地址还是64位数据?嵌入式系统比PC有更好的条件来解决系统性能

27、和带宽问题PC系统在主板上,扩展系统带宽需要扩大每个组件的接口带宽SoC只需扩展片内总线,非常容易实现AMBA支持8-1024位总线宽度许多SoC设计以及ARM处理器内部已经使用64位数据总线,ARM7TDMI,Thumb 架构扩展, 提供两个独立的指令集:ARM 指令,均为 32位Thumb指令,均为 16位两种运行状态,用来选择哪个指令集被执行,内核具有Debug扩展结构,增强乘法器 (32x8) 支持64位结果,EmbeddedICE 逻辑,3 级流水线冯诺依曼架构CPI(Cycle Per Instruction) 约为1.9,ARM7TDMI,ARM7TDMI内核,MCLK,nIRQ

28、,nFIQ,nRESET,BUSEN,BIGEND,ISYNC,nWAIT,VDD,VSS,APE,DBE,协处理器接口,存储器管理,存储器接口,ABORT,nOPC,CPB,CPA,nCPI,nTRANS,nM4:0,MAS1:0,nRW,nMREQ,LOCK,SEQ,nENOUT,A31:0,DOUT31:0,DIN31:0,D31:0,电源,总线控制,时钟,配置,中断,内核信号,ARM7TDMI,ARM7TDMI内核,TAP 控制器,JTAG 接口,数据总线,控制信号,地址总线,BUSSplitter,EmbeddedICE逻辑,方框图,乘法器,指令解码,地址自增器,nRESET,nMR

29、EQ,SEQ,ABORT,nIRQ,nFIQ,nRW,MAS1:0,LOCK,nCPI,CPA,CPB,nWAIT,MCLK,nOPC,BIGEND,ISYNC,nTRANS,nM4:0,D31:0,桶移位器,32 位 ALU,DBE,写数据 寄存器,读数据 寄存器,地址寄存器,寄存器 Bank,A31:0,ABE,及,控制 逻辑,PC Update,解码站,指令 解压缩,Incrementer,PC,ABus,BBus,ALUBus,ARM7TDMI,内核,ARM7TDMI指令流水线,为增加处理器指令流的速度,ARM7 系列使用3级流水线。允许多个操作同时处理,而非顺序执行。 PC指向正被取

30、指的指令,而非正在执行的指令。,从存储器中读取指令,解码指令中用到的寄存器,寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank ),PCPC,PC - 4PC-2,PC - 8PC - 4,ARMThumb,ARM7TDMI指令流水线,操作,周期,1 2 3 45 6,Fetch,最佳流水线,该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1,ARM7TDMI,ARM7TDMI内核,地址,地址,数据读,AMBA接口,写缓冲,MMU,数据写,数据,ARM7xxT,控制逻辑,Cache,AMBA总线接口,JTAG 和非 AMBA

31、 信号,CP15,带Cache的ARM7TDMI,ARM710T8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护写缓冲,ARM720T同ARM710T,但支持 WinCEARM740T8K 统一的 cache内存管理单元写缓冲,Write Buffer:当数据写到Write Buffer后不需要CPU的任何干预而由Write Buffer控制逻辑自动的将数据写到最终的地方;Cache的回写则需要CPU的干预。Write Buffer较小,通常只有几十个字节。Read Buffer:当读数据时Read Buffer自动多读取一些字节,但是不占用CPU的总线时间,所

32、以能加快读数据的速度;当使用Cache时如果要从内存中读取数据则每个数据都会占用CPU的时间,这是与Read Buffer的最大不同点。Read Buffer较小,通常只有几十个字节。,Cache与Buffer的区别,ARM9TDMI,Harvard架构增加了可用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5 级流水线实现了以下改进:改进 CPI 到 1.5提高了最大时钟频率,ARM9TDMI,InstructionFetch,Shift + ALU,MemoryAccess,RegWrite,RegRead,RegDecode,FETCH,DECODE,EXE

33、CUTE,MEMORY,WRITE,ARM9TDMI,ARM or ThumbInst Decode,Reg Select,RegRead,Shift,ALU,RegWrite,ThumbARMdecompress,ARM decode,InstructionFetch,FETCH,DECODE,EXECUTE,ARM7TDMI,流水线,ARM9TDMI,ARM9TDMI,D Cache,I Cache,MMU,GLUE,外部存储器,ARM940T2x 4K caches MPU写缓冲,ARM9xxT,ARM920T2x 16K caches MMU支持虚拟地址和内存保护 写缓冲,带Cache

34、的ARM9TDMI,ARM9E-S 系列概述,ARM9E 基于 ARM9TDMI 内核,有以下扩展和增强单周期 32x16 乘法器EmbeddedICE 逻辑 RT改进的 ARM/Thumb 交互操作新的32x16和 16x16 乘法指令新的计数到零指令新的饱和算术指令ARM946E-SARM9E-S 内核指令和数据cache, 大小可选择指令和数据RAM,大小可选择保护单元AHB 总线接口ARM966E-S与 ARM946E-S相似, 但无 cache,ARM926EJ-S系列概述,Jazelle状态允许直接执行Java 8位码ARM926EJ-SARM9E-S 内核可配置的cache和 T

35、CM 紧耦合内存(Tightly Coupled Memories)内存管理单元双重 32位 AHB 总线接口 (多层),ARM10E 系列概述,v5TE架构,CPI 1.3,6 级流水线,静态分支预测,32kB 指令cache和32kB数据cache支持“Hit under miss”非阻塞的执行单元,每周期64 位的 LDM / STM操作,EmbeddedICE逻辑 - RT-II,支持新的 VFPv1 结构,同ARM1020E,除了cache大小为16kB,对SUDL(single user design license )有效,ARM1020E,ARM1022E,ARM9 vs AR

36、M10,流水线的对比,Intel StrongARM 概述,ARM V4 架构 (无Thumb支持)5级流水线,降低跳转损耗-stage pipeline,reduced branch penalty改进的乘法器(典型地比ARM9TDMI 快2个周期)不支持 Multi-ICE 调试 (JTAG限制在连通性测试)无外部协处理器接口SA-110: 16K 指令和数据 caches, 8 x 16 字节写缓冲.SA-1100/1110:片上外设,存储器控制器更小的 cache 容量PID 寄存器指令断点,通过 CP15,Intel XScale 概述,V5TE 兼容架构7-8级流水线带统计分支预测

37、32k的数据和指令 Cache, 外加2k的数据Minicache8口写缓冲,4口填充和追加缓冲完整的32位协处理器接口调试和性能监控逻辑(通过CP14 )乘-加模块(作为CP0 )可配置的内核时钟速度100-733MHz ,来自 33-66MHz 输入时钟异步输入总线时钟可到100 MHz (最大总线内核时钟的1/3 ),ARM微处理器:编程模型,数据类型 字节型数据(Byte):数据宽度为8bits 半字数据类型(HalfWord):数据宽度为16bits,存取式必须以2字节对齐的方式 字数据类型(Word):数据宽度为32bits,存取式必须以4字节对齐的方式,ARM微处理器:CPU模式

38、(processor mode),7种CPU模式,CPU模式的转变:软件控制异常外部中断,ARM微处理器:CPU模式,User模式,程序不能访问有些受保护的资源,只能通过异常的形式来改变CPU的当前运行模式,特权模式可以存取系统中的任何资源,System模式,与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务,FIQ模式,IRQ模式,Supervisor模式,Abort模式,Undefined模式,异常模式:主要是在外部中断或者程序执行非法操作时会触发,ARM微处理器:处理器工作状态(PROCESSOR OPERATING STATES),处

39、理器有两种工作状态:ARM:32位,执行字对准的ARM指令Thumb:16位,执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容,ARM微处理器:处理器工作状态,进入Thumb状态:执行BX指令,并设置操作数寄存器的状态(位0)为1。在Thumb状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),当异常处理返回时自动转换到Thumb状态进入ARM状态:执行BX指令,并设置操作数寄存器的状态(位0)为0。进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态,ARM微处理器:处理器工作状态,Thu

40、mb-2:增加了混合模式能力定义了一个新的32-bit指令集能在传统的16-bit指令运行的Thumb状态下同时运行。这样能在一个系统中更好地平衡ARM和Thumb代码的能力,使系统能更好地利用ARM级别的性能和Thumb代码的密度的优势,ARM微处理器:寄存器,ARM处理器有37个寄存器 31个通用寄存器:程序计数器、堆栈及其他通用寄存器 6个状态寄存器这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的,ARM微处理器: ARM State寄存器,ARM微处理器: Thumb State寄存器,ARM State 与Thumb State寄存器关系,ARM微处理

41、器:通用寄存器,通用寄存器是R0-R15的寄存器,分为三类 没有对应影子寄存器的寄存器R0-R7 有对应影子寄存器的寄存器R8-R14 程序计数器R15 (或者PC) 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器,ARM微处理器:通用寄存器,R0-R7所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。,ARM微处理器:通用寄存器,R8-R14访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器

42、模式,则要使用规定的名字。 R8-R12各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13(也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。,ARM微处理器:通用寄存器,R15用作程序计数器(PC),可以被读写ARM state: bits 1:0为0,bits31:2即为 PC. TH

43、UMB state:bit 0为0,bits31:1即为 PC,ARM微处理器:程序状态寄存器,CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含:条件标志中断使能标志当前处理器的模式其它的一些状态和控制标志,ARM微处理器:程序状态寄存器,置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令,Negative,Zero,Carry,Overflow,IRQ中断的响应:置1:禁止响应置0:允许响应,FIQ中断的响应:置1:禁止响应置0:允许响应,ARM微处理器:程序状态寄存器,模式控制位M0-M4,ARM微处理器:异常,异常是由内部或者外部原因引起的,当

44、异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行。在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址而ARM是到向量地址的地方读取指令,也就是ARM的向量地址处存放的是一条指令(一般是一条跳转指令),ARM微处理器:异常,ARM CPU将引起异常的类型分为7种,ARM微处理器:异常,当异常出现时,异常模式分组的R14和SPSR用于保存状态,即: R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*在ARM状态执行*/ if=Reset or FIQ then CPSR

45、6=1 /*禁止快速中断*/ CPSR7=1 /*禁止正常中断*/PC=exception vector address当处理异常返回时,将SPSR传送到CPSR,R14传送到PC,ARM微处理器:异常,Reset:CPU被复位后,进入Supervisor Mode并且禁止FIQ和IRQ。 Undefined Instructions: CPU执行一条未被定义的指令时就会触发该异常。这种机制可以用于通过软件仿真的方式扩展THUMB or ARM指令集。SWI:软中断(SWI)是执行SWI指令时触发的,该异常主要用于OS的系统调用。,ARM微处理器:异常,Prefetch Abort: CPU在

46、读取指令时发生读内存错误并且该指令又要被执行则触发该异常;如果只是在读取指令时发生了内存错误而该指令又未被执行则不会触发该异常。Data Abort:当CPU在读写数据时,如果发生错误则触发该异常。,ARM微处理器:异常,IRQ:当外部IRQ输入请求发生时(IRQ中断已经被使能),触发该异常。FIQ: FIQ通常被用于快速传输数据。当外部FIQ输入请求发生时(FIQ中断已经被使能),触发该异常。,ARM微处理器:异常,异常的优先级,ARM微处理器:内存和I/O,ARM 的寻址空间是线性的地址空间,为232=4G Bytes 0 to 3 存储第一个word, bytes 4 to 7存储第二个

47、wordARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式,可以通过硬件的方式设置(没有提供软件的方式)端模式,ARM微处理器:内存和I/O,大端的数据存放格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最高有效字节的地址就是该word的地址,最高有效字节位于最低地址,word a=0x f6 73 4b cd,f6,73,4b,cd,ARM微处理器:内存和I/O,小端的数据格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最低有效字节的地址就是该word的地址,最低有效字节位于最低地址,word a=0x f6 73 4b cd,f6,73,4b,cd,ARM微处理器:内存和I/O,大端: 小端:,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 信息网络

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。