新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 讓微控制器性能發(fā)揮極限的方法

讓微控制器性能發(fā)揮極限的方法

作者: 時間:2012-01-17 來源:網(wǎng)絡(luò) 收藏

如今微需要執(zhí)行廣大范圍的任務(wù),包括管理實時控制算法、解碼高速通信協(xié)定,以及處理高頻傳感器發(fā)出的信號。輪詢(如檢查端口以確定新數(shù)據(jù)是否經(jīng)已到達)會消耗過多的CPU周期,而且對可靠服務(wù)I/O與外設(shè)的最大響應(yīng)時間也往往太長。對于大多數(shù)嵌入式應(yīng)用而言,開發(fā)人員以中斷來滿足對外設(shè)管理的實時要求。但中斷只能夠確定實時事件何時發(fā)生,開發(fā)人員仍然必須在數(shù)據(jù)丟失之前讓CPU直接參與讀取I/O和外設(shè)。處理一個中斷可能需要同時中斷其它對延時敏感的任務(wù),帶來任務(wù)轉(zhuǎn)換支出,并引發(fā)一系列棘手問題,諸如如何管理多個中斷同時發(fā)生時的延時,所有這些都會降低系統(tǒng)可預(yù)測性和處理器的效率。

要想處理實時I/O和外設(shè)的高數(shù)據(jù)速率和頻率,便必須擁有更高的處理效率。但這個效率不能通過提高時鐘頻率來獲得(因為需要更大功耗),而是要通過微架構(gòu)的內(nèi)部改進來實現(xiàn)。實際上,微控制器已經(jīng)開始集成用來卸載特殊任務(wù)模塊的協(xié)處理器、可加快無懲罰型(penalty-free)內(nèi)存訪問速度的多信道DMA控制器,以及能在內(nèi)部子系統(tǒng)之間發(fā)送信號以卸載I/O和外設(shè)管理任務(wù)的集成式事件系統(tǒng)。

卸載CPU任務(wù)還有很多

集成式協(xié)處理器在嵌入式微控制器中已獲得相當(dāng)廣泛的應(yīng)用,其中比較常見的協(xié)處理器是加密和TCP/IP卸載引擎。協(xié)處理器可高效卸載整個任務(wù),或幫助執(zhí)行復(fù)雜算法中的密集計算部分。例如,一個加密引擎可以把CPU上的AES計算任務(wù)從每次運算數(shù)千個周期縮減為數(shù)百個周期,而一個TCP/IP卸載引擎可以極小的CPU運行支出來終止一個以太網(wǎng)連接。此外,卸載引擎還能簡化這些任務(wù)的實現(xiàn)過程,使開發(fā)人員無需編寫擴充代碼,便可以通過使用簡單的API來加入先進的功能。

DMA和事件系統(tǒng)技術(shù)對開發(fā)人員來說是比較陌生的,因此并不常使用。DMA控制器通過執(zhí)行數(shù)據(jù)訪問(如在后臺執(zhí)行外設(shè)寄存器到內(nèi)部或外部SRAM的數(shù)據(jù)訪問),從CPU卸載數(shù)據(jù)移動管理任務(wù)。例如,開發(fā)人員可以配置DMA控制器,把一個數(shù)據(jù)塊預(yù)載入片上RAM中,這樣在CPU需要它之前就可以快速訪問,從而消除了等待狀態(tài)和相關(guān)延時。另外,DMA控制器還能夠承擔(dān)通信外設(shè)管理的大部分工作(見表1)。

表1 DMA控制器能夠承擔(dān)通信外設(shè)管理的大部分工作



利用DMA控制器所節(jié)省的周期數(shù)可以十分可觀:許多嵌入式開發(fā)人員都已發(fā)現(xiàn)自己無法以有限的微控制器資源來滿足應(yīng)用的需求,直到認識了DMA,才突然明白原來還有大量額外的周期可用,數(shù)目有時甚至多達整個系統(tǒng)的30%到50%左右。許多開發(fā)人員都是在遇到處理方面的困難時,才首次發(fā)現(xiàn)這種未開發(fā)的潛力,盡管實際上這種潛力從一開始就可以使用。

熟知事件系統(tǒng)(event system)的開發(fā)人員就更少了。事件系統(tǒng)與DMA制器協(xié)同工作,可進一步減少CPU周期的負擔(dān),并降低總體功耗。事件系統(tǒng)是一條總線,能夠?qū)奈⒖刂破魃系囊粋€外設(shè)發(fā)出的內(nèi)部信號連接到另一個外設(shè)。當(dāng)有事件在外設(shè)上發(fā)生時,它就可以在一個雙周期的延時內(nèi)觸發(fā)其它外設(shè)采取行動,整個過程無需CPU參與,就和人體在手碰到火時無需大腦命令就自然做出反射動作的把手抽出來一樣。

更確切地說,事件系統(tǒng)利用一個連接了CPU、數(shù)據(jù)總線和DMA控制器的專用網(wǎng)絡(luò)在整個微控制器上進行信號路由(見圖1)。在正常情況下,外設(shè)必須中斷CPU來激活某個行動,包括讀取外設(shè)本身。而事件系統(tǒng)通過直接在外設(shè)之間發(fā)送相關(guān)事件,便可有效地使CPU擺脫這些中斷所帶來的負擔(dān)。開發(fā)人員可以靈活配置外設(shè)來使用不同的事件通道,從而定義特定的事件路由,以滿足應(yīng)用的某些需求。


