TWI674767B - 用於nand快閃記憶體的渦輪乘積碼 - Google Patents
用於nand快閃記憶體的渦輪乘積碼 Download PDFInfo
- Publication number
- TWI674767B TWI674767B TW105104073A TW105104073A TWI674767B TW I674767 B TWI674767 B TW I674767B TW 105104073 A TW105104073 A TW 105104073A TW 105104073 A TW105104073 A TW 105104073A TW I674767 B TWI674767 B TW I674767B
- Authority
- TW
- Taiwan
- Prior art keywords
- xor
- bit
- parity check
- row
- error pattern
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
一種對資料區塊中的資料編碼的方法包括:從對資料區塊中的所有資料位元的XOR以及對資料區塊中的所有行的除最後一行以外的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元,將第一XOR同位檢查位元儲存在最後一行中,以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。
Description
本申請要求2014年12月8日提交的標題為“用於NAND快閃記憶體的渦輪乘積碼”(“TURBO PRODUCT CODES FOR NAND FLASH”)的第62/089,109號美國臨時申請的優先權,其全部內容透過引用合併於此。
本公開的示例性實施例關於一種訊號處理和編碼技術。
磁性儲存技術最常用於儲存資料,但對當前電子設備來說,更小的重量和更快的讀取/寫入操作需求使得磁性儲存技術不夠理想。基於NAND的技術能夠滿足對高密度資料儲存設備的要求,但這種技術很昂貴。存在降低基於NAND的技術的成本同時維持效能水準的需要。
本發明的方面包括一種對資料區塊中的資料進行編碼的方法。該方法可以包括:從對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。
此外,本發明的方面包括一種用於對資料區塊中的資料進行編碼的裝置。該裝置可以包括編碼器,該編碼器被配置為:從對資料區塊中的所
有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。
100‧‧‧記憶體系統
102‧‧‧主機
110‧‧‧記憶體系統
130‧‧‧控制器
132‧‧‧主機介面單元
134‧‧‧處理器
138‧‧‧錯誤校正碼(ECC)單元
140‧‧‧電源管理單元(PMU)
142‧‧‧記憶體控制器
144‧‧‧記憶體
150‧‧‧記憶體裝置
152‧‧‧記憶體區塊
154‧‧‧記憶體區塊
156‧‧‧記憶體區塊
200‧‧‧記憶體系統
210‧‧‧儲存器
220‧‧‧寫入控制器
222‧‧‧TPC編碼器
230‧‧‧讀取控制器
232‧‧‧TPC解碼器
300‧‧‧資料
302‧‧‧行同位檢查位元
310‧‧‧XOR同位檢查位元2
312‧‧‧XOR同位檢查位元2
470‧‧‧XOR同位檢查位元2
480‧‧‧XOR同位檢查位元2
500‧‧‧型樣
600‧‧‧型樣
700‧‧‧型樣
800‧‧‧型樣
900,902‧‧‧受阻錯誤型樣
910,912,914,916‧‧‧行/列相交部分
1000,1002‧‧‧受阻錯誤型樣
1100‧‧‧圖
1102,1104‧‧‧效能
〔圖1〕 圖示了包括應用了本發明的實施例的記憶體系統的資料處理系統。
〔圖2〕 是根據本發明的實施例的包括編碼器和解碼器的記憶體系統的方塊圖。
〔圖3A和圖3B〕 是圖示根據本發明的方面的編碼處理的示圖。
〔圖4〕 是表示根據本發明的方面的編碼處理的示圖。
〔圖5〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖6〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖7〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖8〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖9A〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖9B〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖10〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。
〔圖11〕 是圖示根據本發明的方面的編碼和解碼方案的效能的圖。
以下將參照附圖來更詳細地描述各種實施例。然而,本公開可
以以不同的形式實施,而不應當被解釋為侷限於所陳述的實施例。相反地,這些實施例被提供使得本公開將是徹底且完整的,並且將本發明的範圍充分傳達給本發明所屬技術領域中具有通常知識者。貫穿本公開,相同的元件符號在本發明的各種附圖和實施例中指相同的部分。
本發明可以以很多方式來實施,包括作為:過程;裝置;系統;物的組合;在電腦可讀儲存媒介上實施的電腦程式產品;和/或處理器(諸如被配置用來運行儲存在耦接至處理器的記憶體上的指令和/或由耦接至處理器的記憶體提供的指令的處理器)。在此說明書中,這些實施方式或本發明可以採用的任何其他形式可以被稱作技術。一般地,可以在本發明的範圍之內改變所公開的過程中的步驟的次序。除非另外說明,否則被描述為被配置用來執行任務的元件(諸如處理器或記憶體)可以被實施為暫時被配置用來在給定時間執行該任務的常規元件或被製造用來執行該任務的特定組件。如本文中所使用的,術語“處理器”指被配置用來處理資料(諸如電腦程式指令)的一種或更多種裝置、電路和/或處理核心。
一種降低基於NAND的技術的成本的方法包含縮減工藝,但縮減工藝降低效能。可以透過使用高級訊號處理和編碼技術來補償這種效能損失。博斯-查德胡裡-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)碼和低密度同位元檢查(LDPC)碼已經被用來保證資料完整性。對於BCH碼,主要缺點在於它們不能用於軟判決解碼,這使得這些編碼不理想。LDPC碼提供良好的硬判決解碼效能和軟判決解碼效能。然而,LDPC解碼器的複雜度相當高,這使得此解決方案對於硬體實施而言太昂貴。下面公開和描述了高級編碼技術,其可以利用較低硬體複雜度來提供高效能收益。
渦輪乘積碼(TPC)被認為是可以以比LDPC碼低得多的硬體複雜度來提供顯著收益的高級編碼技術。在硬判決解碼中,相比於BCH碼和LDPC碼,TPC給出顯著的效能收益。在軟判決解碼中,TPC實現接近於LDPC碼的效能收益。
TPC被認為是以比LDPC碼低得多的硬體複雜度來提供顯著收益的高級編碼技術。在硬判決解碼中,相比於BCH碼和LDPC碼,TPC給出顯著的效能收益。在軟判決解碼中,TPC實現接近於LDPC碼的效能收益。
因此,在使用渦輪乘積碼的系統中,需要高級編碼技術來提供效能和輸送量(throughput)方面的收益。
在一些實施例中,本發明將被應用至圖1中所示的資料處理系統。
圖1圖示了包括應用了本發明的實施例的記憶體系統的資料處理系統100。圖1中所示的資料處理系統100僅用於說明。在不脫離本公開的範圍的情況下,可以使用資料處理系統100的其他結構。雖然圖1圖示了資料處理系統100的一個示例,但可以對圖1作出各種改變。例如,在任何合適的佈置中,資料處理系統100可以包括任何元件,或者可以不包括任何元件。
參見圖1,資料處理系統100可以包括主機102和記憶體系統110。
主機102可以包括例如:諸如行動電話、MP3播放機和筆記型電腦的可攜式電子設備或諸如桌上型電腦、遊戲機、TV和投影機的電子設備。
記憶體系統110可以回應於來自主機102的請求來操作,具體地,儲存要由主機102存取的資料。換言之,記憶體系統110可以用作主機102
的主記憶體系統或輔助記憶體系統。記憶體系統110可以根據要與主機102電耦接的主機介面的協定來用各種類型的儲存設備中的任意一種來實施。記憶體系統110可以用各種類型的儲存設備(諸如固態驅動器(SSD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、縮減尺寸MMC(RS-MMC)和微型MMC、安全數位(SD)卡、迷你SD和微型SD、通用序列匯流排(USB)儲存設備、通用快閃儲存(UFS)設備、緊湊式快閃記憶體(CF)卡、智慧媒體(SM)卡和記憶棒等)中的任意一種來實施。
用於記憶體系統110的儲存設備可以用揮發性記憶體裝置(諸如動態隨機存取記憶體(DRAM)和靜態隨機存取記憶體(SRAM))或非揮發性記憶體裝置(諸如唯讀記憶體(ROM)、遮罩ROM(MROM)、可編程ROM(PROM)、可抹除可編程ROM(EPROM)、電可抹除可編程ROM(EEPROM)、鐵電式隨機存取記憶體(FRAM)、相變式RAM(PRAM)、磁阻式RAM(MRAM)和電阻式RAM(RRAM))來實施。
記憶體系統110可以包括記憶體裝置150和控制器130,記憶體裝置150儲存要由主機102存取的資料,控制器130控制將資料儲存在記憶體裝置150中。
控制器130和記憶體裝置150可以被集成至一個半導體裝置中。例如,控制器130和記憶體裝置150可以被集成至一個半導體裝置中,並配置固態驅動器(SSD)。當記憶體系統110用作SSD時,可以顯著增加與記憶體系統110電耦接的主機102的操作速度。
控制器130和記憶體裝置150可以被集成至一個半導體裝置中,並配置記憶卡。控制器130和記憶體裝置150可以被集成至一個半導體裝置中,
並配置諸如國際個人電腦記憶卡協會(PCMCIA)卡、緊湊式快閃記憶體(CF)卡、智慧媒體(SM)卡(SMC)、記憶棒、多媒體卡(MMC)、RS-MMC和微型MMC、安全數位(SD)卡、迷你SD、微型SD和SDHC以及通用快閃儲存(UFS)裝置的記憶卡。
又例如,記憶體系統110可以配置電腦、超移動PC(UMPC)、工作站、上網本、個人數位助理(PDA)、可攜式電腦、網路平板、平板電腦、無線電話、行動電話、智慧型電話、電子書、可攜式多媒體播放機(PMP)、可攜式遊戲機、導航儀、黑匣子、數位相機、數位多媒體廣播(DMB)播放機、三維(3D)電視、智慧電視、數位答錄機、數位音訊播放機、數位圖片記錄器、數位圖片播放機、數位錄影機、數位視訊播放機、配置資料中心的儲存器、能夠在無線環境下收發資訊的設備、配置家用網路的各種電子設備中的一種、配置電腦網路的各種電子設備中的一種、配置遠端資訊處理的各種電子設備中的一種、RFID設備或者配置計算系統的各種組成元件中的一種。
記憶體系統110的記憶體裝置150可以在電源被中斷時保持儲存的資料,具體地,在寫入操作期間儲存從主機102提供的資料,以及在讀取操作期間將儲存的資料提供給主機102。記憶體裝置150可以包括多個記憶體區塊152、154和156。記憶體區塊152、154和156中的每個可以包括多個頁。頁中的每個可以包括電耦接了多個字元線(WL)的多個記憶胞。記憶體裝置150可以為非揮發性記憶體裝置,例如,快閃記憶體。快閃記憶體可以具有三維(3D)層疊結構。
記憶體系統110的控制器130可以回應於來自主機102的請求來控制記憶體裝置150。控制器130可以將從記憶體裝置150讀取的資料提供給
主機102,以及將從主機102提供的資料儲存在記憶體裝置150中。為此,控制器130可以控制記憶體裝置150的總體操作,諸如讀取操作、寫入操作、編程操作和抹除操作。
詳細地,控制器130可以包括主機介面單元132、處理器134、錯誤校正碼(ECC)單元138、電源管理單元(PMU)140、記憶體控制器(MC)142和記憶體144。
主機介面單元132可以處理從主機102提供的命令和資料,且可以透過下面的各種介面協定中的至少一種來與主機102通信:諸如通用序列匯流排(USB)、多媒體卡(MMC)、周邊元件連接-快速(PCI-E)、串列連接SCSI(SAS)、串列高級技術附件(SATA)、並行高級技術附件(PATA)、小型電腦系統介面(SCSI)、增強型小盤介面(ESDI)和集成驅動電路(IDE)。
ECC單元138可以在讀取操作期間檢測並校正從記憶體裝置150讀取的資料中的錯誤。當錯誤位元的數量大於或等於可校正錯誤位元的閾值數量時,ECC單元138不能校正錯誤位元,且可以輸出指示校正錯誤位元失敗的錯誤校正失敗訊號。
ECC單元138可以基於下面的編碼調製來執行錯誤校正操作:諸如低密度同位檢查(LDPC)碼、博斯-查德胡裡-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)碼、渦輪碼、渦輪乘積碼(TPC)、裡德-索羅門(RS,Reed-Solomon)碼、卷積碼、遞迴系統碼(RSC)、格碼調製(TCM)和塊碼調製(BCM)等。ECC單元138可以包括用於錯誤校正操作的所有電路、系統或裝置。
PMU 140可以提供並管理用於控制器130的電源,即,用於控
制器130中包括的組成元件的電源。
MC 142可以用作控制器130與記憶體裝置150之間的記憶體介面以允許控制器130回應於來自主機102的請求來控制記憶體裝置150。MC 142可以產生針對記憶體裝置150的控制訊號,並在處理器134的控制下處理資料。當記憶體裝置150是諸如NAND快閃記憶體的快閃記憶體時,MC 142可以產生針對NAND快閃記憶體150的控制訊號,並在處理器134的控制下處理資料。
記憶體144可以用作記憶體系統110和控制器130的工作記憶體,並儲存用於驅動記憶體系統110和控制器130的資料。控制器130可以回應於來自主機102的請求來控制記憶體裝置150。例如,控制器130可以將從記憶體裝置150讀取的資料提供給主機102,以及將從主機102提供的資料儲存在記憶體裝置150中。當控制器130控制記憶體裝置150的操作時,記憶體144可以儲存由控制器130和記憶體裝置150使用的資料以用於諸如讀取操作、寫入操作、編程操作和抹除操作的操作。
記憶體144可以用揮發性記憶體來實施。記憶體144可以用靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)來實施。如上所述,記憶體144可以儲存由主機102和記憶體裝置150使用的資料以用於讀取操作和寫入操作。為了儲存該資料,記憶體144可以包括程式記憶體、資料記憶體、寫入緩衝器、讀取緩衝器和映射緩衝器等。
處理器134可以控制記憶體系統110的常規操作,以及回應於來自主機102的寫入請求或讀取請求來控制針對記憶體裝置150的寫入操作或讀取操作。處理器134可以驅動被稱作快閃記憶體轉換層(FTL)的韌體來控制記憶體系統110的常規操作。處理器134可以用微處理器或中央處理單元(CPU)
來實施。
管理單元(圖未示)可以被包括在處理器134中,且可以執行對記憶體裝置150的壞區塊管理。管理單元可以找出記憶體裝置150中包括的壞記憶體區塊(其不滿足進一步使用的條件),並對該壞記憶體區塊執行壞區塊管理。當記憶體裝置150是快閃記憶體(例如,NAND快閃記憶體)時,在寫入操作期間(例如,在編程操作期間)可能因NAND邏輯功能的特性而出現編程失敗。在壞區塊管理期間,編程失敗的記憶體區塊或壞記憶體區塊中的資料可以被編程至新的記憶體區塊中。此外,因編程失敗而導致的壞區塊嚴重降低具有3D層迭結構的記憶體裝置150的利用效率和記憶體系統110的可靠性,從而需要可靠的壞區塊管理。
圖2是根據本發明的實施例的包括編碼器和解碼器的記憶體系統200的方塊圖。例如,記憶體系統200對應於圖1中所示的記憶體系統110。為了清楚,此處圖未示圖1中的與本發明的實施例直接相關的組件。
參見圖2,記憶體系統200包括儲存器210、寫入控制器220和讀取控制器230。例如,儲存器210對應於圖1中所示的記憶體裝置150,以及寫入控制器220和讀取控制器230對應於圖1中所示的ECC單元138。
儲存器210可以包括諸如NAND快閃記憶體的固態儲存器。寫入控制器220從圖1中的主機102接收資料,並處理儲存器210上的資料。讀取控制器230讀取儲存器210上的資料,並處理該資料。分別地,寫入控制器220包括TPC編碼器222,以及讀取控制器230包括TPC解碼器232,作為用於TPC方案的元件。
如此處所述,TPC碼包括Nr個行碼和Nc個列碼。它們全部都
是具有以下參數的BCH碼:行碼:(nr,kr,Tr,mr);列碼:(nc,kc,Tc,mc);XOR碼:(nx,kx,Tx,mx);其中,n表示編碼的長度,k表示編碼的維度,T表示編碼的錯誤校正容量,以及m表示編碼的有限域大小(finite field-size)。被組合用來產生列同位檢查位元的列數透過C#來指定,其中,C#是被組合的列數。
圖3A和圖3B是圖示根據本發明的一個實施例的TPC編碼方案的流程圖。
圖4是表示矩形資料區塊的示例的示圖。
下面參照圖3和圖4來描述編碼方案。
可以佈置在矩形區塊中(見圖4)。資料300包括行資料和列資料。可以用分量碼(constituent code)來對第一行(行1至行R-1)編碼。在一個實施例中,可以使用BCH作為分量碼來對第一行編碼,儘管本發明所屬技術領域中具有通常知識者將明白,本發明不侷限於對分量碼的這種選擇。
產生行1至行R-1的行同位檢查位元302,以及對所有的資料位元和所有的行同位檢查位元(即,就此而言,所有的行同位檢查位元包括行1至行(R-1)的同位檢查位元)進行互斥或(XOR)。XOR位的數量透過C#來給出。由於行同位檢查位元將包含Tr*mr,且Tr*mr將不是C#的整數倍,因此可以對行同位檢查位元進行零填充(zero pad)以使得它們是C#的整數倍。例如,如果行同位檢查位元長度是42且C#給定為24,則可以對6個位進行零填充以使得行同位檢查位元是48位長,且可以從行同位檢查位元構建長度為24的兩
個區塊。
對資料300和行同位檢查位元302進行XOR,且該XOR將被包括在資料的最後一行406中。可以將此XOR認作XOR同位檢查位元1(306,450)。XOR同位檢查位元1(306,450)將具有長度C#。
XOR同位檢查位元1(306,450)被包括在資料的最後一行406(即,行R)中,以及產生最後一行同位檢查位元(308,460)。值得注意的是,包括XOR同位檢查位元1(306,450)的最後一行同位檢查位元(308,460)被產生。
透過對列進行組合來產生列同位檢查位元304。對於給定的列數C(例如,C#),列同位檢查位元可以包括列同位檢查位元1 440、列同位檢查位元2 442、列同位檢查位元(C-1)444和列同位檢查位元C 446。在此方案的示例中,在包括XOR同位檢查位元1(450)的情況下產生列同位檢查位元(C-1)444,以及在包括行同位檢查位元中的每個的情況下產生列同位檢查位元C 446(其包括行R同位檢查位元460,且如上所述,行R同位檢查位元在包括XOR同位檢查位元1 450的情況下產生)。假設對於行同位檢查位元和列同位檢查位元,校正容量(T)和伽羅瓦域(Galois field)(m)相同。
可以透過對所有的列同位檢查位元和最後一行同位檢查位元進行XOR來產生XOR同位檢查位元2(310,470)。XOR同位檢查位元2(310,470)的長度被給定為Tr*mr(=Tc*mc)。為了簡化,假設Tr*mr=Tc*mc。如果Tr*mr≠Tc*mc,則可以使用零填充來產生XOR同位檢查位元2(310,470)。
可以將另一分量碼應用至XOR同位檢查位元2(310,470)(例如,對XOR同位檢查位元2(312,480)的同位檢查位元),XOR同位檢查位元
2(310,470)的編碼參數被給定為(nx,kx,Tx,mx)。總體而言,用於XOR同位檢查位元2的此BCH碼的伽羅瓦域相當小,因此該編碼的編碼/解碼的複雜度最小。應當注意的是,對XOR同位檢查位元2的此同位檢查位元僅被寫入至NAND。在這種方法中,可以透過不寫入XOR同位檢查位元2來節約同位檢查位元。此方案的同位檢查位元負擔(overhead)被給定為:所提出的方案的總的同位檢查位元=Tr*mr+Tc*mc+C#+Tx*mx
相比於先前實施的方案,除行同位檢查位元和列同位檢查位元以外的XOR同位檢查位元負擔(C#+Tx*mx)相當小。因此,此方案相比於其他方案具有顯著的效能收益。
參見圖5至圖10,描述了針對以上所公開的編碼方案的各種解碼處理。解碼程式類似於規則TPC解碼,在規則TPC解碼中,列解碼以反覆運算迴圈接著行解碼,直到資料被成功解碼或者反覆運算次數超過最大反覆運算次數為止。存在特定的錯誤型樣,即使該錯誤型樣的權重(weight)小,該錯誤型樣也將在解碼中受阻。
在圖5至圖8中,示出了(1,1)受阻錯誤型樣(stuck error pattern)。(1,1)受阻錯誤型樣是在其中正好存在一行和一列故障的受阻錯誤型樣。在圖9A和圖9B中,示出了(2,2)受阻錯誤型樣,其中,存在兩行和兩列故障。在圖10中,示出了(0,2)受阻錯誤型樣。
在圖5中,示出了資料中的可能在解碼中受阻的錯誤型樣500。在此示例中,假設行編碼和列編碼的錯誤校正容量等於2。儘管錯誤型樣500的權重是4,但其將在解碼中受阻。可以使用XOR同位檢查位元1 450來校正錯誤型樣500。因為故障行和故障列是已知的,所以行/列相交部分是已知的。首
先,對除故障的行/列相交部分之外的所有資料、行同位檢查位元和XOR同位檢查位元1進行XOR。此產生的XOR同位檢查位元可以取代故障的行/列相交部,這將校正行/列相交部分中的所有錯誤位元。
類似地,在圖6中,示出了受阻錯誤型樣。受阻錯誤型樣600存在於行同位檢查位元部分中。使用以上參照圖5所描述的解碼處理,也可以校正受阻錯誤型樣600。
在圖7中,示出了存在於第R行同位檢查位元中的受阻錯誤型樣700。為了校正此型樣700,可以在解碼端處產生XOR同位檢查位元2,透過對第R行同位檢查位元和所有的列同位檢查位元進行XOR來獲得XOR同位檢查位元2。在此XOR同位檢查位元2上運行BCH解碼,該BCH解碼將校正所有的錯誤,因為對XOR同位檢查位元2的BCH具有大的校正容量。一旦獲得了正確的XOR同位檢查位元2,此同位檢查位元就可以用來校正受阻型樣700。
在圖8中,示出了在列同位元部分中的受阻錯誤型樣800,該受阻型樣800可以透過以上參照圖7所描述的處理來校正。這樣,在解碼程式中存在的所有(1,1)受阻錯誤型樣都可以被解碼。
接下來參見圖9A,示出了(2,2)受阻錯誤型樣。即,資料包括錯誤型樣900和錯誤型樣902。XOR同位檢查位元1和XOR同位檢查位元2不能用來校正這種受阻錯誤型樣900、902。在圖9A中,為了簡單而示出了C#等於6的示例。目標是透過識別最可能的錯誤位置來校正這種受阻錯誤型樣900、902。一旦錯誤位置已知,就可以使用簡單的翻轉演算法來校正這種受阻錯誤型樣900、902。在圖9A中,受阻錯誤型樣具有出現在行和列相交部分中的不同位置處的6個錯誤。
由於正確的XOR同位檢查位元1已知,因此可以找到對所有資料和行同位檢查位元(行1至行(R-1))的XOR,並將其與XOR同位檢查位元1進行比較。在至多6個位置處XOR同位檢查位元1與這些計算出的XOR同位檢查位元不同。現在,錯誤的位置已知,然而錯誤在行/列相交部分中的準確位置未知。
如圖9B中所示,在(2,2)受阻錯誤型樣中,存在可能具有錯誤的4個行/列相交部分(910,912,914,916)。可以使用位元翻轉處理(例如,Chase解碼),在位元翻轉處理中,在透過XOR同位檢查位元1確定的錯誤位元位置處的位元被翻轉。在Chase解碼中,將嘗試所有的2^翻轉位元(flip_bits),其中翻轉位元(flip_bits)是從儲存的xor或資料計算的xor檢測到的翻轉的位的數量。
在本發明的另一示例中,將從翻轉位元選擇一個位(例如,nchoosek(翻轉位元,1)),將在所有故障的n*m個受阻錯誤相交部分處嘗試這種位元翻轉,然後嘗試解碼。接下來,將對n*m個故障的受阻錯誤型樣嘗試nchoosek(翻轉位元,2),且將對所有的n*m個故障的受阻錯誤型樣重複此處理(例如,nchoosek(翻轉位元,翻轉位元))。必須在故障的相交部分內部作出所有的校正,以避免在錯誤相交部分外部引入更多的錯誤。
在第一次運行中,可以對所有的4個行/列故障相交部分(910,912,914,916)的6個錯誤位置位元中的單個位元進行翻轉。在一個位元翻轉之後,可以對故障的行/列解碼使用規則解碼。在解碼時,保證在BCH解碼期間解碼的位元必須位於行/列故障相交部分中。按照這種方式,不會在TPC結構中引入誤校正。
在圖9A中所示的錯誤型樣中,第一行/列相交部分中的一個位元翻轉是不夠的。然後利用一個位元翻轉來處理第二行/列相交部分,這將對該行編碼進行解碼並滿足列編碼。一旦一個行/列相交部分中的錯誤被校正,受阻錯誤型樣就變成(1,1)錯誤型樣,該(1,1)錯誤型樣可以透過使用XOR同位檢查位元1來容易地校正。
如果透過在所有故障的行/列相交部分中嘗試所有的單個位元翻轉而型樣未被解碼,則此型樣通常透過單個位元翻轉而得到解碼。可以對故障的行/列相交部分嘗試兩個位元或更多個位元翻轉。
在圖9A和圖9B中,C#的值等於6。然而,在規則TPC碼設計中,C#的值更大。在那些類型的情況中,相比於隨機位元翻轉處理,來自所公開的位元翻轉演算法的優勢將是實質性的。與隨機位元翻轉不同的是,透過XOR同位檢查位元1和XOR同位檢查位元2的說明,最可能的錯誤位置是已知的,這顯著降低了整合所提出的方案的複雜度。以上所公開的方案可以容易地推廣為(n,n)受阻錯誤型樣,在(n,n)受阻錯誤型樣中,n行和n列有故障。然而,如果n的值大,則複雜度將增大。因此,在硬體複雜度之內的型樣使用這種提出的方案來校正。
接下來參見圖10,示出了(0,2)的備選錯誤型樣。為了簡化解碼,也可以進行對(0,k)受阻錯誤型樣解碼的備選方法。在(0,k)受阻錯誤型樣(例如,1000,1002)中,所有的行是正確的,而k個列是故障的。這種型樣可以使用正確的資料來校正。資料的正確性透過XOR同位檢查位元1和行同位檢查位元來驗證。可以透過資料來產生(k-1)個列同位檢查位元,以及可以透過XOR同位檢查位元2來產生最後故障的列同位檢查位元。被校正的第k
列同位檢查位元可以從第k列資料來驗證。如果第k列資料的同位檢查位元與被校正的第k同位檢查位元匹配,則宣佈TPC被成功解碼。XOR同位檢查位元2的校正容量不是很大,因此可以應用該程式來對(0,k)受阻錯誤型樣解碼。圖10中所示的受阻錯誤型樣1000、1002可以透過上述方案來校正。一般而言,(0,k)出現的可能性相當低,所以在解碼中很少使用所提出的方案。
雖然公開了對(n,n)和(0,k)的錯誤碼型樣的解碼,但本文中所描述的處理也可以用來對(n,m)、(m,n)等的錯誤碼型樣進行解碼。
作為進一步描述,對(n,m)故障型樣(其中,n行和m列有故障)的解碼可以執行如下。首先,計算對所有資料和行同位檢查位元的XOR,並將其與儲存的同位檢查位元(例如,XOR_data)進行比較。一旦接收到XOR_data,就將其與XOR_stored進行比較以找出錯誤位元位置。現在錯誤位元位置是已知的,但是需要確定這些錯誤位於n*m個故障相交部分中的何處。這樣,採用從上述比較中找到的錯誤位元,並在所有的n*m個故障相交部分中的特定位置處的這些位被翻轉。如果分量碼字得到解碼,且所有的校正都在故障的分量碼字之內做出,則校正被應用。如果任意一行碼字透過嘗試校正對應的列碼字經由對位進行翻轉而被校正,則可以執行進一步的檢查,以及在故障的相交部分中做出所有的校正。可以根據來自XOR_data與XOR_stored的不匹配的位數量而同時對1個錯誤位元、2個錯誤位元、3個錯誤位元等進行這些位元翻轉。
此外,對於(0,k)錯誤型樣,解碼處理可以執行如下。如果所有的行合格,且XOR_stored與對資料和行同位檢查位元計算出的XOR匹配,則k個故障的列碼字被編碼以得到對應的k個列同位檢查位元。在這種情況下,
所有的錯誤位於同位檢查位元中,以及可以透過XOR同位檢查位元2來確定以此方式產生的同位檢查位元的正確性。
測試以上所公開的方案的效能,並與2K BCH碼進行比較。基於以上所公開的方案構建的TPC碼的值被測試為:數據長度=32864。
允許的同位檢查位元=308位元組。
行編碼:(nr,kr,Tr,mr)=(1310,1266,4,11)。
列編碼:(nc,kc,Tc,mc)=(1318,1274,4,11)。
Nr=26,Nc=27,以及C#=49。
XOR同位檢查位元2上的編碼:(nx,kx,Tx,mx)=(121,44,11,7)。
該效能在圖11中示出。圖11中的圖1100示出2k BCH的效能1102和如上所述的方案的效能1104。編碼設計中的發現:具有伽羅瓦域(m)和等於(11,4)的校正容量(T)的編碼透過顯著縮短的位元而已經合適。更大的校正容量降低誤校正容量,以及縮短的位元可以用於誤校正檢測。如果在BCH解碼期間在縮短的位中存在翻轉的位元,則知道BCH解碼器已經誤校正了碼字,而在TPC解碼中可以避免這種誤校正。
雖然已經參照本發明的示例性實施例而特別地示出和描述了本發明,但本發明所屬技術領域中具有通常知識者將理解的是,在不脫離由所附申請專利範圍中所限定的本發明的精神和範圍的情況下,在其中可以作出形式和細節上的各種改變。因此,前述內容僅作為示例,而非意在進行限制。例如,本文中所示出並描述的元件的任何數目僅作為示例。本發明僅由所附申請專利範圍及其均等範圍來限定。
Claims (14)
- 一種對資料區塊中的資料進行編/解碼的方法,包括:從對資料區塊中的所有資料位元的互斥或(XOR)以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。
- 如請求項1所述的方法,還包括:將分量碼應用至第二XOR同位檢查位元來產生第二XOR同位檢查位元的同位。
- 如請求項1所述的方法,還包括:對行同位檢查位元進行零填充,使得行同位檢查位元的長度是資料區塊中的列數的整數倍。
- 如請求項1所述的方法,還包括一解碼步驟:對資料中的受阻錯誤型樣解碼。
- 如請求項4所述的方法,其中,該解碼步驟包括:從除故障的行/列相交部分之外的資料、行同位檢查位元和第一XOR同位檢查位元來產生第三XOR同位檢查位元,所述故障的行/列相交部分包括受阻錯誤型樣;以及基於產生的第三XOR同位檢查位元而透過對受阻錯誤型樣中的位元進行翻轉來校正受阻錯誤型樣。
- 如請求項4所述的方法,其中,該解碼步驟還包括:透過將第一XOR同位檢查位元與以下內容進行比較來確定資料區塊中具有受阻錯誤型樣的一行/列相交部分,所述內容包括對資料區塊中的所有資 料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR;以及透過對確定的行/列相交部分中的位元進行位元翻轉來確定錯誤位元在受阻錯誤型樣中的位置。
- 如請求項4所述的方法,其中,受阻錯誤型樣是(n,m)受阻錯誤型樣或(0,k)受阻錯誤型樣中的至少一種。
- 一種用於對資料區塊中的資料進行編/解碼的裝置,包括:編碼器,被配置為:從對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元,其中,基於第一XOR同位檢查位元和第二XOR同位檢查位元來對資料進行編碼。
- 如請求項8所述的裝置,其中,該編碼器還被配置為將分量碼應用至第二XOR同位檢查位元來產生第二XOR同位檢查位元的同位檢查位元。
- 如請求項8所述的裝置,其中,該編碼器還被配置為:對行同位檢查位元進行零填充,使得行同位檢查位元的長度是資料區塊中的列數的整數倍。
- 如請求項8所述的裝置,還包括解碼器,被配置為對資料中的受阻錯誤型樣解碼。
- 如請求項11所述的裝置,其中,該解碼器被配置為透過下面的步驟來對受阻錯誤型樣解碼:從除故障的行/列相交部分之外的資料、行同位檢查位元和第一XOR同位檢查位元來產生第三XOR同位檢查位元,所述故障的行/列相交部分包括受阻錯誤型樣;以及基於產生的第三XOR同位檢查位元而透過對受阻錯誤型樣中的位元進行翻轉來校正受阻錯誤型樣。
- 如請求項11所述的裝置,其中,該解碼器被配置為透過下面的步驟來對受阻錯誤型樣解碼:透過將第一XOR同位檢查位元與以下內容進行比較來確定資料區塊中具有受阻錯誤型樣的一行/列相交部分,所述內容包括對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR;以及透過對確定的行/列相交部分中的位元進行位元翻轉來確定錯誤位元在受阻錯誤型樣中的位置。
- 如請求項11所述的裝置,其中,受阻錯誤型樣是(n,m)受阻錯誤型樣或(0,k)受阻錯誤型樣中的至少一種。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462089109P | 2014-12-08 | 2014-12-08 | |
US14/962,818 US9673840B2 (en) | 2014-12-08 | 2015-12-08 | Turbo product codes for NAND flash |
US14/962,818 | 2015-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201722090A TW201722090A (zh) | 2017-06-16 |
TWI674767B true TWI674767B (zh) | 2019-10-11 |
Family
ID=56095274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104073A TWI674767B (zh) | 2014-12-08 | 2016-02-05 | 用於nand快閃記憶體的渦輪乘積碼 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9673840B2 (zh) |
CN (1) | CN106856103B (zh) |
TW (1) | TWI674767B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9954556B2 (en) * | 2015-02-25 | 2018-04-24 | SK Hynix Inc. | Scheme to avoid miscorrection for turbo product codes |
US20160378591A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Adaptive error correction in memory devices |
US10084485B2 (en) | 2016-03-23 | 2018-09-25 | SK Hynix Inc. | Soft decoder parameter optimization for product codes |
US10090865B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Performance optimization in soft decoding of error correcting codes |
US10090862B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Hybrid soft decoding algorithm for multiple-dimension TPC codes |
US20170288705A1 (en) * | 2016-04-05 | 2017-10-05 | Alibaba Group Holding Limited | Shared memory with enhanced error correction |
US10331514B2 (en) | 2017-03-17 | 2019-06-25 | Micron Technology, Inc. | Tiered error correction code (ECC) operations in memory |
US10312944B2 (en) * | 2017-03-17 | 2019-06-04 | Micron Technology, Inc. | Error correction code (ECC) operations in memory for providing redundant error correction |
US20180358989A1 (en) * | 2017-06-09 | 2018-12-13 | Western Digital Technologies, Inc. | Non-volatile Storage Systems With Application-Aware Error-Correcting Codes |
DE102017116280B4 (de) * | 2017-07-19 | 2024-02-22 | Infineon Technologies Ag | Speicheranordnung |
US10998922B2 (en) * | 2017-07-28 | 2021-05-04 | Mitsubishi Electric Research Laboratories, Inc. | Turbo product polar coding with hard decision cleaning |
CN109412610B (zh) * | 2017-08-16 | 2022-08-09 | 深圳市中兴微电子技术有限公司 | 一种编码方法、译码方法、编码装置及译码装置 |
US10963337B2 (en) * | 2018-01-08 | 2021-03-30 | SK Hynix Inc. | Memory system with super chip-kill recovery and method of operating such memory system |
KR20200126178A (ko) * | 2019-04-29 | 2020-11-06 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
CN112037831B (zh) * | 2019-06-04 | 2023-05-23 | 瑞昱半导体股份有限公司 | 处理芯片、芯片系统及其操作方法 |
CN113595561B (zh) * | 2021-07-14 | 2024-07-23 | 深圳宏芯宇电子股份有限公司 | 一种混合解码方法、存储装置控制器及存储系统 |
US11687409B1 (en) | 2021-12-28 | 2023-06-27 | Western Digital Technologies, Inc. | Data storage device and method for data protection using XOR parity |
US11935609B2 (en) | 2022-05-12 | 2024-03-19 | Western Digital Technologies, Inc. | Linked XOR flash data protection scheme |
CN117254823B (zh) * | 2023-11-20 | 2024-03-15 | 苏州联讯仪器股份有限公司 | 一种并行rs编码方法、装置、系统及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI339026B (en) * | 2007-09-28 | 2011-03-11 | Via Tech Inc | Turbo decoder and stop judging circuit and iteration stopping method thereof |
US7958425B2 (en) * | 2004-02-19 | 2011-06-07 | Trelliware Technologies, Inc. | Method and apparatus for communications using turbo like codes |
US8972835B1 (en) * | 2012-06-06 | 2015-03-03 | Xilinx, Inc. | Encoding and decoding of information using a block code matrix |
WO2015140253A1 (en) * | 2014-03-20 | 2015-09-24 | Technische Universität Kaiserslautern | Method and device for an error correction of transmitted data |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4595574B2 (ja) * | 2005-02-07 | 2010-12-08 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
BR122019003642A8 (pt) * | 2007-09-28 | 2023-01-31 | Panasonic Corp | Método e aparelho de transmissão que usam um método de codificação de um código convolucional de verificação de paridade de baixa densidade |
US8230316B2 (en) * | 2008-01-25 | 2012-07-24 | Nevion Usa, Inc. | Forward error correction for burst and random packet loss for real-time multi-media communication |
US8645789B2 (en) * | 2011-12-22 | 2014-02-04 | Sandisk Technologies Inc. | Multi-phase ECC encoding using algebraic codes |
US8327185B1 (en) * | 2012-03-23 | 2012-12-04 | DSSD, Inc. | Method and system for multi-dimensional raid |
US9300329B2 (en) * | 2012-11-08 | 2016-03-29 | Sk Hynix Memory Solutions Inc. | Turbo-product codes (TPC) with interleaving |
US9391641B2 (en) * | 2013-04-26 | 2016-07-12 | SK Hynix Inc. | Syndrome tables for decoding turbo-product codes |
KR20150084560A (ko) | 2014-01-14 | 2015-07-22 | 에스케이하이닉스 주식회사 | 인코딩 장치, 디코딩 장치 및 그 동작 방법 |
-
2015
- 2015-12-08 US US14/962,818 patent/US9673840B2/en active Active
-
2016
- 2016-02-05 TW TW105104073A patent/TWI674767B/zh active
- 2016-03-21 CN CN201610161136.XA patent/CN106856103B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958425B2 (en) * | 2004-02-19 | 2011-06-07 | Trelliware Technologies, Inc. | Method and apparatus for communications using turbo like codes |
TWI339026B (en) * | 2007-09-28 | 2011-03-11 | Via Tech Inc | Turbo decoder and stop judging circuit and iteration stopping method thereof |
US8972835B1 (en) * | 2012-06-06 | 2015-03-03 | Xilinx, Inc. | Encoding and decoding of information using a block code matrix |
WO2015140253A1 (en) * | 2014-03-20 | 2015-09-24 | Technische Universität Kaiserslautern | Method and device for an error correction of transmitted data |
Also Published As
Publication number | Publication date |
---|---|
CN106856103A (zh) | 2017-06-16 |
CN106856103B (zh) | 2020-10-30 |
TW201722090A (zh) | 2017-06-16 |
US9673840B2 (en) | 2017-06-06 |
US20160164543A1 (en) | 2016-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
CN108062258B (zh) | 用于错误恢复的循环交错的xor阵列 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US10700706B2 (en) | Memory system with decoders and method of operating such memory system and decoders | |
US10061641B2 (en) | Memory controller, storage device including the same and data encoding and decoding methods thereof | |
JP6110953B2 (ja) | 階層化反復誤り訂正のための停止基準 | |
US10484008B2 (en) | Memory system with on-the-fly error detection and termination and operating method thereof | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US9875035B2 (en) | Memory system having a read and copy-back operation and method for the same | |
US9912355B2 (en) | Distributed concatenated error correction | |
WO2014164134A2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
US20170186500A1 (en) | Memory circuit defect correction | |
JP2020046823A (ja) | メモリシステム | |
CN106158046B (zh) | 用于turbo乘积码的误校正避免 | |
US9954556B2 (en) | Scheme to avoid miscorrection for turbo product codes | |
CN106708649B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
KR102696725B1 (ko) | Nand 플래시용 터보 프로덕트 코드 | |
US9906241B2 (en) | Apparatus and method for turbo product codes | |
US11551774B2 (en) | Memory system and method of controlling non-volatile memory | |
US20240264903A1 (en) | Selective decoding for super chip-kill recovery and method of operating such memory system |