淺談讓微控制器性能發(fā)揮極限的方法
如今微控制器需要執(zhí)行廣大范圍的任務(wù),包括管理實(shí)時(shí)控制算法、解碼高速通信協(xié)定,以及處理高頻傳感器發(fā)出的信號(hào)。微控制器是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過(guò)20多年的發(fā)展,其成本越來(lái)越低,而性能越來(lái)越強(qiáng)大,這使其應(yīng)用已經(jīng)無(wú)處不在,遍及各個(gè)領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類(lèi)電子、游戲設(shè)備、電話(huà)、HVAC、樓宇安全與門(mén)禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機(jī)、微波爐)等。微控制器(Microcontroller Unit,即MCU)可從不同方面進(jìn)行分類(lèi):根據(jù)數(shù)據(jù)總線(xiàn)寬度可分為8位、16位和32位機(jī);根據(jù)存儲(chǔ)器結(jié)構(gòu)可分為Harvard結(jié)構(gòu)和Von Neumann結(jié)構(gòu);根據(jù)內(nèi)嵌程序存儲(chǔ)器的類(lèi)別可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據(jù)指令結(jié)構(gòu)又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
本文引用地址:http://www.ex-cimer.com/article/148951.htm微控制器要想處理實(shí)時(shí)I/O和外設(shè)的高數(shù)據(jù)速率和頻率,便必須擁有更高的處理效率。但這個(gè)效率不能通過(guò)提高時(shí)鐘頻率來(lái)獲得,而是要通過(guò)微控制器架構(gòu)的內(nèi)部改進(jìn)來(lái)實(shí)現(xiàn)。
卸載CPU任務(wù)還有很多方法
集成式協(xié)處理器在嵌入式微控制器中已獲得相當(dāng)廣泛的應(yīng)用,其中比較常見(jiàn)的協(xié)處理器是加密和TCP/IP卸載引擎。協(xié)處理器可高效卸載整個(gè)任務(wù),或幫助執(zhí)行復(fù)雜算法中的密集計(jì)算部分。例如,一個(gè)加密引擎可以把CPU上的AES計(jì)算任務(wù)從每次運(yùn)算數(shù)千個(gè)周期縮減為數(shù)百個(gè)周期,而一個(gè)TCP/IP卸載引擎可以極小的CPU運(yùn)行支出來(lái)終止一個(gè)以太網(wǎng)連。
DMA控制器通過(guò)執(zhí)行數(shù)據(jù)訪(fǎng)問(wèn)(如在后臺(tái)執(zhí)行外設(shè)寄存器到內(nèi)部或外部SRAM的數(shù)據(jù)訪(fǎng)問(wèn)),從CPU卸載數(shù)據(jù)移動(dòng)管理任務(wù)。DMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,他允許不同速度的硬件裝置來(lái)溝通,而不需要依于 CPU 的大量 中斷 負(fù)載。否則,CPU 需要從 來(lái)源 把每一片段的資料復(fù)制到 暫存器,然后把他們?cè)俅螌?xiě)回到新的地方。在這個(gè)時(shí)間中,CPU 對(duì)于其他的工作來(lái)說(shuō)就無(wú)法使用。 DMA 傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。當(dāng) CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器 來(lái)實(shí)行和完成。典型的例子就是移動(dòng)一個(gè)外部?jī)?nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像是這樣的操作并沒(méi)有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對(duì)于高效能 嵌入式系統(tǒng) 算法和網(wǎng)絡(luò)是很重要的。在實(shí)現(xiàn)DMA傳輸時(shí),是由DMA控制器直接掌管總線(xiàn),因此,存在著一個(gè)總線(xiàn)控制權(quán)轉(zhuǎn)移問(wèn)題。即DMA傳輸前,CPU要把總線(xiàn)控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線(xiàn)控制權(quán)再交回給CPU。另外,DMA控制器還能夠承擔(dān)通信外設(shè)管理的大部分工作(見(jiàn)表1)。
表1 DMA控制器能夠承擔(dān)通信外設(shè)管理的大部分工作
利用DMA控制器所節(jié)省的周期數(shù)可以十分可觀:許多嵌入式開(kāi)發(fā)人員都已發(fā)現(xiàn)自己無(wú)法以有限的微控制器資源來(lái)滿(mǎn)足應(yīng)用的需求,直到認(rèn)識(shí)了DMA,才突然明白原來(lái)還有大量額外的周期可用,數(shù)目有時(shí)甚至多達(dá)整個(gè)系統(tǒng)的30%到50%左右。
熟知事件系統(tǒng)(event system)的開(kāi)發(fā)人員就更少了。事件系統(tǒng)與DMA制器協(xié)同工作,可進(jìn)一步減少CPU周期的負(fù)擔(dān),并降低總體功耗。事件系統(tǒng)是一條總線(xiàn),能夠?qū)奈⒖刂破魃系囊粋€(gè)外設(shè)發(fā)出的內(nèi)部信號(hào)連接到另一個(gè)外設(shè)。當(dāng)有事件在外設(shè)上發(fā)生時(shí),它就可以在一個(gè)雙周期的延時(shí)內(nèi)觸發(fā)其它外設(shè)采取行動(dòng)。
更確切地說(shuō),事件系統(tǒng)利用一個(gè)連接了CPU、數(shù)據(jù)總線(xiàn)和DMA控制器的專(zhuān)用網(wǎng)絡(luò)在整個(gè)微控制器上進(jìn)行信號(hào)路由(見(jiàn)圖1)。在正常情況下,外設(shè)必須中斷CPU來(lái)激活某個(gè)行動(dòng),包括讀取外設(shè)本身。而事件系統(tǒng)通過(guò)直接在外設(shè)之間發(fā)送相關(guān)事件,便可有效地使CPU擺脫這些中斷所帶來(lái)的負(fù)擔(dān)。CPU是一臺(tái)計(jì)算機(jī)的運(yùn)算核心和控制核心。CPU、內(nèi)部存儲(chǔ)器和輸入/輸出設(shè)備是電子計(jì)算機(jī)三大核心部件。電腦中所有操作都由CPU負(fù)責(zé)讀取指令,對(duì)指令譯碼并執(zhí)行指令的核心部件。其功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。所謂的計(jì)算機(jī)的可編程性主要是指對(duì)CPU的編程。 CPU由運(yùn)算器、控制器和寄存器及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的總線(xiàn)構(gòu)成。差不多所有的CPU的運(yùn)作原理可分為四個(gè)階段:提取(Fetch)、解碼(Decode)、執(zhí)行(Execute)和寫(xiě)回(Writeback)。
圖1 一個(gè)事件系統(tǒng)
靈活的卸載
DMA和事件系統(tǒng)配合工作,就可讓開(kāi)發(fā)人員卸載整個(gè)任務(wù),這與協(xié)處理器的作用很類(lèi)似,但兩者間的關(guān)鍵區(qū)別是協(xié)處理器不是可編程的。協(xié)處理器采用硬件來(lái)執(zhí)行一個(gè)已詳細(xì)定義的任務(wù),有時(shí)甚至是可配置的;而DMA控制器配合事件系統(tǒng)的可編程性使其適用于從最簡(jiǎn)單的到極復(fù)雜的各類(lèi)任務(wù)。在采用DMA和事件系統(tǒng)的情況下,DMA負(fù)責(zé)管理整個(gè)微處理器架構(gòu)上的數(shù)據(jù)傳輸;至于事件系統(tǒng)則控制這些低延時(shí)、高精度傳輸發(fā)生的時(shí)間。
圖2所示為事件系統(tǒng)與DMA共同工作的原理模塊示意圖。ADC連接一個(gè)傳感器,并會(huì)采集信號(hào)樣本。內(nèi)部計(jì)數(shù)器被設(shè)置為與采樣頻率相匹配,用以提供規(guī)律且精確的時(shí)間間隔。事件系統(tǒng)可以直接激活A(yù)DC的采樣,而無(wú)需中斷CPU,使采樣頻率比利用微控制器的時(shí)鐘更為精確。
圖2 DMA控制器配合事件系統(tǒng)
事件管理可擴(kuò)展為包含多個(gè)事件、連接多個(gè)外設(shè)的更復(fù)雜的配置。例如一個(gè)輸入信號(hào)(事件1)可觸發(fā)ADC采樣(事件2),并把數(shù)值存儲(chǔ)到DMA中(事件3),直到DMA緩沖器溢滿(mǎn)(事件4)。
DMA控制器和事件系統(tǒng)還支持多通道,使開(kāi)發(fā)人員能夠配置一個(gè)與主CPU并行工作的互連結(jié)構(gòu),因此,可采用一種固定性方式來(lái)對(duì)多個(gè)并行實(shí)時(shí)任務(wù)進(jìn)行協(xié)調(diào)。
固定性和延時(shí)
固定性在限制延時(shí)和管理實(shí)時(shí)嵌入式系統(tǒng)的響應(yīng)性方面扮演著關(guān)鍵的角色。系統(tǒng)的固定性越高,它的響應(yīng)性也就越穩(wěn)定。影響固定性的主要因素在于系統(tǒng)必須同時(shí)處理的中斷的數(shù)目。
評(píng)論