TWI674767B - Turbo product codes for nand flash - Google Patents

Turbo product codes for nand flash Download PDF

Info

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
Application number
TW105104073A
Other languages
Chinese (zh)
Other versions
TW201722090A (en
Inventor
納文 庫瑪
Original Assignee
南韓商愛思開海力士有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商愛思開海力士有限公司 filed Critical 南韓商愛思開海力士有限公司
Publication of TW201722090A publication Critical patent/TW201722090A/en
Application granted granted Critical
Publication of TWI674767B publication Critical patent/TWI674767B/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2942Coding, 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Abstract

一種對資料區塊中的資料編碼的方法包括:從對資料區塊中的所有資料位元的XOR以及對資料區塊中的所有行的除最後一行以外的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元,將第一XOR同位檢查位元儲存在最後一行中,以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。 A method for encoding data in a data block includes: XOR of all data bits in the data block and XOR of parity check bits of all rows in the data block except the last Generate the first XOR parity check bit, store the first XOR parity check bit in the last row, and XOR the parity check bit from all the columns of all columns in the data block and the parity check bit for the last row XOR of the elements to generate a second XOR parity check bit.

Description

用於NAND快閃記憶體的渦輪乘積碼 Turbo product code for NAND flash memory

本申請要求2014年12月8日提交的標題為“用於NAND快閃記憶體的渦輪乘積碼”(“TURBO PRODUCT CODES FOR NAND FLASH”)的第62/089,109號美國臨時申請的優先權,其全部內容透過引用合併於此。 This application claims priority from US Provisional Application No. 62 / 089,109, filed on December 8, 2014, entitled "Turbo Product Code for NAND Flash Memory" ("TURBO PRODUCT CODES FOR NAND FLASH"), which The entire contents are incorporated herein by reference.

本公開的示例性實施例關於一種訊號處理和編碼技術。 Exemplary embodiments of the present disclosure relate to a signal processing and encoding technique.

磁性儲存技術最常用於儲存資料,但對當前電子設備來說,更小的重量和更快的讀取/寫入操作需求使得磁性儲存技術不夠理想。基於NAND的技術能夠滿足對高密度資料儲存設備的要求,但這種技術很昂貴。存在降低基於NAND的技術的成本同時維持效能水準的需要。 Magnetic storage technology is most commonly used to store data, but for current electronic devices, the smaller weight and faster read / write operation requirements make magnetic storage technology less than ideal. NAND-based technology can meet the requirements for high-density data storage devices, but this technology is expensive. There is a need to reduce the cost of NAND-based technologies while maintaining performance levels.

本發明的方面包括一種對資料區塊中的資料進行編碼的方法。該方法可以包括:從對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。 Aspects of the invention include a method of encoding data in a data block. The method may include: generating a first XOR parity check bit from an XOR of all data bits in the data block and an XOR of all row parity check bits of all rows except the last row in the data block; Storing the first XOR parity bit in the last row; and generating a second XOR parity from the XOR of all the columns parity check bits of all the columns in the data block and the XOR of the parity bits of the last row Check the bits.

此外,本發明的方面包括一種用於對資料區塊中的資料進行編碼的裝置。該裝置可以包括編碼器,該編碼器被配置為:從對資料區塊中的所 有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。 Furthermore, aspects of the invention include a device for encoding data in a data block. The device may include an encoder configured to: from all pairs in the data block The XOR of the data bit and the XOR of all the parity check bits of all rows except the last row in the data block to generate the first XOR parity check bit; the first XOR parity check bit is stored in the last row And generating a second XOR parity bit from the XOR of all the parity check bits of all the columns in the data block and the XOR of the parity check bits of the last row.

100‧‧‧記憶體系統 100‧‧‧Memory System

102‧‧‧主機 102‧‧‧Host

110‧‧‧記憶體系統 110‧‧‧Memory System

130‧‧‧控制器 130‧‧‧controller

132‧‧‧主機介面單元 132‧‧‧Host Interface Unit

134‧‧‧處理器 134‧‧‧Processor

138‧‧‧錯誤校正碼(ECC)單元 138‧‧‧Error Correction Code (ECC) Unit

140‧‧‧電源管理單元(PMU) 140‧‧‧Power Management Unit (PMU)

142‧‧‧記憶體控制器 142‧‧‧Memory Controller

144‧‧‧記憶體 144‧‧‧Memory

150‧‧‧記憶體裝置 150‧‧‧Memory device

152‧‧‧記憶體區塊 152‧‧‧Memory Block

154‧‧‧記憶體區塊 154‧‧‧Memory Block

156‧‧‧記憶體區塊 156‧‧‧Memory Block

200‧‧‧記憶體系統 200‧‧‧Memory System

210‧‧‧儲存器 210‧‧‧Storage

220‧‧‧寫入控制器 220‧‧‧write controller

222‧‧‧TPC編碼器 222‧‧‧TPC encoder

230‧‧‧讀取控制器 230‧‧‧Read controller

232‧‧‧TPC解碼器 232‧‧‧TPC decoder

300‧‧‧資料 300‧‧‧ Information

302‧‧‧行同位檢查位元 302‧‧‧Parity check bit

310‧‧‧XOR同位檢查位元2 310‧‧‧XOR parity check bit 2

312‧‧‧XOR同位檢查位元2 312‧‧‧XOR parity check bit 2

470‧‧‧XOR同位檢查位元2 470‧‧‧XOR parity check bit 2

480‧‧‧XOR同位檢查位元2 480‧‧‧XOR parity check bit 2

500‧‧‧型樣 500‧‧‧type

600‧‧‧型樣 600‧‧‧type

700‧‧‧型樣 700‧‧‧type

800‧‧‧型樣 800‧‧‧type

900,902‧‧‧受阻錯誤型樣 900,902‧‧‧ Blocked error pattern

910,912,914,916‧‧‧行/列相交部分 910,912,914,916‧‧‧row / column intersection

1000,1002‧‧‧受阻錯誤型樣 1000, 1002 ‧‧‧ blocked error pattern

1100‧‧‧圖 1100‧‧‧Picture

1102,1104‧‧‧效能 1102, 1104‧‧‧‧ Performance

〔圖1〕 圖示了包括應用了本發明的實施例的記憶體系統的資料處理系統。 [Fig. 1] A data processing system including a memory system to which an embodiment of the present invention is applied is illustrated.

〔圖2〕 是根據本發明的實施例的包括編碼器和解碼器的記憶體系統的方塊圖。 [FIG. 2] A block diagram of a memory system including an encoder and a decoder according to an embodiment of the present invention.

〔圖3A和圖3B〕 是圖示根據本發明的方面的編碼處理的示圖。 3A and 3B are diagrams illustrating an encoding process according to an aspect of the present invention.

〔圖4〕 是表示根據本發明的方面的編碼處理的示圖。 [Fig. 4] A diagram showing an encoding process according to an aspect of the present invention.

〔圖5〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 5 is a diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖6〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 6 is a diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖7〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 [FIG. 7] A diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖8〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 [FIG. 8] A diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖9A〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 [FIG. 9A] is a diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖9B〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 [FIG. 9B] is a diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖10〕 是圖示根據本發明的方面的受阻錯誤型樣的示圖。 [FIG. 10] A diagram illustrating a blocked error pattern according to an aspect of the present invention.

〔圖11〕 是圖示根據本發明的方面的編碼和解碼方案的效能的圖。 [FIG. 11] A diagram illustrating the performance of an encoding and decoding scheme according to an aspect of the present invention.

以下將參照附圖來更詳細地描述各種實施例。然而,本公開可 以以不同的形式實施,而不應當被解釋為侷限於所陳述的實施例。相反地,這些實施例被提供使得本公開將是徹底且完整的,並且將本發明的範圍充分傳達給本發明所屬技術領域中具有通常知識者。貫穿本公開,相同的元件符號在本發明的各種附圖和實施例中指相同的部分。 Various embodiments will be described in more detail below with reference to the drawings. However, this disclosure may Implemented in different forms and should not be construed as limited to the embodiments set forth. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art to which this invention belongs. Throughout this disclosure, the same reference numerals refer to the same parts in the various drawings and embodiments of the present invention.

本發明可以以很多方式來實施,包括作為:過程;裝置;系統;物的組合;在電腦可讀儲存媒介上實施的電腦程式產品;和/或處理器(諸如被配置用來運行儲存在耦接至處理器的記憶體上的指令和/或由耦接至處理器的記憶體提供的指令的處理器)。在此說明書中,這些實施方式或本發明可以採用的任何其他形式可以被稱作技術。一般地,可以在本發明的範圍之內改變所公開的過程中的步驟的次序。除非另外說明,否則被描述為被配置用來執行任務的元件(諸如處理器或記憶體)可以被實施為暫時被配置用來在給定時間執行該任務的常規元件或被製造用來執行該任務的特定組件。如本文中所使用的,術語“處理器”指被配置用來處理資料(諸如電腦程式指令)的一種或更多種裝置、電路和/或處理核心。 The invention can be implemented in many ways, including as a process; a device; a system; a combination of things; a computer program product implemented on a computer-readable storage medium; and / or a processor (such as Instructions connected to the processor's memory and / or instructions provided by the memory coupled to the processor). In this description, these embodiments or any other form that the invention may take may be referred to as technology. Generally, the order of the steps in the disclosed processes may be changed within the scope of the invention. Unless stated otherwise, an element (such as a processor or memory) described as being configured to perform a task may be implemented as a conventional element temporarily configured to perform the task at a given time or manufactured to perform the task Task-specific components. As used herein, the term "processor" refers to one or more devices, circuits, and / or processing cores configured to process data, such as computer program instructions.

一種降低基於NAND的技術的成本的方法包含縮減工藝,但縮減工藝降低效能。可以透過使用高級訊號處理和編碼技術來補償這種效能損失。博斯-查德胡裡-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)碼和低密度同位元檢查(LDPC)碼已經被用來保證資料完整性。對於BCH碼,主要缺點在於它們不能用於軟判決解碼,這使得這些編碼不理想。LDPC碼提供良好的硬判決解碼效能和軟判決解碼效能。然而,LDPC解碼器的複雜度相當高,這使得此解決方案對於硬體實施而言太昂貴。下面公開和描述了高級編碼技術,其可以利用較低硬體複雜度來提供高效能收益。 One way to reduce the cost of NAND-based technology involves reducing the process, but reducing the process reduces efficiency. This performance loss can be compensated by using advanced signal processing and coding techniques. Bose-Chaudhuri-Hocquenghem (BCH) codes and low-density parity check (LDPC) codes have been used to ensure data integrity. For BCH codes, the main disadvantage is that they cannot be used for soft-decision decoding, which makes these codes not ideal. LDPC codes provide good hard decision decoding performance and soft decision decoding performance. However, the complexity of the LDPC decoder is quite high, which makes this solution too expensive for hardware implementation. The following discloses and describes advanced coding techniques that can take advantage of lower hardware complexity to provide high performance benefits.

渦輪乘積碼(TPC)被認為是可以以比LDPC碼低得多的硬體複雜度來提供顯著收益的高級編碼技術。在硬判決解碼中,相比於BCH碼和LDPC碼,TPC給出顯著的效能收益。在軟判決解碼中,TPC實現接近於LDPC碼的效能收益。 Turbo product code (TPC) is considered an advanced coding technique that can provide significant benefits with much lower hardware complexity than LDPC codes. In hard-decision decoding, TPC gives significant performance gains compared to BCH codes and LDPC codes. In soft decision decoding, TPC achieves performance gains close to LDPC codes.

TPC被認為是以比LDPC碼低得多的硬體複雜度來提供顯著收益的高級編碼技術。在硬判決解碼中,相比於BCH碼和LDPC碼,TPC給出顯著的效能收益。在軟判決解碼中,TPC實現接近於LDPC碼的效能收益。 TPC is considered an advanced coding technology that provides significant benefits with much lower hardware complexity than LDPC codes. In hard-decision decoding, TPC gives significant performance gains compared to BCH codes and LDPC codes. In soft decision decoding, TPC achieves performance gains close to LDPC codes.

因此,在使用渦輪乘積碼的系統中,需要高級編碼技術來提供效能和輸送量(throughput)方面的收益。 Therefore, in systems using turbo product codes, advanced coding techniques are needed to provide benefits in terms of performance and throughput.

在一些實施例中,本發明將被應用至圖1中所示的資料處理系統。 In some embodiments, the present invention will be applied to the data processing system shown in FIG. 1.

圖1圖示了包括應用了本發明的實施例的記憶體系統的資料處理系統100。圖1中所示的資料處理系統100僅用於說明。在不脫離本公開的範圍的情況下,可以使用資料處理系統100的其他結構。雖然圖1圖示了資料處理系統100的一個示例,但可以對圖1作出各種改變。例如,在任何合適的佈置中,資料處理系統100可以包括任何元件,或者可以不包括任何元件。 FIG. 1 illustrates a data processing system 100 including a memory system to which an embodiment of the present invention is applied. The data processing system 100 shown in FIG. 1 is for illustration only. Other structures of the data processing system 100 may be used without departing from the scope of the present disclosure. Although FIG. 1 illustrates one example of the data processing system 100, various changes can be made to FIG. 1. For example, in any suitable arrangement, the data processing system 100 may include any elements, or may not include any elements.

參見圖1,資料處理系統100可以包括主機102和記憶體系統110。 Referring to FIG. 1, the data processing system 100 may include a host 102 and a memory system 110.

主機102可以包括例如:諸如行動電話、MP3播放機和筆記型電腦的可攜式電子設備或諸如桌上型電腦、遊戲機、TV和投影機的電子設備。 The host 102 may include, for example, a portable electronic device such as a mobile phone, an MP3 player, and a notebook computer or an electronic device such as a desktop computer, a game console, a TV, and a projector.

記憶體系統110可以回應於來自主機102的請求來操作,具體地,儲存要由主機102存取的資料。換言之,記憶體系統110可以用作主機102 的主記憶體系統或輔助記憶體系統。記憶體系統110可以根據要與主機102電耦接的主機介面的協定來用各種類型的儲存設備中的任意一種來實施。記憶體系統110可以用各種類型的儲存設備(諸如固態驅動器(SSD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、縮減尺寸MMC(RS-MMC)和微型MMC、安全數位(SD)卡、迷你SD和微型SD、通用序列匯流排(USB)儲存設備、通用快閃儲存(UFS)設備、緊湊式快閃記憶體(CF)卡、智慧媒體(SM)卡和記憶棒等)中的任意一種來實施。 The memory system 110 may operate in response to a request from the host 102, and specifically, stores data to be accessed by the host 102. In other words, the memory system 110 can be used as the host 102 Main memory system or auxiliary memory system. The memory system 110 may be implemented with any one of various types of storage devices according to a host interface protocol to be electrically coupled with the host 102. The memory system 110 can use various types of storage devices such as solid state drives (SSD), multimedia cards (MMC), embedded MMC (eMMC), reduced size MMC (RS-MMC) and micro MMC, secure digital (SD) cards , Mini SD and micro SD, universal serial bus (USB) storage devices, universal flash storage (UFS) devices, compact flash memory (CF) cards, smart media (SM) cards, and memory sticks) Either way.

用於記憶體系統110的儲存設備可以用揮發性記憶體裝置(諸如動態隨機存取記憶體(DRAM)和靜態隨機存取記憶體(SRAM))或非揮發性記憶體裝置(諸如唯讀記憶體(ROM)、遮罩ROM(MROM)、可編程ROM(PROM)、可抹除可編程ROM(EPROM)、電可抹除可編程ROM(EEPROM)、鐵電式隨機存取記憶體(FRAM)、相變式RAM(PRAM)、磁阻式RAM(MRAM)和電阻式RAM(RRAM))來實施。 The storage device for the memory system 110 may use volatile memory devices such as dynamic random access memory (DRAM) and static random access memory (SRAM) or non-volatile memory devices such as read-only memory ROM (ROM), mask ROM (MROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), ferroelectric random access memory (FRAM ), Phase change RAM (PRAM), magnetoresistive RAM (MRAM), and resistive RAM (RRAM)).

