嵌入式系统Chapter2嵌入式硬件系统基础G_第1页
嵌入式系统Chapter2嵌入式硬件系统基础G_第2页
嵌入式系统Chapter2嵌入式硬件系统基础G_第3页
嵌入式系统Chapter2嵌入式硬件系统基础G_第4页
嵌入式系统Chapter2嵌入式硬件系统基础G_第5页
已阅读5页,还剩193页未读 继续免费阅读

下载本文档

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

文档简介

电子科技大学嵌入式软件工程中心 嵌入式系统 电子科技大学嵌入式软件工程中心 第二章 嵌入式硬件系统基础 电子科技大学嵌入式软件工程中心 主要内容 嵌入式硬件系统基本组成 嵌入式微处理器 嵌入式系统总线 嵌入式存储系统 电子科技大学嵌入式软件工程中心 第一节 嵌入式硬件系统基本组成 电子科技大学嵌入式软件工程中心 嵌入式系统的硬件是以包含嵌入式微处 理器的 SoC为核心,主要由 SoC、总线、 存储器、输入 /输出接口和设备组成。 嵌入式微处理器为核心的 SoC 总线 存储器 输入 /输出接口和设备 电子科技大学嵌入式软件工程中心 嵌入式微处理器 每个嵌入式系统至少包含一个嵌入式微处 理器 嵌入式微处理器体系结构可采用冯 诺依曼 ( Von Neumann)结构或哈佛( Harvard) 结构 地址 数据主存储器 MOV r8,#8 CPU PC 指令 程序存储器 CPU PC 地址 数据存储器 MOV r8,#8 地址 数据 冯 诺依曼结构 哈佛结构 指令和数据 存放在同一 存储空间中 , 统一编址 指令和 数据通 过同一 总线访 问 程序和数据 存储在不同 的存储空间 中 两条总线(程 序总线和数据 总线),数据 的吞吐率提高 了一倍 电子科技大学嵌入式软件工程中心 嵌入式微处理器 传统的微处理器采用的冯 诺依曼结构 将指令和 数据存放在同一存储空间中 ,统一编址,指令 和数据通过同一总线访问。 哈佛结构则是不同于冯 诺依曼结构的一种并行 体系结构,其主要特点是 程序和数据存储在不 同的存储空间中 ,即程序存储器和数据存储器 是两个相互独立的存储器,每个存储器独立编 制、独立访问。与之相对应的是系统中设置的 两条总线(程序总线和数据总线),从而使数 据的吞吐率提高了一倍 。 电子科技大学嵌入式软件工程中心 嵌入式微处理器 嵌入式微处理器的指令系统可采用精简指令集系统 RISC( Reduced Instruction Set Computer)或复杂指令集系统 CISC( Complex Instruction Set Computer) CISC RISC 价格 由硬件完成部分软件功能,硬件复杂性增加,芯片成本高 由软件完成部分硬件功能,软件复杂性增加,芯片成本低 性能 减少代码尺寸,增加指令的执行周期数 使用流水线降低指令的执行周期数,增加代码尺寸 指令集 大量的混杂型指令集,有简单快速 的指令,也有复杂的多周期指令, 符合 HLL( high level language) 简单的单周期指令,在汇编指令方 面有相应的 CISC微代码指令 高级语言支持 硬件完成 软件完成 寻址模式 复杂的寻址模式,支持内存到内存寻址 简单的寻址模式,仅允许 LOAD和 STORE指令存取内存,其它所有的 操作都基于寄存器到寄存器 控制单元 微码 直接执行 寄存器数目 寄存器较少 寄存器较多 电子科技大学嵌入式软件工程中心 嵌入式微处理器 嵌入式微处理器有许多不同的体系,即使 在同一体系中也可能具有不同的 时钟速度 和 总线数据宽度 、 集成不同的外部接口 和 设备 。 据不完全统计,目前全世界嵌入式微处理 器的品种总量已经超过千种,有几十种嵌 入式微处理器体系,主流的体系有 ARM、 MIPS、 PowerPC、 SH、 X86等。 电子科技大学嵌入式软件工程中心 总 线 嵌入式系统的总线可分为: 片内总线: 与嵌入式微处理器集成在一起, 如: AMBA、 AVALON、 OCP、 WISHBONE 等 片外并行总线: 如: PCI、 ISA等 片外串行总线: UART、 SPI、 I2C、 USB等 片内总线的选择取决于 CPU Core 片外总线的选择取决于应用 电子科技大学嵌入式软件工程中心 存储器 嵌入式系统的存储器包括 主存 和 外存 。 大多数嵌入式系统的 代码和数据都存 储在处理器可直接访问的存储空间即 主存中 。 系统上电后在主存中的代码直接运行 。主存储器的特点是速度快,一般采 用 ROM、 EPROM、 Nor Flash、 SRAM、 DRAM等存储器件。 电子科技大学嵌入式软件工程中心 存储器 目前 有些嵌入式系统除了主存外,还有外存 。 外存是处理器不能直接访问的存储器,用来存 放各种信息,相对主存而言具有 价格低、容量 大 的特点。 在嵌入式系统中 除部分采用硬盘外,大多数采 用电子盘做外存 ,电子盘的主要种类有: NandFlash SD( Secure Digital) CompactFlash U盘 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年代 初期 20世纪 90年代 中后期 21世纪 初期 制作工艺 1 - 0.8 m 0.8 - 0.5 m 0.5 0.35 m 0.25 - 0.13 m 主频 500K 2M 5M 22M 位数 4/8/16bit 4/8/16/32bit 4/8/16/32bit 4/8/16/32/64b 嵌入式微处理器的发展 电子科技大学嵌入式软件工程中心 嵌入式微处理器的分类 嵌入式微处理器种类繁多,按 位数 可分为 4位 、 8位、 16位、 32位和 64位。 按 用途 来分,嵌入式微处理器可分为嵌入式 DSP和通用的嵌入式微处理器两种: 嵌入式 DSP:专用于 数字信号处理 ,采用哈 佛结构和一系列措施保证数字信号的处理速 度,如对 FFT(快速傅立叶变换)的专门优 化。 通用的嵌入式微处理器 :一般是集成了通用 微处理器的核、总线、外围接口和设备的 SOC芯片 ,有些还将 DSP作为协处理器集成 。 电子科技大学嵌入式软件工程中心 嵌入式微处理器的特点 体系结构 指令集 性能 功耗和管理 成本 集成度 基础是通用微处理器 与通用微处理器相比的 区别: 体积小、重量轻 成本低、功耗低 工作温度宽 抗电磁干扰、可靠性 强 电子科技大学嵌入式软件工程中心 External MemoryCPU Address Data Cache Bus InterfaceWrite Buffer MMU / MPU R R W W W W (R/W) 外设 如 USB、 LCD 控制器等 扩展芯片 内核( core) 处理器存储器子系统 SoC的片内外设 系统的片外设备 处理器( Processor) 芯片( SoC) 系统( System) 嵌入式微处理器的集成度 符合嵌入式系统的低成 本和低功耗需求 电子科技大学嵌入式软件工程中心 嵌入式微处理器的集成度 嵌入式微处理器是 面向应用 的,其片内所包含 的 组件的数目和种类 是由它的市场定位决定的 。 在最普通的情况下,嵌入式微处理器包括 : 片内存储器:部分嵌入式微处理器 外部存储器的控制器,外设接口 (串口,并口 ) LCD控制器:面向终端类应用的嵌入式微处理器 中断控制器, DMA控制器,协处理器 定时器, A/D、 D/A转换器 多媒体加速器:当高级图形功能需要时 总线 其他标准接口或外设返回 电子科技大学嵌入式软件工程中心 嵌入式微处理器的体系结构 算术格式( Arithmetic Format) 由于 低成本 和 低功耗 的限制,大多数的嵌入式微处理 器使用 定点运算 ( fixed-point arithmetic) 当嵌入式系统中需要使用浮点运算时,可采用 软件模 拟 的方式实现浮点运算,只不过这样要占用更多的处 理器时间。 功能单元( 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系列等 。 属于这些系列的嵌入式微处理器产品很多 ,有上千种以上。 电子科技大学嵌入式软件工程中心 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的应用非常广泛 。 电子科技大学嵌入式软件工程中心 Intel Atom processor Z5xx built on a new 45-nanometer Hi-k low power micro- architecture and 45 nm process technology the first generation of lowpower IA-32 micro- architecture specially designed for the new class of Mobile Internet Devices (MIDs). In the Intel Centrino Atom processor technology platform, the Intel Atom processor Z5xx series supports the Intel System Controller Hub (Intel SCH), a single-chip component design for low-power. This document contains electrical, mechanical and thermal specifications for the following processors: Intel Atom processor Z540, Z530, Z520, Z510, and Z500 电子科技大学嵌入式软件工程中心 Intel Atom processor Z5xx built on a new 45-nanometer Hi-k low power micro- architecture and 45 nm process technology the first generation of lowpower IA-32 micro- architecture specially designed for the new class of Mobile Internet Devices (MIDs). In the Intel Centrino Atom processor technology platform, the Intel Atom processor Z5xx series supports the Intel System Controller Hub (Intel SCH), a single-chip component design for low-power. This document contains electrical, mechanical and thermal specifications for the following processors: Intel Atom processor Z540, Z530, Z520, Z510, and Z500 电子科技大学嵌入式软件工程中心 Intel Atom processor Z5xx built on a new 45-nanometer Hi-k low power micro- architecture and 45 nm process technology the first generation of low power IA-32 micro- architecture specially designed for the new class of Mobile Internet Devices (MIDs). In the Intel Centrino Atom processor technology platform, the Intel Atom processor Z5xx series supports the Intel System Controller Hub (Intel SCH), a single-chip component design for low-power. This document contains electrical, mechanical and thermal specifications for the following processors: Intel Atom processor Z540, Z530, Z520, Z510, and Z500 电子科技大学嵌入式软件工程中心 Intel Atom processor Z5xx New single-core processor for mobile devices offering enhanced performance On die, primary 32-kB instructions cache and 24-kB write- back data cache 100-MHz and 133-MHz Source-Synchronous front side bus (FSB) 100 MHz: Intel Atom processor Z500 133 MHz: Intel Atom processor Z540, Z530, Z520, and Z510 Supports Hyper-Threading Technology 2-threads On die 512-kB, 8-way L2 cache Support for IA 32-bit architecture Intel Virtualization Technology (Intel VT) Intel Streaming SIMD Extensions 2 and 3 (Intel SSE2 and Intel SSE3) and Supplemental Streaming SIMD Extensions 3 (SSSE3) support 电子科技大学嵌入式软件工程中心 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 一般性能、最低成本、极低功耗 电子科技大学嵌入式软件工程中心 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 基于 32-bit地址空间的 32-bit指令集 增加 16-bit Thumb 指令集,使得编译器 能产生紧凑代码(内存能节省到 35%以上 ) Thumb在处理器中仍然要扩展为标准的 32位 ARM指令来运行。 采用 16位 Thumb指令集最大的好处就是 可以获得 更高的代码密度和降低功耗 。 1999年推出 增强了 Thumb体系 :以更好地 平衡代码空间和性能 并在 ARM ISA上扩展了 增强的 DSP 指令 集 : E扩展表示在通用的 CPU上提供 DSP 能力。 2000年推出 , 增加了 Jazelle扩展以支持 Java加速技术。 Jazelle技术比仅仅基于软件的 JVM性能提 高近 8倍的性能减少了 80的功耗。 2001年推出,它在许多方面做了改进如内存系统、异 常处理和较好地支持多处理器。 SIMD扩展使得广大的软件应用如 Video和 Audio codec的性能提高了 4倍。 Thumb-2和 TrustZone 技术也用于 ARMv6中。 电子科技大学嵌入式软件工程中心 ARMv7(Cortex) 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 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 Architecture 电子科技大学嵌入式软件工程中心 当前的主流 ARM处理器 ARM7 世界上最为广泛使用的 CPU 之一 内存访问指令示例 LDR r0,r1 STRNEB r2,r3,r4 STMFD sp!,r4-r8,lr r0 = r1 - 5 r2 = r3 + (r3 * 4) r4 = r4 AND 0x20 (set flags) IF EQ condition true r5 = r5 + r6 Branch forwards or backwards relative to current PC (+/- 32MB range) Load word at address r1 into r0 IF NE condition true, store bottom byte of r2 to address r3+r4 Store registers r4 to r8 and lr on stack. Then update stack pointer 电子科技大学嵌入式软件工程中心 Thumb指令集 Thumb是一个 16位的指令集 对 C代码的紧密度做了优化 (大约是 ARM代码大小的 65%) 对窄内存的性能进行了提高 是 ARM指令集的功能子集 对大多数的 Thumb指令而言 没有使用条件执行 标志一直都是置位的 源寄存器和目标寄存器是相同的 只使用了低端寄存器 常量有大小的限制 没有使用内嵌桶型移位器 (inline barrel shifter) 通过使用 BX指令来切换 ARM态和 Thumb态 Thumb不是一个 “常规 ”的指令集 ! 对指令的约束有时是不一致的 一般由编译器生成,而不是手动编写代码 电子科技大学嵌入式软件工程中心 ARM和 Thumb的性能对比 0 5000 10000 15000 20000 25000 30000 35000 Dhrystone 2.1 / sec 20MHz on ARM7TDMI ARM Thumb 32 bit 16 bit 16 bit with 32 bit stack 内存宽度 (0等待状态 ) 电子科技大学嵌入式软件工程中心 Thumb-2 指令集 Thumb-2 主要是对 Thumb指令集架构 (ISA)的扩展指令 增加了 32位指令实现了几乎所有的 ARM指令集架构的功能 保留了完整的 16位 Thumb指令集 ARM1156T2-S和 Cortex 系列支持 Thumb-2 Cortex-M3只支持 Thumb-2! 设计目标 :以 Thumb的指令密度达到 ARM的性能 不需要手动选择指令集 减少了剖析代码和理解执行方式的需求 编译器可以自动地选择 16位和 32位指令的混合 可以访问 ARM态的行为 异常可以直接处理 可以访问协处理器 可以完成 v5TE的高级数据处理 条件执行可以通过 If-Then (IT) 指令 1-4条紧接指令可以条件性地执行 电子科技大学嵌入式软件工程中心 Thumb 2的性能 /密集度 性能 代码密度 100% ARM code 100% Thumb code Random mix Profiled mix Thumb-2 电子科技大学嵌入式软件工程中心 指令流 执行单元 ARM Thumb 译码阶段 执行阶段取指阶段 Jazelle Jazelle使得 ARM核可以执行 8位的 Java字节码 95%的字节码可以用硬件执行 (典型 ) 普通 JVM: 0.7 Caffeinemarks/MHz ARM9EJ: 5.5 Caffeinemarks/MHz 功耗效率显著提高 相比 ARM9E, ARM9EJ-S多了大约 12K个额外的门电路 ARM JTEK (Java Technology Enabling Kit)提供了支持代码 当处理器在 Jazelle态执行时 : 所有的指令都是 8位宽 处理器进行字访问一次读 4条指令 Jazelle 电子科技大学嵌入式软件工程中心 ARM微处理器:异常 异常是由内部或者外部原因引起的,当异 常发生时 CPU将暂停执行当前指令自动到指 定的向量地址读取指令并且执行。 在 X86上,当有异常发生时 CPU是 到指定的向 量地址读取要 执行的程序的地址 而 ARM是 到向量地址的地方 读取指令 ,也就是 ARM的向量地址处存放的是一条指令( 一般是 一条跳转指令 ) 电子科技大学嵌入式软件工程中心 ARM微处理器:异常 X86体系的中断跳转 内存地址 IDT表 0x0000 0x0004 0x0008 0x000c 0x0010 中断服务程序入口地址 ISR_addr . . . . . 0x003f4 0x003f8 0x003fc ISR() 保存现场 中断处理 恢复现场 中断到来,传入中断号。 CPU 根据 (中断号 4)找寻内存地址 将相应内存地 址中的 isr_addr加载 到 PC,实现 程序跳转 电子科技大学嵌入式软件工程中心 ARM微处理器:异常 ARM中断的跳转0x00000000 LDR PC, Reset_Addr 0x00000004 LDR PC, Undefined_Addr 0x00000008 LDR PC, SWI_Addr 0x0000000c LDR PC, Prefetch_Addr 0x00000010 LDR PC, Abort_Addr 0x00000014 NOP 0x00000018 LDR PC, IRQ_ISR_Addr 0x0000001c LDR PC, FIQ_ISR_Addr 内存地址 异常向量表 IRQ_ISR() 判断中断源 . 触发 IRQ的设备 处理程序 Device() 在 X86中,根据中断号得出的中断处 理程序已经判断了中断源,而在 ARM 中, IRQ只是一类中断的总称,还需 要具体判断触发 IRQ的是哪个设备! 电子科技大学嵌入式软件工程中心 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寄存器是字 (4字节 )宽 ARM是按照字节顺序来寻址内存的 ARM支持大端( Big-endian)和小端( Little- endian)的内存数据方式,可以通过硬件的方式设 置端模式,也可以通过软件的方式来设置( V6版本 以上) 电子科技大学嵌入式软件工程中心 大端的数据存放格式 低地址 高地址 地址 A 地址 A+1 地址 A+2 地址 A+3 最高有效字节的地址 就是该 word的地址 最高有效字节 位于最低地址 word a=0x f6 73 4b cd f6 73 4b cd ARM微处理器:内存和 I/O 最高有效字节: Most significant byte 最低有效字节: Least significant byte 电子科技大学嵌入式软件工程中心 小端的数据格式 低地址 高地址 地址 A 地址 A+1 地址 A+2 地址 A+3 最低有效字节的地址 就是该 word的地址 最低有效字节位于最低地址 word a=0x f6 73 4b cd f6 73 4b cd 最高有效字节: Most significant byte 最低有效字节: Least significant byte ARM微处理器:内存和 I/O 电子科技大学嵌入式软件工程中心 ARM微处理器:内存和 I/O 大端 : 小端 : 0xb3204500 0xddddddd0 0xb3204500 0xddddddd0 f6 f6 73 73 4b 4b cd cd da da 00 00 实例 变量 A: word A=0x f6 73 4b cd,在内存中的起始 地址为 0x b3 20 45 00 变量 B: half word B=218,在内存中的起始地址为 0x dd dd dd d0问题: half word B=218与 word C=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 存储器映射编址 I/O映射方式 优点 可采用丰富的内存操作指 令访问 I/O单元 无需单独的 I/O地址译码 电路 无需专用的 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处理器的开发奠定了基础。 新的架构集成了所有原来的 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中选择一些指令以增强数

温馨提示

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

评论

0/150

提交评论