《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 地址總線低功耗編碼的設(shè)計與實現(xiàn)
地址總線低功耗編碼的設(shè)計與實現(xiàn)
摘要: 對降低地址總線功耗的編碼方法研究與應(yīng)用正在逐漸增多。本文在簡述地址總線上的功耗來源的基礎(chǔ)上,,介紹了幾種典型的地址總線低功耗編碼方法,,通過結(jié)合實際采用的T0編碼,能有效地降低智能卡芯片的功耗,。
Abstract:
Key words :

    對降低地址總線" title="地址總線">地址總線功耗的編碼方法研究與應(yīng)用正在逐漸增多,。本文在簡述地址總線上的功耗來源的基礎(chǔ)上,,介紹了幾種典型的地址總線低功耗" title="低功耗">低功耗編碼方法,,通過結(jié)合實際采用的T0編碼,,能有效地降低智能卡芯片" title="智能卡芯片">智能卡芯片的功耗。
   
    CMOS電路中的功耗來源于兩部分:一部分為靜態(tài)功耗,,由漏電和其它靜態(tài)電流產(chǎn)生,;另一部分為動態(tài)功耗,由短路電流和負(fù)載電容充放電產(chǎn)生,。這兩部分中共有三種最主要的消耗:跳變" title="跳變">跳變損耗(switching loss),、短路損耗(short-circuit loss)、漏電損耗(leakage loss),。短路損耗這部分功耗占總功耗的10-15%,,而跳變損耗引起的功耗則占到總功耗的70%~80%。N位地址總線的跳變功耗表達(dá)式為:

    其中,,N表示地址總線寬度,,Cload表示平均每位地址線的負(fù)載,VDD為電源電壓,,α表示一個周期內(nèi)平均電容充放電的次數(shù),,f是操作頻率,α×f表示翻轉(zhuǎn)率,。
   
    智能卡芯片內(nèi)部的地址總線,,要將RAM、ROM等模塊相連接,,負(fù)載比較重,,而且地址總線一般走線也比較長,這無疑都將增大地址總線的負(fù)載電容,。同時,,CPU對存儲器訪問頻繁,也增大了地址總線的翻轉(zhuǎn)頻率,。因此,地址總線上消耗的功耗比較大,。 
    
   
低功耗地址編碼方法 
    
    對地址總線進行低功耗設(shè)計主要是對其進行低功耗編碼,,方法有BI(Bus-Invert)和T0(Zero-Transition)、格雷碼" title="格雷碼">格雷碼,、WZE編碼等,。它對CPU送出的t時刻與t-1時刻N位地址總線進行比較,總線上變化的位數(shù)如果大于N/2,,則將總線取反外送,,否則就直接外送,。地址接收端" title="接收端">接收端收到地址后是否取反根據(jù)INV信號線來確定。例如,,地址總線為4位,,t-1時刻為0000,t時刻為1111,,那么將1111取反后送出去,。
   
    BI編碼公式如下所示:

    式中的b(t)是指t時刻的實際地址,B(t)是編碼后的地址,,H(t)是b(t)和b(t.1)相異的位數(shù),。
   
    BI解碼公式如下所示:

    其中,J(t)為解碼后的地址總線,。
   
    T0碼通過增加一條冗余連線INC來通知地址的接收端總線上的地址是否連續(xù),。如果INC為高,表明總線上的地址是連續(xù)的,,此時所有的地址總線保持不變,,地址接收端自動將上一地址加1,作為當(dāng)前的地址,;如果INC為低,,表明前后兩次地址并非連續(xù),此時總線將正常地傳送地址碼,。 
    
    定義b(t)為CPU計算出來的t時刻總線數(shù)據(jù)(即編碼前的數(shù)據(jù)),,B(t)是t時刻已放到總線上的數(shù)據(jù)(即編碼后的數(shù)據(jù)),Jt是解碼器解碼后的數(shù)據(jù),。則T0編碼的編碼公式為:

    與T0編碼相對應(yīng)的解碼公式為:

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


圖1:地址總線編碼示意圖。

 
圖2:零翻轉(zhuǎn)編解碼器電路結(jié)構(gòu)圖,。

    我們選用一個測試激勵,,實際運行的波形圖如圖3所示。


圖3:地址零翻轉(zhuǎn)波形圖,。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。