記憶體系統110可以包括記憶體裝置150和控制器130,記憶體裝置150儲存要由主機102存取的資料,控制器130控制將資料儲存在記憶體裝置150中。 The memory system 110 may include a memory device 150 and a controller 130. The memory device 150 stores data to be accessed by the host 102, and the controller 130 controls the data to be stored in the memory device 150.

控制器130和記憶體裝置150可以被集成至一個半導體裝置中。例如,控制器130和記憶體裝置150可以被集成至一個半導體裝置中,並配置固態驅動器(SSD)。當記憶體系統110用作SSD時,可以顯著增加與記憶體系統110電耦接的主機102的操作速度。 The controller 130 and the memory device 150 may be integrated into one semiconductor device. For example, the controller 130 and the memory device 150 may be integrated into one semiconductor device and configured with a solid state drive (SSD). When the memory system 110 is used as an SSD, the operation speed of the host 102 electrically coupled with the memory system 110 can be significantly increased.

控制器130和記憶體裝置150可以被集成至一個半導體裝置中,並配置記憶卡。控制器130和記憶體裝置150可以被集成至一個半導體裝置中, 並配置諸如國際個人電腦記憶卡協會(PCMCIA)卡、緊湊式快閃記憶體(CF)卡、智慧媒體(SM)卡(SMC)、記憶棒、多媒體卡(MMC)、RS-MMC和微型MMC、安全數位(SD)卡、迷你SD、微型SD和SDHC以及通用快閃儲存(UFS)裝置的記憶卡。 The controller 130 and the memory device 150 may be integrated into one semiconductor device and configured with a memory card. The controller 130 and the memory device 150 may be integrated into one semiconductor device. And configures such as the International Personal Computer Memory Card Association (PCMCIA) card, compact flash memory (CF) card, smart media (SM) card (SMC), memory stick, multimedia card (MMC), RS-MMC and micro MMC , Secure digital (SD) cards, mini SD, micro SD and SDHC, and memory cards for universal flash storage (UFS) devices.

