比较项目 | ARM7 | Cortex-M3 |
架构 | ARMv4T(冯诺依曼)
指令和数据总线共用,会出现瓶颈 | ARMv7-M(哈佛)
指令和数据总线分开,无瓶颈 |
指令集 | 32位ARM指令+16位Thumb指令
两套指令之间需要进行状态切换 | Thumb/Thumb-2指令集 16位和32位
指令可直接混写,无需状态切换 |
流水线 | 3级流水线 若出现转移则需要刷新流水线,损失惨重 | 3级流水线+分支预测 出现转移时流水线无需刷新,几乎无损失 |
性能 | 0.95DMIPS/MHz(ARM模式) | 1.25DMIPS/MHz |
功耗 | 0.28mW/MHz | 0.19mW/MHz |
低功耗模式 | 无 | 内置睡眠模式 |
面积 | 0.62mm2(仅内核) | 0.86mm2(内核+外设) |
中断 | 普通中断IRQ和快速中断FIQ太少,大量外设不得不复用中断 | 不可屏蔽中断NMI+1-240个物理中断
每个外设都可以独占一个中断,效率高 |
中断延迟 | 24-42个时钟周期,缓慢 | 12个时钟周期,最快只需6个 |
中断压栈 | 软件手工压栈,代码长且效率低 | 硬件自动压栈,无需代码且效率高 |
存储器保护 | 无 | 8段存储器保护单元(MPU) |
内核寄存器 | 寄存器分为多组、结构复杂、占核面积多 | 寄存器不分组(SP除外),结构简单 |
工作模式 | 7种工作模式,比较复杂 | 只有线程模式和处理模式两种,简单 |
乘除法指令 | 多周期乘法指令,无除法指令 | 单周期乘法指令,2-12周期除法指令 |
位操作 | 无 访问外设寄存器需分“读-改-写”3步走 | 先进的Bit-band位操作技术,可直接访问外设寄存器的某个值 |
系统节拍定时 | 无 | 内置系统节拍定时器,有利于操作系统移植 |