亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種應(yīng)用于閃存的基于等差校驗(yàn)矩陣的LDPC碼譯碼器的制作方法

文檔序號(hào):11410487閱讀:265來源:國(guó)知局
一種應(yīng)用于閃存的基于等差校驗(yàn)矩陣的LDPC碼譯碼器的制造方法與工藝

本發(fā)明屬于非易失性存儲(chǔ)器中的糾錯(cuò)編碼技術(shù)領(lǐng)域,特別涉及一種應(yīng)用于閃存糾錯(cuò)領(lǐng)域的低硬件面積、高通過率的等差準(zhǔn)循環(huán)ldpc碼譯碼器。



背景技術(shù):

目前,nand閃存的重點(diǎn)應(yīng)用領(lǐng)域已經(jīng)從桌面端向移動(dòng)端大幅度傾斜,例如手機(jī)、平板、u盤和固態(tài)硬盤等。nand閃存的一個(gè)重要的發(fā)展趨勢(shì)是tlc(trinary-levelcell)技術(shù)的發(fā)展。最早的nand閃存使用的是slc(single-levelcell)技術(shù),即在每個(gè)存儲(chǔ)單元中存儲(chǔ)1-bit信息。隨著移動(dòng)設(shè)備的發(fā)展所帶來的對(duì)存儲(chǔ)容量需求的不斷提高,mlc(multi-levelcell)技術(shù)應(yīng)運(yùn)而生,實(shí)現(xiàn)了在每個(gè)存儲(chǔ)單元中存儲(chǔ)2-bit信息的功能。目前,市場(chǎng)上最受廣泛應(yīng)用的是tlc技術(shù),即在每個(gè)存儲(chǔ)單元中存儲(chǔ)3-bit信息。相比于slc和mlc,tlc有著存儲(chǔ)容量更大的優(yōu)點(diǎn)。然而,由于tlc中相鄰電壓的間隔變得更小,隨之而來的是源誤碼率更高的缺點(diǎn)。因此,設(shè)計(jì)可靠的糾錯(cuò)編碼技術(shù),尤其是ldpc碼的糾錯(cuò)編碼技術(shù),是一個(gè)刻不容緩的任務(wù),并將成為新一代閃存應(yīng)用的關(guān)鍵技術(shù)。

nand閃存的另一個(gè)重要的發(fā)展趨勢(shì)是其芯片讀寫速度的急劇提升。傳統(tǒng)的nand閃存采用的是標(biāo)準(zhǔn)nand閃存接口的獨(dú)立存儲(chǔ)芯片,與之相比較,emmc(embeddedmultimediacard)和ufs(universalflashstorage)標(biāo)準(zhǔn)的存儲(chǔ)芯片是將nand閃存和相對(duì)應(yīng)的控制器集成封裝成一體。這樣的封裝方式不僅節(jié)省了空間,還減輕了主機(jī)處理器對(duì)nand閃存在壞塊管理、錯(cuò)誤糾正、磨損均衡和垃圾回收等管理方面的負(fù)擔(dān)。ufs2.0單通道理論傳輸速度可達(dá)到600mb/s,如果是雙通道可提高至1200mb/s,是emmc5.0(400mb/s)的3倍。三星、東芝、閃迪、海力士等公司均在近年來擴(kuò)大了ufs2.0標(biāo)準(zhǔn)的存儲(chǔ)芯片的生產(chǎn),與此同時(shí)還投入了對(duì)ufs2.1標(biāo)準(zhǔn)的存儲(chǔ)芯片的量產(chǎn),進(jìn)一步提升了芯片的讀寫速度。因此,設(shè)計(jì)高吞吐率的ldpc解碼器,也是掌握新一代閃存糾錯(cuò)技術(shù)的重中之重。

準(zhǔn)循環(huán)ldpc碼由于其校驗(yàn)矩陣的規(guī)則結(jié)構(gòu),為工業(yè)界的標(biāo)準(zhǔn)所普遍采納。目前,應(yīng)用于閃存糾錯(cuò)的準(zhǔn)循環(huán)ldpc碼均為高碼率(0.86~0.94)的ldpc碼。由于高碼率的限制,許多譯碼器通常采用按列分組的最小和譯碼算法,每次對(duì)校驗(yàn)矩陣中的一列進(jìn)行操作。然而,對(duì)于一般的準(zhǔn)循環(huán)ldpc碼,在采取按列分組的最小和譯碼算法時(shí),均需要采用較大的桶形移位器,以確保前后兩列的變量節(jié)點(diǎn)可以對(duì)齊。大維度桶形移位器的使用,占據(jù)了整個(gè)譯碼器相當(dāng)大比重的一部分硬件面積(占20%~25%)。此外,在采取按列分組的最小和譯碼算法時(shí),準(zhǔn)循環(huán)ldpc碼子矩陣的維度即為其譯碼并行度。當(dāng)采用的準(zhǔn)循環(huán)ldpc碼的子矩陣維度擴(kuò)大時(shí),桶形移位器的規(guī)模成倍擴(kuò)大,使得準(zhǔn)循環(huán)ldpc碼譯碼器的吞吐率遭受到了嚴(yán)重的制約。



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

