IP Library Granted Patent US 10,089,174
Granted Patent B2
US 10,089,174 · App. 15/232,814 · Granted Oct 2, 2018

Flash memory controller and memory device for accessing flash memory module, and associated method

Inventor: Tsung-Chieh Yang (Hsinchu, TW)
Assignee: Silicon Motion Inc.
G06F11/1072G11C7/1006G11C11/5628G11C11/5642G11C29/52G11C16/0483G11C16/10G11C16/26G11C2211/5641
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,089,174
App. No.
15/232,814
Filed
Aug 10, 2016
Granted
Oct 2, 2018
Kind
B2
Art Unit
2112
USPC
714/773
Abstract

A method for accessing a flash memory module includes: sequentially writing Nth-(N+K)th data to a plurality of flash memory chips of the flash memory module, and encoding the Nth-(N+K)th data to generate Nth-(N+K)th ECCs, respectively, where the Nth-(N+K)th ECCs are used to correct errors of the Nth-(N+K)th data, respectively, and N and K are positive integers; and writing the (N+K+1)th data to the plurality of flash memory chips of the flash memory module, and encoding the (N+K+1)th data with at least one of the Nth-(N+K)th ECCs to generate the (N+K+1)th ECC.

Claims (34)

1. A method for accessing a flash memory module, wherein the flash memory module is a 3D flash memory module, and the method comprises:

sequentially writing Nth-(N+K)th data to floating gate transistors of different word line groups of each of a plurality of flash memory chips of the flash memory module, wherein each of the word line groups comprises a plurality of word lines, and encoding the Nth-(N+K)th data to generate Nth-(N+K)th error correction codes (ECCs), respectively, where the Nth-(N+K)th ECCs are used to correct errors of the Nth-(N+K)th data, respectively, and N and K are positive integers;

writing (N+K+1)th data to floating gate transistors of another word line group of each of the plurality of flash memory chips of the flash memory module, and encoding the (N+K+1)th data with at least one of the Nth-(N+K)th ECCs, to generate (N+K+1)th ECC;

writing the (N+K+1)th ECC, or writing the (N+K)th ECC and (N+K+1)th ECC, to a specific block of the flash memory module that is different from block(s) storing the Nth-(N+K+1)th data, and deleting the Nth-(N+K−1)th ECCs from the 3D flash memory module;

reading specific data from the block(s) of the flash memory module, wherein the specific data is not the (N+K)th data or the (N+K+1)th data; and

when an error that is uncorrectable when reading the specific data, reading the (N+K+1)th ECC stored in the specific block, or reading the (N+K)th and the (N+K+1)th ECC stored in the specific block, to perform error correction upon the specific data.

2. The method of claim 1 , wherein K is 1, and the step of generating the (N+K+1)th ECC comprises:

encoding the (N+K)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

3. The method of claim 1 , wherein K is 1, and the step of generating the (N+K+1)th ECC comprises:

encoding the Nth ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

4. The method of claim 1 , wherein K is an integer within 1-M, and the Nth data is written to a first page of a super block of the plurality of flash memory chips, wherein the super block comprises a block of each flash memory chip of the plurality of flash memory chips; and the (N+M+1)th data is written to a last page of the super block of the plurality of flash memory chips.

5. The method of claim 4 , wherein the step of generating the (N+K+1)th ECC comprises

encoding the (N+K)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

6. The method of claim 4 , wherein the step of generating the (N+K+1)th ECC comprises:

encoding the (N+K−1)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

7. The method of claim 1 , wherein the specific block is a single-level cell (SLC) block.

8. The method of claim 1 , wherein K is an integer within 1−M, and the Nth data is written to a first page of a super block of the plurality of flash memory chips, wherein the super block comprise a block of each flash memory chip of the plurality of flash memory chips; and the (N+M+1)th data is written to a last page of the super block of the plurality of flash memory chips.

9. A flash memory controller, arranged to access a flash memory module, wherein the flash memory module is a 3D flash memory module, and the flash memory controller comprises:

a memory, arranged to store a program code;

a microprocessor, arranged to execute the program code, to control access of the flash memory module; and

an encoder;

wherein the microprocessor sequentially writes the Nth-(N+K)th data to floating gate transistors of different word line groups of each of a plurality of flash memory chips in the flash memory module, respectively, wherein each of the word line groups comprises a plurality of word lines, and the encoder encodes the Nth-(N+K)th data to generate Nth-(N+K)th ECCs, respectively, the Nth-(N+K)th ECCs are arranged to perform error correction upon the Nth-(N+K)th data written to the plurality of flash memory chips, and N and K are positive integers; and the microprocessor writes (N+K+1)th data to floating gate transistors of another word line group of each of the plurality of flash memory chips of the flash memory module, and the encoder encodes at least one of the Nth-(N+K)th ECCs together with the (N+K+1)th data, to generate (N+K+1)th ECC; and the microprocessor writes the (N+K+1)th ECC, or writes the (N+K)th ECC and (N+K+1)th ECC, to a specific block of the flash memory module that is different from block(s) storing the Nth-(N+K+1)th data, and deletes the Nth-(N+K−1)th ECCs from the 3D flash memory module; the microprocessor further reads specific data from the block(s) of the flash memory module, wherein the specific data is not the (N+K)th data or the (N+K+1)th data; and when an error that is uncorrectable when reading the specific data, the microprocessor reads the (N+K+1)th ECC stored in the specific block, or reads the (N+K)th and the (N+K+1)th ECC stored in the specific block, to perform error correction upon the specific data.

