地址總線低功耗編碼的設(shè)計(jì)與實(shí)現(xiàn)
定義b(t)為CPU計(jì)算出來(lái)的t時(shí)刻總線數(shù)據(jù)(即編碼前的數(shù)據(jù)),B(t)是t時(shí)刻已放到總線上的數(shù)據(jù)(即編碼后的數(shù)據(jù)),Jt是解碼器解碼后的數(shù)據(jù)。則T0編碼的編碼公式為:本文引用地址:http://www.ex-cimer.com/article/179819.htm
與T0編碼相對(duì)應(yīng)的解碼公式為:
將BI和T0兩種方法結(jié)合起來(lái),就形成了BI-T0方法。一般而言,地址都是比較連續(xù)的,而數(shù)據(jù)總線則是比較隨機(jī)的。BI編碼主要用于數(shù)據(jù)總線,用于地址總線的時(shí)候,一般都帶有緩存。T0編碼具有低延遲和小面積的特性,地址連續(xù)的時(shí)候,能夠很好地降低地址翻轉(zhuǎn)次數(shù)。在地址連續(xù)的時(shí)候,使用T0編碼;在地址不連續(xù)的時(shí)候,使用BI方法,這就形成了BI-T0編碼。
格雷編碼對(duì)于連續(xù)變化為主的地址總線也是比較有效的。例如,從7變?yōu)?,用二進(jìn)制編碼是由111變?yōu)?00,要引起跳變3次,而用格雷碼則是由100變?yōu)?00,只變化一次。對(duì)連續(xù)數(shù)據(jù)變換,用格雷碼更簡(jiǎn)單有效。
WZE(Working-Zone-Encoding)編碼假設(shè)每個(gè)瞬間程序只訪問(wèn)總地址空間的某個(gè)工作區(qū)(Working-Zone)。地址總線上傳遞工作區(qū)的標(biāo)志和基于工作區(qū)基址的地址偏移,該偏移量采用獨(dú)熱編碼。WZE主要用于外部地址總線,在它基礎(chǔ)上形成了PBE編碼和擴(kuò)展WZE編碼。
T0編碼的實(shí)現(xiàn)與應(yīng)用
采用T0地址總線編碼的示意圖如圖1所示,編解碼器的結(jié)構(gòu)如圖2所示。b為CPU內(nèi)核送出來(lái)的地址,B為經(jīng)過(guò)編碼器輸出的地址,J為解碼器送往存儲(chǔ)器的地址,INC用來(lái)表示地址是否是連續(xù)的。編碼器和解碼器的電路規(guī)模很小,帶來(lái)的額外硬件面積和功耗也很小。
圖1:地址總線編碼示意圖。
圖2:零翻轉(zhuǎn)編解碼器電路結(jié)構(gòu)圖。
我們選用一個(gè)測(cè)試激勵(lì),實(shí)際運(yùn)行的波形圖如圖3所示。
圖3:地址零翻轉(zhuǎn)波形圖。
從圖中可以看到當(dāng)CPU送出的地址總線是連續(xù)的時(shí)候,編碼器和解碼器之間的地址總線可以不翻轉(zhuǎn),存儲(chǔ)器通過(guò)INC信號(hào)得到正確的地址。在FPGA仿真的時(shí)候,可以將上述激勵(lì)的VCD文件輸入XPOWER來(lái)分析功耗。使用T0編碼,總功耗為0.467mW,不用T0編碼,總功耗為0.999mW。
本文小結(jié)
結(jié)合一款8位智能卡芯片的實(shí)際情況,對(duì)地址總線采用簡(jiǎn)單有效的T0編碼,有效地降低地址總線的翻轉(zhuǎn)次數(shù),從而有助于降低整個(gè)智能卡芯片的功耗。
評(píng)論