IP Library Granted Patent US 9,092,361
Granted Patent B2
US 9,092,361 · App. 11/995,600 · Granted Jul 28, 2015

Nonvolatile storage device, memory controller, and defective region detection method

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 9,092,361
App. No.
11/995,600
Granted
Jul 28, 2015
Kind
B2
Abstract

It is possible to accurately detect a physical block which has caused a fixture defect in a flash memory so as to limit the use of the physical block. By recording a history of generation of a physical block error and a history of physical erasing in an ECC error record, it is judged whether the error which has occurred is accidental or caused by a fixture defect. When no error is caused in the data written by physical erasing after a first read error occurrence, the first error is accidental and if another error is caused, the error is judged to be caused by a fixture defect. By using such an ECC error record, it is possible to accurately judge whether the error is accidental or caused by a fixture defect. By eliminating use of the physical block judged to have a fixture defect, it is possible to reduce read errors.

Claims (70)

1. A nonvolatile storage device, comprising:

a nonvolatile memory including physical blocks, each of the physical blocks including physical pages, and

a memory controller including:

a calculation processor that controls the memory controller;

an error corrector that detects a current error of current data read from one of the physical blocks of the nonvolatile memory; and

an address table that manages data stored in the nonvolatile memory, the address table including a bad block table for recording information that indicates when the one of the physical blocks is a bad block, wherein

the calculation processor determines, when the current error is detected by the error corrector in the one of the physical blocks, whether the current error recurred in the one of the physical blocks continuously with a previous error of previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks, and updates the bad block table when the current error recurred continuously with the previous error after erasing the previous data.

2. The nonvolatile storage device according to claim 1 , wherein the error corrector is configured to correct the current error when the current error is correctable, and

the calculation processor determines whether the current error recurred in the one of the physical blocks continuously with the previous error after erasing the previous data stored in the one of the physical blocks only when error correction of the current error by the error corrector is impossible.

3. The nonvolatile storage device according to claim 1 , wherein the error corrector is configured to detect a plurality of errors in each of the physical blocks, and the address table in the memory controller includes:

an error table having a plurality of error records that indicate the plurality of errors detected in each of the physical blocks by the error corrector, wherein

each of the error records of the error table include:

error block information that indicates an address of a corresponding one of the physical blocks in which one of the plurality of errors is detected by the error corrector;

error occurrence information that indicates the one of the plurality of errors is detected in the corresponding one of the physical blocks;

error block erase information that indicates first data in the corresponding one of the physical blocks is erased and second data is written after the one of the plurality of errors is detected in the corresponding one of the physical blocks; and

error recurrence information that indicates a second of the plurality of errors is detected in the corresponding one of the physical blocks continuously with the one of the plurality of errors detected in the corresponding one of the physical blocks after the first data in the corresponding one of the physical blocks is erased and the second data is written, wherein

the calculation processor refers to the error record, and determines whether the current error recurred in the one of the physical blocks continuously with the previous error of the previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks based on the error block information and the error recurrence information of the one of the physical blocks.

4. The nonvolatile storage device according to claim 3 , wherein the error occurrence information indicates a number of times the one of the plurality of errors is detected in the corresponding one of the physical blocks,

the error block erase information indicates a number of physical erases of the first data in the corresponding one of the physical blocks, and

the calculation processor refers to the error record for the one of the physical blocks, compares the number of times the one of the plurality of errors is detected and the number of physical erases, and further determines that the current error recurred in the one of the physical blocks when the number of physical erases is at least a predetermined number and the number of times the one of the plurality of errors is detected is greater than the number of physical erases.

5. The nonvolatile storage device according to claim 3 , wherein each of the error records of the error table further include:

error page information that indicates an address of one of the physical pages in which the plurality of errors is detected by the error corrector.

6. The nonvolatile storage device according to claim 3 , wherein the calculation processor updates the error records of the error table regardless of whether the plurality of errors are correctable by the error corrector when the error corrector detects the plurality of errors.

7. The nonvolatile storage device according to claim 1 , wherein the calculation processor determines, when the error is detected by the error corrector, that the error recurred in the physical block continuously with the previous error of previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks and writing the current data in the one of the physical blocks.

8. The nonvolatile storage device according to claim 1 , wherein the information recorded in the bad block table indicates whether the one of the physical blocks is a bad block.

9. The nonvolatile storage device according to claim 8 , wherein the bad block table includes the information for each of the physical blocks of the nonvolatile memory.

10. A memory controller for controlling reading and writing of data in a nonvolatile memory including physical blocks, each of the physical blocks including physical pages, the memory controller comprising:

a calculation processor that controls the memory controller;

an error corrector that detects a current error of current data read from one of the physical blocks of the nonvolatile memory; and

an address table that manages data stored in the nonvolatile memory, the address table including a bad block table for recording information that indicates when the one of the physical blocks is a bad block, wherein

the calculation processor determines, when the current error is detected by the error corrector in the one of the physical blocks, whether the current error recurred in the one of the physical blocks continuously with a previous error of previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks, and updates the bad block table when the current error recurred continuously with the previous error after erasing the previous data.

11. The memory controller according to claim 10 , wherein the error corrector is configured to correct the current error when the current error is correctable, and

