探索ARM Cortex-M7核心:為明日物聯(lián)網(wǎng)預(yù)做準(zhǔn)備
如果嵌入式內(nèi)存訪問速度與所需的處理器速度相近,則嵌入式閃存可以和具有一些閃存訪問加速的ITCM接口連接。而在其他情形中,使用帶有緩存的AXI將更加合適。如果應(yīng)用需要從外部?jī)?nèi)存控制器執(zhí)行程序,那么內(nèi)存控制器通常會(huì)與AXI接口連接,也就需要指令緩存和數(shù)據(jù)緩存的支持。在一些情形中,應(yīng)用可能只需要將外部?jī)?nèi)存用于數(shù)據(jù)存儲(chǔ)。這樣的情形中不需要指令緩存。
本文引用地址:http://cafeforensic.com/article/277715.htm選擇緩存大小很大程度上取決于應(yīng)用程序代碼的屬性。在嵌入式閃存運(yùn)行程序代碼時(shí),會(huì)同時(shí)利用指令緩存和數(shù)據(jù)緩存,因?yàn)槌绦蛴诚裢ǔ?huì)隨指令一起包含文字?jǐn)?shù)據(jù)、查找表或只讀常量。與程序映像內(nèi)部中的數(shù)據(jù)/常量相比,應(yīng)用程序通常有更多指令字。隨著程序大小變大,緩存要求也在提高,指令緩存大于數(shù)據(jù)緩存也不罕見。相反,一些應(yīng)用程序可能有很小的控制或DSP循環(huán),同時(shí)可能有大量的數(shù)據(jù)用作計(jì)算的系數(shù)。在此類情形中,較大的D緩存可能比較大的I緩存更對(duì)系統(tǒng)性能有益。
當(dāng)然,進(jìn)行性能優(yōu)化時(shí),也需要最大化緩存以確保較大代碼和數(shù)據(jù)大小的最低延遲性。不過,通過以等同于處理器的速度運(yùn)行大緩存內(nèi)存,可能會(huì)根據(jù)其他因素而造成緩存查找消耗大量的功率。此外,大多數(shù)應(yīng)用程序的緩存未命中率曲線隨著尺寸增大而向零靠近,這意味著進(jìn)一步增大緩存大小并不會(huì)提高性能。所幸的是,Cortex-M7 核心的可配置性使得 SoC 架構(gòu)師能夠整合各種各樣的緩存尺寸,從無緩存到最高64KB的指令緩存和64KB數(shù)據(jù)緩存。借助這樣的靈活性,設(shè)計(jì)人員可以調(diào)節(jié)SoC來滿足目標(biāo)應(yīng)用的需求。
除了架構(gòu)選項(xiàng)外,Cortex-M7處理器上的許多其他功能也可加以配置。例如,SoC的浮點(diǎn)單元(FPU)功能可以配置為完全不含F(xiàn)PU、具有IEEE-754單精度浮點(diǎn)運(yùn)算的FPU,或者同時(shí)支持IEEE-754單精度運(yùn)算和雙精度運(yùn)算的FPU。
其他配置功能包括:
● 中斷數(shù)、以及 NVIC 中的優(yōu)先級(jí)別數(shù);
● 內(nèi)存保護(hù)單元(MPU)配置;
● 調(diào)試與跟蹤功能;
● 功能安全性相關(guān)的功能(ECC、雙核鎖步)。
浮點(diǎn)運(yùn)算硬件加速有諸多優(yōu)點(diǎn)。顯而易見,具有硬件浮點(diǎn)單元時(shí)浮點(diǎn)運(yùn)算的性能可以得到加速。此外,由于硬件支持減少了執(zhí)行浮點(diǎn)運(yùn)算所需的軟件庫(kù)數(shù)量和相關(guān)大小,因此內(nèi)存空間也得以優(yōu)化。縮短處理時(shí)間并且減少內(nèi)存足跡最終提高應(yīng)用的能效,為執(zhí)行傳統(tǒng)上需要更多復(fù)雜嵌入式系統(tǒng)的功能掃清了障礙。這種優(yōu)勢(shì)對(duì)能效而言非常重要,因?yàn)?DSP過濾器的浮點(diǎn)運(yùn)算最高可提速 20 倍。同時(shí)具備單精度和雙精度浮點(diǎn)功能選項(xiàng)可進(jìn)一步提高新款處理器的可擴(kuò)充性。
隨著IoT的演進(jìn)逐步帶來技術(shù)的擴(kuò)充,應(yīng)對(duì)嵌入式應(yīng)用的安全性和完整性挑戰(zhàn)的需求也在增長(zhǎng)。除了與其他 Cortex-M 處理器相同的錯(cuò)誤異常處理功能和內(nèi)存保護(hù)單元外,Cortex-M7 處理器也包含可選的TCM內(nèi)存和緩存錯(cuò)誤校正代碼(ECC)支持。這可以實(shí)現(xiàn)自動(dòng)即時(shí)更正內(nèi)存中的單比特錯(cuò)誤、以及檢測(cè)雙比特錯(cuò)誤。
此外,Cortex-M7處理器也支持雙核鎖步配置選項(xiàng)。在這種配置中,核心邏輯進(jìn)行兩次實(shí)例化,緩存和TCM內(nèi)存陣列則是共享的。這是因?yàn)樗鼈兛梢酝ㄟ^ECC加以保護(hù),其硅面積成本能大幅降低(見圖4),實(shí)現(xiàn)非常強(qiáng)健的容錯(cuò)系統(tǒng)設(shè)計(jì)。
飛思卡爾Kinetis KV5x MCU系列的實(shí)現(xiàn)
Cortex-M7處理器的一個(gè)實(shí)現(xiàn)選擇示例是飛思卡爾最新發(fā)布的Kinetis KV5x MCU系列,這一可擴(kuò)充的MCU產(chǎn)品系列定位是面向電機(jī)控制和數(shù)字功率轉(zhuǎn)換應(yīng)用。在這一SoC中,Cortex-M7處理器選擇的部分配置選項(xiàng)包括整合16KB指令緩存和8KB數(shù)據(jù)緩存。此SoC將64位AXI總線用作嵌入式閃存存儲(chǔ)器的訪問端口。指令緩存和數(shù)據(jù)緩存確保駐留于嵌入式內(nèi)存中的控制軟件得以加速,支持所連的工業(yè)級(jí)控制用例所需的性能級(jí)別。除了緩存之外,Kinetis KV5x MCU系列還集成了64KB與ITCM接口連接的 SRAM、以及128KB與DTCM接口連接的SRAM。這可提供必要的處理器本地存儲(chǔ),以延遲性最低的內(nèi)存支持實(shí)時(shí)控制運(yùn)算。
Kinetis KV5x MCU配置僅僅是一個(gè)示例,說明了如何構(gòu)建SoC以應(yīng)對(duì)關(guān)注于聯(lián)網(wǎng)控制的特定應(yīng)用。隨著時(shí)間推移、以及互連應(yīng)用數(shù)量和多樣性的增加,未來必定會(huì)出現(xiàn)對(duì)SoC 設(shè)計(jì)的調(diào)節(jié),從而在Cortex-M7處理器上進(jìn)行更廣泛范圍的配置。性能水平與可比較的 Cortex-M4解決方案相比將可達(dá)到兩倍以上的提高,這將為嵌入式領(lǐng)域?qū)崿F(xiàn)更多的創(chuàng)新。憑借其可擴(kuò)充性、性能和可擴(kuò)展功能,可調(diào)節(jié)型Cortex-M7核心將在支持“明日物聯(lián)網(wǎng)”的舞臺(tái)中扮演重要的角色。(本文全文刊登在電子產(chǎn)品世界網(wǎng)站)
物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么
評(píng)論