關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應用 > 現(xiàn)實標準和32位MCU

現(xiàn)實標準和32位MCU

——
作者:EEMBC聯(lián)盟 Markus Levy 時間:2007-04-27 來源:今日電子 收藏

當為下一代控制應用選擇時,必須考慮一點,就是面對某一實際的應用,不同供應商的處理器雖然在數(shù)據(jù)手冊上看起來或多或少有些相似,但實際上是非常不同的。雖然數(shù)據(jù)手冊中的規(guī)范和Dhrystone(處理器整型數(shù)計算能力)MIPS處理能力給出了一個粗略的評估標準,但必須考慮得更深入以保證有足夠的吞吐量和過載余量來滿足當前和未來的應用需求。

 

 

運行編譯EEMBC汽車標準代碼的測試結(jié)果顯示

運行編譯EEMBC汽車標準代碼的測試結(jié)果顯示:看起來類似的三款實際性能差別很大

例如,價格低廉、基于ARM的MCU一般具有很多資源,雖然它們中的許多是基于相同的CPU核,通常是沒有高速緩存的ARM7TDMI處理器,但不同供應商的產(chǎn)品整體性能差別非常大。這主要是由于實現(xiàn)片上存儲子系統(tǒng)、片上總線結(jié)構(gòu)和I/O功能所采用的方法不同。因此,為了確定哪一款處理器最有價值,就必須考察整個處理器子系統(tǒng)。

實時嵌入式應用

當在實時嵌入式應用中使用MCU時,MCU必須對所有操作做出確定性的響應,以保證任務在被分配的時間內(nèi)完成,響應延遲對于實時系統(tǒng)來說也必須很短。為了達到這個目標,MCU必須具有有效的硬件中斷管理子系統(tǒng),用于處理優(yōu)先

權(quán)、向量和返回機制。此外,存儲子系統(tǒng)不應該成為處理器的制約,它應該能夠及時的向處理器提供指令和數(shù)據(jù),以實現(xiàn)在指令執(zhí)行流中插入最少的等待狀態(tài)。

處理器也應該有一個有效的上下文切換機制,來保證當中斷改變指令流時損失的時間最短。內(nèi)部系統(tǒng)總線應該有確定的響應時間,用于支持對時間要求嚴格的操作。

基于ARM的眾多MCU提供了針對不同系統(tǒng)解決方案的廣泛選擇,這些方案的區(qū)別在于時鐘速率、集成外設(shè)、高容量閃存和靜態(tài)RAM等。由于內(nèi)部存儲子系統(tǒng)和系統(tǒng)總線效率,以及CPU對片上設(shè)備操作處理程度的差別,即使在相同時鐘頻率下,MCU的性能也存在著極大的差別。影響性能的一個關(guān)鍵問題就是片上閃存的訪問時間過長。

為了更好地評估處理器的性能,一些已經(jīng)開發(fā)出來了,例如由EEMBC(嵌入式微處理器基準聯(lián)盟),一個獨立的非營利組織正在開發(fā)的標準,可以對各種外部看起來相似的MCU之間的差別進行更深入的分析。

EEMBC在開發(fā)其評估標準套件時也面臨了巨大的挑戰(zhàn)。首先面對的就是開發(fā)測試軟件,它用于產(chǎn)生在一個應用中能夠代表實際性能的結(jié)果。這就表示要拋棄Dhrystone MIPS這一普遍采用的方法,該方法支持創(chuàng)建針對應用的測試,用于測試在汽車、網(wǎng)絡(luò)、電信、娛樂,以及其他中處理器的工作。第二個挑戰(zhàn)就是起草標準,它需能夠非常容易地移植到使用不同處理器的各種開發(fā)板中,并且在這些開發(fā)板中都能夠正常地運行,以評估每個MCU或MPU的性能。

逐個比較的理想基礎(chǔ)是每個MCU周圍的硬件環(huán)境都盡可能地一致,并使用同樣的編譯器。最近,采用EEMBC系列汽車/工業(yè)標準,在同樣的條件下測試ARM MCU的比例正在上升。

