零翻轉編碼地址總線(xiàn)SoC的低功耗設計

發(fā)布時(shí)間:2010-4-13 09:18    發(fā)布者:蹦蹦
關(guān)鍵詞: SoC , 地址 , 翻轉 , 功耗 , 總線(xiàn)
引言

面向便攜式設備的SoC設計,不僅僅要求性能高、體積小,更要求功耗低。一般而言,SoC的靜態(tài)功耗很小,而對負載電容充放電的動(dòng)態(tài)功耗很大。

SoC內部,總線(xiàn)上掛著(zhù)很多功能設備,導致總線(xiàn)的電容負載很大。如果總線(xiàn)與片外設備聯(lián)系,那么,它還要驅動(dòng)很長(cháng)的片外連線(xiàn)以及片外設備,負載高達50pF,比SoC內部各個(gè)節點(diǎn)的電容負載0.05pF高出三個(gè)量級。一般而言,總線(xiàn)的功耗占SoC總功耗的10%~80%;一個(gè)已經(jīng)對內部電路優(yōu)化過(guò)的SoC,總線(xiàn)功耗約占50%[1]。隨著(zhù)寬度的增加,總線(xiàn)消耗的功率占 SoC總功率的比重越來(lái)越大,因此,總線(xiàn)的低功耗設計很重要。

很多通過(guò)減少總線(xiàn)動(dòng)態(tài)翻轉來(lái)降低總線(xiàn)功耗的算法已經(jīng)被提出來(lái)。數據總線(xiàn)的數據隨機性較大,地址總線(xiàn)的地址向量連續性較大。它們傳送的數值各有特點(diǎn),所以,針對不同類(lèi)型總線(xiàn)的算法也不一樣。針對數據總線(xiàn)有bus- invert算法,針對地址總線(xiàn)有PBE (Page-Based Encoding)算法、WZE(Working Zone Encoding)算法等。本文利用地址總線(xiàn)零翻轉編碼方法,通過(guò)設計編碼器解碼器的結構,有效地降低SoC地址總線(xiàn)的功耗。

1  集成電路功耗分析

數字集成電路的靜態(tài)功耗非常小,往往只有nW(納瓦)級,因此,它的功耗近似等于動(dòng)態(tài)功耗 [2],如式(1)所示:



其中,P表示數字集成電路的總功耗;Ci表示電路第i個(gè)節點(diǎn)的負載電容;Vdd表示電源電壓;f表示工作頻率;表示t時(shí)刻節點(diǎn)i的活動(dòng)因子,正比于節點(diǎn)i的電平翻轉頻率。

設參數Cint表示內部節點(diǎn)的平均負載,Cbus表示總線(xiàn)各位的平均負載,Nint表示單位時(shí)間所有內部節點(diǎn)的平均翻轉次數,Nbus表示單位時(shí)間總線(xiàn)的平均翻轉次數。那么,式(1)可以簡(jiǎn)化為式(2):



因為內部節點(diǎn)的個(gè)數遠遠大于總線(xiàn)的位數,所以平均翻轉次數Nint遠遠大于Nbus;而負載Cint卻遠遠小于Cbus。前者大約只有后者的千分之一,所以,式(2)中Nbus具有很大的權重。減小Nbus,能夠顯著(zhù)地降低P。

2  低功耗設計

2.1  地址總線(xiàn)零翻轉編解碼原理

總線(xiàn)寬度為N,t時(shí)刻,總線(xiàn)需發(fā)送的數據為Bt。如果Bt與Bt-1相等,則時(shí)刻總線(xiàn)狀態(tài)完全不變;如果Bt與Bt-1不相等,則t時(shí)刻,總線(xiàn)就會(huì )發(fā)生電平翻轉。Bt與 Bt-1不同的比特位數目(0≤≤N)越大,總線(xiàn)電平翻轉的位數就越多,功耗就越大。當Bt與Bt-1互為反碼,則總線(xiàn)每一位都要翻轉,此時(shí)總線(xiàn)翻轉的功耗最大。

零翻轉編碼法利用降低總線(xiàn)的電平翻轉次數,來(lái)降低總線(xiàn)功耗。定義bt為內核MCU計算出來(lái)的t時(shí)刻總線(xiàn)數據(即編碼前的數據),Bt是t時(shí)刻已放到總線(xiàn)上的數據(即編碼后的數據),Jt是解碼器解碼后的數據。

總線(xiàn)連續取址時(shí),相鄰兩次地址的差是相等的,定義為Stride。一般的ROM尋址Stride=1;對Cache尋址時(shí),Stride根據Cache的尋址特性而定。如果Cache尋址步長(cháng)是一個(gè)word,則Stride=2。
編碼需要一個(gè)額外的狀態(tài)信號INC。
零翻轉編碼的算法步驟如下:
①  計算bt-1+Stride,比較bt與bt-1+ Stride;
②  如果bt=bt-1+Stride,表明是連續尋址,那么Bt= Bt-1,置INC=1;
③  如果bt≠bt-1+Stride,表明是不連續尋址,那么Bt=bt,置INC=0;
④  接收端解碼器根據INC來(lái)處理收到的總線(xiàn)數據。

零翻轉解碼的算法步驟如下:
①  計算Jt-1+Stride;
②  如果INC=1,表明是連續尋址,那么Jt=Jt-1+stride;
③  如果INC=0,表明是不連續尋址,那么Jt=Bt。

中斷和跳轉子程序的多少,會(huì )影響功耗的降低。中斷和跳轉越少,地址向量連續性越高,零翻轉編碼后總線(xiàn)電平翻轉越少,節省的功耗就越大。當地址總線(xiàn)一直連續尋址時(shí),零翻轉法理論上可以達到地址總線(xiàn)的零翻轉,并且,Stride變量可以根據尋址對象的不同而設置成對應的數值。

