地址總線低功耗編碼的設計與實現
定義b(t)為CPU計算出來的t時刻總線數據(即編碼前的數據),B(t)是t時刻已放到總線上的數據(即編碼后的數據),Jt是解碼器解碼后的數據。則T0編碼的編碼公式為:本文引用地址:http://cqxgywz.com/article/179819.htm

與T0編碼相對應的解碼公式為:

將BI和T0兩種方法結合起來,就形成了BI-T0方法。一般而言,地址都是比較連續的,而數據總線則是比較隨機的。BI編碼主要用于數據總線,用于地址總線的時候,一般都帶有緩存。T0編碼具有低延遲和小面積的特性,地址連續的時候,能夠很好地降低地址翻轉次數。在地址連續的時候,使用T0編碼;在地址不連續的時候,使用BI方法,這就形成了BI-T0編碼。
格雷編碼對于連續變化為主的地址總線也是比較有效的。例如,從7變為0,用二進制編碼是由111變為000,要引起跳變3次,而用格雷碼則是由100變為000,只變化一次。對連續數據變換,用格雷碼更簡單有效。
WZE(Working-Zone-Encoding)編碼假設每個瞬間程序只訪問總地址空間的某個工作區(Working-Zone)。地址總線上傳遞工作區的標志和基于工作區基址的地址偏移,該偏移量采用獨熱編碼。WZE主要用于外部地址總線,在它基礎上形成了PBE編碼和擴展WZE編碼。
T0編碼的實現與應用
采用T0地址總線編碼的示意圖如圖1所示,編解碼器的結構如圖2所示。b為CPU內核送出來的地址,B為經過編碼器輸出的地址,J為解碼器送往存儲器的地址,INC用來表示地址是否是連續的。編碼器和解碼器的電路規模很小,帶來的額外硬件面積和功耗也很小。

圖1:地址總線編碼示意圖。
圖2:零翻轉編解碼器電路結構圖。
我們選用一個測試激勵,實際運行的波形圖如圖3所示。

圖3:地址零翻轉波形圖。
從圖中可以看到當CPU送出的地址總線是連續的時候,編碼器和解碼器之間的地址總線可以不翻轉,存儲器通過INC信號得到正確的地址。在FPGA仿真的時候,可以將上述激勵的VCD文件輸入XPOWER來分析功耗。使用T0編碼,總功耗為0.467mW,不用T0編碼,總功耗為0.999mW。
本文小結
結合一款8位智能卡芯片的實際情況,對地址總線采用簡單有效的T0編碼,有效地降低地址總線的翻轉次數,從而有助于降低整個智能卡芯片的功耗。







評論