IP Library Granted Patent US 10,599,346
Granted Patent B2
US 10,599,346 · App. 16/186,836 · Granted Mar 24, 2020

Deterministic read disturb counter-based data checking for NAND flash

Inventor: Neil Buxton (Berkshire, GB)
Assignee: Toshiba Memory Corporation
G06F3/0619G06F3/0655G06F3/0679G06F11/0727G06F11/0754G06F11/0793G11C16/3431G06F2201/81G11C16/0483
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,599,346
App. No.
16/186,836
Granted
Mar 24, 2020
Kind
B2
Abstract

A data storage device comprises a non-volatile semiconductor memory device and a solid-state drive controller communicatively coupled to the non-volatile semiconductor memory device. The non-volatile semiconductor memory device can store data in memory blocks. The solid-state drive controller can, periodically, retrieve counts from a counter table, select a predetermined number of memory blocks corresponding to the lowest counts, and determine an integrity of the stored data in each of the predetermined number of memory blocks. Each count can correspond to a difference between a count limit and a number of read operations performed on one of the memory blocks.

Claims (37)

1. A data storage device comprising:

a non-volatile semiconductor memory device configured to store data in a plurality of memory blocks; and

a controller communicatively coupled to the non-volatile semiconductor memory device, configured to:

determine a number of read operations performed on each of the plurality of memory blocks;

identify a predetermined number of memory blocks of the plurality of memory blocks, each of the predetermined number of memory blocks having the number of read operations greater than a predetermined value; and

determine, for each of the predetermined number of memory blocks, an integrity of the stored data in the memory block, wherein a number of memory blocks of the plurality of memory blocks having the number of read operations greater than the predetermined value is greater than the predetermined number.

2. The data storage device of claim 1 , wherein the controller is configured to determine the integrity of the stored data in the memory block periodically.

3. The data storage device of claim 2 , wherein the period is dynamically adjusted based on a rate of arrival of read memory requests at the data storage device.

4. The data storage device of claim 1 , wherein the controller is further configured to, in response to determining that the integrity of the stored data in the memory block is above a threshold,

read the stored data in the memory block;

error correct the stored data in the memory block; and

copy the stored data to a secondary memory block.

5. The data storage device of claim 1 , wherein the controller is configured to, in response to determining that the integrity of the stored data in the memory block is below a threshold, set the predetermined value to a new limit.

6. The data storage device of claim 4 , wherein the controller is further configured to determine an average number of memory blocks storing data corresponding to a plurality of integrities above the threshold.

7. The data storage device of claim 6 , wherein a number of the identified memory blocks is greater than the average number of memory blocks.

8. The data storage device of claim 1 , wherein the controller is further configured to dynamically adjust the predetermined number based on a total hours of operation of the data storage device.

9. The data storage device of claim 1 , wherein the controller is further configured to dynamically adjust the predetermined number based on a rate of arrival of read memory requests at the data storage device.

10. The data storage device of claim 1 , wherein determining the integrity of the stored data in the memory block comprises determining an error level of the stored data in at least one memory page of the memory block.

11. The data storage device of claim 1 , wherein the predetermined value is greater than zero.

12. A method of managing a plurality of memory blocks in a data storage device, the method comprising:

storing data in a plurality of memory blocks;

determining a number of read operations performed on each of the plurality of memory blocks;

identifying a predetermined number of memory blocks of the plurality of memory blocks, each of the predetermined number of memory blocks having the number of read operations greater than a predetermined value; and

determining, for each of the predetermined number of memory blocks, an integrity of the stored data in the memory block, wherein a number of memory blocks of the plurality of memory blocks having the number of read operations greater than the predetermined value is greater than the predetermined number.

13. The method of claim 12 , further comprising determining the integrity of the stored data in the memory block periodically.

14. The method of claim 13 , wherein the period is dynamically adjusted based on a rate of arrival of read memory requests at the data storage device.

15. The method of claim 10 , further comprising, in response to determining that the integrity of the stored data in the memory block is above a threshold,

reading the stored data in the memory block;

error correcting the stored data in the memory block; and

transferring the stored data to a secondary memory block.

16. The method of claim 10 , further comprising, in response to determining that the integrity of the stored data in the memory block is below the threshold, setting the predetermined value to a new limit.

17. The method of claim 15 , further comprising, determining an average number of memory blocks storing data corresponding to a plurality of integrities above the threshold.

18. The method of claim 17 , wherein a number of the identified memory blocks is greater than the average number of memory blocks.

19. The method of claim 10 , further comprising, dynamically adjusting the predetermined number based on a total hours of operation of the data storage device.

20. The method of claim 10 , further comprising, dynamically adjusting the predetermined number based on a rate of arrival of read memory requests at the data storage device.

21. The method of claim 10 , wherein determining the integrity of the stored data in the memory block comprises determining an error level of the stored data in at least one memory page of the memory block.

22. The method of claim 10 , wherein the predetermined value is greater than zero.

Assignments (3)
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 →
Continuity (2)
Continuation 15702930 · Sep 13, 2017
Related Publication 20190079684A1 · Mar 14, 2019