又例如,記憶體系統110可以配置電腦、超移動PC(UMPC)、工作站、上網本、個人數位助理(PDA)、可攜式電腦、網路平板、平板電腦、無線電話、行動電話、智慧型電話、電子書、可攜式多媒體播放機(PMP)、可攜式遊戲機、導航儀、黑匣子、數位相機、數位多媒體廣播(DMB)播放機、三維(3D)電視、智慧電視、數位答錄機、數位音訊播放機、數位圖片記錄器、數位圖片播放機、數位錄影機、數位視訊播放機、配置資料中心的儲存器、能夠在無線環境下收發資訊的設備、配置家用網路的各種電子設備中的一種、配置電腦網路的各種電子設備中的一種、配置遠端資訊處理的各種電子設備中的一種、RFID設備或者配置計算系統的各種組成元件中的一種。 As another example, the memory system 110 may be configured with a computer, an ultra mobile PC (UMPC), a workstation, a netbook, a personal digital assistant (PDA), a portable computer, a network tablet, a tablet computer, a wireless phone, a mobile phone, and a smart phone. , E-books, portable multimedia players (PMP), portable game consoles, navigators, black boxes, digital cameras, digital multimedia broadcast (DMB) players, three-dimensional (3D) TVs, smart TVs, digital answering machines , Digital audio player, digital picture recorder, digital picture player, digital video recorder, digital video player, storage equipped with data center, equipment capable of sending and receiving information in a wireless environment, and various electronic devices equipped with home network One of various electronic devices that configure a computer network, one of various electronic devices that configure remote information processing, one of RFID devices, or one of various constituent elements of a computing system.

記憶體系統110的記憶體裝置150可以在電源被中斷時保持儲存的資料,具體地,在寫入操作期間儲存從主機102提供的資料,以及在讀取操作期間將儲存的資料提供給主機102。記憶體裝置150可以包括多個記憶體區塊152、154和156。記憶體區塊152、154和156中的每個可以包括多個頁。頁中的每個可以包括電耦接了多個字元線(WL)的多個記憶胞。記憶體裝置150可以為非揮發性記憶體裝置,例如,快閃記憶體。快閃記憶體可以具有三維(3D)層疊結構。 The memory device 150 of the memory system 110 can maintain the stored data when the power is interrupted, specifically, stores the data provided from the host 102 during a write operation, and provides the stored data to the host 102 during a read operation . The memory device 150 may include a plurality of memory blocks 152, 154, and 156. Each of the memory blocks 152, 154, and 156 may include multiple pages. Each of the pages may include a plurality of memory cells electrically coupled to a plurality of word lines (WL). The memory device 150 may be a non-volatile memory device, such as a flash memory. The flash memory may have a three-dimensional (3D) stacked structure.

記憶體系統110的控制器130可以回應於來自主機102的請求來控制記憶體裝置150。控制器130可以將從記憶體裝置150讀取的資料提供給 主機102,以及將從主機102提供的資料儲存在記憶體裝置150中。為此,控制器130可以控制記憶體裝置150的總體操作,諸如讀取操作、寫入操作、編程操作和抹除操作。 The controller 130 of the memory system 110 may control the memory device 150 in response to a request from the host 102. The controller 130 may provide data read from the memory device 150 to The host 102 and the data provided from the host 102 are stored in the memory device 150. To this end, the controller 130 may control overall operations of the memory device 150, such as a read operation, a write operation, a program operation, and an erase operation.

詳細地,控制器130可以包括主機介面單元132、處理器134、錯誤校正碼(ECC)單元138、電源管理單元(PMU)140、記憶體控制器(MC)142和記憶體144。 In detail, the controller 130 may include a host interface unit 132, a processor 134, an error correction code (ECC) unit 138, a power management unit (PMU) 140, a memory controller (MC) 142, and a memory 144.

主機介面單元132可以處理從主機102提供的命令和資料,且可以透過下面的各種介面協定中的至少一種來與主機102通信:諸如通用序列匯流排(USB)、多媒體卡(MMC)、周邊元件連接-快速(PCI-E)、串列連接SCSI(SAS)、串列高級技術附件(SATA)、並行高級技術附件(PATA)、小型電腦系統介面(SCSI)、增強型小盤介面(ESDI)和集成驅動電路(IDE)。 The host interface unit 132 can process commands and data provided from the host 102, and can communicate with the host 102 through at least one of the following various interface protocols: such as a universal serial bus (USB), a multimedia card (MMC), and peripheral components Connectivity-Express (PCI-E), Serial Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), Parallel Advanced Technology Attachment (PATA), Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI) And integrated drive circuit (IDE).

ECC單元138可以在讀取操作期間檢測並校正從記憶體裝置150讀取的資料中的錯誤。當錯誤位元的數量大於或等於可校正錯誤位元的閾值數量時,ECC單元138不能校正錯誤位元,且可以輸出指示校正錯誤位元失敗的錯誤校正失敗訊號。 The ECC unit 138 may detect and correct errors in the data read from the memory device 150 during a read operation. When the number of error bits is greater than or equal to the threshold number of correctable error bits, the ECC unit 138 cannot correct the error bits, and can output an error correction failure signal indicating that the error bit has failed to be corrected.

ECC單元138可以基於下面的編碼調製來執行錯誤校正操作:諸如低密度同位檢查(LDPC)碼、博斯-查德胡裡-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)碼、渦輪碼、渦輪乘積碼(TPC)、裡德-索羅門(RS,Reed-Solomon)碼、卷積碼、遞迴系統碼(RSC)、格碼調製(TCM)和塊碼調製(BCM)等。ECC單元138可以包括用於錯誤校正操作的所有電路、系統或裝置。 The ECC unit 138 may perform an error correction operation based on the following code modulation: such as a low-density parity check (LDPC) code, a Bosch-Chaudhuri-Hocquenghem code, a turbo code , Turbo product code (TPC), Reed-Solomon (RS, Reed-Solomon) code, convolutional code, recursive system code (RSC), trellis code modulation (TCM), and block code modulation (BCM). The ECC unit 138 may include all circuits, systems, or devices for error correction operations.

PMU 140可以提供並管理用於控制器130的電源,即,用於控 制器130中包括的組成元件的電源。 The PMU 140 may provide and manage power for the controller 130, i.e., for controlling the The power source of the constituent elements included in the controller 130.

