加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

對(duì)比Cortex-M各處理器功能模塊

2020/02/01
267
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

ARM Cortex-M 處理器家族發(fā)展至今(2016),已有 5 代產(chǎn)品,分別是 CM0/CM0+、CM1、CM3、CM4、CM7。

1.Cortex-M 兼容特性

為了能做到 Cortex-M 軟件重用,ARM 公司在設(shè)計(jì) Cortex-M 處理器時(shí)為其賦予了處理器向下兼容、軟件二進(jìn)制向上兼容特性。

  

首先看什么是二進(jìn)制兼容,這個(gè)特性主要是針對(duì)軟件而言,這里指的是當(dāng)某軟件(程序)依賴的頭文件或庫(kù)文件分別升級(jí)時(shí),軟件功能不受影響。要做到二進(jìn)制兼容,被軟件所依賴的頭文件或庫(kù)文件升級(jí)時(shí)必須是二進(jìn)制兼容的。

  

那么什么又是向上兼容,向上兼容又叫向前兼容,指的是在較低版本處理器上編譯的軟件可以在較高版本處理器上執(zhí)行。

  

跟向上兼容相對(duì)的另一個(gè)概念叫向下兼容,向下兼容又叫向后兼容,指的是較高版本處理器可以正確運(yùn)行在較低版本處理器上編譯的軟件。

  

所以其實(shí)既可以用向上兼容,也可以用向下兼容來(lái)形容 Cortex-M 特性,只不過描述的主語(yǔ)不一樣,我們可以說(shuō) Cortex-M 程序是向上兼容的,也可以說(shuō) Cortex-M 處理器是向下兼容的。

  

具體到 Cortex-M 處理器時(shí),這個(gè)兼容特性表現(xiàn)為:

從處理器角度看:CM0 指令集和功能模塊是最精簡(jiǎn)的,CM7 指令集和功能模塊是最豐富的。不存在低版本處理器上存在的特性是高版本處理器所沒有的。

從軟件角度來(lái)看:CMSIS 提供的頭文件和功能函數(shù)是二進(jìn)制向上兼容的,比如某 CM0 軟件 App 使用的是 core_cm0.h 頭文件,而這個(gè) App 要在 CM7 上運(yùn)行時(shí),不需要使用 core_cm7.h 再重新編譯一次(當(dāng)然使用新頭文件編譯后的 App 也是正常的。)

2.Cortex-M 功能模塊差異

由于 CM1 主要是用在 FPGA 產(chǎn)品中,故下面對(duì)比忽略 CM1。我們知道 CM 處理器是向下兼容的,故 CM 功能模塊是隨著版本的升級(jí)而逐步增加的,我們逐步從最低版本開始對(duì)比。

2.1 CM0 vs CM0+

先來(lái)聊聊 CM0 與 CM0+,從最基準(zhǔn)的 CM0 模塊看起:

ARMv6-M CPU 內(nèi)核:ARM 公司于 2007 年推出的內(nèi)核。馮·諾依曼體系結(jié)構(gòu),3 級(jí)流水線,支持大部分 Thumb 和小部分 Thumb-2 指令集,所有指令一共 57 條。此外還內(nèi)嵌 32-bit 返回結(jié)果的硬件乘法器。

NVIC 嵌套向量中斷控制器:用于 CPU 在正常 Run 模式下中斷管理。最大支持 32 個(gè)外部中斷,外部中斷可設(shè) 4 級(jí)搶占優(yōu)先級(jí)(2bit)。

WIC 喚醒中斷控制器:用于 CPU 在低功耗 Sleep 模式下中斷管理。

AHB-Lite 總線:一條 32bit AMBA-3 標(biāo)準(zhǔn)的高性能 system 總線負(fù)責(zé)所有 Flash、SRAM 指令和數(shù)據(jù)存取。

調(diào)試模塊:0-4 個(gè)硬件斷點(diǎn) Breakpoint,0-2 個(gè)數(shù)據(jù)監(jiān)測(cè)點(diǎn) Watchpoint。

DAP 調(diào)試接口:通過 DAP 模塊支持 JTAG 和 SWD 接口。

  

那么 CM0+到底改進(jìn)了什么?

ARMv6-M CPU 內(nèi)核:流水線改為 2 級(jí)(很多 8bit MCU 都是 2 級(jí)流水線,主要用于降低功耗)

NVIC 嵌套向量中斷控制器:增加了 VTOR 即中斷重定向功能。
  

那么 CM0+到底增加了什么?

MPU 存儲(chǔ)器保護(hù)單元:提供硬件方式管理和保護(hù)內(nèi)存,控制訪問權(quán)限,最大可將內(nèi)存分為 8*8 個(gè) region。內(nèi)存越權(quán)訪問,將返回 MemManage Fault。

MTB 片上跟蹤單元:用戶體驗(yàn)更好的的跟蹤調(diào)試,優(yōu)化的異常捕獲機(jī)制,可以更快地定位 bug。

