比較項目 |
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位操作技術,可直接訪問外設寄存器的某個值 |
系統節拍定時 |
無 |
內置系統節拍定時器,有利于操作系統移植 |