MC 142可以用作控制器130與記憶體裝置150之間的記憶體介面以允許控制器130回應於來自主機102的請求來控制記憶體裝置150。MC 142可以產生針對記憶體裝置150的控制訊號,並在處理器134的控制下處理資料。當記憶體裝置150是諸如NAND快閃記憶體的快閃記憶體時,MC 142可以產生針對NAND快閃記憶體150的控制訊號,並在處理器134的控制下處理資料。 The MC 142 may be used as a memory interface between the controller 130 and the memory device 150 to allow the controller 130 to control the memory device 150 in response to a request from the host 102. The MC 142 can generate control signals for the memory device 150 and process data under the control of the processor 134. When the memory device 150 is a flash memory such as a NAND flash memory, the MC 142 may generate a control signal for the NAND flash memory 150 and process data under the control of the processor 134.

記憶體144可以用作記憶體系統110和控制器130的工作記憶體,並儲存用於驅動記憶體系統110和控制器130的資料。控制器130可以回應於來自主機102的請求來控制記憶體裝置150。例如,控制器130可以將從記憶體裝置150讀取的資料提供給主機102,以及將從主機102提供的資料儲存在記憶體裝置150中。當控制器130控制記憶體裝置150的操作時,記憶體144可以儲存由控制器130和記憶體裝置150使用的資料以用於諸如讀取操作、寫入操作、編程操作和抹除操作的操作。 The memory 144 can be used as a working memory of the memory system 110 and the controller 130 and stores data used to drive the memory system 110 and the controller 130. The controller 130 may control the memory device 150 in response to a request from the host 102. For example, the controller 130 may provide data read from the memory device 150 to the host 102 and store data provided from the host 102 in the memory device 150. When the controller 130 controls the operation of the memory device 150, the memory 144 may store data used by the controller 130 and the memory device 150 for operations such as a read operation, a write operation, a program operation, and an erase operation. .

記憶體144可以用揮發性記憶體來實施。記憶體144可以用靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)來實施。如上所述,記憶體144可以儲存由主機102和記憶體裝置150使用的資料以用於讀取操作和寫入操作。為了儲存該資料,記憶體144可以包括程式記憶體、資料記憶體、寫入緩衝器、讀取緩衝器和映射緩衝器等。 The memory 144 may be implemented by a volatile memory. The memory 144 may be implemented by a static random access memory (SRAM) or a dynamic random access memory (DRAM). As described above, the memory 144 may store data used by the host 102 and the memory device 150 for read operations and write operations. To store the data, the memory 144 may include program memory, data memory, a write buffer, a read buffer, a mapping buffer, and the like.

處理器134可以控制記憶體系統110的常規操作,以及回應於來自主機102的寫入請求或讀取請求來控制針對記憶體裝置150的寫入操作或讀取操作。處理器134可以驅動被稱作快閃記憶體轉換層(FTL)的韌體來控制記憶體系統110的常規操作。處理器134可以用微處理器或中央處理單元(CPU) 來實施。 The processor 134 may control a general operation of the memory system 110 and control a write operation or a read operation to the memory device 150 in response to a write request or a read request from the host 102. The processor 134 may drive a firmware called a flash memory translation layer (FTL) to control the general operation of the memory system 110. The processor 134 may be a microprocessor or a central processing unit (CPU) To implement.

管理單元(圖未示)可以被包括在處理器134中,且可以執行對記憶體裝置150的壞區塊管理。管理單元可以找出記憶體裝置150中包括的壞記憶體區塊(其不滿足進一步使用的條件),並對該壞記憶體區塊執行壞區塊管理。當記憶體裝置150是快閃記憶體(例如,NAND快閃記憶體)時,在寫入操作期間(例如,在編程操作期間)可能因NAND邏輯功能的特性而出現編程失敗。在壞區塊管理期間,編程失敗的記憶體區塊或壞記憶體區塊中的資料可以被編程至新的記憶體區塊中。此外,因編程失敗而導致的壞區塊嚴重降低具有3D層迭結構的記憶體裝置150的利用效率和記憶體系統110的可靠性,從而需要可靠的壞區塊管理。 A management unit (not shown) may be included in the processor 134 and may perform bad block management on the memory device 150. The management unit may find the bad memory blocks (which do not satisfy the conditions for further use) included in the memory device 150 and perform bad block management on the bad memory blocks. When the memory device 150 is a flash memory (for example, a NAND flash memory), a programming failure may occur during a write operation (for example, during a program operation) due to characteristics of a NAND logic function. During bad block management, data in failed memory blocks or bad memory blocks can be programmed into new memory blocks. In addition, the bad blocks caused by the programming failure severely reduce the utilization efficiency of the memory device 150 with the 3D layered structure and the reliability of the memory system 110, thereby requiring reliable bad block management.

圖2是根據本發明的實施例的包括編碼器和解碼器的記憶體系統200的方塊圖。例如,記憶體系統200對應於圖1中所示的記憶體系統110。為了清楚,此處圖未示圖1中的與本發明的實施例直接相關的組件。 FIG. 2 is a block diagram of a memory system 200 including an encoder and a decoder according to an embodiment of the present invention. For example, the memory system 200 corresponds to the memory system 110 shown in FIG. 1. For clarity, the components in FIG. 1 which are directly related to the embodiment of the present invention are not shown in the figure.

參見圖2,記憶體系統200包括儲存器210、寫入控制器220和讀取控制器230。例如,儲存器210對應於圖1中所示的記憶體裝置150,以及寫入控制器220和讀取控制器230對應於圖1中所示的ECC單元138。 Referring to FIG. 2, the memory system 200 includes a storage 210, a write controller 220, and a read controller 230. For example, the storage 210 corresponds to the memory device 150 shown in FIG. 1, and the write controller 220 and the read controller 230 correspond to the ECC unit 138 shown in FIG. 1.

儲存器210可以包括諸如NAND快閃記憶體的固態儲存器。寫入控制器220從圖1中的主機102接收資料,並處理儲存器210上的資料。讀取控制器230讀取儲存器210上的資料,並處理該資料。分別地,寫入控制器220包括TPC編碼器222,以及讀取控制器230包括TPC解碼器232,作為用於TPC方案的元件。 The memory 210 may include a solid state memory such as a NAND flash memory. The write controller 220 receives data from the host 102 in FIG. 1 and processes the data on the storage 210. The reading controller 230 reads the data on the storage 210 and processes the data. The write controller 220 includes a TPC encoder 222 and the read controller 230 includes a TPC decoder 232 as elements for a TPC scheme, respectively.

如此處所述,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#是被組合的列數。 As described herein, the TPC code includes Nr row codes and Nc column codes. All of them Is a BCH code with the following parameters: row code: (nr, kr, Tr, mr); column code: (nc, kc, Tc, mc); XOR code: (nx, kx, Tx, mx); where n Represents the length of the encoding, k represents the dimension of the encoding, T represents the error correction capacity of the encoding, and m represents the finite field-size of the encoding. The number of columns that are combined to generate the column parity bit is specified through C #, where C # is the number of columns that are combined.

圖3A和圖3B是圖示根據本發明的一個實施例的TPC編碼方案的流程圖。 3A and 3B are flowcharts illustrating a TPC encoding scheme according to an embodiment of the present invention.

圖4是表示矩形資料區塊的示例的示圖。 FIG. 4 is a diagram showing an example of a rectangular data block.

下面參照圖3和圖4來描述編碼方案。 The encoding scheme is described below with reference to FIGS. 3 and 4.

可以佈置在矩形區塊中(見圖4)。資料300包括行資料和列資料。可以用分量碼(constituent code)來對第一行(行1至行R-1)編碼。在一個實施例中,可以使用BCH作為分量碼來對第一行編碼,儘管本發明所屬技術領域中具有通常知識者將明白,本發明不侷限於對分量碼的這種選擇。 Can be arranged in a rectangular block (see Figure 4). The data 300 includes row data and column data. The first line (line 1 to line R-1) may be encoded with a component code. In one embodiment, the first line may be encoded using BCH as the component code, although those having ordinary knowledge in the technical field to which the present invention pertains will appreciate that the present invention is not limited to this choice of component code.

