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

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的問世。


分享到:


相關文章: