嵌入式系统设计Chapter2嵌入式硬件系统基础.ppt

上传人:帮**** 文档编号:3886299 上传时间:2020-11-11 格式:PPT 页数:177 大小:4.06MB
返回 下载 相关 举报
嵌入式系统设计Chapter2嵌入式硬件系统基础.ppt_第1页
第1页 / 共177页
嵌入式系统设计Chapter2嵌入式硬件系统基础.ppt_第2页
第2页 / 共177页
点击查看更多>>
资源描述

《嵌入式系统设计Chapter2嵌入式硬件系统基础.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计Chapter2嵌入式硬件系统基础.ppt(177页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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作为协处理器集成。,嵌入式微处理器的特点,基础是通用微处理器 与通用微处理器相比的区别: 体积小、重量轻、成本低、可靠性高 功耗低 工作温度、抗电磁干扰、可靠性等方面增强,嵌入式微处理器的特点,体系结构,指令集,性能,功耗和管理,成本,集成度,嵌入式微处理器的集成度,用于桌面和服务器的微

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

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

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

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

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

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

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

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

15、owerPC系列、Super H系列和X86系列等。 属于这些系列的嵌入式微处理器产品很多,有上千种以上。,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 Shi

16、pments by Type,总共约26亿个32位处理器 付运,占总数96亿的27%,2005年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

17、 集成10/100Mbps以太网控制器、串行和并行端口、内存控制器以及其它外设的高性能嵌入式处理器。 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

18、,300,温度范围,-40到80度,电源供应,2.5V (,逻辑电路,),3.3V (I/O),,支持,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内核以及各类外围

19、接口。 ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。 目前,90%的移动电话、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成为业界公认的嵌入式微处理器标准。,ARM处理器的分类,结构体系版本(Architecture) ARM v4T ARM v5TE ARM v6 ARM Cortex (v7),Processor Family ARM7 ARM9 ARM10 ARM11 ARM Cortex,按应用特征分类 应

20、用处理器 Application Processor 实时控制处理器 Real-time Controller 微控制器 Micro-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

21、的符号扩展读 支持Thumb指令 提供Thumb和Normal状态的转换指令 进一步的明确了会引起Undefined异常的指令 对以前的26bits体系结构的CPU不再兼容,ARMv4T,ARMv4T增加了16-bit Thumb指令集,这样使得编译器能产生紧凑代码(相对于32-bit代码,内存能节省到35%以上)并保持32-bit系统的好处。 Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行。用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗。,ARM V5TE,1999年推出ARMv5TE其增强了Thumb体系,增强的Thumb体系增加了一个新的指令同

22、时改进了Thumb/ARM相互作用、编译能力和混合及匹配ARM与Thumb例程,以更好地平衡代码空间和性能 并在ARM ISA上扩展了增强的DSP指令集: 增强的DSP指令包括支持饱和算术(saturated arithmetic), 并且针对Audio DSP应用提高了70%性能。E扩展表示在通用的CPU上提供DSP能力。,ARMv5TEJ,2000年推出ARMv5TEJ,增加了Jazelle扩展以支持Java加速技术。 Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80的功耗。,ARMv6,2001年推出ARMv6,它在许多方面做了改进如内存系统、异常处理和较好地支持多

23、处理器。 SIMD扩展使得广大的软件应用如Video和Audio codec的性能提高了4倍。 Thumb-2和TrustZone 技术也用于ARMv6中。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实现T

24、humb-2技术,同时还包括了NEON技术的扩展提高DSP和多媒体处理吞吐量400,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。,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 之一 100MHz ARM9 100-300MHz,1.7B ARM Powred shipment in

25、year of 2005, 31% is ARM9 based.,ARM11 芯片已经面世,ARM11 300-700+ MHz SIMD 指令扩展支持更丰富的多媒体应用 40家授权芯片公司,一些已开始量产,FOMA N902i First ARM11 based phone,OMAP2420,i.MX31/i.MX31L,目前最快的嵌入式处理器,最快的处理器提供超过2000 DMIPS 的性能 运行于 1GHz 频率 (90nm or 65nm 制造工艺) 功耗小于 300mW,ARM Cortex A8 Application Processor,Cortex-M3 实现 $1 ARM芯片

26、,ARM Cortex Architecture Thumb-2 ISA 3 Stage Pipeline 1.22 DMIPS/MHz 30% over ARM7TDMI 33K gates 30% smaller than ARM7TDMI,Luminary Micro的Stellaris系列MCU产品售价仅1美元,ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。,领先嵌入式处理器技术发展讨论,多处理器技术 单处理器技术的性能提升终有一天会遭遇瓶颈 对嵌入式系统而言,尤其要考虑付出的代价 把任务进行并行分解是理想的选择 ARM MPcor

27、e可以集成1-4个ARM11处理器 关键是要提供给软件开发者一个友好的编程界面 64位处理器? 哪儿是系统性能瓶颈? 是需要64位地址还是64位数据? 嵌入式系统比PC有更好的条件来解决系统性能和带宽问题 PC系统在主板上,扩展系统带宽需要扩大每个组件的接口带宽 SoC只需扩展片内总线,非常容易实现 AMBA支持8-1024位总线宽度 许多SoC设计以及ARM处理器内部已经使用64位数据总线,ARM7TDMI,Thumb 架构扩展, 提供两个独立的指令集: ARM 指令,均为 32位 Thumb指令,均为 16位 两种运行状态,用来选择哪个指令集被执行,内核具有Debug扩展结构,增强乘法器

28、(32x8) 支持64位结果,EmbeddedICE 逻辑,3 级流水线 冯诺依曼架构 CPI(Cycle Per Instruction) 约为1.9,ARM7TDMI,ARM7TDMI 内核,MCLK,nIRQ,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,电源,总线控制,时钟,配置,中断,内核信号

29、,ARM7TDMI,ARM7TDMI 内核,TAP 控制器,JTAG 接口,数据总线,控制信号,地址总线,BUS Splitter,Embedded ICE 逻辑,方框图,乘法器,指令 解码,地址 自增器,nRESET,nMREQ,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,解码站,指令 解压

30、缩,Incrementer,P C,A B u s,B B u s,A L U B u s,ARM7TDMI,内核,ARM7TDMI指令流水线,为增加处理器指令流的速度,ARM7 系列使用3级流水线。 允许多个操作同时处理,而非顺序执行。 PC指向正被取指的指令,而非正在执行的指令。,从存储器中读取指令,解码指令中用到的寄存器,寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ),PCPC,PC - 4PC-2,PC - 8PC - 4,ARMThumb,ARM7TDMI指令流水线,操作,周期,1 2 3 45 6,Fetch,最佳流水线,该例中用6个时钟周期执行了6

