張瑩月, 黃嵩人**
(1.湘潭大學(xué) 物理與光電工程學(xué)院,湖南 湘潭 411105;2.湖南進(jìn)芯電子科技有限公司,長(zhǎng)沙 410205)
隨著SOC的不斷發(fā)展,片上存儲(chǔ)器的容量的不斷增大,片上存儲(chǔ)器消耗的功耗也隨之增大[1]。當(dāng)前,SOC芯片中片上緩存和存儲(chǔ)器所占的面積已經(jīng)超過(guò)了50%,降低片上存儲(chǔ)器的功耗對(duì)于降低系統(tǒng)的功耗相當(dāng)重要,存儲(chǔ)器的功耗的優(yōu)化是降低系統(tǒng)能耗最有前景和最有可能成功的方法。這也是未來(lái)低功耗設(shè)計(jì)的一個(gè)重要方向[2]。
DSP[3-4]作為一種實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)運(yùn)算的微處理器,其對(duì)運(yùn)算能力的要求很高。由于ROM的非易失性[5-8]和可靠性,且DSP應(yīng)用于手持式設(shè)備,所以用ROM來(lái)進(jìn)行存儲(chǔ)固化的bootloader,科學(xué)函數(shù)庫(kù),功能函數(shù)庫(kù)以及主應(yīng)用程序。如圖1所示,為ROM 的代碼分區(qū)功能結(jié)構(gòu)圖。
圖1 ROM 代碼分區(qū)功能結(jié)構(gòu)圖Fig. 1 Structure diagram of ROM code partitioning function
圖2所示的是直接整塊進(jìn)行訪問(wèn)的不足,現(xiàn)在提出了一種對(duì)存儲(chǔ)器進(jìn)行物理分區(qū)分組的方法來(lái)進(jìn)行功耗的優(yōu)化,這種分區(qū)可以通過(guò)控制電路來(lái)選擇和關(guān)斷不同的區(qū),這樣沒(méi)有訪問(wèn)的區(qū)就關(guān)斷,實(shí)現(xiàn)存儲(chǔ)器低功耗。如圖3分區(qū)結(jié)構(gòu)框圖所示,對(duì)存儲(chǔ)器進(jìn)行等分,將存儲(chǔ)體分了兩個(gè)區(qū),一個(gè)區(qū)是32 k,這樣,當(dāng)64 k分成兩個(gè)32 k時(shí),可以進(jìn)行單獨(dú)訪問(wèn)其中的任意一個(gè)區(qū),其中每個(gè)存儲(chǔ)器分區(qū)都可以通過(guò)存儲(chǔ)器分區(qū)的訪問(wèn)次數(shù)乘以每次的訪問(wèn)能耗估計(jì)到。圖4所示的是其中一個(gè)區(qū)的內(nèi)部結(jié)構(gòu)圖,把空間分成了32個(gè)塊的子存儲(chǔ)體。單對(duì)存儲(chǔ)器而言,它的功耗來(lái)源主要是來(lái)自存儲(chǔ)單元陣列、譯碼器和外圍電路。一個(gè)m列n行的現(xiàn)代CMOS存儲(chǔ)器的近似統(tǒng)一公式為:P=VDDIDD,其中,IDD=Iarray+Idecode+Iperiphery=[miact+m(n-1)ihld+[(n+m)CDEVintf]+[CPTVintf+IDCP],整體結(jié)構(gòu)如圖4所示,把其中一個(gè)區(qū)分成32個(gè)子模塊,這么做可以把存儲(chǔ)器的工作功耗限制在整個(gè)存儲(chǔ)陣列的有限區(qū)域內(nèi),那么未被使用的存儲(chǔ)器單元應(yīng)當(dāng)只消耗維持?jǐn)?shù)據(jù)所消耗的功耗。其實(shí)這是屬于底層存儲(chǔ)器分割技術(shù)[9],通過(guò)分割,把一個(gè)位線分成幾個(gè)位線,它們只在被尋址時(shí)才啟動(dòng),從而降低了每一次讀過(guò)程的切換電容,這樣做可以使本地字線和位線的長(zhǎng)度保持在一定的界限內(nèi),提高速度,提高訪問(wèn)效率和縮短尋址時(shí)間。A[14:5]是行列選擇信號(hào),A[4:0]用來(lái)選擇每一個(gè)子存儲(chǔ)體,這就是塊地址,塊地址只用來(lái)激活被尋址的塊。未被尋址的塊處于關(guān)閉狀態(tài),他們的靈敏放大器和行和列譯碼器都不工作,這樣可以節(jié)省較多的功耗。
圖2 優(yōu)化前方案框圖Fig. 2 The block diagram of the scheme beforeoptimization
圖3 現(xiàn)有優(yōu)化方案框圖Fig. 3 Block diagram of the existing optimization scheme
圖4 區(qū)內(nèi)結(jié)構(gòu)框圖Fig. 4 Block diagram of the structure in the area
但是這種一個(gè)區(qū)的物理分割太多,額外的邏輯電路會(huì)增多,在版圖層面互聯(lián)線的并行走線會(huì)很多,影響速度、延時(shí)和功耗;分區(qū)又太少,訪問(wèn)驅(qū)動(dòng)的面積沒(méi)有達(dá)到最小的效果;而且這種方式并沒(méi)有考慮這些被訪問(wèn)的地址的頻繁度,沒(méi)有對(duì)地址進(jìn)一步的進(jìn)行改進(jìn),這樣在時(shí)間分布上,對(duì)ROM進(jìn)行訪問(wèn)時(shí)驅(qū)動(dòng)的存儲(chǔ)塊的面積明顯不是最優(yōu)的,導(dǎo)致功耗的浪費(fèi)。
在嵌入式系統(tǒng)中降低存儲(chǔ)器的功耗,主要在兩個(gè)方面,一是降低訪問(wèn)存儲(chǔ)器時(shí)的能耗,在數(shù)據(jù)占主導(dǎo)的嵌入式系統(tǒng)應(yīng)用中是功耗預(yù)算的主要部分,二是降低DSP處理器和存儲(chǔ)器之間的通信帶寬,最小化處理器和存儲(chǔ)器之間信息交換的能耗。至于存儲(chǔ)器的傳輸優(yōu)化中,優(yōu)化處理器和存儲(chǔ)器之間的帶寬是一個(gè)很好的方法,它既可以降低存儲(chǔ)器的功耗又能降低總線的功耗。方案主要是從降低訪問(wèn)存儲(chǔ)器的能耗來(lái)降低功耗的。
基于上述提到的現(xiàn)有的分區(qū)的種種缺點(diǎn),在上述現(xiàn)有的分區(qū)的基礎(chǔ)上進(jìn)行重新分區(qū)以及運(yùn)用地址聚類的方式對(duì)其訪問(wèn)輪廓進(jìn)行修改達(dá)到降低功耗的目的。如圖5所示,把64 k等分成4個(gè)16 k的存儲(chǔ)塊,這樣可以進(jìn)一步減小每次驅(qū)動(dòng)的面積,從而使功耗也隨之降低。但是,任意小的分區(qū)是不被允許的,因?yàn)檫^(guò)多的小存儲(chǔ)組會(huì)浪費(fèi)大量的面積,并且嚴(yán)重增加線路開銷,從而增加通信和執(zhí)行能耗。當(dāng)存儲(chǔ)器組增加后,由于增加了復(fù)制尋址和控制的邏輯電路以及增加了傳遞信息的信息源,明顯增大了功耗、訪問(wèn)時(shí)間和面積,所以尋找一個(gè)最佳分區(qū)極為重要。在本款高性能定點(diǎn)的DSP中的ROM,采用了等分4塊組的方法進(jìn)行分區(qū),使每一塊的驅(qū)動(dòng)面積比之前更小,降低了功耗。不會(huì)因過(guò)多地分區(qū),導(dǎo)致功耗和面積的增加,影響DSP的功耗和面積。同時(shí)也保證了DSP的性能不受影響。圖6所示,是每個(gè)16 k的底層結(jié)構(gòu)框圖,可以看出,它被分割為32個(gè)子存儲(chǔ)體,這樣分割會(huì)減少每一讀操作時(shí)切換電容。從而減小功耗,這是底層降功耗的常用方法。譯碼單元應(yīng)緊密的搭接到存儲(chǔ)器內(nèi)核,否則就會(huì)造成布線的極大浪費(fèi),以及由此引起的延時(shí)和功耗的增加。所以在每一組的ROM中采用對(duì)稱的方式把譯碼器放在各個(gè)子存儲(chǔ)體的中間的位置,這樣也有利于延時(shí)的優(yōu)化和此存儲(chǔ)器的功耗的降低。
圖5 優(yōu)化后方案框圖Fig. 5 Block diagram of the optimized scheme
提出了在合理分區(qū)的基礎(chǔ)上與地址聚類技術(shù)相結(jié)合,相比于直接分區(qū),這樣的做法可以讓能耗降低5%~55%。地址聚類是指重組(通過(guò)其他硬件)送給存儲(chǔ)器的地址路徑,這樣可以使存儲(chǔ)器分區(qū)的工具最大化[10]。
在DSP正常工作時(shí)會(huì)啟動(dòng)固化的bootloader,對(duì)科學(xué)函數(shù)庫(kù),功能函數(shù)庫(kù)以及主應(yīng)用程序訪問(wèn)頻繁,在頻繁訪問(wèn)的科學(xué)函數(shù)、功能函數(shù)中有些基函數(shù)會(huì)被更加頻繁的訪問(wèn),應(yīng)用程序中有部分程序也被頻繁調(diào)用。把這些訪問(wèn)次數(shù)較多的地址所映射的數(shù)據(jù)放在其中一個(gè)存儲(chǔ)器塊中,這樣對(duì)于訪問(wèn)頻繁的地址所映射的數(shù)據(jù)就可以在一個(gè)塊中被訪問(wèn),就不用驅(qū)動(dòng)整個(gè)ROM,沒(méi)訪問(wèn)的存儲(chǔ)塊就被關(guān)閉,這樣功耗就會(huì)降低的比較可觀。由于大量的訪問(wèn)都集中在一個(gè)小的、高能耗的存儲(chǔ)器中,降低了ROM訪問(wèn)的平均熱量,如圖7所示,熱門地址所映射的數(shù)據(jù)放在第一個(gè)和第二個(gè)存儲(chǔ)塊中,這樣,第一個(gè)和第二個(gè)存儲(chǔ)塊會(huì)被更加頻繁的訪問(wèn),那么就會(huì)進(jìn)一步地縮小頻繁訪問(wèn)的存儲(chǔ)空間范圍,進(jìn)而優(yōu)化功耗。綜上所述,在對(duì)ROM合理分區(qū)的基礎(chǔ)上對(duì)地址路徑的重組,使得ROM在底層的位線分割更優(yōu)化從而減小了讀操作的切換電容。合理分區(qū)后,對(duì)ROM進(jìn)行訪問(wèn)時(shí),可以禁止或者關(guān)斷不訪問(wèn)的區(qū)塊,這樣訪問(wèn)小塊能減少驅(qū)動(dòng)面積從而降低功耗,同時(shí)訪問(wèn)小塊也能縮短延時(shí),在SOC上其中一個(gè)重要問(wèn)題就是采用的是同步時(shí)鐘,所以延時(shí)是一個(gè)必須要考慮的問(wèn)題,這樣的分區(qū)方式就保證了整個(gè)處理器的性能。再者,從處理器核和ROM之間的傳輸和信息交換所消耗的能量的角度來(lái)說(shuō),分塊縮短了時(shí)延。在一定范圍內(nèi),縮短延時(shí)能改善帶寬,從而在一定程度上,降低處理器核和ROM之間傳輸功耗。再對(duì)其進(jìn)行地址路徑進(jìn)行重組,把相對(duì)訪問(wèn)頻繁的地址映射到其中某個(gè)區(qū),可使熱門地址所映射數(shù)據(jù)的訪問(wèn)比較集中,ROM訪問(wèn)的平均能量會(huì)減小從而降低功耗。
圖6 優(yōu)化后區(qū)內(nèi)結(jié)構(gòu)框圖Fig. 6 Block diagram of the structure in the optimized area
圖7 地址重組方案框圖Fig. 7 Block diagram of address reorganization scheme
在降低ROM功耗時(shí)顯然要考慮在整個(gè)存儲(chǔ)器分區(qū)系統(tǒng)中譯碼器和控制信號(hào)的能耗,外圍電路的工作功耗的維持功耗很大,因此要把像靈敏放大器這樣的電路在不工作的時(shí)候關(guān)斷。
提出的分區(qū)方式就是通過(guò)額外的控制電路,進(jìn)行每個(gè)區(qū)塊獨(dú)立譯碼,訪問(wèn)時(shí)才打開譯碼器,這樣會(huì)降低了較多功耗。同時(shí)在嵌入式電路中外圍電路的性能對(duì)整個(gè)數(shù)字系統(tǒng)的速度和功耗具有極大的影響。如圖6所示放置方式,這種放置方式無(wú)論從走線上還是從版圖上對(duì)于ROM的功耗優(yōu)化是積極的,但是作為一個(gè)嵌入式片上器件來(lái)說(shuō),不能僅僅考慮自身的性能與功耗,而是要從整個(gè)DSP性能與功耗的角度考慮。圖6固然是最想要的結(jié)果,但由于整個(gè)數(shù)字系統(tǒng)時(shí)序優(yōu)化[11]還有其他性能的要求、面積的限制、成本、DSP整個(gè)微處理器的布局規(guī)劃的要求等,采用了如圖8所示的方式對(duì)外圍電路整體位置進(jìn)行擺放,可進(jìn)一步優(yōu)化處理器的時(shí)序,即改善了處理器與ROM之間的傳輸帶寬,從而降低了處理器核與ROM之間進(jìn)行信息交換的能耗。雖然在這種情況下對(duì)于存儲(chǔ)器自身的功耗是不利的,但基于整個(gè)DSP整體性能角度的考慮,必須要在傳輸功耗和自身功耗之間進(jìn)行折中,明顯,方案選擇了前者。如果在這種情況下,要進(jìn)一步降低ROM自身的功耗,必須在前面所有的基礎(chǔ)上降低電壓,對(duì)于降低功耗來(lái)說(shuō),降低電壓是非常有效的方法,但是嵌入式系統(tǒng)比外部存儲(chǔ)器有更多的系統(tǒng)電源要求,所以降低電壓時(shí)也要進(jìn)行折中考慮。
圖8 外圍電路位置擺放框圖Fig. 8 Block diagram of peripheral circuit position
圖9所示是改進(jìn)前的ROM功能波形仿真圖,一共有4個(gè)端口,一個(gè)讀使能,一個(gè)是時(shí)鐘端,還有一個(gè)地址端和數(shù)據(jù)端。由圖8可知,當(dāng)時(shí)鐘上升沿來(lái)臨時(shí),讀使能處于低電平,此時(shí)讀入地址,當(dāng)使能結(jié)束,時(shí)鐘處于高電平時(shí),讀出數(shù)據(jù)。此ROM可以在1.62~1.98 V和-40~125 ℃范圍內(nèi)正常工作。由圖10和圖11的仿真波形可知,此ROM功能的正確性。
圖9 此ROM 的時(shí)序功能圖Fig. 9 Sequence function diagram of this ROM
圖10 改進(jìn)前ROM功能仿真波形圖Fig. 10 ROM function simulation waveform before improvement
圖11 改進(jìn)后ROM功能仿真波形圖Fig. 11 ROM function simulation waveform after improvement
圖12和圖13是這款DSP的熱點(diǎn)分布圖,高亮區(qū)域?yàn)楦邷貐^(qū),即區(qū)域電流很大,為高功耗區(qū)。圖12是優(yōu)化前的熱點(diǎn)分布圖,由圖12看出,圖中有明顯的高溫亮點(diǎn),此區(qū)功耗較大;圖13是最后優(yōu)化后的熱點(diǎn)分布圖,可以看出,優(yōu)化后與優(yōu)化前相比,ROM周圍區(qū)域已無(wú)明顯亮點(diǎn),且整個(gè)DSP范圍內(nèi)亮點(diǎn)減少,功耗降低。
表1是在DSP內(nèi)核電壓1.8 V和IO電壓3.3 V情況下,改進(jìn)前后DSP的功耗變化數(shù)據(jù)。
由表1可以看出:在主頻不同時(shí)如從15 Mhz到150 Mhz,從表1數(shù)據(jù)可以看出,隨著頻率的提高,ROM對(duì)整個(gè)處理器影響越大,功耗降低得越明顯,在150 M時(shí),從153 mA降低到137 mA。總體上,優(yōu)化后比優(yōu)化前功耗降低了大約11.3%。
圖12 改進(jìn)前芯片熱點(diǎn)圖Fig. 12 Chip hotspot map before improvement
圖13 改進(jìn)后芯片熱點(diǎn)圖Fig. 13 Chip hotspot map after improvement
表1 改進(jìn)前后功耗數(shù)據(jù)對(duì)比表Table 1 Comparison of power consumption data before and after improvement
針對(duì)片上ROM應(yīng)用于DSP時(shí)現(xiàn)有的功耗優(yōu)化方法對(duì)DSP的速度、時(shí)延、和整體功耗的不良影響特點(diǎn),提出了一種合理分區(qū)結(jié)合地址重組的方法,使片上ROM 應(yīng)用于DSP時(shí)得到更大的功耗優(yōu)化;又基于DSP本身性能、面積、成本的前提下,在前面所提的合理分區(qū)和地址重組的基礎(chǔ)上改變外圍電路位置的擺放,通過(guò)時(shí)序的優(yōu)化改善帶寬,降低處理器核和片上ROM的傳輸功耗。方案已經(jīng)成功流片并改版,并且已通過(guò)測(cè)試驗(yàn)證該方案的正確性。