產生行1至行R-1的行同位檢查位元302,以及對所有的資料位元和所有的行同位檢查位元(即,就此而言,所有的行同位檢查位元包括行1至行(R-1)的同位檢查位元)進行互斥或(XOR)。XOR位的數量透過C#來給出。由於行同位檢查位元將包含Tr*mr,且Tr*mr將不是C#的整數倍,因此可以對行同位檢查位元進行零填充(zero pad)以使得它們是C#的整數倍。例如,如果行同位檢查位元長度是42且C#給定為24,則可以對6個位進行零填充以使得行同位檢查位元是48位長,且可以從行同位檢查位元構建長度為24的兩 個區塊。 Generates parity check bits 302 for rows 1 to R-1, and parity check bits for all data bits and all rows (ie, for this purpose, all parity check bits for rows include rows 1 to (R-1) parity check bit) are mutually exclusive or (XOR). The number of XOR bits is given in C #. Since the row parity check bits will contain Tr * mr, and Tr * mr will not be an integer multiple of C #, zero padding of the row parity check bits can be made such that they are integer multiples of C #. For example, if the row parity check bit length is 42 and C # is given as 24, zero padding can be performed on 6 bits so that the row parity check bit is 48 bits long, and the length can be constructed from the row parity check bit as 24 of two Blocks.

對資料300和行同位檢查位元302進行XOR,且該XOR將被包括在資料的最後一行406中。可以將此XOR認作XOR同位檢查位元1(306,450)。XOR同位檢查位元1(306,450)將具有長度C#。 XOR the data 300 and the parity check bit 302, and the XOR will be included in the last line 406 of the data. This XOR can be considered as XOR parity bit 1 (306,450). XOR parity bit 1 (306,450) will have length C #.

XOR同位檢查位元1(306,450)被包括在資料的最後一行406(即,行R)中,以及產生最後一行同位檢查位元(308,460)。值得注意的是,包括XOR同位檢查位元1(306,450)的最後一行同位檢查位元(308,460)被產生。 The XOR parity bit 1 (306,450) is included in the last line 406 (ie, line R) of the data, and the last line parity bit (308,460) is generated. It is worth noting that the parity bit (308,460) of the last row including the XOR parity bit 1 (306,450) is generated.