31、条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1,ARM7TDMI,ARM7TDMI 内核,地址,地址,数据读,AMBA接口,写 缓冲,MMU,数据写,数据,ARM7xxT,控制 逻辑,Cache,AMBA 总线 接口,JTAG 和非 AMBA 信号,CP15,带Cache的ARM7TDMI,ARM710T 8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 写缓冲,ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲,Write Buffer:当数据写到Write Buffe

32、r后不需要CPU的任何干预而由Write Buffer控制逻辑自动的将数据写到最终的地方;Cache的回写则需要CPU的干预。Write Buffer较小,通常只有几十个字节。 Read Buffer:当读数据时Read Buffer自动多读取一些字节,但是不占用CPU的总线时间,所以能加快读数据的速度;当使用Cache时如果要从内存中读取数据则每个数据都会占用CPU的时间,这是与Read Buffer的最大不同点。Read Buffer较小,通常只有几十个字节。,Cache与Buffer的区别,ARM9TDMI,Harvard架构 增加了可用的存储器宽度 指令存储器接口 数据存储器接口 可以

33、实现对指令和数据存储器的同时访问 5 级流水线 实现了以下改进: 改进 CPI 到 1.5 提高了最大时钟频率,ARM9TDMI,Instruction Fetch,Shift + ALU,Memory Access,Reg Write,Reg Read,Reg Decode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM or ThumbInst Decode,Reg Select,Reg Read,Shift,ALU,Reg Write,ThumbARMdecompress,ARM decode,Instruction Fetch,FETCH,

