




已阅读5页,还剩172页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统及应用 第二章嵌入式硬件系统基础 主要内容 嵌入式硬件系统基本组成 嵌入式微处理器 嵌入式系统总线 嵌入式存储系统 第一节嵌入式硬件系统基本组成 嵌入式系统的硬件是以嵌入式微处理器为核心 主要由嵌入式微处理器 总线 存储器 输入 输出接口和设备组成 嵌入式微处理器总线存储器输入 输出接口和设备 嵌入式微处理器 每个嵌入式系统至少包含一个嵌入式微处理器嵌入式微处理器体系结构可采用冯 诺依曼 VonNeumann 结构或哈佛 Harvard 结构 冯 诺依曼结构 哈佛结构 嵌入式微处理器 传统的微处理器采用的冯 诺依曼结构将指令和数据存放在同一存储空间中 统一编址 指令和数据通过同一总线访问 哈佛结构则是不同于冯 诺依曼结构的一种并行体系结构 其主要特点是程序和数据存储在不同的存储空间中 即程序存储器和数据存储器是两个相互独立的存储器 每个存储器独立编制 独立访问 与之相对应的是系统中设置的两条总线 程序总线和数据总线 从而使数据的吞吐率提高了一倍 嵌入式微处理器 嵌入式微处理器的指令系统可采用精简指令集系统RISC ReducedInstructionSetComputer 或复杂指令集系统CISC ComplexInstructionSetComputer 嵌入式微处理器 嵌入式微处理器有许多不同的体系 即使在同一体系中也可能具有不同的时钟速度和总线数据宽度 集成不同的外部接口和设备 据不完全统计 目前全世界嵌入式微处理器的品种总量已经超过千种 有几十种嵌入式微处理器体系 主流的体系有ARM MIPS PowerPC SH X86等 总线 嵌入式系统的总线一般集成在嵌入式微处理器中 从微处理器的角度来看 总线可分为片外总线 如 PCI ISA等 和片内总线 如 AMBA AVALON OCP WISHBONE等 选择总线和选择嵌入式微处理器密切相关 总线的种类随不同的微处理器的结构而不同 存储器 嵌入式系统的存储器包括主存和外存 大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中 系统上电后在主存中的代码直接运行 主存储器的特点是速度快 一般采用ROM EPROM NorFlash SRAM DRAM等存储器件 存储器 目前有些嵌入式系统除了主存外 还有外存 外存是处理器不能直接访问的存储器 用来存放各种信息 相对主存而言具有价格低 容量大的特点 在嵌入式系统中一般不采用硬盘而采用电子盘做外存 电子盘的主要种类有NandFlash SD SecureDigital 卡 CompactFlash SmartMedia MemoryStick MultiMediaCard DOC DiskOnChip 等 输入 输出接口和设备 嵌入式系统的大多数输入 输出接口和部分设备已经集成在嵌入式微处理器中 输入 输出接口主要有中断控制器 DMA 串行和并行接口等 设备主要有定时器 Timers 计数器 counters 看门狗 watchdogtimers RTC UARTs PWM Pulsewidthmodulator 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转换器多媒体加速器 当高级图形功能需要时总线其他标准接口或外设 嵌入式微处理器的集成度 单芯片方式 SingleChip 芯片组方式 ChipSet 由微处理器主芯片和一些从芯片组成 嵌入式微处理器的集成度 单芯片方式 华邦W90P710芯片的内部结构 嵌入式微处理器的集成度 芯片组方式 两芯片组的手持PC方案 返回 嵌入式微处理器的体系结构 算术格式 ArithmeticFormat 由于低成本和低功耗的限制 大多数的嵌入式微处理器使用定点运算 fixed pointarithmetic 即数值被表示为整数或在 1 0和 1 0之间的分数 比数值表示为尾数和指数的浮点版本的芯片便宜 当嵌入式系统中需要使用浮点运算时 可采用软件模拟的方式实现浮点运算 只不过这样要占用更多的处理器时间 功能单元 FunctionalUnits 通常包括不止一个的功能单元 典型的是包含一个ALU 移位器和MAC 处理器通常用一条指令完成乘法操作 流水线 Pipeline 通常采用单周期执行指令 可能导致比较长的流水线 返回 嵌入式微处理器的指令集 为满足应用领域的需要 嵌入式微处理器的指令集一般要针对特定领域的应用进行剪裁和扩充 目前很多应用系统需要类似于DSP的数字处理功能 这些指令主要有 乘加 MAC 操作 它在一个周期中执行了一次乘法运算和一次加法运算 SIMD类操作 允许使用一条指令进行多个并行数据流的计算 零开销的循环指令 采用硬件方式减少了循环的开销 仅使用两条指令实现一个循环 一条是循环的开始并提供循环次数 另一条是循环体 多媒体加速指令 像素处理 多边形 3D操作等指令 返回 嵌入式微处理器的性能 低端 低价 低性能 一般低端嵌入式微处理器的性能最多达到50MIPS 应用在对性能要求不高但对价格和功耗有严格要求的应用系统中 中档 低功耗中档的嵌入式微处理器可达到较好的性能 如150MIPS以上 采用增加时钟频率 加深流水深度 增加Cache及一些额外的功能块来提高性能 并保持低功耗 高端 嵌入式微处理器的性能 高端嵌入式微处理器用于高强度计算的应用 使用不同的方法来达到更高的并行度单指令执行乘法操作 通过加入额外的功能单元和扩展指令集 使许多操作能在一个单一的周期内并行执行 每个周期执行多条指令 桌面和服务器的超标量处理器都支持单周期多条指令执行 在嵌入式领域通常使用VLIW verylargeinstructionword 来实现 这样只需较少的硬件 总体价格会更低些 例如TI的TMS320C6201芯片 通过使用VLIW方法 能在每个周期同时执行8条独立的32位指令 使用多处理器 采用多处理器的方式满足应用系统的更高要求 一些嵌入式微处理器采用特殊的硬件支持多处理器 如TI的OMAP730包括了三个处理器核ARM9 ARM7 DSP 返回 嵌入式微处理器的功耗管理 大多数嵌入式系统有功耗的限制 特别是电池供电的系统 它们不支持使用风扇和其他冷却设备 降低工作电压 1 8v 1 2v甚至更低 而且这个数值一直在下降 提供不同的时钟频率 通过软件设置不同的时钟分频 关闭暂时不使用的功能块 如果某功能块在一个周期内不使用 就可以被完全关闭 以节约能量 嵌入式微处理器的功耗管理 提供功耗管理机制运行模式 RunningMode 处理器处于全速运行状态下 待命模式 StandbyMode 处理器不执行指令 所有存储的信息是可用的 处理器能在几个周期内返回运行模式 时钟关闭模式 clock offmode 时钟完全停止 要退出这个模式系统需要重新启动 影响功耗的其他因素还有总线 特别是总线转换器 可以采用特殊的技术使它的功耗最小 和存储器的大小 如果使用DRAM 它需要不断的刷新 为了使功耗最小 总线和存储器要保持在应用系统可接受的最小规模 返回 嵌入式微处理器的成本 为降低价格 需要在嵌入式微处理器的设计中考虑不同的折衷方案 处理器的价格受如下因素影响 处理器的特点 功能块的数目 总线类型等 片上存储器的大小 芯片的引脚数和封装形式 如PQFP PlasticQuadFlatPackage 通常比BGA BallGridArrayPackage 便宜 芯片大小 diesize 取决于制造的工艺水平 嵌入式微处理器的成本 代码密度 codedensity 代码存储器的大小将影响价格 不同种类的处理器有不同的代码密度 CISC芯片代码密度高 但结构复杂 其额外的控制逻辑单元使价格变得很高 RISC芯片拥有简单的结构 代码密度低 因为其指令集简单 VLIW代码密度最低 因为它的指令字倾向于采用多字节 主流的嵌入式微处理器 目前主流的嵌入式微处理器系列主要有ARM系列 MIPS系列 PowerPC系列 SuperH系列和X86系列等 属于这些系列的嵌入式微处理器产品很多 有上千种以上 Units millions Source AndrewAllison InsideTheNewComputerIndustry January2001 EmbeddedRISCProcessorShipments 32位浪潮的到来 Source SemicoResearchCorp andSIA WSTS TotalMCU bySub Category excl DSP TotalEmbeddedControlMarketShipmentsbyType 总共约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系列 IBMPowerPC集成10 100Mbps以太网控制器 串行和并行端口 内存控制器以及其它外设的高性能嵌入式处理器 MotorolaMPC高度综合的SOC设备 它结合了PPC微处理器核心的功能 通信处理器和单硅成分内的显示控制器 这个设备可以在大量的电子应用中使用 特别是在低能源 便携式 图象捕捉和个人通信设备 技术 0 25 微米 CMoSSA 12E 282Dhrystone2 1MIPS 200MHz 375Dhrystone2 1MIPS 266MHz 200 100 66 50MHz 266 133 66 66MHz 晶体数量 480 万 电源消耗 1 1 瓦 信号 I O 300 温度范围 40到80度 电源供应 2 5V 逻辑电路 3 3V I O 支持 5VI Os 456 Ball EnhancedPBGA 35mmx35mm 性能 频率 CPU SDRAM PCI EBC 封装 PowerPC405GP技术规格 Dhrystone是一个综合性的基准测试程序 它是为了测试编译器和CPU处理整数指令和控制功能的有效性 人为地选择一些 典型指令综合起来形成的测试程序 ARM系列 ARM AdvancedRISCMachine 公司是一家专门从事芯片IP设计与授权业务的英国公司 其产品有ARM内核以及各类外围接口 ARM内核是一种32位RISC微处理器 具有功耗低 性价比高 代码密度高等三大特色 目前 90 的移动电话 大量的游戏机 手持PC和机顶盒等都已采用了ARM处理器 许多一流的芯片厂商都是ARM的授权用户 Licensee 如Intel Samsung TI Motorola ST等 ARM已成为业界公认的嵌入式微处理器标准 ARM处理器的分类 结构体系版本 Architecture ARMv4TARMv5TEARMv6ARMCortex v7 ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex 按应用特征分类应用处理器ApplicationProcessor实时控制处理器Real timeController微控制器Micro controller 特征 MMU Cache最快频率 最高性能 合理功耗 特征 MPU Cache实时响应 合理性能 较低功耗 特征 nosub memorysystem一般性能 最低成本 极低功耗 RoadmapofARMV4 V5 V6 ARMV4 ARMV4是目前支持的最老的架构 是基于32 bit地址空间的32 bit指令集 ARMv4除了支持ARMv3的指令外还扩展了 支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令对以前的26bits体系结构的CPU不再兼容 ARMv4T ARMv4T增加了16 bitThumb指令集 这样使得编译器能产生紧凑代码 相对于32 bit代码 内存能节省到35 以上 并保持32 bit系统的好处 Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行 用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗 ARMV5TE 1999年推出ARMv5TE其增强了Thumb体系 增强的Thumb体系增加了一个新的指令同时改进了Thumb ARM相互作用 编译能力和混合及匹配ARM与Thumb例程 以更好地平衡代码空间和性能并在ARMISA上扩展了增强的DSP指令集 增强的DSP指令包括支持饱和算术 saturatedarithmetic 并且针对AudioDSP应用提高了70 性能 E 扩展表示在通用的CPU上提供DSP能力 ARMv5TEJ 2000年推出ARMv5TEJ 增加了Jazelle扩展以支持Java加速技术 Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80 的功耗 ARMv6 2001年推出ARMv6 它在许多方面做了改进如内存系统 异常处理和较好地支持多处理器 SIMD扩展使得广大的软件应用如Video和Audiocodec的性能提高了4倍 Thumb 2和TrustZone技术也用于ARMv6中 ARMv6第一个实现是2002年春推出的ARM1136J F STM处理器 2003年又推出了ARM1156T2 F S和ARM1176JZ F S处理器 ARMv7 ARMv7定义了3种不同的处理器配置 processorprofiles ProfileA是面向复杂 基于虚拟内存的OS和应用的ProfileR是针对实时系统的ProfileM是针对低成本应用的优化的微控制器的 所有ARMv7profiles实现Thumb 2技术 同时还包括了NEON 技术的扩展提高DSP和多媒体处理吞吐量400 并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要 ARMFamily ARM7 Family ARM9 Family ARM10 Family ARM11 Family 150DMIPS 300DMIPS 500DMIPS 1000DMIPS ARMCortex Family ARMArchitecture 当前的主流ARM处理器 ARM7世界上最为广泛使用的CPU之一 100MHzARM9100 300MHz 1 7BARMPowredshipmentinyearof2005 31 isARM9based ARM11芯片已经面世 ARM11300 700 MHzSIMD指令扩展支持更丰富的多媒体应用40家授权芯片公司 一些已开始量产 FOMAN902iFirstARM11basedphone OMAP2420 i MX31 i MX31L 目前最快的嵌入式处理器 最快的处理器提供超过2000DMIPS的性能运行于1GHz频率 90nmor65nm制造工艺 功耗小于300mW ARMCortexA8ApplicationProcessor Cortex M3实现 1ARM芯片 ARMCortexArchitectureThumb 2ISA3StagePipeline1 22DMIPS MHz 30 overARM7TDMI33Kgates 30 smallerthanARM7TDMI LuminaryMicro的Stellaris系列MCU产品售价仅1美元 ARMCortex M3微控制器内核 专门针对MCU应用领域而设计 突出低成本 低功耗和高效率 领先嵌入式处理器技术发展讨论 多处理器技术单处理器技术的性能提升终有一天会遭遇瓶颈对嵌入式系统而言 尤其要考虑付出的代价把任务进行并行分解是理想的选择ARMMPcore可以集成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 CyclePerInstruction 约为1 9 ARM7TDMI ARM7TDMI内核 MCLK nIRQ nFIQ nRESET BUSEN BIGEND ISYNC nWAIT VDD VSS APE DBE 协处理器接口 存储器管理 存储器接口 ABORT nOPC CPB CPA nCPI nTRANS nM 4 0 MAS 1 0 nRW nMREQ LOCK SEQ nENOUT A 31 0 DOUT 31 0 DIN 31 0 D 31 0 电源 总线控制 时钟 配置 中断 内核信号 ARM7TDMI ARM7TDMI内核 TAP控制器 JTAG接口 数据总线 控制信号 地址总线 BUSSplitter EmbeddedICE逻辑 方框图 乘法器 指令解码 地址自增器 nRESET nMREQ SEQ ABORT nIRQ nFIQ nRW MAS 1 0 LOCK nCPI CPA CPB nWAIT MCLK nOPC BIGEND ISYNC nTRANS nM 4 0 D 31 0 桶移位器 32位ALU DBE 写数据寄存器 读数据寄存器 地址寄存器 寄存器Bank A 31 0 ABE 及 控制逻辑 PCUpdate 解码站 指令解压缩 Incrementer PC ABus BBus ALUBus ARM7TDMI 内核 ARM7TDMI指令流水线 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 而非顺序执行 PC指向正被取指的指令 而非正在执行的指令 从存储器中读取指令 解码指令中用到的寄存器 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb ARM7TDMI指令流水线 操作 周期 123456 Fetch 最佳流水线 该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中 单周期执行 指令周期数 CPI 1 ARM7TDMI ARM7TDMI内核 地址 地址 数据读 AMBA接口 写缓冲 MMU 数据写 数据 ARM7xxT 控制逻辑 Cache AMBA总线接口 JTAG和非AMBA信号 CP15 带Cache的ARM7TDMI ARM710T8K统一的cache完整的内存管理单元 MMU 支持虚拟地址和存储器保护写缓冲 ARM720T同ARM710T 但支持WinCEARM740T8K统一的cache内存管理单元写缓冲 WriteBuffer 当数据写到WriteBuffer后不需要CPU的任何干预而由WriteBuffer控制逻辑自动的将数据写到最终的地方 Cache的回写则需要CPU的干预 WriteBuffer较小 通常只有几十个字节 ReadBuffer 当读数据时ReadBuffer自动多读取一些字节 但是不占用CPU的总线时间 所以能加快读数据的速度 当使用Cache时如果要从内存中读取数据则每个数据都会占用CPU的时间 这是与ReadBuffer的最大不同点 ReadBuffer较小 通常只有几十个字节 Cache与Buffer的区别 ARM9TDMI Harvard架构增加了可用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5级流水线实现了以下改进 改进CPI到 1 5提高了最大时钟频率 ARM9TDMI InstructionFetch Shift ALU MemoryAccess RegWrite RegRead RegDecode FETCH DECODE EXECUTE MEMORY WRITE ARM9TDMI ARMorThumbInstDecode RegSelect RegRead Shift ALU RegWrite Thumb ARMdecompress ARMdecode InstructionFetch FETCH DECODE EXECUTE ARM7TDMI 流水线 ARM9TDMI ARM9TDMI DCache ICache MMU GLUE 外部存储器 ARM940T2x4KcachesMPU写缓冲 ARM9xxT ARM920T2x16KcachesMMU支持虚拟地址和内存保护写缓冲 带Cache的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状态允许直接执行Java8位码ARM926EJ SARM9E S内核可配置的cache和TCM内存管理单元双重32位AHB总线接口 多层 ARM10E系列概述 v5TE架构 CPI 1 3 6级流水线 静态分支预测 32kB指令cache和32kB数据cache支持 Hitundermiss 非阻塞的执行单元 每周期64位的LDM STM操作 EmbeddedICE逻辑 RT II 支持新的VFPv1结构 同ARM1020E 除了cache大小为16kB 对SUDL singleuserdesignlicense 有效 ARM1020E ARM1022E ARM9vsARM10 流水线的对比 Intel StrongARM概述 ARMV4架构 无Thumb支持 5级流水线 降低跳转损耗 stagepipeline reducedbranchpenalty改进的乘法器 典型地比ARM9TDMI快2个周期 不支持Multi ICE调试 JTAG限制在连通性测试 无外部协处理器接口SA 110 16K指令和数据caches 8x16字节写缓冲 SA 1100 1110 片上外设 存储器控制器更小的cache容量PID寄存器指令断点 通过CP15 Intel XScale 概述 V5TE兼容架构7 8级流水线带统计分支预测32k的数据和指令Cache 外加2k的数据Minicache8口写缓冲 4口填充和追加缓冲完整的32位协处理器接口调试和性能监控逻辑 通过CP14 乘 加模块 作为CP0 可配置的内核时钟速度100 733MHz 来自33 66MHz输入时钟异步输入总线时钟可到100MHz 最大总线内核时钟的1 3 ARM微处理器 编程模型 数据类型字节型数据 Byte 数据宽度为8bits半字数据类型 HalfWord 数据宽度为16bits 存取式必须以2字节对齐的方式字数据类型 Word 数据宽度为32bits 存取式必须以4字节对齐的方式 ARM微处理器 CPU模式 processormode 7种CPU模式 CPU模式的转变 软件控制异常外部中断 ARM微处理器 CPU模式 User模式 程序不能访问有些受保护的资源 只能通过异常的形式来改变CPU的当前运行模式 特权模式可以存取系统中的任何资源 System模式 与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务 FIQ模式 IRQ模式 Supervisor模式 Abort模式 Undefined模式 异常模式 主要是在外部中断或者程序执行非法操作时会触发 ARM微处理器 处理器工作状态 PROCESSOROPERATINGSTATES 处理器有两种工作状态 ARM 32位 执行字对准的ARM指令Thumb 16位 执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 ARM微处理器 处理器工作状态 进入Thumb状态 执行BX指令 并设置操作数寄存器的状态 位 0 为1 在Thumb状态进入异常 IRQ FIQ UNDEF ABORT SWIetc 当异常处理返回时自动转换到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微处理器 ARMState寄存器 ARM微处理器 ThumbState寄存器 ARMState与ThumbState寄存器关系 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 可以被读写ARMstate bits 1 0 为0 bits 31 2 即为PC THUMBstate bit 0 为0 bits 31 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微处理器 异常 ARMCPU将引起异常的类型分为7种 ARM微处理器 异常 当异常出现时 异常模式分组的R14和SPSR用于保存状态 即 R14 returnlinkSPSR CPSRCPSR 4 0 exceptionmodenumberCPSR 5 0 在ARM状态执行 if ResetorFIQthenCPSR 6 1 禁止快速中断 CPSR 7 1 禁止正常中断 PC exceptionvectoraddress当处理异常返回时 将SPSR传送到CPSR R14传送到PC ARM微处理器 异常 Reset CPU被复位后 进入SupervisorMode并且禁止FIQ和IRQ UndefinedInstructions CPU执行一条未被定义的指令时就会触发该异常 这种机制可以用于通过软件仿真的方式扩展THUMBorARM指令集 SWI 软中断 SWI 是执行SWI指令时触发的 该异常主要用于OS的系统调用 ARM微处理器 异常 PrefetchAbort CPU在读取指令时发生读内存错误并且该指令又要被执行则触发该异常 如果只是在读取指令时发生了内存错误而该指令又未被执行则不会触发该异常 DataAbort 当CPU在读写数据时 如果发生错误则触发该异常 ARM微处理器 异常 IRQ 当外部IRQ输入请求发生时 IRQ中断已经被使能 触发该异常 FIQ FIQ通常被用于快速传输数据 当外部FIQ输入请求发生时 FIQ中断已经被使能 触发该异常 ARM微处理器 异常 异常的优先级 ARM微处理器 内存和I O ARM的寻址空间是线性的地址空间 为232 4GBytes0to3存储第一个word bytes4to7存储第二个wordARM支持大端 Big endian 和小端 Little endian 的内存数据方式 可以通过硬件的方式设置 没有提供软件的方式 端模式 ARM微处理器 内存和I O 大端的数据存放格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最高有效字节的地址就是该word的地址 最高有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd ARM微处理器 内存和I O 小端的数据格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最低有效字节的地址就是该word的地址 最低有效字节位于最低地址 worda 0 xf6734bcd 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 wordA 0 xf6734bcd 在内存中的起始地址为0 xb3204500变量B halfwordB 218 在内存中的起始地址为0 xddddddd0 问题 halfwordB 218与wordC 218在内存中的存放方式有何不同 请分大端和小端两种情况说明 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的意思是 无互锁流水级的微处理器 Microprocessorwithoutinterlockedpipedstages 其机制是尽量利用软件办法避免流水线中的数据相关问题 MIPS处理器是由斯坦福 Stanford 大学JohnHennery教授领导的研究小组研制出来的 PresidentofStanfordUniversity USAComputerarchitecturebookuseMIPSasfoundation MIPS 发展历程 1984年MIPS计算机公司成立 1986年推出R2000处理器 1988年推出R3000处理器 1989年IPOasMIPSComputerSystems 专注于workstations1991年推出第一款64位商用微处理器R4000 1992年 SGI收购了MIPS计算机公司之后 该公司又陆续推出R8000 于1994年 R10000 于1996年 和R12000 于1997年 等型号的处理器 1998年 MIPS脱离SGI成为MIPSTechnologies之后IPO 其战略发生变化 把重点放在了嵌入式系统上 MIPS 发展历程 1999年 MIPS公司发布MIPS32和MIPS64架构标准 为未来MIPS处理器的开发奠定了基础 新的架构集成了所有原来的MIPS指令集 并且增加了许多更强大的功能 和ARM公司一样 MIPS公司本身并不从事芯片的生产活动 只进行设计 不过其他公司如果要生产该芯片的话必须得到MIPS公司的许可 MIPS 指令体系 MIPS指令集体系ISA MIPSInstructionSetArchitecture 从最早的MIPSIISA开始发展 到MIPSVISA 再到现在的MIPS32和MIPS64结构 其所有版本都是与前一个版本兼容的 在MIPSIII的ISA中 增加了64位整数和64位地址 在MIPSIV和MIPSV的ISA中增加了浮点数的操作等 MIPS 指令体系 MIPSI MIPSV MIPS32和MIPS64结构 其所有版本都是与前一个版本兼容的 MIPS32和MIPS64体系是为满足高性能 成本敏感的需求而设计的 MIPS32体系是基于MIPSII的 并从MIPSIII MIPSIV和MIPSV中选择一些指令以增强数据和代码的有效操作 MIPS64体系是基于MIPSV并与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 localbus Micro processor Cache Memorycontroller DMAcontroller Bridge Peripheral Peripheral Peripheral Peripheralbus 嵌入式系统总线 AMBA总线 AMBA AdvancedMicrocontrollerBusArchitecture 是ARM公司研发的一种总线规范 目前为3 0版本 在AMBA总线规范中 定义了3种总线 AHB AdvancedHigh performanceBus 用于高性能系统模块的连接 支持突发模式数据传输和事务分割 可以有效地连接处理器 片上和片外存储器 支持流水线操作 ASB AdvancedSystemBus 也用于高性能系统模块的连接 由AHB总线替代 APB AdvancedPeripheralBus 用于较低性能外设的简单连接 一般是接在AHB或ASB系统总线上的第二级总线 AMBA总线 测试接口 ARMCPU SDRAMControl SRAM LCDControl 桥 并行接口 串行接口 Timer UART 基于AMBA总线的典型系统 AMBA总线 S3C44b0X AMBA总线 AHB 只有主单元可在任何时刻使用总线 AHB可以有一个或多个主单元 主单元可以是RISC处理器 协处理器以及DMA控制器 以启动和控制总线操作 AHB总线 主单元 从单元 仲裁器 译码器 可以响应 并非启动 读或写总线操作 总线的从单元可以在给定的地址范围内对读写操作进行相应的反应 从单元向主单元发出成功 失败信号或等待各种反馈信号 从单元通常是其复杂程度不足以成为主单元的固定功能块 例如外存接口 总线桥接口以及任何内存都可以是从单元 系统的其他外设也包含在AHB的从单元中 用来确定控制总线是哪个主单元 以保证在任何时候只有一个主单元可以启动数据传输 一般来说仲裁协议都是固定好的 例如最高优先级方法或平等方法 可根据实际的情况选择适当的仲裁协议 总线译码器用于传输译码工作 提供传输过程中从单元的片选信号 AMBA总线 AHB 一个典型的AHB总线工作过程 它包括以下两个阶段 地址传送阶段 addressphase 它将只持续一个时钟周期 在HCLK的上升沿数据有效 所有的从单元都在这个上升沿来采样地址信息 数据传送阶段 dataphase 它需要一个或几个时钟周期 可以通过HREADY信号来延长数据传输时间 当HREADY信号为低电平时 就在数据传输中加入等待周期 直到HREADY信号为高电平才表示这次传输阶段结束 AMBA总线 AHB AMBA总线 APB APB主要由下面2部分组成 APB桥APB从单元 Slave APB桥是APB中唯一的主单元 是AHB ASB的从单元 APB桥的接口信号 AMBA总线 APB APB桥将系统总线AHB ASB和APB连接起来 并执行下列功能 锁存地址并保持其有效 直到数据传送完成 译码地址并产生一个外部片选信号 在每次传送时只有一个片选信号 PSELx 有效 写传送 writetransfer 时驱动数据到APB 读传送 readtransfer 时驱动数据到系统总线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 bitIntel80286处理器的PC AT电脑 系统总线也相应地扩展为16bit 并被称呼为PC AT总线 而为了开发与IBMPC兼容的外围设备 行业内便逐渐确立了以IBMPC总线规范为基础的ISA 工业标准架构 IndustryStandardArchitecture 总线 PCI总线 发展历程 ISA是8 16bit的系统总线 最大传输速率仅为8MB s 但允许多个CPU共享系统资源 由于兼容性好 它在上个世纪80年代是最广泛采用的系统总线 不过它的弱点也是显而易见的 比如传输速率过低 CPU占用率高 占用硬件中断资源等 在1988年 康柏 惠普等9个厂商协同把ISA扩展到32 bit 这就是著名的EISA ExtendedISA 扩展ISA 总线 EISA总线的工作频率仍旧仅有8MHz 并且与8 16bit的ISA总线完全兼容 由于是32 bit总线的缘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年人民警察节活动训练学习心得与体会五篇
- 2025年教师招聘之《幼儿教师招聘》题库必背100题含答案详解(精练)
- 教师招聘之《幼儿教师招聘》综合提升测试卷及答案详解(典优)
- 2025年教师招聘之《小学教师招聘》通关提分题库及完整答案详解【各地真题】
- 教师招聘之《幼儿教师招聘》考试彩蛋押题附答案详解【模拟题】
- 教师招聘之《幼儿教师招聘》自测题库及参考答案详解(模拟题)
- 2025年教师招聘之《小学教师招聘》通关提分题库附答案详解【培优】
- 实商务英语综合教程(第一册)-课件 Unit 9 Business Environment
- 2025年新能源商用车辆在电力运输中的应用场景分析报告001
- 教师招聘之《幼儿教师招聘》练习题(一)附参考答案详解【典型题】
- 社区社会组织备案申请表
- 买卖合同法律知识及风险防范培训课件
- 婚恋关系的维系与发展艺术
- 2025年中国人保财险全系统江苏分公司招聘笔试参考题库含答案解析
- 个人黄金抵押合同范本
- 中试基地建设可行性研究报告
- 餐饮服务与数字化运营 习题及答案 项目四
- 《走近科学家》课件
- 《智慧物流与供应链基础》课件 ch1 概述
- 兽医临床诊疗技术绪论
- 《末代皇帝溥仪》课件
评论
0/150
提交评论