當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]Cortex-M處理器家族是一系列具有擴(kuò)展性,兼容性,節(jié)能和易于使用的處理器,旨在幫助開發(fā)人員滿足未來智能互聯(lián)嵌入式應(yīng)用的需要。2010年推出的Cortex-M4是建立在Cortex-M3的

Cortex-M處理器家族是一系列具有擴(kuò)展性,兼容性,節(jié)能和易于使用的處理器,旨在幫助開發(fā)人員滿足未來智能互聯(lián)嵌入式應(yīng)用的需要。2010年推出的Cortex-M4是建立在Cortex-M3的基礎(chǔ)上并加入了一系列專門為數(shù)字信號處理定制的指令集擴(kuò)展,并搭配可選的性能可達(dá)1.25 DMIPS/ MHz的單精度浮點(diǎn)單元。自推出以來,有10家以上的半導(dǎo)體廠商推出了基于Cortex-M4的通用MCU產(chǎn)品,以及非常廣泛的基于Cortex-M4的sensor hub產(chǎn)品。

在過去的幾年里,對支持互聯(lián)的嵌入式系統(tǒng)的功能特性和處理能力的需求變得更加苛刻。即使是最簡單的系統(tǒng),也預(yù)期支持多種連接方式,圖形用戶界面,人機(jī)界面,語音識別或其他自然的交互方式。處理器需要變得更加強(qiáng)大,并能提供更多的本地處理能力。在汽車行業(yè)和工業(yè)自動化中應(yīng)用的微控制器需要支持更高的處理能力和CPU性能提升,對計(jì)算精度和短時(shí)間內(nèi)處理大量數(shù)據(jù)的要求在迅速提高。這些未來系統(tǒng)的要求包括:以較低的成本提供更多的功能,增加連接性,更好的代碼重復(fù)利用,以及提高能效。正是著眼于這樣的未來需求,ARM和合作伙伴一起設(shè)計(jì)了當(dāng)前Cortex-M家族中性能最強(qiáng)的ARM Cortex-M7處理器。

近觀Cortex-M7

Cortex-M7能夠應(yīng)對最嚴(yán)格的應(yīng)用環(huán)境,并克服了以前基于Cortex-M處理器的解決方案所面臨的問題,性能達(dá)到了上一代Cortex-M4的兩倍,大約為5 CoreMark/ MHz。Cortex-M7是專為各種嵌入式應(yīng)用,包括微控制器,汽車控制器,工業(yè)控制系統(tǒng)和無線通信控制器(例如無線網(wǎng)絡(luò))設(shè)計(jì)的。對于那些熟悉Cortex-M系列CPU的嵌入式應(yīng)用開發(fā)者來說,Cortex-M7基于Cortex-M架構(gòu),從架構(gòu)上兼容從Cortex-M0以來的所有產(chǎn)品(圖1)。

 


圖1

ARM Cortex-M7處理器特性

Cortex-M7包含六階段的超標(biāo)量流水線,并和緊耦合內(nèi)存、高速緩存和大內(nèi)存支持選項(xiàng)集成在一起以提供整數(shù)、浮點(diǎn)和DSP處理能力并保證確定性的行為。Cortex-M7先進(jìn)的流水線能提供相對于Cortex-M4更高的性能,允許在每個(gè)時(shí)鐘周期執(zhí)行兩條指令。

Cortex-M7開發(fā)的一大重點(diǎn)是相對于之前的Cortex-M系列處理器提高IPC(instructions-per-clock)效率。Cortex -M7是Cortex-M家族中第一個(gè)提高最高64KB指令和數(shù)據(jù)緩存選項(xiàng)的處理器,高速緩存能提供對更大的存儲器系統(tǒng)的有效操作(外存通常比處理器慢很多)。此外還添加了緊耦合內(nèi)存接口,集成ECC支持。對內(nèi)存的快速訪問使得高速中斷處理和實(shí)時(shí)應(yīng)用處理成為可能。這樣的集成使得工程師們可以在內(nèi)部緩存中執(zhí)行大部分代碼,以減少對外部存儲器讀寫訪問,從而降低功耗。

Cortex-M7也提供了對每個(gè)內(nèi)部緩存單元增加ECC支持的選項(xiàng),以提高系統(tǒng)的可靠性。對于給定解決方案,如果某個(gè)內(nèi)存位置的單個(gè)比特值被破壞,該數(shù)據(jù)可被校正和恢復(fù)。除了ECC,存儲器系統(tǒng)也可以通過可選的存儲器保護(hù)單元(MPU)設(shè)定8或16個(gè)區(qū)域?yàn)槭鼙Wo(hù)區(qū)域以增強(qiáng)系統(tǒng)可靠性。