34、DECODE,EXECUTE,ARM7TDMI,流水线,ARM9TDMI,ARM9TDMI,D Cache,I Cache,MMU,GLUE,外部 存储器,ARM940T 2x 4K caches MPU 写缓冲,ARM9xxT,ARM920T 2x 16K caches MMU 支持虚拟地址和内存保护 写缓冲,带Cache的ARM9TDMI,ARM9E-S 系列概述,ARM9E 基于 ARM9TDMI 内核,有以下扩展和增强 单周期 32x16 乘法器 EmbeddedICE 逻辑 RT 改进的 ARM/Thumb 交互操作 新的32x16和 16x16 乘法指令 新的计数到零指令 新的饱和

35、算术指令 ARM946E-S ARM9E-S 内核 指令和数据cache, 大小可选择 指令和数据RAM,大小可选择 保护单元 AHB 总线接口 ARM966E-S 与 ARM946E-S相似, 但无 cache,ARM926EJ-S系列概述,Jazelle状态允许直接执行Java 8位码 ARM926EJ-S ARM9E-S 内核 可配置的cache和 TCM 内存管理单元 双重 32位 AHB 总线接口 (多层),ARM10E 系列概述,v5TE架构,CPI 1.3,6 级流水线,静态分支预测,32kB 指令cache和32kB数据cache 支持“Hit under miss” 非阻塞的

36、执行单元,每周期64 位的 LDM / STM操作,EmbeddedICE逻辑 - RT-II,支持新的 VFPv1 结构,同ARM1020E,除了cache大小为16kB,对SUDL(single user design license )有效,ARM1020E,ARM1022E,ARM9 vs ARM10,流水线的对比,Intel StrongARM 概述,ARM V4 架构 (无Thumb支持) 5级流水线,降低跳转损耗-stage pipeline,reduced branch penalty 改进的乘法器(典型地比ARM9TDMI 快2个周期) 不支持 Multi-ICE 调试 (J

37、TAG限制在连通性测试) 无外部协处理器接口 SA-110: 16K 指令和数据 caches, 8 x 16 字节写缓冲. SA-1100/1110: 片上外设,存储器控制器 更小的 cache 容量 PID 寄存器 指令断点,通过 CP15,Intel XScale 概述,V5TE 兼容架构 7-8级流水线带统计分支预测 32k的数据和指令 Cache, 外加2k的数据Minicache 8口写缓冲,4口填充和追加缓冲 完整的32位协处理器接口 调试和性能监控逻辑(通过CP14 ) 乘-加模块(作为CP0 ) 可配置的内核时钟速度100-733MHz ,来自 33-66MHz 输入时钟 异

38、步输入总线时钟可到100 MHz (最大总线内核时钟的1/3 ),ARM微处理器:编程模型,数据类型 字节型数据(Byte):数据宽度为8bits 半字数据类型(HalfWord):数据宽度为16bits,存取式必须以2字节对齐的方式 字数据类型(Word):数据宽度为32bits,存取式必须以4字节对齐的方式,ARM微处理器:CPU模式(processor mode),7种CPU模式,CPU模式的转变: 软件控制 异常 外部中断,ARM微处理器:CPU模式,User模式,程序不能访问有些受保护的资源,只能通过异常的形式来改变CPU的当前运行模式,特权模式可以存取系统中的任何资源,System

39、模式,与User模式的运行环境一样 但是它可以不受任何限制的访问任何资源 该模式主要用于运行系统中的一些特权任务,FIQ模式,IRQ模式,Supervisor模式,Abort模式,Undefined模式,异常模式:主要是在外部中断或者程序执行非法操作时会触发,ARM微处理器:处理器工作状态(PROCESSOR OPERATING STATES),处理器有两种工作状态: ARM:32位,执行字对准的ARM指令 Thumb:16位,执行半字对准的Thumb指令 ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容,ARM微处理器:处理器工作状态,进入Thumb状态: 执行BX指令,并设

40、置操作数寄存器的状态(位0)为1。 在Thumb状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),当异常处理返回时自动转换到Thumb状态 进入ARM状态: 执行BX指令,并设置操作数寄存器的状态(位0)为0。 进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态,ARM微处理器:处理器工作状态,Thumb-2:增加了混合模式能力 定义了一个新的32-bit指令集能在传统的16-bit指令运行的Thumb状态下同时运行。 这样能在一个系统中更好地平衡ARM和Thumb代码的能力,使系统能更好地利用ARM级别的性能和Thumb代码的密

