ARM公司自2004年推出ARMv7核心架構時,摒棄了以往“ARM+數字”這種處理器命名方法(ARM11之前的處理器統稱經典處理器系列),重新啟用Cortex來命名,並將Cortex系列細分為三大類:

Cortex-A系列:面向效能密集型系統的應用處理器核心

Cortex-R系列:面向實時應用的高效能核心

Cortex-M系列:面向各類嵌入式應用的微控制器核心

Cortex-M系列主要是用來取代經典處理器ARM7系列(比如基於ARMv4架構的ARM7TDMI),Cortex-M比ARM7的架構高了3代,效能也有較大提升,所以新的設計推薦使用Cortex-M,關於從ARM7到Cortex-M的移植詳見ARM官網指導 ARM7處理器系列。

ARM7、ARM9、ARM11、ARM-Cortex系列的關係

ARM7、ARM9、ARM11、ARM-Cortex的相同點

ARM7:ARMv4架構,ARM9:ARMv5架構,ARM11:ARMv6架構,ARM-Cortex 系列:ARMv7架構 ARM7沒有MMU(記憶體管理單元),只能叫做MCU(微控制器),不能執行諸如Linux、WinCE等這些現代的多使用者多程序作業系統, 因為執行這些系統需要MMU,才能給每個使用者程序分配程序自己獨立的地址空間 。

ucOS、ucLinux這些精簡實時的RTOS不需要MMU,當然可以在ARM7上執行。 ARM9、ARM11,是嵌入式CPU(處理器),帶有MMU,可以執行諸如Linux等多使用者多程序的作業系統,應用場合也不同於ARM7。

到了ARMv7架構的時候開始以Cortex來命名,並分成Cortex-A、Cortex-R、Cortex-M三個系列。 三大系列分工明確:“A”系列面向尖端的基於虛擬記憶體的作業系統和使用者應用; “R”系列針對實時系統; “M”系列對微控制器。

簡單的說Cortex-A系列是用於移動領域的CPU,Cortex-R和Cortex-M系列是用於實時控制領域的MCU。 所以看上去ARM7跟Cortex-M很像,因為他們都是MCU,但確是不同代不同架構的MCU(Cortex-M比ARM7高了三代!),所以效能也有很大的差距。此外,Cortex-M系列還細分為M0、M3、M4和超低功耗的M0+,使用者依據成本、效能、功耗等因素來選擇晶片。

ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的區別

arm系列從arm11開始,以後的就命名為cortex,並且效能上大幅度提升。

從cortex開始,分為三個系列,a系列,r系列,m系列。

m系列與arm7相似,不能跑作業系統(只能跑ucos2),偏向於控制方面,說白了就是一個高階的微控制器。

a系列主要應用在人機互動要求較高的場合,比如pda,手機,平板電腦等。a系列類似於cpu,與arm9和arm11相對應,都是可以跑草錯系統的。linux等。

r系列,是實時控制。主要應用在對實時性要求高的場合。

arm7和m3,m4是同一型別。這三個裡面,arm7是最早的arm產品。m3是cortex m系列的過渡品,其低端市場被cortex m0的高階替代, 其高階市場又被cortex m4的低端取代。現在m系列,是m4核心的。典型的晶片是st公司和飛思卡爾公司的。

arm9 和cortex a8 是一個型別的,都是跑作業系統的,現在的高階手機,三星,htc等智慧手機,就是用的cortex a8,cortex a9 核心的晶片作為cpu。

(1)ARM7,ARM9屬於v4T或v5E架構

(2)ARM11屬於v6架構

(3)Contex屬於v7架構

ARM7,ARM9的區別在於是否有MMU(儲存器管理單元)或MPU(儲存器保護單元)架構上v5E相比v4T則是在於v5E新加入的增強型DSP(數字訊號處理)指令,v4T則是Thumb指令集的加入,v6架構則是開始支援SIMD以及Thumb2的問世。