IP Library Granted Patent US 10,489,243
Granted Patent B2
US 10,489,243 · App. 15/705,877 · Granted Nov 26, 2019

Memory controller and memory system

Inventors: Kazuki Inoue (Kawasaki Kanagawa, JP); Sho Kodama (Kawasaki Kanagawa, JP); Keiri Nakanishi (Kawasaki Kanagawa, JP); Kohei Oikawa (Tokyo, JP); Youhei Fukazawa (Kawasaki Kanagawa, JP)
Assignee: Toshiba Memory Corporation
G06F11/1068G06F3/064G06F3/0619G06F3/0655G06F3/0679G06F11/1072G06F12/0246G06F12/10G06F2212/1032G06F2212/657G06F2212/7201G11C29/52
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,243
App. No.
15/705,877
Granted
Nov 26, 2019
Kind
B2
Abstract

According to one embodiment, for first data, which is read from a nonvolatile memory, for which a first data translation is performed, a second data translation that is a reverse translation of the first data translation is performed. Next, for the first data for which the second data translation is performed, the first data translation is performed. In addition, the read first data is compared with the first data for which the first data translation is performed, and check information is generated based on a result of the comparison.

Claims (60)

1. A memory controller controlling a nonvolatile memory, the memory controller comprising:

a read unit that reads first data from the nonvolatile memory, the first data being data for which a first data translation is performed, the first data translation being a process that is different from an error correction coding process, the first data translation being a process that is different from an error correction decoding process;

a second data translation unit that performs a second data translation for the read first data, the second data translation being a reverse translation of the first data translation;

a first data translation unit that performs the first data translation for the first data for which the second data translation is performed; and

a check unit that compares the read first data with the first data for which the first data translation is performed by the first data translation unit and generates check information based on a result of the comparison.

2. The memory controller according to claim 1 , wherein the first data is data for which the error correction coding process and the first data translation are performed, and the memory controller further comprises a decode unit that performs the error correction decoding process, by referring to the check information, for the first data for which the second data translation is performed.

3. The memory controller according to claim 2 , wherein, in a case where the decoding process performed by the decode unit fails, the first data translation unit performs the first data translation, and the check unit performs the comparison and the generation of the check information.

4. The memory controller according to claim 1 ,

wherein the first data translation includes execution of a certain logical operation for the first data and addition of identification information representing a content of the execution of the logical operation to the first data, and

wherein the second data translation includes performing a reverse translation of the certain logical operation for the read first data based on the identification information.

5. The memory controller according to claim 2 , further comprising:

a data correcting unit that estimates a bit error based on device characteristics of a first area of the nonvolatile memory and corrects the read first data, the first area being an area in which the read first data is stored,

wherein the second data translation unit acquires second data by performing the second data translation for the corrected first data, and

wherein the decode unit performs the error correction decoding process for the second data.

6. The memory controller according to claim 5 ,

wherein, in a case where the decoding process performed by the decode unit fails, the data correcting unit performs the correction process,

wherein the first data translation unit acquires third data by performing the first data translation for the second data,

wherein the check unit acquires fourth data by performing a reverse process of the correction performed by the data correcting unit for the third data, compares the fourth data with the read first data, and, in a case where a result of the comparison represents matching, outputs the corrected first data to the decode unit, and

wherein the decode unit performs the error correction decoding process for the corrected first data.

7. The memory controller according to claim 4 , wherein the logical operation is executed for each first management unit, the identification information is added in correspondence with data of the first management unit, and the first management unit has a certain length acquired by dividing the physical sector into a plurality of parts.

8. The memory controller according to claim 1 , wherein the check information includes a number of bit errors determined to be no matching through the comparison, positions of the bit errors, or a likelihood of each bit of the read first data.

9. The memory controller according to claim 1 ,

wherein the first data is data for which a first error correction coding process, the first data translation, and a second error correction coding process are performed in order of the first error correction coding process, the first data translation, and the second error correction coding process,

the memory controller further comprises a second decode unit that performs a second error correction decoding process for the read first data, the second error correction decoding process being a decoding process corresponding to the second error correction coding process,

wherein the second data translation unit performs the second data translation for the first data for which the second error correction decoding process is performed, and

