本申請要求2015年11月20日提交的第14/948197號美國非臨時申請的優(yōu)先權(quán),其全部內(nèi)容通過引用合并于此。
技術(shù)領(lǐng)域
本公開的示例性實(shí)施例涉及一種信號處理和編碼技術(shù)。
背景技術(shù):
最常使用磁儲存技術(shù)來儲存數(shù)據(jù),但是對當(dāng)前電子設(shè)備的更小重量和更快讀取/寫入操作的需求使得磁儲存技術(shù)不能令人滿意?;贜AND的技術(shù)能夠滿足對高密度數(shù)據(jù)儲存設(shè)備的需求,但是該技術(shù)非常昂貴。需要降低基于NAND的技術(shù)的成本,同時保持性能水平。
技術(shù)實(shí)現(xiàn)要素:
本公開的實(shí)施例針對一種信號處理和編碼技術(shù),該技術(shù)可以在較低的硬件復(fù)雜度的情況下提供高性能收益。
本公開的實(shí)施例提供一種使用渦輪乘積碼(turbo product code)的裝置和其操作方法以在性能和吞吐量(throughput)方面獲得收益。
本公開的實(shí)施例提供一種交織器(interleaver),其可以降低主碼解碼的頻率以及在高碼率(code rate)處下移(push down)錯誤平層(error floor)。
根據(jù)本發(fā)明的實(shí)施例,一種裝置包括碼字發(fā)生器和交織器。碼字發(fā)生器接收矩陣中的數(shù)據(jù),并且產(chǎn)生包括數(shù)據(jù)、行奇偶校驗(yàn)位和列奇偶校驗(yàn)位的渦輪乘積碼(TPC)碼字。交織器通過將TPC碼字的至少一個行-列相交部分中的至少一個位分配給至少一個主碼來交織TPC碼字,并且輸出交織后的TPC碼字。
根據(jù)本發(fā)明的另一個實(shí)施例,一種方法包括:產(chǎn)生渦輪乘積碼(TPC)碼字,所述TPC碼字包括矩陣中的數(shù)據(jù)、行奇偶校驗(yàn)位和列奇偶校驗(yàn)位。所述方法還包括:通過將TPC碼字的至少一個行-列相交部分中的至少一個位分配給至少一個主碼來交織TPC碼字,以及輸出交織后的TPC碼字。
附圖說明
圖1圖示了包括存儲系統(tǒng)的數(shù)據(jù)處理系統(tǒng),在所述存儲系統(tǒng)中應(yīng)用本發(fā)明的實(shí)施例。
圖2是根據(jù)本發(fā)明的實(shí)施例的包括編碼器和解碼器的存儲系統(tǒng)的框圖。
圖3A是表示針對不同碼率的渦輪乘積碼(TPC)的性能的圖表。
圖3B是表示針對不同碼率的主碼解碼的概率的圖表。
圖4A和圖4B是圖示根據(jù)本發(fā)明的實(shí)施例的TPC碼字的生成過程的示圖。
圖5是圖示根據(jù)本發(fā)明的實(shí)施例的可解碼的具有被困錯誤圖樣的TPC結(jié)構(gòu)的示圖。
圖6是圖示根據(jù)本發(fā)明的實(shí)施例的交織器的操作的示圖。
圖7是圖示根據(jù)本發(fā)明的另一個實(shí)施例的交織器的操作的示圖。
圖8A是圖示根據(jù)本發(fā)明的實(shí)施例的使用交織器后主碼的瀑布區(qū)中的性能的示圖。
圖8B是圖示根據(jù)本發(fā)明的另一個實(shí)施例的使用交織器后主碼的瀑布區(qū)中的性能的示圖。
圖9A是圖示根據(jù)本發(fā)明的實(shí)施例的使用交織器后主碼的錯誤平層區(qū)中的性能的示圖。
圖9B是圖示根據(jù)本發(fā)明的另一個實(shí)施例的使用交織器后主碼的錯誤平層區(qū)中的性能的示圖。
圖10是圖示根據(jù)本發(fā)明的實(shí)施例的主碼的性能的圖表。
具體實(shí)施方式
以下將參照附圖更詳細(xì)地描述各種實(shí)施例。然而,本發(fā)明可以以不同的形式來實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋為局限于本文中所闡述的實(shí)施例。更確切地說,這些實(shí)施例被提供使得本公開將是徹底和完整的,并且將把本發(fā)明的范圍充分地傳達(dá)給本領(lǐng)域技術(shù)人員。貫穿本公開,相同的附圖標(biāo)記在本發(fā)明的各種附圖和實(shí)施例中始終指代相同的部分。
本發(fā)明可以以若干方式實(shí)現(xiàn),包括作為:過程;裝置;系統(tǒng);組合物;在計(jì)算機(jī)可讀儲存介質(zhì)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品;和/或處理器(諸如被配置為運(yùn)行儲存在耦接至處理器的存儲器上和/或通過耦接至處理器的存儲器提供的指令的處理器)。在該說明書中, 這些實(shí)施方式或本發(fā)明可采取的任何其他形式可以被稱為技術(shù)。一般而言,可以在本發(fā)明的范圍內(nèi)改變所公開的過程的步驟的順序。除非另有說明,否則描述為被配置來執(zhí)行任務(wù)的組件(諸如處理器或存儲器)可以實(shí)現(xiàn)為被臨時配置為在給定時間執(zhí)行該任務(wù)的常規(guī)組件,或?qū)崿F(xiàn)為被制造來執(zhí)行該任務(wù)的特定組件。如在本文中所用,術(shù)語“處理器”指被配置為處理數(shù)據(jù)(諸如計(jì)算機(jī)程序指令)的一種或更多種器件、電路和/或處理核。
降低基于NAND的技術(shù)的成本的一種方法包括縮減工藝,但是縮減工藝會降低性能??梢酝ㄟ^使用高級信號處理和編碼技術(shù)來補(bǔ)償這種性能損失。已經(jīng)使用了博斯-喬赫里-霍克文黑姆(BCH,Bose-Chaudhuri-Hocquenghem)碼和低密度奇偶校驗(yàn)(LDPC,low density parity check)碼來確保數(shù)據(jù)完整性。對于BCH碼,主要缺點(diǎn)在于其不能用于軟判決解碼,這使得這些編碼不理想。LDPC碼提供良好的硬判決解碼性能和軟判決解碼性能。然而,LDPC解碼器的復(fù)雜度相當(dāng)高,這使得對于硬件實(shí)現(xiàn)來說該解決方案過于昂貴。下面公開和描述了一種高級編碼技術(shù),其可以利用較低的硬件復(fù)雜度來提供高性能收益。
渦輪乘積碼(TPC)被認(rèn)為是能夠以比LDPC碼低得多的硬件復(fù)雜度來提供顯著收益的高級編碼技術(shù)。在硬判決解碼中,與BCH碼和LDPC碼相比,TPC給出顯著的性能收益。在軟判決解碼中,TPC取得接近于LDPC碼的性能收益。
TPC被認(rèn)為是能夠以比LDPC碼低得多的硬件復(fù)雜度來提供顯著收益的高級編碼技術(shù)。在硬判決解碼中,與BCH碼和LDPC碼相比,TPC給出顯著的性能收益。在軟判決解碼中,TPC取得接近于LDPC碼的性能收益。
TPC碼可能在高碼率處的性能損失和吞吐量損失方面具有缺點(diǎn)。TPC碼策略可以在高碼率處給出錯誤平層(error floor)??梢酝ㄟ^增加主碼的校正容量來降低這種錯誤平層。但是這顯著地降低了瀑布區(qū)性能(見圖3A)。如果在以行/列碼為代價(jià)的情況下增加主碼的校正容量,則當(dāng)對具有最高碼率(最高碼率見圖3B)的數(shù)據(jù)(例如,4K數(shù)據(jù))解碼時,轉(zhuǎn)入主碼解碼的概率相當(dāng)高。例如,這意味著為了對4K數(shù)據(jù)解碼,長度為16K的全部頁將用于解碼。這種頻繁的頁讀取將影響吞吐量,這使得對于提供高吞吐量來說,該解決方案是不可接受的。
結(jié)果,在使用渦輪乘積碼的系統(tǒng)中,需要高級編碼技術(shù)來提供性能和吞吐量方面的收益。在本公開中,提出了新型技術(shù)來設(shè)計(jì)主交織器,該主交織器減小主碼解碼的頻率以及將錯誤平層下移至期望水平(desired regime)。
在一些實(shí)施例中,本發(fā)明將被應(yīng)用至圖1中所示的數(shù)據(jù)處理系統(tǒng)。
圖1圖示包括存儲系統(tǒng)的數(shù)據(jù)處理系統(tǒng)100,在該存儲系統(tǒng)中應(yīng)用了本發(fā)明的實(shí)施例。圖1中所示的數(shù)據(jù)處理系統(tǒng)100僅用于說明。在不脫離本公開的范圍的情況下,可以使用數(shù)據(jù)處理系統(tǒng)100的其他結(jié)構(gòu)。雖然圖1圖示了數(shù)據(jù)處理系統(tǒng)100的一個示例,但是可以對圖1做出各種改變。例如,數(shù)據(jù)處理系統(tǒng)100可以以任何適當(dāng)?shù)牟贾枚ㄈ我庠?,或者可以不包括任意元件?/p>
參照圖1,數(shù)據(jù)處理系統(tǒng)100可以包括主機(jī)102和存儲系統(tǒng)110。
例如,主機(jī)102可以包括諸如移動電話、MP3播放器和膝上計(jì)算機(jī)的便攜式電子設(shè)備或者諸如臺式計(jì)算機(jī)、游戲機(jī)、TV和投影儀的電子設(shè)備。
存儲系統(tǒng)110可以響應(yīng)于來自主機(jī)102的請求而操作,具體地,儲存要被主機(jī)102訪問的數(shù)據(jù)。換句話說,存儲系統(tǒng)110可以用作主機(jī)102的主存儲系統(tǒng)或輔助存儲系統(tǒng)。存儲系統(tǒng)110可以根據(jù)要與主機(jī)102電耦接的主機(jī)接口的協(xié)議而用各種類型的儲存設(shè)備中的任意一種來實(shí)施。存儲系統(tǒng)110可以用諸如固態(tài)驅(qū)動器(SSD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、縮小尺寸MMC(RS-MMC)和微型MMC、安全數(shù)字(SD)卡、迷你SD和微型SD、通用串行總線(USB)儲存設(shè)備、通用快閃儲存(UFS)設(shè)備、緊湊型閃存(CF)卡、智能媒體(SM)卡和記憶棒等的各種類型的儲存設(shè)備中的任意一種來實(shí)施。
用于存儲系統(tǒng)110的儲存設(shè)備可以用易失性存儲器件(諸如動態(tài)隨機(jī)存取存儲器(DRAM)和靜態(tài)隨機(jī)存取存儲器(SRAM))或非易失性存儲器件(諸如只讀存儲器(ROM)、掩模ROM(MROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、鐵電隨機(jī)存取存儲器(FRAM)、相變RAM(PRAM)、磁阻RAM(MRAM)和電阻式RAM(RRAM))來實(shí)施。
存儲系統(tǒng)110可以包括儲存要被主機(jī)102訪問的數(shù)據(jù)的存儲器件150以及可以控制將數(shù)據(jù)儲存在存儲器件150中的控制器130。
控制器130和存儲器件150可以被集成至一個半導(dǎo)體器件中。例如,控制器130和存儲器件150可以被集成至一個半導(dǎo)體器件中并且配置固態(tài)驅(qū)動器(SSD)。當(dāng)存儲系統(tǒng)110用作SSD時,可以顯著地提高與存儲系統(tǒng)110電耦接的主機(jī)102的操作速度。
控制器130和存儲器件150可以被集成至一個半導(dǎo)體器件中并且配置存儲卡??刂破?30和存儲卡150可以被集成至一個半導(dǎo)體器件中,并且配置諸如個人計(jì)算機(jī)存儲卡國際協(xié)會(PCMCIA)卡、緊湊型閃存(CF)卡、智能媒體(SM)卡(SMC)、記憶棒、多媒體卡(MMC)、RS-MMC和微型MMC、安全數(shù)字(SD)卡、迷你SD、微型SD 和SDHC以及通用快閃儲存(UFS)設(shè)備的存儲卡。
再例如,存儲系統(tǒng)110可以配置計(jì)算機(jī)、超移動PC(UMPC)、工作站、上網(wǎng)本、個人數(shù)字助理(PDA)、便攜式計(jì)算機(jī)、網(wǎng)絡(luò)平板、平板電腦、無線電話、移動電話、智能電話、電子書、便攜式多媒體播放器(PMP)、便攜式游戲機(jī)、導(dǎo)航儀、黑匣子、數(shù)字照相機(jī)、數(shù)字多媒體廣播(DMB)播放器、三維(3D)電視、智能電視、數(shù)字錄音機(jī)、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字錄像機(jī)、數(shù)字視頻播放器、配置數(shù)據(jù)中心的儲存器、能夠在無線環(huán)境下收發(fā)信息的設(shè)備、配置家庭網(wǎng)絡(luò)的各種電子設(shè)備中的一種、配置計(jì)算機(jī)網(wǎng)絡(luò)的各種電子設(shè)備中的一種、配置遠(yuǎn)程信息處理網(wǎng)絡(luò)的各種電子設(shè)備中的一種、RFID設(shè)備或者配置計(jì)算系統(tǒng)的各種組成元件中的一種。
存儲系統(tǒng)110的存儲器件150可以在電源被中斷時保持儲存的數(shù)據(jù),具體地,在寫入操作期間儲存從主機(jī)102提供的數(shù)據(jù),以及在讀取操作期間將儲存的數(shù)據(jù)提供至主機(jī)102。存儲器件150可以包括多個存儲塊152、154和156。存儲塊152、154和156中的每個可以包括多個頁。每個頁可以包括多個存儲單元,多個字線(WL)電耦接至所述多個存儲單元。存儲器件150可以是非易失性存儲器件,例如,快閃存儲器??扉W存儲器可以具有三維(3D)層疊結(jié)構(gòu)。
存儲系統(tǒng)110的控制器130可以響應(yīng)于來自主機(jī)102的請求來控制存儲器件150??刂破?30可以將從存儲器件150讀取的數(shù)據(jù)提供給主機(jī)102,以及將從主機(jī)102提供的數(shù)據(jù)儲存在存儲器件150中。為此,控制器130可以控制存儲器件150的總體操作(諸如讀取操作、寫入操作、編程操作和擦除操作)。
詳細(xì)地,控制器130可以包括主機(jī)接口單元132、處理器134、錯誤校正碼(ECC)單元138、電源管理單元(PMU)140、存儲器控制器(MC)142和存儲器144。
主機(jī)接口單元132可以處理從主機(jī)102提供的命令和數(shù)據(jù),以及可以通過諸如通用串行總線(USB)、多媒體卡(MMC)、外圍組件互連快速(PCI-E)、串行連接SCSI(SAS)、串行高級技術(shù)附件(SATA)、并行高級技術(shù)附件(PATA)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、增強(qiáng)型小盤接口(ESDI)和集成驅(qū)動電路(IDE)的各種接口協(xié)議中的至少一種來與主機(jī)102通信。
ECC單元138可以檢測并校正在讀取操作期間從存儲器件150讀取的數(shù)據(jù)中的錯誤。當(dāng)錯誤位的數(shù)量大于或等于可校正錯誤位的閾值數(shù)量時,ECC單元138不能校正錯誤位,并且可以輸出指示校正錯誤位失敗的錯誤校正失敗信號。
ECC單元138可以基于諸如低密度奇偶校驗(yàn)(LDPC)碼、博斯-喬赫里-霍克文黑 姆(BCH,Bose-Chaudhuri-Hocquenghem)碼、渦輪碼(turbo code)、渦輪乘積碼(TPC)、里德-所羅門(RS,Reed-Solomon)碼、卷積碼、遞歸系統(tǒng)碼(RSC)、格形編碼調(diào)制(TCM)和塊編碼調(diào)制(BCM)等的編碼調(diào)制來執(zhí)行錯誤校正操作。ECC單元138可以包括用于錯誤校正操作的所有電路、系統(tǒng)或設(shè)備。
PMU 140可以提供和管理用于控制器130的電源,即,用于包括在控制器130中的組成元件的電源。
MC 142可以用作控制器130與存儲器件150之間的存儲器接口,以允許控制器130響應(yīng)于來自主機(jī)102的請求來控制存儲器件150。MC 142可以產(chǎn)生用于存儲器件150的控制信號并在處理器134的控制下處理數(shù)據(jù)。當(dāng)存儲器件150是快閃存儲器(諸如NAND快閃存儲器)時,MC 142可以產(chǎn)生用于NAND快閃存儲器150的控制信號并在處理器134的控制下處理數(shù)據(jù)。
存儲器144可以用作存儲系統(tǒng)110和控制器130的工作存儲器,并且儲存用于驅(qū)動存儲系統(tǒng)110和控制器130的數(shù)據(jù)。控制器130可以響應(yīng)于來自主機(jī)102的請求來控制存儲器件150。例如,控制器130可以將從存儲器件150讀取的數(shù)據(jù)提供給主機(jī)102,以及將從主機(jī)102提供的數(shù)據(jù)儲存在存儲器件150中。當(dāng)控制器130控制存儲器件150的操作時,存儲器144可以儲存由控制器130和存儲器件150使用以用于諸如讀取操作、寫入操作、編程操作和擦除操作的操作的數(shù)據(jù)。
存儲器144可以利用易失性存儲器來實(shí)施。存儲器144可以利用靜態(tài)隨機(jī)存取存儲器(SRAM)或動態(tài)隨機(jī)存取存儲器(DRAM)來實(shí)施。如上所述,存儲器144可以儲存由主機(jī)102和存儲器件150使用以用于讀取操作和寫入操作的數(shù)據(jù)。為了儲存該數(shù)據(jù),存儲器144可以包括程序存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器和映射緩沖器等。
處理器134可以控制存儲系統(tǒng)110的常規(guī)操作,以及響應(yīng)于來自主機(jī)102的寫入請求或讀取請求來控制針對存儲器件150的寫入操作或讀取操作。處理器134可以驅(qū)動被稱作閃存轉(zhuǎn)換層(FTL)的固件來控制存儲系統(tǒng)110的常規(guī)操作。處理器134可以利用微處理器或中央處理單元(CPU)來實(shí)施。
管理單元(未示出)可以被包括在處理器134中,并且可以執(zhí)行對存儲器件150的壞塊管理。管理單元可以找到包括在存儲器件150中的壞存儲塊(其不滿足進(jìn)一步使用的條件)并且對該壞存儲塊執(zhí)行壞塊管理。當(dāng)存儲器件150是快閃存儲器(例如,NAND快閃存儲器)時,在寫入操作期間(例如,在編程操作期間),可能因NAND邏輯功能的特性而發(fā)生編程失敗。在壞塊管理期間,編程失敗的存儲塊或壞存儲塊的數(shù)據(jù)可以被 編程至新存儲塊中。此外,因編程失敗導(dǎo)致的壞塊嚴(yán)重地降低了具有3D層疊結(jié)構(gòu)的存儲器件150的利用效率以及存儲系統(tǒng)100的可靠性,從而需要可靠的壞塊管理。
圖2是根據(jù)本發(fā)明的實(shí)施例的包括編碼器和解碼器的存儲系統(tǒng)200的框圖。例如,存儲系統(tǒng)200對應(yīng)于圖1中所示的存儲系統(tǒng)110。為了清楚,此處未示出圖1的與本發(fā)明的實(shí)施例直接相關(guān)的組件。
參照圖2,存儲系統(tǒng)200包括儲存器210、寫入控制器220和讀取控制器230。例如,儲存器210對應(yīng)于圖1中所示的存儲器件150,而寫入控制器220和讀取控制器230對應(yīng)于圖1中所示的ECC單元138。
儲存器210可以包括諸如NAND閃存的固態(tài)儲存器。寫入控制器220接收來自圖1中的主機(jī)102的數(shù)據(jù),并且處理該數(shù)據(jù)以將碼字儲存在儲存器210上。讀取控制器230讀取儲存器210上的碼字,并且處理該碼字。例如,TPC碼字被儲存在儲存器210上。分別地,寫入控制器220包括TPC編碼器222作為用于TPC碼字的組件,而讀取控制器230包括TPC解碼器232作為用于TPC碼字的組件。
如本文中所述,TPC碼包括Nr行碼和Nc列碼。它們?nèi)际蔷哂幸韵聟?shù)的BCH碼:
行碼:(nr,kr,Tr,mr);
列碼:(nc,kc,Tc,mc);
其中,n表示編碼的長度,k表示編碼的維度,T表示編碼的錯誤校正容量,以及m表示編碼的有限域(finite field)大小。被組合來產(chǎn)生一個列碼字的列數(shù)由C#來指定,其中,C#是被組合的列數(shù)。
圖4A是圖示根據(jù)本發(fā)明的實(shí)施例的TPC碼字的生成過程410的流程圖。
參照圖4A,通過生成過程410產(chǎn)生的TPC結(jié)構(gòu)可以具有串行級聯(lián)結(jié)構(gòu)。在串行級聯(lián)結(jié)構(gòu)中,從數(shù)據(jù)412中產(chǎn)生行奇偶校驗(yàn)位414,以及組合列來產(chǎn)生列奇偶校驗(yàn)位416。
在一些實(shí)施例中,由碼字發(fā)生器401來執(zhí)行生成過程410。碼字發(fā)生器401接收矩陣中的數(shù)據(jù)412,并且產(chǎn)生包括數(shù)據(jù)412、行奇偶校驗(yàn)位414和列奇偶校驗(yàn)位416的TPC碼字。碼字發(fā)生器401從矩陣的行數(shù)據(jù)產(chǎn)生行奇偶校驗(yàn)位414,通過組合行奇偶校驗(yàn)位414和列數(shù)據(jù)來產(chǎn)生列奇偶校驗(yàn)位416,以及產(chǎn)生包括數(shù)據(jù)412、行奇偶校驗(yàn)位414和列奇偶校驗(yàn)位416的TPC碼字。
圖4B是圖示根據(jù)本發(fā)明的另一個實(shí)施例的TPC碼字的生成過程420的圖。該實(shí)施例考慮使用串行級聯(lián)(而非并行級聯(lián))的異或(XOR)奇偶校驗(yàn)位概念。
參照圖4B,通過生成過程420而產(chǎn)生的TPC結(jié)構(gòu)可以具有異或奇偶校驗(yàn)位的串行級聯(lián)結(jié)構(gòu)(serial concatenation structure)。在該結(jié)構(gòu)中,從行數(shù)據(jù)422產(chǎn)生行奇偶校驗(yàn)位424。組合列來產(chǎn)生列奇偶校驗(yàn)位426。通過對所有行-列相交部分的數(shù)據(jù)進(jìn)行異或運(yùn)算來計(jì)算異或奇偶校驗(yàn)位428。
在一些實(shí)施例中,通過碼字發(fā)生器402和交織器403來執(zhí)行生成過程420。碼字發(fā)生器402接收矩陣中的數(shù)據(jù)422,并產(chǎn)生包括數(shù)據(jù)、行奇偶校驗(yàn)位和列奇偶校驗(yàn)位的TPC碼字。碼字發(fā)生器402從矩陣的行數(shù)據(jù)產(chǎn)生行奇偶校驗(yàn)位424,通過組合行奇偶校驗(yàn)位和列數(shù)據(jù)來產(chǎn)生列奇偶校驗(yàn)位426,以及產(chǎn)生包括數(shù)據(jù)、行奇偶校驗(yàn)位和列奇偶校驗(yàn)位的TPC碼字。
交織器403通過將TPC碼字的至少一個行-列相交部分中的至少一個位分配給至少一個主碼來交織(428)TPC碼字,并輸出交織后的TPC碼字。交織器403將TPC碼字的至少一個行-列相交部分中的位分配給多個主碼。
圖5是圖示根據(jù)本發(fā)明的實(shí)施例的具有可解碼的被困錯誤圖樣的TPC結(jié)構(gòu)的圖。
參照圖5,示出了被困錯誤圖樣。錯誤圖樣包括錯誤位B51-B55。錯誤圖樣不能通過基本TPC碼結(jié)構(gòu)(諸如,異或XOR奇偶校驗(yàn)位的并行級聯(lián)結(jié)構(gòu))來解碼。假設(shè)行碼和列碼的校正容量等于1。在該情形下,需要頁數(shù)據(jù)(16K)來對4K用戶數(shù)據(jù)解碼。然而,在圖4B中公開的編碼結(jié)構(gòu)能夠在不使用16K頁數(shù)據(jù)的情況下對圖5中描述的4K數(shù)據(jù)的錯誤圖樣解碼。
將描述根據(jù)本發(fā)明的各種實(shí)施例的主碼交織器設(shè)計(jì)策略,所述主碼交織器可以用于用最小的主碼奇偶校驗(yàn)開銷來將錯誤平層下移至期望水平。
一般而言,在設(shè)計(jì)合理的編碼的性能曲線中,瀑布與錯誤平層之間總存在折衷。錯誤平層的降低導(dǎo)致瀑布區(qū)的損失,而瀑布區(qū)的增加則導(dǎo)致錯誤平層的增加。面臨的挑戰(zhàn)是找到最小的奇偶校驗(yàn)開銷方案,該方案將利用最小的瀑布性能損失來把錯誤平層下移至期望水平。應(yīng)當(dāng)注意的是,在圖5的仿真中觀察到的最顯著的錯誤圖樣包含一個行-列相交部分中的錯誤。本發(fā)明提出兩種方案來解決這種錯誤圖樣,如圖6和圖7中所示。
根據(jù)本發(fā)明的實(shí)施例,重新參照圖4B,本文中公開了兩種方案以用于主交織器的設(shè)計(jì)。在第一個方案中,一個行-列相交部分中的位的數(shù)量等于多個主碼的數(shù)量。交織器403將TPC碼字的一個行-列相交部分中的每個位分配給不同的主碼。
在第二個方案中,一個行-列相交部分中的位的數(shù)量與多個主碼的數(shù)量不同。例如,位的數(shù)量大于多個主碼的數(shù)量。交織器403將TPC碼字的一個行-列相交部分中的預(yù)定數(shù)量的位(例如,兩個位)分配給同一主碼。
圖6是圖示根據(jù)本發(fā)明的實(shí)施例的第一個方案的交織器的操作的示圖。
參照圖6,TPC碼字的行-列相交部分中的位被分配給多個主碼。行-列相交部分中的位的數(shù)量(例如,4個位)與多個主碼的數(shù)量(例如,4個主碼)相同。TPC碼字的行-列相交部分中的位中的每個被分配給不同的主碼。行-列相交部分中(例如,在一個行-列相交部分中)的位D11-D14被分配給不同的主碼MC1-MC4,這允許在主解碼過程中打破錯誤圖樣。位D11被分配給第一主碼MC1以產(chǎn)生奇偶校驗(yàn)位P11。位D12被分配給第二主碼MC2以產(chǎn)生奇偶校驗(yàn)位P12。位D13被分配給第三主碼MC3以產(chǎn)生奇偶校驗(yàn)位P13。位D14被分配給第四主碼MC4以產(chǎn)生奇偶校驗(yàn)位P14。因此,對于主碼MC1-MC4中的每個,產(chǎn)生了主碼奇偶校驗(yàn)位621-624。
圖7是圖示根據(jù)本發(fā)明的另一個實(shí)施例的第二個方案的交織器的操作的圖。
參照圖7,TPC碼字的行-列相交部分中的位被分配給多個主碼。行-列相交部分中的位的數(shù)量與多個主碼的數(shù)量不同。例如,行-列相交部分中的位的數(shù)量(例如,4個位)大于多個主碼的數(shù)量(例如,2個主碼)。允許行-列相交部分中的有限數(shù)量的位或預(yù)定數(shù)量的位屬于同一主碼。例如,一個行-列相交部分710中的2個位D21和D23被分配給主碼MC11。一個行-列相交部分710中的兩個位D22和D24被分配給主碼MC12。因此,對于主碼MC11-MC12中的每個,產(chǎn)生了主碼奇偶校驗(yàn)位721-722。
使用所公開方案的額外好處在于:與使用隨機(jī)交織器相比,簡化了編碼器和解碼器的硬件實(shí)現(xiàn)。在編碼期間可以按照單個數(shù)據(jù)塊來讀取行-列相交部分中的全部位以用于計(jì)算行碼字、列碼字和主碼字的奇偶校驗(yàn)位,以及在解碼期間計(jì)算校正子(syndrome)。
圖8A至圖9B是圖示根據(jù)本發(fā)明的實(shí)施例的使用交織器后的主碼的性能的示圖。圖8A和圖8B分別圖示了在第一方案和第二方案中使用交織器后主碼的瀑布區(qū)中的解碼操作。圖9A和圖9B分別圖示了在第一方案和第二方案中使用交織器后主碼的錯誤平層區(qū)中的解碼操作。
在圖8A至圖9B中,對于第一方案,對于第一方案中的編碼假設(shè)參數(shù)(m,t)等于(13,1),假設(shè)相交部分中的位的數(shù)量是4,假設(shè)主碼的數(shù)量是4,以及奇偶校驗(yàn)位將是52(4*13)。對于第二方案,對于第二方案中的編碼假設(shè)參數(shù)(m,t)等于(14,2),假設(shè)相交部分中的位的數(shù)量是4,假設(shè)主碼的數(shù)量是2,以及奇偶校驗(yàn)位將是56(2*28)。
盡管在第一方案和第二方案中用于這些主碼的奇偶校驗(yàn)位的量幾乎相同,但是對這些主碼的執(zhí)行可能相當(dāng)不同。參照圖8A和圖8B,在瀑布區(qū),數(shù)據(jù)中將存在很多錯誤(例如,6個位)。第一方案可以校正輸入數(shù)據(jù)810中的錯誤并輸出具有4個位的錯誤的數(shù)據(jù)820。第二方案不校正輸入數(shù)據(jù)815中的任何錯誤,并輸出具有6個位的錯誤的數(shù)據(jù)825。從圖8A和圖8B中能夠觀察到,第一方案可以校正錯誤,而第二方案不校正任何位。這意味著與第二方案相比,第一方案將具有更好的瀑布性能。
參照圖9A和圖9B,在錯誤平層區(qū)中,將存在較少的錯誤(例如,4個位),并且大多數(shù)主碼將是可解碼的。示出了其中大多數(shù)主碼是可解碼的錯誤圖樣。能夠看出,第二方案能夠校正錯誤(圖9B),而第一方案不校正任何錯誤(圖9A)。這意味著與第一方案相比,第二方案具有更好的錯誤平層。因?yàn)樵诘诙桨钢刑岢龅慕豢椘黠@著地改善了錯誤平層,因此其更適合數(shù)據(jù)儲存目的。
圖10是圖示根據(jù)本發(fā)明的實(shí)施例的主碼的性能的圖表。在圖10中,示出了:與BCH(2K)碼和基本TPC碼相比,利用所提出的交織器的主碼(16K主TPC)的性能。在該仿真中,使用了具有以下參數(shù)的主碼:
●行碼:(nr,kr,Tr,mr)=(919,889,3,10)
●列碼:(nc,kc,Tc,mc)=(881,851,3,10)
●主碼:(nm,km,Tm,mm)=(7066,7040,2,13)
●主碼的數(shù)量=20
●被組合的列的數(shù)量C#是23。
參照圖10,示出了基本TPC碼的性能。錯誤平層被下移至1e-4(10-4)附近。但是這種錯誤平層不足以使該方案對于商業(yè)應(yīng)用來說是實(shí)用的。在某些情況下,對于全部頁數(shù)據(jù)(16K),主碼被編碼。如果存在4K故障,則可以讀取全部頁數(shù)據(jù)以用于對4K數(shù)據(jù)解碼。在高碼率處,如果本發(fā)明的主碼(16K主TPC)交織器未被適當(dāng)?shù)卦O(shè)計(jì),則存在顯著的性能損失。
在仿真中,對于所公開的主碼(16K主TPC),在4kB故障等于1e-9(10-9)之前都未觀察到錯誤平層。進(jìn)行仿真以收集在解碼期間出故障的錯誤圖樣。從錯誤圖樣,判斷需要將多少個相交部分散布至主碼,使得這些圖樣在主碼解碼中被解碼。錯誤平層需求將確定如下參數(shù):如主碼的校正容量以及在單個主碼中允許的來自相交部分中的位的數(shù)量。
應(yīng)當(dāng)注意的是,與2K BCH碼和基本TPC碼相比,本發(fā)明的主碼交織器設(shè)計(jì)策略 給出了顯著的瀑布和錯誤平層收益。本發(fā)明的方案的另一個重要優(yōu)點(diǎn)是:硬件實(shí)現(xiàn)簡單。如果選擇隨機(jī)交織器,則需要隨機(jī)地讀取位來創(chuàng)建主碼奇偶校驗(yàn)位。由于本發(fā)明從相交部分中選擇位,因此主碼奇偶校驗(yàn)位的結(jié)構(gòu)可以通過沿相交部分位順序地讀取來實(shí)現(xiàn)。這顯著地簡化了硬件設(shè)計(jì),并且節(jié)約大量內(nèi)存讀取開銷。
雖然已經(jīng)參照本發(fā)明的示例性實(shí)施例來具體地示出和描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解的是,在不脫離由所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以在形式和細(xì)節(jié)上做出各種變化。因此,前述內(nèi)容僅作為示例而非意在進(jìn)行限制。例如,在本文中圖示和描述元件的任何數(shù)量僅作為示例。本發(fā)明僅受到所附權(quán)利要求及其等同物所限定的限制。