嵌入式系统及应用-Chapter2-嵌入式硬件系统基础.ppt_第1页
嵌入式系统及应用-Chapter2-嵌入式硬件系统基础.ppt_第2页
嵌入式系统及应用-Chapter2-嵌入式硬件系统基础.ppt_第3页
嵌入式系统及应用-Chapter2-嵌入式硬件系统基础.ppt_第4页
嵌入式系统及应用-Chapter2-嵌入式硬件系统基础.ppt_第5页
已阅读5页,还剩171页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统及应用,第二章 嵌入式硬件系统基础,主要内容,嵌入式硬件系统基本组成,嵌入式微处理器,嵌入式系统总线,嵌入式存储系统,第一节 嵌入式硬件系统基本组成,嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 总线 存储器 输入/输出接口和设备,嵌入式微处理器,每个嵌入式系统至少包含一个嵌入式微处理器 嵌入式微处理器体系结构可采用冯诺依曼(Von Neumann)结构或哈佛(Harvard)结构,冯诺依曼结构,哈佛结构,嵌入式微处理器,传统的微处理器采用的冯诺依曼结构将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。 哈佛结构则是不同于冯诺依曼结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线(程序总线和数据总线),从而使数据的吞吐率提高了一倍。,嵌入式微处理器,嵌入式微处理器的指令系统可采用精简指令集系统RISC(Reduced Instruction Set Computer)或复杂指令集系统CISC(Complex Instruction Set Computer),嵌入式微处理器,嵌入式微处理器有许多不同的体系,即使在同一体系中也可能具有不同的时钟速度和总线数据宽度、集成不同的外部接口和设备。 据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种嵌入式微处理器体系,主流的体系有ARM、MIPS、PowerPC、SH、 X86等。,总线,嵌入式系统的总线一般集成在嵌入式微处理器中。 从微处理器的角度来看,总线可分为片外总线(如:PCI、ISA等)和片内总线(如:AMBA、 AVALON、OCP、WISHBONE等)。 选择总线和选择嵌入式微处理器密切相关,总线的种类随不同的微处理器的结构而不同。,存储器,嵌入式系统的存储器包括主存和外存。 大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中。 系统上电后在主存中的代码直接运行。主存储器的特点是速度快,一般采用ROM、EPROM、Nor Flash、SRAM、DRAM等存储器件。,存储器,目前有些嵌入式系统除了主存外,还有外存。外存是处理器不能直接访问的存储器,用来存放各种信息,相对主存而言具有价格低、容量大的特点。 在嵌入式系统中一般不采用硬盘而采用电子盘做外存,电子盘的主要种类有NandFlash、 SD (Secure Digital)卡、CompactFlash、SmartMedia、Memory Stick、MultiMediaCard、 DOC(Disk On Chip)等。,输入/输出接口和设备,嵌入式系统的大多数输入/输出接口和部分设备已经集成在嵌入式微处理器中。 输入/输出接口主要有中断控制器、DMA、串行和并行接口等,设备主要有定时器(Timers)、计数器(counters)、看门狗(watchdog timers)、RTC、UARTs、PWM(Pulse width modulator)、AD/DA、显示器、键盘和网络等。,第二节 嵌入式微处理器,嵌入式微处理器的发展 嵌入式微处理器的分类 嵌入式微处理器的特点 主流的嵌入式微处理器 (ARM, MIPS, SH, PowerPC, x86),嵌入式微处理器的发展,嵌入式微处理器的分类,嵌入式微处理器种类繁多,按位数可分为4位、8位、16位、32位和64位。 按用途来分,嵌入式微处理器可分为嵌入式DSP和通用的嵌入式微处理器两种: 嵌入式DSP:专用于数字信号处理,采用哈佛结构,程序和数据分开存储,采用一系列措施保证数字信号的处理速度,如对FFT(快速傅立叶变换)的专门优化。 通用的嵌入式微处理器:一般是集成了通用微处理器的核、总线、外围接口和设备的SOC芯片,有些还将DSP作为协处理器集成。,嵌入式微处理器的特点,基础是通用微处理器 与通用微处理器相比的区别: 体积小、重量轻、成本低、可靠性高 功耗低 工作温度、抗电磁干扰、可靠性等方面增强,嵌入式微处理器的特点,体系结构,指令集,性能,功耗和管理,成本,集成度,嵌入式微处理器的集成度,用于桌面和服务器的微处理器的芯片内部通常只包括CPU核心、Cache、MMU、总线接口等部分,其他附加的功能如外部接口、系统总线、外部总线和外部设备独立在其他芯片和电路内。 嵌入式微处理器除了集成CPU核心、Cache、MMU、总线等部分外,还集成了各种外部接口和设备,如中断控制器、DMA、定时器、UART等。符合嵌入式系统的低成本和低功耗需求,一块单一的集成了大多数需要的功能块的芯片价格更低,功耗更少。,嵌入式微处理器的集成度,嵌入式微处理器是面向应用的,其片内所包含的组件的数目和种类是由它的市场定位决定的。 在最普通的情况下,嵌入式微处理器包括: 片内存储器:部分嵌入式微处理器 外部存储器的控制器,外设接口(串口,并口) LCD控制器:面向终端类应用的嵌入式微处理器 中断控制器,DMA控制器,协处理器 定时器,A/D、D/A转换器 多媒体加速器:当高级图形功能需要时 总线 其他标准接口或外设,嵌入式微处理器的集成度,单芯片方式(Single Chip) 芯片组方式(Chip Set):由微处理器主芯片和一些从芯片组成,嵌入式微处理器的集成度,单芯片方式:华邦W90P710芯片的内部 结构,嵌入式微处理器的集成度,芯片组方式:两芯片组的手持PC方案,返回,嵌入式微处理器的体系结构,算术格式(Arithmetic Format) 由于低成本和低功耗的限制,大多数的嵌入式微处理器使用定点运算(fixed-point arithmetic),即数值被表示为整数或在1.0和1.0之间的分数,比数值表示为尾数和指数的浮点版本的芯片便宜。 当嵌入式系统中需要使用浮点运算时,可采用软件模拟的方式实现浮点运算,只不过这样要占用更多的处理器时间。 功能单元(Functional Units) 通常包括不止一个的功能单元,典型的是包含一个ALU、移位器和MAC,处理器通常用一条指令完成乘法操作。 流水线(Pipeline) 通常采用单周期执行指令,可能导致比较长的流水线,返回,嵌入式微处理器的指令集,为满足应用领域的需要,嵌入式微处理器的指令集一般要针对特定领域的应用进行剪裁和扩充。 目前很多应用系统需要类似于DSP的数字处理功能。这些指令主要有: 乘加(MAC)操作:它在一个周期中执行了一次乘法运算和一次加法运算。 SIMD类操作:允许使用一条指令进行多个并行数据流的计算。 零开销的循环指令:采用硬件方式减少了循环的开销。仅使用两条指令实现一个循环,一条是循环的开始并提供循环次数,另一条是循环体。 多媒体加速指令:像素处理、多边形、3D操作等指令。,返回,嵌入式微处理器的性能,低端(低价,低性能) 一般低端嵌入式微处理器的性能最多达到50MIPS,应用在对性能要求不高但对价格和功耗有严格要求的应用系统中。 中档,低功耗 中档的嵌入式微处理器可达到较好的性能(如150MIPS以上),采用增加时钟频率、加深流水深度、增加Cache及一些额外的功能块来提高性能,并保持低功耗。 高端,嵌入式微处理器的性能,高端嵌入式微处理器用于高强度计算的应用,使用不同的方法来达到更高的并行度 单指令执行乘法操作:通过加入额外的功能单元和扩展指令集,使许多操作能在一个单一的周期内并行执行。 每个周期执行多条指令:桌面和服务器的超标量处理器都支持单周期多条指令执行,在嵌入式领域通常使用VLIW(very large instruction word)来实现,这样只需较少的硬件,总体价格会更低些。例如TI的TMS320C6201芯片,通过使用VLIW方法,能在每个周期同时执行8条独立的32位指令。 使用多处理器:采用多处理器的方式满足应用系统的更高要求。一些嵌入式微处理器采用特殊的硬件支持多处理器。如TI的OMAP730包括了三个处理器核ARM9、ARM7、DSP。,返回,嵌入式微处理器的功耗管理,大多数嵌入式系统有功耗的限制(特别是电池供电的系统),它们不支持使用风扇和其他冷却设备。 降低工作电压:1.8v、1.2v甚至更低,而且这个数值一直在下降。 提供不同的时钟频率:通过软件设置不同的时钟分频。 关闭暂时不使用的功能块:如果某功能块在一个周期内不使用,就可以被完全关闭,以节约能量。,嵌入式微处理器的功耗管理,提供功耗管理机制 运行模式(Running Mode):处理器处于全速运行状态下。 待命模式(Standby Mode):处理器不执行指令,所有存储的信息是可用的,处理器能在几个周期内返回运行模式。 时钟关闭模式(clock-off mode):时钟完全停止,要退出这个模式系统需要重新启动。 影响功耗的其他因素还有总线(特别是总线转换器,可以采用特殊的技术使它的功耗最小)和存储器的大小(如果使用DRAM,它需要不断的刷新)。为了使功耗最小,总线和存储器要保持在应用系统可接受的最小规模。,返回,嵌入式微处理器的成本,为降低价格,需要在嵌入式微处理器的设计中考虑不同的折衷方案。 处理器的价格受如下因素影响: 处理器的特点:功能块的数目、总线类型等。 片上存储器的大小。 芯片的引脚数和封装形式:如PQFP(Plastic Quad Flat Package)通常比BGA(Ball Grid Array Package)便宜。 芯片大小(die size):取决于制造的工艺水平。,嵌入式微处理器的成本,代码密度(code density):代码存储器的大小将影响价格,不同种类的处理器有不同的代码密度: CISC芯片代码密度高,但结构复杂,其额外的控制逻辑单元使价格变得很高; RISC芯片拥有简单的结构,代码密度低,因为其指令集简单; VLIW代码密度最低,因为它的指令字倾向于采用多字节。,主流的嵌入式微处理器,目前主流的嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列、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 Shipments 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 集成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,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内核以及各类外围接口。 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,按应用特征分类 应用处理器 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的符号扩展读 支持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体系增加了一个新的指令同时改进了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,它在许多方面做了改进如内存系统、异常处理和较好地支持多处理器。 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实现Thumb-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 Powered shipment in 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芯片,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 MPcore可以集成1-4个ARM11处理器 关键是要提供给软件开发者一个友好的编程界面 64位处理器? 哪儿是系统性能瓶颈? 是需要64位地址还是64位数据? 嵌入式系统比PC有更好的条件来解决系统性能和带宽问题 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,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 接口,数据总线,控制信号,地址总线,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,解码站,指令 解压缩,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 ),PC PC,PC - 4 PC-2,PC - 8 PC - 4,ARM Thumb,ARM7TDMI指令流水线,操作,周期,1 2 3 4 5 6,Fetch,最佳流水线,该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (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 Buffer后不需要CPU的任何干预而由Write Buffer控制逻辑自动的将数据写到最终的地方;Cache的回写则需要CPU的干预。Write Buffer较小,通常只有几十个字节。 Read Buffer:当读数据时Read Buffer自动多读取一些字节,但是不占用CPU的总线时间,所以能加快读数据的速度;当使用Cache时如果要从内存中读取数据则每个数据都会占用CPU的时间,这是与Read Buffer的最大不同点。Read Buffer较小,通常只有几十个字节。,Cache与Buffer的区别,ARM9TDMI,Harvard架构 增加了可用的存储器宽度 指令存储器接口 数据存储器接口 可以实现对指令和数据存储器的同时访问 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 Thumb Inst Decode,Reg Select,Reg Read,Shift,ALU,Reg Write,ThumbARM decompress,ARM decode,Instruction Fetch,FETCH,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 乘法指令 新的计数到零指令 新的饱和算术指令 ARM946E-S ARM9E-S 内核 指令和数据cache, 大小可选择 指令和数据RAM,大小可选择 保护单元 AHB 总线接口 ARM966E-S 与 ARM946E-S相似, 但无 cache,ARM926EJ-S系列概述,Jazelle状态允许直接执行Java 8位码 ARM926EJ-S ARM9E-S 内核 可配置的cache和 TCM 紧耦合内存(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 ARM10,流水线的对比,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级流水线带统计分支预测 32k的数据和指令 Cache, 外加2k的数据Minicache 8口写缓冲,4口填充和追加缓冲 完整的32位协处理器接口 调试和性能监控逻辑(通过CP14 ) 乘-加模块(作为CP0 ) 可配置的内核时钟速度100-733MHz ,来自 33-66MHz 输入时钟 异步输入总线时钟可到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模式,与User模式的运行环境一样 但是它可以不受任何限制的访问任何资源 该模式主要用于运行系统中的一些特权任务,FIQ模式,IRQ模式,Supervisor模式,Abort模式,Undefined模式,异常模式:主要是在外部中断或者程序执行非法操作时会触发,ARM微处理器:处理器工作状态(PROCESSOR OPERATING STATES),处理器有两种工作状态: 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微处理器:处理器工作状态,Thumb-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微处理器:通用寄存器,通用寄存器是R0-R15的寄存器,分为三类 没有对应影子寄存器的寄存器R0-R7 有对应影子寄存器的寄存器R8-R14 程序计数器R15 (或者PC) 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器,ARM微处理器:通用寄存器,R0-R7 所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。 在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。,ARM微处理器:通用寄存器,R8-R14 访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 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. THUMB 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微处理器:异常,异常是由内部或者外部原因引起的,当异常发生时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 CPSR6=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在读取指令时发生读内存错误并且该指令又要被执行则触发该异常;如果只是在读取指令时发生了内存错误而该指令又未被执行则不会触发该异常。 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存储第二个word ARM支持大端(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,大端: 小端:,0xb3204500,0xddddddd0,0xb3204500,0xddddddd0,f6,f6,73,73,4b,4b,cd,cd,00,00,da,da,实例 变量A:word A=0x f6 73 4b cd,在内存中的起始地址为0x b3 20 45 00 变量B:half word B=218,在内存中的起始地址为0x dd dd dd d0,ARM微处理器:内存和I/O,数据信息,状态信息,控制信息,数字量,模拟量,开关量,连续几位二进制形式表示的数或字符。如键盘输入的信息以及打印机、显示器输出的信息等,时间上连续变化的量,如温度、压力、流量等,只有两个状态的量,如阀门的合与断、电路的开与关等,CPU与I/O设备之间的接口信息,反映外设当前工作状态的信息,READY信号:输入设备是否准备好 BUSY信号:输出设备是否忙 ,CPU向外部设备发送的控制命令信息,读写控制信号 时序控制信号 中断信号 片选信号 其它操作信号,数据、状态、控制信息都是通过CPU的数据总线传送,存在I/O接口的不同端口中:数据、状态、控制端口,ARM微处理器:内存和I/O,I/O端口的编址方法,即I/O端口的地址安排方式,存储器映射编址,I/O映射编址,I/O端口的地址与内存地址统一编址,即I/O单元与内存单元在同一地址空间,I/O端口与内存单元分开编址,即I/O单元与内存单元都有自己独立的地址空间,ARM微处理器:内存和I/O,ARM微处理器:内存和I/O,ARM 的I/O端口都是内存映射的方式,即对I/O端口的访问与内存的访问的方式完全一样。 通常将I/O所映射的存储系统标识为非高速缓存(uncachable)和非缓冲(unbufferable)。,MIPS:简介,MIPS是世界上很流行的一种RISC处理器。 MIPS的意思是“无互锁流水级的微处理器”(Microprocessor without interlocked piped stages)。 其机制是尽量利用软件办法避免流水线中的数据相关问题。 MIPS处理器是由斯坦福(Stanford)大学John Hennery教授领导的研究小组研制出来的。 President of Stanford University, USA Computer architecture book use MIPS as foundation,MIPS:发展历程,1984年MIPS计算机公司成立。 1986年推出R2000处理器。 1988年推出R3000处理器。 1989年 IPO as MIPS Computer Systems, 专注于 workstations 1991年推出第一款64位商用微处理器R4000。 1992年,SGI收购了MIPS计算机公司之后,该公司又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号的处理器。 1998年,MIPS脱离SGI成为MIPS Technologies之后IPO,其战略发生变化,把重点放在了嵌入式系统上。,MIPS:发展历程,1999年,MIPS公司发布MIPS 32和MIPS 64架构标准,为未来MIPS处理器的开发奠定了基础。 新的架构集成了所有原来的MIPS指令集,并且增加了许多更强大的功能。 和ARM公司一样,MIPS公司本身并不从事芯片的生产活动(只进行设计),不过其他公司如果要生产该芯片的话必须得到MIPS公司的许可。,MIPS:指令体系,MIPS指令集体系ISA (MIPS Instruction Set Architecture) 从最早的MIPS I ISA开始发展,到MIPS V ISA,再到现在的MIPS32和MIPS64结构,其所有版本都是与前一个版本兼容的。 在MIPS III的ISA中,增加了64位整数和64位地址。 在MIPS IV和MIPS V的ISA中增加了浮点数的操作等。,MIPS :指令体系,MIPS I MIPS V MIPS32和MIPS64结构,其所有版本都是与前一个版本兼容的。 MIPS32和MIPS64体系是为满足高性能、成本敏感的需求而设计的。 MIPS32体系是基于MIPS II的, 并从MIPS III、MIPS IV和MIPS V中选择一些指令以增强数据和代码的有效操作。 MIPS64体系是基于MIPS V并与MIPS32体系兼容的。,第三节 嵌入式系统总线,概述 AMBA总线 PCI总线 CPCI总线 串行总线,概述,总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。,片内总线或内部总线:连接CPU内部各主要功能部件,片外总线:CPU与存储器(RAM和ROM)和I/O接口之间进行信息交换的通道,数据总线Dbus,地址总线Abus,控制总线Cbus,按相对于CPU位置划分,按功能和信号类型,总线分类,概述,总线宽度,总线频率,总线带宽,总线带宽(单位:MB/s) =(总线宽度/8) 总线频率,如:总线宽度32位,频率66MHZ,则 总线带宽=(32/8)* 66MHz=264MB/s,总线的主要参数,又称总线位宽,指的是总线能同时 传送数据的位数。如16位总线就是 具有16位数据传送能力。,总线工作速度的一个重要参数, 工作频率越高,速度越快。 通常用MHz表示。,又称总线的数据传送率,是指在一 定时间内总线上可传送的数据总量, 用每秒最大传送数据量来衡量。 总线带宽越宽,传输率越高。,概述,原因: 数据宽度:高速总线通常提供较宽的数据连接。 成本:高速总线通常采用更昂贵的电路和连接器。 桥允许总线独立操作,这样在I/O操作中可提供某些并行性。,一个微处理器系统可能含有多条总线,高速总线,低速总线,高速设备,低速设备,桥,总线互联的电路,概述,存储器,高速设备,CPU,低速设备,低速设备,桥,高速总线,低速总线,多总线系统,概述,概述,Processor-local bus,Micro- processor,Cache,Memory controller,DMA controller,Bridge,Peripheral,Peripheral,Peripheral,Peripheral bus,嵌入式系统总线,AMBA总线,AMBA(Advanced Microcontroller Bus Architecture)是ARM 公司研发的一种总线规范,目前为3.0 版本。 在AMBA总线规范中,定义了3种总线: AHB(Advanced High-performance Bus):用于高性能系统模块的连接,支持突发模式数据传输和事务分割;可以有效地连接处理器、片上和片外存储器,支持流水线操作。 ASB(Advanced System Bus):也用于高性能系统模块的连接,由AHB总线替代; APB(Advanced Peripheral Bus):用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。,AMBA总线,测试接口,ARM CPU,SDRAM Control,SRAM,LCD Control,桥,并行接口,串行 接口,Timer,UART,基于AMBA总线的典型系统,AMBA总线 S3C44b0X,AMBA总线-AHB,只有主单元可在任何时刻使用总线。 AHB可以有一个或多个主单元。 主单元可以是RISC处理器、协处理器以及DMA控制器,以启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论