the memory controller further comprising a first decode unit that performs a first error correction decoding process for the first data for which the second data translation is performed by referring to the check information, the first error correction decoding process being a decoding process corresponding to the first error correction coding process.

10. The memory controller according to claim 2 , wherein the first data is data for which a compression process and the first data translation are performed, and the memory controller further comprises a decompression unit that decompresses the first data for which the error correction decoding process is performed.

11. A memory system comprising:

a nonvolatile memory; and

a memory controller including:

a read unit that reads first data from the nonvolatile memory, the first data being data for which a first data translation is performed, the first data translation being a process that is different from an error correction coding process, the first data translation being a process that is different from an error correction decoding process;

a second data translation unit that performs a second data translation for the read first data, the second data translation being a reverse translation of the first data translation;

a first data translation unit that performs the first data translation for the first data for which the second data translation is performed; and

a check unit that compares the read first data with the first data for which the first data translation is performed by the first data translation unit and generates check information based on a result of the comparison.

12. The memory system according to claim 11 ,

wherein the first data is data for which the error correction coding process and the first data translation are performed, and

wherein the memory controller further includes a decode unit that performs the error correction decoding process for the first data for which the second data translation is performed by referring to the check information.

13. The memory system according to claim 12 , wherein, in a case where the decoding process performed by the decode unit fails, the first data translation unit performs the first data translation, and the check unit performs the comparison and the generation of the check information.

14. The memory system according to claim 11 ,

wherein the first data translation includes execution of a certain logical operation for the first data and addition of identification information representing a content of the execution of the logical operation to the first data, and

wherein the second data translation includes performing a reverse translation of the certain logical operation for the read first data based on the identification information.

15. The memory system according to claim 12 ,

wherein the memory controller further includes a data correcting unit that estimates a bit error based on device characteristics of a first area of the nonvolatile memory and corrects the read first data, the first area being an area in which the read first data is stored,

wherein the second data translation unit acquires second data by performing the second data translation for the corrected first data, and

wherein the decode unit performs the error correction decoding process for the second data.

16. The memory system according to claim 15 ,

wherein, in a case where the decoding process performed by the decode unit fails, the data correcting unit performs the correction process,

wherein the first data translation unit acquires third data by performing the first data translation for the second data,

wherein the check unit acquires fourth data by performing a reverse process of the correction performed by the data correcting unit for the third data, compares the fourth data with the read first data, and, in a case where a result of the comparison represents matching, outputs the corrected first data to the decode unit, and

wherein the decode unit performs the error correction decoding process for the corrected first data.

17. The memory system according to claim 14 , wherein the logical operation is executed for each first management unit, the identification information is added in correspondence with data of the first management unit, and the first management unit has a certain length acquired by dividing the physical sector into a plurality of parts.

18. The memory system according to claim 11 , wherein the check information includes a number of bit errors determined to be no matching through the comparison, positions of the bit errors, or a likelihood of each bit of the read first data.

19. The memory system according to claim 11 ,

wherein the first data is data for which a first error correction coding process, the first data translation, and a second error correction coding process are performed in order of the first error correction coding process, the first data translation, and the second error correction coding process,

the memory controller further comprising a second decode unit that performs a second error correction decoding process for the read first data, the second error correction decoding process being a decoding process corresponding to the second error correction coding process,

wherein the second data translation unit performs the second data translation for the first data for which the second error correction decoding process is performed,

the memory controller further comprising a first decode unit that performs a first error correction decoding process for the first data for which the second data translation is performed by referring to the check information, the first error correction decoding process being a decoding process corresponding to the first error correction coding process.

20. The memory system according to claim 12 ,

wherein the first data is data for which a compression process and the first data translation are performed, and

wherein the memory controller further includes a decompression unit that decompresses the first data for which the error correction decoding process is performed.

Assignments (4)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2017
From: INOUE, KAZUKI; KODAMA, SHO; NAKANISHI, KEIRI; OIKAWA, KOHEI; FUKAZAWA, YOUHEI
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043863/0687 →
Continuity (2)
Provisional Application 62470417 · Mar 13, 2017
Related Publication 20180260274A1 · Sep 13, 2018