Memory controller for a non-volatile memory, memory system and method

US10230401B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10230401-B2
Application numberUS-201715456994-A
CountryUS
Kind codeB2
Filing dateMar 13, 2017
Priority dateMar 10, 2015
Publication dateMar 12, 2019
Grant dateMar 12, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

According to an embodiment, a memory controller for controlling a nonvolatile memory in which multi-dimensional error correction code having two or more component codes is stored, the memory controller configured to read out the multi-dimensional error correction code; acquire a received word of the multi-dimensional error correction code; hold an intermediate decoded word of the multi-dimensional error correction code; perform a first decoding process which is decoding a first component code included in the intermediate decoded word; when a first error symbol included in the first component code is detected by the first decoding process, perform a first rewriting process which is rewriting a value corresponding to the first error symbol in the intermediate decoded word, and record first recurrence information for reproducing a value of the first error symbol before rewriting; perform a second decoding process which is decoding a second component code included in the intermediate decoded word, of which dimension is different from that of the first component code; determine whether the first rewriting process is erroneous correction based on a result of the second decoding process; and when it is determined that the first rewriting process is erroneous correction, perform a counter process which is undoing the first rewriting process based on the recorded first recurrence information.

First claim

Opening claim text (preview).

What is claimed is: 1. A memory controller that controls a nonvolatile memory in which a multi-dimensional error correction code having two or more component codes is stored, the memory controller comprising: a memory interface that reads out the multi-dimensional error correction code; a receiving unit configured to acquire a received word of the multi-dimensional error correction code; an intermediate decoded word memory that holds an intermediate decoded word of the multi-dimensional error correction code; a decoder configured to perform a decoding process and detect information relating to an error symbol; a recurrence information holding unit configured to hold recurrence information for reproducing the information relating to the error symbol detected by the decoding process; and a control unit configured to instruct the decoder to perform a first decoding process of a first component code included in the intermediate decoded word, when a first error symbol included in the first component code is detected by the first decoding process, perform a first rewriting process which is rewriting a value corresponding to the first error symbol in the intermediate decoded word, and record first recurrence information for reproducing a value of the first error symbol before rewriting in the recurrence information holding unit, instruct the decoder to perform a second decoding process of a second component code included in the intermediate decoded word, of which a dimension is different from that of the first component code, determine whether the first rewriting process is an erroneous correction based on a result of the second decoding process, and when it is determined that the first rewriting process is an erroneous correction, perform a counter process which is undoing the first rewriting process based on the first recurrence information recorded in the recurrence information holding unit. 2. The memory controller according to claim 1 , wherein the error correction code includes a plurality of first component codes and a plurality of second component codes, each of the first component codes is generated based on first data including a plurality of pieces of second data, each of the second component codes is generated based on third data including a plurality of pieces of the second data each of which is singly selected from each of the plurality of pieces of the first data included in fourth data which includes a plurality of pieces of the first data, and second data included in one third data does not overlap with second data included in another third data. 3. The memory controller according to claim 1 , wherein the second decoding process is performed after the first decoding process. 4. The memory controller according to claim 1 , wherein the decoding process is a bounded distance decoding process. 5. The memory controller according to claim 1 , wherein the first recurrence information is input data to the decoder. 6. The memory controller according to claim 5 , wherein the input data to the decoder is a syndrome value of the first component code. 7. The memory controller according to claim 1 , wherein the recurrence information is information relating to the error symbol detected by the decoding process. 8. The memory controller according to claim 1 , wherein there are one or more of the error symbols detected as being present in the first component code by the first decoding process, there are one or more of the second component codes that protect respectively the one or more error symbols, and the control unit decides not to perform the counter process, when at least one of decision criteria is satisfied, of a first decision criterion such that number of the first error symbols detected for the first component code is equal to or greater than a first predetermined number, and a second decision criterion such that number of second component codes that have not succeeded in the decoding process, of the one or more second component codes that protect respectively the one or more error symbols, is equal to or greater than a second predetermined number. 9. The memory controller according to claim 1 , wherein the controller decides not to perform the counter process, when number of iterations of the decoding process by the decoder is equal to or greater than a predetermined number. 10. The memory controller according to claim 1 , wherein at least one of the component codes forming the multi-dimensional error correction code is either a BCH code or an RS (Reed-Solomon) code. 11. The memory controller according to claim 1 , wherein the intermediate decoded word memory holds a symbol value of the respective component codes forming the multi-dimensional error correction code, as the intermediate decoded word. 12. The memory controller according to claim 1 , wherein the intermediate decoded word memory holds a difference between the received word of the multi-dimensional error correction code and the intermediate decoded word, instead of the intermediate decoded word. 13. A memory system comprising: the memory controller according to claim 1 ; and a nonvolatile memory that stores the multi-dimensional error correction code. 14. A method of controlling a nonvolatile memory in which a multi-dimensional error correction code having two or more component codes is stored, the method comprising: reading out the multi-dimensional error correction code; acquiring a received word of the multi-dimensional error correction code; holding an intermediate decoded word of the multi-dimensional error correction code; performing a first decoding process which is decoding a first component code included in the intermediate decoded word; when one or more first error symbols included in the first component code are detected by the first decoding process, performing a first rewriting process which is rewriting one or more values corresponding to the one or more first error symbols in the intermediate decoded word, and recording first recurrence information for reproducing one or more values of the one or more first error symbols before rewriting; performing a second decoding process which is decoding a second component code included in the intermediate decoded word, of which a dimension is different from that of the first component code; determining whether the first rewriting process is an erroneous correction based on a result of the second decoding process; and when it is determined that the first rewriting process is an erroneous correction, performing a counter process which is undoing the first rewriting process based on the recorded first recurrence information. 15. The method according to claim 14 , wherein the error correction code includes a plurality of first component codes and a plurality of second component codes, each of the first component codes is generated based on first data including a plurality of pieces of second data, each of the second component codes is generated based on third data including a plurality of pieces of the second data each of which is singly selected from each of the plurality of pieces of the first data included in fourth data which includes a plurality of pieces of the first data, and second data included in one third data does not overlap with second data included in another third data. 16. The method according to claim 14 , wherein at least one of the first and second decoding processes includes a bounded distance decoding process. 17. The method according to claim 14 , wherein the first recurrence information is

Assignees

Inventors

Classifications

  • Online error correction · CPC title

  • Product codes · CPC title

  • using arrangements adapted for a specific error detection or correction feature · CPC title

  • Decoding strategies · CPC title

  • Reduction of hardware complexity or efficient processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10230401B2 cover?
According to an embodiment, a memory controller for controlling a nonvolatile memory in which multi-dimensional error correction code having two or more component codes is stored, the memory controller configured to read out the multi-dimensional error correction code; acquire a received word of the multi-dimensional error correction code; hold an intermediate decoded word of the multi-dimensio…
Who is the assignee on this patent?
Toshiba Memory Corp
What technology area does this patent fall under?
Primary CPC classification H03M13/2909. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 12 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).