發(fā)明目的:本發(fā)明針對(duì)目前l(fā)dpc碼譯碼器的缺陷,公開了一種低硬件面積、高吞吐率的ldpc碼譯碼器。特別地,本譯碼器適用但不局限于閃存糾錯(cuò)領(lǐng)域。

技術(shù)方案:一種應(yīng)用于閃存的基于等差校驗(yàn)矩陣的ldpc碼譯碼器,包括輸入數(shù)據(jù)存儲(chǔ)器、變量節(jié)點(diǎn)單元、校驗(yàn)節(jié)點(diǎn)單元、定偏移移位器、選擇器、寄存器、存儲(chǔ)器、輸出數(shù)據(jù)存儲(chǔ)器和符號(hào)存儲(chǔ)器;

輸入譯碼器的信道信息首先存放于輸入數(shù)據(jù)存儲(chǔ)器中;開始譯碼后,變量節(jié)點(diǎn)單元接收輸入數(shù)據(jù)存儲(chǔ)器中的信道信息和寄存器中存儲(chǔ)的c2v(校驗(yàn)節(jié)點(diǎn)傳給變量節(jié)點(diǎn))信息,并計(jì)算出更新后的v2c(變量節(jié)點(diǎn)傳給校驗(yàn)節(jié)點(diǎn))信息。變量節(jié)點(diǎn)單元共1個(gè),計(jì)算的是校驗(yàn)矩陣中的一列。

變量節(jié)點(diǎn)單元同時(shí)還計(jì)算了當(dāng)前變量節(jié)點(diǎn)所連接的校驗(yàn)節(jié)點(diǎn)是否滿足校驗(yàn)(所連接的校驗(yàn)節(jié)點(diǎn)之和是否為零),且其結(jié)果將用于提前終止譯碼。

變量節(jié)點(diǎn)單元將更新后的v2c信息的符號(hào)位存入符號(hào)存儲(chǔ)器,用于計(jì)算下一次迭代中的c2v信息。

變量節(jié)點(diǎn)單元更新結(jié)束后,校驗(yàn)節(jié)點(diǎn)單元接收更新后的v2c信息和符號(hào)存儲(chǔ)器中存儲(chǔ)的上次迭代中的c2v符號(hào)位信息,并計(jì)算出更新后的c2v信息。校驗(yàn)節(jié)點(diǎn)單元共5個(gè),對(duì)應(yīng)的是校驗(yàn)矩陣中連接于當(dāng)前變量節(jié)點(diǎn)的5個(gè)校驗(yàn)節(jié)點(diǎn)。

在本譯碼器采取按列分組的最小和譯碼算法時(shí),c2v信息即每行中的first_min(第一最小值)、second_min(第二最小值)、first_min_index(第一最小值的地址)、second_min_index(第二最小值的地址),以及global_sign(全局符號(hào))。

第一最小值和第二最小值的地址表示的是其在本行中的位置。

校驗(yàn)節(jié)點(diǎn)單元更新結(jié)束后,5條更新后的c2v信息分別送入5個(gè)定偏移移位器中。5個(gè)定偏移移位器的偏移量依次為0~4,對(duì)應(yīng)校驗(yàn)矩陣中連續(xù)5行的公差。

移位結(jié)束后,5條移位后的c2v信息通過選擇器分配到5個(gè)寄存器以及存儲(chǔ)器中。校驗(yàn)矩陣中,當(dāng)前變量節(jié)點(diǎn)從上至下共連接了5個(gè)校驗(yàn)節(jié)點(diǎn),后4個(gè)校驗(yàn)節(jié)點(diǎn)的c2v信息會(huì)在下一列的迭代中立即被使用,所以通過選擇器存入5個(gè)寄存器之中的4個(gè);第一個(gè)校驗(yàn)節(jié)點(diǎn)的c2v信息不會(huì)在下一列迭代中立即被使用,所以通過選擇器存入存儲(chǔ)器;存儲(chǔ)器將會(huì)取出一條預(yù)先存放的立即被用于下一列迭代的c2v信息,通過選擇器存入5個(gè)寄存器中的最后剩余的1個(gè)。至此,5個(gè)寄存器存儲(chǔ)了5條c2v信息,且它們將被送入變量節(jié)點(diǎn)單元,用于下一列v2c信息的計(jì)算。

當(dāng)所有列的消息都被更新過一次(進(jìn)行一次v2c信息與c2v信息的迭代),我們稱按列分組的最小和譯碼算法完成了一次迭代,并令迭代次數(shù)自加1。

