新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 零翻轉編碼地址總線SoC的低功耗設計

        零翻轉編碼地址總線SoC的低功耗設計

        作者: 時間:2016-12-02 來源:網絡 收藏


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

        3驗證結果分析

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

        3.1零翻轉編碼對內部地址總線功耗的影響

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

        表1內部總線功耗測試


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

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


        圖2零翻轉編碼降低的功耗與總線寬度的關系

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

        3.2零翻轉編碼對外部地址總線功耗的影響

        本測試方案中,地址總線經過PAD連接到片外存儲器,總線每一位的負載為50pF。運行一個帶有循環和跳轉的程序對片外存儲器寫值,總線功耗結果如表2 所列。

        表2外部總線功耗測試


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

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

        結語

        本文介紹了零翻轉編碼地址總線低功耗設計方法。當地址總線一直連續取址時,通過零翻轉編碼,理論上可以達到地址總線電平的零翻轉,最大限度地降低地址總線功耗。這種設計方法,既適用于片外地址總線,也適用于寬度在32位以內的SoC內部地址總線。

        參考文獻

        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

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 二手房| 饶河县| 贵定县| 江阴市| 通州区| 泰安市| 侯马市| 南召县| 子洲县| 奇台县| 正镶白旗| 叶城县| 高安市| 新余市| 商水县| 都匀市| 修武县| 德庆县| 治县。| 淄博市| 奉化市| 安吉县| 威宁| 志丹县| 玛沁县| 榕江县| 赣榆县| 满洲里市| 景泰县| 大渡口区| 罗定市| 普陀区| 牟定县| 高碑店市| 广河县| 蛟河市| 郧西县| 汨罗市| 巢湖市| 周宁县| 修水县|