ARM Cortex-M23處理器的五大特色
ARM? Cortex?-M23采用TrustZone?技術(shù),是尺寸最小、能效最高的處理器。小型嵌入式應用對芯片的安全性能有嚴格要求,基于ARMv8-M基線(xiàn)架構的Cortex-M23處理器則是最佳解決方案。
本文引用地址:http://dyxdggzs.com/article/201701/342826.htm本文中,我將帶各位領(lǐng)略全新Cortex-M23處理器的強大特色:
Cortex-M23最重要的特色是加入了TrustZone安全基礎技術(shù)
極緊湊的架構與布線(xiàn)
強化的調試糾錯和追溯能力(對開(kāi)發(fā)商的生產(chǎn)力提高至關(guān)重要)
存儲保護單元獲得改善(該單元定義軟件組件的訪(fǎng)問(wèn)許可,全新設計提升編程的效率,重新定義存儲區域)
新增多條增強性能的指令
1. 為ARMv8-M量身打造的TrustZone技術(shù):安全實(shí)現的基礎
TrustZone技術(shù)為ARMv8-M度身優(yōu)化,可以在每一臺搭載Cortex-M23處理器的設備上以硬件形式實(shí)現可信軟件和非可信軟件強制隔離。因此,采用TrustZone,設計師只需一個(gè)處理器就可以設計嵌入式應用,此前則必須使用多個(gè)處理器才能在可信區域和非可信區域之間實(shí)現物理隔離。僅需Cortex-M23處理器,既可出色實(shí)現多項安全需求,如設備識別管理、高價(jià)值固件保護、軟件認證、安全根等等。
采用TrustZone技術(shù)的Cortex-M23處理器具備以下兩種安全狀態(tài):
安全狀態(tài) – 可以訪(fǎng)問(wèn)安全和非安全資源(存儲、周邊設備等)
非安全狀態(tài) – 只可訪(fǎng)問(wèn)非安全資源
兩種安全狀態(tài)下的代碼執行轉換和代碼訪(fǎng)問(wèn)均由硬件監管,最大限度地降低轉換管理成本并保證確定性——這也是所有Cortex-M處理器的標志性功能。
2. 緊湊二階布線(xiàn)處理器
Cortex-M23是一款簡(jiǎn)單的二階布線(xiàn)馮諾依曼處理器(Von Neumann processor),但卻足以支持全套ARMv8-M基線(xiàn)指令集。熟悉Cortex-M0+的用戶(hù)一定可以迅速指出Cortex-M23使能效最大化的眾多相似特色:WFI(等待中斷)/WFE(等待事件)和睡眠/深度睡眠模式、退出時(shí)睡眠、SysTick定時(shí)器和選配的單循環(huán)IO等。
指令集共包含80條左右的拇指指令,其中大多數都是16位指令(為了盡可能提高代碼的緊湊度),但仍有一些為了提升效率而設置的32位指令。Cortex-M23支持所有的ARMv6-M指令,以幫助設計師輕而易舉地將代碼從Cortex-M0和Cortex-M0+處理器轉移至Cortex-M23。此外ARMv8-M基線(xiàn)指令集中還加入了多條新指令以提升條件運算、互斥訪(fǎng)問(wèn)、硬件劃分運算和即時(shí)移動(dòng)的效率。
3. 強化的調試糾錯與追溯能力
僅憑一臺高效安全的32位處理器,尚無(wú)法成功實(shí)現字段部署,軟件開(kāi)發(fā)的成本通常超過(guò)生產(chǎn)和硬件IP的總和。Cortex-M23引入更多可配置的硬件斷點(diǎn)和數據觀(guān)測點(diǎn),對比其他ARMv6-M處理器,可以助設計師更輕松地實(shí)現軟件開(kāi)發(fā)與調試。除了Cortex-M0+ 處理器中也配置的微型跟蹤緩沖器(MTB),Cortex-M23還包括選配的嵌入式跟蹤宏單元(ETM)。有了這些選配功能,設計師可以自行判斷,究竟選擇更加豐富全面的指令追溯能力;還是性?xún)r(jià)比更高、更加精簡(jiǎn)的指令追溯能力。
4. 用于任務(wù)隔離的存儲保護單元
Cortex-M23還包括選配存儲保護單元(MPU),基于全新PMSAv8架構打造,設計師使用起來(lái)非常方便。它可以在安全和非安全狀態(tài)的任何一個(gè)狀態(tài)下最多“保護”16個(gè)區域。每個(gè)區域都有一個(gè)基礎地址、結束地址、訪(fǎng)問(wèn)許可和存儲屬性設置。在多任務(wù)環(huán)境下,操作系統可以在任務(wù)情境切換的過(guò)程中重新編程MPU,定義每個(gè)任務(wù)的存儲許可,比如允許應用任務(wù)訪(fǎng)問(wèn)全部或部分應用數據和特定的周邊設備。通過(guò)保護許可之外的數據免遭污染,并阻止未授權來(lái)源訪(fǎng)問(wèn)許可之外的周邊設備,該MPU可以顯著(zhù)提升系統可靠性。

更易設置的存儲區域
Cortex-M23的存儲保護架構采用基線(xiàn)和限值比較器,用以定義存儲區域,而此前使用的是二次方尺寸對齊比較器。這項改進(jìn)簡(jiǎn)化了軟件研發(fā)的復雜程度,而且在某些情況下,當區域尺寸不是完美的二次方尺寸時(shí),還能減少存儲浪費。
5. 全新ARMv8-M基線(xiàn)指令
對比ARMv6-M,Cortex-M23加入了許多全新指令,但絲毫沒(méi)有折損Cortex-M系列處理器的超高能效。大多數新指令(除用于安全拓展外)都繼承自ARMv7-M的架構指令集,進(jìn)一步拓展Cortex-M23的功能,并與Cortex-M0+ 處理器形成鮮明區分。
5.1安全拓展
ARMv8-M采用的TrustZone安全技術(shù)為基線(xiàn)指令集補充了全新指令,包括安全網(wǎng)關(guān)(SG)、非安全支路(BXNS、BLXNS)以及測試目標(TT)指令。欲知詳情,請參閱Yiu撰寫(xiě)的《ARMv8-M 架構介紹》。
5.2 僅執行代碼生成
對僅執行(Execute-Only)代碼存儲區的支持也獲得改善,新增加的即時(shí)移動(dòng)指令(從ARMv7-M繼承的MOV/MOVT)可以在僅執行代碼中生成即時(shí)數據,讓設計師僅憑2條指令便能生成32位值,且無(wú)需運行實(shí)際負載。
5.3代碼優(yōu)化
條件比較和支路指令(從ARMv7-M繼承的CBNZ/CBZ)可以提高多項條件控制代碼序列的性能。長(cháng)偏移即時(shí)支路(從ARMv7-M繼承的)可以將支路指向遙遠的目標地址;硬件整數劃分指令(從ARMv7-M繼承的SDIV/UDIV)則可以減少除法運算的處理循環(huán)。
5.4排斥存取
Cortex-M23還從ARMv7-M繼承了負載和儲存的專(zhuān)用指令,提升Cortex-M23在多核系統中的一貫性,確保多個(gè)處理器以同樣的機制處理信號。此外,為了對C11/C++11提供穩定支持,Cortex-M23還新增ARMv8-A(Thumb 32版本)的負載獲取與儲存釋放指令,并包括這些指令的排斥存取變種。
評論