2.2  零翻轉編解碼器電路結構

編碼器組成如圖1左半部分。D1寄存bt-1,加法器將bt-1與Stride相加。比較器EQ比較 bt和bt-1+Stride,輸出INC。選擇器MUX的兩組輸入是bt和Bt-1。


圖1  零翻轉編碼器和解碼器

編碼器是組合邏輯,不可避免的有毛刺。毛刺雖然時(shí)間很短,但依然會(huì )增加總線(xiàn)功耗,因此,利用D2、D3觸發(fā)器來(lái)同步,過(guò)濾掉所有的毛刺。

解碼器結構如圖1右半部分,在接收設備Memory控制邏輯中實(shí)現。寄存器D存儲Jt-1,MUX的兩組輸入是(bt-1+Stride)和Bt。它的結構比編碼器簡(jiǎn)單得多。

相對整個(gè)SoC而言,編碼器和解碼器的電路規模很小,帶來(lái)的額外硬件面積和功耗也很小[3,4]。

3  驗證結果分析

將零翻轉法應用于SoC中,改變SoC設計的地址總線(xiàn)寬度,分別是8、16、32、64位。對內部地址總線(xiàn)和外部地址總線(xiàn)分別計算出優(yōu)化前后的功耗,并分析結果。使用的EDA工具是Synopsys公司的功耗分析軟件Power Compiler。

3.1  零翻轉編碼對內部地址總線(xiàn)功耗的影響

本測試方案中,地址總線(xiàn)上懸掛了15個(gè)功能模塊,完全在SoC電路內部,總線(xiàn)每一位的負載最大為2.1pF。以10 000個(gè)完全連續的地址向量運行SoC,計算地址總線(xiàn)功耗。計算結果如表1所列。

表1  內部總線(xiàn)功耗測試


當總線(xiàn)寬度N增大時(shí),編碼器的MUX寬度隨之增大,它的控制信號sel的負載增加,導致sel時(shí)延增大。當 N = 32時(shí)的RTL代碼,基于TSMC-0.25μm工藝庫,經(jīng)Design Compiler綜合,得出的關(guān)鍵路徑從D1觸發(fā)器時(shí)鐘端到MUX的輸出,最大延時(shí)為4.7ns。時(shí)鐘頻率是50MHz,編碼器的延遲只占時(shí)鐘周期的 23.5%。這個(gè)百分比很小。解碼器的結構比編碼器更簡(jiǎn)單?梢(jiàn),編碼器和解碼器都能夠滿(mǎn)足時(shí)序要求。

如圖2所示,優(yōu)化后的總線(xiàn)功耗降低了。其中8位總線(xiàn)降低幅度最大,達到了88.3%;而隨著(zhù)N的增加,功耗降低的幅度變小。由于驗證的10 000組地址向量沒(méi)有變,所以?xún)?yōu)化后總線(xiàn)活動(dòng)減少而節省的功耗幾乎不隨N的變化而變化;而當N增大時(shí),編碼器的規模成倍增大(見(jiàn)表1),編碼器硬件所消耗的功率上升很快。因此,編碼器的功耗不斷增大,總線(xiàn)活動(dòng)節省的功耗幾乎不變,導致總功耗降低的幅度越來(lái)越小。


圖2  零翻轉編碼降低的功耗與總線(xiàn)寬度的關(guān)系

如果地址不完全連續,那么功耗降低的幅度更小。所以,當內部地址總線(xiàn)寬度過(guò)大,超過(guò)32位時(shí),不適宜應用零翻轉算法。

3.2  零翻轉編碼對外部地址總線(xiàn)功耗的影響

本測試方案中,地址總線(xiàn)經(jīng)過(guò)PAD連接到片外存儲器,總線(xiàn)每一位的負載為50pF。運行一個(gè)帶有循環(huán)和跳轉的程序對片外存儲器寫(xiě)值,總線(xiàn)功耗結果如表2 所列。

表2  外部總線(xiàn)功耗測試


總線(xiàn)負載為50pF,優(yōu)化后節省的功耗遠大于編碼器硬件產(chǎn)生的功耗,后者對功耗降低比例的影響減小。所以, 隨著(zhù)N的增大,功耗節省比例降低的幅度變小。SoC總線(xiàn)寬度一般在64位以?xún)?因此,零翻轉編碼法幾乎適用于所有的SoC外部地址總線(xiàn)。

由表1與表2的功耗量級的差別知道,總線(xiàn)負載越大,零翻轉法優(yōu)化的功耗就越大,編碼器硬件的負面影響越小。

結語(yǔ)

本文介紹了零翻轉編碼地址總線(xiàn)低功耗設計方法。當地址總線(xiàn)一直連續取址時(shí),通過(guò)零翻轉編碼,理論上可以達到地址總線(xiàn)電平的零翻轉,最大限度地降低地址總線(xiàn)功耗。這種設計方法,既適用于片外地址總線(xiàn),也適用于寬度在32位以?xún)鹊腟oC內部地址總線(xiàn)。

參考文獻

1. Stan M R.Burleson W P Bus-invert coding for low-power I/O 1995
2. Weste N.Eshraghian K Principles of CMOS VLSI Design 1988
3. Mehta H.Owens R M.Irwin M J Some Issues in Gray Code Addressing 1996(96)
4. Benini L.De Micheli G.Macii E Asymptotic ZeroTransition Activity Encoding for Busses in Low-power
Microprocessor-Based Systems
5. Benini L.De Micheli G.Macii E Address Bus Encoding Technique for System-Level Power Optimization 1998

作 者:東南大學(xué) 殷宏 陸生禮  
來(lái) 源:單片機嵌入式系統應用2004(1)
本文地址:http://selenalain.com/thread-10367-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页