国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      具有改進的硬解碼吞吐量的VSSLDPC解碼器的制作方法

      文檔序號:11628140閱讀:389來源:國知局
      具有改進的硬解碼吞吐量的VSS LDPC解碼器的制造方法與工藝

      相關(guān)申請的交叉引用

      本申請要求于2015年9月18日提交的申請?zhí)枮?2/220,880的美國臨時申請的權(quán)益,其全部內(nèi)容通過引用并入本文。

      本公開的示例性實施例涉及一種存儲器系統(tǒng)及其操作方法。



      背景技術(shù):

      計算機環(huán)境范式已經(jīng)轉(zhuǎn)變至可以在任何時間和任何地點被使用的普適計算系統(tǒng)。由于這個事實,諸如移動電話、數(shù)碼相機和筆記本計算機的便攜式電子裝置的使用已經(jīng)迅速增長。這些便攜式電子裝置通常使用具有存儲器裝置即數(shù)據(jù)存儲裝置的存儲器系統(tǒng)。數(shù)據(jù)存儲裝置被用作便攜式電子裝置的主存儲器裝置或輔助存儲器裝置。

      由于使用存儲器裝置的數(shù)據(jù)存儲裝置不具有活動部件,因此它們提供出色的穩(wěn)定性、持久性、高信息存取速度以及低功耗。具有這樣的優(yōu)點的數(shù)據(jù)存儲裝置的示例包括通用串行總線(usb)存儲器裝置、具有各種接口的存儲卡以及固態(tài)驅(qū)動器(ssd)。

      當(dāng)閃速存儲器裝置(例如nand裝置)被用于延長的時間時,持久性和保留性變得更大,并且讀取數(shù)據(jù)中的錯誤的數(shù)量增加。因此,存在對于提升的系統(tǒng)的需要以在閃速存儲器裝置的使用年限增加時維持解碼器吞吐量。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的方面包括存儲器系統(tǒng)。存儲器系統(tǒng)可以包括:存儲裝置(memorystorage);預(yù)處理檢查和單元,其適用于在第一次解碼迭代期間接收包括信道輸入(lch)符號值的硬讀取數(shù)據(jù)并計算lch符號值的檢查和作為checksum_pre值;以及低密度奇偶檢查(ldpc)解碼器,其包括lch存儲器和檢查和更新單元,ldpc解碼器適于在第一次解碼迭代期間將lch符號值存儲在ldpc解碼器的lch存儲器中,利用檢查和更新單元接收checksum_pre值,以及至少部分地基于計算和接收的checksum_pre值在至少第二次解碼迭代中解碼碼字,其中checksum_pre值是對在第一次解碼迭代中執(zhí)行的硬讀取的奇偶檢查。

      本發(fā)明的進一步的方面包括方法。方法可以包括:利用預(yù)處理檢查和單元接收包括信道輸入lch符號值的硬讀取數(shù)據(jù),利用預(yù)處理檢查和單元計算lch符號值的檢查和作為checksum_pre值,利用低密度奇偶檢查解碼器在ldpc解碼器的lch存儲器中存儲lch符號值,利用ldpc解碼器的檢查和更新單元接收checksum_pre值,以及利用ldpc解碼器,至少部分地基于計算和接收的checksum_pre值在至少第二次解碼迭代中解碼碼字,其中checksum_pre值是對在第一次解碼迭代中執(zhí)行的硬讀取的奇偶檢查。

      本發(fā)明的附加方面包括存儲器裝置。存儲器裝置可以包括:存儲裝置;預(yù)處理檢查和單元,其被配置為在第一解碼迭代期間接收包括信道輸入(lch)符號值的硬讀取數(shù)據(jù)并計算lch符號值的檢查和作為checksum_pre值;以及低密度奇偶檢查(ldpc)解碼器,其包括lch存儲器以及檢查和更新單元,ldpc解碼器被配置為在第一次解碼迭代期間將lch符號值存儲在ldpc解碼器的lch存儲器中、利用檢查和更新單元接收checksum_pre值以及至少部分地基于計算和接收的checksum_pre值在至少第二次解碼迭代中解碼碼字,其中checksum_pre值是對在第一次解碼迭代中執(zhí)行的硬讀取的奇偶檢查。

      附圖說明

      圖1是示例性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。

      圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。

      圖3是示出根據(jù)本發(fā)明的實施例的存儲器裝置的存儲塊的電路圖。

      圖4是根據(jù)本發(fā)明的方面的存儲器系統(tǒng)的簡圖。

      圖5是根據(jù)本發(fā)明的方面的存儲器處理器的簡圖。

      圖6是根據(jù)本發(fā)明的方面的示例ldpc解碼器的簡圖。

      圖7是根據(jù)本發(fā)明的方面的ldpc解碼器的示例部件的簡圖。

      圖8是根據(jù)本發(fā)明的方面的描述讀取值和位置的簡圖。

      圖9是根據(jù)本發(fā)明的方面的在解碼迭代中的過程的簡圖。

      圖10是根據(jù)本發(fā)明的方面的用于解碼的過程中的步驟的流程圖。

      圖11是根據(jù)本發(fā)明的方面的用于解碼的過程中的步驟的流程圖。

      具體實施方式

      各個實施例將參照附圖在下文中被更詳細地描述。然而,本發(fā)明可以不同的形式被實現(xiàn)并且不應(yīng)當(dāng)被理解為限定于本文所提出的實施例。相反,這些實施例被提供以使本公開將是全面的和完全的,并且將向本領(lǐng)域技術(shù)人員充分傳達本發(fā)明的范圍。在本公開全文中,在貫穿本發(fā)明的多個圖以及實施例中相似的參考數(shù)字指相似的部件。

      本發(fā)明可以多種方式被實施,包括作為過程、設(shè)備、系統(tǒng)、物的組合、在計算機可讀存儲媒介上被實現(xiàn)的計算機程序產(chǎn)品和/或處理器,諸如適于執(zhí)行存儲在被聯(lián)接至處理器的存儲器上和/或由被聯(lián)接至處理器的存儲器提供的指令的處理器。在本說明書中,這些實施例或本發(fā)明可以采用的任何其它形式可以被稱為技術(shù)。一般地,所公開的過程的步驟的順序可以在本發(fā)明的范圍內(nèi)改變。除非另外聲明,否則諸如被描述為適于執(zhí)行任務(wù)的處理器或存儲器的部件可以被實施為臨時適于在給定時間執(zhí)行任務(wù)的通用部件或被制造為執(zhí)行任務(wù)的特定部件。如本文中所使用的,術(shù)語“處理器”指一個或多個裝置、電路和/或適于處理諸如計算機程序指令的數(shù)據(jù)的處理核心。

      闡明本發(fā)明的原理的本發(fā)明的一個或多個實施例的詳細描述連同附圖在下文中被提出。本發(fā)明結(jié)合這樣的實施例被描述,但本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求限定并且本發(fā)明包含大量替代選擇、變型以及等同物。為了提供本發(fā)明的全面的理解,大量具體細節(jié)在下文的描述中被提出。這些細節(jié)被提供是為了示例的目的且本發(fā)明可以在沒有一些或全部這些具體細節(jié)的情況下根據(jù)權(quán)利要求被實現(xiàn)。為了清楚的目的,在本發(fā)明相關(guān)技術(shù)領(lǐng)域內(nèi)已知的技術(shù)材料沒有被詳細描述以免本發(fā)明被不必要地模糊。

      圖1是示例性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)10的框圖。

      參照圖1,存儲器系統(tǒng)10可以包括存儲器控制器100和半導(dǎo)體存儲器裝置200。

      存儲器控制器100可控制半導(dǎo)體存儲器裝置200的整體操作。

      半導(dǎo)體存儲器裝置200可以在存儲器控制器100的控制下執(zhí)行一個或多個擦除、編程和讀取操作。半導(dǎo)體存儲器裝置200可以通過輸入/輸出線接收命令cmd、地址addr和數(shù)據(jù)data。半導(dǎo)體存儲器裝置200可以通過電力線接收電力pwr并通過控制線接收控制信號ctrl??刂菩盘柨梢园铈i存器啟用(cle)信號、地址鎖存器啟用(ale)信號、芯片啟用(ce)信號、寫入啟用(we)信號、讀取啟用(re)信號等等。

      存儲器控制器100和半導(dǎo)體存儲器裝置200可以被集成在單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可以被集成在諸如固態(tài)驅(qū)動器(ssd)的單個半導(dǎo)體裝置中。固態(tài)驅(qū)動器可以包括用于其中存儲數(shù)據(jù)的存儲裝置。當(dāng)半導(dǎo)體存儲器系統(tǒng)10被用于ssd中時,聯(lián)接至存儲器系統(tǒng)10的主機(未示出)的操作速度可以被顯著提升。

      存儲器控制器100和半導(dǎo)體存儲器裝置200可以被集成在諸如存儲卡的單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可以被集成在單個半導(dǎo)體裝置中以配置存儲卡,諸如個人計算機存儲卡國際協(xié)會(pcmcia)的pc卡、標(biāo)準(zhǔn)閃存(cf)卡、智能媒體(sm)卡、記憶棒、多媒體卡(mmc)、減小尺寸的多媒體卡(rs-mmc)、微型版本的mmc(微型mmc)、安全數(shù)字(sd)卡、迷你安全數(shù)字(迷你sd)卡、微型安全數(shù)字(微型sd)卡、安全數(shù)字高容量(sdhc)以及通用閃速存儲(ufs)。

      對于另一個示例,存儲器系統(tǒng)10可以作為包括諸如以下的電子裝置的各種元件中的一種被提供:計算機、超移動pc(umpc)、工作站、上網(wǎng)本計算機、個人數(shù)字助手(pda)、便攜式計算機、網(wǎng)絡(luò)平板pc、無線電話、移動電話、智能電話、電子書閱讀器、便捷式多媒體播放器(pmp)、便攜式游戲裝置、導(dǎo)航裝置、黑盒、數(shù)碼相機、數(shù)字多媒體廣播(dmb)播放器、3維電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字視頻記錄器、數(shù)字視頻播放器、數(shù)據(jù)中心的存儲裝置、能夠在無線環(huán)境中接收和傳遞信息的裝置、家庭網(wǎng)絡(luò)的電子裝置的一個、計算機網(wǎng)絡(luò)的電子裝置的一個、遠程網(wǎng)絡(luò)的電子裝置的一個、射頻識別(rfid)裝置或計算系統(tǒng)的元件裝置。

      圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的詳細框圖。例如,圖2的存儲器系統(tǒng)可以描述圖1中所示的存儲器系統(tǒng)10。

      參照圖2,存儲器系統(tǒng)10可以包括存儲器控制器100和半導(dǎo)體存儲器裝置200。存儲器系統(tǒng)10可以響應(yīng)于來自主機裝置的請求操作并且尤其是存儲待被主機裝置訪問的數(shù)據(jù)。

      主機裝置可以利用各種類型的電子裝置中的任意一種實施。在一些實施例中,主機裝置可以包括諸如臺式計算機、工作站、三維(3d)電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字視頻記錄器和數(shù)字視頻播放器的電子裝置。在一些實施例中,主機裝置可以包括諸如移動電話、智能電話、電子書、mp3播放器、便攜式多媒體播放器(pmp)以及便攜式游戲機的便攜式電子裝置。

      存儲器裝置200可以存儲待被主機裝置訪問的數(shù)據(jù)。

      存儲器裝置200可以利用諸如動態(tài)隨機存取存儲器(dram)和靜態(tài)隨機存取存儲器(sram)的易失性存儲器裝置或諸如只讀存儲器(rom)、掩膜rom(mrom)、可編程rom(prom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、鐵電隨機存取存儲器(fram)、相變ram(pram)、磁阻式ram(mram)以及電阻式ram(rram)的非易失性存儲器裝置來實施。

      控制器100可以控制數(shù)據(jù)在存儲器裝置200中的存儲。例如,控制器100可以響應(yīng)于來自主機裝置的請求控制存儲器裝置200??刂破?00可以將從存儲器裝置200中讀取的數(shù)據(jù)提供給主機裝置并將從主機裝置提供的數(shù)據(jù)存儲到存儲器裝置200中。

      控制器100可以包括通過總線160聯(lián)接的存儲單元110、控制單元120、錯誤校正碼(ecc)單元130、主機接口140以及存儲器接口150。

      存儲單元110可以作為存儲器系統(tǒng)10和控制器100的工作存儲器并且存儲用于驅(qū)動存儲器系統(tǒng)10和控制器100的數(shù)據(jù)。當(dāng)控制器100控制存儲器裝置200的操作時,存儲單元110可以存儲被控制器100和存儲器裝置200用于諸如讀取、寫入、編程以及擦除操作的操作的數(shù)據(jù)。

      存儲單元110可以利用易失性存儲器實施。存儲單元110可以利用靜態(tài)隨機存取存儲器(sram)或動態(tài)隨機存取存儲器(dram)實現(xiàn)。如上所述,存儲單元110可以存儲被主機裝置用在存儲器裝置200以用于讀取和寫入操作的數(shù)據(jù)。為了存儲數(shù)據(jù),存儲單元110可以包括程序存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器、映射緩沖器等等。

      控制單元120可以控制存儲器系統(tǒng)10的一般操作,以及響應(yīng)于來自主機裝置的寫入請求或讀取請求控制用于存儲器裝置200的寫入操作或讀取操作??刂茊卧?20可以驅(qū)動被稱為閃存轉(zhuǎn)換層(ftl)的固件以控制存儲器系統(tǒng)10的一般操作。例如,ftl可以執(zhí)行諸如邏輯到物理(l2p)映射、損耗均衡、垃圾收集和壞塊處理的操作。l2p映射被稱為邏輯塊尋址(lba)。

      ecc單元130可以檢測并校正在讀取操作期間從存儲器裝置200中讀取的數(shù)據(jù)中的錯誤。當(dāng)錯誤位的數(shù)量大于或等于可校正的錯誤位的閾值數(shù)量時,ecc單元130可不校正錯誤位并且可以輸出指示校正錯誤位失敗的錯誤校正失敗信號。

      在一些實施例中,ecc單元130可以基于諸如低密度奇偶檢查(ldpc)碼、博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)碼、turbo碼turbo乘積碼(tpc)、里德-所羅門(reed-solomon,rs)碼、卷積碼、遞歸系統(tǒng)碼(rsc)、格形碼調(diào)制(tcm)、分組編碼調(diào)制(bcm)等的編碼調(diào)制執(zhí)行錯誤校正操作。ecc單元130可以包括用于錯誤校正操作的全部的電路、系統(tǒng)或裝置。

      主機接口140可以通過諸如通用串行總線(usb)、多媒體卡(mmc)、高速外圍組件互連(pci-e)、小型計算機系統(tǒng)接口(scsi)、串列scsi(sas)、串行高級技術(shù)附件(sata)、并行高級技術(shù)附件(pata)、增強型小型磁盤接口(esdi)和電子集成驅(qū)動器(ide)的各種接口協(xié)議中的一個或多個與主機裝置通信。

      存儲器接口150可以提供控制器100和存儲器裝置200之間的接口以使控制器100響應(yīng)于來自主機裝置的請求控制存儲器裝置200。存儲器接口150可以產(chǎn)生用于存儲器裝置200的控制信號并在cpu120的控制下處理數(shù)據(jù)。當(dāng)存儲器裝置200是諸如nand閃速存儲器的閃速存儲器時,存儲器接口150可以產(chǎn)生用于存儲器的控制信號并在cpu120的控制下處理數(shù)據(jù)。

      存儲器裝置200可以包括存儲器單元陣列210、控制電路220、電壓產(chǎn)生電路230、行解碼器240、頁面緩沖器250、列解碼器260以及輸入/輸出電路270。存儲器單元陣列210可以包括多個存儲塊211并可以在其中存儲數(shù)據(jù)。電壓產(chǎn)生電路230、行解碼器240、頁面緩沖器250、列解碼器260以及輸入/輸出電路270形成存儲器單元陣列210的外圍電路。外圍電路可以執(zhí)行存儲器單元陣列210的編程、讀取或擦除操作??刂齐娐?20可以控制外圍電路。

      電壓產(chǎn)生電路230可以產(chǎn)生具有各種電平的操作電壓。例如,在擦除操作中,電壓產(chǎn)生電路230可以產(chǎn)生諸如擦除電壓和通過電壓的具有各種電平的操作電壓。

      行解碼器240可以被連接至電壓產(chǎn)生電路230和多個存儲塊211。行解碼器240可以響應(yīng)于由控制電路220產(chǎn)生的行地址radd選擇多個存儲器塊211中的至少一個存儲塊并將由電壓產(chǎn)生電路230供應(yīng)的操作電壓傳輸至在多個存儲塊211中選擇的存儲塊。

      頁面緩沖器250通過位線bl(未示出)被連接至存儲器單元陣列210。頁面緩沖器250可以響應(yīng)于控制電路220所產(chǎn)生的頁面緩沖器控制信號利用正電壓對位線bl預(yù)先充電,在編程和讀取操作中將數(shù)據(jù)傳輸至選擇的存儲塊/從選擇的存儲塊接收數(shù)據(jù),或臨時存儲傳輸?shù)臄?shù)據(jù)。

      列解碼器260可以將數(shù)據(jù)傳輸至頁面緩沖器250/從頁面緩沖器250接收數(shù)據(jù)或?qū)?shù)據(jù)傳輸至輸入/輸出電路270/從輸入/輸出電路270接收數(shù)據(jù)。

      通過輸入/輸出電路270,輸入/輸出電路270可以將從外部裝置(例如存儲器控制器100)傳輸?shù)拿詈偷刂穫鬏斨量刂齐娐?20、將來自外部裝置的數(shù)據(jù)傳輸至列解碼器260或?qū)碜粤薪獯a器260的數(shù)據(jù)輸出至外部裝置。

      控制電路220可以響應(yīng)于命令和地址控制外圍電路。

      圖3是示出根據(jù)本發(fā)明的實施例的半導(dǎo)體存儲器裝置的存儲塊的電路圖。例如,圖3的存儲塊可以是圖2中所示的存儲器單元陣列200的存儲塊211。

      參照圖3,存儲塊211可以包括被分別聯(lián)接至位線bl0至blm-1的多個單元串221。每一列的單元串可以包括一個或多個漏極選擇晶體管dst和一個或多個源極選擇晶體管sst。多個存儲器單元或存儲器單元晶體管可以被串聯(lián)地聯(lián)接在選擇晶體管dst和sst之間。存儲器單元mc0至mcn-1中的每一個可以由在每一單元內(nèi)存儲多位數(shù)據(jù)信息的多層單元(mlc)形成。單元串221可以被分別電聯(lián)接至對應(yīng)的位線bl0至blm-1。

      在一些實施例中,存儲塊211可以包括nand型閃速存儲器單元。然而,存儲塊211不限于nand閃速存儲器,而是可以包括nor型閃速存儲器、其中結(jié)合兩種或更多種類型的存儲器單元的混合閃速存儲器以及其中控制器被嵌入在存儲器芯片內(nèi)部的1-nand閃速存儲器

      圖4是用于在閃速存儲器裝置接近壽命的結(jié)束時提升并維持解碼器吞吐量的示例系統(tǒng)40的簡圖。系統(tǒng)40可以包括dram400部分(例如易失性部分)和存儲器402部分(例如非易失性部分)。dram400部分和存儲器402部分可以互相通信,并且可以被裝配在單個裝置上或通過多個裝置和/或接口互相連接。dram400部分可以包括用于映射位和數(shù)據(jù)的地址的lba表410、諸如上述控制器的控制器404,以及如本領(lǐng)域技術(shù)人員將從本文的公開中理解的其它適合的部件。存儲器402部分可以包括多個存儲塊(和/或多個超級存儲塊)、用于主機寫入的開放塊430、用于垃圾收集的開放塊440以及如本領(lǐng)域技術(shù)人員將從本文的描述中理解的其它適合的塊名稱。

      本文所公開的是系統(tǒng)、裝置、方法以及提升低密度奇偶檢查(ldpc)解碼器(例如vss解碼器和/或其它最小和解碼器)的吞吐量的過程。如果在碼字中存在更多的錯誤位,則ldpc解碼器延遲可以變得更長。當(dāng)存儲器裝置(例如nand裝置)被使用更長時間(例如用于接近壽命的結(jié)束的較長時間段-持久性和保留性變得更大)時,從nand裝置中讀取的數(shù)據(jù)中的錯誤的數(shù)量增加。因此,隨著nand裝置的使用年限增加,將需要解碼器的更多吞吐量。因此,本文中公開的系統(tǒng)、方法、裝置和過程在存儲器裝置接近壽命的結(jié)束時維持(在其它的特征中)足夠的解碼器吞吐量以提供持續(xù)的性能。

      圖5是示出包括ldpc解碼器的存儲系統(tǒng)的實施例的系統(tǒng)50的簡圖。系統(tǒng)50可以包括儲存器550和讀取處理器500。讀取處理器500可以額外地包括讀取閾值生成器502,似然比(llr)值生成器504和ldpc解碼器506。ldpc解碼器506可以被配置為最小和ldpc解碼器,諸如,例如vss最小和ldpc解碼器,但本發(fā)明不限于僅vss最小和ldpc解碼器或最小和ldpc解碼器。

      讀取閾值生成器502可以被配置為產(chǎn)生可以被用于從儲存器550中讀取的一個或多個讀取閾值510。在多個實施例中,儲存器550可以包括固態(tài)儲存器、硬盤儲存器、可移動儲存器、nand閃存、3dnand等。由讀取閾值生成器502輸出的讀取閾值510可以被用于讀取儲存器550中的n個單元的組(例如,頁面、片段等)。

      最初,只有一次儲存器550的讀取可以被執(zhí)行(例如包含n個單元的期望的頁面或片段被讀取)。對應(yīng)于這n個單元的n個硬讀取值可以從儲存器550被傳遞至llr值生成器504。

      當(dāng)存儲的數(shù)據(jù)被請求或以其它方式被要求(例如被存儲了數(shù)據(jù)的應(yīng)用或用戶)時,llr值生成器504可以訪問儲存器550并檢索包括一些噪音或錯誤的讀取的數(shù)據(jù)。llr值生成器504可以處理讀取的數(shù)據(jù)并針對每一位輸出llr值515。llr值生成器504可以向ldpc解碼器506提供llr值515用于解碼。如果在ldpc解碼器506上解碼成功,則被解碼的碼字520可以被輸出。

      圖6是示例系統(tǒng)60且特別是示例ldpc解碼器600(例如,諸如最小和ldpc解碼器)的簡圖。在一些實施例中,ldpc解碼器600使用諸如現(xiàn)場可編程門陣列(fpga)和/或?qū)S眉呻娐?asic)的半導(dǎo)體裝置實施。在一些實施例中,ldpc解碼器600被包括在關(guān)于圖5所述的ldpc解碼器504中。

      ldpc解碼器600可以包括可變節(jié)點更新器602(例如,圖7中的bnu)、檢查節(jié)點更新器604(例如,圖7中的cnu)、碼字更新器606以及檢查子更新器(syndromeupdater)608(例如,圖7中的檢查和更新單元)。

      可變節(jié)點更新器602可以被配置為產(chǎn)生與被從可變節(jié)點n發(fā)送至檢查節(jié)點m(例如,如在申請?zhí)枮?4/444,712、題目為“highspeedlow-powerldpcdecoderdesign”的美國專利申請中所描述的從可變節(jié)點至檢查節(jié)點,其內(nèi)容通過引用并入本文)關(guān)聯(lián)的消息qnm652(例如,圖7中的lbc)并將消息652發(fā)送至檢查節(jié)點更新器604。這樣的消息652可以被稱作“從可變節(jié)點n被發(fā)送至檢查節(jié)點m的消息”。

      檢查節(jié)點更新器604可被配置成將消息rnm653(圖7中的lcb)(例如從檢查節(jié)點至可變節(jié)點)輸出回至可變節(jié)點更新器602。與從檢查節(jié)點m發(fā)送至可變節(jié)點n相關(guān)的消息653可被稱為“從檢查節(jié)點m發(fā)送至可變節(jié)點n的消息”。

      在示出的ldpc解碼器600中,n個llr值的陣列或序列650(例如l=[l1,……,ln])可通過ldpc解碼器600被輸入至可變節(jié)點更新器602。例如,ldpc解碼器600可用在存儲系統(tǒng)中并且包含n個單元的頁面或段可從存儲器(例如固態(tài)存儲器、nand閃速存儲器、硬盤驅(qū)動存儲器等)讀取。llr值650中的每個可以是符號表示決定(例如負(fù)號表示1,正號表示0)的軟值,幅度表示與該決定相關(guān)的確定性或可能性(例如大的幅度對應(yīng)于相關(guān)決定中的較高確定性)。

      除了產(chǎn)生qnm消息652,可變節(jié)點更新器602可被配置成產(chǎn)生解碼的llrqn,其中1≤n≤n。解碼的llr值654可從可變節(jié)點更新器602被傳遞至碼字更新器606。

      在示例中,碼字更新器602可被配置成使用下式計算(其中1≤n≤n):

      其中表示解碼序列656。在一些實施例中,解碼的llr值654的最高有效位(msb)被發(fā)送至伴隨式更新器608以決定解碼是否成功。但是可選地,在一些實施例中,碼字更新器606執(zhí)行相對簡單的處理。

      伴隨式更新器608可被配置成檢查是否所有的錯誤已經(jīng)從碼字移除。例如,當(dāng)針對奇偶檢查矩陣h,時,則伴隨式更新器608確定解碼成功并且所有錯誤已經(jīng)從碼字中移除。如果是,則ldpc解碼器600停止解碼并輸出作為解碼器輸出的解碼序列656

      在一些實施例中,如果則解碼的碼字(例如)不被輸出并且另一解碼迭代被執(zhí)行(例如可變節(jié)點更新器602可計算新的消息652和新解碼的llr值654,檢查節(jié)點更新器604可計算新的消息653,以及碼字更新器606可計算新的碼字并檢查新的碼字和奇偶檢查矩陣的乘積是否為0或直到達到迭代的一些(例如預(yù)定)最大數(shù)量。

      在本發(fā)明的示例中,以最小和ldpc解碼器為例,ldpc解碼器(諸如解碼器504和600)被配置成執(zhí)行解碼算法。在一些實施例中,初始化解碼算法包括初始化解碼迭代計數(shù)器。例如,ldpc解碼算法可被重復(fù)以解碼碼字的最大次數(shù)被選擇,跟蹤當(dāng)前迭代數(shù)量的計數(shù)器被初始化為“1”以指示當(dāng)前正在執(zhí)行的是ldpc解碼算法的第一次迭代。在一個示例中,變量k是迭代指示器并被初始化為k=1,kmax被初始化為允許解碼一個碼字的最多次迭代。kmax可被預(yù)先配置和/或動態(tài)地確定。在一些實施例中,當(dāng)在迭代期間所有可變節(jié)點和檢查節(jié)點已經(jīng)被至少更新一次時,一個解碼迭代被完成。

      雖然最小和ldpc解碼器可被配置成根據(jù)解碼算法進行多次解碼迭代,但是在最小和解碼的第一次迭代期間,ldpc解碼器不執(zhí)行任何錯誤校正。因此,本發(fā)明的實施例在第一次迭代期利用可用資源以提高最小和ldpc解碼器的吞吐量。

      特別地,在最小和ldpc解碼器中的第一次解碼迭代可通過使用硬讀取數(shù)據(jù)進行解碼檢查提高吞吐量。

      圖7是描述示例性ldpc解碼器的組件的系統(tǒng)70的簡圖。系統(tǒng)70可包括檢查節(jié)點更新(cnu)單元700、位節(jié)點更新(bnu)單元702以及檢查和更新(csu)單元704。

      cnu700可被配置成從bnu702接收位-檢查消息(lbc)(例如,對于3位解碼器,1位可被分配給符號并且兩位可被分配給幅度)以及位置基準(zhǔn)(idx)。cnu700也可包括與它相關(guān)聯(lián)的各種值。例如,值all_sgn是對應(yīng)于lbx消息的符號的乘積的值。min1是最小幅度的絕對值,min1_idx是表示幅度min1的位置的值。因此,min2是2與最小幅度的絕對值,min2_idx是表示幅度min2的位置的值。

      cnu700也可被配置成基于位置基準(zhǔn)idx和sgn_mem內(nèi)容輸出檢查-位消息(lcb)。sgn_mem值可包含/包括位-檢查消息(lbc)的符號。

      在解碼期間,一些迭代可發(fā)散。也存在從先前解碼迭代使用的值。例如,基于min1_idx和輸入位置基準(zhǔn)idx,lcb的幅度是min1/min2。lcb的符號是all_sgn*sgn_mem。

      bnu702可被配置成接收lcb和信道輸入值(lch706)。bnu702可使用縮放因子并計算lbc值。另外,bnu702可被配置成更新硬判決(hard_dec)(例如位是否0或1),然后csu704使用其來檢查數(shù)據(jù)是否已經(jīng)收斂至碼字,解碼是否可停止。

      csu704從bnu702接收硬判決hard_dec并可被配置成計算針對每個奇偶檢查的檢查和(例如硬判決的xor奇偶)。如果所有的奇偶檢查都為零,則碼字已經(jīng)收斂。csu704也可被配置成輸出計算的/用計算機計算的檢查和(例如描述的check_sum)。

      為了進一步解釋軟讀取和硬讀取以及最小幅度和位置之間的差異,下面描述圖8的簡圖。在來自nand800的軟讀取的示例中,返回的值包括幅度和符號兩者。在示出的值在3的范圍內(nèi)的示例中,軟讀取800可返回值3、2、1、0、-1、-2或-3。與此相反,利用來自nand802的單個硬讀取,在硬讀取期間讀取的幅度將相同并且只有符號可以改變。

      參照上述的通用最小和ldpc解碼器并利用示出的示例性bnu單元804,在第一次迭代中,例如lch包括5個位置,1-5。在第一次迭代中,所有的值都是0。然而,在第二次迭代或換言之在硬解碼中,每個位置包括相同幅度的值,方差將取決于值的符號。在一些實施例中,每個位置將具有相同的符合(例如,+或-)。

      在另一個示例中,cnu單元806被示出。通常情況中,在簡圖的左側(cè)(例如用于軟解碼),各個值是在不同的位置被讀出。min1是0,min1的位置(例如min1_idx)是3。min2是1,min2的位置(例如min2_idx)是5。

      然而,在cnu806的右側(cè),在硬解碼的示例中,每個位置具有相同的幅度3,并且每個位置具有相同的符號(正號)。因此,min1是3和min2是3,min1和min2的位置實際上可通過位置1、2、3、4或5中的任何一個來表示。

      利用在硬解碼期間和在第一次迭代發(fā)生的這些屬性,以及在第一次最小和解碼迭代期間未執(zhí)行誤差校正的事實,最小和解碼器的吞吐量可如下所述被增大。

      參照圖9、圖10和圖11,利用最小和解碼器提高存儲器裝置的吞吐量的系統(tǒng)、裝置、方法以及過程被公開。圖9是總體通過第一次最小和解碼迭代示出解碼過程的流程圖/系統(tǒng)90簡圖。圖10是用于提高吞吐量的步驟的流程圖1000。圖11是在裝置中機械地初始化過程的步驟的流程圖1100。

      在最小和解碼(例如vss最小和解碼)中注意的是,第一次最小和解碼迭代未執(zhí)行任何錯誤校正。針對硬數(shù)據(jù)輸入,在第一次迭代期間僅需要計算檢查和。值(min、min2、min1_idx、min2_idx)對于在第一次迭代結(jié)束時所有檢查是相同的并且可被初始化。針對每個檢查節(jié)點的all_sgn值與檢查和的all_sgn值相同。對于第二次迭代的檢查-位消息(lcb)的符號可僅使用all_sgn以及輸入數(shù)據(jù)的符號來計算。因此,大多數(shù)最小和解碼器硬件在針對硬數(shù)據(jù)輸入的第一次迭代期間是空閑的。因此,檢查和計算邏輯可被復(fù)制并且寄存器和存儲器可與最小和解碼器共享。這可有效地使可僅從涉及實際錯誤校正的第二次迭代中使用的最小和解碼器的第一次迭代管線化(pipe-line),從而增大其有效的吞吐量。

      關(guān)于估計的區(qū)域和吞吐量的增加,在一些實施例中,雙解碼器的區(qū)域可為約850k柵(gate)。用于邏輯的估計區(qū)域可為約40k柵。估計區(qū)域的增量可以是約5%。本文公開的管線迭代對每一碼字節(jié)省一次解碼迭代。因此,在每碼字的3.2次迭代平均值處估計的吞吐量增量為3.2/2.2,或大約45%左右。如本領(lǐng)域技術(shù)人員將從本公開中理解的是,對于解碼和邏輯的區(qū)域,以及其他平均迭代和吞吐量性能將根據(jù)使用的各種裝置和系統(tǒng)變化。然而,本文公開的方法、系統(tǒng)、裝置和過程可在具有變化的區(qū)域和平均迭代的各種系統(tǒng)中使用。

      返回參照圖9和圖10,在步驟1002處,在第一次解碼迭代期間,硬讀取數(shù)據(jù)被接收。硬讀取數(shù)據(jù)包括信道輸入(lch)軟值902。在硬讀取中,lch值僅具有用于符號的1位輸入。幅度都是相同的,為一個常數(shù),因此,沒有必要存儲幅度。與需要3位的軟讀取相比,對于應(yīng)讀取不使用2位的lch存儲器。

      對于位節(jié)點更新單元,在第一次迭代期間可從nand可用的唯一值是lch值。因此,對于第一次解碼迭代的lcb值是零,并且位-檢查值lbc都是相同的幅度并具有與lch相同的符號。因此,不發(fā)生對輸入數(shù)據(jù)的校正。

      這樣,檢查節(jié)點輸入(lbc)都是相同的幅度并且它們的符號與lch相同。因此,all_sgn值僅依賴于lch的符號。由于所有的輸入幅度相同,因此min1_idx和min2_idx可被選擇為例如0和1(但如上述討論的,為了方便起見,可使用有效的位置值)。

      為了分出過程,ldpc解碼器可被配置成在至少第二次迭代期間處理解碼直到最終迭代。第一次解碼迭代可通過預(yù)處理檢查和單元904來處理。

      在步驟1004處,lch符號值的檢查和被計算為checksum_pre值。checksum_pre912可由檢查預(yù)處理單元通過獲取硬數(shù)據(jù)的xor并利用奇偶h矩陣900進行奇偶檢查來用計算機計算/計算。當(dāng)ldpc解碼器901正在解碼碼字(諸如碼字0或cw0)時,新的碼字(碼字1或cw1)被輸入至系統(tǒng)中。與實際解碼器(ldpc解碼器901)區(qū)域相比,用計算機計算的xor小。

      在步驟1006處,lch符號值被存儲在ldpc解碼器的lch存儲器中。ldpc解碼器901可利用lch存儲器906來配置。lch存儲器906可被配置成在存儲軟數(shù)據(jù)幅度,但是在第一次解碼迭代期間,由于使用較少的數(shù)據(jù)位,所以可使用lch存儲器906以將lch符號值902存儲在空閑存儲器中。

      在步驟1008處,檢查和更新單元可接收checksum_pre值。例如,ldpc解碼器901可包括檢查和更新單元910,其被配置成接收通過檢查和預(yù)處理單元904計算出checksum_pre值912。在進一步迭代中,檢查和更新單元910可被配置成計算檢查和(例如xor)以確定是否碼字已經(jīng)收斂并且解碼可被停止。

      在步驟1010處,碼字基于是對在第一次解碼迭代中執(zhí)行的硬讀取/硬判決的奇偶檢查的checksum_pre值在至少第二次解碼迭代中被解碼。下面將更詳細地描述步驟1010。

      首先,只要ldpc解碼器901可用于開始解碼cw1(例如,cw0的解碼已經(jīng)收斂并cw1的第一次解碼迭代已經(jīng)完成),第二解碼迭代可開始。首先,因為這些值在第一次解碼迭代后相同,所以checksum_pre值可被復(fù)制成cnu914和檢查和更新單元910(如在步驟1008處提到的)的all_sgn值。接著,min1和min2可被初始化為恒定值(例如可編程的寄存器值)而min1_idx可被初始化為0且min2_idx可被初始化為1。

      由于在第一次迭代期間沒有值被寫入cnu914的sgn_mem值,通過觀察sgn_mem的值與lch相同,所以在第二次解碼迭代中,sgn_mem值可用lch存儲器值諸如在lch存儲器906中存儲的lch值的lch存儲值來代替。這使得解碼在上述的第一次迭代中進行,同時設(shè)置必須存儲的值,使得ldpc解碼器901可如先前產(chǎn)生和存儲過數(shù)據(jù)一樣繼續(xù)第二次解碼迭代。

      因此,如果解碼器在第二次迭代的中間收斂,則解碼器的輸出是被處理的位的硬判定和未處理的lch值(因為這部分中不存在錯誤)的組合。

      如果需要第三次迭代,則所有值在相應(yīng)的存儲器和寄存器的位置并且與正常過程相同。

      雖然vss最小和ldpc解碼需要min1_idx、min2_idx,但是各種其它最小和解碼器可能只需要min1_idx但可應(yīng)用相同的替換物,上述公開的過程可被概括。

      在圖11處,示出用于信號初始化的步驟的流程圖1100。ldpc解碼器可需要接口變化,因為它可以是用于當(dāng)前解碼器的簡易替換。附加信號可用這種集成來幫助。由于上面公開的發(fā)明使用ldpc解碼器的軟數(shù)據(jù)緩沖器,所以解碼器中的現(xiàn)有碼字應(yīng)在軟讀取碼字可被接受之前完成解碼。

      因此,在步驟1102處,指示解碼器準(zhǔn)備好接收硬讀取碼字的idpc_dec_ready_hard信號被接收。在步驟1104處,針對硬讀取碼字的迭代1可開始。在步驟1106處,針對硬讀取碼字的解碼完成。在步驟1108處,指示解碼器準(zhǔn)備好接收軟讀取碼字的idpc_dec_ready_soft信號被接收。在步驟1110處,針對軟讀取碼字的迭代2可開始。

      雖然為了清楚理解的目的已經(jīng)詳細地描述上述實施例,但是本發(fā)明并不限于所提供的細節(jié)。存在實施本發(fā)明的許多替代方式。公開的實施例是說明性的而不是限制性的。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1