Cortex M3内核与ARM7TDMI区别
cortexm3内核与arm7tdmi区别
低成本ARM 32位MCU,开发人员面临的两种选择要使用低成本的 32位微控制器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。
在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。
和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。
迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。
这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。
众多的制造商(据ARM宣称,多达16家)出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。
在许多方面,ARM7TDMI 都可以称得上是嵌入式领域的实干家。
2.两者差异除了使用哈佛结构, Cortex-M3还具有其他显著的优点:具有更小的基础内核,价格更低,速度更快。
与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。
Cortex-M3 还集成了睡眠模式和可选的完整的八区域存储器保护单元。
它采用THUMB-2指令集,最大限度降低了汇编器使用率。
3.指令集ARM7可以使用ARM和Thumb两种指令集,而 Cortex-M3只支持最新的 Thumb-2指令集。
ARMCortex各系列处理器分类比较
Cortex-M系列M0:Cortex-M0是目前最小的ARM处理器,该处理器的芯片面积非常小,能耗极低,且编程所需的代码占用量很少,这就使得开发人员可以直接跳过16位系统,以接近8 位系统的成本开销获取32 位系统的性能。
Cortex-M0 处理器超低的门数开销,使得它可以用在仿真和数模混合设备中。
M0+:以Cortex-M0 处理器为基础,保留了全部指令集和数据兼容性,同时进一步降低了能耗,提高了性能。
2级流水线,性能效率可达1.08 DMIPS/MHz。
M1:第一个专为FPGA 中的实现设计的ARM 处理器。
Cortex-M1 处理器面向所有主要FPGA 设备并包括对领先的FPGA 综合工具的支持,允许设计者为每个项目选择最佳实现。
M3:适用于具有较高确定性的实时应用,它经过专门开发,可使合作伙伴针对广泛的设备(包括微控制器、汽车车身系统、工业控制系统以及无线网络和传感器)开发高性能低成本平台。
此处理器具有出色的计算性能以及对事件的优异系统响应能力,同时可应实际中对低动态和静态功率需求的挑战。
M4:由ARM 专门开发的最新嵌入式处理器,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。
M7:在ARM Cortex-M 处理器系列中,Cortex-M7 的性能最为出色。
它拥有六级超标量流水线、灵活的系统和存接口(包括AXI 和AHB)、缓存(Cache)以及高度耦合存(TCM),为MCU 提供出色的整数、浮点和DSP 性能。
互联:64位AMBA4 AXI, AHB外设端口(64MB 到512MB)指令缓存:0 到64kB,双路组相联,带有可选ECC数据缓存:0 到64kB,四路组相联,带有可选ECC指令TCM:0 到16MB,带有可选ECC数据TCM:0 到16MB,带有可选ECCCortex-M系列规格对比Cortex-A系列:ARM Cortex-A 系列是一系列用于复杂操作系统和用户应用程序的应用程序处理器。
Cortex-M3_技术介绍
• ARM微处理器及其发展
ARM微处理器的几个系列:
ARM7系列、ARM9系列、 ARM9E系列、 ARM10E系列、 SecurCore系列、Intel的XScale系列、 Cortex系列。
ARM体系结构的发展:
(1)V1~V3版本; (2)V4T版本; (3)V5版本; (4)V6版本; (5)V7版本。
Avatar Semiconductor Co.
选择ARM处理器,ARM7还是 Cortex-M3
Avatar Semiconductor Co.
决策:
那么,你应该如何做出何种选择呢? 如果成本是最主要考虑因素,您应该选择Cortex-M3; 如果在低成本的情况下寻求更好的性能和改进功耗,您应 该考虑选用Cortex-M3;特别是如果你的应用是汽车和无 线领域,可以采用Cortex-M3,这也正是Coretex-M3的主 要定位市场。 由于Cortex-M3内核中的多种集成元素以及采Thumb-2 指令集,其开发和调试比ARM7TDMI要简单快捷。 TI的Stellaris系列微控制器如今包含了160多种可以向全 球供货的MCU,包括售价低至1美元的MCU。这个价格一 般只有8bit MCU才能达到。
Avatar Semiconductor Co.
Cortex-M3内核简介一:哈佛架构
Cortex-M3 中央内核基于哈佛架构,指令 和数据各使用一条总线(右图中所示)。与 Cortex-M3不同,ARM7 系列处理器使用冯· 诺 依曼(Von Neumann)架构,指令和数据共用 信号总线以及存储器。由于指令和数据可以从 存储器中同时读取,所以 Cortex-M3 处理器 对多个操作并行执行,加快了应用程序的执行 速度。
浅谈ARM Cortex系列处理器之区别
浅谈ARM Cortex系列处理器之区别市面上ARM Cortex系列包括3个系列,包括ARM Cortex-A, ARM Cortex-R, ARM Cortex-M,Z这三种系列,并且每个系列又分多种子版本,每个子版本都有各自的特点。
很好的为设计人员提供非常广泛的具有可扩展性的性能选项,从而有机会在多种选项中选择最适合自身应用的内核,而非千篇一律的采用同一方案。
其中,1,Cortex-A—面向性能密集型系统的应用处理器内核2, Cortex-R—面向实时应用的高性能内核3, Cortex-M—面向各类嵌入式应用的微控制器内核Cortex-A处理器为利用操作系统(例如Linux或者Android ,IOS)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。
早期的Cortex-A系列处理器(A5、A7、A8、A9、A12、A15和A17)基于ARMv7-A架构。
每种内核都共享相同的功能集,例如NEON媒体处理引擎、Trustzone安全扩展、单精度和双精度浮点支持、以及对多种指令集(ARM、Thumb-2、Thumb、Jazelle 和DSP)的支持。
与此同时,这些处理器也具有极高的设计灵活性,能够提供所需的最佳性能和预期的功效。
介绍过Cortex-A,下面介绍Cortex-R系列——衍生产品中体积最小的ARM处理器,这一点也最不为人所知。
Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
Cortex-R系列在某些方面与高端微控制器(MCU)类似,但是,针对的是比通常使用标准MCU的系统还要大型的系统。
例如,Cortex-R4就非常适合汽车应用。
Cortex-R4主频可以高达600MHz(具有2.45DMIPS/MHz),配有8级流水线,具有双发送、预取和分支预测功能、以及低延迟中断系统,可以中断多周期操作而快速进入中断服务程序。
ARM Cortex-M3处理器简介
ARM 白皮书
——ARM Cortex-M3 处理器简介 Shyam Sadasivan October 2006
广州周立功单片机发展有限公司 地址:广州市天河北路 689 号光大银行大厦 15 楼 F1
ARM 白皮书
目录
目录
第 1 章 简介 ....................................................................................................................................1 1.1 通过提高效率来提高性能................................................................................................1 1.2 快速有效的应用程序开发源于简易的使用方法 ............................................................1 1.3 针对敏感市场降低成本和功耗........................................................................................1 1.4 集成的调试和跟踪功能推进上市的步伐........................................................................2 1.5 从ARM7TM升级为Cortex-M3 可获取更佳的性能和功效 ..............................................2
第 5 章 针对无线网络实现了更低的功耗...................................................................................15 5.1 时钟门控和内置睡眠模式可以降低功耗......................................................................15 5.2 通过灵活的工作方式来增加处于睡眠模式的时间 ......................................................15 5.3 真正实现省电..................................................................................................................16
第2章cortex-M3内核
Cortex-M3 处理器
集成了内核和高级系统外设的分级处理器 Cortex-M3 内核 哈佛体系结构 拥有分支预测功能的三级流水线 Thumb®-2 指令集和传统的 Thumb指令集 带有 硬件除法和 单信号周期乘法的ALU Cortex-M3 处理器 Cortex-M3 内核 可配置的中断控制器 总线矩阵 先进的调试组件 可选择的 MPU & ETM
(irq) 用于通用中断处理
管理 (svc)
中止 (abt) 未定义 (und)
操作系统保护代码
用于支持虚拟内存和/或 存储器保护 支持硬件协处理器的软件 仿真
系统复位和软件中断响应时进入 此模式
在ARM7TDMI没有大用处 未定义指令异常响应时进入此模 式
特权模式
处理器模式 用户 系统 (usr) (sys) 系统 快中断 (sys) 快中断 中断 (fiq) (fiq) (irq) 说明 正常程序工作模式 用于支持操作系统的特权 任务等 备注 不能直接切换到其它模式
未定义指令异常响应时进入此模 式
异常模式
处理器模式 用户 (usr) 系统 快中断 (sys) (fiq) 说明 正常程序工作模式 备注 不能直接切换到其它模式
中断 (irq) 快中断 (fiq) 管理 中断(svc) (irq) 管理 中止 (svc) (abt) 中止 未定义 (abt) (und) 未定义 (und)
非特权模式:
对有些资源的访问受到限制或不允许访问
处理器模式
处理器模式 用户 (usr) 系统 (sys) 快中断 中断 (fiq) 说明 正常程序工作模式 用于支持操作系统的特权 任务等 支持高速数据传输及通道 处理 备注 不能直接切换到其它模式 与用户模式类似,但具有可以直 接切换到其它模式等特权 FIQ异常响应时进入此模式 IRQ异常响应时进入此模式
ARM7 与 Cortex-M3的性能比较
【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
ARM Cortex-M3处理器简介 读后感
读后感:ARM Cortex-M3处理器简介ARM, 读后感, 处理器, 简介首先谈谈我对这个系列先入为主的感觉。
Cortex-M3是ARM7的升级版本。
个人认为:ARM7本身并不是完全针对MCU来设计的,但是众多芯片厂家以ARM7为内核做了很多32位MCU芯片。
例如Atmel和NXP的ARM7系列。
Cortex-M3是真正针对MCU应用来设计的,这一点在功能取舍和性能偏向上得到反映。
那么与ARM7相比较,Cortex-M3有哪些区别和特点呢?加速设计:哈佛结构替代ARM7的冯.诺伊曼结构。
哈佛结构就是指令和数据总线分开。
这样取指令和取数据可以同时进行。
很适合将指令放在片内FLASH,将数据放在片内SRAM的MCU结构。
在ARM7的3级流水线之上增加了分支预测。
减少了程序跳转时流水线被打断的时间消耗。
ALU支持硬件乘法和硬件除法。
数学计算能力增强。
单周期32位乘法。
Bit-Band技术:简单地说,就是增强了位操作性能。
SRAM中有专门的Bit-Band区域,可以按位进行寻址(使用别名地址)。
而且,这样的位操作是原子操作。
这在实现互斥功能时有用。
一些DSP运算专用的位操作指令,比如bit翻转。
节省存储器使用量的技术:位寻址是可以节省bool型变量的存储器使用的。
ARM7的short变量要16位对齐、int变量要32位对齐。
Cortex-M3不用对齐。
这个问题,一般看法是,对齐可以简化设计。
个人认为这个好处有限。
指令集的优化。
现在叫Thumb-2了。
ARM7有两种指令集:ARM和Thumb,两种指令模式可以切换。
个人感觉比较怪。
处理器模式的简化:我们知道ARM7有很多种处理器模式,目的主要应该是支持复杂的操作系统。
Cortex-M3的处理器模式现在有两个:Thread模式和handler模式。
Thread模式相当于用户模式了,有两种访问方式:有特权方式和无特权方式。
结构区别:ARM7是个纯内核,中断控制器和存储器接口是芯片厂家扩展的。
ARMCortex
ARMCortex1. 三级流水线+分支预测ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。
流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。
特别是现代C 语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。
为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
2. 哈佛结构从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。
冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。
这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。
但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。
ARM7TDMI内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。
ARMCortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都采用了哈佛结构。
3. 内置嵌套向量中断控制器(NVIC)针对业界对ARM处理器中断响应的问题,Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。
ARM7 与 Cortex-M3的性能比较
【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
2019转 选择ARM处理器的ARM7还是Cortex M3.doc
转选择ARM处理器的ARM7还是Cortex M31.1 ARM处理器系列每个ARM处理器都有一个特定的指令集架构(ISA),而一个ISA版本又可以有多种处理器实现。
ISA随着嵌入式市场的需求而发展,至今已经有多个版本。
ARM公司规划该发展过程,使得在较早的架构版本上编写的代码也可以在后继版本上执行(即代码的兼容性)。
1.1.1命名规则早期ARM使用如图1.1所示的命名规则来描述一个处理器。
在"ARM"后的字母和数字表明了一个处理器的功能特性。
随着更多特性的增加,字母和数字的组合可能会改变。
注意:命名规则不包含体系结构(ISA)的版本信息。
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x--系列y--存储管理/保护单元z--cache T--Thumb 16位译码器D--JTAG调试器M--快速乘法器I--嵌入式跟踪宏单元E--增强指令(基于TDMI)J--Jazelle F--向量浮点单元S--可综合版本图1.1早期ARM命名规则关于ARM命名法则,还有一些附加的要点:?ARM7TDMI之后的所有ARM内核,即使"ARM"标志后没有包含那些字符,也都包括了TDMI功能特性。
?处理器系列是共享相同硬件特性的一组处理器具体实现。
例如,ARM7TDMI、ARM740T和ARM720T都共享相同的系列特性,都属于ARM7系列。
?JTAG是由IEEE 1149.1标准测试访问端口(Standard Test Access Port)和边界扫描结构来描述的。
它是ARM用来发送和接收处理器内核与测试仪器之间调试信息的一系列协议。
?嵌入式ICE宏单元(EmbeddedICE macrocell)是建立在处理器内部用来设置断点和观察点的调试硬件。
?可综合的--意味着处理器内核是以源代码形式提供的,这种源代码形式又可以被编译成一种易于EDA工具使用的形式。
Cortex-M3的优势
ARM Cortex-M3相比于ARM其他系列微控制器,具有以下优势或特点:1. 三级流水线+分支预测ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。
流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。
特别是现代C语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。
为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
2. 哈佛结构从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。
冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。
这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。
但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。
ARM7TDMI内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。
ARMCortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都采用了哈佛结构。
ARM_CortexM3内核结构
ARM Cortex-M3 内核结构2.1ARM Cortex-M3 处理器简介2、1、1 概述ARM公司成立于上个世纪九十年代初,致力于处理器内核研究,ARM 即 Advanced RISC Machines 的缩写,ARM公司本身不生产芯片,只设计内核,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
这种运行模式运营的成果受到全球半导公司以及用户的青睐。
目前ARM体系结构的处理器内核有:ARM7TDMI、ARM9TDMI、ARM10TDMI、ARM11以及Cortex等。
2005年ARM推出的ARM Cortex系列内核,分别为:A系列、R系列与M系列,其中A系列就是针对可以运行复杂操作系统(Linux、Windows CE、Symbian 等)的处理器;R系列就是主要针对处理实时性要求较高的处理器(汽车电子、网络、影像系统);M系列又叫微控制器,对开发费用敏感,对性能要求较高的场合。
Cortex-M系列目前的产品有M0、M1、M3,其中M1用在FPGA中。
Cortex-M系列对微控制器与低成本应用提供优化,具有低成本、低功耗与高性能的特点,能够满足微控制器设计师进行创新设计的需求。
其中,ARM Cortex-M3处理器的性能就是ARM7的两倍,而功耗却只有ARM7的1/3,适用于众多高性能、极其低成本需求的嵌入式应用,如微控制器、汽车系统、大型家用电器、网络装置等,ARM Cortex-M3提供了32位微控制器市场前所未有的优势。
Cortex-M3内核,内部的数据路径为32位,寄存器为32位,存储器接口也就是32位。
Cortex-M3采用了哈佛结构,拥有独立的指令总线与数据总线,可以让取指与数据访问分开进行。
Cortex-M3还提供一个可选的MPU,对存储器进行保护,而且在需要的情况下也可以使用外部的cache。
另外在Cortex-M3中, 存储器支持小端模式与大端存储格式。
Cortex-M3内部还附赠了很多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。
arm内核系列比较.
arm内核系列比较ARM2009-06-1421:38:37阅读345评论0字号:大中小器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。
ARM处理器是最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。
而且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。
从图2给出了常见的ARM处理器的架构和支持的操作系统。
目前在业内广为人知的ARM处理器主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必要了解一下最新的ARM11和ARM Cotex系列处理器。
图2ARM体系结构ARM7系列ARM7TDMI是ARM7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb指令集和EmbeddedICE观察点硬件。
ARM7TDMI属于ARM v4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz性能。
不过ARM7TDMI没有MMU(Memory Management Unit和Cache,所以仅支持那些不需要MMU和Cahce的小型实时操作系统,如VxWorks、uC/OS-II和uLinux等RTOS。
其他的ARM7系列内核还有ARM720T和ARM7E-S等。
ARM9系列ARM9TDMI相比ARM7TDMI,将流水级数提高到5级从而增加了处理器的时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能,平均可达1.1DMIPs/Mhz,但是ARM9TDMI仍属于ARM v4T体系结构。
在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T增加了MPU(Memory Protect Unit和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9(方便进行CPU实时trace,从而更好的支持象Linux和WinCE这样的多线程、多任务操作系统。
微处理器8CortexM3微处理器
Cortex-M3内核概述
三级流水线结构的指令执行顺序
…… 指令1 指令2 指令3 指令4 ……
程序存储器
周期1 周期2
取指 译码
周期3
执行
周期4 周期5 周期6
处理器执行一条指 令的三个阶段
取指 译码 执行
取指 译码 执行
取指 译码 执行
4 在第4个周期,指令1执行完成,指令2和指令 3流水线推进一级,同时开始指令4的取指处理。
与ARM7TDMI相比, 比Thumb指令每兆赫的 效率提高70%,比ARM 指令提高35%
Cortex-M3内核概述
优化指令系统
120
100
80
60
40
Thumb-2
20
ARM
Thumb
0
相关测试的代码大小
由 于 Tumb-2 指 令 是 Thumb 指 令 的 扩 展 , 16位和32位指令共存于 同一模式下,复杂性大 幅下降,代码密度和性 能均得到提高。
Cortex-M3的内部寄存器
特殊功能寄存器
异常屏蔽寄存器( FAULTMASK )
异常屏蔽寄存器(只有1位)
FAULTMASK 1
除NMI外所有异常 被屏蔽
0
异常能正常响应
相当于异常总开关, 为1,除NMI外所有异常被屏蔽; 为0,异常能正常响应。
Cortex-M3的内部寄存器
特殊功能寄存器
BASEPRI 定义屏蔽优先级的阀值
0.95 DMIPS/MHz
0.28 mW/MHz 0.62 mm2(仅内核)
Cortex-M3 ARMv7-M(哈佛)
Thumb/Thumb-2 3级+分支预测 240个物理中断 12个时钟 (末尾连锁仅6个) 内置 8段存储器保护单元 2—12个时钟周期
Cortex-M3 VS ARM7
ARM7与Cortex-M3比较要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI 内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。
在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。
和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。
迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。
这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。
众多的制造商出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。
在许多方面,ARM7TDMI都可以称得上是嵌入式领域的实干家。
2.两者差异除了使用哈佛结构,Cortex-M3还具有其它显著的优点:具有更小的基础内核,价格更低,速度更快。
与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。
Cortex-M3还集成了睡眠模式和可选的完整的八区域存储器保护单元。
它采用THUMB-2指令集,最大限度降低了汇编器使用率。
3.指令集ARM7可以使用ARM和Thumb两种指令集,而Cortex-M3只支持最新的Thumb-2指令集。
ARM Cortex-M3处理器内核
• 6 嵌套向量中断控制器(NVIC) 嵌套向量中断控制器( ) – 嵌套向量中断控制器(NVIC):
• 提供低-等待延时异常和中断处理 • 控制电源管理 • 执行系统控制寄存器
– NVIC支持多达240个可动态配置优先级的中断,每个中 断具有多达256个优先级。NVIC和处理器内核接口紧密 耦合,这使能了低等待延时中断的处理和迟到达中断的 有效处理。 NVIC保留了堆栈(嵌套)中断的内容来使能 中断的尾部链接。 – 你只可以完全访问特权模式的NVIC,但如果你使能配置 控制寄存器,你就可以在用户模式中挂起中断。任何其 它的用户模式访问都会引起总线错误。 – 所有NVIC寄存器可使用字节、半字和字来访问,除非特 别说明。 – 所有NVIC寄存器和系统调试寄存器都是小端配置,不管 处理器的端点状态如何。
• 跟踪端口接口单元(TPIU ) 跟踪端口接口单元(
– ITM, DWT 和ETM 的跟踪数据都在TPIU 处汇聚。TPIU 用于把这 些跟踪数据格式化并输出到片外,以供跟踪端口分析仪之类的设 备接收使用。
功能描述
• 1 串行线和 串行线和JTAG调试 调试 – Luminary Micro使用与ARM CoreSight™ 兼容的串行线 JTAG调试端口(SWJ-DP)接口来替代 ARM SW-DP 和JTAG-DP。 – SWJ-DP接口将SWD和JTAG调试端口组合到一个模块 SWJ-DP SWD JTAG 中。 • 2 嵌入式跟踪宏单元 (ETM) ) – ETM没有在 Stellaris®器件中执行。
• 中断
– 软件可在7个异常(系统处理程序)以及40个中断上设 置8个优先级。 – 把优先级划分为占先优先级和次要优先级两组(抢占 式优先级和响应优先级 )。每个中断源都需要被指定 这两种优先级,就需要有相应的寄存器位记录每个中 断的优先级;在Cortex-M3中定义了8个比特位用于设 置中断源的优先级 。
第1章 ARM与Cortex-M3-0
第1章ARM与Cortex-M3/M01.1 ARM Cortex-M3/M0处理器初探单片机市场的规模与日俱增,,世界各地的半导体公司纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。
业界内部可谓是百花齐放,热闹非凡,好戏不断。
各行各业对单片机能力的要求也越来越苛刻——处理器必须在不怎么增加主频和功耗的条件下干更多的活儿。
另一方面,处理器之间如欲支持SPI,I2C,USB,以太网,CAN,Zigbee传等通信,就必须在片上塞进更多的外设。
软件方面的要求也越来越高——更高的运算速度,严格的实时响应,更多的功能模块,更炫的图形界面,……所有这些要求单片机都得照单全收。
在这个大环境下,ARM Cortex-M3/M0处理器为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术,它的门数更低,性能却更强。
许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在Cortex-M3上快速,嵌入式处理器市场正在32位化。
比当年8051推动整个业界还有过之而无不及,再次放飞工程师们的梦想,让深埋于心底多年的夙愿梦想成真!Cortex-M3/M0的招牌功夫包括:•性能强劲。
在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。
•功耗低。
延长了电池的寿命这简直就是便携式设备的命门(如无线网络应用)。
•实时性好。
采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。
•代码密度得到很大改善。
一方面力挺大型应用程序,另一方面为低成本设计而省吃俭用。
•使用更方便。
现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。
•低成本的整体解决方案。
让32位系统比和8位/16位的还便宜,低端的Cortex-M3/M0单片机甚至还卖不到1美元。
降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
低成本ARM 32位MCU,开发人员面临的两种选择要使用低成本的 32位微控制器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。
在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。
和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。
迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。
这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。
众多的制造商(据ARM宣称,多达16家)出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。
在许多方面,ARM7TDMI 都可以称得上是嵌入式领域的实干家。
2.两者差异除了使用哈佛结构, Cortex-M3还具有其他显著的优点:具有更小的基础内核,价格更低,速度更快。
与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。
Cortex-M3 还集成了睡眠模式和可选的完整的八区域存储器保护单元。
它采用THUMB-2指令集,最大限度降低了汇编器使用率。
3.指令集ARM7可以使用ARM和Thumb两种指令集,而 Cortex-M3只支持最新的 Thumb-2指令集。
这样设计的优势在于:免去 Thumb和ARM代码的互相切换,对于早期的处理器来说,这种状态切换会降低性能。
Thumb-2指令集的设计是专门面向C语言的,且包括If/Then结构(预测接下来的四条语句的条件执行)、硬件除法以及本地位域操作。
Thumb-2指令集允许用户在C代码层面维护和修改应用程序,C代码部分非常易于重用。
Thumb-2指令集也包含了调用汇编代码的功能:Luminary公司认为没有必要使用任何汇编语言。
综合以上这些优势,新产品的开发将更易于实现,上市时间也大为缩短。
4.中断Cortex-M3的另一个创新在于嵌套向量中断控制器NVIC(Nested Vector InterruptController)。
相对于ARM7使用的外部中断控制器,Cortex-M3内核中集成了中断控制器,芯片制造厂商可以对其进行配置,提供基本的32个物理中断,具有8层优先级,最高可达到240个物理中断和256个中断优先级。
此类设计是确定的且具有低延迟性,特别适用于汽车应用。
NVIC使用的是基于堆栈的异常模型。
在处理中断时,将程序计数器,程序状态寄存器,链接寄存器和通用寄存器压入堆栈,中断处理完成后,在恢复这些寄存器。
堆栈处理是由硬件完成的,无需用汇编语言创建中断服务程序的堆栈操作。
中断嵌套是可以是实现的。
中断可以改为使用比之前服务程序更高的优先级,而且可以在运行时改变优先级状态。
使用末尾连锁( tail-chaining)连续中断技术只需消耗三个时钟周期,相比于 32个时钟周期的连续压、出堆栈,大大降低了延迟,提高了性能。
如果在更高优先级的中断到来之前, NVIC已经压堆栈了,那就只需要获取一个新的向量地址,就可以为更高优先级的中断服务了。
同样的,NVIC不会用出堆栈的操作来服务新的中断。
这种做法是完全确定的且具有低延迟性。
5.睡眠Cortex-M3的电源管理方案通过NVIC支持Sleep Now, Sleep on Exit (退出最低优先级的ISR) andSLEEPDEEP modes这三种睡眠模式。
为了产生定期的中断时间间隔,NVIC 还集成了系统节拍计时器,这个计时器也可以作为RTOS和调度任务的心跳。
这种做法与先前的ARM架构的不同之处就在于不需要外部时钟。
6.存储器保护单元存储器保护单元是一个可选组建。
选用了这个选项,内存区域就可以与应用程序特定进程按照其他进程所定义的规则联系在一起。
例如,一些内存可以完全被其他进程阻止,而另外一部分内存能对某些进程表现为只读。
还可以禁止进程进入存储器区域。
可靠性,特别是实时性因此得到重大改进。
7.调试对 Cortex-M3 处理器系统进行调试和追踪是通过调试访问端口( Debug Access Port )来实现的。
调试访问端口可以是一个 2针的串行调试端口( Serial Wire Debug Port )或者串行 JTAG调试端口( Serial Wire JTAG Debug Port )。
通过 Flash片、断点单元、数据观察点、跟踪单元,以及可选的嵌入式跟踪宏单元( Embedded Trace Macrocell )和指令跟踪宏单元( Instrumentation Trace Macrocell )等一系列功能相结合,在内核部分就可以采用多种类型的调试方法及监控函数。
例如,可以设置断点、观察点、定义缺省条件或执行调试请求、监控停止操作或继续操作。
所有的这些功能在 ARM架构的产品中已经实现,只是 Cortex-M3 将这些功能整合起来,方便开发人员使用。
8.应用范围虽然 ARM7内核并没有像Cortex系列那样集成很多外设,但是大量的基于ARM7的器件,从通用MCU,到面向应用的MCU、SOC甚至是Actel公司基于ARM7内核的FPGA,都拥有更为众多的外围设备。
大约有150种MCU是基于ARM7内核的(根据不同的统计方法,这个数字可能会更高)。
你会发现 ARM7都可以实现几乎所有的嵌入式应用,或采用定制的方式来满足需求。
基于标准内核,芯片厂商可以加入不同类型、大小的存储器和其他外围设备,比如串行接口、总线控制器、存储器控制器和图形单元,并针对工业、汽车或者其他要求苛刻的领域,使用不同的芯片封装,提供不同温度范围的芯片版本。
芯片厂商也可能绑定特定的软件,比如TCP/IP协议栈或面向特定应用的软件。
例如, STMicroelectronics公司的STR7产品线有三个主要系列共45个成员,具有不同的封装和存储器。
每一个系列都针对特定的应用领域,具有不同外设集合。
比如STR730家族是专为工业和汽车应用设计的,因此具有可扩展的温度范围,包括多个I/O口和3个CAN 总线接口。
STR710则是面向于消费市场以及高端的工业应用,它具有多个通信接口,比如USB, CAN, ISO7816以及4个UART,还有大容量的存储器和一个外部存储器接口。
芯片厂商也可以选择利于开发人员开发产品的措施,比如采用 ARM的嵌入式跟踪宏单元 ETM( Embedded Trace Macrocell ),并提供开发和调试工具。
截止至这篇文章写作之时, Luminary、STMicroelectronics这两家公司已经有基于Cortex-M3的芯片,其他公司如NXP、Atmel也宣布生产该类产品。
(Luminary已经被TI收购)9.配套工具ARM7应用已经非常普及,它已经有非常多第三方的开发和调试工具支持。
在ARM的网站上有超过130家工具公司名称列表。
大多数厂商提供了基本的开发板,并提供下载程序的接口、调试工具以及外部设备的驱动,包括 LED灯的显示状态或者屏幕上的单行显示。
通常,开发套件包括编译器、一些调试软件以及开发板。
更为高级的套件包括第三方的集成开发环境(IDE),IDE中包含编译器、链接器、调试器、编辑器和其他工具,也可能包括仿真硬件,比如说JTAG仿真器。
内电路仿真器( ICE)是最早的也是最有用的调试工具形式之一,很多厂商都在ARM7上提供了这一接口。
软件开发工具范围很广:从建模到可视化设计,到编译器。
现在很多的产品也用到实时操作系统( RTOS)和中间件,以加速开发进程、降低开发难度。
另外,还有一个非常重要的因素,很多的开发人员对 ARM7的开发经验非常丰富。
虽然现在已经有新兴的 Cortex-M3 工具,但显然还是有一定的差距。
不过, Cortex-M3的集成调试性能使调试变得简单且有效,且无需用到内电路仿真器ICE。
10.决策那么,你应该如何做出何种选择呢?如果成本是最主要考虑因素,您应该选择Cortex-M3;如果在低成本的情况下寻求更好的性能和改进功耗,您最好考虑选用Cortex-M3;特别是如果你的应用是汽车和无线领域,最好也采用Cortex-M3,这正是Coretex-M3的主要定位市场。
由于 Cortex-M3内核中的多种集成元素以及采用Thumb-2指令集,其开发和调试比ARM7TDMI要简单快捷。
然而,由于重定义 ARM7TDMI的应用不是一件困难的事,特别是在使用了RTOS的情况下。
保守者可能会沿用ARM7TDMI内核的芯片,并避免使用那些会使重定义变得复杂的功能。
11.IAR YellowSuite for ARMIAR YellowSuite for ARM是一整套支持ARM的开发工具整体解决方案,包括:visualSTATE状态机建模工具、IAR Embedded Workbench集成开发环境、PowerPac RTOS和中间件、仿真器等。
不管选用 ARM7还是Cortex-M3,IAR的开发工具都能支持。
visualSTATE状态机建模工具visualSTATE是一套精致、易用的开发工具,包含图形设计器、测试工具包,代码生成器和文档生成器,用于设计、测试和实现基于状态图设计的嵌入式应用。
基于统一建模语言(UML)状态机理论的图形化模型设计;对设计模型进行规范性验证,检查系统的逻辑一致性,鉴别出系统设计漏洞或错误;设计过程的早期阶段,甚至在硬件设计尚未完成之前,就可以使用测试工具来确保应用能按照预想方式运行;自动代码生成功能可以生成极为紧凑的 C/C++代码,100%与设计保持一致;自动文档生成功能提供了详尽的信息;与 IAR Embedded Workbench 无缝集成,提供多种微控制器和评估板的现成示例代码;通过 CSPYLink或RealLink对目标器件进行综合的图形化状态机调试;支持多种硬件调试接口,例如 J-Link、通用JTAG仿真器、NEXUS仿真器等IAR Embedded Workbench for ARM集成开发环境IAR Embedded Workbench for ARM集成开发环境(简称EWARM)是一套支持 ARM所有处理器的集成开发环境,包含项目管理器、编辑器、C/C++ 编译器、汇编器、连接器和调试器。