關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 現(xiàn)實(shí)標(biāo)準(zhǔn)和32位MCU

現(xiàn)實(shí)標(biāo)準(zhǔn)和32位MCU

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

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

 

 

運(yùn)行編譯EEMBC汽車標(biāo)準(zhǔn)代碼的測試結(jié)果顯示

運(yùn)行編譯EEMBC汽車標(biāo)準(zhǔn)代碼的測試結(jié)果顯示:看起來類似的三款實(shí)際性能差別很大

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

實(shí)時(shí)嵌入式應(yīng)用

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

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

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

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

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

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

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

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

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

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

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

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

內(nèi)部總線支持

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

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

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

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

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



評論


相關(guān)推薦

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

關(guān)閉