如果譯碼器在規(guī)定的迭代次數(shù)內(nèi)完成了譯碼,譯碼器將提前終止迭代,把結(jié)果輸出到輸出數(shù)據(jù)存儲(chǔ)器,并宣告譯碼成功;反之,如果譯碼器在達(dá)到最大的迭代次數(shù)后仍未完成譯碼,譯碼器將終止迭代,并宣告譯碼失敗。

準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣可以用偏移參數(shù)pi,j來表示。每個(gè)偏移參數(shù)對(duì)應(yīng)了一個(gè)z×z的單位矩陣的循環(huán)右移矩陣,且其偏移量為pi,j,其中,z即為子矩陣的維度。特別地,pi,j=0對(duì)應(yīng)的即是維度為z的單位矩陣。

基礎(chǔ)的等差準(zhǔn)循環(huán)ldpc碼經(jīng)過矩陣擴(kuò)展操作后得到擴(kuò)展后的等差準(zhǔn)循環(huán)ldpc碼。等差準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣中每行(或每列)的偏移參數(shù)均為等差數(shù)列,且每行(或每列)的公差依次遞增1。設(shè)等差準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣的列重(每列所包含的非空元素的個(gè)數(shù))r=5。對(duì)基礎(chǔ)的等差準(zhǔn)循環(huán)ldpc碼的子校驗(yàn)矩陣從上至下依次往后錯(cuò)位一列,即可得到錯(cuò)位后的子校驗(yàn)矩陣。把所得的錯(cuò)位后的子校驗(yàn)矩陣復(fù)制兩份(共3份),即可得到擴(kuò)展后的等差準(zhǔn)循環(huán)ldpc碼的子校驗(yàn)矩陣。以此類推,對(duì)多個(gè)毗鄰的基礎(chǔ)的等差準(zhǔn)循環(huán)ldpc碼的子校驗(yàn)矩陣采取相同的操作,可以得到擴(kuò)展后等差準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣。特別地,設(shè)對(duì)毗鄰的10個(gè)子校驗(yàn)矩陣采取相同的擴(kuò)展方式,可以得到一個(gè)行列比為1:10的擴(kuò)展后的校驗(yàn)矩陣,且此矩陣的列重r=5,行重s=50,碼率r=0.9。在擴(kuò)展后的等差準(zhǔn)循環(huán)校驗(yàn)矩陣中,非空部分表示維度為z的單位矩陣的循環(huán)右移矩陣,空白部分表示維度為z的全零矩陣。

擴(kuò)展后的校驗(yàn)矩陣沒有短環(huán),即4元環(huán)。

等差準(zhǔn)循環(huán)ldpc碼擴(kuò)展后的校驗(yàn)矩陣中的每一列都有5個(gè)校驗(yàn)節(jié)點(diǎn),對(duì)應(yīng)了5條移位后的c2v信息。其中第1條移位后的c2v信息會(huì)被分配到存儲(chǔ)器(因?yàn)樗粫?huì)在下一時(shí)刻被使用),后4條移位后的c2v信息會(huì)被分配到寄存器(因?yàn)樗鼈儠?huì)在下一時(shí)刻被使用)。5條移位后的c2v信息通過選擇器分配到對(duì)應(yīng)的寄存器和存儲(chǔ)器中,存儲(chǔ)器中的c2v信息通過選擇器分配到對(duì)應(yīng)的寄存器中。

譯碼器兼容1-bit硬信息軟解碼和2-bit軟信息軟解碼。

在譯碼開始后,譯碼器首先從閃存讀取本幀(即碼字)第一bit的對(duì)數(shù)似然比信息,并把讀取的信息存放到輸入數(shù)據(jù)存儲(chǔ)器中。當(dāng)本幀所有信息存儲(chǔ)完畢后,譯碼器開始對(duì)1-bit的硬信息進(jìn)行軟解碼。具體如下:在每個(gè)時(shí)鐘,輸入數(shù)據(jù)存儲(chǔ)器都會(huì)按順序取出z*1bit信息,輸入變量節(jié)點(diǎn)單元,經(jīng)由校驗(yàn)節(jié)點(diǎn)單元、定偏移移位器,最終通過選擇器把數(shù)據(jù)存入對(duì)應(yīng)的寄存器或者存儲(chǔ)器中,完成本列的信息更新。在所有列都按上述方法更新后,我們稱之完成了一次迭代,迭代次數(shù)自加1。通過變量節(jié)點(diǎn)單元判斷本次迭代后中間結(jié)果是否滿足校驗(yàn),如果滿足校驗(yàn),則宣布1-bit硬信息軟譯碼成功,并把結(jié)果輸出至輸出數(shù)據(jù)存儲(chǔ)器;如果不滿足校驗(yàn),則判斷迭代次數(shù)是否達(dá)到最大次數(shù)。如果迭代未達(dá)到最大次數(shù),則返回繼續(xù)進(jìn)行下一次迭代;如果迭代已經(jīng)達(dá)到最大次數(shù),則宣告1-bit硬信息軟譯碼失敗。

