相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求于2015年10月13日提交的申請(qǐng)?zhí)枮?2/240,964的美國臨時(shí)專利申請(qǐng)的優(yōu)先權(quán),其全部公開通過引用并入本文。
背景技術(shù):
非易失性存儲(chǔ)器裝置諸如固態(tài)驅(qū)動(dòng)器(ssd)正在尋找在消費(fèi)性電子產(chǎn)品中的新應(yīng)用。例如,它們正在替代通常包括快速旋轉(zhuǎn)的磁盤(圓形磁盤片)的硬盤驅(qū)動(dòng)器(hdd)。非易失性存儲(chǔ)器,其有時(shí)被稱作“閃速存儲(chǔ)器”(例如,nand和nor閃存裝置),被用在介質(zhì)存儲(chǔ)、攝像機(jī)、移動(dòng)電話、移動(dòng)計(jì)算機(jī)、便攜式計(jì)算機(jī)、usb閃存驅(qū)動(dòng)器等中。當(dāng)斷電時(shí),非易失性存儲(chǔ)器提供存儲(chǔ)數(shù)據(jù)的相對(duì)可靠、小型化、性價(jià)比高并且易于訪問的方法。
在諸如nand閃速存儲(chǔ)器系統(tǒng)的存儲(chǔ)器系統(tǒng)中使用錯(cuò)誤校正碼(ecc)以確保被存儲(chǔ)于存儲(chǔ)器系統(tǒng)中的數(shù)據(jù)的數(shù)據(jù)完整性。ecc對(duì)于延伸nand(非-and)閃速存儲(chǔ)器系統(tǒng)的生命周期已經(jīng)變得日益重要。低密度奇偶校驗(yàn)(ldpc)碼已經(jīng)被用于改善nand閃速存儲(chǔ)器的可靠性。傳統(tǒng)編碼器使用的ldpc碼是規(guī)則的ldpc碼而不是不規(guī)則的ldpc碼。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例涉及一種存儲(chǔ)器系統(tǒng)。
根據(jù)本發(fā)明的實(shí)施例,一種存儲(chǔ)器系統(tǒng),其包括:存儲(chǔ)器位置的陣列;以及編碼器,其包括:第一編碼器存儲(chǔ)器位置,其存儲(chǔ)a、c、e和b的循環(huán)內(nèi)容,其中a、c、e和b為奇偶校驗(yàn)矩陣h的部分;第二編碼器存儲(chǔ)器位置,其存儲(chǔ)a、c、e和b的循環(huán)列計(jì)數(shù);以及第三編碼器存儲(chǔ)器位置,其存儲(chǔ)密集矩陣,其中密集矩陣等于(et-1b+d)-1,其中t為單位矩陣并且d和t也為奇偶校驗(yàn)矩陣h的部分,其中編碼器被配置為接收信息數(shù)據(jù)ut,并且被配置為:通過將信息數(shù)據(jù)乘以(e*a+c)而生成第一乘積,其中生成第一乘積包括訪問第一和第二編碼器存儲(chǔ)器位置;通過將密集矩陣乘以第一乘積而生成第一奇偶校驗(yàn)信息p1t;并且生成第二奇偶校驗(yàn)信息p2t,其中第二奇偶校驗(yàn)信息等于(a*ut+b*p1t)。
根據(jù)本發(fā)明的實(shí)施例,一種存儲(chǔ)器系統(tǒng)的編碼器的使用方法,其包括:接收信息數(shù)據(jù)ut;將信息數(shù)據(jù)乘以(e*a+c),其中e、a和c是奇偶校驗(yàn)矩陣h的部分,其中將信息數(shù)據(jù)乘以(e*a+c)包括:訪問存儲(chǔ)a、c和e的循環(huán)內(nèi)容的第一存儲(chǔ)器位置;并且訪問存儲(chǔ)a、c和e的循環(huán)列計(jì)數(shù)的第二存儲(chǔ)器位置;將信息數(shù)據(jù)乘以(e*a+c)的第一乘積存儲(chǔ)在第一緩沖器中;訪問存儲(chǔ)密集矩陣的第三存儲(chǔ)器位置,其中密集矩陣等于(et-1b+d)-1,其中t為單位矩陣并且d和t也為奇偶校驗(yàn)矩陣h的部分;通過將密集矩陣乘以第一乘積生成第一奇偶校驗(yàn)信息p1t;以及生成第二奇偶校驗(yàn)信息p2t,其中第二奇偶校驗(yàn)信息等于(a*ut+b*p1t),生成第二奇偶校驗(yàn)信息包括:訪問存儲(chǔ)b的循環(huán)內(nèi)容的第一存儲(chǔ)器位置,其中b為奇偶校驗(yàn)矩陣h的部分;并且訪問存儲(chǔ)b的循環(huán)列計(jì)數(shù)的第二存儲(chǔ)器位置。
附圖說明
將參照附圖描述根據(jù)本公開的各個(gè)實(shí)施例,在附圖中:
圖1示出包括編碼器和存儲(chǔ)器陣列的存儲(chǔ)器系統(tǒng)的示例性頂層框圖;
圖2示出示例性校驗(yàn)奇偶校驗(yàn)矩陣h;
圖3示出可被不規(guī)則ldpc編碼器訪問的三個(gè)示例性存儲(chǔ)器位置;
圖4示出不規(guī)則ldpc編碼器的編碼器結(jié)構(gòu)的示例性頂層框圖;
圖5示出包括示例性編碼器和存儲(chǔ)器陣列的示例性存儲(chǔ)器系統(tǒng);并且
圖6示出生成由ldpc編碼器使用的奇偶信息的過程的示例。
具體實(shí)施方式
本發(fā)明的實(shí)施例涉及用于編碼不規(guī)則代碼的方法、系統(tǒng)和裝置。本公開的某些方面和實(shí)施例在下文中被提供。如對(duì)本領(lǐng)域技術(shù)人員而言將會(huì)是顯而易見的是,這些方面和實(shí)施例中的一些可以被獨(dú)立地應(yīng)用并且它們中的一些可以被組合應(yīng)用。在下文的描述中,出于解釋的目的,具體的細(xì)節(jié)被闡述以為了提供對(duì)實(shí)施例的徹底理解。然而,各個(gè)實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)施,這將是顯而易見的。附圖和描述并不旨在限制。
隨后的描述提供了示例并且不是為了限定本公開的范圍、適用性或配置。相反,隨后的示例性實(shí)施例的描述將為本領(lǐng)域技術(shù)人員提供能夠?qū)崿F(xiàn)示例性實(shí)施例的描述。應(yīng)當(dāng)理解的是,在不脫離如在權(quán)利要求書中提出的本發(fā)明的精神和范圍的情況下,元件的功能和布置可以被進(jìn)行各種改變。
在接下來的描述中給出具體細(xì)節(jié)以提供對(duì)實(shí)施例的徹底理解。然而,將被本領(lǐng)域普通技術(shù)人員所理解的是,實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)施。例如,為了不使不必要的細(xì)節(jié)使實(shí)施例難以理解,電路、系統(tǒng)、網(wǎng)絡(luò)、過程和其它部件可被示出為框圖形式的部件。在其它實(shí)例中,為了避免使實(shí)施例難以理解,公知的電路、過程、算法、結(jié)構(gòu)和技術(shù)可以被示出而不帶有不必要的細(xì)節(jié)。
術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括但不限于,便攜式或非便攜式存儲(chǔ)裝置、光存儲(chǔ)裝置和能夠存儲(chǔ)、包含或攜帶指令和/或數(shù)據(jù)的各種其它介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以包括數(shù)據(jù)可以被存儲(chǔ)于其中的非暫時(shí)性介質(zhì),其不包括通過無線傳播的或有線連接的載波和/或暫時(shí)性電子信號(hào)。非暫時(shí)性介質(zhì)的實(shí)例可以包括但不限于磁盤或磁帶、諸如光盤(cd)或數(shù)字通用光盤(dvd)的光存儲(chǔ)介質(zhì)、閃速存儲(chǔ)器、存儲(chǔ)器或存儲(chǔ)器裝置。計(jì)算機(jī)可讀介質(zhì)可以具有存儲(chǔ)于其上的編碼和/或可以表示步驟、功能、子程序、程序、例程、子例程、模塊、軟件包、類別、或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任何組合的機(jī)器執(zhí)行的指令。代碼段可通過傳遞和/或接收信息、數(shù)據(jù)、參數(shù)、參量或存儲(chǔ)器內(nèi)容可以被聯(lián)接至另一個(gè)代碼段或硬件電路。信息、參數(shù)、參量、數(shù)據(jù)等可以經(jīng)由包括存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方法被傳遞、轉(zhuǎn)遞或傳輸。
而且,實(shí)施例可以通過硬件、軟件、固件、中間件、微碼、硬件描述語言或它們的任何組合被實(shí)現(xiàn)。當(dāng)在軟件、固件、中間件或微碼中實(shí)現(xiàn)時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼段(例如,計(jì)算機(jī)程序產(chǎn)品)可以被存儲(chǔ)在計(jì)算機(jī)可讀或機(jī)器可讀的介質(zhì)中。處理器可以執(zhí)行必要的任務(wù)。
接下來的詳細(xì)的描述連同附圖一起提供對(duì)本發(fā)明的性質(zhì)和優(yōu)點(diǎn)的更好的理解,其中附圖中相同的參考數(shù)字有時(shí)被用在多個(gè)附圖中以表示相似的或相同結(jié)構(gòu)的結(jié)構(gòu)元件。
存儲(chǔ)器系統(tǒng)使用錯(cuò)誤校正碼(ecc)以確保數(shù)據(jù)完整性。例如,奇偶校驗(yàn)位可以和信息數(shù)據(jù)一起被存儲(chǔ)在相同的存儲(chǔ)器位置中,在該存儲(chǔ)器位置中奇偶校驗(yàn)位是二進(jìn)制字符串的特定位的數(shù)據(jù)總和為奇數(shù)還是偶數(shù)值的指令。低密度校驗(yàn)奇偶校驗(yàn)(ldpc)碼通常包括具有行和列的奇偶校驗(yàn)矩陣。例如,ldpc可以被應(yīng)用于(待被編碼的)信息數(shù)據(jù)以生成奇偶校驗(yàn)位。已有的ldpc編碼器包括適于規(guī)則代碼的編碼器結(jié)構(gòu)。然而,當(dāng)已有的ldpc編碼器遇到不規(guī)則代碼時(shí),其在區(qū)域和功率方面是低效的。通常,當(dāng)行重對(duì)于每列是恒定的并且列重對(duì)于每行是恒定的時(shí),ldpc碼是“規(guī)則代碼”。不“規(guī)則的”ldpc被稱為“不規(guī)則”。對(duì)于不規(guī)則ldpc編碼器,在坦納圖(tannergraph)的每一邊上的節(jié)點(diǎn)的度數(shù)可以很大地變化。關(guān)于奇偶校驗(yàn)矩陣h,每行和列的重量對(duì)于不規(guī)則ldpc碼是不統(tǒng)一的。由于規(guī)則與不規(guī)則ldpc碼之間的差異,使用不規(guī)則ldpc碼的傳統(tǒng)規(guī)則群組結(jié)構(gòu)(grouparchitecture)可以被更高效的用于編碼。除了效率,存儲(chǔ)器系統(tǒng)的能量消耗效率也是令人滿意的。例如,能量消耗是tlc(三層單元)nand多步編程的驅(qū)動(dòng)因素。本公開提供用于不規(guī)則ldpc碼的編碼器以及操作該編碼器的方法的示例。與傳統(tǒng)ldpc編碼器相比,公開的實(shí)施例提供使區(qū)域和功率高效的潛在優(yōu)點(diǎn)。
圖1示出包括編碼器110和存儲(chǔ)器陣列130的存儲(chǔ)器系統(tǒng)100的示例性頂層框圖。在一個(gè)實(shí)施例中,存儲(chǔ)器系統(tǒng)100是存儲(chǔ)器裝置的示例,諸如非易失性存儲(chǔ)器裝置。例如,存儲(chǔ)器陣列130可以被實(shí)現(xiàn)為nand閃速存儲(chǔ)器并且可以包含千兆字節(jié)的存儲(chǔ)器位置。存儲(chǔ)器系統(tǒng)100可以被包括在計(jì)算機(jī)、移動(dòng)裝置、拇指棒閃存驅(qū)動(dòng)器(thumb-stickflashdrive)或其它裝置中。在圖1中,編碼器110響應(yīng)于接收數(shù)據(jù)103生成編碼數(shù)據(jù)113。然后編碼數(shù)據(jù)113被存儲(chǔ)在存儲(chǔ)器陣列130中。編碼數(shù)據(jù)113包括接收數(shù)據(jù)103和在編碼器110中生成的奇偶校驗(yàn)信息。
圖2示出示例性校驗(yàn)奇偶校驗(yàn)矩陣h200。奇偶校驗(yàn)矩陣h包括六部分a205、b210、t215、c220、d225和e230。如本領(lǐng)域內(nèi)公知的,六個(gè)部分格式通過使用richardson-urbanke(“ru”)算法生成。ru算法在例如由作者thomasj.richardson在ieeetransactionsinformationtheory(2001)上發(fā)表的“低密度奇偶校驗(yàn)碼的高效編碼”中被描述。
對(duì)于奇偶校驗(yàn)矩陣h200,應(yīng)用以下方程:
h*ct=[abt](1)
[cde]*[utp1tp2t]=0(2)
在方程(1)中,ct表示碼字,h表示奇偶校驗(yàn)矩陣h200,并且a、b和t分別表示a部分205,b部分210以及t部分215。在方程(2)中,c、d和e分別表示c部分220,d部分225以及e部分230。同樣地,在方程(2)中,ut表示待被編碼的信息數(shù)據(jù),p1t表示第一奇偶校驗(yàn)信息,并且p2t表示第二奇偶校驗(yàn)信息。生成第一奇偶校驗(yàn)信息p1t和第二奇偶校驗(yàn)信息p2t在下文中被詳細(xì)描述。
在圖2中,a部分205和c部分220具有為k的寬度250,其中k為待被編碼的數(shù)據(jù),例如數(shù)據(jù)103,的信息位的尺寸。而且,在示出的奇偶校驗(yàn)矩陣h200中,t部分215和e部分230具有為k1的寬度260,其中k1為t部分215的尺寸,如下文所述其可以是單位矩陣。b部分210和d部分225具有為n-k-k1的寬度255,其中n為包括信息位和奇偶校驗(yàn)位的總碼字ct的尺寸。在圖2中,a部分205、b部分210和t部分215具有為k1的高度270。c部分220、d部分225和e部分230具有為n-k-k1的高度275。
由于h200是不規(guī)則的奇偶校驗(yàn)矩陣,循環(huán)置換可以被執(zhí)行以使得t部分215為單位矩陣并減少密集矩陣d的尺寸。在不規(guī)則奇偶校驗(yàn)矩陣中列重未開始一致的特征中,t部分215與規(guī)則奇偶校驗(yàn)矩陣相比可以進(jìn)一步擴(kuò)大以減少密集矩陣計(jì)算的周期次數(shù)。在本公開的實(shí)施例中,t部分215是單位矩陣并且t部分215可以被安排為下三角矩陣以減少密集矩陣的尺寸。由于單位矩陣可以很容易生成而不需要被存儲(chǔ)在存儲(chǔ)器中,因此使部分t215為單位矩陣是潛在的優(yōu)勢(shì)。因?yàn)椴糠謙215的尺寸影響d部分225的尺寸(d部分225的寬度為n-k-k1),因此最大化k1的尺寸以最小化d部分225,進(jìn)而最小化密集矩陣計(jì)算周期可能是有利的。
而且,在進(jìn)一步循環(huán)置換中,所有的高列重可以被移動(dòng)至h1240的前部245并保持低列重集中在h1240的后部243。出于本公開的目的,h1240是a部分205和c部分220的組合,或a+c。如圖2所示,在h1240的前部245中的高列重由斑點(diǎn)填充示出,同時(shí)在h1240的后部243中剩余的低列重保持空白。因?yàn)椴糠謅205、c220、b210和e230的循環(huán)內(nèi)容信息可以被合并到單個(gè)物理存儲(chǔ)位置中,因此奇偶校驗(yàn)矩陣h200的矩陣格式對(duì)于減小區(qū)域也是令人滿意的。在一個(gè)實(shí)施例中,單個(gè)物理存儲(chǔ)器位置被配置為sram。而且,因?yàn)椴糠謅205、c220、b210和e230的每列的非零循環(huán)的位置也可以被合并且存儲(chǔ)在單個(gè)存儲(chǔ)器位置中,其也可以是sram,因此奇偶校驗(yàn)矩陣h200的矩陣格式也是令人滿意的。
圖3示出三個(gè)示例性存儲(chǔ)器位置310、360和390。存儲(chǔ)器位置310、360和390可被不規(guī)則ldpc編碼器訪問。存儲(chǔ)器位置310存儲(chǔ)h1312、e314和b316。h1312存儲(chǔ)h1240的稀疏循環(huán)內(nèi)容,e314存儲(chǔ)e230的稀疏循環(huán)內(nèi)容,并且b316存儲(chǔ)b210的稀疏循環(huán)內(nèi)容。在一個(gè)實(shí)施例中,存儲(chǔ)器位置310是sram。存儲(chǔ)器位置310的寬度338是循環(huán)尺寸乘以w,其中w是存儲(chǔ)在sram的行中的非零(nz)循環(huán)內(nèi)容的數(shù)目。在一個(gè)實(shí)施例中,循環(huán)尺寸是128。h1312的高度332是h1的總nz循環(huán)內(nèi)容除以w。e314的高度334是e的總nz循環(huán)內(nèi)容除以w。b316的高度336是b的總nz循環(huán)內(nèi)容除以w。
由于h1312、e314和b316被存儲(chǔ)在同一存儲(chǔ)器位置310中,指針被用于指示邊界。high_col_ptr322是指示h1312的高列重和低列重之間的邊界的可編程指針。如填充在存儲(chǔ)器位置310的頂部處的斑點(diǎn)所指示的,高列重被存儲(chǔ)在存儲(chǔ)器位置310的頂部。circ_ptr_0324指示h1312和e314之間的邊界并且circ_ptr_1326指示e314和b316之間的邊界。high_col_ptr322、circ_ptr_0324、和circ_ptr_1326是可編程的并且可以被存儲(chǔ)在可訪問編碼器邏輯的存儲(chǔ)器中。
存儲(chǔ)器位置360存儲(chǔ)h1362、e364和b366。h1362存儲(chǔ)h1240的循環(huán)列計(jì)數(shù)(即,每列多少循環(huán)),e364存儲(chǔ)e230的循環(huán)列計(jì)數(shù),并且b366存儲(chǔ)b210的循環(huán)列計(jì)數(shù)。在一個(gè)實(shí)施例中,存儲(chǔ)器位置360是sram。存儲(chǔ)器位置360的寬度338是循環(huán)尺寸乘以y,其中y是存儲(chǔ)在sram的行中的非零(nz)循環(huán)列計(jì)數(shù)的數(shù)量。在一個(gè)實(shí)施例中,循環(huán)尺寸是128。h1362的高度382是k除以y,e364的高度384是k1除以y,并且b366的高度386是n-k-k1除以y。
由于h1362、e364和b366被存儲(chǔ)在同一存儲(chǔ)器位置360中,指針被用于指示邊界。high_col_ptr372是指示h1362的高列計(jì)數(shù)和低列計(jì)數(shù)之間的邊界的可編程指針。如填充在存儲(chǔ)器位置360的頂部處的斑點(diǎn)所指示的,高列計(jì)數(shù)被存儲(chǔ)在存儲(chǔ)器位置360頂部中。col_cnt_ptr_0374指示h1362和e364之間的邊界并且col_cnt_ptr_1376指示e364和b366之間的邊界。high_col_ptr372、col_cnt_ptr_0374和col_cnt_ptr_1376是可編程的并且可以被存儲(chǔ)在可訪問編碼器邏輯的存儲(chǔ)器中。在一個(gè)實(shí)施例中,sram360小于sram310。在一個(gè)可能的示例中,sram360具有32位的寬度和40位的高度。
在圖3中的存儲(chǔ)器位置390存儲(chǔ)密集矩陣f396,其由下式得出:
f=(et-1b+d)-1(3)
并且其中t為單位矩陣,密集矩陣f可以被表示為:
f=(e*b+d)-1(4)
密集矩陣f可以被預(yù)先計(jì)算以減輕諸如編碼器110的編碼器的處理負(fù)擔(dān)。使部分t215為單位矩陣允許方程(3)被簡化為方程(4),這可以減少處理負(fù)擔(dān)。而且,由于單位矩陣可以容易地被生成而不需要被存儲(chǔ)在存儲(chǔ)器中,因此使部分t215為單位矩陣是潛在的優(yōu)勢(shì)。存儲(chǔ)器位置390具有為n-k-k1的寬度392和為n-k-k1的高度。在一個(gè)實(shí)施例中,存儲(chǔ)器位置390是sram。
圖3示出僅需要三個(gè)存儲(chǔ)器空間以存儲(chǔ)用于奇偶校驗(yàn)矩陣h200的信息,這少于傳統(tǒng)使用的存儲(chǔ)器空間。使用較少存儲(chǔ)器空間的一個(gè)潛在優(yōu)勢(shì)是減少被分配的存儲(chǔ)器邏輯以有助于每一個(gè)存儲(chǔ)器空間。例如,三個(gè)存儲(chǔ)器空間示出可以如何使用奇偶校驗(yàn)矩陣h200的稀疏性以獲得在三個(gè)存儲(chǔ)器位置310、360和390中示出的更合適的奇偶校驗(yàn)矩陣格式。
圖4示出諸如編碼器110的不規(guī)則ldpc編碼器的編碼器結(jié)構(gòu)400的示例性頂層框圖。編碼器結(jié)構(gòu)400可以使用圖3的三個(gè)存儲(chǔ)器空間格式。編碼器結(jié)構(gòu)400除增加其自己的硬件效率之外,還利用奇偶校驗(yàn)矩陣h200的高效存儲(chǔ)。奇偶校驗(yàn)矩陣h200的存儲(chǔ)的效率和編碼器結(jié)構(gòu)400的效率可以減少不規(guī)則編碼器的區(qū)域、成本和功耗。例如,與圖2和3的高效存儲(chǔ)方案相搭配的編碼器結(jié)構(gòu)400適用于不規(guī)則奇偶校驗(yàn)矩陣并且可以被用于nand控制器應(yīng)用。
編碼器結(jié)構(gòu)400響應(yīng)于接收數(shù)據(jù)103而生成第一奇偶校驗(yàn)信息p1t471和第二奇偶校驗(yàn)信息p2t473。由下列方程計(jì)算第一奇偶校驗(yàn)信息p1t471第二奇偶校驗(yàn)信息p2t473:
p1t=(et-1b+d)-1*(et-1a+c)*ut(5)
p2t=t-1*(a*ut+b*p1t)(6)
通過使部分t215為單位矩陣并且預(yù)先計(jì)算如方程(4)中的密集矩陣f396,方程(5)和(6)可以被進(jìn)一步簡化為:
p1t=f*(e*a+c)*ut(7)
p2t=(a*ut+b*p1t)(8)
預(yù)先計(jì)算密集矩陣f396并存儲(chǔ)在存儲(chǔ)器位置390中使得用于編碼器結(jié)構(gòu)400的至少一些密集矩陣計(jì)算的處理負(fù)擔(dān)減少。
圖4中,稀疏計(jì)算塊405接收數(shù)據(jù)103。稀疏計(jì)算塊405訪問cmatrix存儲(chǔ)器490以執(zhí)行稀疏循環(huán)計(jì)算以生成部分c220并且將部分c220乘以數(shù)據(jù)103。隨著h1240成為部分a205和部分c220的組合,cmatrix可以通過分別訪問存儲(chǔ)器位置310和360的h1312和h1362部分被重建。在圖4中,稀疏計(jì)算塊410也接收數(shù)據(jù)103。稀疏計(jì)算塊410訪問amatrix存儲(chǔ)器492以執(zhí)行稀疏循環(huán)計(jì)算以生成部分a205并且將部分a205乘以數(shù)據(jù)103。amatrix可以通過分別訪問存儲(chǔ)器位置310和360的h1312和h1362部分被重建。部分a205和數(shù)據(jù)103的乘積被存儲(chǔ)在緩沖器440中。稀疏計(jì)算塊415訪問ematrix存儲(chǔ)器494以執(zhí)行稀疏循環(huán)計(jì)算從而生成部分e230并且將部分e230乘以緩沖器440的內(nèi)容(其為a*ut)。在示出的實(shí)施例中,將稀疏計(jì)算塊415的輸出與稀疏計(jì)算塊405的輸出求和并存儲(chǔ)到緩沖器442中。然后緩沖器442的內(nèi)容等于(e*a+c)*ut。在一些實(shí)施例中,求和邏輯(sumlogic)450包括xor邏輯。在圖4中,密集矩陣計(jì)算塊420訪問fmatrix存儲(chǔ)器496以執(zhí)行密集矩陣計(jì)算并且將密集矩陣f396乘以緩沖器442的內(nèi)容。密集矩陣計(jì)算塊420的輸出是p1t471。如方程(7)中給出的,將((e*a+c)*ut)乘以密集矩陣f,生成p1t471。因此,根據(jù)方程(7),由密集計(jì)算塊420和在密集計(jì)算塊420之前的塊生成p1t471。
在圖4中,稀疏計(jì)算塊425從密集計(jì)算塊420接收p1t471。稀疏計(jì)算塊425訪問bmatrix存儲(chǔ)器498以執(zhí)行稀疏循環(huán)計(jì)算從而生成部分b210并且將部分b210乘以p1t471。乘積通過稀疏計(jì)算塊425被輸出至求和邏輯塊455。求和邏輯塊455也接收緩沖器440的內(nèi)容,其為a*ut。有利地,因?yàn)榉匠?8)也需要將部分a205乘以u(píng)t,因此求和邏輯塊455能夠再次使用緩沖器440的內(nèi)容來計(jì)算p2t473。通過對(duì)a*ut(來自緩沖器440)與b*p1t(來自稀疏計(jì)算塊425)求和,求和邏輯塊455生成p2t473。因此,編碼器結(jié)構(gòu)400生成第一奇偶校驗(yàn)信息p1t471和第二奇偶校驗(yàn)信息p2t473,但是只有第一奇偶校驗(yàn)信息p1t471的生成與密集矩陣計(jì)算有關(guān)—一旦生成第一奇偶校驗(yàn)信息p1t471,編碼器結(jié)構(gòu)400就可以將其應(yīng)用于生成第二奇偶校驗(yàn)信息p2t473。因此,生成第二奇偶校驗(yàn)信息p2t473僅需要稀疏矩陣計(jì)算而不是同樣需要密集矩陣計(jì)算。
圖5示出包括示例性編碼器510和存儲(chǔ)器陣列530的示例性存儲(chǔ)器系統(tǒng)500。編碼器510包括管線(pipeline)560和存儲(chǔ)器位置310、360和390。在圖5中,存儲(chǔ)器位置310、360和390被示出為包括在編碼器510中,盡管在一些實(shí)施例中,存儲(chǔ)器位置310、360和390可以被編碼器510訪問,但不必須包括在編碼器510中。編碼器510是編碼器110的一個(gè)示例,并且存儲(chǔ)器陣列530是存儲(chǔ)器陣列130的示例。編碼器510響應(yīng)于接收數(shù)據(jù)503而生成第一奇偶校驗(yàn)信息p1t471和第二奇偶校驗(yàn)信息p2t473。在示出的實(shí)施例中,編碼數(shù)據(jù)513包括數(shù)據(jù)503、第一奇偶校驗(yàn)信息p1t471和第二奇偶校驗(yàn)信息p2t473。更具體地,編碼數(shù)據(jù)513包括數(shù)據(jù)信息字段551、第一奇偶校驗(yàn)信息字段552和第二奇偶校驗(yàn)信息字段553。數(shù)據(jù)503填入數(shù)據(jù)信息字段551、第一奇偶校驗(yàn)信息p1t471填入第一奇偶校驗(yàn)信息字段552,并且第二奇偶校驗(yàn)信息p2t473填入第二奇偶校驗(yàn)信息字段553。然后編碼數(shù)據(jù)513被存儲(chǔ)到存儲(chǔ)器陣列530的存儲(chǔ)器位置。
在圖5中,管線560可以包括編碼器結(jié)構(gòu)400。存儲(chǔ)器位置310、360和390可以被管線560訪問,使得根據(jù)存儲(chǔ)在存儲(chǔ)器位置310、360和390中的奇偶校驗(yàn)部分,管線560的邏輯或處理資源可以生成第一奇偶校驗(yàn)信息p1t471和第二奇偶校驗(yàn)信息p2t473。
圖6示出生成諸如編碼器110/510的不規(guī)則ldpc編碼器使用的奇偶校驗(yàn)信息的進(jìn)程600的示例。進(jìn)程600被示出為邏輯流程圖,其每個(gè)操作表示可以在硬件、計(jì)算機(jī)指令或其組合中實(shí)現(xiàn)的一系列操作。在計(jì)算機(jī)指令的語境中,操作表示存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的指令,即當(dāng)指令被一個(gè)或多個(gè)處理器執(zhí)行時(shí),執(zhí)行上文所述的操作。通常,計(jì)算機(jī)可執(zhí)行的指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定數(shù)據(jù)類型的例程、程序、對(duì)象、部件、數(shù)據(jù)結(jié)構(gòu)等。其中操作被描述的順序不旨在被理解為限制,并且任意數(shù)量的描述的操作可以被省略或以任何順序組合和/或并行實(shí)現(xiàn)本文中描述的該過程和任何其它過程。
進(jìn)程600的一些或所有(或本文描述的任何其它過程,或變型和/或其組合)可以在被配置有可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)的控制下被執(zhí)行并且可以被實(shí)現(xiàn)為代碼(例如可執(zhí)行的指令、一個(gè)或多個(gè)計(jì)算機(jī)程序或者一個(gè)或多個(gè)應(yīng)用)。代碼可以例如以包括可被一個(gè)或多個(gè)處理器執(zhí)行的多個(gè)指令的計(jì)算機(jī)程序的形式被存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)上。計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)可以是非暫時(shí)性的。
在進(jìn)程塊602中,信息數(shù)據(jù)(例如103/503)被接收。例如,信息數(shù)據(jù)ut可以被編碼器110/510接收。在進(jìn)程塊604中,來自第一存儲(chǔ)器位置(例如310)的循環(huán)信息被訪問并且來自第二存儲(chǔ)器位置(例如360)的循環(huán)列計(jì)數(shù)信息被訪問以將信息數(shù)據(jù)乘以(e*a+c)。e、a和c是奇偶校驗(yàn)矩陣h(例如200)的部分。在一個(gè)實(shí)施例中,將信息數(shù)據(jù)乘以(e*a+c)進(jìn)一步包括通過將信息數(shù)據(jù)乘以a而生成乘積并將該乘積(例如稀疏計(jì)算塊410的輸出)存儲(chǔ)在緩沖器(例如緩沖器440)中。
訪問特定部分的循環(huán)內(nèi)容可以包括通過訪問循環(huán)指針(例如指針324)而確定奇偶校驗(yàn)矩陣h的給定部分的循環(huán)內(nèi)容的開始,其中循環(huán)指針指向標(biāo)記特定部分(例如部分e314)的循環(huán)內(nèi)容的開始的第一存儲(chǔ)器位置的第一地址。相似地,奇偶校驗(yàn)矩陣h的特定部分的循環(huán)列計(jì)數(shù)的開始可以通過訪問列計(jì)數(shù)指針(例如指針374)而被確定,其中列計(jì)數(shù)指針指向標(biāo)記特定部分(例如部分e364)的循環(huán)列計(jì)數(shù)的開始的第二存儲(chǔ)器位置的第二地址。以這種方法,矩陣或奇偶校驗(yàn)矩陣h的部分可以從存儲(chǔ)在第一存儲(chǔ)器位置(例如310)中的循環(huán)內(nèi)容和存儲(chǔ)在第二存儲(chǔ)器位置(例如360)中的循環(huán)列計(jì)數(shù)中重建。
執(zhí)行進(jìn)程塊604的一個(gè)示例包括,例如,通過由訪問指向標(biāo)記部分e314的循環(huán)內(nèi)容的開始的第一存儲(chǔ)器位置的第一地址的circ_ptr_0324而確定奇偶校驗(yàn)矩陣h的部分e314的循環(huán)內(nèi)容的開始,將信息數(shù)據(jù)乘以(e*a+c)。相似地,部分e364的循環(huán)列計(jì)數(shù)的開始可以通過訪問指向標(biāo)記部分e364的循環(huán)列計(jì)數(shù)的開始的第二存儲(chǔ)位置的第二地址的col_cnt_ptr_0374而確定。相似地,奇偶校驗(yàn)矩陣h的其它部分可以通過使用公開的指針并訪問存儲(chǔ)器位置310和360被重建。
在進(jìn)程塊606中,將信息數(shù)據(jù)乘以(e*a+c)的第一乘積(例如求和邏輯塊450的輸出)被存儲(chǔ)到緩沖器(例如緩沖器442)中。在進(jìn)程塊608中,可以從第三存儲(chǔ)器位置(例如390)中接收密集矩陣f。例如,可以通過密集計(jì)算塊420接收密集矩陣f。密集矩陣f等于(et-1b+d)-1,其中t為單位矩陣并且d和t也是奇偶校驗(yàn)矩陣h(例如200)的部分。密集矩陣f可以被預(yù)先計(jì)算并被存儲(chǔ)到第三存儲(chǔ)器位置中。通過將密集矩陣f乘以存儲(chǔ)在進(jìn)程塊606中的第一乘積而在進(jìn)程塊610中生成第一奇偶校驗(yàn)信息p1t。在一些實(shí)施例中,密集矩陣計(jì)算塊420可以執(zhí)行進(jìn)程塊610。密集矩陣計(jì)算塊420可以包括多個(gè)and門和xor門。
在進(jìn)程塊612中,生成第二奇偶校驗(yàn)信息p2t,其中p2t等于(a*ut+b*p1t)。如上所述,生成第二奇偶校驗(yàn)信息p2t包括訪問存儲(chǔ)部分b的循環(huán)內(nèi)容的第一存儲(chǔ)器位置(例如310)并訪問存儲(chǔ)部分b的循環(huán)列計(jì)數(shù)的第二存儲(chǔ)器位置以重建部分b。例如,這允許稀疏計(jì)算塊425將第一奇偶校驗(yàn)信息p1t乘以部分b210。生成第二奇偶校驗(yàn)信息數(shù)據(jù)p2t也可以包括將稀疏計(jì)算塊425的輸出與存儲(chǔ)信息數(shù)據(jù)乘以a的乘積的緩沖器440求和。因此,通過訪問緩沖器440以訪問在生成第二奇偶校驗(yàn)信息數(shù)據(jù)p2t中的(a*ut)而不需要額外的硬件和/或處理步驟以生成第二奇偶校驗(yàn)信息p2t,來獲得處理效率。求和邏輯(例如求和邏輯455)可以將稀疏計(jì)算塊425的輸出與緩沖器440的內(nèi)容求和。例如,求和邏輯可以包括異-or邏輯。在進(jìn)程塊614中,信息數(shù)據(jù)、第一奇偶校驗(yàn)信息p1t和第二奇偶校驗(yàn)信息p2t被存儲(chǔ)在存儲(chǔ)器系統(tǒng)的存儲(chǔ)器位置(例如在存儲(chǔ)器陣列中的存儲(chǔ)器位置)。
因此,說明和附圖將被認(rèn)為是說明性的而不是限制性意義。然而,在沒有脫離如在權(quán)利要求書中闡述的本公開的最寬的精神和范圍的情況下,可對(duì)本發(fā)明做出各種修改和改變是顯而易見的。
各種變化存在于本公開的精神范圍內(nèi)。因此,雖然所公開的技術(shù)易于根據(jù)各種變型和可選結(jié)構(gòu)變化,其某些被說明的實(shí)施例在附圖中被示出并且已經(jīng)在上文中被詳細(xì)描述。然而,這不是為了將本公開限定為具體形式或所公開的形式,相反,旨在為覆蓋在如在權(quán)利要求書中所定義的本公開的精神和范圍內(nèi)的所有的變型、可選擇的結(jié)構(gòu)和等價(jià)物。
本公開的優(yōu)選實(shí)施例在本文中被描述,包括發(fā)明人已知的用于執(zhí)行本公開的最佳方式?;陂喿x前述描述,這些優(yōu)選實(shí)施例的變化對(duì)于本領(lǐng)域普通技術(shù)人員來講可以變得顯而易見。發(fā)明人希望技術(shù)人員視情況采用這些變化并且發(fā)明人希望本公開以除本文所具體描述以外的方式被實(shí)施。因此,本公開包括所有的變形和如適用法律所允許的在權(quán)利要求書中記載的主題的等價(jià)物。而且,除非本文中另外指出或上下文清楚地彼此矛盾,在本公開的所有可能變型中的上述元件的任何組合都被包含在本公開中。