首页资源分类嵌入式开发嵌入式系统 > ARM Cortex-M3处理器简介

ARM Cortex-M3处理器简介

已有 456470个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签: ARM

分    享:

文档简介

ARM Cortex-M3处理器简介

文档预览

TECHNOLOGY IN-DEPTH ARM Cortex-M3处理器简介 作者 Shyam Sadasivan ARM CPU 产品经理 Information Quarterly 1. 简介 基于A R M嵌入式处理器的S o C解 决方案可应用于企业应用、汽车系统、家 庭网络和无线技术等不同的市场领域。 A R M C o r tex TM系列处理器以一个标准 的架构满足了不同市场领域中各种技术 的不同性能需求。A R M v7架构的A R M C o r tex系列处理器拥有三个分工明确的 分支系列;A系列面向复杂的高端应用程 序,用于运行开放式的复杂操作系统;R 系列针对实时系统;M系列为成 本控制 和微处理器应用提供优化。C o r tex-M3 处理器是基于A R M v7-M架构的第一款 A R M处理器,可以在对功能和成本敏感 的嵌入式应用(例如微控制器、汽车车身 系统、工业控制系统及无线网络)中实现 较高的系统性能,从而大大简化了可编程 性,使A R M架构成为各种应用方案(即使 是最简单的方案)的上佳选择。 35%。 1.2 快速有效的应用程序开发源于简单 的使用方法 缩 短 上市时间与降 低 开发 成 本是 选 择 微 控 制 器 的 重 要 标 准,而能 够 快 速简 单 地开发 软件 是 达 到这 些 要求的关 键 所 在。C o r tex-M3处理器专门针对快速简 单的编程而设计,用户无需深厚的架构知 识 或 编写任 何汇编 代码 就可以 建 立简单 的应用程序。C o r tex-M3处理器带有一 个 简 化 的 基 于栈 的 编 程 模 型,该 模 型 仍 与传统的A R M架构兼容,同时与传统的8 位、16位架构所用的系统类似,它简化了 8 位、16 位 到 3 2 位 的 转 换 过 程 。此 外,使 用基于硬件的中断机制意味着编写中断 服务程序 (handler) 不再重要。由于不需 要汇 编 代码 寄 存 器 操 作,启动 代码 得以 大大的简化。 1.1 通过提高效率来提高性能 处理器可通过两种途径来提高它 的 性 能,一 是“ 努力地 工作 ”,也 就 是 直 接 通 过 提 高 时 钟 频 率 来 提 高性 能,它以 高 功 耗 作为 代 价,并 增 加了设 计 的 复 杂 性 。另一种 是“ 聪明 地 工作 ”,在低 时 钟 频率的情况下提高运算效率,使处 理器 可以凭借简单的低功耗设计来完成与 第一种情况同样的功能。C o r t e x- M 3 处理器拥有基于哈佛架构的3级流水线 内核,该内核 集 成了分支预 测、单周期 乘 法、硬 件 除 法 等 众 多功 能强 大 的 新 特 性,使其具有出色的D h r y s t o n e基准性能 (1.25 DMIPS/MHz)。根据Dhrystone基 准,采用新的T h u m b ®-2指令集架构的 Cor tex-M3处理器,与执行Thumb指令 的A R M7T D M I-S ®处理器相比,每兆赫 的效率提高了70%,与执行A R M指令的 AR M7TDMI-S处理器相比,效率提高了 在位字段处理、硬件除法和If/T h e n 指令的协助下,T h u m b-2指令集 架构 (Instruction Set Architecture-ISA)底 层的关键新特性使C代码的执行变得更加 自然。另外,在开发方面,T h u m b-2指令 自动优化了性能和代码密度,在无需交互 使用A R M编译代码或T h u m b模式的情况 下加快了开发过程,简化了编译对象的长 期维护和支持工作。如此一来,用户不但 可以继续使用其C代码,而且还免去了建 立预编译对象代码库的麻烦,代码在更大 程度上获得了重复利用。 1.3 针对敏感市场降低成本和功耗 成 本一直 是高性能微控制器最大 的 弊 端 之一。由 于 先 进 的 制 造 工 艺 相当 昂 贵,因 此 只有 缩 小 芯片的 尺寸 才 有 可 能明 显 降 低 成 本 。为了减 小系 统 区 域, C or tex-M3处理器采用了至今为止最小 [27] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 的ARM内核,该内核的核心部分(0.18um G)的门数仅 为3 3 0 0 0 个,它把处 理器中 紧密相连的系统部件有效地紧密结合在 一 起 。通 过 采 用非对 齐 数 据 存 储 技 术、 原子位操作和T humb-2指令集,内存需 求得到最小化,其中T humb-2指令集将 D h r ysto n e基准的指令存储内存要求比 ARM指令减少超过25%。 为了迎合对节能要求日益增长的白色 家电和无线网络市场,Cortex-M3处理器 支持扩展时钟门控和集成休眠模式。由于 具有这些特性,当采用ARM MetroTM标准 单元和TSMC 0.13G制造工艺时,处理器 在50M Hz的目标频率下运行的功耗仅为 4.5mW,芯片占居面积只有0.33mm2。 ྱব ౵ౝ  *4"ஂ૆  ึපጲ  ˖ற  ˖றढᤌ  ͓ᄾഴय  Юߚγએ  %ISZTUPOF  ҩᏱ  ᭦ሤ  "3.5%.*4 "3.W5ḚрeឲΙఠḛ  5IVNC"3.   ጞ  '*2*32   ˓ௐ᧾ֆయ  ௃  ௃  %.*14.)[Ḛ "3.ഴयḛ N8.)[  NNĘ̰Юನḛ  $PSUFY. "3.W .Ḛֺ͹ḛ  5IVNC5IVNC   ጞ ѫஂᮔ฽  /.* ҁ ˓ྫྷူ˖ற   ˓ௐ᧾ֆయ  ᬶ੆   Ӝ۪ЮߚγએӬЊ  %.*14.)[ N8.)[  NNḚЮನ ܰ᝹ḛ   ʿӉդԺᤤጆፑܰ᝹Ḛ.16֖&5.ḛ੊Ꮷᬶ੆ᄉᦉ͇ 表 1-1 ARM7TDMI-S和Cortex-M3比较(采用100MHz频率和TSMC 0.18G工艺) 1.4 集成调试和跟踪功能加速上市步伐 嵌 入 式 系 统 通常不 具备图形用户界 面,软件调试也因此成了程序员的一大难 题。传统上,在线仿真器(I C E)单元作为 插件设备使用,通过大家熟悉的PC界面向 系 统 提 供窗口。然而,随着系 统体 积的变 小及其复杂性的增加,实体上附加此类调 试单元的方案不再可行。C o r t ex-M3处理 器通过几个集成部件在硬件本身实现调试 技术,使调试在具备跟踪和分析、断点、观 察点和代码修补功能的同时,调试速度也 获得了提高,促使产品可以更快地投入市 场。此外,处理器还通过一个传统的JTAG 端口或一 个 适 用于 低 管脚 数 封 装设备 的 2管脚串行线调试(Serial Wire Debug- SWD)端口赋予系统高度的可视性。 1.5 从ARM7TM升级为Cortex-M3可获 取更佳的性能和功效 在过去十年中,A R M7系列处理器被 广泛应用于众多领域。之后,C o r t ex-M3 处理器在A R M7的基础上开发成功,为基 于ARM7处理器系统的升级开辟了通道。 它的内核效率更高,编程模型更简单,它 具有出色的中断预测行为,其集成外设以 较低的成本提供了更强大的性能。 图 1 ARM7TDMI-S (ARM) 和 Cortex-M3 (Thumb-2)的相对性能 图 2 ARM7TDMI-S (ARM) 和 Cortex-M3 (Thumb-2)的相对代码大小 2. Cortex-M3处理器的架构和特性 基于A R M v7架构的C o r tex-M3处 理器带有一个 分级结构。它集成了名为 C M3C o r e的中央处理器内核和先进的 系统 外设,能够集成中断控制、内存保 护以 及 系 统 调 试 和 跟 踪 功 能 。这 些 外设 可进行高度配置,允许C o r tex-M3处理 器处理广泛应用且更贴近系统的需求。 C or tex-M3内核和集成部件(图3)均经 过专门设计,以满足使用内存最小、减少 管脚数目和降低功耗的要求。 2.1 Cortex-M3内核 C o r tex-M3中央内核基于哈佛架 构,指令和数据各使用一条总线(图 3)。 与C o r tex-M3不同,A R M7系列处理器 使用冯 = 诺依曼(Von Neumann)架构, 指 令 和 数 据 共 用 信 号总 线 以 及 内 存。由 于指令和数据可以从内存中同时读取, Cortex-M3处理器对多个操作并行执行, Information Quarterly [28] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 图3 Cortex-M3处理器 加快了应用程序的执行速度。 内存接口。其中有13个通用寄存器、两个 堆栈指针、一个链接寄存器、一个程序计 数器和一系列包含编程状态寄存器的特 殊寄存器。 C o r t ex-M3处理器支持两种工 作 模 式(线 程(T h r e a d)和 处 理 器 (H a n d l e r))及两个等级的代码访问(有 特权和无特权),能够在不牺牲应用程序 安 全 的 前 提下 执行 复 杂的开放 式 系 统 。 无特权代码执行限制或拒绝对某些资源 的访问,如某个指令或指定的内存位置。 线程模式是常用的工作模式,它同时支持 享有特权的代码以及没有特权的代码。 当发生异常时,进入处理器模式,在该模 式中所有代码都享有特权。此外,所有操 作 均 根 据以下 两 种工作 状 态 进 行 分 类: T h u m b代表常规执行操作,D e b u g代表 调试操作。 Cor tex-M3处理器是支持高达4GB 的可寻址内存空间,并提供简单和固定的 内存映射。这些存储空间为代码(代码空 间)、S R AM(内存空间),外部内存/设备 和内部/外部外设提供了预定义的专用地 址。另外,还有一个特殊区域专门供芯片 厂家寻址用。 借助位段(bit-ba nding)技术(图 5),C or tex-M3处理器可以直接对数据 的 单个 位 进 行 访问。内存 映 射 包含两个 位于SRAM的1MB位段区和映射到32MB 别名区域的外设空间。在别名区域中,某 个地址上的加载/存储操作将直接转化为 对该地址别名的位的操作。对别名区域中 的 某个 地 址 进 行写 操 作,如 果 置 位 最 低 有 效位,那 么位 段 位 写入1,如 果 使 其最 低有效位清零,那么位段位写入零。读别 名后 的 地 址将直 接 返回适当的 位 段 位中 的值。除此之外,该操作为原子位操作, 其他总线活动不能将其中断。 内核流水线分3个阶段:取指、译码 和执行。当遇到分支指令时,译码阶段也 包含预测取指,这提高了执行的速度。处 理 器 在译 码 阶 段自行对分支目的 地 指 令 进行取指。在稍后的执行过程中,处理完 分支指令后便知道下一条要执行的指令。 如果分支不跳转,那么紧跟着的下一条指 令随时可供使用。如果分支跳转,那么在 跳转的同时分支指令可供使用,将空闲时 间限制为只有一个周期。 C or tex-M3内核包含一个适用于传 统T h u m b和新型T h u m b-2指令的译码 器、一个支持硬件乘法和硬件除法的先进 ALU、控制逻辑和用于连接处理器其他部 件的接口。 C o r t ex-M3处理器是一个32位处理 器,带有32位宽的数据路径、寄存器库和 Information Quarterly [29] 图4 内存映射 Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH LDR R0,=0x200FFFFF ; Setup address MOV R2, #0x4 ; Setup data LDR R1, [R0] ; Read ORR R1, R2 ; Modify bit STR R1, [R0] ; Write back result LDR R0,=0x23FFFFFC ; Setup address MOV R1, #0x1 ; Setup data STR R1, [R0] ; Write Traditional bit manipulation method Direct, single cycle access with bit banding 图5 传统的位处理方法和Cortex-M3 位段的比较 基于传统A R M7处理器的系统只 支 持 访 问 对 齐 的 数 据,只有沿 着对 齐 的 字边界才可以对数据进行访问和存储。 Cor tex-M3处理器采用非对齐数据访问 方式,使非对齐数据可以在单核访问中进 行传输。当使用非对齐传输时,这些传输 将转换为多个对齐传输,且这一过程为程 序员所见。 C o r tex-M3处理器除了支持单周期 32位乘法操作之外,还支持带符号的和不 带符号的除法操作,这些操作通过S D I V 和U D I V指令完成,根据其操作数大小的 不同在2到12个内核时钟周期内完成。如 果被除数和除数大小接近,那么除法操作 可以更快地完成。Cortex-M3处理器在数 学运算能力方面的改进,使之成为众多数 字处理集中应用(如传感器读取和缩放或 硬件环路仿真系统)的理想选择。 令的结合,具有32位A R M指令性能,与 原始的16位T h u m b指令集的代码密度 匹配并与之后向兼容。图 6显示了预测 的D hr ysto ne 基准结果,由结果可见, Thumb-2技术确实达到了预期的目标。 在基于A R M7处理器的系统中,处理 器内核会根据特定的应用切换到T h u m b 状 态(以 获 取 高 代 码 密 度)或 A R M 状 态(以 获 取 出色 的 性 能)。然 而,在 Cortex-M3处理器中无需交互使用指令, 16位指令和32位指令共存于同一模式, 复杂性大幅下降,代码密度和性能均得到 提高。由于T h u m b-2指令是16位T h u m b 指令的扩展集,所以Cortex-M3处理器可 以执行之前所写的任何T h u m b代码。得 益于T h u m b-2指令,C o r t e x-M3处理器 还同时与ARM Cortex处理器系列的其他 产品兼容。 T h u m b-2指令集用于多种不同应 用,使 紧 凑 代 码 的 编 写 更 加 简 单快 捷 。 B FI和B F C指令均为位字段指令,在网络 信息包处理等应用中可大派用场。S B F X 和UBFX指令改进了从寄存器插入或提取 多个位的能力,这尤其有利于汽车应用。 R B I T指令的作用是将一个字中的位反 转,在D F T等D S P算法中非常有用。表分 支指令T B B和T B H用于平衡高性能和代 码紧凑性。T h u m b-2指令还引入了一个 新的I f-T h e n结构,意味着可以有多达4个 后续指令进行条件执行。 2.2 Thumb-2 指令集架构 A R Mv7-M是A R Mv7架构的微控制 器部分,它和早期的A R M架构不同,它 在早期的A R M架构中只支持T h u m b-2 指令。T h u m b-2技术是16位和32位指 Information Quarterly 图6 与ARM、Thumb以及Thum-2相关的Dhrystone性能和代码大小 [30] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 2.3 嵌套向量中断控制器(NVIC) 可配置程度较高的N V I C是 Cortex-M3处理器中一个重要组成部分, 能够为处理器提供出色的中断处理能力。 进行N V I C的标准实现过程中,它提供一 个非屏蔽中断(N M I)和32个通用物理 中断,这些中断带有8级的抢占优先权。 N V I C可以通过简单的综合选择配置为1 到240个物理中断中的任何一个,并带有 多达256个优先级。 Cor tex-M3处理器使用一个可以重 复定位的向量表,表中包含了将要执行的 函数的地 址,可供具体的中断处 理器使 用。中断被接受之后,处理器通过指令总 线接口从向量表中获取地址。向量表复位 时指向零,编程控制寄存器可以使向量表 重新定位。 为了减 少门 计 数 并 提 高 系 统 的 灵 活 性,C o r tex-M3已从A R M7处理器的分 组 映 像寄 存 器 异常模 型 升 级 到了基 于堆 栈的异常模型。当异常发生时,编程计数 器、编程状态寄存器、链接寄存器和R0- R 3、R12 等 通 用寄 存 器 将 被 压 进 堆 栈 。 在数据总线对寄存器压栈的同时,指令总 线从向量表中识别出异常向量,并获取异 常代码的第一条指令。一旦压栈和取指完 成,中断服 务程 序 或 故 障 处 理 程 序 就 开 始执行,随后寄存器自动恢复,中断了的 程序也因此恢复正常的执行。由于可以在 硬件中处理堆栈操作,C o r tex-M3处理 器免去了在传统的C语言中断服务程序中 为了完 成 堆 栈 处 理 所 要 编写的汇 编 程 序 包,这使应用程序的开发变得更加简单。 新进入中断的风险。 在背对 背中断情况中,传 统的系统 将重复状态保存和状态恢复的过程两 次,导致了延迟的增加。C o r t e x-M3处 理器在N VIC硬件中使用末尾连锁(tailchaining)技术简化了激活的和未决的中 断之间的移动。末尾连锁技术把通常需要 用30个时钟周期才能完成的连续的堆栈 弹出和压入操作替换为6个周期就能完成 的指令取指,实现了延迟的降低。处理器 状态在进入中断时自动保存,在退出中断 时自动 恢 复,比 软件 执行用时更 少,大 大 提高了频率为100MHz的子系统的性能。 N V I C还采用了支持集成睡眠模式 的C or tex-M3处理器的电源管理方案。 立即睡眠模式(Sleep Now mode)被等 待中断(W F I)或等待事件(W F E)指令 调用,即可以使内核立即进 入低功耗模 式,异常被挂起。退出时睡眠(Sleep On E xit)模式在系统退出最低优先级的中断 服 务程 序 时使 其 进 入低 功 耗 模 式 。内核 保持睡眠状态直到遇上另一个异常。由于 只有一个中断可以退出该模式,所以系统 状 态不 会 被 恢 复 。系 统 控 制寄 存 器中的 SLEEPDEEP位如果被置位,那么该位可 以 用来 通 过 时 钟门控 制内核以 及 其他 系 统部件,以获得最理想的节电方案。 N V I C还集成了一个递减计数的24位 系统嘀哒(S y sT i c k)定时器,可定时产生 中断,提供理想的时钟来驱动实时操作系 统或其他预定的任务。 2.4 内存保护单元(MPU) M P U是C o r t ex-M3处理器中一个可 选的部件,它通过保护用户应用程序中操 作系统所用的重要数据,分离处理任 务 (禁止访问各自的数据),禁止访问内存 区域,允许将内存区域定义为只读,以及 对有可能破坏系统的未知的内存访问进 行检 测 等 手段 来 改善嵌 入 式 系 统的可靠 性。 M PU使应用程序可以拆分为多个进 程。每个进程不仅有指定的内存(代码、数 据、栈和堆)和设备,而且还可以访问共享 的内存和设备。M P U还会增强用户和特 权访问规则。这包括以正确的优先级别执 行代码以及通过享有特权的代码和用户 代码加强对内存和设备使用权的控制。 M P U将内存分成不同的区域,并通 过防止无授权的访问对内存实施保护。 M PU支持多达8个区域,每个区域又可以 分为8个子区域。所支持的区域大小从32 字 节开始,以 2为 倍 数 递增,最 大可 达 到 4G B可寻址空间。每个区域都对应一个 区域号码(从0开始索引),用于对区域进 行寻址。另外,也可以为享有特权的访问 定 义一 个 默 认 的 背景 内 存 映 射。对 未在 M P U区域中定义的或在区域设置中被禁 止的内存位置进行访问,将会导致内存管 理故障(Memory Management Fault)异 常的产生。 区域的保护是根据规则来执行的,这 些规则以处理的类型(读、写或执行)和执 N V I C支持中断嵌套(压栈),允许通 过提高中断的优先级对中断进行提前处 理。它还支持中断的动态优先权重置。优 先权 级 别 可以在 运行期 间通 过 软件 进 行 修 改 。正在 处 理 的中断 会 防止被 进 一 步 激活,直到中断服务程序完成,所以在改 变它们的优先级的同时,也避免了意外重 图7 NVIC中的末尾连锁(Tail chaining)技术 Information Quarterly [31] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 行访问的代码优先级为基础进行制定。每 个区域都包含一组能够影响允许的访问 类型的位,以及影响允许的总线操作类型 的位。M P U还支持重叠的区域(覆盖地址 相同的区域)。由于区域大小是2的倍数, 所以 重 叠 意 味着 一 个区域 有 可能完全 包 含在另一个区域里面。因此,有可能出现 多个区域包含在单个区域中以及嵌套重叠 的情况。当寻址重叠区域中的位置时,返 回的将是拥有最高区域号码的区域。 2.5 调试和跟踪 对Cor tex-M3处理器系统的调试访 问是通过调试访问端口(Debug Access P o r t)来实现的,可以是串行线调试 端 口(S W-D P)(构成一 个两脚(时 钟和 数 据)接口)或串行 线 J T A G 调 试 端口 (SWJ-D P)(使用J TAG或SW协议)。 S W J-D P在上电复位时默认为J TA G模 式,并且可以通过外部调试硬件所提供的 控制序列进行协议的切换。 调试操作可以通过断点、观察点、出 错条件或外部调试请求等各种事件进行 触发。当调试事件发生时,C o r t e x-M3处 理器可以 进 入 挂 起 模 式 或者 调 试 监控 模 式。在挂起模式期间,处理器将完全停止 程序的执行。挂起模式支持单步操作。中 断可以暂停,也可以在单步运行期间进行 调用,如果对其屏蔽,外部中断将在逐步 运行期间被忽略。在调试监控模式中,处 理器 通 过 执行异常处 理 程 序 来 完 成各种 调试任务,同时允许享有更高优先权的异 常发生。该模式同样支持单步操作。 Flash块和断点(F PB)单元执行6个 程序断点和两个常量数据取指断点,或者 执行 块 操 作 指 令或位于 代码内存空间和 系统内存空间之间的常量数据。该单元包 含6个指令比较器,用于匹配代码空间的 指令取指。通过向处理器返回一个断点指 令,每个比较器都可以把代码重新映射到 系统空间的某个区域或执行一个硬件断 图8 Cortex-M3跟踪系统 点。这个单元还包含两个常量比较器,用 于匹配从代码空间加载的常量以及将代码 单管脚导出数据流,S W V支持简单和具有 成本效益的系统事件分析。曼切斯特编码 重新映射到系统空间的某一个区域。 和UART都是SWV支持的格式。 数据观察点和跟踪(DWT)单元包 含4个比较器,每一个比较器都可以配 置为硬件观察点。当比较器配置为观察 点使用时,通过编程即可以比较数据地 址,也可以比较编程计数器。DWT比较 器还可以配置用来触发PC采样事件和数 据地址采样事件,以及通过配置使嵌入 式跟踪宏单元(E T M)发出指令跟踪流 中的触发数据包。 E T M是设计用于单独支持指令跟踪 的可选部件,其作用是确保在对区域的影 响 最小的 情况下实 现 程 序 执行 的重 建 。 ETM能够实现高性能实时跟踪指令执行, 并且 数 据 通 过 压 缩 处 理器内核的跟 踪 信 息进行传输以使带宽需求最小化。 C o r tex-M3处理器采用带D W T和 ITM(仪器跟踪宏单元)的数据跟踪技术。 D W T提供指令执行统计信息并可产生观 察点事件来调用调试或触发指定系统事 件上的E T M。I T M是由应用程序驱动的 跟踪源,支持跟踪O S和应用程序事件的 printf类型调试。它接受来自DW T的硬件 跟踪数据包以及来自处理器内核的软件 跟 踪 激 励,并 使 用时间 戳 来 发 送 诊 断系 统信息。跟踪端口接口单元(Trace Por t Interface Unit-TPIU)接收来自E TM和 ITM的跟踪信息,然后将其合并、格式化并 通过串行线浏览器(Serial Wire ViewerSW V)发送到外部跟踪分析器单元。通过 2.6 总线矩阵和接口 Cor tex-M3处理器总线矩阵把处理 器和调试接口连接到外部总线;也就是把 基于32位AMBA® AHB-Lite的ICode、 D C o d e和系统接口连接到基于32位 AMBA APBTM的专用外设总线(Private Peripheral Bus-PPB)。总线矩阵也采用 非对齐数据访问方式以及位段技术。 32位I C o d e接口用于从代码空间获 取指令,只有C M3C o re可以对其访问。 所 有 取 指 的 宽 度 都 是 一 个字,每 个字 的 取 指 数目取 决 于所执行 代码的类 型 及 其 在内存中的对齐方式。32位D C ode接口 用于访问来自代码内存空间中的数据, C M3C o r e和D A P都可以对其访问。32位 系 统 接口可 获 取和 访 问系 统 内 存 空间中 的指令和数据,与D c o d e总线相似,可以 被CM3Core和DA P访问。PPB可以访问 Cortex-M3处理器系统外部的部件。 3. 下一代MCU以8位MCU的成本提供 32位的性能 微控制器单元(M C U)是一块高度 集 成 的单 芯片,它集 成了处 理器、非易失 性内存(用于编程)、易失性内存(用于存 储数据)、I/O端口、定时器和多种外设, 它的应用领域相当宽广,从低端的通用应 用延伸至高性能的数字信号控制。另外, 面对激烈的市场竞争,是否能在提供性能 优越、外设齐备的产品来满足广大用户群 Information Quarterly [32] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 图9 32位MCU市场的增长 的同时,保持低廉的成本,使产品得以推 广和应用已成为最大的挑战。 M CU市场被8位和16位架构的M CU 长 期占 据,为用户 提 供 低 成 本 的 解 决 方 案,例如,购买8位的M C U只需40美分。 随着下一代应用方案对性能以及功能要 求的提高,M C U市场正向32位架构加速 前进,届时将以极具竞争力的系统成本推 出性能更高、使用更简单的32位MCU。 由于许多M CU都采用工业标准的接 口和外设,因此在大多数情况下,设备核 心部分的处理器将成为区分M C U产品的 最重要标准。此外,A R M7和A R M9TM处 理器系列已经在M C U领域取得了巨大的 成功,随着引入C o r tex-M3处理器,从8 位、16 位 升 级 到 3 2 位 架 构 必 然 成 为强有 力的推动因素。 由低位升级到32位架构的主要动力 之一是获得更出色的性能。不过性能是相 对而言的,例如,高端媒体处理为了满足 苛 刻 的 带 宽 要求,需 要 非 常 高 的 系 统 时 钟频率。而在M C U中,评估性能的标准 是f l a s h内存指令的快速执行、有效位的 操作、廉价的调试和跟踪技术、以及强健 的中断结构(对于实时应用至关重要)。 Cor tex-M3处理器把架构特性和集成外 设部件结合在一起,为M C U设计人员提 供了一个低成本和高性能的解决方案,在 简化 开发 过 程 的同时 大 大 缩 短了产品 投 放市场的时间。 3.1 有效使用内存降低成本 事实上,在所有嵌 入式设计的材料 单中,内存 都占据了主导的 地位,有 效使 用代码内存和数据内存成为降低成本的 关键。C o r t ex-M3处理器中的T h u m b-2 技 术 和 总 线 接口支 持更 高的 代码 密度 和 更有效的取指,而位处理(bit handling) 技术增强了数据处理的能力。 T humb-2指令是原始16位T humb 指令和新32位指令的结合,它提供与32 位A R M指令集同样的功能。Cor tex-M3 处理器中的I C o d e接口对这些指令进行 取指,取指的宽度为一个字。16位指令在 内存中以半字对齐,取指时一次获取两个 指令。对于字对齐的32位指令,取指在单 个周 期 内完 成;对 于半 字对 齐 的 3 2 位 指 令,取指最多在两个周期内完成,前提是 访 问 零 等 待状 态内存。这 样 便 可以 灵 活 地使用指令,并实现低取指延迟。 虽然嵌 入式f l a s h内存 在众多嵌 入 式应用中颇受推崇,但f l a s h(f l a s h在 30-40M H z工作时)与处理器之间在速 度上的差距也越来越大。为了适应这一差 距,系统必须在访问f l a s h时提供高效的 指令和数据获取操作。F l a s h内存接口一 般通过取指或者文字池取值来一次迅速 获取多个16位的值。M OV W和M OV T指 令能够更有效地插入16位常量;使用这两 个指令可以使数据立即可用,而无需像文 字池那样需要执行一次加载操作。 为了有效地利用芯片上R A M,许多应 用方案采用打包成一个字节大小的信号量 (即数据的一位)。对信号量进行原子处 理的传统方法是读字节,屏蔽/修改位,然 后再读回字节。C o r tex-M3使用位段技 术对这一过程进行了简化。小于1M B大小 的存储地址区域以别名标记为32MB位特 定的空间。当对该32M B区域内的地址执 行读或写操作时,它将自动对别名标记的 地 址 执行 位 复位 或位 清 零 操 作。通 过该 机制,多操作任务简化成了单核写操作。 为了有效地利用SRAM,Cortex-M3 处 理器 还 采用了非对 齐 数 据 访问技 术 。 图10 是对齐和非对齐数据访问的内存空 间 分 配 图。每 个格 子 代 表 一 个字 节长 度 的各种类型数据,如长型、字符型和整数 型,每种类型数据要求的字节长度不同。 白色格子代表空的没有使用的内存空间。 通过把尚未使用的内存整理成连续的空 间,无形中就减少了对SRAM的需求量。 3.2 低成本的调试和跟踪技术 传统的系统调试一般由J TA G接口 来 执行,通常需 要 5 个 管脚,这 对 于总共 才有10个管脚的低成本系统来说无疑是 太奢侈了。除J TAG之外,C or tex-M3处 理器采用支持串行线调试(S erial W ire D e b u g)技术的调试访问端口(D e b u g Access Port-DAP),调试只需两个管脚 便可完成,而且表现与J TAG接口同样出 色。此外,把可选的E TM部件添加到系统 有利于实现出色的指令跟踪功能,同时把 32-bit LONG data 16-bit INT data 8-bit CHAR data Information Quarterly Aligned 图10 对齐和非对齐数据访问的内存空间分配 [33] Unaligned Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 成本的影响降至最低。 通过把R O M代码和数据独立地重新 映射到SRAM区域上,Flash Patch技术 针对大多数只有R O M的微控制器实现了 对只读代码的调试功能。这使得设备和系 统工程师可以在运行期间对代码中的错 误进行修补,从而免去了成本不菲的芯片 重制过程。 图11 NVIC对迟来的具有更高优先级的中断做出的响应 3.3 低延迟中断处理机制 典型的M C U系统是中断较集中的系 统,但并没有因此而奢侈地采用昂贵且智 能的外设,为其提供独立的服务。在这种 情况下,处理器本身得牺牲一定的性能来 换取有 效 的中断 响 应和中断处 理 机制。 Cortex-M3处理器中集成的NVIC可实现 硬件中断处 理以及非常低的延迟,这有 利于把对处理器性能的影响降至最小。 N VIC和处理内核的紧密集成加快了中断 服务程序(Interrupt Service RoutinesISR)的执行速度,同时也减少了进入中断 所需的周期数,减幅达70%。这一过程通 过寄存器硬件压栈以及退出和重新开始 多个load-store指令的执行来完成。 3.4 业内新突破 A R M架构成为32位M CU的标准已 是 不 争 的 事 实,它 通常 被 称 作 下一 代 的 8051。C or tex-M3处理器凭借其卓越的 性 能 和 低 廉 的 成 本,通常可以 媲 美 高 端 的8位M CU,现在它的应用范围进一步扩 大,使 更多用户升 级 到 3 2 位 系 统 成 为现 实。来自领 先 合 作 伙伴 的 初 始 微 控 制 器 设备在Cortex-M3处理器上整合了flash、 S R A M和多个外设,缔造了$1的价格神 话,提供了无与伦比的竞争力。 油压传感器功能等众多领域。不言而喻, 如此复杂的互操作系统需要可靠的性能。 而 且在 工 业 控 制 过 程中,除了 可 靠 性 之 外,还要考虑关键控制操作的安全问题。 是 否 有一 款 处 理器可以 满 足 这 些 要求, Cortex-M3处理器就是答案。 4.1 使用确定的中断处理来预测汽车的 响应 汽车系统是高度中断驱动的,这些中 断包括刹车和急转弯等各种常规操作。 对 这 类 操 作 的 快 速 预 测 反 应有助 于 开启 防抱死(A B S)系统和使用自动稳定控制 技术,从而达到安全行驶的目的。一般来 说,这些系统都非常复杂,各种不同的子 系统为汽车的安全行驶随时待命。 N V I C的t a i l-c h a i n i n g(末尾连锁) 技 术 支 持 背 对 背 中断,但 有 时 优 先 级 更 高的中断有 可能 在当前中断 的压栈 或 状 态恢复(出栈)阶段产生。在传统的基于 A R M7处理器的系统中,这些阶段必须在 开始处理未决的中断前完成。另一方面, C o r tex-M3支持后来和占先机制,因此对 各种可能事件可提供确定性的响应。 如 果 一 个具有 更 高 优 先 级 的中断 在 上一 个 中断 执行压栈 期 间 到 达,那 么 N V I C马上获取一个新的向量地址来处理 该未决的中断,如图11所示。 同 样,如 果 在出 栈 期 间 发 生 异 常, 那么N V I C将丢弃出栈而马上处理新的中 断。由于在转换到第二个中断前放弃了状 态恢复以及保存阶段,所以N V I C以确定 的方式实现了更低的延迟。 非 屏 蔽 中 断(N o n - M a s k a b l e Interrupt-N MI)的确定性可以通过把关 键的中断源设置为非屏蔽形式而进一步 提高,这在带有需要以特定的时间间隔进 行可靠处理的监视定时器的系统中是一 个非常重要的特性。 4. 可靠安全的汽车和工业控制 今天的汽车系统相当复杂,一些高端 的汽车含有的微控制器已达上百个之多。 这 些 系 统 的 应 用 范 围 覆 盖了从 高性 能 的 导 航 系 统 到 成 本 敏 感 的电子车窗 控 制 和 图12 NVIC 占先出栈 Information Quarterly [34] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 4.2 使用精细的内存保护来获得可靠的 软件集成 对基于汽车标准API的应用软件进行 重复使用,在下一代汽车系统中将成为必 然的趋势。为了使产品更快地投入市场, 汽 车系 统 的 设 计人 员希望 从不同的 供 应 商 那里 选 择 软件 模 型,然 后 把 这 些模 型 重复应用到各种车辆。为此,我们需要建 立一个机制来使各个模块分隔开,以便把 干扰降至最小。C o r tex-M3处理器中的 M P U提供可以细分到32字节的区域,实 现了对单独任务的有效划分。如此一来, 系 统 就可以把 很 多不同的 小 软件 程 序 进 行分隔,使它们避免保护机制的共享。 4.3 加快位提取的速度来获得有效的I/O 数据处理 汽车和工业应用的特点在于它们需 要处理大量的通用I/O数据。传感器接口 或与其类似的外部设备通常以8位或16位 的 形式 读 取 数 据,然 后在 处 理 所 读 的 数 据 后 提 取 所 需的 位 级数 据。这 些 处 理 过 程 一 般 通 过 微 代码 来 完 成,所 需 时 间为 几个周期。此外,Thumb-2 UBFX(零扩 展)和SBF X(符号扩展)位字段指令可以 使位级的提取在一个周期内完成。 4.4 保护操作提供更安全的工业环境 在受保护的环境中,工业处理通常采 用实时操作系统来执行控制。而且鉴于有 多种不同的应用同时运行,需要建立一个 保护机制来确定应用的安全级别。 图14 深度休眠模式下的电源控制 为了安全操作,M P U加强了优先权和 访问 规 则。它 针对 每 个 任 务 通 过分离代 码、数据和堆栈来实现安全的优先级,同 时通过控制可以读、写和执行的内存位置 来实现访问限制。它还可以通过检测堆栈 破坏等未知的、有害的内存访问事件,并 对这些问题进行安全的清空处理来避免 灾难性的故障。 5. 无线网络实现了更低的功耗 在世界 日趋 紧 密 相 连 的 今 天,无 线 网络无处不在。各种无线标准如W i-F i、 WiM A X、蓝牙和Zigbee纷纷面世,成为 推 动 连 接 技 术 发 展 的 新 鲜血 液,先 后 实 现了跨互 联 网 连 接 技 术以 及与具有类似 技 术 的 设备之 间的 连 接 技 术 。这 些 技 术 之间的共同点无一例外就是对低功耗 的 需 求 日益 增 长 。例 如,我 们 希 望 基 于 Zig B ee的无线设备在使用一对A A电池供 电的情况下可以维持工作超过10年。 5.1 时钟门控和集成休眠模式可以降低 功耗 时钟门控技术用于关闭系统中的某 些部分来有效地禁止它们。Cortex-M3 处理器广泛地使用这些门控时钟来禁止 不用的功能及对不用的功能模块的输 入,因此,只有使用中的逻辑才会消耗 动态电源。 除了在 处 理 器 的 设 计中广泛使 用时 钟门控技术外,Cortex-M3处理器还引入 了一系列可以使 处 理器 进 入低 功 耗 状 态 的睡眠模式,对整个处理器(中断控制器 除外)进行有效的时钟门控。休眠模式可 通过WFI(等待中断)和WFE(等待事件) 指令执行。此外,C o r t ex-M3处理器使用 S L E E P D E E P信号更大幅降低了系统级 功耗。如果处于立即休眠(Sleep-now) 或退出时休眠(S l e e p-o n-e x i t)模式, 将在系统控制寄存器中的S L E E P D E E P 位 时 发 出该 信 号。该 信 号发 送 到时 钟 管 理器,对处理器和包括锁相环(P L L)在 内的系 统 部 件 进 行 门控,功 耗 进 一 步下 降。图14 展示了如何在低功耗模式下使 用S L EEPD EEP信号来使时钟控制器停 止,从而达到减小功耗的目的。当退出低 功耗状态时,LO CK信号指出PLL处于稳 定状态,并且可以安全启用Cortex-M3时 钟,确保了处 理器不会在时钟信号稳定 之前重新启动。为了检测中断,处理器必 须接收低功耗状态下的自由运行(f re erunning)FCLK信号。 图13 使用UBFX和SBFX指令进行位提取 5.2 通过灵活的工作方式来增加处于睡 眠模式的时间 高 功 耗 通常是因为处 理 器为了达 到 Information Quarterly [35] Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 一定 的性 能要求而在快 速 的时 钟 频 率 下工作产生的。处 理器也可以通过低时 钟频率下灵活的工作方式来降低功耗。 C or tex-M3处理器的工作效率达到1.25 DMIPS/M Hz,使系统可以更快完成计算 强度大的任务,因此,系统可以有更多时 间处于低功耗的睡眠模式。 对于网络应 用中的 信息包处 理 任 务 来说,位操作技术非常重要。例如,位字 段 修 改 指 令可以 提 供 对 打包数 据 结 构 的 低 级访 问,如 访 问网 络 数 据 包 标头。 Cortex-M3处理器中的位操作指令如BFI 和B F C可以减少数据总线活动以及对数 据结构解包的需求,因此加快了网络处理 的速度。 5.3 真正实现省电 除去可选部件,C o r t e x- M 3 处 理 器在目标频率为10 0M H z,采用T S M C 0.18G的制造工艺和A R M S A G E-X标 准单元库时,功耗仅为0.24m W/M H z。 在相同的频率下,C o r tex-M3处理器与 ARM7TDMI-S处理器相比不但功耗降低 了30%以上,而且性能也翻了一番。 6. 更快地投入市场 每 个 嵌 入 式 系 统设 计人 员都 面 临着 同一个挑战,那就是产品的开发速度,这 个 问 题 在许 多 情况下与设 计 复 杂 程 度以 及无法利用优质软件工具纠缠在一起。在 解决这一问题的过程中,普遍都重复利用 早期系统设计和软件技术。C o r tex-M3 处理器受集成系统部件和广泛的软件 工 具 支 持,它为新 系 统 以 及 那 些 升 级 到 A R Mv7架构的系统更快地投入市场提供 了一套完整的解决方案。 6.1 简单、可配置的硬件设计和调试 C o r tex-M3处理器可配置程度较 高,可快速有效地适应系统的要求。通过 把可选的M PU和E T M添加到系统以及在 合成时删除DW T和F P B,设计人员可以快 速 建 立 复 杂 的 系 统 。在 简 单 的 控 制 系 统 中,N V I C可以只配置一个中断,而在汽车 应用等中断较集中的系统中,N V I C可以 配置支持多达240个物理中断并提供256 个优先级别。在要求许多不同的处理均可 以安全操作的系统中,M P U用来加强处 理的分离以及特权访问模式的使用。 随着花在 应 用 验 证 上的时间日益增 多,片上调试和跟踪对于产品的准时交付 已经变得非常重要。C o r tex-M3处理器 的 集 成 调 试 功 能可以 实 现快 速 验 证,而 无需使用较困难的I C E元件。系统可以通 过J TAG端口或两脚串行线调试(S e rial Wire Debug)端口进行观察。可选ETM具 有出色的指令跟踪功能,而FPB和DWT则 能够使用断点和硬件观察点进行调试。 6.2 应用程序开发简单 Cor tex-M3处理器包含许多可以实 现快速软件开发的特性,使开发人员无需 编写任 何汇编 代码 或 对处 理器及其寄 存 器集有深刻的认识。C o r tex-M3处理器 带 有一 个简化 和 更易于 理 解 的 基 于栈 的 编程模型,以及一个用于处理中断和异常 的基于向量的中断机制。此外,Thumb-2 指令可实现有效代码的写入而无需A R M/ T h u m b指令所要求的交互使用。简单的 线 性 4 G 地 址 空间 不包含 数 据页 或代码 页。该架构提供了灵活的寄存器机制,使 得编译非常友好。该机制允许任何寄存器 之间的单周期乘法操作,并把任意寄存器 作为指向数据结构/数组的指针来使用。 图15 使用BFI指令插入任意数目的相邻位 mW/MHz DMIPS/MHz DMIPS/mW CM3Core Cortex-M3 0.19 0.24 1.25 1.25 6.57 5.21 ARM7TDMI-S (ARM) 0.28 0.93 3.32 ARM7TDMI-S (Thumb) 0.28 0.74 2.64 表2 性能和功耗比较(频率100MHz,采用TSMC 0.18工艺) Information Quarterly [36] 在主C 程 序 被调用之前和之 后以 及在启动引导代码期间,传 统的I S R需 要一个汇编程序包来处理堆栈操作。 Cor tex-M3处理器的所有堆栈操作都在 硬件中完成,因此不需要汇编程序,开发 人员可以只用C语言编程,而不用了解处 理 器 和 所 有寄 存 器 组 具体 如 何 运 作 。另 外,在许多操作系统中,硬件定时器用来 生成中断,以便操作系统可以执行任务管 理 。这 对于 确 保 在系 统 上 运行多 个 任 务 以及 避 免 单个 任 务占用所 有资源 而 言非 常必要。S y sT i c k定时器专门用于实现这 一功能,它使操作系统在基于Cortex-M3 处理器的M CU设备之间的移植变得更加 Number 9, Autumn 2008 TECHNOLOGY IN-DEPTH 简单,移植时无需对操作系统的系统定时 器代码进行修改。 借 助 T h u m b - 2 I S A ,能 够 在 R e a l V i e w开发套件中实现简化的编译 流 程 ,免 去了析 构 、编 译 和 交 互 使 用 A R M和T h u m b程序的需要。早前使用 T h u m b编写的应用程序不必修改就可 以在C o r t e x- M 3 处 理器上 运行,因为 Thumb-2ISA包含了所有的Thumb指令。 此外,A R M汇编代码通过A R M Unified A s se m bl e r框架可以轻易地移植到 T hu mb-2指令上。如果源代码是用高级 语 言(如 C 语 言)编 写的,那 么可以使 用 RealView编译工具或GNU编译器等第三 方工具将其重新编译到Thumb-2代码。 A R M RealView微控制器开发套件 (RealView Microcontroller Developer K i t,R V M D K)为所有基于A R M处理器 (包括Cortex-M3处理器)的微控制器提 供了一个完整的软件开发环境。这里随便 提一些第三方开发工具,包括IAR、Green Hills和Lauterbach的编译器、仿真器和调 试器等。 7. 小结 C o r t e x-M3处理器是首款基于 A R M v7- M 架 构的 A R M 处 理器。中央 C o r tex-M3内核使用3级流水线哈佛架 构,运用分支预测、单周期乘法和硬件除 法功能实现了出色的效率(1.25 D MIP S/ M Hz)。T humb-2指令集结合非对齐数 据存储 和原子 位 处 理等 特 性,轻易以8 位、16位设备所需的内存空间就实现了32 位性能。 凭 借 灵 活 的 集 成 硬 件 配 置,快 速 的 系 统 调 试 和 简易的 软件 编 程,使 基 于 C or tex-M3处理器的设计得以更快地投 入 市 场 。为了在 中断 较 集 中的 汽 车 应 用 中实 现可靠 的 操 作,集 成 的 嵌 套 向 量 中 断控制器(Nested Vectored Interrupt C o n t r o l l e r-N V I C)通过末尾连锁(t a i lchaining)技术提供了确定的低延迟中断 处理,并可以设置带有多达240个中断。 对 于工 业 控 制 应 用,可 选 内 存 保 护 单 元 (MPU)通过特权访问模式和分离应用中 的处理进程来实现安全操作。F l a s h补丁 和断点(Fllash Patch and Breakpointu n i t)单元、数据观察点和跟踪(D a t a Watchpoint and Trace-DWT)单元、仪 器跟踪宏单元(Instrumentation Trace M acrocell-IT M)和可选嵌入式跟踪宏 单元(Embedded Trace MacrocellE T M T M)为深度嵌入式器件提供了低成本 的 调 试 和 跟 踪 技 术 。扩展 时 钟门控 技 术 和集成睡眠模式使低功耗的无线设计成 为可能。 C or tex-M3处理器是专为那些对成 本和功耗非常敏感但同时对性能要求又 相当高的应用而设计的。凭借缩小的内核 尺寸和出色的中断延迟性能、集成的系统 部件、灵活的配置、简单的高级编程和强 大的软件系统,C o r tex-M3处理器必 将成为从复杂的芯片系统到低端微控 制器等各种系统的理想解决方案。 Information Quarterly [37] Number 9, Autumn 2008

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。