在1-bit硬信息軟譯碼宣告失敗后,從閃存中讀取本幀(即碼字)第二bit的對(duì)數(shù)似然比信息,并把讀取的信息存放到輸入數(shù)據(jù)存儲(chǔ)器中。當(dāng)本幀所有信息存儲(chǔ)完畢后,結(jié)合之前已經(jīng)讀取的第一bit信息,譯碼器開始對(duì)2-bit的軟信息進(jìn)行軟解碼。具體如下:在每個(gè)時(shí)鐘,輸入數(shù)據(jù)存儲(chǔ)器都會(huì)按順序取出z*2bit信息,輸入變量節(jié)點(diǎn)單元,經(jīng)由校驗(yàn)節(jié)點(diǎn)單元、定偏移移位器,最終通過選擇器把數(shù)據(jù)存入對(duì)應(yīng)的寄存器或者存儲(chǔ)器中,完成本列的信息更新。在所有列都按上述方法更新后,我們稱之完成了一次迭代,迭代次數(shù)自加1。通過變量節(jié)點(diǎn)單元判斷本次迭代后中間結(jié)果是否滿足校驗(yàn),如果滿足校驗(yàn),則宣布2-bit軟信息軟譯碼成功,并把結(jié)果輸出至輸出數(shù)據(jù)存儲(chǔ)器;如果不滿足校驗(yàn),則判斷迭代次數(shù)是否達(dá)到最大次數(shù)。如果迭代未達(dá)到最大次數(shù),則返回繼續(xù)進(jìn)行下一次迭代;如果迭代已經(jīng)達(dá)到最大次數(shù),則宣告2-bit軟信息軟譯碼失敗。

1-bit硬信息軟譯碼是指:從閃存讀取的對(duì)數(shù)似然比用1-bit量化,并采取按列分組的最小和譯碼算法進(jìn)行迭代譯碼;2-bit軟信息軟譯碼是指:從閃存讀取的對(duì)數(shù)似然比用2-bit量化,并采取按列分組的最小和譯碼算法進(jìn)行迭代譯碼。

本譯碼器不局限于按行成等差數(shù)列的校驗(yàn)矩陣,對(duì)于按斜對(duì)角線成等差數(shù)列的校驗(yàn)矩陣,存儲(chǔ)器與寄存器的存儲(chǔ)邏輯需要調(diào)整。對(duì)于按行成等差數(shù)列的校驗(yàn)矩陣:通過兩個(gè)5選1的選擇器來選擇存儲(chǔ)器的輸入、輸出接口與對(duì)應(yīng)的寄存器r0~r4相連;對(duì)于按斜對(duì)角線成等差數(shù)列的校驗(yàn)矩陣:存儲(chǔ)器的輸入接口固定與寄存器r0對(duì)應(yīng)的校驗(yàn)節(jié)點(diǎn)單元c0相連,存儲(chǔ)器的輸出接口固定與寄存器r4相連,并且每個(gè)時(shí)鐘寄存器r1~r4的數(shù)據(jù)都會(huì)存入前一個(gè)寄存器。

本譯碼器的有益效果為:本譯碼器使用的碼型基于等差準(zhǔn)循環(huán)ldpc碼,并對(duì)其校驗(yàn)矩陣作了矩陣擴(kuò)展操作;在采取按列分組的最小和譯碼算法時(shí),利用了等差準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣的特性,避免了桶形移位器的使用;由于避免了桶形移位器的使用,準(zhǔn)循環(huán)ldpc碼子矩陣維度的擴(kuò)大將不會(huì)嚴(yán)重影響譯碼器的硬件面積,因此可以通過擴(kuò)大子矩陣的維度來增加譯碼的并行度,從而提升譯碼器的吞吐率;通過本譯碼器對(duì)1-bit硬信息軟譯碼和2-bit軟信息軟譯碼的兼容使用,降低了閃存的平均讀寫次數(shù),從而提高了閃存的使用壽命。

附圖說明

圖1a為準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣的示意圖;

圖1b為準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣中每個(gè)元素所對(duì)應(yīng)的子矩陣的示意圖;

圖2a為等差準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣的示意圖;

圖2b為等差準(zhǔn)循環(huán)ldpc碼的一部分作矩陣擴(kuò)展操作的示意圖;

圖2c為等差準(zhǔn)循環(huán)ldpc碼擴(kuò)展后的校驗(yàn)矩陣的示意圖;

圖3為本譯碼器參數(shù)具體化后的實(shí)例的架構(gòu)圖;