Fast I/O:可單周期訪問的快速 I/O 口,更易于 Bit-banging(比如 GPIO 模擬 SPI、IIC 協(xié)議)。

2.2 CM0+ vs CM3

  

前面比較完了 CM0 與 CM0+,再來(lái)看看 CM3 比 CM0+增強(qiáng)在了哪里:

  

那么 CM3 到底改進(jìn)了什么?

ARMv7-M CPU 內(nèi)核:ARM 公司于 2004 年推出的內(nèi)核。哈佛體系結(jié)構(gòu),3 級(jí)流水線+分支預(yù)測(cè),支持全部的 Thumb 和 Thumb-2 指令集。內(nèi)嵌 32-bit 硬件乘法器可返回 64-bit 運(yùn)算結(jié)果,且新增 32-bit 硬件除法器。

NVIC 嵌套向量中斷控制器:最大支持 240 個(gè)外部中斷,中斷優(yōu)先級(jí)可分組(搶占優(yōu)先級(jí)、響應(yīng)優(yōu)先級(jí)),8bit 優(yōu)先級(jí)設(shè)置(最大 128 級(jí)搶占優(yōu)先級(jí)(對(duì)應(yīng)最小 2 級(jí)響應(yīng)優(yōu)先級(jí)),最大 256 級(jí)響應(yīng)優(yōu)先級(jí)(對(duì)應(yīng)無(wú)搶占優(yōu)先級(jí)))。

3x AHB-Lite 總線:除了原 system 總線負(fù)責(zé) SRAM 存取外,還新增兩條 ICode、DCode 總線分別完成 Flash 上指令和數(shù)據(jù)存取。

調(diào)試模塊:0-8 個(gè)硬件斷點(diǎn) Breakpoint,0-4 個(gè)數(shù)據(jù)監(jiān)測(cè)點(diǎn) Watchpoint。

ITM/ETM 跟蹤單元:ITM 更好地支持 printf 風(fēng)格 debug,ETM 提供實(shí)時(shí)指令和數(shù)據(jù)跟蹤。
  

那么 CM3 到底增加了什么? 

額,CM3 相比 CM0+并沒有增加什么獨(dú)有模塊,反倒是少了 Fast I/O Port。

2.3 CM3 vs CM4

  

前面比較完了 CM0+與 CM3,再來(lái)看看 CM4 比 CM3 增強(qiáng)在了哪里:

  

那么 CM4 到底改進(jìn)了什么?

ARMv7E-M CPU 內(nèi)核:增加了 DSP 相關(guān)指令支持。
  

那么 CM4 到底增加了什么?

DSP 數(shù)字信號(hào)處理單元:新增支持單周期 16/32-bit MAC、dual 16-bit MAC, 8/16-bit SIMD 算法的數(shù)字信號(hào)處理單元。

FPU 浮點(diǎn)運(yùn)算單元:新增單精度(float 型)兼容 IEEE-754 標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算單元(VFPv4-SP)。

2.4 CM4 vs CM7

  

前面比較完了 CM3 與 CM4,再來(lái)看看 CM7 比 CM4 增強(qiáng)在了哪里:

  

那么 CM7 到底改進(jìn)了什么?

ARMv7E-M CPU 內(nèi)核:6 級(jí)流水線+分支預(yù)測(cè)。

2x AHB-Lite 總線:精簡(jiǎn)為 2 條 AHB 總線,其中 AHB-P 外設(shè)接口完成原來(lái) system 總線功能, AHB-S 從屬接口負(fù)責(zé)外部總線控制器(如 DMA)功能以及與 TCM 接口功能。

MPU 存儲(chǔ)器保護(hù)單元:最大可將內(nèi)存分為 16*8 個(gè) region。

FPU 浮點(diǎn)運(yùn)算單元:新增雙精度(double 型)兼容 IEEE-754 標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算單元(VFPv5)。
  

那么 CM7 到底增加了什么?

I/D-Cache 緩存區(qū):即是我們通常理解的 L1 Cache,每個(gè) Cache 大小為 4-64KB。

I/D-TCM 緊密耦合存儲(chǔ)器:緊密的與處理器內(nèi)核相耦合的 RAM,提供與 Cache 相當(dāng)?shù)男阅?,但?Cache 更具確定性,memory 最大均為 16MB。

ECC 特性:對(duì) L1 Cache 提供錯(cuò)誤校正和恢復(fù)功能,提高系統(tǒng)的可靠性。

AXI-M 總線:基于 AMBA 4 的 64bit AXI 總線,用于支持掛在系統(tǒng)上的 L2 memory。
?

Arm

Arm

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國(guó)際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國(guó)際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

碩士畢業(yè)于蘇州大學(xué)電子信息學(xué)院,目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)部門,擔(dān)任嵌入式系統(tǒng)應(yīng)用工程師。痞子衡會(huì)定期分享嵌入式相關(guān)文章