你們好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給你們介紹的是ARM Cortex-M功能模塊,不過側重點是三款安全特性處理器。html
ARM Cortex-M處理器家族發展至今(2020),已有8代產品,除了上一篇 《Cortex-M功能模塊看差別》 介紹過的CM0/CM0+、CM一、CM三、CM四、CM7,還有主打安全特性的CM2三、CM3三、CM35P。緩存
近幾年來, 物聯網成爲了嵌入式系統開發者們的熱門話題。當你說起物聯網,安全是每一個人都十分關注的話題。嵌入式系統產品須要更好的方案來保證系統的安全。鑑於此,ARM發佈了全新ARMv8-M架構,以及基於該架構的三款處理器ARM Cortex-M23/33/35P,引入了以下安全特性:安全
ARMv8-M架構包含了一個叫作TrustZone的安全擴展,這項安全加密技術誕生於2004年,以後隨着移動應用的普及在Cortex-A系列處理器上發揚光大。而在物聯網的嵌入式領域中,一直都使用功耗比更加優秀的Cortex-M處理器並不具備此功能,直到如今Cortex-M23/33的出現,纔將這種技術帶到了物聯網底層中。
TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟件只能訪問非安全狀態的存儲空間和外圍設備,安全軟件能夠訪問兩種狀態下的全部資源。TrustZone安全機制能夠阻止黑客控制整個設備,限制了攻擊的影響,還能夠實現系統遠程恢復。此外ARMv8-M架構也引入了堆棧邊界檢查和加強的MPU設計,促使額外安全措施的採用。架構
物理攻擊的定義可分爲侵入式及非侵入式攻擊等兩大類,侵入式攻擊須要拆除芯片封裝,利用芯片層級的漏洞發動攻擊,而非侵入式攻擊,則如旁路攻擊(Side-Channel Attacks,簡稱SCA),在距離芯片很近的狀況下,偵測如芯片的耗電或在操做密碼時放射出的電磁場等外洩的信息。這兩種攻擊的目標不外乎在裝置植入惡意程序,或是取得內部敏感信息。
ARM推出的全新Cortex-M35P,是Cortex-M產品線中首款具有防竄改以及防護物理攻擊能力的處理器。Cortex-M35P搭載與SC000、SC300等SecurCore處理器相同的防竄改技術,可幫助嵌入式安全開發人員阻止物理篡改並實現更高級別的安全認證。ide
因爲CM23是CM0/CM0+的升級,CM33是CM3/CM4的升級,故咱們僅針對性地比較原版與升級版內核。性能
那麼CM23到底改進了什麼?加密
- ARMv8-M Baseline CPU內核:ARM公司於2016年推出的內核。相比ARMv6-M新增了32-bit硬件除法器。
- NVIC嵌套向量中斷控制器:最大支持240個外部中斷,但保持4級搶佔優先級(2bit)不變。
- AHB5總線:一條32bit AMBA-5標準的高性能system總線負責全部Flash、SRAM指令和數據存取。。
- MPU存儲器保護單元:最大可將內存分爲16*8個region。
- 調試模塊:最大4個硬件斷點Breakpoint保持不變,數據監測點Watchpoint最大增爲4個。
- ETM跟蹤單元:ETM提供實時指令和數據跟蹤。
- Systick定時器:定時器個數增大到2個。
那麼CM23到底增長了什麼?設計
- TrustZone軟件安全特性:,TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟件只能訪問非安全狀態的存儲空間和外圍設備,安全軟件能夠訪問兩種狀態下的全部資源。
前面比較完了CM0+與CM23,再來看看CM33比CM4加強在了哪裏:調試
那麼CM33到底改進了什麼?htm
- ARMv8-M Mainline CPU內核:ARM公司於2016年推出的內核。相比ARMv7E-M去除了指令分支預測。
- NVIC嵌套向量中斷控制器:最大支持480個外部中斷,但保持8-256級優先級(8bit)不變。
- 2x AHB5總線:2條AHB5總線,其中AHB-P外設接口完成原來system總線功能, AHB-S從屬接口負責外部總線控制器(如DMA)功能。
- MPU存儲器保護單元:最大可將內存分爲16*8個region。
- Systick定時器:定時器個數增大到2個。
那麼CM33到底增長了什麼?
- TrustZone軟件安全特性:TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟件只能訪問非安全狀態的存儲空間和外圍設備,安全軟件能夠訪問兩種狀態下的全部資源。
前面比較完了CM33與CM4,再來看看CM35P比CM33加強在了哪裏:
那麼CM35P到底改進了什麼?
額,CM35P相比CM33並無改進什麼現有模塊。
那麼CM35P到底增長了什麼?
- I-Cache緩存區:便是咱們一般理解的L1 Cache,Cache大小爲2-16KB。
- Anti-tampering物理安全特性:具有抵禦各類物理攻擊的設計,可以透過嵌入式安全機制協助開發者防護物理竄改攻擊,讓產品取得更高層級的安全認證。