圖4為本譯碼器參數(shù)具體化后的中間變量存儲(chǔ)細(xì)節(jié)的示意圖;

圖5為本譯碼器的譯碼流程圖;

圖6為當(dāng)碼型按斜對(duì)角線等差時(shí),存儲(chǔ)結(jié)構(gòu)調(diào)整方式的示意圖。

具體實(shí)施方式

下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。

為使本譯碼器的技術(shù)方法和優(yōu)點(diǎn)更為清晰,現(xiàn)將譯碼器參數(shù)具體化并參照附圖,對(duì)本譯碼器進(jìn)行更為詳細(xì)的闡述。

如圖1a所示,準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣可以用偏移參數(shù)pi,j來表示。如圖1b所示,每個(gè)偏移參數(shù)對(duì)應(yīng)了一個(gè)z×z的單位矩陣的循環(huán)右移矩陣,且其偏移量為pi,j,其中,z即為子矩陣的維度。特別地,pi,j=0對(duì)應(yīng)的即是維度為z的單位矩陣。

等差準(zhǔn)循環(huán)ldpc碼是一種特殊的準(zhǔn)循環(huán)ldpc碼。如圖1a所示,本實(shí)例中的等差準(zhǔn)循環(huán)ldpc碼的偏移參數(shù)pi,j=(i×j)modz。本譯碼器適用但不局限于本實(shí)例中的等差準(zhǔn)循環(huán)ldpc碼。

如圖2a、2c所示,流程200即是對(duì)基礎(chǔ)的等差準(zhǔn)循環(huán)ldpc碼210作的矩陣擴(kuò)展操作,矩陣230即是其擴(kuò)展后的等差準(zhǔn)循環(huán)ldpc碼。

如圖2a所示,等差準(zhǔn)循環(huán)ldpc碼210即是本實(shí)例中所用的碼型,其校驗(yàn)矩陣中每行(或每列)的偏移參數(shù)均為等差數(shù)列,且每行(或每列)的公差依次遞增1。特別地,本實(shí)例中的等差準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣的列重(每列所包含的非空元素的個(gè)數(shù))r=5。對(duì)圖2a所示的子校驗(yàn)矩陣211從上至下依次往后錯(cuò)位一列,即可得到如圖2b所示的矩陣221。把所得矩陣復(fù)制兩份(共3份),即可得到如圖2b所示的矩陣222和223。在本實(shí)例中,復(fù)制倍數(shù)t=3,可以得到如圖2b所示的矩陣220,即如圖2c所示的矩陣231。同樣地,對(duì)如圖2a所示的子校驗(yàn)矩陣212采取相同的操作,可以得到如圖2c所示的矩陣232。以此類推,對(duì)如圖2a中多個(gè)毗鄰的子校驗(yàn)矩陣210采取相同的操作,可以得到如圖2c所示的擴(kuò)展后的等差準(zhǔn)循環(huán)ldpc碼的校驗(yàn)矩陣230。特別地,本實(shí)例中對(duì)如圖2a中毗鄰的10個(gè)矩陣采取相同的擴(kuò)展方式,可以得到一個(gè)行列比為1:10的擴(kuò)展后的校驗(yàn)矩陣,且此矩陣的列重r=5,行重s=50,碼率r=0.9。在如圖2c所示的擴(kuò)展后的等差準(zhǔn)循環(huán)校驗(yàn)矩陣230中,非空部分表示維度為z的單位矩陣的循環(huán)右移矩陣,空白部分表示維度為z的全零矩陣。

需要理解,擴(kuò)展后的校驗(yàn)矩陣沒有短環(huán),即4元環(huán)。

如圖3所示的是本實(shí)例中的譯碼器的硬件架構(gòu)300。輸入譯碼器的信道信息首先存放于輸入數(shù)據(jù)存儲(chǔ)器310中。開始譯碼后,變量節(jié)點(diǎn)單元320接收輸入數(shù)據(jù)存儲(chǔ)器310中的信道信息和寄存器370~374中存儲(chǔ)的c2v(校驗(yàn)節(jié)點(diǎn)傳給變量節(jié)點(diǎn))信息,并計(jì)算出更新后的v2c(變量節(jié)點(diǎn)傳給校驗(yàn)節(jié)點(diǎn))信息。變量節(jié)點(diǎn)單元共1個(gè),計(jì)算的是如圖2c所示的校驗(yàn)矩陣中的一列。

需要理解,變量節(jié)點(diǎn)單元320同時(shí)還計(jì)算了當(dāng)前變量節(jié)點(diǎn)所連接的校驗(yàn)節(jié)點(diǎn)是否滿足校驗(yàn)(所連接的校驗(yàn)節(jié)點(diǎn)之和是否為零),且其結(jié)果將用于提前終止譯碼。