圖1 一個事件系統(tǒng)

靈活的卸載

DMA和事件系統(tǒng)配合工作,就可讓開發(fā)人員卸載整個任務(wù),這與協(xié)處理器的作用很類似,但兩者間的關(guān)鍵區(qū)別是協(xié)處理器不是可編程的。協(xié)處理器采用硬件來執(zhí)行一個已詳細定義的任務(wù),有時甚至是可配置的;而DMA控制器配合事件系統(tǒng)的可編程性使其適用于從最簡單的到極復(fù)雜的各類任務(wù)。在采用DMA和事件系統(tǒng)的情況下,DMA負責(zé)管理整個微處理器架構(gòu)上的數(shù)據(jù)傳輸;至于事件系統(tǒng)則控制這些低延時、高精度傳輸發(fā)生的時間。換言之,事件系統(tǒng)負責(zé)確保由DMA管理的數(shù)值在正確的時間/頻率下被采樣或輸出。

圖2所示為事件系統(tǒng)與DMA共同工作的原理模塊示意圖。ADC連接一個傳感器,并會采集信號樣本。內(nèi)部計數(shù)器被設(shè)置為與采樣頻率相匹配,用以提供規(guī)律且精確的時間間隔。事件系統(tǒng)可以直接激活A(yù)DC的采樣,而無需中斷CPU,使采樣頻率比利用微控制器的時鐘更為精確。當(dāng)ADC停止并完成轉(zhuǎn)換時,ADC便會觸發(fā)DMA通過事件系統(tǒng)存儲這些轉(zhuǎn)換值。



圖2 DMA控制器配合事件系統(tǒng)

事件管理可擴展為包含多個事件、連接多個外設(shè)的更復(fù)雜的配置。例如一個輸入信號(事件1)可觸發(fā)ADC采樣(事件2),并把數(shù)值存儲到DMA中(事件3),直到DMA緩沖器溢滿(事件4)。在這種配置中,CPU只有在緩沖器數(shù)據(jù)溢滿需要處理時才會被中斷。

DMA控制器和事件系統(tǒng)還支持多通道,使開發(fā)人員能夠配置一個與主CPU并行工作的互連結(jié)構(gòu),因此,可采用一種固定性方式來對多個并行實時任務(wù)進行協(xié)調(diào)。

固定性和延時

固定性在限制延時和管理實時嵌入式系統(tǒng)的響應(yīng)性方面扮演著關(guān)鍵的角色。系統(tǒng)的固定性越高,它的響應(yīng)性也就越穩(wěn)定。影響固定性的主要因素在于系統(tǒng)必須同時處理的中斷的數(shù)目。一般而言,系統(tǒng)里中斷的數(shù)量愈大,愈容易破壞系統(tǒng)的固定性。

假設(shè)一個系統(tǒng)只有一個中斷,并在50個周期內(nèi)完成。這樣一個中斷的延時相應(yīng)地在50個周期左右。要注意的是,即使最簡單的中斷,微控制器也需要約50個周期的時間來保存有限寄存器數(shù)目的環(huán)境信息,而且還需訪問外設(shè)、保存數(shù)據(jù)、存儲環(huán)境信息及清除管線。

然而,在固定性和延時方面,開發(fā)人員遇到的大多數(shù)問題并非處理單個中斷這么簡單,而是當(dāng)眾多中斷同時發(fā)生時,應(yīng)如何在即時滿足所有要求。例如,如果有一個在75個周期內(nèi)完成而優(yōu)先權(quán)更高的中斷進入系統(tǒng),前一個中斷的延時就會受到影響,因為它將被優(yōu)先權(quán)更高的任務(wù)中斷。這時,優(yōu)先權(quán)較低之任務(wù)的延時便會變?yōu)?0到125個周期。

當(dāng)更多的中斷出現(xiàn)時,優(yōu)先權(quán)較低之中斷的延時隨固定性的下降而增加。一個50周期的任務(wù)可能多次被中斷,并最終需要數(shù)百乃至數(shù)千個周期來完成。這一點十分重要,因為并非所有的中斷都具有高優(yōu)先權(quán),一切都是相對性的。

固定性直接影響到響應(yīng)性、可靠性和精度。當(dāng)開發(fā)人員確切知道延時是50或500個周期,便可以在處理時可將之考慮在內(nèi)。不過,如果延時介于50到500個周期之間,即便是最優(yōu)秀的開發(fā)人員,所能做的也不過是假設(shè)一個典型延時(如200個周期)數(shù)值,然后把所有的偏離視為誤差。此外,最壞的延時情況有可能出現(xiàn)在瀕臨實時期限的極值,威脅到系統(tǒng)的可靠性。

通過DMA控制器和事件系統(tǒng)來減少同時發(fā)生的中斷(即便是低頻中斷),可以大大提高系統(tǒng)的固定性并減小延時,而更高的固定性還有助于精度等其它重要因素的提升。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