在嵌入式开发设计中,对客户来说用什么技术、芯片不是主要的。主要的是能否满足要求。高性价比、开发门槛底、易于使用才是硬道理。cortex-m3是一个32位处理器内核。从理论上来说性价比高。
三级流水线+分支预测
arm cortex-m3与arm7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。特别是现代c语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
arm cortex-m3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
哈佛结构
armcortex-m3采用哈佛结构,并选择了适合于微控制器应用的三级流水线,但增加了分支预测功能。
从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯。诺伊曼结构)。冯。诺伊曼结构的机器指令、数据和i/o共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。这在传统的非流水线处理器(如mcs51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。arm7tdmi内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。arm cortex-m3、arm966e、arm926ej、arm1136jf等内核都采用了哈佛结构。
内置嵌套向量中断控制器(nvic)
针对业界对arm处理器中断响应的问题,cortex-m3首次在内核上集成了嵌套向量中断控制器(nvic)。cortex-m3的中断延迟只有12个时钟周期(arm7需要24-42个周期);cortex-m3还使用尾链技术,使得背靠背(back-to-back)中断的响应只需要6个时钟周期(arm7需要大于30个周期)。以stm32运行在75mhz为例,中断延迟只有80ns-160ns。另外,cortex-m3采用了基于栈的异常模式,使得芯片初始化的封装更为简单。
arm7tdmi内核不带中断控制器,具体mcu的中断控制器是各芯片厂商自己加入的,这使得各厂商的arm7 mcu中断控制部分都不一样,给用户使用及程序移植带来了很大麻烦。cortex-m3内核集成nvic,各厂商生产的基于cortex-m3内核的mcu都具有统一的中断控制器,对用户使用各种cortex-m3 mcu,特别是中断编程带来了很大的便利。
支持位绑定操作
以前的arm内核不支持位操作,当需要对一个变量或端口的某一位操作时,先要用逻辑与/或指令屏蔽其他的位,使位操作需要较多的指令和时钟周期。arm cortex-m3采用了一种特殊的方法——位绑定:把一个地址单元的32位变量中的每一位,通过一个简单的地址转换算法,映射到另一个地址空间,每一位占用一个地址,对此地址空间的操作,只有数据的最低一位是有效的,其余高31位的值被忽略。相当于把一个“横”的32位字给“竖”起来。这样对新的映射空间操作时,就可以不用屏蔽操作,优化了ram和i/o寄存器的读写,提高了位操作的速度。
这种方法粗看起来好像损失了很多地址空间,其实对于32位的arm处理器而言,总共可以寻址4gb的空间,而对于一个mcu来说,一般只用到几百kb的空间。所以这种处理方法丝毫不会影响一个mcu的正常使用,又大大简化了处理器的设计,可以说是一种良策。
支持串行调试(swd)
arm处理器一般都使用jtag调试接口,使得仿真、调试工具统一而廉价,方便了用户开发。但jtag调试接口至少要占用芯片的5-6个引脚,这对于一些引脚较少的mcu来说,有时会对仿真调试和i/o使用带来麻烦。
arm cortex-m3在保持原来jtag调试接口的基础上,还支持串行调试(swd)。使用swd时,只占用2个引脚,就可以进行所有的仿真和调试,节省了调试用引脚,用户就可以使用更多的引脚。
另外,cortex-m3支持8个硬件断点(arm7、arm9只支持2个硬件断点),可以减少断点调试时对代码的影响,保证仿真、调试的时序准确性。
内核支持低功耗模式
arm内核已经是一个高性能、低功耗的内核,但arm7、arm9等内核本身只有运行/停止模式,没有其他模式。各芯片厂商只能在内核基础上,对各自加入的外设定义各种低功耗模式。cortex-m3加入了类似于8位处理器的内核低功耗模式,支持3种功耗管理模式:通过一条指令立即睡眠;异常/中断退出时睡眠;深度睡眠。使整个芯片的功耗控制更为有效。以stm32为例,其ram和寄存器状态保持的停机模式耗电仅为14ua,从此状态的启动时间仅为7us。
cortex-m3的运行功耗(active mode)也很低。以stm32系列微控制器为例,其典型功耗约为500ua/mhz,也只是目前业界超低功耗单片机msp430系列(约为250ua/mhz)的2倍。但msp430是16位处理器,而stm32是32位处理器。
高效的thumb2 16/32位混合指令集
arm7、arm9等内核使用不同的处理器状态分别执行32位的arm指令和16位的thumb指令,使用状态切换指令完成arm状态和thumb状态的切换。cortex-m3使用更高效的thumb2指令集,它是一种16/32位混合编码指令,兼容thumb指令。对于一个应用程序编译生成的thumb2代码,以接近thumb编码的代码尺寸,达到了接近arm编码的运行性能。thumb2是一种紧凑、高效的新一代指令集。
thumb2指令集是面向高级语言的指令集,适合于c语言编程,由编译器生成目标代码,不建议直接使用thumb2汇编语言编程。
32位硬件除法和单周期乘法
以往的arm处理器没有除法指令,在某些除法密集型应用中性能不尽如意。cortex-m3加入了32位除法指令,弥补了这一缺陷,使cortex-m3可以和其他通用处理器一样,完成各种数学运算操作。
cortex-m3还改进了乘法运算部件,32结果的32位x32位乘法操作只要一个时钟周期。这一性能使得使用cortex-m3来进行乘、乘加运算时,已逼近dsp的性能,因此特别适合一些需要简单dsp的应用领域,如电机控制、数字滤波、fft变换等。
需要指出的是,32位的乘/除运算,对于一个8位机而言,已经是一段比较复杂的程序,而对于32位的cortex-m3而言,只需一句指令。因此,即使二者工作主频一样,实际运行性能也不是一个数量级的。
支持存储器非对齐访问
基于cortex-m3的mcu,为提高性能,其内部存储器(flash、ram)都是32位编址的。这样当常量、变量是字节或半字类型时,如果处理器只支持对齐访问(以往的处理器都是如此),那么这些字节/半字类型的数据也必须被分配、占用一个32位的存储单元,这样就浪费了部分存储空间。
cortex-m3支持存储器的非对齐访问,它可以访问存储在一个32位单元中的字节/半字类型数据,这样4个字节类型(或2个半字类型)数据可以被分配在一个32位的单元中,提高了存储器的利用率。对于一般的应用程序而言,这种技术可以节省约25%的sram使用量,从而可以选择sram较小、更廉价的mcu。
定义了统一的存储器映射
arm7、arm9等内核没有定义存储器映射,各芯片厂商自己定义了存储器映射,这使得各厂商的mcu存储器映射都不完全一致,给用户学习使用及程序移植带来了麻烦。
cortex-m3内核定义了统一的存储器映射,各厂商生产的基于cortex-m3内核的微控制器芯片都具有一致的存储器映射,对用户使用各种基于cortex-m3的 mcu以及代码在不同mcu上的移植带来了很大的便利。
嵌入式开发设计服务商朗锐智科(www.lrist.com)认为基于cortex-m3的微控制器相比于arm7tdmi的微控制器,在相同的工作时钟频率下:平均性能要高约30%;代码尺寸要比arm编码小约30%;价格一般也更低。以stm32系列cortex-m3微控制为例,工作频率可达75mhz,而价格比str71x系列arm7tdmi芯片要低约30%,具有极高的性价比。目前已有的芯片的功能太少。cortex m系列在处理能力基本与arm7同,主要是成本低,功耗小。
来源:朗锐智科
抽象推理是机器通向人类智能的最终障碍
嵌入式FPGA与ARM总线连接支持整体处理解决方案
手语识别:解锁语言交流的新时代
防水效果好的蓝牙耳机有哪些?适合运动戴的蓝牙耳机推荐
基于SAR系统的无人机定位导航系统的设计
嵌入式开发 ARM Cortex-M3处理器具有怎样的优势
新能源汽车换电模式频获政策利好,成为新的一轮风口
智慧路灯将取代传统路灯而为城市提供照明需求
大公司专利频频曝光 AR/VR新物种不断涌现 预示未来更多可能性
海信全色激光电视L9G获评2021年“激光超短焦产品之王”
火绒企业版2.0正式上线 聚焦企业终端安全
百度:安全问题或为自动驾驶汽车大麻烦 自动驾驶难以成为现实
磁棒电感线圈的绕法及注意事项
电子商务中佳润物联网技术会如何
华为P10手机被曝光,或今年春季发布
单片机与嵌入式系统的区别与联系
清理PCB线路板技巧分享
如果有精确的时间基准,为什么还需要锁相环呢?
Wi-Fi运动检测能否成为智能家居的突破口
本田或将在2040年将汽车销售全面转为电动汽车