為了支持提高了的CPU處理能力,內(nèi)存系統(tǒng)也從32位AXI總線改進(jìn)為64位AXI總線,64位AXI比32位AXI提供了更大的帶寬,并支持多個(gè)outstanding transfer以最大化系統(tǒng)性能。為了易于集成在先前的Cortex-M設(shè)計(jì)中使用的傳統(tǒng)外圍設(shè)備,還有一個(gè)可選的低延遲AHB外設(shè)總線接口。為了允許靈活的中斷管理和低中斷延遲,集成嵌套矢量中斷控制器(NVIC)用1到240個(gè)中斷,以及3至8位可編程優(yōu)先級寄存器實(shí)現(xiàn)與處理器的緊密集成。此外,還有ETM支持,專為CoreSight(ARM支持全系統(tǒng)調(diào)試和跟蹤的架構(gòu))設(shè)計(jì)。

Cortex-M7包含的雙精度支持可選項(xiàng),進(jìn)一步擴(kuò)大了Cortex-M家族的浮點(diǎn)能力。如果FPU存在時(shí),還支持整數(shù)和浮點(diǎn)指令的并發(fā)。鑒于存在大量基于Cortex-M7的MCU應(yīng)用,它還具有完全的強(qiáng)大的調(diào)試功能,以及可選的全指令和數(shù)據(jù)跟蹤支持。對已經(jīng)使用了Cortex-M4處理器的設(shè)備,在應(yīng)用對性能的要求提高時(shí),前述特性使得Cortex-M7成為一種極具吸引力的解決方案。

遷移設(shè)計(jì)到Cortex-M7

鑒于大多數(shù)嵌入式工程師和開發(fā)人員都熟悉Cortex-M4,讓我們來看看Cortex-M7帶來的一些軟件開發(fā)的優(yōu)點(diǎn)。從開發(fā)者的角度來看,在Cortex-M7支持所有的Cortex-M4處理器指令,并使用相同的中斷模型來處理異常。在大多數(shù)情況下,針對Cortex-M4處理器編寫的程序代碼應(yīng)該可以在Cortex-M7處理器上沒有任何問題地運(yùn)行。但是,在有些情況下可能需要做一些改動,軟件開發(fā)人員必須了解這些改動以減少把應(yīng)用程序從Cortex-M4遷移到Cortex-M7所需的時(shí)間。

為了獲得Cortex-M7處理器的最佳性能,一些C編譯器和運(yùn)行時(shí)庫已經(jīng)進(jìn)行了優(yōu)化和更新(圖2)。此外,由于相當(dāng)多的Cortex-M7相對于Cortex-M4在調(diào)試系統(tǒng)上的變化,軟件開發(fā)者必須更新他們的工具鏈,以在基于Cortex-M7的微控制器產(chǎn)品上調(diào)試應(yīng)用程序。在某些情況下,調(diào)試適配器上的固件可能還需要更新。因此,強(qiáng)烈建議更新到最新的開發(fā)工具鏈。

 


圖2

相對于Cortex-M4的2倍性能改進(jìn)

通常情況下,把軟件從Cortex-M4遷移到Cortex-M7處理器時(shí),需要完成以下改動:

(1)、更新CMSIS- CORE頭文件為Cortex-M7對應(yīng)的頭文件。對應(yīng)Cortex-M7處理器的CMSIS-CORE頭文件包含在CMSIS 4.2之后的版本中。(最新的CMSIS可以從www.arm.com/cmsis獲得。)

(2)、更新CMSIS-DSP庫為Cortex-M7定制版本。Cortex-M7定制版本為Cortex-M7處理器的流水線行為進(jìn)行了優(yōu)化,因此可以提供更高的性能。

(3)、進(jìn)行緩存配置的新API包含在CMSIS-CORE頭文件中。如果正在使用的Cortex-M7裝置經(jīng)由AXI接口從慢速存儲器(例如Flash)執(zhí)行程序,應(yīng)該啟用高速緩存以獲得更好的性能。

此外,所有的代碼應(yīng)該被重編譯以允許編譯器針對Cortex-M7處理器流水線更好地優(yōu)化指令序列。在某些情況下,可能在運(yùn)行時(shí)需要額外的緩存維護(hù)操作。例如,在處理器和外設(shè)DMA控制器共享一塊帶緩存的內(nèi)存時(shí),必須進(jìn)行適當(dāng)?shù)木彺婢S護(hù)操作以保證內(nèi)存一致性。[!--empirenews.page--]

a) 如果被Cortex-M7處理器更新過的內(nèi)存需要被另一個(gè)外設(shè)通過總線訪問,需要先清緩存(clean cache)以保證外設(shè)看到最新的數(shù)據(jù)。

