cortex处理器排行榜,cortex系列处理器
chanong
|ARM Cortex-M 处理器系列已开发至今(2016 年),包括五代:CM0/CM0+、CM1、CM3、CM4 和CM7。
1.Cortex-M兼容特性
为了实现Cortex-M 软件重用,ARM 设计的Cortex-M 处理器具有处理器的向后兼容性和软件二进制文件的向上兼容性。
首先什么是二进制兼容性,它主要是软件的一种功能,是指即使某个软件(程序)所依赖的头文件和库文件被更新,该软件的功能也不会受到影响。方法。为了实现二进制兼容性,升级时软件所依赖的任何头文件或库文件都必须是二进制兼容的。
什么是向上兼容? 向上兼容又称为前向兼容,是指在较低版本处理器上编译的软件可以在较高版本处理器上运行。
与向上兼容性相反的另一个概念称为向后兼容性。向后兼容性,也称为向后兼容,是指较高版本的处理器可以正确运行在较低版本的处理器上编译的软件。
所以,实际上,无论是向前兼容还是向后兼容都可以用来描述Cortex-M的功能,只是描述的主题不同。我们可以说Cortex-M程序是向上兼容的,或者说Cortex-M处理器是兼容的。向后兼容。
此特定于Cortex-M 处理器的兼容性功能是:
从处理器的角度来看,CM0指令集和功能模块最精简,CM7指令集和功能模块最丰富。有些功能在较低版本的处理器中具有,但在较高版本的处理器中不可用。
从软件角度来看:CMSIS提供的头文件和函数是二进制向上兼容的。例如,某些CM0 软件应用程序使用core_cm0.h 头文件,如果您希望该应用程序在CM7 上运行,则不需要使用它。再次编译core_cm7.h(当然,使用新头文件编译的应用程序是正常的)。
2. Cortex-M功能模块的差异
CM1主要用于FPGA产品,因此以下比较忽略CM1。由于我们知道CM处理器是向后兼容的,所以我们随着版本的升高逐渐增加CM功能模块的数量,并逐渐从最低版本开始进行比较。
2.1 CM0 与CM0+
我们将从最基本的CM0 模块开始,讨论CM0 和CM0+。
ARMv6-M CPU内核:ARM于2007年发布的内核。冯·诺依曼架构的三级流水线支持大部分Thumb 和部分Thumb-2 指令集(总共57 条指令)。此外,它还包括一个返回结果的32 位硬件乘法器。
NVIC嵌套向量中断控制器:用于正常执行模式下的CPU中断管理。最多支持32个外部中断,可为外部中断设置4级抢占优先级(2bit)。
WIC唤醒中断控制器:用于低功耗睡眠模式下的CPU中断管理。
AHB-Lite 总线:32 位AMBA-3 标准高性能系统总线,负责所有闪存和SRAM 指令和数据访问。
调试模块:0~4个硬件断点断点,0~2个数据监控点watchpoint。
DAP调试接口:通过DAP模块支持JTAG和SWD接口。
那么CM0+到底改进了什么?
ARMv6-M CPU核心:流水线改为两级(很多8位MCU都有两级流水线,主要是为了降低功耗)
NVIC Nest 矢量中断控制器:添加了VTOR,一种中断重定向功能。
那么CM0+到底添加了什么?
MPU内存保护单元:提供内存的硬件管理和保护,控制访问权限,最多可以将内存划分为8*8的区域。任何未经授权的内存访问都会导致MemManage 故障。
MTB片上跟踪单元:更好的跟踪和调试用户体验,优化的异常捕获机制有助于更快地识别错误。
高速I/O:高速I/O端口,可在单周期内访问且易于bit-bang(GPIO模拟SPI、IIC协议等)。
2.2 CM0+ 与CM3
前面比较了CM0和CM0+之后,我们再来看看CM3相比CM0+有何增强。
那么CM3到底改进了什么?
ARMv7-M CPU 内核:ARM 于2004 年发布的内核。哈佛架构,3级流水线+分支预测,支持所有Thumb和Thumb-2指令集。内置的32位硬件乘法器可以返回64位结果,并且添加了新的32位硬件除法器。
NVIC嵌套向量中断控制器:最多支持240个外部中断,中断优先级可分组(抢占优先级、响应优先级),8位优先级设置(最多128级抢占优先级(最低2级响应优先级),最多256级响应优先级(无抢占优先级)。
3x AHB-Lite总线:除了原来负责SRAM访问的系统总线外,还增加了两条新的ICode和DCode总线,分别完成对Flash的指令和数据访问。
调试模块:0~8个硬件断点断点、0~4个数据监控点watchpoint。
ITM/ETM跟踪单元:ITM为printf式调试提供更好的支持,ETM提供实时指令和数据跟踪。
那么CM3到底添加了什么?
那么,与CM0+相比,CM3没有添加任何独特的模块,但它没有Fast I/O端口。
2.3 CM3 与CM4
前面比较了CM0+ 和CM3,我们来看看CM4 相对于CM3 的增强。
那么CM4到底改进了什么?
ARMv7E-M CPU 内核:增加了对DSP 相关指令的支持。
那么CM4到底添加了什么?
DSP数字信号处理单元:新增数字信号处理单元,支持单周期16/32位MAC、双16位MAC、8/16位SIMD算法。
FPU浮点单元:添加了符合IEEE-754标准的单精度(浮点型)浮点单元(VFPv4-SP)。
2.4 CM4 与CM7
前面比较了CM3 和CM4,我们来看看CM7 相对于CM4 的增强。
那么CM7到底改进了什么?
ARMv7E-M CPU内核:6级流水线+分支预测。
2x AHB-Lite总线:简化为两条AHB总线,AHB-P外设接口完成原有系统总线功能,AHB-S从接口负责外部总线控制器(如DMA)功能和TCM。接口功能。
MPU内存保护单元:内存最多可分为16*8个区域。
FPU浮点单元:添加了符合IEEE-754标准的新双精度(双型)浮点单元(VFPv5)。
那么CM7中到底会添加哪些内容呢?
I/D-Cache缓存区:通常理解为L1缓存,每个缓存大小范围为4到64KB。
I/D-TCM 紧耦合内存:与处理器核心紧密耦合的RAM,提供类似于缓存的性能,但比缓存更具确定性,最大内存大小为16 MB。
ECC功能:为L1缓存提供纠错和恢复能力,提高系统可靠性。
AXI-M 总线:基于AMBA 4 的64 位AXI 总线。用于支持系统上挂起的L2 内存。