the calculation processor determines whether the current error recurred in the one of the physical blocks continuously with the previous error after erasing the previous data stored in the one of the physical blocks only when error correction of the current error by the error corrector is impossible.

12. The memory controller according to claim 10 , wherein the error corrector is configured to detect a plurality of errors in each of the physical blocks, and the address table in the memory controller includes:

an error table having a plurality of error records that indicate the plurality of errors detected in each of the physical blocks by the error corrector, wherein

each of the error records of the error table include:

error block information that indicates an address of a corresponding one of the physical blocks in which one of the plurality of errors is detected by the error corrector;

error occurrence information that indicates the one of the plurality of errors is detected in the corresponding one of the physical blocks;

error block erase information that indicates first data in the corresponding one of the physical blocks is erased and second data is written after the one of the plurality of errors is detected in the corresponding one of the physical blocks; and

error recurrence information that indicates a second of the plurality of errors is detected in the corresponding one of the physical blocks continuously with the one of the plurality of errors detected in the corresponding one of the physical blocks after the first data in the corresponding one of the physical blocks is erased and the second data is written, wherein

the calculation processor refers to the error record, and determines whether the current error recurred in the one of the physical blocks continuously with the previous error of the previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks based on the error block information and the error recurrence information of the one of the physical blocks.

13. The memory controller according to claim 12 , wherein the error occurrence information indicates a number of times the one of the plurality of errors is detected in the corresponding one of the physical blocks,

the error block erase information indicates a number of physical erases of the first data in the corresponding one of the physical blocks, and

the calculation processor refers to the error record for the one of the physical blocks, compares the number of times the one of the plurality of errors is detected and the number of physical erases, and further determines that the current error recurred in the one of the physical blocks when the number of physical erases is at least a predetermined number and the number of times the one of the plurality of errors is detected is greater than the number of physical erases.

14. The memory controller according to claim 12 , wherein each of the error records of the error table further include:

error page information that indicates an address of one of the physical pages in which the plurality of errors is detected by the error corrector.

15. The memory controller according to claim 12 , wherein the calculation processor updates the error records of the error table regardless of whether the plurality of errors are correctable by the error corrector when the error corrector detects the plurality of errors.

16. The memory controller according to claim 10 , wherein the calculation processor determines, when the error is detected by the error corrector, that the error recurred in the physical block continuously with the previous error of previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks and writing the current data in the one of the physical blocks.

17. The memory controller according to claim 10 , wherein the information recorded in the bad block table indicates whether the one of the physical blocks is a bad block.

18. The memory controller according to claim 17 , wherein the bad block table includes the information for each of the physical blocks of the nonvolatile memory.

19. A data processing method of a memory controller for controlling reading and writing of data in a nonvolatile memory including physical blocks, each of the physical blocks including physical pages, the data processing method comprising:

detecting a current error of current data read from one of the physical blocks of the nonvolatile memory;

determining, in response to detecting the current error of the current data, whether the current error recurred in the one of the physical blocks continuously with a previous error of previous data read from the one of the physical blocks after erasing the previous data stored in the one of the physical blocks; and

updating a bad block table that includes recording information that indicates when the one of the physical blocks is a bad block in response to determining the current error recurred continuously with the previous error after erasing the previous data.

20. The data processing method according to claim 19 , further comprising:

determining whether the current error is uncorrectable; and

determining, in response to detecting the current error of the current data, whether the current error recurred in the one of the physical blocks continuously with the previous error after erasing the previous data stored in the one of the physical blocks only in response to determining that the current error is uncorrectable.

21. The data processing method according to claim 19 , wherein the method further comprises:

detecting the previous error of the previous data read from the one of the physical blocks of the nonvolatile memory;

recording error block information in an error record of an error table that indicates an address of the one of the physical blocks in response to detecting the previous error;

recording error occurrence information in the error record of the error table that indicates the previous error is detected in the one of the physical blocks in response to detecting the previous error;

erasing the previous data in the one of the physical blocks in response to detecting the previous error;

writing the current data in the one of the physical blocks;

recording error block erase information in the error record of the error table that indicates the previous data in the one of the physical blocks is erased and the current data is written after detecting the previous error, erasing the previous data, and writing the current data;

recording error recurrence information in the error record of the error table that indicates the current error is detected in the one of the physical blocks in response to detecting the current error after detecting the previous error, erasing the previous data, and writing the current data; and

determining whether the current error recurred continuously with the previous error after erasing the previous data based on the error recurrence information after detecting the previous error, erasing the previous data, writing the current data, and detecting the current error.

22. The data processing method according to claim 19 , further comprising:

determining whether the current error recurred continuously with the previous error of previous data read from the one of the physical blocks after erasing the previous data in the one of the physical blocks and writing the current data in the one of the physical blocks.

23. The data processing method according to claim 19 , wherein the information recorded in the bad block table indicates whether the one of the physical blocks is a bad block.

24. The data processing method according to claim 23 , wherein the bad block table includes the information for each of the physical blocks of the nonvolatile memory.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY FILED APPLICATION NUMBERS 13/384239, 13/498734, 14/116681 AND 14/301144 PREVIOUSLY RECORDED ON REEL 034194 FRAME 0143. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 24, 2020
From: PANASONIC CORPORATION
To: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.
Reel/Frame 056788/0362 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: PANASONIC CORPORATION
To: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.
Reel/Frame 034194/0143 →