嵌入式系统及应用
第二章 嵌入式硬件系统基础
主要内容 嵌入式硬件系统基本组成 嵌入式微处理器 嵌入式系统总线 嵌入式存储系统
第一节 嵌入式硬件系统基本组成
嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。
嵌入式微处理器 每个嵌入式系统至少包含一个嵌入式微处理器 嵌入式微处理器体系结构可采用冯•诺依曼(Von Neumann)结构或哈佛(Harvard)结构 指令 程序存储器 CPU PC 地址 数据存储器 MOV r8,#8 数据 地址 数据 主存储器 MOV r8,#8 CPU PC 冯•诺依曼结构 哈佛结构
嵌入式微处理器 传统的微处理器采用的冯·诺依曼结构将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。 哈佛结构则是不同于冯·诺依曼结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线(程序总线和数据总线),从而使数据的吞吐率提高了一倍。
嵌入式微处理器 嵌入式微处理器的指令系统可采用精简指令集系统RISC(Reduced Instruction Set Computer)或复杂指令集系统CISC(Complex Instruction Set Computer) CISC RISC 价格 由硬件完成部分软件功能,硬件复杂性增加,芯片成本高 由软件完成部分硬件功能,软件复杂性增加,芯片成本低 性能 减少代码尺寸,增加指令的执行周期数 使用流水线降低指令的执行周期数,增加代码尺寸 指令集 大量的混杂型指令集,有简单快速的指令,也有复杂的多周期指令,符合HLL(high level language) 简单的单周期指令,在汇编指令方面有相应的CISC微代码指令 高级语言支持 硬件完成 软件完成 寻址模式 复杂的寻址模式,支持内存到内存寻址 简单的寻址模式,仅允许LOAD和STORE指令存取内存,其它所有的操作都基于寄存器到寄存器 控制单元 微码 直接执行 寄存器数目 寄存器较少 寄存器较多
嵌入式微处理器 嵌入式微处理器有许多不同的体系,即使在同一体系中也可能具有不同的时钟速度和总线数据宽度、集成不同的外部接口和设备。 据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种嵌入式微处理器体系,主流的体系有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)
嵌入式微处理器的发展 制作工艺 主频 晶体管个数 位数 20世纪80年代 中后期 20世纪90年代 初期 21世纪 1 - 0.8 m 20世纪80年代 中后期 20世纪90年代 初期 21世纪 制作工艺 1 - 0.8 m 0.8 - 0.5 m 0.5 – 0.35 m 0.25 - 0.13 m 主频 < 33 MHz <100 MHz <200 MHz < 600 MHz 晶体管个数 > 500K >2M >5M >22M 位数 8/16bit 8/16/32bit 8/16/32/64bit
嵌入式微处理器的分类 嵌入式微处理器种类繁多,按位数可分为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) 功能单元(Functional Units) 由于低成本和低功耗的限制,大多数的嵌入式微处理器使用定点运算(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系列等。 属于这些系列的嵌入式微处理器产品很多,有上千种以上。
Embedded RISC Processor Shipments Units (millions) Embedded RISC Processor Shipments Source: Andrew Allison, Inside The New Computer Industry, January 2001
32位浪潮的到来 Total Embedded Control Market Shipments by Type 总共约26亿个32位处理器 付运,占总数96亿的27% 2005年ARM为17亿个, 约占32位总量的70%左右 Total MCU, by Sub-Category (excl. DSP) Source: Semico Research Corp. and SIA/WSTS
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微处理器核心的功能、通信处理器和单硅成分内的显示控制器。这个设备可以在大量的电子应用中使用,特别是在低能源、便携式、图象捕捉和个人通信设备。
PowerPC 405 GP技术规格 技术 0.25 微米 CMoS SA-12E 性能 282 Dhrystone 2.1 MIPS @200MHz 375 Dhrystone 2.1 MIPS @266MHz 频率 (CPU / 200/100/66/50 MHz SDRAM /PCI /EBC) 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) *Dhrystone是一个综合性的基准测试程序,它是为了测试编译器和CPU处理整数指令和控制功能的有效性,人为地选择一些典型指令综合起来形成的测试程序。 PowerPC 405 GP技术规格
ARM系列 ARM(Advanced RISC Machine)公司是一家专门从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及各类外围接口。 ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。 目前,90%的移动电话、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成为业界公认的嵌入式微处理器标准。
特征:no sub-memory system 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 一般性能、最低成本、极低功耗
ARM11 Micro-Architecture v4 v5TE SA110 v4T ARM720T ARM7TDMI-S ARM920T ARM940T ARM922T ARM966E-S ARM946E-S ARM1020E v5TEJ / Jazelle v6 / Jazelle ARM7EJ-S ARM926EJ-S ARM1026EJ-S ARM11 Micro-Architecture 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图形和游戏以及传统嵌入式控制应用的需要。
Application Processor Embedded RT Controller ARM Family ARM Architecture ARM720T ARM1136J ARM1176JZ ARM1026E ARM920T/ARM922T ARM926EJ Cortex A Application Processor ARM7TDMI ARM1156T2 ARM1026E ARM946E Cortex R Embedded RT Controller ARM7TDMI ARM966E ARM968E Cortex M Micro-controller ARM Cortex ™ Family 1000 DMIPS ARM11™ Family 500 DMIPS ARM10™ Family 300 DMIPS ARM9™ Family ARM7™ Family 150DMIPS
ARM7 系列 ARM9 系列 ARM9E 系列 ARM10 系列 系列 相应产品 性能特点 ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ 三级流水 性能:0.9MIPS/MHz, 可达到130MIPs (Dhrystone2.1) ARM9 系列 ARM920T, ARM922T 五级流水, 性能:1.1MIPS/MHz,可达300 MIPS (Dhrystone 2.1),单32-bit AMBA bus接口,支持MMU ARM9E 系列 ARM926EJ-S, RM946E-S, ARM966E-S, ARM968E-S, ARM996HS 五级流水,支持DSP指令。 性能:1.1MIPS/MHz,可达300 MIPS (Dhrystone 2.1),高性能AHB, 软核(soft IP) ARM10 系列 ARM1020E, ARM1022E ARM1026EJ-S 6级流水支持分支预测(branch prediction),支持DSP指令。 性能:1.35 MIPS/MHz,可达 430+ Dhrystone 2.1 MIPS,,可选支持高性能浮点操作,双64位总线接口,内部64位数据通路
ARM11 系列 Cortex 系列 系列 系列 相应产品 性能特点 ARM11MPCore, ARM1136J(F)-S, ARM1156T2(F)-S, ARM1176JZ(F)-S 8级流水线(9级ARM1156T2(F)-S),独立的load-store和arithmetic流水线,支持分支预测和返回栈(Return Stack)。强大的ARMv6 指令集,支持DSP, SIMD (Single Instruction Multiple Data) 扩展,支持ARM TrustZone 、Thumb-2核心技术。740 Dhrystone 2.1 MIPS,低功耗0.6mW/MHz (0.13µm, 1.2V) Cortex 系列 Cortex-A8, Cortex-M3, Cortex-R4 Cortex-A系列: 面向用于复杂OS和应用的应用处理器(applications processors),支持ARM, Thumb and Thumb-2指令集。 Cortex-R系列:面向嵌入式实时领域的嵌入式处理器,支持ARM, Thumb,和Thumb-2 指令集。 Cortex-M系列:面向深嵌入式价格敏感的嵌入式处理器, 只支持Thumb-2指令集 SecurCore 系列 SecurCore SC100,SecurCore SC200 用于Smart Card和Secure IC的32-bit解决方案。支持ARM和Thumb 指令集,软核。 具有安全特征和低成本安全存储保护单元
当前的主流ARM处理器 ARM7 ARM9 世界上最为广泛使用的 CPU 之一 <100MHz 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
ARM Cortex A8 Application Processor 目前最快的嵌入式处理器 ARM Cortex A8 Application Processor 最快的处理器提供超过2000 DMIPS 的性能 运行于 1GHz 频率 (90nm or 65nm 制造工艺) 功耗小于 300mW ARM11 is currently the most power efficient processor on the market, so it makes the best baseline comparison.
Cortex-M3 实现 $1 ARM芯片 Luminary Micro的Stellaris系列MCU产品售价仅1美元 ARM Cortex Architecture Thumb-2 ISA 3 Stage Pipeline 1.22 DMIPS/MHz – 30% over ARM7TDMI 33K gates – 30% smaller than ARM7TDMI ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。 Luminary Micro的Stellaris系列MCU产品售价仅1美元
领先嵌入式处理器技术发展讨论 多处理器技术 64位处理器? 单处理器技术的性能提升终有一天会遭遇瓶颈 对嵌入式系统而言,尤其要考虑付出的代价 把任务进行并行分解是理想的选择 ARM MPcore可以集成1-4个ARM11处理器 关键是要提供给软件开发者一个友好的编程界面 64位处理器? 哪儿是系统性能瓶颈? 是需要64位地址还是64位数据? 嵌入式系统比PC有更好的条件来解决系统性能和带宽问题 PC系统在主板上,扩展系统带宽需要扩大每个组件的接口带宽 SoC只需扩展片内总线,非常容易实现 AMBA支持8-1024位总线宽度 许多SoC设计以及ARM处理器内部已经使用64位数据总线
ARM7TDMI Thumb 架构扩展, 提供两个独立的指令集: ARM 指令,均为 32位 Thumb指令,均为 16位 两种运行状态,用来选择哪个指令集被执行 内核具有Debug扩展结构 ARM7TDMI 3 级流水线 冯·诺依曼架构 CPI(Cycle Per Instruction) 约为1.9 EmbeddedICE 逻辑 增强乘法器 (32x8) 支持64位结果
ARM7TDMI 内核信号 ARM7TDMI 内核 时钟 存储器接口 配置 中断 存储器管理 总线控制 电源 协处理器接口 nM[4:0] MCLK nMREQ 时钟 nWAIT SEQ LOCK A[31:0] ISYNC BUSEN D[31:0] 存储器接口 配置 BIGEND DIN[31:0] ARM7TDMI 内核 DOUT[31:0] nIRQ nENOUT 中断 nRW nFIQ MAS[1:0] nRESET nTRANS APE 存储器管理 ABORT 总线控制 DBE nOPC VDD nCPI 协处理器接口 电源 CPA VSS CPB 内核信号
ARM7TDMI 方框图 TAP 控制器 控制信号 地址总线 ARM7TDMI 内核 数据总线 JTAG 接口 BUS Splitter Embedded ICE 逻辑 TAP 控制器 JTAG 接口 方框图
ARM7TDMI 内核 地址 自增器 地址寄存器 寄存器 Bank 解码站 乘法器 读数据 寄存器 桶 移位器 写数据 寄存器 ABE A[31:0] 地址 自增器 地址寄存器 Incrementer P C BIGEND MCLK 寄存器 Bank nWAIT PC Update 指令 解码 nRW A L U B u s MAS[1:0] 解码站 A B u s B u s ISYNC 指令 解压缩 nIRQ 乘法器 nFIQ nRESET 及 ABORT nTRANS 读数据 寄存器 nMREQ 桶 移位器 SEQ 控制 逻辑 LOCK nM[4:0] 写数据 寄存器 nOPC nCPI 32 位 ALU CPA CPB DBE D[31:0] 内核
ARM7TDMI指令流水线 为增加处理器指令流的速度,ARM7 系列使用3级流水线。 允许多个操作同时处理,而非顺序执行。 PC指向正被取指的指令,而非正在执行的指令。 ARM Thumb Fetch PC PC 从存储器中读取指令 Decode PC - 4 PC-2 解码指令中用到的寄存器 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ) Execute PC - 8 PC - 4
ARM7TDMI指令流水线 周期 1 2 3 4 5 6 操作 Fetch Decode。 Fetch Execute Decode Fetch ADD SUB MOV AND ORR EOR CMP RSB Execute Decode Fetch Execute Decode Fetch Fetch Execute Decode Execute Decode Fetch Execute Decode Fetch 最佳流水线 该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1
ARM7TDMI 带Cache的ARM7TDMI ARM720T ARM710T 同ARM710T,但支持 WinCE JTAG 和非 AMBA 信号 CP15 控制 逻辑 ARM7TDMI 内核 地址 MMU 写 缓冲 AMBA 总线 接口 AMBA 接口 地址 数据 数据写 数据读 Cache ARM7xxT 带Cache的ARM7TDMI ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲 ARM710T 8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 写缓冲
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 级流水线 实现了以下改进: 增加了可用的存储器宽度 可以实现对指令和数据存储器的同时访问 指令存储器接口 数据存储器接口 可以实现对指令和数据存储器的同时访问 5 级流水线 实现了以下改进: 改进 CPI 到 ~1.5 提高了最大时钟频率
ARM or Thumb Inst Decode ARM9TDMI ARM7TDMI ARM decode Instruction Fetch Thumb®ARM decompress Reg Read Reg Write Shift ALU Reg Select FETCH DECODE EXECUTE ARM9TDMI ARM or Thumb Inst Decode Instruction Fetch Memory Access Reg Write Shift + ALU Reg Decode Reg Read FETCH DECODE EXECUTE MEMORY WRITE 流水线
ARM9TDMI 带Cache的ARM9TDMI ARM9TDMI ARM9xxT ARM920T D Cache 外部 MMU 存储器 2x 16K caches MMU 支持虚拟地址和内存保护 写缓冲 D Cache GLUE 外部 存储器 ARM9TDMI MMU ARM940T 2x 4K caches MPU 写缓冲 I Cache ARM9xxT 带Cache的ARM9TDMI
ARM9E-S 系列概述 ARM9E 基于 ARM9TDMI 内核,有以下扩展和增强 ARM946E-S ARM966E-S 单周期 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 系列概述 ARM1020E ARM1022E v5TE架构 CPI 1.3 6 级流水线 静态分支预测 支持新的 VFPv1 结构 ARM1020E 每周期64 位的 LDM / STM操作 EmbeddedICE逻辑 - RT-II 32kB 指令cache和32kB数据cache 支持“Hit under miss” 非阻塞的执行单元 同ARM1020E,除了cache大小为16kB ARM1022E 对SUDL(single user design license )有效
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模式
ARM微处理器:CPU模式 User模式 System模式 FIQ模式 IRQ模式 Supervisor模式 Abort模式 程序不能访问有些受保护的资源 User模式 只能通过异常的形式来改变CPU的当前运行模式 与User模式的运行环境一样 但是它可以不受任何限制的访问任何资源 该模式主要用于运行系统中的一些特权任务 System模式 特权模式可以存取系统中的任何资源 FIQ模式 IRQ模式 异常模式:主要是在外部中断或者程序执行非法操作时会触发 Supervisor模式 Abort模式 Undefined模式
ARM微处理器:处理器工作状态(PROCESSOR OPERATING STATES) 处理器有两种工作状态: ARM:32位,执行字对准的ARM指令 Thumb:16位,执行半字对准的Thumb指令 ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容
ARM微处理器:处理器工作状态 进入Thumb状态: 进入ARM状态: 执行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 程序计数器R15 (或者PC) 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器
ARM微处理器:通用寄存器 R0-R7 所有模式下,R0-R7所对应的物理寄存器都是相同的 在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。
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,bits[31:2]即为 PC. THUMB state:bit [0]为0,bits[31:1]即为 PC
ARM微处理器:程序状态寄存器 CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含: 条件标志 中断使能标志 当前处理器的模式 其它的一些状态和控制标志
ARM微处理器:程序状态寄存器 条件标志 中断标志 模式控制位 ARM/Thumb控制标志 Overflow IRQ中断的响应: 置1:禁止响应 置0:允许响应 Carry Zero FIQ中断的响应: 置1:禁止响应 置0:允许响应 Negative 置0表示执行32bit的ARM指令 置1表示执行16bit的Thumb指令
ARM微处理器:程序状态寄存器 模式控制位M0-M4
ARM微处理器:异常 异常是由内部或者外部原因引起的,当异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行。 在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址 而ARM是到向量地址的地方读取指令,也就是ARM的向量地址处存放的是一条指令(一般是一条跳转指令)
ARM微处理器:异常 ARM CPU将引起异常的类型分为7种
ARM微处理器:异常 当异常出现时,异常模式分组的R14和SPSR用于保存状态,即: R14_<exception_mode>=return link SPSR_<exception_mode>=CPSR CPSR[4:0]=exception mode number CPSR[5]=0 /*在ARM状态执行*/ if<exception_mode>==Reset or FIQ then CPSR[6]=1 /*禁止快速中断*/ CPSR[7]=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 大端的数据存放格式 word a=0x f6 73 4b cd 最高有效字节位于最低地址 高地址
ARM微处理器:内存和I/O 小端的数据格式 word a=0x f6 73 4b cd 最低有效字节的地址就是该word的地址 最低有效字节位于最低地址 word a=0x f6 73 4b cd 低地址 cd 地址A 地址A+1 4b 73 地址A+2 f6 地址A+3 高地址
ARM微处理器:内存和I/O 实例 变量A:word A=0x f6 73 4b cd,在内存中的起始地址为0x b3 20 45 00 变量B:half word B=218,在内存中的起始地址为0x dd dd dd d0 0xb3204500 f6 0xb3204500 cd 73 4b 4b 73 大端: 小端: cd f6 0xddddddd0 0xddddddd0 00 da da 00
ARM微处理器:内存和I/O CPU与I/O设备之间的接口信息 连续几位二进制形式表示的数或字符。如键盘输入的信息以及打印机、显示器输出的信息等 数字量 模拟量 时间上连续变化的量,如温度、压力、流量等 数据信息 CPU与I/O设备之间的接口信息 只有两个状态的量,如阀门的合与断、电路的开与关等 开关量 反映外设当前工作状态的信息 READY信号:输入设备是否准备好 BUSY信号:输出设备是否忙 …… 状态信息 读写控制信号 时序控制信号 中断信号 片选信号 其它操作信号 CPU向外部设备发送的控制命令信息 控制信息
ARM微处理器:内存和I/O I/O端口的编址方法,即I/O端口的地址安排方式 存储器映射编址 I/O映射编址
ARM微处理器:内存和I/O 存储器映射编址 I/O映射方式 优点 缺点 举例 可采用丰富的内存操作指令访问I/O单元 外设占用内存空间 I/O程序不易读 I/O操作指令仅有单一的传送指令,I/O接口需有地址译码电路 举例 ARM中,I/O端口与内存单元统一编址 Intel 80X86系列,I/O端口与内存单元分开编址,I/O端口有自己独立的地址空间,其大小为64KB
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处理器的开发奠定了基础。 和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体系是基于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
概述 总线宽度 总线的主要参数 总线频率 总线带宽 又称总线位宽,指的是总线能同时 传送数据的位数。如16位总线就是 具有16位数据传送能力。 总线宽度 总线的主要参数 总线带宽(单位:MB/s) =(总线宽度/8)× 总线频率 总线工作速度的一个重要参数, 工作频率越高,速度越快。 通常用MHz表示。 总线频率 如:总线宽度32位,频率66MHZ,则 总线带宽=(32/8)* 66MHz=264MB/s 又称总线的数据传送率,是指在一 定时间内总线上可传送的数据总量, 用每秒最大传送数据量来衡量。 总线带宽越宽,传输率越高。 总线带宽
概述 桥 一个微处理器系统可能含有多条总线 高速总线 低速总线 高速设备 低速设备 原因: 数据宽度:高速总线通常提供较宽的数据连接。 总线互联的电路 原因: 数据宽度:高速总线通常提供较宽的数据连接。 成本:高速总线通常采用更昂贵的电路和连接器。 桥允许总线独立操作,这样在I/O操作中可提供某些并行性。
概述 低速设备 CPU 高速总线 低速总线 桥 存储器 高速设备 低速设备 多总线系统
概述
概述 嵌入式系统总线 Micro- processor Cache Memory controller DMA controller Processor-local bus Peripheral Peripheral Peripheral Bridge 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总线 AHB 系统总线 APB 外部总线 桥 基于AMBA总线的典型系统 测试接口 ARM CPU 并行接口 串行 接口 SDRAM Control AHB 系统总线 APB 外部总线 桥 SRAM LCD Control Timer UART 基于AMBA总线的典型系统
AMBA总线 - S3C44b0X
AMBA总线-AHB 只有主单元可在任何时刻使用总线。 主单元 AHB可以有一个或多个主单元。 主单元可以是RISC处理器、协处理器以及DMA控制器,以启动和控制总线操作。 可以响应(并非启动)读或写总线操作。 总线的从单元可以在给定的地址范围内对读写操作进行相应的反应。 从单元向主单元发出成功、失败信号或等待各种反馈信号。 从单元通常是其复杂程度不足以成为主单元的固定功能块,例如外存接口、总线桥接口以及任何内存都可以是从单元,系统的其他外设也包含在AHB的从单元中。 从单元 AHB总线 用来确定控制总线是哪个主单元,以保证在任何时候只有一个主单元可以启动数据传输。 一般来说仲裁协议都是固定好的,例如最高优先级方法或平等方法,可根据实际的情况选择适当的仲裁协议。 仲裁器 译码器 总线译码器用于传输译码工作,提供传输过程中从单元的片选信号。
AMBA总线-AHB 一个典型的AHB总线工作过程,它包括以下两个阶段: 地址传送阶段(address phase):它将只持续一个时钟周期。在HCLK的上升沿数据有效。所有的从单元都在这个上升沿来采样地址信息。 数据传送阶段(data phase):它需要一个或几个时钟周期。可以通过HREADY信号来延长数据传输时间,当HREADY信号为低电平时,就在数据传输中加入等待周期,直到HREADY信号为高电平才表示这次传输阶段结束。
AMBA总线-AHB AHB总线工作过程 HADDR[31:0] HWDATA[31:0] Address phase Data phase Control A HCLK HREADY AHB总线工作过程 HRDATA[31:0]
AMBA总线-APB APB主要由下面2部分组成: APB桥是APB中唯一的主单元,是AHB/ASB的从单元 APB桥 APB从单元(Slave) APB桥是APB中唯一的主单元,是AHB/ASB的从单元 APB桥的接口信号
AMBA总线-APB APB桥将系统总线AHB/ASB和APB连接起来,并执行下列功能: 锁存地址并保持其有效,直到数据传送完成。 译码地址并产生一个外部片选信号,在每次传送时只有一个片选信号(PSELx)有效。 写传送(write transfer)时驱动数据到APB。 读传送(read transfer)时驱动数据到系统总线AHB/ASB。 传送时产生定时触发信号PENABLE。
AMBA总线-APB APB从单元具有简单灵活的接口,接口的具体实现是依赖于特定设计的,有许多不同的可能。 当写传送时数据锁定在下列点: 当PSELx为高电平时,在每个PCLK的上升沿,在PENABLE的上升沿。 片选信号PSELx和地址信号PADDR可合并起来决定需要操作的寄存器。
PCI总线:发展历程 最早的PC总线是IBM公司1981年在PC/XT 电脑采用的系统总线,它基于8bit的8088 处理器,被称为PC总线或者PC/XT总线。 在1984年的时候,IBM 推出基于16-bit Intel 80286处理器的PC/AT 电脑,系统总线也相应地扩展为16bit,并被称呼为PC/AT 总线。 而为了开发与IBM PC 兼容的外围设备,行业内便逐渐确立了以IBM PC 总线规范为基础的ISA(工业标准架构:Industry Standard Architecture )总线 。
PCI总线:发展历程 ISA 是8/16bit 的系统总线,最大传输速率仅为8MB/s ,但允许多个CPU 共享系统资源。由于兼容性好,它在上个世纪80年代是最广泛采用的系统总线,不过它的弱点也是显而易见的,比如传输速率过低、CPU占用率高、占用硬件中断资源等。 在1988年,康柏、惠普等9个厂商协同把ISA 扩展到32-bit,这就是著名的EISA(Extended ISA,扩展ISA)总线。EISA 总线的工作频率仍旧仅有8MHz ,并且与8/16bit 的ISA总线完全兼容,由于是32-bit 总线的缘故,带宽提高了一倍,达到了32MB/s.可惜的是,EISA 仍旧由于速度有限,并且成本过高,在还没成为标准总线之前,在20世纪90年代初的时候,就给PCI总线给取代了。
PCI总线:发展历程 嵌入式系统已开始逐步采用微机系统普遍采用的PCI总线,以便于系统的扩展。 1991年Intel公司联合IBM、Compaq、AST、HP、DEC等100多家公司成立了PCISIG(Peripheral Component Interconnect Special Interest Group)协会,它致力于促进PCI(Peripheral Component Interconnect)总线工业标准的发展。 1992年Intel 在发布486处理器的时候,也同时提出了32-bit 的PCI总线。 PCI总线规范先后经历了1.0版、2.0版和1995年的2.1版。
PCI总线:特点 PCI总线是地址、数据多路复用的高性能32位和64位总线。 2.1版本定义了64位总线扩展和66MHz总线时钟的技术规范。 从数据宽度上看,PCI 总线有32bit 、64bit 之分 从总线速度上分,有33MHz、66MHz 两种
PCI总线:特点 与ISA 总线不同,PCI 总线的地址总线与数据总线是分时复用的,支持即插即用(Plug and Play) 、中断共享等功能。 分时复用的好处是一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。
PCI总线:特点 数据传输时,由一个PCI 设备做发起者(主控、Initiator或Master),而另一个PCI 设备做目标(从设备、Target 或Slave)。 总线上所有时序的产生与控制都由Master来发起。 PCI 总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构,来决定谁有权拿到总线的主控权。
PCI总线:信号定义 32位 PCI 系统的管脚按功能来分有以下几类: 系统控制 CLK:PCI 时钟,上升沿有效 RST:Reset信号 传输控制 FRAME #:标志传输开始与结束 IRDY#:Master 可以传输数据的标志 DEVSEL #:当Slave 发现自己被寻址时设置低电平应答 TRDY#:Slave 可以传输数据的标志 STOP #:Slave主动结束传输数据 IDSEL:在即插即用系统启动时用于选中板卡的信号
PCI总线:信号定义 地址与数据总线 AD[ 31 : :0 ]:地址/数据分时复用总线 C/ BE # [3 : :0 ]:命令/字节使能信号 PAR:奇偶校验信号 仲裁信号 REQ #:Master 用来请求总线使用权 GNT #:仲裁机构允许Master得到总线使用权 错误报告 PERR #:数据奇偶校验错 SERR #:系统奇偶校验错
PCI总线:操作 PCI总线进行操作时 发起者先置REQ #, 当得到仲裁器的许可时( GNT # ),将FRAME #置低电平,并在AD总线上放置Slave地址,同时C/ BE #放置命令信号,说明接下来的传输类型。 PCI 总线上的所有设备都需对此地址译码,被选中的设备置DEVSEL #以声明自己被选中。然后当IRDY# 与TRDY# 都置低时,传输数据。 Master在数据传输结束前,将FRAME #置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。
PCI总线-读操作 Data传送 Wait Address phase Data phase BE#s IRDY# 9 8 1 7 6 5 4 3 2 地址 Data-1 Data-2 Data-3 命令 Data phase
CPCI总线 为了将PCI总线规范用在工业控制计算机系统上,1995年11月PCI工业计算机制造者联合会(PICMIG)颁布了CompactPCI(以后简称CPCI)规范1.0版。 1997年推出了CPCI2.0规范。 PCI总线的电气规范 + CPCI总线规范 标准针孔连接器(IEC-1076-4-101) = + 欧洲卡规范(IEC297/IEEE 1011.1)
CPCI总线 目前在嵌入式PC、工控计算机及高端的嵌入式系统中已经开始大量采用CPCI接口,CPCI将逐步替代VME总线。 CPCI总线工控机之所以被业界所青睐,是因为其既具有PCI总线的高性能又具有欧洲卡结构的高可靠性,是符合国际标准的真正工业型计算机,适合在可靠性要求较高的工业和军事设备上应用。 CPCI总线工控机定义了两种板卡尺寸: 3U(100mm × 160mm) 6U(233mm × 160mm)
CPCI总线 3U(100mm × 160mm) 6U(233mm × 160mm)
串行总线 UART I2C SPI USB
第四节 嵌入式存储系统 概述 电子盘—— NandFlash DOC DOM CompactFlash SmartMedia 第四节 嵌入式存储系统 概述 电子盘—— NandFlash DOC DOM CompactFlash SmartMedia MemoryStick MMC SD
NandFlash、DOC、CF、SD、MMC等 概述 嵌入式系统的存储结构 嵌入式 微处理器 主存: Nor Flash、SRAM、 DRAM等 Cache 外存: NandFlash、DOC、CF、SD、MMC等 片内RAM和ROM
概述 高速缓存Cache 高速缓冲存储器中存放的是当前使用得最多的程序代码和数据,即主存中部分内容的副本。 可分为数据Cache、指令Cache或混合Cache。 不同的处理器其Cache的大小不一样。 一般32位的嵌入式微处理器都内置Cache。
概述 Cache命中:CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为命中。 Cache未命中:读取的数据不在Cache中,则对主存储器进行操作,并将有关内容置入Cache。 写入方法: 通写(Write Through):写Cache时,Cache与对应内存内容同步更新。 回写(Write Back):写Cache时,只有写入Cache内容移出时才更新对应内存内容。
CPU 地址 索引 机构 置换控制器 高速缓冲 存储器 主 存 段(页) 高位地址 低位地址 地址总线 数据总线 Cache结构框图
概述 主存 主存是处理器能直接访问的存储器,用来存放系统和用户的程序和数据。 嵌入式系统的主存可位于SoC内和SoC外,片内存储器存储容量小、速度快,片外存储器容量大。 可以做主存的存储器有: ROM类:Nor Flash、EPROM、E2PROM、PROM等 RAM类:SRAM、DRAM、SDRAM等
概述 静态随机存取存储器(SRAM) 存储信息:六管基本存储电路 典型芯片规格:2114(1KX4) 6116(2KX8) 6264(8KX8)62128(16KX8)62256(32KX8) A5 A0 A2 A1 CS- 1 9 2114 … 18 10 VCC A9 I/O1 A6 A4 A3 A7 A8 I/O2 I/O3 WE- 符 号 引脚名 A0~A9 地址输入 I/01~I/04 数据输入/输出 CS- 片选 WE- 写允许 VCC、GND 电源、地
概述 动态随机存取存储器(DRAM) 存储信息的基本单元(1位)电路可采用4管、3管和单管电路 需要不断刷新(为维持动态存储单元所存储的信息,必须设法使信息再生,这即所谓的刷新) 与SRAM不同的是:为节省外部引脚,同样容量的DRAM外部地址线引脚是SRAM一半 DRAM采用行/列地址选通,将地址通过内部分成两路 DRAM控制器:解决刷新和多路
CPU 刷 新 定 时 器 仲裁 电路 定 时 发生器 刷新地址 计数器 地址 多路开关 DRAM 读/写 地址总线 RAS CAS WR DRAM Controller的逻辑框图
概述 SDRAM(Synchronous RAM) CPU和RAM共享相同的时钟周期,以相同的速度同步工作 基于双存储器结构,内含两个交错的存储阵列,读取效率得到成倍提高 是DRAM中速度最快的一种
概述 外存 外存是处理器不能直接访问的存储器,用来存放用户的各种信息,容量大。 在嵌入式系统中常用的外存有: NandFlash DOC(Disk On Chip) CF(Compact Flash) SD(Secure Digital) MMC(Multi MediaCard)等
电子盘 电子盘采用半导体芯片来存贮数据,具有体积小、功耗低和极强的抗震性等特点。 在嵌入式系统中普遍采用各种电子盘作为外存。 常用的电子盘有:NandFlash、MMC、SD、Memeory Stick、CF、SM、DOC等。
电子盘
电子盘 Flash card market for Mobile phone has 70% CAGR, and 50% market share in ’08.
NandFlash NandFlash是Flash Memory的一种。 Flash Memory的中文称为快闪存储器或快速擦写存储器。 Flash Memory由Toshiba于1980年申请专利,并在1984年的国际半导体学术会议上首先发表。 目前在Flash Memory技术上主要发展了两种非易失性内存 一种叫NOR(逻辑或),是Intel 于1988年发明的 另一种叫NAND(逻辑与)是Toshiba于1999年创造的。
NandFlash NandFlash可独立成为外存,也可组成其他各种类型的电子盘如USB盘、CF、SD和MMC存储卡等。 NOR Flash具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存。
Samsung Nandflash
NOR NAND 写入/擦除一个块的操作时间 1~5s 2~4ms 读性能 1200~1500KB 600~800KB 写性能 NOR NAND 写入/擦除一个块的操作时间 1~5s 2~4ms 读性能 1200~1500KB 600~800KB 写性能 <80KB 200~400KB 接口/总线 SRAM接口/独立的地址数据总线 8位地址/数据/控制总线,I/O接口复杂 读取模式 随机读取 串行地存取数据 成本 较高 较低,单元尺寸约为NOR的一半,生产过程简单,同样大小的芯片可以做更大的容量 容量及应用场合 1~64MB,主要用于存储代码 8MB~4GB,主要用于存储数据 擦写次数(耐用性) 约10万次 约100万次 位交换(bit位反转) 少 较多,关键性数据需要错误探测/错误更正(EDC/ECC)算法 坏块处理 无,因为坏块故障率少 随机分布,无法修正
NandFlash:128M X 8 bit
NandFlash:128M X 8 bit
NandFlash:128M X 8 bit
MMC MultiMediaCard Association 210+ members representing the leading Manufacturers of host systems, cards, components, connectors, etc. Membership: Executive (voting rights) & General Committees: Technical, Marketing, Compliance Open standard, collects no royalties Compliance & certification program Focus on mobile phones and digital imaging markets worldwide
MMC: Roadmap of standard
MMC: Roadmap of capacity
MMC的特点 High clock frequency: 26MHz and 52MHz Flexible bus width: 13 pins to support 1 to 8 data lines (host-selectable x1, x4 and x8-bit bus) Data transfer rate: up to 52 MBytes/sec This is the highest bus transfer rate of all flash memory card standards available Today Backward compatible to legacy hosts
MMC的特点 Fully compatible with MMCplus™ The first small form factor memory card standards to offer dual-voltage operation at both 3V and 1.8V Compatible with next generation mobile phone system specifications and meets the toughest space Saving and low power consumption requirements of mobile phones and small consumer electronics devices
SD SD(Secure Digital)卡由松下电器、东芝和SanDisk联合推出,1999年8月首次发布。 2000年2月1日成立了SD协会(SDA),成员公司超过90个,其中包括Hewlett-Packard,IBM,Microsoft,Motorola,NEC、Samsung Electronics,Toyota Motor等巨头。 SDA是开放式的,缴纳1500美元就可以成为一般会员,缴纳4000美元可以成为执行会员。SD存贮卡的详细规范并没有公开,只有SDA会员或签定了保密协议才能获得。 SD卡需付版税 15×11mm 32×24mm
MemoryStick 1997年7月Sony宣布开发Memory Stick Memory Stick被很多人形象地称为口香糖存贮卡,其尺寸为50mm×21.5mm×2.8mm,重4克 Memory Stick也包括了控制器在内,采用10针接口,数据总线为串行,最高频率可达20MHz,电压为2.7伏到3.6伏,电流平均为45mA
Compact Flash Compact Flash的诞生比较早,由最大的Flash Memory卡厂商之一美国SanDisk于1994年首次推出。 大小仅为43mm x 36mm x 3.3mm,体积只有PCMCIA卡的1/4,看起来就像是PCMCIA卡的缩小版。 CompactFlash提供了完整的PCMCIA-ATA功能而且通过ATA/ATAPI-4兼容TrueIDE。 和68针接口的PCMCIA卡不同,同样遵从ATA协议的CompactFlash的接口只有50针。
SmartMedia SmartMedia是由东芝公司Toshiba America Electronic Components(TAEC)在1995年11月发布的Flash Memory存贮卡,三星公司在1996年购买了生产和销售许可,这两家公司成为主要的SmartMedia厂商。
SmartMedia 最开始时SmartMedia被称为SSFDC,即Solid State Floppy Disk Card,1996年6月改名为SmartMedia,并成为东芝的注册商标。 SmartMedia采用了NAND型Flash Memory,因此体积做得很小:45mm x 37mm x 0.76mm,非常的薄,仅重1.8克。接口方面,SmartMedia采用了22针的接口,我们在卡上看到的是遍平的金手指。 SmartMedia为了节省成本,存贮卡上只有Flash Memory模块和接口,并没有包括控制芯片,所以使用SmartMedia的设备必须自己装置控制机构。
DOC Disk On Chip,简称DOC,是采用NandFlash芯片作为基本存贮单元,外加一些控制芯片及软件,通过特殊的软硬件来操作的一种模块化、系列化的电子存贮装置。 它采用了TureFFS硬盘仿真技术对Flash进行管理,可以把Flash模拟成为硬盘。 也正是因为采用了TureFFS技术对数据在Flash中的读写操作进行管理,大大提高了DOC的写操作的次数,远远超过了普通Flash的写寿命,提高了Flash的可靠性。
Comparison of Full Size Cards
Comparison of Small Size Cards
Comparison of Micro Size Cards
谢谢!