41、度的优势,ARM微处理器:寄存器,ARM处理器有37个寄存器 31个通用寄存器:程序计数器、堆栈及其他通用寄存器 6个状态寄存器 这些寄存器不能同时看到 不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的,ARM微处理器: ARM State寄存器,ARM微处理器: Thumb State寄存器,ARM State 与Thumb State寄存器关系,ARM微处理器:通用寄存器,通用寄存器是R0-R15的寄存器,分为三类 没有对应影子寄存器的寄存器R0-R7 有对应影子寄存器的寄存器R8-R14 程序计数器R15 (或者PC) 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器,AR

42、M微处理器:通用寄存器,R0-R7 所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。 在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。,ARM微处理器:通用寄存器,R8-R14 访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 R8-R12各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。 R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。 R13(

43、也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。 R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。,ARM微处理器:通用寄存器,R15 用作程序计数器(PC),可以被读写 ARM state: bits 1:0为0,bits31:2即为 PC. THUMB state:bit 0为0,bits31:1即为 PC,ARM微处理器:程序状态寄存器,CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含: 条件标志 中断使能标志 当前处理器的模式

44、 其它的一些状态和控制标志,ARM微处理器:程序状态寄存器,置0表示执行32bit的ARM指令 置1表示执行16bit的Thumb指令,Negative,Zero,Carry,Overflow,IRQ中断的响应: 置1:禁止响应 置0:允许响应,FIQ中断的响应: 置1:禁止响应 置0:允许响应,ARM微处理器:程序状态寄存器,模式控制位M0-M4,ARM微处理器:异常,异常是由内部或者外部原因引起的,当异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行。 在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址 而ARM是到向量地址的地方读取指令,也就是A

45、RM的向量地址处存放的是一条指令(一般是一条跳转指令),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 CPSR6=1 /*禁止快速中断*/ CPSR7=1 /*禁止正常中断*/ PC=exception vector address 当处理异常返回时,将SPSR传送到CPSR,R14传送到PC,A

46、RM微处理器:异常,Reset:CPU被复位后,进入Supervisor Mode并且禁止FIQ和IRQ。 Undefined Instructions: CPU执行一条未被定义的指令时就会触发该异常。这种机制可以用于通过软件仿真的方式扩展THUMB or ARM指令集。 SWI:软中断(SWI)是执行SWI指令时触发的,该异常主要用于OS的系统调用。,ARM微处理器:异常,Prefetch Abort: CPU在读取指令时发生读内存错误并且该指令又要被执行则触发该异常;如果只是在读取指令时发生了内存错误而该指令又未被执行则不会触发该异常。 Data Abort:当CPU在读写数据时,如果发生

47、错误则触发该异常。,ARM微处理器:异常,IRQ:当外部IRQ输入请求发生时(IRQ中断已经被使能),触发该异常。 FIQ: FIQ通常被用于快速传输数据。当外部FIQ输入请求发生时(FIQ中断已经被使能),触发该异常。,ARM微处理器:异常,异常的优先级,ARM微处理器:内存和I/O,ARM 的寻址空间是线性的地址空间,为232=4G Bytes 0 to 3 存储第一个word, bytes 4 to 7存储第二个word ARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式,可以通过硬件的方式设置(没有提供软件的方式)端模式,ARM微处理器:内存和I/

48、O,大端的数据存放格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最高有效字节的地址就是该word的地址,最高有效字节位于最低地址,word a=0 x f6 73 4b cd,f6,73,4b,cd,ARM微处理器:内存和I/O,小端的数据格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最低有效字节的地址就是该word的地址,最低有效字节位于最低地址,word a=0 x f6 73 4b cd,f6,73,4b,cd,ARM微处理器:内存和I/O,大端: 小端:,0 xb3204500,0 xddddddd0,0 xb3204500,0 xddddddd0,f6,f6,73,73,4b,4b,cd,cd,da,da,00,00,实例 变量A:word A=0 x f6 73 4b cd,在内存中的起始地址为0 x b3 20 45 00 变量B:half word B=218,在内存中的起始地址为0 x dd dd dd d0,问题:half word B=218与word C=218在内存中的存放方式有何不同?请分大端和小端两种情况说

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