• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向NAND閃存的高能效LDPC譯碼器結構設計

      2021-08-07 14:22:48張超何衛(wèi)鋒
      現(xiàn)代計算機 2021年17期
      關鍵詞:譯碼器譯碼功耗

      張超,何衛(wèi)鋒

      (上海交通大學微納電子學系,上海 200240)

      0 引言

      NAND Flash由于存儲容量大,功耗低的特點被廣泛應用于手機、數(shù)碼照相機、平板電腦等移動設備中[1]。新型NAND Flash采用MLC、TLC等多比特存儲技術提升NAND Flash的存儲容量,但同時其數(shù)據(jù)出錯率也會隨之升高[2]。目前,NAND Flash已使用BCH碼的糾錯編碼技術來降低數(shù)據(jù)出錯率,而低密度奇偶校驗碼(Low-Density Parity-Check Codes,LDPC)碼可借助信道軟信息進行軟判決譯碼,相比BCH碼擁有更好的糾錯性能,被視為是未來更適用于NAND Flash的數(shù)據(jù)編碼方式之一[3]。

      LDPC碼的軟判決譯碼是通過信息的反復迭代計算來完成的,譯碼所需的迭代周期不固定,迭代周期越長,譯碼處理的時間也越長。為了使得任何迭代周期下譯碼器的處理速度都能滿足實時處理的性能要求,已有的譯碼器設計方案[4-6]將譯碼器的時鐘頻率和工作電壓固定為最大迭代周期所需的時鐘頻率和工作電壓。這樣做的問題是當譯碼迭代次數(shù)小于最大迭代次數(shù)時,譯碼器的工作頻率和電壓會大于實際需求,帶來額外的功耗開銷,不適用于NAND Flash這類對功耗和能效有較高要求的應用場景。

      針對LDPC譯碼迭代周期可變的特點,本文設計并實現(xiàn)了一款帶有自適應電壓頻率調節(jié)機制(Adaptive Voltage and Frequency Scaling,AVFS)的高能效LDPC譯碼器,該系統(tǒng)能夠實時監(jiān)測譯碼器中輸入FIFO的使用情況,并據(jù)此動態(tài)調節(jié)LDPC譯碼器的時鐘頻率和工作電壓,達到降低能耗開銷、提高處理能效的目的。

      1 QC-LDPC碼及其譯碼算法

      1.1 QC-LDPC碼的概念

      準循環(huán)低密度奇偶校驗碼(Quasi-Cyclic Low-Density Parity-Check Codes,QC-LDPC)碼[7]是LDPC碼的重要分支,它具有準循環(huán)的特殊結構,利于編解碼的硬件實現(xiàn)。對一個碼長為N×Z,信息位長度為(N-M)×Z的QC-LDPC碼來說,校驗矩陣H可由M行N列的基矩陣P、Z行Z列的單位矩陣I和零矩陣擴展而來。公式(1)中P矩陣的每個元素pi,j代表移位系數(shù)。公式(2)中校驗矩陣H中的每一個元素I(pi,j)代表單位矩陣I循環(huán)右移pi,j位后的矩陣,特殊情況下當pi,j為-1時代表該位置填充和單位矩陣同樣大小的零矩陣。

      (1)

      (2)

      1.2 分層標準最小和譯碼算法

      分層標準最小和算法[8](Layered Normalized Min-Sum Algorithm,LNMSA)按層對變量節(jié)點和校驗節(jié)點進行信息更新,最終根據(jù)后驗信息輸出硬判決碼字,每一層對應QC-LDPC碼基矩陣P的一行,包含相同校驗節(jié)點個數(shù),當一層的校驗信息更新結束后立即更新后驗信息用于下一層信息更新。設Bj為后驗信息,它代表信道軟信息,初始值是一個對數(shù)似然比,來自于信道本身。設Cij為從變量節(jié)點j傳遞到校驗節(jié)點i的信息,Vij為從校驗節(jié)點i傳遞到變量節(jié)點j的信,Zj為硬判決輸出碼字。此外 N(i) 表示和校驗節(jié)點i相連的所有變量節(jié)點集合,α是一常數(shù),通常取0.75。譯碼的整體過程可分為信息初始化、變量節(jié)點更新、校驗節(jié)點更新、譯碼檢測4個步驟:

      步驟1 信息初始化:

      (3)

      步驟2 變量節(jié)點更新:

      Vij=Bj-Cij(4)

      步驟3 校驗節(jié)點更新:

      (5)

      (6)

      Bj=Cij+Vij

      (7)

      min和submin分別代表最小值和次最小值,min position代表最小值所處的列號。

      步驟4 譯碼檢測:

      (8)

      R=H×Zj

      (9)

      如果R不為0代表譯碼不成功,則重復步驟2和步驟3重新更新變量節(jié)點和校驗節(jié)點直至譯碼成功或到達最大迭代次數(shù)。

      2 帶有AVFS調節(jié)機制的LDPC譯碼器結構設計

      2.1 帶AVFS的LDPC譯碼系統(tǒng)總體結構

      本節(jié)將基于分層標準最小和譯碼算法,針對碼率為8/9,碼長為9216的LDPC碼,設計一種帶有AVFS調節(jié)機制的LDPC譯碼器。

      如圖1所示,整個帶AVFS的LDPC譯碼系統(tǒng)由電壓時鐘供給電路、主電路以及外部數(shù)據(jù)接口三部分組成。首先,電壓時鐘供給電路包含DC-DC轉換器和自適應時鐘發(fā)生器,負責向主電路提供電壓和時鐘源。前者可輸出可變電壓,調壓范圍為0.7V~1.0V,調節(jié)步長為0.1V,而后者能夠接收可變電壓輸出不同頻率的時鐘信號。其次,主電路由AVFS有限狀態(tài)機和LDPC譯碼器構成。AVFS有限狀態(tài)機可根據(jù)一定規(guī)則控制DC-DC轉換器調節(jié)譯碼系統(tǒng)的工作電壓。最后,兩個異步FIFO組成了譯碼器和外部電路的數(shù)據(jù)接口,其中一個異步FIFO用于存儲譯碼器的輸出碼字,另一FIFO用于接收信道軟信息和反饋當前自身的使用情況給AVFS狀態(tài)機。本文中,F(xiàn)IFO的使用情況用FIFO的剩余深度作為指標來衡量,它指的是FIFO中已經寫入的數(shù)據(jù)量和讀出的數(shù)據(jù)量之差。整體電路可劃分為兩個時鐘域,輸出FIFO的讀時鐘和存有軟信息的FIFO的寫時鐘共用同一時鐘,固定為200MHz,模擬外部電路固定的時鐘頻率,其余電路共用另一時鐘(Global Clk),該時鐘頻率可根據(jù)AVFS機制調節(jié)。

      圖1 帶AVFS的LDPC譯碼系統(tǒng)結構

      AVFS的電壓頻率調節(jié)機制如下所述:AVFS狀態(tài)機在每次譯碼迭代開始前根據(jù)當前的譯碼器工作信息(已執(zhí)行的譯碼迭代次數(shù)、譯碼是否已成功、當前頻率檔位)計算出一個預期的輸入FIFO剩余深度并與當前的實際剩余深度進行比較,根據(jù)結果挑選下一個工作電壓點,控制DC-DC變換器完成電壓調節(jié)。自適應時鐘發(fā)生器再根據(jù)不同的電壓產生不同頻率的時鐘信號,至此完成一次電壓頻率調節(jié)。

      圖2展示了詳細的AVFS調節(jié)流程圖,每次譯碼迭代開始前當FIFO的剩余深度超出預期值時,代表譯碼處理速率小于軟信息輸入速率,AVFS狀態(tài)機就會提升譯碼器的工作電壓和頻率,反之則會降低工作電壓和頻率。此外當譯碼結束后,如果下一組待譯碼軟信息還未完全載入至FIFO中,AVFS狀態(tài)機也會降低當前的工作電壓和頻率減小譯碼器空閑期間的靜態(tài)功耗。綜上所述,AVFS調節(jié)機制會使得譯碼處理時間和輸入一組軟信息的時間更加匹配,在滿足性能需求的同時達到降低功耗開銷,提高處理能效的目的。

      圖2 AVFS調節(jié)流程圖

      圖3展示了RBER為6.5×10-3時AVFS系統(tǒng)工作的具體實例。本文所設計的譯碼器每經1152個時鐘周期可向FIFO寫入一組待譯碼軟信息,當輸入FIFO的剩余深度為1152時代表一組軟信息準備就緒并可載入至譯碼器進行譯碼,這一載入過程在圖中表現(xiàn)為FIFO剩余深度的下降。理想情況下,譯碼器進行一次譯碼處理的時間和輸入一組軟信息的時間相同,F(xiàn)IFO的剩余深度應當總是不高于1152。然而隨著碼字的比特錯誤類型不斷變化,當出現(xiàn)較難糾正的錯誤時,譯碼所需的迭代次數(shù)就會增多,在時鐘頻率不變的情況下,譯碼的處理時間會大于輸入下一組軟信息的時間,F(xiàn)IFO不得不在譯碼器處理期間繼續(xù)接收新的數(shù)據(jù),可以看到此時剩余深度會超越1152,出現(xiàn)接近1500的高峰,這時AVFS系統(tǒng)就會提高工作頻率加快譯碼處理速率,圖中所示的時鐘頻率提升至272MHz就對應這一過程。于此同時,在之后一段時間內如果譯碼迭代次數(shù)不再維持在高值時,時鐘頻率會被降低以節(jié)省功耗。

      圖3 輸入FIFO剩余深度變化與時鐘頻率調節(jié)

      2.2 LDPC譯碼器結構設計

      本節(jié)將對譯碼系統(tǒng)主電路中的LDPC譯碼器進行結構設計,圖4為LDPC譯碼器的電路結構,主要由并行度為128的BNU和CNU處理單元、譯碼檢測器和存儲器三部分構成。傳統(tǒng)譯碼器設計中的循環(huán)移位模塊被集成到對變量節(jié)點存儲器的讀寫控制器中。譯碼器在工作時,首先將輸入FIFO中的軟信息載入到V node Memory中,然后依靠BNU和CNU處理單元完成迭代譯碼,期間會將后驗信息輸出給檢測器,并將硬判決碼字寫入輸出FIFO,如果檢測器檢測譯碼成功,則會將碼字從輸出FIFO中讀出并拉高數(shù)據(jù)有效信號Valid指示外部接收電路接收碼字。

      圖4 LDPC譯碼器結構圖

      存儲器包含變量節(jié)點存儲器(V Node Message Memory)、符號存儲器(Sign Memory)和最小值存儲器(Min Memory)。變量節(jié)點存儲器存儲的是變量節(jié)點信息。符號存儲器存儲的是變量節(jié)點的符號位。最小值存儲器存儲的是變量節(jié)點絕對值的最小值、次最小值、最小值的位置以及所有變量節(jié)點符號位連乘的結果。

      圖5 BNU單元電路結構

      處理電路包含BNU、CNU和檢測器三部分。BNU處理單元的結構如圖5所示,它可以根據(jù)公式(5)(6)恢復出校驗節(jié)點,然后利用公式(7)將變量節(jié)點與校驗節(jié)點相加得到后驗信息。CNU處理單元的電路結構如圖6所示,它先是根據(jù)公式(4)將后驗信息與恢復出的校驗節(jié)點相減得到變量節(jié)點,然后根據(jù)公式(5)計算新的校驗節(jié)點。檢測器完成的是公式(8)(9)的功能,它能夠輸出硬判決碼字至FIFO中并檢測碼字是否已正確。

      圖6 CNU單元電路結構

      2.3 自適應時鐘發(fā)生器結構設計

      自適應時鐘發(fā)生器主要由扇出為4的反相器鏈和16分頻電路構成。當START信號由0變?yōu)?時,反相器鏈開始振蕩并產生環(huán)振時鐘信號。為了使得不同PVT條件下自適應時鐘發(fā)生器都能產生譯碼器所需要的時鐘頻率,環(huán)振時鐘的頻率需要具有一定的可配性便于硅后校準,因此電路中設有3比特的選擇信號,可將反相器鏈配置為10、12、14、16、18、22、26或30級。后接的16分頻電路主要是為了降低環(huán)振時鐘頻率滿足譯碼電路需求,同時使得時鐘的占空比更貼近50%。

      圖7 自適應時鐘電路結構

      自適應時鐘發(fā)生器在AVFS系統(tǒng)中的作用是接收DC-DC 變換器輸出的可變電壓,改變反相器鏈延時,從而輸出不同頻率的時鐘。因此AVFS系統(tǒng)只需改變DC-DC變換器的輸出電壓即可同時完成電壓和頻率調節(jié)。需要注意的是在調壓還未結束時,需要利用門控時鐘短時地關閉時鐘信號,避免高電平上沖或者下沖引起電路功能出錯。

      為了證明所設計的自適應時鐘發(fā)生器能夠滿足譯碼器的頻率需求,在最大譯碼迭代次數(shù)設定為4次的情況下,本文先是根據(jù)1、2、3、4四種迭代周期和輸入一組軟信息的固定時間計算出不同迭代周期所需的目標時鐘頻率,如表1中第二列所示,分別為76MHz、141MHz、204MHz和270MHz。然后再對自適應時鐘發(fā)生器在各電壓下進行電路仿真,測得實際輸出的時鐘頻率,并與目標時鐘頻率做比較。表1中的第三列展示了自適應時鐘發(fā)生器在4種電壓下可輸出的不同時鐘頻率,其中工藝角、環(huán)境溫度、反相器鏈長度分別設置為TT、25℃和16級??梢钥吹?,自適應時鐘發(fā)生器在各電壓產生的頻率均大于目標工作頻率,能夠滿足譯碼器需求。

      表1 自適應時鐘發(fā)生器頻率電壓表

      3 實現(xiàn)與結果

      本文提出的LDPC譯碼器在TSMC 28nm工藝下進行了電路邏輯綜合。譯碼器在AVFS調節(jié)機制下共有4種工作電壓和頻率,表2展示了工作電壓固定為不同值時譯碼器的運行功耗。為了測定工作電壓可變時譯碼器的運行功耗,本文在不同信道噪聲下對10000組軟信息進行譯碼測定運行功耗和吞吐率。圖10展示了不同RBER下應用AVFS調節(jié)機制后譯碼的吞吐率和平均功耗,圖中將吞吐率和功耗歸一化到不應用AVFS時的吞吐率和功耗??梢钥吹皆诟鱎BER下吞吐率僅有1%左右的損失,而功耗卻能有24.7%-61.4%的降低,能效可提升至原來的1.3-2.5倍,因此證明AVFS調節(jié)機制能夠有效降低譯碼器功耗開銷,提高處理能效。

      表2 LDPC譯碼器在各電壓頻率點的運行功耗

      表3展示了各譯碼器的性能參數(shù)。由于碼長越長,譯碼器的功耗和面積都會近似線性增長,為了公平對比,將其他設計的譯碼器功耗和面積都線性歸一化到本文9216比特碼長對應的功耗和面積,同時再將面積根據(jù)不同工藝歸一化到28nm工藝對應的面積。結果顯示當RBER高達1.11×10-2時,本文的譯碼器電路功耗為50.5mW,能效為31.3bit/nJ,與其他設計相比有著顯著的能效優(yōu)勢。

      圖8 應用AVFS后各RBER下譯碼器的功耗和吞吐率

      表3 各譯碼器性能對比表

      4 結語

      本文針對LDPC譯碼迭代周期動態(tài)可變的特點,設計了一款帶自適應電壓頻率調節(jié)的高能效LDPC譯碼器。相較傳統(tǒng)固定工作電壓和頻率的譯碼器結構,本文的LDPC譯碼器的功耗降低了24.7%-61.4%,能效提升1.3-2.5倍。下一步將再結合門控電壓源、多閾值電壓技術等低功耗數(shù)字電路設計方法對譯碼器的功耗做進一步優(yōu)化。

      猜你喜歡
      譯碼器譯碼功耗
      基于校正搜索寬度的極化碼譯碼算法研究
      糾錯模式可配置的NAND Flash BCH譯碼器設計
      跟蹤導練(一)5
      揭開GPU功耗的面紗
      個人電腦(2016年12期)2017-02-13 15:24:40
      數(shù)字電路功耗的分析及優(yōu)化
      電子制作(2016年19期)2016-08-24 07:49:54
      從霍爾的編碼譯碼理論看彈幕的譯碼
      新聞傳播(2016年3期)2016-07-12 12:55:27
      “功耗”說了算 MCU Cortex-M系列占優(yōu)
      電子世界(2015年22期)2015-12-29 02:49:44
      IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
      電源技術(2015年11期)2015-08-22 08:51:02
      LDPC 碼改進高速譯碼算法
      遙測遙控(2015年2期)2015-04-23 08:15:19
      HINOC2.0系統(tǒng)中高速LDPC譯碼器結構設計
      電視技術(2014年17期)2014-09-18 00:15:48
      宜都市| 乌拉特前旗| 株洲市| 宝应县| 鄯善县| 托克逊县| 全州县| 永德县| 汽车| 玛多县| 武功县| 广元市| 满城县| 木兰县| 冷水江市| 华安县| 林芝县| 分宜县| 延川县| 青田县| 东方市| 巴林右旗| 来宾市| 二手房| 宁远县| 扶风县| 岳普湖县| 崇左市| 定结县| 吉木萨尔县| 肇州县| 南城县| 舞阳县| 嘉祥县| 平阴县| 万盛区| 岚皋县| 乃东县| 德保县| 苗栗县| 紫金县|