當(dāng)前位置:首頁 > 電源 > 功率器件
[導(dǎo)讀]雖然Cortex-M處理器家族目標(biāo)瞄準(zhǔn)效能光譜較低端的區(qū)域,但是和大多數(shù)微控制器(MCU)采用的其他典型處理器相比,Cortex-M的效能依然算相當(dāng)強(qiáng)悍。舉例來說,像是許多高效能微控

雖然Cortex-M處理器家族目標(biāo)瞄準(zhǔn)效能光譜較低端的區(qū)域,但是和大多數(shù)微控制器(MCU)采用的其他典型處理器相比,Cortex-M的效能依然算相當(dāng)強(qiáng)悍。舉例來說,像是許多高效能微控制器所采用的Cortex-M4與Cortex-M7處理器,其最高時脈頻率就高達(dá)400MHz。

當(dāng)然在選擇處理器時效能并非唯一考量的因素。在許多應(yīng)用中,低功耗與成本是顧客最關(guān)切的標(biāo)準(zhǔn)。因此,Cortex-M處理器家族納入各種類型的產(chǎn)品來因應(yīng)不同的需求(表1)。

 

 

Cortex-M和傳統(tǒng)ARM處理器(像是ARM7TDMI、ARM9)大相徑庭之處,就是大幅改造的架構(gòu)。舉例來說:

·僅支援ARM Thumb指令,但在Thumb-2中,已延伸成能支援16位元與32位元指令。

·中斷處理任務(wù),由名為巢狀向量中斷控制器(NVIC)的內(nèi)建中斷控制器執(zhí)行,NVIC提供自動優(yōu)先排程、中斷遮罩與巢狀配置、以及系統(tǒng)例外處理。

·中斷處理程序(Handler)可寫成正規(guī)的C語言函式以及向量化中斷處理機(jī)制,不須使用軟體去判斷該服務(wù)哪個中斷。而中斷的回應(yīng)則屬于決定性,并具有低延遲特性。

·中斷向量表方面,從分支指令改成中斷的起始位址以及系統(tǒng)例外處理程序。

·暫存器區(qū)塊(bank)以及程式開發(fā)模式的部分細(xì)節(jié)亦有所變動。

這些改變意謂許多針對傳統(tǒng)ARM處理器撰寫的組合語言程式碼必須進(jìn)行修改,而舊的Projects檔在移植到Cortex-M時必須進(jìn)行修改與重新編譯。

指令集概述

在大多數(shù)情況中,軟體的程式碼多以C或其他高階語言撰寫。不過,如果對Cortex-M處理器所支援的指令集有基本的認(rèn)識,能幫助判斷特定任務(wù)須要用到哪一種Cortex-M處理器。指令集架構(gòu)(ISA)是處理器架構(gòu)的一部分,Cortex-M處理器能區(qū)分成幾種架構(gòu)類型(表2)。

 

 

所有Cortex-M處理器都支援名為Thumb的指令集。在Thumb-2技術(shù)釋出后,整個Thumb指令集就變得相當(dāng)龐大。然而,不同Cortex-M處理器支援Thumb ISA里的指令子集合也不一致,如圖1所示。

 

 

圖1 各款Cortex-M處理器支援的指令集

Cortex-M0/M0+/M1處理器以ARMv6-M架構(gòu)為基礎(chǔ),其指令集很小,只有56個指令,其中大多數(shù)為16位元,如圖1中較小的橢圓形。不過,處理器中的暫存器以及處理的資料依然為32位元。對于大多數(shù)簡單的I/O控制作業(yè)以及生成資料處理,這樣的小指令集就已經(jīng)足夠應(yīng)付。由于指令集很小,因此僅須用少量的邏輯閘就能建置處理器,像是Cortex-M0與Cortex-M0+處理器僅需1.2萬個邏輯閘。不過,這些指令當(dāng)中有一些不能用有高位暫存器(R8到R12),而且在即時生成資料方面的能力相當(dāng)有限。這主要是為了在超低功耗處理器設(shè)計以及效能之間作折衷。

Cortex-M3處理器是以ARMv7-M架構(gòu)為基礎(chǔ),并支援大上許多的指令集,當(dāng)中有許多屬于32位元指令,讓系統(tǒng)能更有效率地運(yùn)用高位暫存器。此外,它還支援向量表分支指令與條件執(zhí)行(使用IT指令)、硬體除法指令、乘加(MAC)運(yùn)算、可變位元欄位作業(yè)。

具更多指令集Cortex-M3效能大提升

更多的指令能透過幾種方式提升效能。例如像32位元Thumb指令能提供較大范圍的立即資料值、分支偏移、以及立即偏移以利資料記憶體的存取。另外,它還對DSP作業(yè)提供基本支援(像是幾個MAC指令,須用幾個時脈周期,另外還有飽和調(diào)整指令)。最后,32位元指令允許滾筒移位器和多個資料處理作業(yè)在同一個指令中操作。

然而,更大的指令集,代價就是矽元件面積與耗電都增加。在典型微控制器中,Cortex-M3的邏輯閘數(shù)量會比Cortex-M0或Cortex-M0+設(shè)計的邏輯閘多兩倍以上。但由于在多數(shù)現(xiàn)代微控制器中處理器,只占一小部分的矽元件空間,因此較大的矽元件空間以及功耗產(chǎn)生的影響也變得微不足道。