三款MCU進行測試的結(jié)果數(shù)據(jù)顯示其吞吐率存在極大的差別,如圖所示。在比較過程中,結(jié)果數(shù)據(jù)根據(jù)它們的工作頻率進行了歸一化處理,并且所有的軟件都是在片外閃存中運行的。比較的結(jié)果表明:基于ARM的MCU普遍具有很好的性能,部分的性能差別在于MCU中實現(xiàn)片上閃存接口的優(yōu)化方法不同。

改善CPU指令執(zhí)行的吞吐量

由于閃存的訪問時間通常是CPU時鐘周期的3~4倍,找到一種從存儲器中快速傳輸數(shù)據(jù),而不需要在昂貴的片內(nèi)RAM中映射數(shù)據(jù)的方法,會極大地改善執(zhí)行的吞吐量。對于測試結(jié)果中最快的那顆MCU,設(shè)計者通過展寬存儲器數(shù)據(jù)總線到128位,以允許4個字在一個周期中被傳輸?shù)綌?shù)據(jù)鎖存器,然后再傳輸?shù)筋A取緩沖,從而解決了速度不匹配的問題。

由于CPU使用緩沖中的數(shù)據(jù),當它執(zhí)行第4個字時,另一個128位的字就被傳輸?shù)搅随i存器中,而同時該第4個字被移出了緩沖,鎖存器中的新字也被傳輸?shù)搅司彌_。只要發(fā)起一個對閃存的數(shù)據(jù)讀訪問(裝入操作),輔助的支持電路就建立一個數(shù)據(jù)通路將128位數(shù)據(jù)存儲在緩沖中。這允許代碼獲取的歷史被保留,從而避免了需要重新獲取4個指令字的情況。

如果一個存儲器陣列(bank)可以在存儲器訪問中極大地提高速率,那么設(shè)置兩個存儲器陣列會怎樣呢?通過采用鎖存器將存儲器分成兩個陣列的結(jié)構(gòu),對于每個陣列所有的支持邏輯都相同,并可以具有兩倍的指令歷史,短循環(huán)就可以在所有的鎖存器中被完整捕獲,循環(huán)的執(zhí)行得以加速。另外一點,雙陣列也可以對嵌套循環(huán)和尋找分支目標地址提供更好的支持。

內(nèi)部總線支持

正如EEMBC的標準測試所揭示的那樣,CPU吞吐量只是衡量高性能的指標之一。對集成外設(shè)功能提供支持的MCU內(nèi)部總線也可能有很大的不同。內(nèi)部總線通常被連接到總線上的慢速設(shè)備所拖累,因此,更高速設(shè)備的數(shù)據(jù)傳輸就受到了限制。然而,通過采用總線分離的方法,將高速設(shè)備(例如10/100Mb/s以太網(wǎng)控制器或高速DMA控制器)連接到一段總線,而將低速設(shè)備(串行端口、定時器、脈寬調(diào)制器等)連接到另一段總線,就可以使每組設(shè)備發(fā)揮最好的性能。

通過在芯片內(nèi)建立分層的總線,CPU可以具有對片上RAM和閃存進行無約束訪問的局部總線。這就避免了CPU發(fā)出不必要的總線仲裁、總線批準延遲,以及總線等待狀態(tài)等,從而改善了整體性能。

對于要求高性能的功能,如向量式中斷控制器、以太網(wǎng)控制器、DMA控制器等,ARM高速總線(AHB)提供了對CPU的快速接口。慢速設(shè)備可以連接到ARM設(shè)備總線(APB)上,而且可以橋接到AHB,以使數(shù)據(jù)和指令從CPU和存儲器不被影響地傳輸?shù)降退倏偩€。

當CPU增加更多的片上資源時,對這種分層總線結(jié)構(gòu)的需求就更高。在許多實時控制應用中,采用單一總線拓撲結(jié)構(gòu)的處理器無法獲得有效的高性能I/O支持。

大量的集成外設(shè)也增加了CPU的工作量,CPU必須持續(xù)處理中斷和響應所有的外設(shè)操作。通過使用高性能、向量式中斷控制器,許多過量的操作會得到卸載,從而縮短了CPU的響應時間。EEMBC正在探索一種通用 的方法,測試MCU的集成外設(shè)并開發(fā)檢測處理器運行情況的標準。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