需要理解,變量節(jié)點(diǎn)單元320將更新后的v2c信息的符號(hào)位存入符號(hào)存儲(chǔ)器330,用于計(jì)算下一次迭代中的c2v信息。

變量節(jié)點(diǎn)單元320更新結(jié)束后,校驗(yàn)節(jié)點(diǎn)單元340~344接收更新后的v2c信息和符號(hào)存儲(chǔ)器330中存儲(chǔ)的上次迭代中的c2v符號(hào)位信息,并計(jì)算出更新后的c2v信息。校驗(yàn)節(jié)點(diǎn)單元共5個(gè),對(duì)應(yīng)的是如圖2c所示的校驗(yàn)矩陣中連接于當(dāng)前變量節(jié)點(diǎn)的5個(gè)校驗(yàn)節(jié)點(diǎn)。

需要理解,在本譯碼器采取按列分組的最小和譯碼算法時(shí),c2v信息即每行中的first_min(第一最小值)、second_min(第二最小值)、first_min_index(第一最小值的地址)、second_min_index(第二最小值的地址),以及global_sign(全局符號(hào))。

需要理解,第一最小值和第二最小值的地址表示的是其在本行中的位置。在本實(shí)例中,其取值范圍為0~49。

校驗(yàn)節(jié)點(diǎn)單元340~344更新結(jié)束后,5條更新后的c2v信息分別送入5個(gè)定偏移移位器350~354中。定偏移移位器350~354的偏移量依次為0~4,對(duì)應(yīng)的是如圖2c所示的校驗(yàn)矩陣中連續(xù)5行的公差分別為0~4。

移位結(jié)束后,5條移位后的c2v信息通過選擇器360分配到5個(gè)寄存器370~374以及存儲(chǔ)器380中。如圖2c所示的校驗(yàn)矩陣中,當(dāng)前變量節(jié)點(diǎn)從上至下共連接了5個(gè)校驗(yàn)節(jié)點(diǎn),后4個(gè)校驗(yàn)節(jié)點(diǎn)的c2v信息會(huì)在下一列的迭代中立即被使用,所以通過選擇器360存入5個(gè)寄存器之中的4個(gè);第一個(gè)校驗(yàn)節(jié)點(diǎn)的c2v信息不會(huì)在下一列迭代中立即被使用,所以通過選擇器360存入存儲(chǔ)器380;存儲(chǔ)器380將會(huì)取出一條預(yù)先存放的立即被用于下一列迭代的c2v信息,通過選擇器390存入5個(gè)寄存器中的最后剩余的1個(gè)。至此,寄存器370~374存儲(chǔ)了5條c2v信息,且它們將被送入變量節(jié)點(diǎn)單元320,用于下一列v2c信息的計(jì)算。

需要理解,當(dāng)所有列的消息都被更新過一次(進(jìn)行一次v2c信息與c2v信息的迭代),我們稱按列分組的最小和譯碼算法完成了一次迭代,并令迭代次數(shù)自加1。

需要理解,如果譯碼器在在規(guī)定的迭代次數(shù)內(nèi)完成了譯碼,譯碼器將提前終止迭代,把結(jié)果輸出到輸出數(shù)據(jù)存儲(chǔ)器315,并宣告譯碼成功;反之,如果譯碼器在達(dá)到最大的迭代次數(shù)后仍未完成譯碼,譯碼器將終止迭代,把結(jié)果輸出到輸出數(shù)據(jù)存儲(chǔ)器315,并宣告譯碼失敗。

如圖2c所示的矩陣中的每一列都有5個(gè)校驗(yàn)節(jié)點(diǎn),對(duì)應(yīng)了5條移位后的c2v信息。其中第1條移位后的c2v信息會(huì)被分配到存儲(chǔ)器(因?yàn)樗粫?huì)在下一時(shí)刻被使用),后4條移位后的c2v信息會(huì)被分配到寄存器(因?yàn)樗鼈儠?huì)在下一時(shí)刻被使用)。為了更好地理解如圖3所示的選擇器360如何把5條移位后的c2v信息分配到對(duì)應(yīng)的寄存器370~374和存儲(chǔ)器380中,以及選擇器390如何把存儲(chǔ)器380中的c2v信息分配到對(duì)應(yīng)的寄存器370~374中,其具體的分配流程被展示在圖4的400中。

400展示了多個(gè)時(shí)鐘具體的存儲(chǔ)細(xì)節(jié)。410處是譯碼器的譯碼時(shí)鐘,每個(gè)時(shí)鐘處理的是等差準(zhǔn)循環(huán)ldpc碼中對(duì)應(yīng)的一列。

420處對(duì)應(yīng)的是等差準(zhǔn)循環(huán)ldpc碼的每列的5個(gè)校驗(yàn)節(jié)點(diǎn)單元c0~c4,即如圖3所示的校驗(yàn)節(jié)點(diǎn)單元340~344。在本例中,每個(gè)時(shí)鐘下c0~c4所對(duì)應(yīng)的pi,j的具體數(shù)值如表420所示。