10. The flash memory controller of claim 9 , wherein K is 1, and the encoder encodes the (N+K)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

11. The flash memory controller of claim 9 , wherein K is 1, and the encoder encodes the Nth ECC together with the (N+K+1)th data to generate (N+K+1)th ECC.

12. The flash memory controller of claim 9 , wherein K is an integer within 1−M, and the Nth data is written to a first page of a super block of the plurality of flash memory chips, wherein the super block comprises a block of each flash memory chip within the plurality of flash memory chips; and the (N+M+1)th data is written to a last page of the super block of the plurality of flash memory chips.

13. The flash memory controller of claim 12 , wherein the encoder encodes the (N+K)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

14. The flash memory controller of claim 12 , wherein the encoder encodes the (N+K−1)th ECC together with the (N+K+1)th data to generate the (N+K+1)th ECC.

15. The flash memory controller of claim 9 , wherein the specific block is a single-level cell (SLC) block.

16. The flash memory controller of claim 9 , wherein K is an integer within 1−M, and the Nth data is written to a first page of a super block of the plurality of flash memory chips, wherein the super block comprises a block of each flash memory chip within the plurality of flash memory chips; and the (N+M+1)th data is written to a last page of the super block of the plurality of flash memory chips.

17. A memory apparatus, comprising:

a flash memory module, wherein the flash memory module is a 3D flash memory module; and

a flash memory controller, arranged to access the flash memory module;

wherein the flash memory controller sequentially writes Nth-(N+K)th data to floating gate transistors of different word line groups of each of a plurality of flash memory chips in the flash memory module, respectively, wherein each of the word line groups comprises a plurality of word lines, and encodes the Nth-(N+K)th data to generate Nth-(N+K)th ECCs, respectively; the Nth-(N+K)th ECCs are arranged to perform error correction upon the Nth-(N+K)th data written to the plurality of flash memory chips, and N and K are positive integers; and the flash memory controller writes (N+K+1)th data to floating gate transistors of another word line group of each of the plurality of flash memory chips in the flash memory module, and encodes at least one of the Nth-(N+K)th ECCs together with the (N+K+1)th data, to generate (N+K+1)th ECC; and the flash memory controller writes the (N+K+1)th ECC, or writes the (N+K)th ECC and (N+K+1)th ECC, to a specific block of the flash memory module that is different from block(s) storing the Nth-(N+K+1)th data, and deletes the Nth-(N+K−1)th ECCs from the 3D flash memory module; the flash memory controller further reads specific data from the block(s) of the flash memory module, wherein the specific data is not the (N+K)th data or the (N+K+1)th data; and when an error that is uncorrectable when reading the specific data, the flash memory controller reads the (N+K+1)th ECC stored in the specific block, or reads the (N+K)th and the (N+K+1)th ECC stored in the specific block, to perform error correction upon the specific data.

18. The memory apparatus of claim 17 , wherein the flash memory controller writes the Nth-(N+K+1)th data to a plurality of blocks of the plurality of flash memory chips, and the plurality of blocks are multiple-level cell (MLC) blocks, triple-level cell (TLC) blocks, or quad-level cell (QLC) blocks; and the flash memory controller writes the Nth-(N+K+1)th ECCs to at least one specific block of the flash memory module, wherein the specific block is an SLC block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2016
From: YANG, TSUNG-CHIEH
To: SILICON MOTION INC.
Reel/Frame 040762/0234 →
Priority Claims (1)
TW 104125905 A · Aug 10, 2015 · national
Continuity (1)
Related Publication 20170046225A1 · Feb 16, 2017
Cited By (47)
US 12,197,390 US 12,204,413 US 12,204,768 US 12,204,788 US 12,212,624 US 12,216,903 US 12,229,402 US 12,229,437 US 12,235,743 US 12,236,117 US 12,242,425 US 12,253,922 US 12,253,941 US 12,271,264 US 12,271,359 US 12,277,106 US 12,282,799 US 12,293,111 US 12,314,131 US 12,314,163 US 12,314,170 US 12,314,183 US 12,340,107 US 12,341,848 US 12,366,972 US 12,373,289 US 12,373,340 US 12,379,854 US 12,393,340 US 12,393,353 US 12,430,053 US 12,430,059 US 12,439,544 US 12,475,041 US 12,481,442 US 12,487,920 US 12,499,043 US 12,511,239 US 12,524,309 US 12,547,317 US 12,561,093 US 12,572,421 US 12,619,469 US 12,682,949 US 12,687,973 US 12,699,512 US 12,717,709