新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 改進微控制器架構最大化提升其性能

        改進微控制器架構最大化提升其性能

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

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

          
        卸載CPU任務還有很多方法

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

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

        改進微控制器架構最大化提升其性能
        表1 DMA控制器能夠承擔通信外設管理的大部分工作

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

          熟知事件系統(event system)的開發人員就更少了。事件系統與DMA制器協同工作,可進一步減少CPU周期的負擔,并降低總體功耗。事件系統是一條總線,能夠將從微控制器上的一個外設發出的內部信號連接到另一個外設。當有事件在外設上發生時,它就可以在一個雙周期的延時內觸發其它外設采取行動,整個過程無需CPU參與,就和人體在手碰到火時無需大腦命令就自然做出反射動作的把手抽出來一樣。

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

        改進微控制器架構最大化提升其性能
        圖1 一個事件系統

          
        靈活的卸載

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

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

        改進微控制器架構最大化提升其性能
        圖2 DMA控制器配合事件系統

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


        DMA控制器和事件系統還支持多通道,使開發人員能夠配置一個與主CPU并行工作的互連結構,因此,可采用一種固定性方式來對多個并行實時任務進行協調。

        固定性和延時

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

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

          然而,在固定性和延時方面,開發人員遇到的大多數問題并非處理單個中斷這么簡單,而是當眾多中斷同時發生時,應如何在即時滿足所有要求。例如,如果有一個在75個周期內完成而優先權更高的中斷進入系統,前一個中斷的延時就會受到影響,因為它將被優先權更高的任務中斷。這時,優先權較低之任務的延時便會變為50到125個周期。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长海县| 本溪| 沂源县| 资源县| 广元市| 江口县| 乐平市| 土默特右旗| 新昌县| 灵台县| 延吉市| 苍山县| 哈密市| 镶黄旗| 乌兰县| 金阳县| 梅州市| 金门县| 甘孜| 夏河县| 长寿区| 营口市| 涞源县| 共和县| 赤水市| 东光县| 中江县| 大石桥市| 凌云县| 库尔勒市| 麟游县| 五大连池市| 靖安县| 马公市| 宁晋县| 柏乡县| 肇州县| 宁阳县| 湘潭县| 赤壁市| 临湘市|