Arm 架構(gòu)已經(jīng)主導了當今嵌入式處理和計算市場,但在過去的幾十年里,Arm 架構(gòu)卻走過了漫長的道路。從20世紀80年代開始,它起初是作為家用電腦處理器,然后在20世紀90年代成為手機芯片的基礎(chǔ)。如今,在幾乎所有技術(shù)細分市場,Arm都是一個強有力的競爭者。許多人認為,Arm 架構(gòu)已成為 32 位或 64 位處理器的首選。由于這種廣泛應(yīng)用,現(xiàn)在已經(jīng)有成千上萬種基于Arm架構(gòu)的變體。了解這些內(nèi)核彼此之間的不同是做出選擇決策的重要一環(huán)。
早在 2004 年,最初的 Cortex 家族就使 Arm架構(gòu)分化為三個內(nèi)核產(chǎn)品組,每個產(chǎn)品組都針對不同類型的應(yīng)用。最早集成到芯片的是Cortex-M,它已成為基于Arm微控制器(MCU)生態(tài)系統(tǒng)的支柱。盡管Cortex-M系列首次推出的是基于版本7架構(gòu)的內(nèi)核,但后來針對超低成本設(shè)備(即M0、M0+和M1)的新產(chǎn)品則是基于早期版本6架構(gòu)。所有Cortex-M處理器僅執(zhí)行Thumb指令集。另外兩個系列被設(shè)計為支持Thumb和完整的A32指令集。
圖1:Silicon Labs的EFM Tiny Gecko(小壁虎)。
自推出以來,Cortex-M3已經(jīng)得到許多MCU供應(yīng)商的采用,Cortex-M3內(nèi)核幫助這些MCU廠商定義其32位產(chǎn)品?,F(xiàn)在市場可用的MCU包括相對簡單但又具備高性價比的產(chǎn)品,例如針對低功耗系統(tǒng)的Silicon Labs 的 EFM TIny Gecko,以及賽普拉斯(Cypress)半導體的 PSoC5片上系統(tǒng),它使傳統(tǒng)的MCU外設(shè)與高度靈活的可編程模擬功能結(jié)合在一起。
隨著MCU應(yīng)用開始要求提供更高的數(shù)字信號處理(DSP)性能,Arm推出Cortex-M4以滿足市場的需求。該內(nèi)核可為浮點運算提供支持,得到許多廠商的采用。一種常見的配置是將強大的Cortex-M4F內(nèi)核與較為簡單的Cortex-M0或Cortex-M0+整合在一起,為用戶提供高效的電源管理和資源分配。
在賽普拉斯 PSoC6 或恩智浦(NXP)LPC5411x等器件中,M0+內(nèi)核可以處理中斷(interrupts),使M4或M4F可自由處理 DSP 任務(wù),而不會產(chǎn)生中斷,從而能夠最大限度地提高數(shù)據(jù)吞吐量。這種責任劃分也使更強大的M4內(nèi)核能夠在活動突發(fā)之間進行較長時間睡眠。低功耗M0+ 可在相對有限的運行期間處理比較簡單的系統(tǒng)管理任務(wù)。
圖 2:來自賽普勒斯半導體的 PSoC6。
2014 年,Arm推出了M7內(nèi)核,將 Cortex-M 的性能提高到新的層級。此內(nèi)核采用六級超標量(superscalar)流水線架構(gòu),支持亂序操作,并通過完整的浮點運算單元來進一步增強。意法半導體的STM32F730x8集成了M7內(nèi)核、各種外設(shè)和公司專有的ART加速器技術(shù)(能夠?qū)崿F(xiàn)閃存的零等待狀態(tài)執(zhí)行)。
Cortex-A
2005 年,出于滿足手機業(yè)務(wù)向智能手機和平板電腦方向發(fā)展的需求變化,Arm推出了Cortex-A家族的首個成員。Cortex-A 旨在提供一系列針對應(yīng)用處理器定制的功能,也為在服務(wù)器和其他高端計算系統(tǒng)中部署 Arm內(nèi)核鋪平了道路。
Cortex-A 處理器與其他系列處理器之間的一個主要區(qū)別是支持分頁內(nèi)存管理單元(MMU)。Linux和類似的操作系統(tǒng)都需要MMU,因為它能夠?qū)⒊绦蚣捌鋽?shù)據(jù)在現(xiàn)實內(nèi)存中映射到不同虛擬地址空間,這提供了一定程度的安全保護功能,可防止不同任務(wù)使用的數(shù)據(jù)被破壞,此外還能夠?qū)⑽锢韮?nèi)存視為大型緩存。盡管程序是動態(tài)加載和卸載,它還能夠避免內(nèi)存碎片化引起的問題。
使用分頁虛擬地址的一個潛在缺點是它們可能干擾實時操作,因此在Cortex-A處理器中增加了MMU,但在具有更強嵌入式系統(tǒng)功能的產(chǎn)品系列中卻沒有。Cortex-A架構(gòu)從誕生之初的一個關(guān)鍵創(chuàng)新是TrustZone,由此可實現(xiàn)一個基于硬件的安全層,如果沒有所需的安全證書,虛擬設(shè)備管理器(hypervisor)能夠拒絕任何任務(wù)對處理器和內(nèi)存某些部分的訪問。TrustZone可將加密操作和其他敏感操作納入受硬件防火墻保護的虛擬處理器。
在內(nèi)核方面,范圍從相對簡單的Cortex-A5到高性能超標量處理器,如Cortex-A72整合了同時發(fā)出三個指令的能力和執(zhí)行無序操作,簡化了調(diào)度以實現(xiàn)最高效率。
Cortex-A家族的第二個重大創(chuàng)新是LITTLE框架,它是在2011年推出,這主要反映了針對應(yīng)用處理器市場的M4引入后不同Cortex-M內(nèi)核的耦合,增強了支持應(yīng)用處理器需求的其他功能。
對于較大LITTLE,Arm采用了將低端內(nèi)核(如A5或A7)與高性能,且通常是超標量實施相結(jié)合的方法。在可能的情況下,操作系統(tǒng)會保持低功耗處理器的活動時間盡可能長,然后在工作負載超過特定閾值時才激活高功率內(nèi)核。與傳統(tǒng)的雙核架構(gòu)不同,任務(wù)可以根據(jù)系統(tǒng)條件從一個處理器遷移到另一個處理器。隨著對性能需求的增加,越來越多的Cortex-A實施都是圍繞處理器復合體采用四個高端內(nèi)核。通過在性能要求比較平靜的期間關(guān)閉一個或多個內(nèi)核,這種安排可以節(jié)省功率。
Cortex-R
Cortex-R是Arm公司第三大系列內(nèi)核,通過采用實時且高度可靠的功能,能夠支持新一代復雜的汽車和網(wǎng)絡(luò)系統(tǒng)。在一些目標應(yīng)用中需要一些確定性性能,意味著通常用于加快其他 Arm 處理器的緩存并不總是最佳方案。由于緩存會動態(tài)地將指令和數(shù)據(jù)值替換為最近使用的條目,因此,當中斷服務(wù)例程或?qū)崟r任務(wù)需要時,關(guān)鍵信息可能不在緩存中。Cortex-R家族通過支持緊密耦合存儲器(TCM)庫克服了這一問題。因此,關(guān)鍵信息可以在操作過程中存儲在其中,并且通過軟件管理,避免了指令和數(shù)據(jù)被緩存管理子系統(tǒng)替換的風險。
自從最初的Cortex-R4誕生以來,這個家族已經(jīng)發(fā)生了很多進化,其中Cortex-R5和R7內(nèi)核具有低延遲外圍端口。大多數(shù)內(nèi)核都設(shè)計為與Arm 硬件總線 (AHB)等片上總線配合使用,或者在最近的內(nèi)核中,結(jié)合使用高級可擴展接口(AXI)基礎(chǔ)架構(gòu)。低延遲端口將內(nèi)核直接連接到重要的外圍設(shè)備,無需對總線進行仲裁,或等待其他總線訪問活動完成,即可進行訪問。
為了支持高度可靠的操作,Cortex-R內(nèi)核上的緩存、TCM 和系統(tǒng)總線可以使用錯誤修改編碼來透明地更正單位(single-bit)錯誤并檢測雙位錯誤。由于模塊化冗余是安全關(guān)鍵型系統(tǒng)的核心部分,Cortex-R 系列內(nèi)核設(shè)計為可使用副本在鎖定步驟中工作。如果片上監(jiān)視器檢測到輸出差異,它可以警告存在的問題,以便軟件能夠采取糾正措施。采用Cortex-R 系列而生產(chǎn)的一個芯片例證是賽普拉斯半導體的Traveo S6J33xx系列 MCU,它集成有Cortex-R5F內(nèi)核,運行在高達240MHz的頻率,并集成有針對汽車儀表板中驅(qū)動儀表群集而優(yōu)化的外圍設(shè)備。
Arm v8
在2011 年,隨著版本8體系架構(gòu)的創(chuàng)建,迎來了Arm內(nèi)核產(chǎn)品的第二波更改,包括增強了具體應(yīng)用在64位模式下運行的能力,極大地擴展了應(yīng)用處理器的最大可尋址內(nèi)存空間。具有64位能力的Arm v8 處理器可以在 32位或 64位模式下運行。32位運行與為版本7處理器編寫的應(yīng)用提供向后兼容性。由于Cortex-M 系列中的版本8處理器專注于MCU應(yīng)用,因而不支持64位尋址。但是,它們確實增加了許多額外的指令和功能,以提高性能并增強安全操作。
其中一個重要的進步是重新設(shè)計的內(nèi)存保護單元(MPU),它允許更靈活地管理分區(qū)。另一個是完全支持僅執(zhí)行內(nèi)存(execute-only-memory),以幫助防止反向工程和黑客攻擊。但是,安全性方面最大的變化是支持專門針對深度嵌入式處理器而優(yōu)化的TrustZone機制。
對于Cortex-M 版本中TrustZone,無需軟件虛擬設(shè)備管理器來管理安全狀態(tài)和非安全狀態(tài)之間的轉(zhuǎn)換。相反,可使用專用指令從不安全的任務(wù)傳遞數(shù)據(jù)到安全的功能,以保護允許在特權(quán)模式下運行。如果沒有正確的權(quán)限,即使高優(yōu)先級中斷也無法讀取到寄存器中的安全數(shù)據(jù)。安全功能允許創(chuàng)建保護良好的 IoT 設(shè)備,這些都可以通過基于Cortex-M23和Cortex-M33等內(nèi)核的MCU實現(xiàn)。
Microchip的 SAML11 MCU采用了Cortex-M23增強型片上加密控制器,可為傳感器節(jié)點和類似設(shè)計提供硬件安全保證。Nordic Semiconductor的nRF9160采用Cortex-M33來提供需要安全射頻通信的器件處理功能。
圖 3:Microchip公司的 SAML11 MCU 示例。
結(jié)論
毫無疑問,Arm是全球電子行業(yè)中最偉大的成功案例之一。為了滿足許多不同市場的需求,Arm提供的廣泛產(chǎn)品組合繼續(xù)向多個方向擴展。Cortex-A、Cortex-M和Cortex-R等細分產(chǎn)品系列的進一步區(qū)分,已證明是這種快速增長的基礎(chǔ),并且將繼續(xù)推動Arm內(nèi)核在不斷出現(xiàn)的新領(lǐng)域得到廣泛應(yīng)用。