如何利用FPGA降低手持設(shè)備MPU的功耗
掃描二維碼
隨時(shí)隨地手機(jī)看文章
消費(fèi)類(lèi)手持設(shè)備市場(chǎng)正呈跳躍式發(fā)展。便攜式產(chǎn)品處理能力不斷增加,所支持的應(yīng)用越來(lái)越多;產(chǎn)品更新?lián)Q代速度加快,新產(chǎn)品必須滿足上市時(shí)間要求,以便獲得最大的市場(chǎng)機(jī)會(huì);產(chǎn)品生命周期的縮短要求縮短開(kāi)發(fā)周期,同時(shí)更加強(qiáng)調(diào)可復(fù)用性和可重復(fù)編程能力。新興手持設(shè)備市場(chǎng)還有一個(gè)有趣的趨勢(shì),即一個(gè)系列中的每種設(shè)備的出貨量越來(lái)越少,但系列設(shè)備間的定制功能卻越來(lái)越多,進(jìn)而有效提升了產(chǎn)品的總出貨量。這樣,關(guān)鍵挑戰(zhàn)就變成了如何開(kāi)發(fā)一個(gè)可廣泛復(fù)用同時(shí)又可定制的系統(tǒng)。
為應(yīng)對(duì)上述挑戰(zhàn),越來(lái)越多的設(shè)計(jì)人員開(kāi)始使用FPGA進(jìn)行手持產(chǎn)品的開(kāi)發(fā)。FPGA的功能日益強(qiáng)大和豐富,而門(mén)數(shù)、面積和頻率也在不斷增加。FPGA的開(kāi)發(fā)和周轉(zhuǎn)時(shí)間要比定制ASIC短得多,可重復(fù)編程的額外優(yōu)勢(shì)使得FPGA成為手持嵌入式系統(tǒng)領(lǐng)域中頗具吸引力的解決方案。在基于ASIC或FPGA的設(shè)計(jì)中,設(shè)計(jì)人員必須認(rèn)真考慮某些性能標(biāo)準(zhǔn),他們面臨的挑戰(zhàn)主要體現(xiàn)在面積、速度和功耗方面。
與ASIC一樣,供應(yīng)商在FPGA設(shè)計(jì)中也需要應(yīng)對(duì)面積和速度的挑戰(zhàn)。隨著門(mén)數(shù)不斷增加,F(xiàn)PGA需要更大的面積和尺寸來(lái)適應(yīng)更多的應(yīng)用,設(shè)計(jì)工具需要采用更好的算法以便更有效地利用面積。不斷演進(jìn)的FPGA技術(shù)也給設(shè)計(jì)人員帶來(lái)一系列新的挑戰(zhàn),電源利用率就是其中之一,這對(duì)于為手持或便攜式設(shè)備設(shè)計(jì)基于FPGA的嵌入式系統(tǒng)來(lái)說(shuō)是急需解決的問(wèn)題。
嵌入式系統(tǒng)中的FPGA
典型的嵌入式系統(tǒng)由處理器、存儲(chǔ)器、包括USB、SPI、I2C在內(nèi)的標(biāo)準(zhǔn)接口以及液晶顯示器、音頻輸出等外設(shè)組成。設(shè)備的核心仍是處理器和處理器接口,它們通過(guò)板載連線連接到各個(gè)外設(shè)。系統(tǒng)性能主要取決于處理器性能,而處理器通常具有非常標(biāo)準(zhǔn)的架構(gòu),因而不容易定制。
有時(shí)處理器可能忙于處理來(lái)自低速外設(shè)的信息,雖然在這種情況下處理器使用率可能達(dá)到100%,但并不是在做以微處理器為中心的事務(wù),而是工作在特別低的性能水平。不管其內(nèi)核頻率是多少,微處理器必須等待來(lái)自低速時(shí)鐘的數(shù)據(jù)。這也會(huì)導(dǎo)致較高的功耗,因?yàn)樘幚砥鞯睦寐适?00%。其結(jié)果將縮短電池壽命,并且需要更大的散熱器或風(fēng)扇進(jìn)行冷卻,最終影響整個(gè)系統(tǒng)的可靠性。
于是,F(xiàn)PGA在這方面開(kāi)始發(fā)揮重要作用,因?yàn)樗鼈兡軓奶幚砥餍遁d許多外設(shè)交互任務(wù)。如圖1所示,利用標(biāo)準(zhǔn)千兆TCP/IP網(wǎng)絡(luò)實(shí)現(xiàn)的未壓縮音視頻數(shù)據(jù)流的嵌入式分布系統(tǒng)。它有一個(gè)專(zhuān)用DSP處理器,這個(gè)處理器通過(guò)一個(gè)標(biāo)準(zhǔn)總線接口與賽靈思的FPGA相接,F(xiàn)PGA再連接到各個(gè)低速外設(shè)。
圖1:用于音頻/視頻分布系統(tǒng)的FPGA架構(gòu)
作為啟動(dòng)開(kāi)發(fā)套件,這個(gè)FPGA通過(guò)I2S接口連接12位的PCM音頻輸入和12位的PCM音頻輸出;它還連接視頻編碼器和解碼器,并與I2C從器件和RS232器件進(jìn)行通信;連接到FPGA的通用I/O很少。與處理器相連的標(biāo)準(zhǔn)總線工作在高速的66MHz,而音頻外設(shè)工作在低速的1.182MHz;UART和I2C串行接口分別工作在56.6kHz和100kHz。由于數(shù)據(jù)傳輸發(fā)生在多個(gè)時(shí)鐘域,因而只有處理器能配置數(shù)據(jù)流。
在這種情況下,處理器不再與低速外設(shè)交互,而由FPGA從低速的PCM ADC音頻器件讀取數(shù)據(jù),并將數(shù)據(jù)存放在FPGA的內(nèi)部緩存中。處理器可以周期性地從這個(gè)緩存讀取數(shù)據(jù),或者當(dāng)緩存中有足夠數(shù)據(jù)時(shí),由FPGA向處理器發(fā)送一個(gè)中斷。這樣,處理器就有更多的時(shí)間執(zhí)行以處理器為中心的必要工作,在空閑時(shí)則進(jìn)入睡眠模式。
功耗問(wèn)題
在電池供電的嵌入式系統(tǒng)中,節(jié)能是最重要的考慮因素。功耗可以被分成三大類(lèi):?jiǎn)?dòng)功耗、靜態(tài)功耗和動(dòng)態(tài)功耗。設(shè)計(jì)人員無(wú)法控制啟動(dòng)功耗,而啟動(dòng)功耗在決定電源選型中扮演著重要的角色。大多數(shù)最大電流值指的就是這個(gè)階段所達(dá)到的值。但靜態(tài)功耗和動(dòng)態(tài)功耗是兩個(gè)不同的領(lǐng)域,通過(guò)合理的規(guī)劃和以下正確的指導(dǎo)原則,使用FPGA的嵌入式設(shè)計(jì)人員可以在功耗優(yōu)化方面作出顯著改進(jìn)。
靜態(tài)功耗是指系統(tǒng)不工作時(shí)仍有電流流過(guò)元件時(shí)產(chǎn)生的功耗,一般由器件偏置電流和漏電流引起。靜態(tài)功耗也取決于工作電壓,降低工作電壓可以降低靜態(tài)功耗,但這個(gè)策略并不總是掌握在設(shè)計(jì)人員手中。設(shè)計(jì)人員能做的是定義合理的架構(gòu),在這種架構(gòu)下需要使用的資源最少,同時(shí)盡可能使用資源共享,并以最高效的方式使用FPGA模塊。
減少靜態(tài)功耗的另外一種技術(shù)是在設(shè)計(jì)周期早期進(jìn)行功耗預(yù)估,改變拓?fù)浠蚴褂貌煌腎P模塊。例如,賽靈思的xPower Estimator工具這時(shí)就非常有用,它能很早知道設(shè)計(jì)是否滿足功耗預(yù)算。早期階段的功耗預(yù)估也許不完全準(zhǔn)確,但作為指導(dǎo)工具確實(shí)很有幫助。
動(dòng)態(tài)功耗是由于FPGA門(mén)的一些行為(比如信號(hào)開(kāi)關(guān))引起的,當(dāng)兩個(gè)門(mén)暫時(shí)導(dǎo)通時(shí),將產(chǎn)生電流流動(dòng)和電容。信號(hào)開(kāi)關(guān)的速度決定了功耗的大小。影響動(dòng)態(tài)功耗的另外一個(gè)因素是電路內(nèi)部結(jié)構(gòu)中形成的固有電容。動(dòng)態(tài)功耗是時(shí)鐘頻率、正在開(kāi)關(guān)的門(mén)數(shù)量和這些門(mén)開(kāi)關(guān)速率的函數(shù)。門(mén)扇出和走線上的電容負(fù)載會(huì)增加動(dòng)態(tài)功耗,并且功耗值正比于電容、電壓和頻率平方的乘積。
設(shè)計(jì)人員對(duì)這種功耗具有最大的控制能力,他們可以利用許多技術(shù)實(shí)現(xiàn)動(dòng)態(tài)功耗的最大改善。降低信號(hào)開(kāi)關(guān)頻率可以使功耗呈指數(shù)式下降。正如圖1所示,用于UART的控制邏輯、奇偶校驗(yàn)或幀超限錯(cuò)誤都發(fā)生在速度較低的時(shí)鐘域。即使門(mén)數(shù)沒(méi)有減少,功耗也會(huì)下降。設(shè)計(jì)人員還可以通過(guò)降低整體工作頻率(如果可行的話)來(lái)減小動(dòng)態(tài)功耗。例如,在完成可行性和性能分析后,設(shè)計(jì)人員決定上述設(shè)計(jì)不僅能工作在133MHz,也能工作在66MHz。DSP支持這兩種速率,而減小電壓也有助于降低功耗。
另外一種技術(shù)是減少處于工作模式的有效門(mén)數(shù)。有時(shí)某部分邏輯雖然在開(kāi)機(jī)時(shí)被打開(kāi)和配置,但實(shí)際上不要求做任何事情。例如,模擬音頻捕獲單元處于工作狀態(tài),設(shè)備卻不在執(zhí)行任何數(shù)字SPDIF音頻捕獲。在這種情況下,一般的數(shù)字SPDIF音頻捕獲電路仍將執(zhí)行數(shù)據(jù)采樣、雙相解碼等工作,因而無(wú)謂地浪費(fèi)功率。如果禁用整個(gè)數(shù)字SPDIF音頻捕獲電路,使電路中不發(fā)生任何信號(hào)開(kāi)關(guān)動(dòng)作,那么動(dòng)態(tài)功耗將會(huì)顯著降低。
設(shè)計(jì)人員可以禁用傳送到這部分電路的時(shí)鐘來(lái)達(dá)到這個(gè)目的。一種簡(jiǎn)單的做法是將時(shí)鐘信號(hào)與使能信號(hào)相“與(AND)”,如圖2所示。如果使能信號(hào)是低電平,那么與門(mén)的輸出將保持低電平。如果使能信號(hào)為高電平,與門(mén)將輸出時(shí)鐘信號(hào)。
圖2:一種簡(jiǎn)單的時(shí)鐘選通機(jī)制
還可以使用其它方法。如果可能并且拓?fù)溆种С值脑挘梢酝ㄟ^(guò)復(fù)接地址和數(shù)據(jù)線來(lái)減少信號(hào)線數(shù)量。在我們這個(gè)例子中,到視頻編碼器的輸出是16位數(shù)據(jù),我們可以把它復(fù)接成8位,然后分別在時(shí)鐘的兩個(gè)沿(上升沿和下降沿)發(fā)送出去。這樣做也能節(jié)省動(dòng)態(tài)功耗。此外,選擇串行接口代替并行接口也能降低功耗。使用帶較低電容負(fù)載的LVTTL或LVCMOS I/O也很有用。
嵌入式處理器
將處理器嵌入到FPGA中是手持設(shè)備設(shè)計(jì)人員可以采用的又一種策略,它可以帶來(lái)很多好處。首先,減少了定制處理器帶來(lái)的上述挑戰(zhàn)。其次,外設(shè)和處理器之間的交互發(fā)生在FPGA內(nèi)部,因而可以減少I(mǎi)/O數(shù)量。由于I/O會(huì)消耗相當(dāng)多的功率,此舉也能達(dá)到一定程度的節(jié)能效果。賽靈思的Virtex-5版本支持PowerPC 440處理器、硬處理器和MicroBlaze軟處理器,所有這些處理器都可以被設(shè)計(jì)人員用來(lái)創(chuàng)建高端或低端應(yīng)用系統(tǒng)。
隨著90m和65nm半導(dǎo)體技術(shù)的發(fā)明,門(mén)的尺寸在不斷縮小,導(dǎo)致靜態(tài)功耗問(wèn)題越來(lái)越突出,在對(duì)功耗指標(biāo)越來(lái)越敏感的今天,這是一個(gè)極具挑戰(zhàn)性的現(xiàn)象。由于功耗問(wèn)題獲得了眾多FPGA供應(yīng)商的重視,在這個(gè)領(lǐng)域中已出現(xiàn)許多令人興奮的新技術(shù)。低功耗設(shè)計(jì)將決定一個(gè)系統(tǒng)的集成能力有多強(qiáng),業(yè)界也迫切需要將注重功耗的設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)化。