透過對列進行組合來產生列同位檢查位元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)相同。 The column parity check bit 304 is generated by combining the columns. For a given number of columns C (for example, C #), the column parity check bit may include column parity check bit 1 440, column parity check bit 2 442, column parity check bit (C-1) 444, and column parity Check bit C 446. In the example of this scheme, a column parity check bit (C-1) 444 is generated if the XOR parity check bit 1 (450) is included, and a row parity check bit is each included to be generated Column parity check bit C 446 (which includes row R parity check bit 460, and as described above, row R parity check bit is generated including XOR parity check bit 1 450). It is assumed that the correction capacity (T) and the Galois field (m) are the same for the row parity check bit and the column parity check bit.

可以透過對所有的列同位檢查位元和最後一行同位檢查位元進行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 parity bit 2 (310,470) can be generated by XORing all column parity bits and the last row parity bit. The length of XOR parity bit 2 (310,470) is given as Tr * mr (= Tc * mc). For simplicity, assume Tr * mr = Tc * mc. If Tr * mr ≠ Tc * mc, zero padding can be used to generate XOR parity bit 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 You can apply another component code to XOR parity bit 2 (310,470) (for example, parity bit to XOR parity bit 2 (312,480)), XOR parity bit The encoding parameters of 2 (310,470) are given as (nx, kx, Tx, mx). Overall, the Galois field of this BCH code for XOR parity bit 2 is quite small, so the complexity of the encoding / decoding of this encoding is minimal. It should be noted that this parity bit for the XOR parity bit 2 is only written to the NAND. In this method, parity check bits can be saved by not writing XOR parity check bit 2. The parity bit overhead of this scheme is given as: the total parity bit of the proposed scheme = Tr * mr + Tc * mc + C # + Tx * mx

相比於先前實施的方案,除行同位檢查位元和列同位檢查位元以外的XOR同位檢查位元負擔(C#+Tx*mx)相當小。因此,此方案相比於其他方案具有顯著的效能收益。 Compared with the previously implemented scheme, the XOR parity check bit burden (C # + Tx * mx) other than the row parity check bit and the column parity check bit is relatively small. Therefore, this scheme has significant performance benefits compared to other schemes.

參見圖5至圖10,描述了針對以上所公開的編碼方案的各種解碼處理。解碼程式類似於規則TPC解碼,在規則TPC解碼中,列解碼以反覆運算迴圈接著行解碼,直到資料被成功解碼或者反覆運算次數超過最大反覆運算次數為止。存在特定的錯誤型樣,即使該錯誤型樣的權重(weight)小,該錯誤型樣也將在解碼中受阻。 5 to 10, various decoding processes for the encoding schemes disclosed above are described. The decoding program is similar to regular TPC decoding. In regular TPC decoding, column decoding is repeated in loops followed by row decoding until the data is successfully decoded or the number of iterations exceeds the maximum number of iterations. There is a specific error pattern, and even if the weight of the error pattern is small, the error pattern will be blocked in decoding.

在圖5至圖8中,示出了(1,1)受阻錯誤型樣(stuck error pattern)。(1,1)受阻錯誤型樣是在其中正好存在一行和一列故障的受阻錯誤型樣。在圖9A和圖9B中,示出了(2,2)受阻錯誤型樣,其中,存在兩行和兩列故障。在圖10中,示出了(0,2)受阻錯誤型樣。 In FIGS. 5 to 8, a (1,1) stuck error pattern is shown. The (1,1) blocked error pattern is a blocked error pattern in which exactly one row and one column of faults exist. In Figures 9A and 9B, a (2,2) blocked error pattern is shown, where there are two rows and two columns of faults. In Fig. 10, a (0,2) blocked error pattern is shown.

在圖5中,示出了資料中的可能在解碼中受阻的錯誤型樣500。在此示例中,假設行編碼和列編碼的錯誤校正容量等於2。儘管錯誤型樣500的權重是4,但其將在解碼中受阻。可以使用XOR同位檢查位元1 450來校正錯誤型樣500。因為故障行和故障列是已知的,所以行/列相交部分是已知的。首 先,對除故障的行/列相交部分之外的所有資料、行同位檢查位元和XOR同位檢查位元1進行XOR。此產生的XOR同位檢查位元可以取代故障的行/列相交部,這將校正行/列相交部分中的所有錯誤位元。 In FIG. 5, an error pattern 500 in the data that may be blocked in decoding is shown. In this example, it is assumed that the error correction capacity of the row encoding and the column encoding is equal to two. Although the weight of error pattern 500 is 4, it will be blocked in decoding. The XOR parity bit 1 450 can be used to correct the error pattern 500. Because the faulty rows and columns are known, the row / column intersection is known. first First, XOR all the data except row / column intersection part, row parity check bit and XOR parity check bit 1. The resulting XOR parity check bit can replace the faulty row / column intersection, which will correct all erroneous bits in the row / column intersection.

類似地,在圖6中,示出了受阻錯誤型樣。受阻錯誤型樣600存在於行同位檢查位元部分中。使用以上參照圖5所描述的解碼處理,也可以校正受阻錯誤型樣600。 Similarly, in Figure 6, a blocked error pattern is shown. A blocked error pattern 600 exists in the parity check bit portion. Using the decoding process described above with reference to FIG. 5, the blocked error pattern 600 can also be corrected.

在圖7中,示出了存在於第R行同位檢查位元中的受阻錯誤型樣700。為了校正此型樣700,可以在解碼端處產生XOR同位檢查位元2,透過對第R行同位檢查位元和所有的列同位檢查位元進行XOR來獲得XOR同位檢查位元2。在此XOR同位檢查位元2上運行BCH解碼,該BCH解碼將校正所有的錯誤,因為對XOR同位檢查位元2的BCH具有大的校正容量。一旦獲得了正確的XOR同位檢查位元2,此同位檢查位元就可以用來校正受阻型樣700。 In FIG. 7, a blocked error pattern 700 existing in the parity bit of the R-th row is shown. In order to correct this pattern 700, XOR parity check bit 2 may be generated at the decoding end, and XOR parity check bit 2 is obtained by XORing the Rth row parity check bit and all column parity check bits. BCH decoding is run on this XOR parity bit 2. This BCH decoding will correct all errors because the BCH for XOR parity bit 2 has a large correction capacity. Once the correct XOR parity bit 2 is obtained, this parity bit can be used to correct the hindered pattern 700.

在圖8中,示出了在列同位元部分中的受阻錯誤型樣800,該受阻型樣800可以透過以上參照圖7所描述的處理來校正。這樣,在解碼程式中存在的所有(1,1)受阻錯誤型樣都可以被解碼。 In FIG. 8, a blocked error pattern 800 in a column parity portion is shown, and the blocked pattern 800 can be corrected by the process described above with reference to FIG. 7. In this way, all (1,1) blocked error patterns present in the decoding program can be decoded.

接下來參見圖9A,示出了(2,2)受阻錯誤型樣。即,資料包括錯誤型樣900和錯誤型樣902。XOR同位檢查位元1和XOR同位檢查位元2不能用來校正這種受阻錯誤型樣900、902。在圖9A中,為了簡單而示出了C#等於6的示例。目標是透過識別最可能的錯誤位置來校正這種受阻錯誤型樣900、902。一旦錯誤位置已知,就可以使用簡單的翻轉演算法來校正這種受阻錯誤型樣900、902。在圖9A中,受阻錯誤型樣具有出現在行和列相交部分中的不同位置處的6個錯誤。 9A, a (2,2) blocked error pattern is shown. That is, the data includes an error pattern 900 and an error pattern 902. XOR parity check bit 1 and XOR parity check bit 2 cannot be used to correct this blocked error pattern 900, 902. In FIG. 9A, an example where C # is equal to 6 is shown for simplicity. The goal is to correct this blocked error pattern 900, 902 by identifying the most likely error locations. Once the location of the error is known, a simple flip algorithm can be used to correct this blocked error pattern 900, 902. In FIG. 9A, the blocked error pattern has 6 errors appearing at different positions in the intersection portion of the row and column.

由於正確的XOR同位檢查位元1已知,因此可以找到對所有資料和行同位檢查位元(行1至行(R-1))的XOR,並將其與XOR同位檢查位元1進行比較。在至多6個位置處XOR同位檢查位元1與這些計算出的XOR同位檢查位元不同。現在,錯誤的位置已知,然而錯誤在行/列相交部分中的準確位置未知。 Since the correct XOR parity bit 1 is known, the XOR for all data and row parity bits (line 1 to line (R-1)) can be found and compared to XOR parity bit 1 . The XOR parity bit 1 is different from these calculated XOR parity bits at a maximum of 6 positions. The location of the error is now known, but the exact location of the error in the row / column intersection is unknown.

如圖9B中所示,在(2,2)受阻錯誤型樣中,存在可能具有錯誤的4個行/列相交部分(910,912,914,916)。可以使用位元翻轉處理(例如,Chase解碼),在位元翻轉處理中,在透過XOR同位檢查位元1確定的錯誤位元位置處的位元被翻轉。在Chase解碼中,將嘗試所有的2^翻轉位元(flip_bits),其中翻轉位元(flip_bits)是從儲存的xor或資料計算的xor檢測到的翻轉的位的數量。 As shown in FIG. 9B, in the (2,2) blocked error pattern, there are 4 row / column intersections (910,912,914,916) that may have errors. A bit flip process (eg, Chase decoding) may be used, in which the bits at the wrong bit position determined by the XOR parity check bit 1 are flipped. In Chase decoding, all 2 ^ flip_bits will be tried, where flip_bits is the number of flipped bits detected by xor calculated from stored xor or data.

在本發明的另一示例中,將從翻轉位元選擇一個位(例如,nchoosek(翻轉位元,1)),將在所有故障的n*m個受阻錯誤相交部分處嘗試這種位元翻轉,然後嘗試解碼。接下來,將對n*m個故障的受阻錯誤型樣嘗試nchoosek(翻轉位元,2),且將對所有的n*m個故障的受阻錯誤型樣重複此處理(例如,nchoosek(翻轉位元,翻轉位元))。必須在故障的相交部分內部作出所有的校正,以避免在錯誤相交部分外部引入更多的錯誤。 In another example of the present invention, one bit will be selected from the flip bit (eg, nchoosek (1)), and this bit flip will be attempted at n * m obstructed error intersections of all faults And then try to decode. Next, nchoosek (rollover bits, 2) will be tried for n * m faulty blocked error patterns, and this process will be repeated for all n * m faulty blocked error patterns (for example, nchoosek (rollover bit Yuan, flip bits)). All corrections must be made inside the intersecting part of the fault to avoid introducing more errors outside the wrong intersecting part.

在第一次運行中,可以對所有的4個行/列故障相交部分(910,912,914,916)的6個錯誤位置位元中的單個位元進行翻轉。在一個位元翻轉之後,可以對故障的行/列解碼使用規則解碼。在解碼時,保證在BCH解碼期間解碼的位元必須位於行/列故障相交部分中。按照這種方式,不會在TPC結構中引入誤校正。 In the first run, a single bit among the 6 error position bits of all 4 row / column fault intersections (910,912,914,916) can be flipped. After a bit is flipped, regular decoding can be applied to the failed row / column decoding. When decoding, the bits that are guaranteed to be decoded during BCH decoding must be in the row / column fault intersection section. In this way, no false correction is introduced in the TPC structure.

在圖9A中所示的錯誤型樣中,第一行/列相交部分中的一個位元翻轉是不夠的。然後利用一個位元翻轉來處理第二行/列相交部分,這將對該行編碼進行解碼並滿足列編碼。一旦一個行/列相交部分中的錯誤被校正,受阻錯誤型樣就變成(1,1)錯誤型樣,該(1,1)錯誤型樣可以透過使用XOR同位檢查位元1來容易地校正。 In the error pattern shown in FIG. 9A, one bit flip in the first row / column intersection portion is not enough. A bit flip is then used to process the second row / column intersection, which will decode the row encoding and satisfy the column encoding. Once the errors in a row / column intersection are corrected, the blocked error pattern becomes a (1,1) error pattern, which can be easily corrected by using XOR parity bit 1. .

如果透過在所有故障的行/列相交部分中嘗試所有的單個位元翻轉而型樣未被解碼,則此型樣通常透過單個位元翻轉而得到解碼。可以對故障的行/列相交部分嘗試兩個位元或更多個位元翻轉。 If the pattern is not decoded by trying all the single bit flips in all the failed row / column intersections, this pattern is usually decoded by a single bit flip. Two or more bit flips can be attempted on the row / column intersection of the failure.

在圖9A和圖9B中,C#的值等於6。然而,在規則TPC碼設計中,C#的值更大。在那些類型的情況中,相比於隨機位元翻轉處理,來自所公開的位元翻轉演算法的優勢將是實質性的。與隨機位元翻轉不同的是,透過XOR同位檢查位元1和XOR同位檢查位元2的說明,最可能的錯誤位置是已知的,這顯著降低了整合所提出的方案的複雜度。以上所公開的方案可以容易地推廣為(n,n)受阻錯誤型樣,在(n,n)受阻錯誤型樣中,n行和n列有故障。然而,如果n的值大,則複雜度將增大。因此,在硬體複雜度之內的型樣使用這種提出的方案來校正。 In FIGS. 9A and 9B, the value of C # is equal to 6. However, in the regular TPC code design, the value of C # is larger. In those types of cases, the advantages from the disclosed bit flip algorithm will be substantial compared to the random bit flip process. Different from random bit flipping, through the description of XOR parity check bit 1 and XOR parity check bit 2, the most likely error position is known, which significantly reduces the complexity of the proposed scheme for integration. The solution disclosed above can be easily generalized as a (n, n) blocked error pattern. In the (n, n) blocked error pattern, n rows and n columns are faulty. However, if the value of n is large, the complexity will increase. Therefore, patterns within hardware complexity are corrected using this proposed scheme.

接下來參見圖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)出現的可能性相當低,所以在解碼中很少使用所提出的方案。 Referring next to Fig. 10, an alternative error pattern of (0, 2) is shown. To simplify the decoding, an alternative method of decoding the (0, k) blocked error pattern can also be performed. In the (0, k) blocked error pattern (eg, 1000, 1002), all rows are correct, and k columns are faulty. This pattern can be corrected using the correct data. The correctness of the data is verified by XOR parity check bit 1 and row parity check bit. The data can be used to generate (k-1) row parity check bits, and the XOR parity check bit 2 can be used to generate the last faulty parity check bit. Corrected k-th The parity check bit can be verified from the k-th data. If the parity bit of the k-th column of data matches the corrected k-th parity bit, then the TPC is declared to be successfully decoded. The correction capacity of XOR parity bit 2 is not very large, so this program can be applied to decode the (0, k) blocked error pattern. The blocked error patterns 1000 and 1002 shown in FIG. 10 can be corrected through the above scheme. In general, the probability of (0, k) appearing is quite low, so the proposed scheme is rarely used in decoding.

雖然公開了對(n,n)和(0,k)的錯誤碼型樣的解碼,但本文中所描述的處理也可以用來對(n,m)、(m,n)等的錯誤碼型樣進行解碼。 Although decoding of (n, n) and (0, k) error code patterns is disclosed, the process described herein can also be used to (n, m), (m, n), etc. error codes Patterns are decoded.

作為進一步描述,對(n,m)故障型樣(其中,n行和m列有故障)的解碼可以執行如下。首先,計算對所有資料和行同位檢查位元的XOR,並將其與儲存的同位檢查位元(例如,XOR_data)進行比較。一旦接收到XOR_data,就將其與XOR_stored進行比較以找出錯誤位元位置。現在錯誤位元位置是已知的,但是需要確定這些錯誤位於n*m個故障相交部分中的何處。這樣,採用從上述比較中找到的錯誤位元,並在所有的n*m個故障相交部分中的特定位置處的這些位被翻轉。如果分量碼字得到解碼,且所有的校正都在故障的分量碼字之內做出,則校正被應用。如果任意一行碼字透過嘗試校正對應的列碼字經由對位進行翻轉而被校正,則可以執行進一步的檢查,以及在故障的相交部分中做出所有的校正。可以根據來自XOR_data與XOR_stored的不匹配的位數量而同時對1個錯誤位元、2個錯誤位元、3個錯誤位元等進行這些位元翻轉。 As a further description, decoding of a (n, m) failure pattern (where n rows and m columns are defective) can be performed as follows. First, an XOR is calculated for all data and row parity bits and compared to the stored parity bits (eg, XOR_data). Once XOR_data is received, it is compared to XOR_stored to find the error bit position. The error bit locations are now known, but it is necessary to determine where these errors are located in the intersection of n * m faults. In this way, the erroneous bits found from the above comparison are taken, and these bits are flipped at specific positions among all the n * m faulty intersections. If the component codeword is decoded and all corrections are made within the failed component codeword, the correction is applied. If any row of codewords is corrected by attempting to correct the corresponding column codeword by inverting the bits, then further checks can be performed and all corrections made in the intersecting portion of the fault. These bit flips can be performed on 1 error bit, 2 error bits, 3 error bits, etc. at the same time according to the number of mismatched bits from XOR_data and XOR_stored.

此外,對於(0,k)錯誤型樣,解碼處理可以執行如下。如果所有的行合格,且XOR_stored與對資料和行同位檢查位元計算出的XOR匹配,則k個故障的列碼字被編碼以得到對應的k個列同位檢查位元。在這種情況下, 所有的錯誤位於同位檢查位元中,以及可以透過XOR同位檢查位元2來確定以此方式產生的同位檢查位元的正確性。 In addition, for a (0, k) error pattern, the decoding process can be performed as follows. If all rows are qualified, and XOR_stored matches the XOR calculated on the data and row parity check bits, the k faulty column codewords are encoded to obtain the corresponding k column parity check bits. under these circumstances, All errors are in the parity check bit, and the correctness of the parity check bit generated in this way can be determined through the XOR parity check bit 2.

測試以上所公開的方案的效能,並與2K BCH碼進行比較。基於以上所公開的方案構建的TPC碼的值被測試為:數據長度=32864。 The effectiveness of the scheme disclosed above is tested and compared with the 2K BCH code. The value of the TPC code constructed based on the scheme disclosed above was tested as: data length = 32864.

允許的同位檢查位元=308位元組。 Allowed parity check bits = 308 bytes.

行編碼:(nr,kr,Tr,mr)=(1310,1266,4,11)。 Line encoding: (nr, kr, Tr, mr) = (1310,1266,4,11).

列編碼:(nc,kc,Tc,mc)=(1318,1274,4,11)。 Column encoding: (nc, kc, Tc, mc) = (1318,1274,4,11).

Nr=26,Nc=27,以及C#=49。 Nr = 26, Nc = 27, and C # = 49.

XOR同位檢查位元2上的編碼:(nx,kx,Tx,mx)=(121,44,11,7)。 XOR parity check encoding on bit 2: (nx, kx, Tx, mx) = (121,44,11,7).

該效能在圖11中示出。圖11中的圖1100示出2k BCH的效能1102和如上所述的方案的效能1104。編碼設計中的發現:具有伽羅瓦域(m)和等於(11,4)的校正容量(T)的編碼透過顯著縮短的位元而已經合適。更大的校正容量降低誤校正容量,以及縮短的位元可以用於誤校正檢測。如果在BCH解碼期間在縮短的位中存在翻轉的位元,則知道BCH解碼器已經誤校正了碼字,而在TPC解碼中可以避免這種誤校正。 This performance is shown in FIG. 11. Diagram 1100 in FIG. 11 shows the efficiency 1102 of 2k BCH and the efficiency 1104 of the scheme described above. Findings in coding design: Codes with Galois Field (m) and a correction capacity (T) equal to (11,4) are already suitable through significantly shortened bits. The larger correction capacity reduces the error correction capacity, and the shortened bits can be used for error correction detection. If there are flipped bits in the shortened bits during BCH decoding, it is known that the BCH decoder has erroneously corrected the codeword, and this erroneous correction can be avoided in TPC decoding.

雖然已經參照本發明的示例性實施例而特別地示出和描述了本發明,但本發明所屬技術領域中具有通常知識者將理解的是,在不脫離由所附申請專利範圍中所限定的本發明的精神和範圍的情況下,在其中可以作出形式和細節上的各種改變。因此,前述內容僅作為示例,而非意在進行限制。例如,本文中所示出並描述的元件的任何數目僅作為示例。本發明僅由所附申請專利範圍及其均等範圍來限定。 Although the invention has been particularly shown and described with reference to exemplary embodiments thereof, those having ordinary knowledge in the technical field to which the invention pertains will appreciate without departing from the scope defined by the appended application patents Various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Therefore, the foregoing is merely an example, and is not intended to be limiting. For example, any number of elements shown and described herein are by way of example only. The present invention is limited only by the scope of the attached patents and their equivalents.

Claims (14)

一種對資料區塊中的資料進行編/解碼的方法,包括:從對資料區塊中的所有資料位元的互斥或(XOR)以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元。 A method for encoding / decoding data in a data block, including: from a mutex or (XOR) of all data bits in the data block and all of all rows except the last row in the data block XOR of row parity check bits to generate a first XOR parity check bit; storing the first XOR parity check bit in the last row; and XOR from all column parity check bits of all columns in the data block And an XOR of the parity bit of the last row to generate a second XOR parity bit. 如請求項1所述的方法,還包括:將分量碼應用至第二XOR同位檢查位元來產生第二XOR同位檢查位元的同位。 The method of claim 1, further comprising: applying a component code to the second XOR parity bit to generate parity of the second XOR parity bit. 如請求項1所述的方法,還包括:對行同位檢查位元進行零填充,使得行同位檢查位元的長度是資料區塊中的列數的整數倍。 The method according to claim 1, further comprising: zero-padding the row parity check bit, so that the length of the row parity check bit is an integer multiple of the number of columns in the data block. 如請求項1所述的方法,還包括一解碼步驟:對資料中的受阻錯誤型樣解碼。 The method according to claim 1, further comprising a decoding step: decoding a blocked error pattern in the data. 如請求項4所述的方法,其中,該解碼步驟包括:從除故障的行/列相交部分之外的資料、行同位檢查位元和第一XOR同位檢查位元來產生第三XOR同位檢查位元,所述故障的行/列相交部分包括受阻錯誤型樣;以及基於產生的第三XOR同位檢查位元而透過對受阻錯誤型樣中的位元進行翻轉來校正受阻錯誤型樣。 The method according to claim 4, wherein the decoding step includes: generating a third XOR parity check from data other than the faulty row / column intersection portion, a row parity check bit, and a first XOR parity check bit. Bit, the faulty row / column intersection portion includes a blocked error pattern; and corrects the blocked error pattern by inverting a bit in the blocked error pattern based on the generated third XOR parity check bit. 如請求項4所述的方法,其中,該解碼步驟還包括:透過將第一XOR同位檢查位元與以下內容進行比較來確定資料區塊中具有受阻錯誤型樣的一行/列相交部分,所述內容包括對資料區塊中的所有資 料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR;以及透過對確定的行/列相交部分中的位元進行位元翻轉來確定錯誤位元在受阻錯誤型樣中的位置。 The method according to claim 4, wherein the decoding step further comprises: determining a row / column intersection portion of the data block having a blocked error pattern by comparing the first XOR parity check bit with the following, The content includes all information in the data block. The XOR of the material bit and the XOR of the parity check bit for all the rows in the data block except the last row; and the bit error by determining the bit in the determined row / column intersection The position of the element in the blocked error pattern. 如請求項4所述的方法,其中,受阻錯誤型樣是(n,m)受阻錯誤型樣或(0,k)受阻錯誤型樣中的至少一種。 The method according to claim 4, wherein the blocked error pattern is at least one of a (n, m) blocked error pattern or a (0, k) blocked error pattern. 一種用於對資料區塊中的資料進行編/解碼的裝置,包括:編碼器,被配置為:從對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR來產生第一XOR同位檢查位元;將第一XOR同位檢查位元儲存在最後一行中;以及從對資料區塊中的所有列的所有列同位檢查位元的XOR以及對最後一行的同位檢查位元的XOR來產生第二XOR同位檢查位元,其中,基於第一XOR同位檢查位元和第二XOR同位檢查位元來對資料進行編碼。 A device for encoding / decoding data in a data block includes an encoder configured to: from an XOR of all data bits in the data block and to the data block except the last row XOR of all rows parity check bits of all rows to generate the first XOR parity check bit; store the first XOR parity check bit in the last row; and parity check from all columns of all columns in the data block The XOR of the bit and the XOR of the parity bit of the last row generate a second XOR parity bit, wherein the data is encoded based on the first XOR parity bit and the second XOR parity bit. 如請求項8所述的裝置,其中,該編碼器還被配置為將分量碼應用至第二XOR同位檢查位元來產生第二XOR同位檢查位元的同位檢查位元。 The apparatus of claim 8, wherein the encoder is further configured to apply a component code to the second XOR parity bit to generate a parity bit of the second XOR parity bit. 如請求項8所述的裝置,其中,該編碼器還被配置為:對行同位檢查位元進行零填充,使得行同位檢查位元的長度是資料區塊中的列數的整數倍。 The device according to claim 8, wherein the encoder is further configured to: zero-fill the row parity check bits, so that the length of the row parity check bits is an integer multiple of the number of columns in the data block. 如請求項8所述的裝置,還包括解碼器,被配置為對資料中的受阻錯誤型樣解碼。 The apparatus according to claim 8, further comprising a decoder configured to decode a blocked error pattern in the data. 如請求項11所述的裝置,其中,該解碼器被配置為透過下面的步驟來對受阻錯誤型樣解碼:從除故障的行/列相交部分之外的資料、行同位檢查位元和第一XOR同位檢查位元來產生第三XOR同位檢查位元,所述故障的行/列相交部分包括受阻錯誤型樣;以及基於產生的第三XOR同位檢查位元而透過對受阻錯誤型樣中的位元進行翻轉來校正受阻錯誤型樣。 The apparatus according to claim 11, wherein the decoder is configured to decode the blocked error pattern through the following steps: from data other than the failed row / column intersection portion, row parity check bit, and An XOR parity check bit to generate a third XOR parity check bit, the row / column intersection portion of the failure includes a blocked error pattern; and based on the generated third XOR parity bit, the The bits are flipped to correct the blocked error pattern. 如請求項11所述的裝置,其中,該解碼器被配置為透過下面的步驟來對受阻錯誤型樣解碼:透過將第一XOR同位檢查位元與以下內容進行比較來確定資料區塊中具有受阻錯誤型樣的一行/列相交部分,所述內容包括對資料區塊中的所有資料位元的XOR以及對資料區塊中除最後一行以外的所有行的所有行同位檢查位元的XOR;以及透過對確定的行/列相交部分中的位元進行位元翻轉來確定錯誤位元在受阻錯誤型樣中的位置。 The apparatus according to claim 11, wherein the decoder is configured to decode the blocked error pattern through the following steps: determining that the data block has the following by comparing the first XOR parity check bit with the following: A row / column intersection of a blocked error pattern, which includes XOR of all data bits in the data block and XOR of all parity check bits of all rows in the data block except the last row; And determining the position of the error bit in the blocked error pattern by bit flipping the bits in the determined row / column intersection. 如請求項11所述的裝置,其中,受阻錯誤型樣是(n,m)受阻錯誤型樣或(0,k)受阻錯誤型樣中的至少一種。 The device according to claim 11, wherein the blocked error pattern is at least one of a (n, m) blocked error pattern or a (0, k) blocked error pattern.
TW105104073A 2014-12-08 2016-02-05 Turbo product codes for nand flash TWI674767B (en)

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 (en) 2017-06-16
TWI674767B true TWI674767B (en) 2019-10-11

Family

ID=56095274

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105104073A TWI674767B (en) 2014-12-08 2016-02-05 Turbo product codes for nand flash

Country Status (3)

Country Link
US (1) US9673840B2 (en)
CN (1) CN106856103B (en)
TW (1) TWI674767B (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
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
US10090865B2 (en) 2016-03-23 2018-10-02 SK Hynix Inc. Performance optimization in soft decoding of error correcting codes
US10084485B2 (en) 2016-03-23 2018-09-25 SK Hynix Inc. Soft decoder parameter optimization for product 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 (en) * 2017-07-19 2024-02-22 Infineon Technologies Ag STORAGE ARRANGEMENT
US10998922B2 (en) * 2017-07-28 2021-05-04 Mitsubishi Electric Research Laboratories, Inc. Turbo product polar coding with hard decision cleaning
CN109412610B (en) * 2017-08-16 2022-08-09 深圳市中兴微电子技术有限公司 Encoding method, decoding method, encoding device and decoding device
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 (en) * 2019-04-29 2020-11-06 삼성전자주식회사 Memory controller, memory system having the same and operating method of memory controller
CN112037831B (en) * 2019-06-04 2023-05-23 瑞昱半导体股份有限公司 Processing chip, chip system and operation method thereof
CN113595561A (en) * 2021-07-14 2021-11-02 深圳宏芯宇电子股份有限公司 Hybrid decoding method, storage device controller and storage system
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 (en) * 2023-11-20 2024-03-15 苏州联讯仪器股份有限公司 Parallel RS encoding method, device and system and computer storage medium

Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4595574B2 (en) * 2005-02-07 2010-12-08 ソニー株式会社 Decoding apparatus and method, and program
EP3614567B1 (en) * 2007-09-28 2023-12-20 Panasonic Holdings Corporation Encoding method, encoder, and decoder
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 (en) 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 Encoding device, decoding device and operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
CN106856103B (en) 2020-10-30
US9673840B2 (en) 2017-06-06
US20160164543A1 (en) 2016-06-09
CN106856103A (en) 2017-06-16
TW201722090A (en) 2017-06-16

Similar Documents

Publication Publication Date Title
TWI674767B (en) Turbo product codes for nand flash
US10388400B2 (en) Generalized product codes for flash storage
CN108062258B (en) Cyclically interleaved XOR array for error recovery
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 (en) Stop criteria for layered iterative error correction
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
US10484008B2 (en) Memory system with on-the-fly error detection and termination and operating method thereof
US9912355B2 (en) Distributed concatenated error correction
WO2014164134A2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
KR20160090054A (en) Flash memory system and operating method thereof
US10514980B2 (en) Encoding method and memory storage apparatus using the same
KR20190038964A (en) Error correction code unit and encoding and decoding methods thereof
US20170186500A1 (en) Memory circuit defect correction
CN106158046B (en) Miscorrection avoidance for TURBO product codes
US9954556B2 (en) Scheme to avoid miscorrection for turbo product codes
JP2020046823A (en) Memory system
CN106708649B (en) Coding/decoding method, memorizer memory devices and memorizer control circuit unit
US10922025B2 (en) Nonvolatile memory bad row management
US9906241B2 (en) Apparatus and method for turbo product codes
US10528496B2 (en) Controller and operating method thereof
KR20170067656A (en) Turbo product codes for nand flash
US20220076772A1 (en) Memory system and method of controlling non-volatile memory