潘 鋒
(四川信息職業(yè)技術(shù)學(xué)院 廣元 628040)
低功耗是超大規(guī)模集成電路(VLSI)設(shè)計(jì)的重要指標(biāo)[1]。在電力消耗中最節(jié)省的往往是在更高層次的設(shè)計(jì)中[2]。本文將重點(diǎn)放在行為合成過(guò)程中,將其作為一個(gè)設(shè)計(jì)的行為描述,并生成一個(gè)實(shí)現(xiàn)指定行為的寄存器傳輸級(jí)(RTL)電路[3]。行為綜合可以細(xì)分為幾個(gè)任務(wù),包括模塊選擇、時(shí)鐘選擇、調(diào)度和分配。其中,這些任務(wù)相互作用,單獨(dú)解決每個(gè)任務(wù)可能會(huì)影響設(shè)計(jì)的質(zhì)量。文獻(xiàn)[4]中給出了動(dòng)力優(yōu)化方面的開(kāi)拓性工作,它使用數(shù)據(jù)路徑復(fù)制和流水線來(lái)支持電源電壓伸縮。文獻(xiàn)[5]中提出了使用多種變換來(lái)降低功耗的方法。同時(shí),正確的模塊選擇[6]、調(diào)度和分配[7~8]也被利用在電力消耗減少中。雖然上述所有方法都執(zhí)行了一些行為合成任務(wù)的子集,通過(guò)減少供電電壓或減少開(kāi)關(guān)電容來(lái)降低功耗,但很少有人考慮各種任務(wù)的相互作用所涉及的權(quán)衡。
本文提出了一種用于低功耗數(shù)據(jù)路徑合成的迭代改進(jìn)算法,該算法執(zhí)行調(diào)度、時(shí)鐘選擇、模塊選擇和資源分配,目標(biāo)是減少功耗。并且它可以同時(shí)執(zhí)行這些任務(wù),從而探索這些任務(wù)相互依存性。
行為描述可以編譯成一個(gè)控制數(shù)據(jù)流圖(CD?FG),它是一個(gè)有向圖,由算術(shù)、邏輯、比較操作、延遲操作符、特殊的分支、合并、循環(huán)入口和出口組成頂點(diǎn),它們代表控制流結(jié)構(gòu)[9]。CDFG包含數(shù)據(jù)控制,它表示數(shù)據(jù)控制操作之間的關(guān)系[10]。圖1中所示的CDFG為兩個(gè)向量點(diǎn)積的計(jì)算。
圖1 CDFG時(shí)間表與任務(wù)的點(diǎn)積計(jì)算
在本研究中數(shù)據(jù)控制的行為描述在數(shù)字信號(hào)和圖像處理應(yīng)用中是很常見(jiàn)的。這些描述的兩個(gè)重要特征是:1)它們主要包括算術(shù)運(yùn)算,如加法、乘法和延遲運(yùn)算符等[11];2)輸入采樣周期的約束在下一次輸入樣例到達(dá)之前處理輸入的速度是固定的,但是處理輸入樣本的速度并不比要求的速度快[12]。
平均開(kāi)關(guān)電源在CMOS技術(shù)的中占主導(dǎo)地位的功耗為
其中,CL為門電路輸出電容,Vdd是電源電壓,N是周期T操作期間門輸出的過(guò)渡數(shù),電力消耗方程表明,由于其二次貢獻(xiàn)[13],供電電壓Vdd對(duì)功耗有很強(qiáng)的影響,與此同時(shí),電路的延遲會(huì)增加。CMOS的門延遲可以表示為
其中,Vth為設(shè)備的閾值電壓,k是依賴于柵極技術(shù)和晶體管尺寸的常數(shù)。因此,只有當(dāng)延遲降級(jí)不會(huì)導(dǎo)致延遲超過(guò)指定的約束,或者使用其他方法來(lái)防止延遲降級(jí)時(shí),才執(zhí)行Vdd擴(kuò)展。物理電容CL和過(guò)渡活動(dòng)N的乘積稱為交換電容,開(kāi)關(guān)電容項(xiàng)的影響雖然不像供應(yīng)電壓那樣劇烈,但也可以用于降低功耗。
調(diào)度過(guò)程決定了CDFG的循環(huán)周期行為,它將CDFG中的每個(gè)操作分配給一個(gè)或多個(gè)周期進(jìn)行控制步驟。圖1顯示了示例CDFG的進(jìn)度信息。標(biāo)記為數(shù)字的水平虛線表示時(shí)鐘的邊緣,即控制步驟之間的邊界。其中,+4將與+1、+2相同的控制步驟中執(zhí)行,且時(shí)鐘周期為55ns。這種鏈鎖技術(shù)[14]使得“多環(huán)”進(jìn)行一種互補(bǔ)的模式,即單個(gè)操作需要多個(gè)控制步驟來(lái)執(zhí)行。結(jié)構(gòu)流水線指的是在數(shù)據(jù)路徑中使用流水線執(zhí)行單元。顯然,時(shí)鐘周期的選擇影響到操作的控制步驟分配,而在CDFG中每個(gè)操作的延遲也是如此。這些值分別由時(shí)鐘選擇和模塊選擇任務(wù)決定,在調(diào)度、模塊選擇和時(shí)鐘選擇之間建立相互依賴關(guān)系。在同一控制步驟中活動(dòng)操作(變量)必須分配給不同的功能單元(寄存器)。例如,操作*1到*6必須由獨(dú)立的功能單元來(lái)執(zhí)行。由于調(diào)度影響了處理輸入樣本的速率,且也影響了減少Vdd的可能性。另一方面,調(diào)度影響交換電容,因?yàn)樗拗屏速Y源共享的可能性。
模塊選擇指的是在CDFG中選擇每一項(xiàng)操作的過(guò)程,即執(zhí)行它的功能單元類型。為了充分探索設(shè)計(jì)空間,需要有不同的功能單元模塊庫(kù)存在多個(gè)模塊能夠執(zhí)行每個(gè)操作(例如脈沖進(jìn)位加法器、超前進(jìn)位加法器,選擇加法器和陣列乘法器等[15])。
通過(guò)使用模塊選擇來(lái)執(zhí)行區(qū)域、延遲和功率三者間的關(guān)系。模塊選擇與時(shí)鐘選擇、調(diào)度和資源共享交互。在圖2中,由于模塊選擇被改變,時(shí)鐘周期也改為30ns。在模塊選擇期間被分配給不同功能單元的操作不能共享相同資源。本研究的算法將考慮交互作用的影響,并且綜合數(shù)據(jù)路徑。
圖2 備用調(diào)度分配模式
時(shí)鐘選擇是指控制器/數(shù)據(jù)路徑電路選擇合適的時(shí)鐘周期過(guò)程。時(shí)鐘周期Tclk,本文將CDFG的執(zhí)行時(shí)間等同于輸入采樣周期Ts,時(shí)鐘周期為Tclk時(shí),控制步驟的數(shù)量為
其中,表示小于或等于x的最大整數(shù)。選擇時(shí)鐘周期后,根據(jù)控制步驟計(jì)算各功能單元模塊的延遲。
由于時(shí)鐘粒度在松弛因子的作用下可能會(huì)小于功能單元而被完全利用[16],這將導(dǎo)致CDFG執(zhí)行所需的時(shí)間增加。在最大限度地減少功耗的情況下,松弛的時(shí)鐘粒度可以引起兩種不良影響:1)樣本周期不能滿足CDFG對(duì)Vdd的約束;2)導(dǎo)致具有更高開(kāi)關(guān)容量的數(shù)據(jù)路徑。因此,從能源消耗的角度來(lái)看,在降低功耗時(shí),單一目標(biāo)松弛最小化的方法不能直接適用。為了降低功耗,在選擇時(shí)鐘周期的情況時(shí),要盡量減少時(shí)鐘粒度的松弛性
資源共享是指使用相同的硬件資源(功能單元或寄存器)執(zhí)行不同的操作或多個(gè)變量存儲(chǔ)。資源共享嚴(yán)重影響功耗數(shù)據(jù)路徑中的電容和開(kāi)關(guān)活動(dòng)。其中,資源共享傾向于減少物理電容,但增加了數(shù)據(jù)路徑上的平均切換活動(dòng)。稀疏共享架構(gòu)的平均開(kāi)關(guān)活動(dòng)較低,但物理電容較高。本研究使用資源共享對(duì)開(kāi)關(guān)電容信號(hào)統(tǒng)計(jì)的影響。
假設(shè)庫(kù)中的函數(shù)單元具有切換電容的一些模型,因此,給定一對(duì)輸入向量可以計(jì)算出功能單元中交換的電容。這個(gè)過(guò)程可以使用隨機(jī)功率分析模型來(lái)實(shí)現(xiàn)。由用戶提供或者根據(jù)已知的輸入特性生成輸入序列對(duì)CDFG進(jìn)行功能模擬。在執(zhí)行功能模擬時(shí),使用CDFG中變量所取的值更新交換電容矩陣的數(shù)據(jù)結(jié)構(gòu)。其中,交換電容矩陣將交換電容成本與可映射到同一資源的每一對(duì)操作相關(guān)聯(lián),并為其在庫(kù)中的每個(gè)功能單元模塊創(chuàng)建一個(gè)單獨(dú)的切換電容矩陣。同時(shí),還要考慮功能單元模塊、波紋進(jìn)位加法器和加法運(yùn)算的綜合作用。
利用調(diào)度、時(shí)鐘選擇、模塊選擇和資源共享進(jìn)行一種復(fù)雜的方式交互,以確定數(shù)據(jù)路徑的功耗。由于功耗最小化問(wèn)題的計(jì)算復(fù)雜且不易得到最優(yōu)解或精確解,因此,本研究開(kāi)發(fā)一種有效的啟發(fā)式方法用于執(zhí)行上述任務(wù),以最大限度地減少功耗,目的使得Vdd擴(kuò)展和交換電容減少。利用程序估計(jì)最小電壓Vmin,并由用戶設(shè)置Vmin和Vmax(5V)之間的電壓間隔△V。對(duì)于Vdd和電子密度圖CSTEPS的組合生成一個(gè)滿足樣本周期約束的初始值,通過(guò)調(diào)用迭代改進(jìn)算法對(duì)數(shù)據(jù)路徑進(jìn)行合成,目的是在當(dāng)前Vdd和時(shí)鐘周期內(nèi)合成滿足采樣周期約束的數(shù)據(jù)通路,并且具有最小的開(kāi)關(guān)電容。在所有候選電源電壓和時(shí)鐘周期被修正后,最優(yōu)方案Best_DP包含最終的解決方案。低功率合成方法記作SCALP。
電源電壓Vdd修正的目的是識(shí)別出候選供應(yīng)電壓,這不會(huì)導(dǎo)致數(shù)據(jù)路徑的最低功率。本文所使用的Vdd修正方法是基于對(duì)當(dāng)前Vdd的交換電容約束。通過(guò)將CDFG中的每一個(gè)操作映射到具有最低開(kāi)關(guān)電容的功能單元模塊,并執(zhí)行模塊選擇完成并行架構(gòu)來(lái)實(shí)現(xiàn)數(shù)據(jù)路徑。由于并行架構(gòu)通常接近最低的開(kāi)關(guān)電容結(jié)構(gòu),因此計(jì)算過(guò)程中通常乘以一個(gè)修正系數(shù)λ(0≤λ≤1)來(lái)降低當(dāng)前Vdd中數(shù)據(jù)路徑所消耗的能量,在本文中使用了λ取0.8。如果這樣計(jì)算的界限大于最好的解決方案,那么可以對(duì)當(dāng)前的Vdd進(jìn)行修正。
給定一個(gè)理想的采樣周期Ts,對(duì)于時(shí)鐘周期Tclk滿足如下條件:
將候選時(shí)鐘周期的集合限制在有限的集合中,考慮兩個(gè)候選時(shí)鐘周期Tclk1和Tclk2,使得Tclk1<Tclk2。對(duì)于數(shù)據(jù)路徑庫(kù)中的每個(gè)功能單元模塊t,令rrdelayt表示寄存器之間的傳輸延遲,則
如果操作鏈接采用最大鏈接系數(shù)k,則式(5)計(jì)算的條件不僅對(duì)所有功能部件模塊適用,也可用于所有鏈接到k功能單元的組合模塊。
本文使用C++編程語(yǔ)言實(shí)現(xiàn)研究中所描述的SCALP方法。利用該方法從數(shù)字信號(hào)處理方面對(duì)SCALP進(jìn)行綜合評(píng)價(jià)。SCALP輸入初始化CDFG和樣本周期,輸出數(shù)據(jù)路徑和控制器以共同實(shí)現(xiàn)CDFG所指定的行為。用于組合控制器和數(shù)據(jù)路徑的網(wǎng)表使用邏輯合成工具SIS將其映射到MSU標(biāo)準(zhǔn)單元庫(kù)中。最后使用OCT軟件中的標(biāo)準(zhǔn)單元格布局和路由工具來(lái)獲得組合控制器和數(shù)據(jù)路徑的布局。Switch模擬器在模擬運(yùn)行過(guò)程中記錄交換電容,并用來(lái)執(zhí)行布局中提取的交換機(jī)模擬。
將每個(gè)基準(zhǔn)對(duì)應(yīng)從1.0~3.5的松弛因子各種可能值。對(duì)于每個(gè)基準(zhǔn)和松弛因子,由SCALP生成的能量?jī)?yōu)化體系結(jié)構(gòu),通過(guò)Vdd擴(kuò)展的優(yōu)化架構(gòu),使用與SCALP相似的方法進(jìn)行區(qū)域優(yōu)化。每個(gè)供應(yīng)電壓的優(yōu)化體系結(jié)構(gòu)按樣本周期約束程度進(jìn)行伸縮。由SCALP計(jì)算的控制器和電路數(shù)據(jù)路徑產(chǎn)生消耗的功率,見(jiàn)曲線S-POWER。Vdd放縮區(qū)域優(yōu)化架構(gòu),見(jiàn)曲線A-POWER。由SCALP生成的控制器和數(shù)據(jù)路徑合成布局區(qū)域,見(jiàn)曲線S-AREA。三者的對(duì)比如圖3和圖4所示。
圖3 利用WDF濾波器進(jìn)行實(shí)驗(yàn)
圖4 利用Elliptic濾波器進(jìn)行實(shí)驗(yàn)
在圖3和圖4中,WDF是一種數(shù)字FIR濾波器。Elliptic是一種五階橢圓濾波器。面積曲線用虛線繪制,功率曲線用實(shí)線繪制。曲線表明:由SCALP合成的電路比優(yōu)化電路的功率低7倍,電路消耗的功率比優(yōu)化后的功率低2.3倍,且合成電路的開(kāi)銷小于41%。從數(shù)值的平均角度觀察,在松弛因子分別為 1.0、1.5、2.0、2.5、3.0和 3.5條件下,SCALP計(jì)算出的數(shù)據(jù)路徑占區(qū)域面積分別為16%、24%、27%、24%、27%和27%。在128MB內(nèi)存的SPARC上,CPU運(yùn)行SCALP的時(shí)間小于20分鐘。
本文從調(diào)度操作、模塊選擇、時(shí)鐘選擇和資源分配四個(gè)任務(wù)對(duì)數(shù)據(jù)控制行為進(jìn)行了描述,并以減少電力消耗為目的,提出了一種高效的迭代改進(jìn)算法。與之前的研究不同,本文還考慮了這些任務(wù)之間的交互作用,通過(guò)修正電源電壓和時(shí)鐘周期兩個(gè)因素,改進(jìn)了交換電容產(chǎn)生功耗的數(shù)據(jù)路徑計(jì)算,實(shí)驗(yàn)結(jié)果證明了算法的有效性。
參考文獻(xiàn)
[1]龐志勇,譚洪舟,陳弟虎.一種改進(jìn)的低成本自適應(yīng)雙三次插值算法及VLSI實(shí)現(xiàn)[J].自動(dòng)化學(xué)報(bào),2013,39(04):407-417.
[2]朱文興,程泓.VLSI電路劃分問(wèn)題的分散搜索算法[J].電子學(xué)報(bào),2012,40(06):1207-1212.
[3]李艷,張東曉,于芳.RTL綜合中FPGA片上RAM工藝映射[J].電子學(xué)報(bào),2016,44(11):2660-2667.
[4]張露予,王博文,翁玲,等.螺旋磁場(chǎng)作用下磁致伸縮位移傳感器的輸出電壓模型及實(shí)驗(yàn)[J].電工技術(shù)學(xué)報(bào),2015,30(12):21-26.
[5]林志堂,郭昌堅(jiān),張朋濤.無(wú)線通信技術(shù)的低功耗處理技術(shù)研究[J].機(jī)電工程技術(shù).2017(02):209-212.
[6]杜世民,夏銀水,黃誠(chéng),等.一種有效的面向軟模塊的VLSI布圖規(guī)劃算法[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(04):50-56,68.
[7]陶鈞,仇悅,沈海斌.傳感器網(wǎng)絡(luò)中圖像小波處理的低存儲(chǔ)硬件實(shí)現(xiàn)[J].傳感器與微系統(tǒng),2013,32(09):16-20.
[8]路偉,余寧梅,南江涵,等.并行可配置的HEVC熵編碼的 VLSI結(jié)構(gòu)[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(03):121-124,144.
[9]朱小茹,王興偉,張爽,等.基于SDN和接觸圖的空間信息網(wǎng)絡(luò)路由機(jī)制[J].計(jì)算機(jī)科學(xué)與探索,2017(08):1-8.
[10]張駿,陳實(shí),郭岳東.基于Honeypot主動(dòng)防御系統(tǒng)的數(shù)據(jù)控制設(shè)計(jì)[J].電腦與信息技術(shù),2014,22(04):25-28.
[11]Sengupta A.Soft IP Core Design Resiliency Against Ter?restrial Transient Faults for CE Products[J].IEEE Con?sumer Electronics Magazine,2016,5(4):129-131.
[12]張珠庭.云計(jì)算數(shù)據(jù)控制層數(shù)據(jù)庫(kù)模型與節(jié)點(diǎn)構(gòu)建研究[J].數(shù)字技術(shù)與應(yīng)用,2013(12):39-40.
[13]趙軒.基于二叉樹(shù)算法數(shù)據(jù)控制層數(shù)據(jù)庫(kù)模型構(gòu)建[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,16(19):157-158.
[14]McIVER W R,CARTER H R,HARVEY A L,et al.Use of social attraction to restore Ashy Storm-Petrels Oceanodroma homochroa at Orizaba Rock,Santa Cruz Is?land,California[J].Marine Ornithology,2016,44:99-112.
[15]姚茂群,張立彬,耿亮.電流型CMOS脈沖D觸發(fā)器設(shè)計(jì)[J].電子與信息學(xué)報(bào),2014,36(09):2278-2282.
[16]陳銳,楊海鋼,王飛,等.基于粗粒度可重構(gòu)陣列結(jié)構(gòu)的多標(biāo)準(zhǔn)離散余弦變換設(shè)計(jì)[J].電子與信息學(xué)報(bào),2015,37(01):206-213.