430處對(duì)應(yīng)的是定偏移移位器s0~s4,即如圖3所示的定偏移移位器350~354。在本例中,每個(gè)時(shí)鐘下s0~s4所對(duì)應(yīng)的移位值具體數(shù)值如表430所示。

需要理解,定偏移移位器s0其移位值是0,等價(jià)于直通;定偏移移位器s1其移位值除了1之外,還有12這一個(gè)特殊值,用于使校驗(yàn)矩陣最后一列與首列對(duì)齊;定偏移移位器s2其移位值除了2之外,還有24這一個(gè)特殊值,用于使校驗(yàn)矩陣最后一列與首列對(duì)齊;定偏移移位器s3其移位值除了3之外,還有36這一個(gè)特殊值,用于使校驗(yàn)矩陣最后一列與首列對(duì)齊;定偏移移位器s4其移位值除了4之外,還有48這一個(gè)特殊值,用于使校驗(yàn)矩陣最后一列與首列對(duì)齊。

需要理解,如圖2c中的231處所示,移位器的移位值是根據(jù)前后兩列偏移值之差決定的。

440處對(duì)應(yīng)的是寄存器r0~r4,即如圖3所示的寄存器370~374。在本例中,每個(gè)時(shí)鐘下存儲(chǔ)的具體c2v信息如表440所示。

需要理解,表440中mi代表的是第i行的c2v信息。

需要理解,表440中的inf代表的是初始化時(shí),寄存器或存儲(chǔ)器中讀出的值全賦最大值。

450處對(duì)應(yīng)的是存儲(chǔ)器m0,即如圖3所示的存儲(chǔ)器380。在本例中,每個(gè)時(shí)鐘下存儲(chǔ)器的讀、寫地址和讀、寫數(shù)據(jù)如表450所示。以第11個(gè)時(shí)鐘為例,表示經(jīng)過移位器s1移位后的c2v信息m11被寫入存儲(chǔ)器的地址1中。同時(shí)地,在存儲(chǔ)器中被讀出的c2v信息m0被存入寄存器r0中。

需要理解,此處存儲(chǔ)器的讀數(shù)延時(shí)為兩個(gè)時(shí)鐘。因此,當(dāng)?shù)?個(gè)時(shí)鐘給出讀地址0后,在第10個(gè)時(shí)鐘m0才被讀出。

需要理解,本譯碼器兼容1-bit硬信息軟解碼和2-bit軟信息軟解碼。在使用1-bit硬信息進(jìn)行軟譯碼時(shí),本譯碼器對(duì)輸入的對(duì)數(shù)似然比采取1-bit量化,中間計(jì)算結(jié)果采取4-bit量化;在使用2-bit軟信息進(jìn)行軟譯碼時(shí),本譯碼器對(duì)輸入的對(duì)數(shù)似然比采取2-bit量化,中間計(jì)算結(jié)果采取4-bit量化。本譯碼器的具體實(shí)施流程500如圖5所示:

在510處譯碼開始后,在520處譯碼器首先從閃存讀取本幀(即碼字)第一bit的對(duì)數(shù)似然比信息,并把讀取的信息存放到如圖3所示的輸入數(shù)據(jù)存儲(chǔ)器310中。當(dāng)本幀所有信息存儲(chǔ)完畢后,在521處譯碼器開始對(duì)1-bit的硬信息進(jìn)行軟解碼。具體如下:在每個(gè)時(shí)鐘,輸入數(shù)據(jù)存儲(chǔ)器310都會(huì)按順序取出z*1bit信息,輸入變量節(jié)點(diǎn)單元320,經(jīng)由校驗(yàn)節(jié)點(diǎn)單元340~344、定偏移移位器350~354,最終通過選擇器360把數(shù)據(jù)存入對(duì)應(yīng)的寄存器370~374或者存儲(chǔ)器380中,完成本列的信息更新。在所有列都按上述方法更新后,我們稱之完成了一次迭代,迭代次數(shù)自加1。在522處,通過變量節(jié)點(diǎn)單元320判斷本次迭代后中間結(jié)果是否滿足校驗(yàn),如果滿足校驗(yàn),則在523處宣布1-bit硬信息軟譯碼成功,并把結(jié)果輸出至輸出數(shù)據(jù)存儲(chǔ)器315;如果不滿足校驗(yàn),則在525處判斷迭代次數(shù)是否達(dá)到最大次數(shù)。如果迭代未達(dá)到最大次數(shù),則返回524處繼續(xù)進(jìn)行下一次迭代;如果迭代已經(jīng)達(dá)到最大次數(shù),則在526處宣告1-bit硬信息軟譯碼失敗。