Cortex-M4處理器在許多層面相當(dāng)類似Cortex-M3,包括管線與程式開發(fā)模式。它除了支援Cortex-M3的所有功能,還額外支援DSP應(yīng)用方面的指令,像是SIMD、飽和演算法指令、以及各種能在單周期完成的MAC指令(相對于Cortex-M3的多周期指令以及有限部分),選配的浮點運(yùn)算單元能支援各種單精度浮點運(yùn)算。

Cortex-M4的SIMD作業(yè)能同時處理兩個16位元資料或4個8位元資料。舉例來說,圖2顯示QADD8以及QADD16作業(yè)。

 

 

圖2 SIMD指令范例:QADD8與QADD16

在某些DSP作業(yè)方面,由于計算能同時執(zhí)行,因此,SIMD能讓系統(tǒng)能更快運(yùn)算16位元與8位元資料。然而,在一般程式開發(fā)方面,C語言編譯器不太可能用到SIMD功能。這也導(dǎo)致Cortex-M3與Cortex-M4會產(chǎn)生大家常見的效能量測結(jié)果。然后,Cortex-M4的內(nèi)部資料通道和Cortex-M3并不相同,Cortex-M3的通道在一些案例中支援更快的資料處理(像是單周期MAC,能在一個周期內(nèi)將資料寫回兩個暫存器)。

Cortex-M7處理器的指令集支援類似Cortex-M4,另外還加入:

浮點運(yùn)算架構(gòu)方面,以FPv5為基礎(chǔ)而不是FPv4 (Cortex-M4所采用),因此額外加入幾個浮點運(yùn)算指令。

選配雙精度浮點運(yùn)算指令。

支援預(yù)載資料(PLD)指令,讓系統(tǒng)預(yù)先載入快取資料。

Cortex-M7的管線和Cortex-M4有極大差異。它擁有一個6階雙發(fā)送管線,發(fā)揮更高的效能。大多數(shù)針對Cortex-M4撰寫的軟體,都能在Cortex-M7重復(fù)使用,不過軟體必須重新編譯,才能針對管線特性的差異做最好的優(yōu)化,在一些案例中,軟體還需要一些微幅更新,才能利用像是快取在內(nèi)的新功能。

Cortex-M23處理器的指令集以ARMv8-M基線sub-profile為基礎(chǔ),同時也是ARMv6-M的超集合。額外增加的指令包括硬體除法指令;比較與分支、以及32位元分支指令;TrustZone安全延伸的指令;互斥存取指令(通常用在旗標(biāo)作業(yè));16位元立即生成資料指令;Load acquire與store release指令(配合C11版C語言標(biāo)準(zhǔn)支援)。

在某些情況,這些指令集的加強(qiáng)有助于提升效能。另外,對于內(nèi)含多個處理器的SoC設(shè)計也有助益(像是互斥存取在跨處理器的旗標(biāo)傳遞相當(dāng)有用)。

由于Cortex-M33的設(shè)計有極高的設(shè)定彈性,其中一些指令也屬于選配,例如像是:

DSP指令(包括Cortex-M4與Cortex-M7處理器都有支援)都屬于選配。

單精度浮點運(yùn)算的支援能力屬于選配。這項支援以FPv5為基礎(chǔ),比Cortex-M4浮點運(yùn)算支援能力多了幾項指令。

此外,Cortex-M33還支援ARMv8-M主線sub-profile,其中包括:

TrustZone安全延伸的指令。

Load Acquire與Store Release 指令(配合C11版C語言標(biāo)準(zhǔn)的支援能力)。

ISA功能比較總結(jié)

ARMv6-M、ARMv7-M、以及ARMv8-M架構(gòu)具有為數(shù)眾多的ISA特色,很難逐一詳細(xì)介紹,所以在表3匯整其中關(guān)鍵的差異。

 

 

Cortex-M處理器中ISA其中一項關(guān)鍵特性就是向上相容性。Cortex-M處理器所支援的指令,系為Cortex-M0/M0+/M1的超集合(Superset)。因此,理論上如果記憶體地圖相同,Cortex-M0/M0+/M1的二進(jìn)位映像檔就能直接在Cortex-M3上運(yùn)行。Cortex-M4/M7和其他Cortex-M處理器之間也存在這樣的相容性,Cortex-M0/M0+/M1/M3的指令能在Cortex-M4/M7上執(zhí)行。

雖然Cortex-M0/M0+/M1/M3/M23處理器沒有浮點運(yùn)算單元選項,但可以用軟體來執(zhí)行浮點運(yùn)算。另外,本身沒有浮點運(yùn)算單元的Cortex-M4/M7/M33也可用軟體執(zhí)行浮點運(yùn)算。在這些處理器中,當(dāng)使用程式處理浮點運(yùn)算資料,編譯程式在鏈結(jié)階段會插入所需的執(zhí)行階段函式庫函數(shù)。使用軟體來執(zhí)行浮點運(yùn)算,除了運(yùn)算時間變長,程式碼長度也會略為增長。但如果沒有頻繁執(zhí)行浮點運(yùn)算,所開發(fā)的應(yīng)用也適合采用這種類型的處理器。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