零翻轉(zhuǎn)編碼地址總線SoC的低功耗設計
相對整個SoC而言,編碼器和解碼器的電路規(guī)模很小,帶來的額外硬件面積和功耗也很小[3,4]。
3驗證結(jié)果分析
將零翻轉(zhuǎn)法應用于SoC中,改變SoC設計的地址總線寬度,分別是8、16、32、64位。對內(nèi)部地址總線和外部地址總線分別計算出優(yōu)化前后的功耗,并分析結(jié)果。使用的EDA工具是Synopsys公司的功耗分析軟件Power Compiler。
3.1零翻轉(zhuǎn)編碼對內(nèi)部地址總線功耗的影響
本測試方案中,地址總線上懸掛了15個功能模塊,完全在SoC電路內(nèi)部,總線每一位的負載最大為2.1pF。以10 000個完全連續(xù)的地址向量運行SoC,計算地址總線功耗。計算結(jié)果如表1所列。
表1內(nèi)部總線功耗測試
當總線寬度N增大時,編碼器的MUX寬度隨之增大,它的控制信號sel的負載增加,導致sel時延增大。當 N = 32時的RTL代碼,基于TSMC-0.25μm工藝庫,經(jīng)Design Compiler綜合,得出的關鍵路徑從D1觸發(fā)器時鐘端到MUX的輸出,最大延時為4.7ns。時鐘頻率是50MHz,編碼器的延遲只占時鐘周期的 23.5%。這個百分比很小。解碼器的結(jié)構(gòu)比編碼器更簡單??梢?編碼器和解碼器都能夠滿足時序要求。
如圖2所示,優(yōu)化后的總線功耗降低了。其中8位總線降低幅度最大,達到了88.3%;而隨著N的增加,功耗降低的幅度變小。由于驗證的10 000組地址向量沒有變,所以優(yōu)化后總線活動減少而節(jié)省的功耗幾乎不隨N的變化而變化;而當N增大時,編碼器的規(guī)模成倍增大(見表1),編碼器硬件所消耗的功率上升很快。因此,編碼器的功耗不斷增大,總線活動節(jié)省的功耗幾乎不變,導致總功耗降低的幅度越來越小。
圖2零翻轉(zhuǎn)編碼降低的功耗與總線寬度的關系
如果地址不完全連續(xù),那么功耗降低的幅度更小。所以,當內(nèi)部地址總線寬度過大,超過32位時,不適宜應用零翻轉(zhuǎn)算法。
3.2零翻轉(zhuǎn)編碼對外部地址總線功耗的影響
本測試方案中,地址總線經(jīng)過PAD連接到片外存儲器,總線每一位的負載為50pF。運行一個帶有循環(huán)和跳轉(zhuǎn)的程序?qū)ζ獯鎯ζ鲗懼?總線功耗結(jié)果如表2 所列。
表2外部總線功耗測試
總線負載為50pF,優(yōu)化后節(jié)省的功耗遠大于編碼器硬件產(chǎn)生的功耗,后者對功耗降低比例的影響減小。所以, 隨著N的增大,功耗節(jié)省比例降低的幅度變小。SoC總線寬度一般在64位以內(nèi),因此,零翻轉(zhuǎn)編碼法幾乎適用于所有的SoC外部地址總線。
由表1與表2的功耗量級的差別知道,總線負載越大,零翻轉(zhuǎn)法優(yōu)化的功耗就越大,編碼器硬件的負面影響越小。
結(jié)語
本文介紹了零翻轉(zhuǎn)編碼地址總線低功耗設計方法。當?shù)刂房偩€一直連續(xù)取址時,通過零翻轉(zhuǎn)編碼,理論上可以達到地址總線電平的零翻轉(zhuǎn),最大限度地降低地址總線功耗。這種設計方法,既適用于片外地址總線,也適用于寬度在32位以內(nèi)的SoC內(nèi)部地址總線。
參考文獻
1. Stan M R.Burleson W P Bus-invert coding for low-power I/O 1995
2. Weste N.Eshraghian K Principles ofCMOSVLSI 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
評論