在1-bit硬信息軟譯碼宣告失敗后,在530處從閃存中讀取本幀(即碼字)第二bit的對(duì)數(shù)似然比信息,并把讀取的信息存放到如圖3所示的輸入數(shù)據(jù)存儲(chǔ)器310中。當(dāng)本幀所有信息存儲(chǔ)完畢后,結(jié)合之前已經(jīng)讀取的第一bit信息,在531處譯碼器開始對(duì)2-bit的軟信息進(jìn)行軟解碼。具體如下:在每個(gè)時(shí)鐘,輸入數(shù)據(jù)存儲(chǔ)器310都會(huì)按順序取出z*2bit信息,輸入變量節(jié)點(diǎn)單元320,經(jīng)由校驗(yàn)節(jié)點(diǎn)單元340~344、定偏移移位器350~354,最終通過選擇器360把數(shù)據(jù)存入對(duì)應(yīng)的寄存器370~374或者存儲(chǔ)器380中,完成本列的信息更新。在所有列都按上述方法更新后,我們稱之完成了一次迭代,迭代次數(shù)自加1。在532處,通過變量節(jié)點(diǎn)單元320判斷本次迭代后中間結(jié)果是否滿足校驗(yàn),如果滿足校驗(yàn),則在533處宣布2-bit軟信息軟譯碼成功,并把結(jié)果輸出至輸出數(shù)據(jù)存儲(chǔ)器315;如果不滿足校驗(yàn),則在535處判斷迭代次數(shù)是否達(dá)到最大次數(shù)。如果迭代未達(dá)到最大次數(shù),則返回534處繼續(xù)進(jìn)行下一次迭代;如果迭代已經(jīng)達(dá)到最大次數(shù),則在536處宣告2-bit軟信息軟譯碼失敗。

需要理解,1-bit硬信息軟譯碼是指:從閃存讀取的對(duì)數(shù)似然比用1-bit量化,并采取按列分組的最小和譯碼算法進(jìn)行迭代譯碼;2-bit軟信息軟譯碼是指:從閃存讀取的對(duì)數(shù)似然比用2-bit量化,并采取按列分組的最小和譯碼算法進(jìn)行迭代譯碼。

由于閃存的壽命(即讀寫次數(shù))有限,本譯碼器最多對(duì)閃存進(jìn)行2-bit的讀取。如果1-bit硬信息軟譯碼和2-bit軟信息軟譯碼均宣告失敗,則本譯碼器在540處宣布譯碼失敗,并結(jié)束譯碼。此外,本譯碼器對(duì)閃存最多進(jìn)行2-bit讀取是為了考慮本譯碼器在閃存糾錯(cuò)領(lǐng)域的實(shí)用性,并非為了限制本譯碼器的適用范圍。

本實(shí)例為了方便闡明本譯碼器的架構(gòu),采取了子矩陣維度z=61,列重r=5,行重s=50,復(fù)制倍數(shù)t=3??梢郧蟮么a長(zhǎng)n=s×z×t=9150,碼率r=1-r/s=0.9。

本實(shí)例所采用的上述參數(shù)僅為闡明本譯碼器的架構(gòu),非為限制本譯碼器的應(yīng)用場(chǎng)景。本譯碼器適用于任意的等差準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣,非限制于公比依次為0~4的等差準(zhǔn)循環(huán)ldpc碼校驗(yàn)矩陣。此外,本譯碼器非限制于按行成等差數(shù)列的矩陣,也適用于按斜對(duì)角線成等差數(shù)列的矩陣。對(duì)于按斜對(duì)角線成等差數(shù)列的矩陣,存儲(chǔ)器與寄存器的存儲(chǔ)順序需要按照如圖6的600處所示,作出從結(jié)構(gòu)610到結(jié)構(gòu)620的調(diào)整。結(jié)構(gòu)610是通過兩個(gè)5選1的選擇器來選擇存儲(chǔ)器的輸入、輸出接口與對(duì)應(yīng)的寄存器r0~r4相連;結(jié)構(gòu)620中,存儲(chǔ)器的輸入接口固定與寄存器r0對(duì)應(yīng)的c0相連,存儲(chǔ)器的輸出接口固定與寄存器r4相連,并且每個(gè)時(shí)鐘寄存器r1~r4的數(shù)據(jù)都會(huì)存入前一個(gè)寄存器。

本譯碼器適用于任意需求高碼率、高吞吐率ldpc譯碼的應(yīng)用場(chǎng)景,非限制于閃存糾錯(cuò)領(lǐng)域。此外,本譯碼器非限制于特定的實(shí)現(xiàn),本譯碼器可在諸如asic(專用集成電路)、fpga(現(xiàn)場(chǎng)可編程門陣列)等任意適當(dāng)?shù)挠布幚砥魃蠈?shí)現(xiàn)。

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