b) 如果內(nèi)存被外設(shè)通過總線更新,在Cortex-M7處理器訪問該內(nèi)存前,需要先做一個(gè)緩存無效(cache invalidate),這樣在讀取該位置的內(nèi)容時(shí),處理器將直接從主存儲器中獲取最新的數(shù)據(jù)。

Cortex-M7處理器支持多種浮點(diǎn)支持選項(xiàng),允許沒有FPU,只包含單精度FPU或者同時(shí)包含單精度和雙精度FPU。如果應(yīng)用程序可以從雙精度浮點(diǎn)單元支持中獲益,該應(yīng)用程序應(yīng)該重新編譯以利用雙精度FPU。即使應(yīng)用程序只使用單精度浮點(diǎn)運(yùn)算,重新編譯為Cortex-M7處理器的代碼也是有益的,因?yàn)樵贑ortex-M7的FPU基于FPv5,而Cortex-M4處理器的FPU的是FPv4。FPv5增加了額外的浮點(diǎn)處理指令,有助于目標(biāo)應(yīng)用程序加速浮點(diǎn)數(shù)據(jù)處理。

程序代碼更改

有許多可能需要更改程序代碼的潛在領(lǐng)域。由于處理器具有更高的性能,一些程序代碼可能需要由于執(zhí)行速度變快進(jìn)行適當(dāng)?shù)恼{(diào)節(jié)。最常見的例子是使用硬編碼(hard code)的循環(huán)來實(shí)現(xiàn)延遲的應(yīng)用程序,必須調(diào)整原本的循環(huán)次數(shù)以確保延時(shí)。

從一個(gè)微控制器設(shè)備遷移到另一個(gè)時(shí),系統(tǒng)內(nèi)存映射經(jīng)常發(fā)生變化。另外,Cortex-M7處理器初始矢量表并不是必須從地址0x00000000開始。如果應(yīng)用程序代碼假設(shè)初始向量表地址為0,用戶可能需要更新代碼,以便能夠通過讀取Vector Table Offset寄存器來確定初始矢量表的位置。

由于在Cortex-M7處理器的多總線接口和更強(qiáng)大的寫緩存,用戶可能會發(fā)現(xiàn)有必要在程序代碼中插入額外的內(nèi)存barrier指令。內(nèi)存barrier的使用指南請參閱“ARM application note AN321 – ARM Cortex-M Programming Guide to Memory Barrier Instructions”。在Cortex-M4處理器上,由于處理器流水線本身的特性,忽略內(nèi)存barrier指令并不會造成任何問題。但在Cortex-M7處理器上,對內(nèi)存barrier的需求是很嚴(yán)格的。

行動起來

Cortex-M7不僅繼承了Cortex-M系列處理器的特性,如能源效率、高性能、易用性和更小的代碼,它專門設(shè)計(jì)的靈活出色的內(nèi)存和連接選項(xiàng)使得它特別適合于汽車、物聯(lián)網(wǎng)和工業(yè)連接市場。在Cortex-M7處理器發(fā)布之后,基于它的MCU已經(jīng)相繼推出:

-- 意法半導(dǎo)體于2014年10月在ARM TechCon上發(fā)布的STM32 F7系列。

-- Atmel公司在2015 CES上發(fā)布的針對連接性和通用工業(yè)應(yīng)用AM E70和SAM S70系列

-- Atmel公司在2015 CES上發(fā)布的SAM V70和V71系列已取得汽車工業(yè)合格證,其采用Cortex-M7 DSP擴(kuò)展,針對信息娛樂連接和音頻應(yīng)用。

-- NXP也公開宣布了采用Cortex-M7的Kinetis KV5x,針對高性能電源轉(zhuǎn)換、馬達(dá)控制和工業(yè)自動化。

由于ARM Cortex-M4和Cortex-M7處理器在架構(gòu)上有很多相似之處,確保了大部分應(yīng)用程序代碼可以直接遷移。軟件開發(fā)人員可以開始動手,以確保他們的應(yīng)用程序都適合于下一代智能連接嵌入式設(shè)備。遷移需要用戶進(jìn)行一些適應(yīng)性修改。開發(fā)者可以根據(jù)從ARM Cortex-M4處理器到Cortex-M7處理器的應(yīng)用程序遷移 - 軟件開發(fā)人員指南( “Migrating Applications from an ARM Cortex-M4 Processor to a Cortex-M7 Processor - A Software Developer’s Guide”)”白皮書進(jìn)一步了解遷移過程的細(xì)節(jié)。該白皮書可以在ARM Connected Community中找到,并提供了深入的技術(shù)討論。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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ā)耗時(shí)1.5...

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

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

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

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(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)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(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)閉