IP Library Granted Patent US 9,785,499
Granted Patent B2
US 9,785,499 · App. 14/192,110 · Granted Oct 10, 2017

Hot-read data aggregation and code selection

Inventors: Yu Cai (San Jose, CA); Yunxiang Wu (Cupertino, CA); Erich F. Haratsch (San Jose, CA)
Assignee: SEAGATE TECHNOLOGY LLC
G06F11/1048G06F11/1016G06F3/0616
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,785,499
App. No.
14/192,110
Granted
Oct 10, 2017
Kind
B2
Abstract

An apparatus comprising a memory and a controller. The memory is configured to process a plurality of read/write operations. The memory comprises a plurality of memory modules. Each memory module has a size less than a total size of the memory. The controller is configured to (i) classify data from multiple blocks of the memory as hot-read data or non hot-read data, (ii) aggregate the hot-read data to dedicated blocks, and (iii) select a type of error correcting code to protect the hot-read data in the dedicated blocks. The aggregation reduces an impact on endurance of the memory.

Claims (44)

1. An apparatus comprising:

a memory configured to store data, the memory comprising a plurality of memory modules each having a size less than a total size of the memory; and

a controller configured to process a plurality of read/write operations, classify data pages from multiple blocks of the memory as hot-read data or non hot-read data, select a strong type of error correcting code for the hot-read data, reducing a frequency of data recycling of the hot-read data based upon an error correcting capability of the strong type of error correcting code selected, and aggregate the hot-read data by

determining whether the apparatus is in a garbage collection state, a data recycling state, or an idle state, and if so,

selecting the hot-read data pages from multiple memory blocks, and

mapping the selected hot-read data pages from the multiple memory blocks to dedicated hot-read data blocks using the strong type of error correcting code,

wherein the aggregation of the hot-read data pages and use of the strong type of error correcting code reduces read latency of the hot-read data pages, reduces the frequency of data recycling of the hot-read data pages, and reduces an impact of read disturbs on endurance of the memory.

2. The apparatus according to claim 1 , wherein the aggregation of the hot-read data using the strong type of error correcting code reduces read disturb amplification.

3. The apparatus according to claim 1 , wherein the controller selects one of a plurality of types of error correcting codes.

4. The apparatus according to claim 3 , wherein the strong type of error correcting code has larger error correction capability, needs fewer iterations to decode the data, has less decoding time, tolerates high raw bit error rates, and decodes data that suffers from read disturbs.

5. The apparatus according to claim 1 , wherein the classification of the data is based on a history of access records.

6. The apparatus according to claim 5 , wherein:

in a first mode, the history of access records are tracked by at least one of an application, an operating system, and a file system; and

in a second mode, the history of access records are tracked by the controller.

7. The apparatus according to claim 1 , wherein the aggregation is implemented when the controller is implementing the garbage collection operation.

8. The apparatus according to claim 1 , wherein the aggregation is implemented when the controller is implementing the data recycling state.

9. The apparatus according to claim 1 , wherein the aggregation is implemented when the controller is implementing the idle state.

10. The apparatus according to claim 1 , wherein the classification of the hot-read data is implemented by:

tracking a number of read operations on the memory during data reading operations; and

determining if the number of read operations is above a threshold value.

11. The apparatus according to claim 10 , wherein the data is classified as hot-read data when the number of read operations is above the threshold value and classified as non-hot data when the number of read operations is not above the threshold value.

12. A method for controlling a solid state drive, comprising the steps of:

configuring a controller to process a plurality of read/write operations using memory comprising a plurality of memory modules each having a size less than a total size of the memory;

classifying data pages from multiple blocks of the memory as hot-read data or non hot-read data;

selecting a strong type of error correcting code for the hot-read data, reducing a frequency of data recycling of the hot-read data based upon an error correcting capability of the strong type of error correcting code selected; and

aggregating the hot-read data by

determining whether the solid state drive is in a garbage collection state, a data recycling state, or an idle state, and if so,

selecting the hot-read data pages from multiple memory blocks, and

mapping the hot-read data pages from the multiple blocks to dedicated hot-read data blocks using the strong type of error correcting code,

wherein aggregating the hot-read data pages in the dedicated hot-read data blocks and using the strong type of error correcting code reduces read latency of the hot-read data pages, reduces the frequency of data recycling of the hot-read data pages, and reduces an impact of read disturb on endurance of the memory.

13. The apparatus according to claim 1 , wherein the hot-read data is recycled when a number of errors in the hot-read data exceeds a number of errors the strong type of error correcting code is capable of correcting.

14. An apparatus comprising:

an interface configured to process a plurality of read/write operations to/from a memory, the memory comprising a plurality of memory modules each having a size less than a total size of the memory; and

a control circuit configured to classify data pages from multiple blocks of the memory as hot-read data or non hot-read data, select a strong type of error correcting code for the hot-read data, reducing a frequency of data recycling of the hot-read data based upon an error correcting capability of the strong type of error correcting code selected, and aggregate the hot-read data by

determining whether the apparatus is in a garbage collection state, a data recycling state, or an idle state, and if so,

selecting the hot-read data pages from multiple memory blocks, and

mapping the selected hot-read data pages to dedicated hot-read data blocks using the strong type of error correcting code,

wherein the aggregation of the hot-read data pages and use of the strong type of error correcting code reduces read latency of the hot-read data pages, reduces the frequency of data recycling of the hot-read data pages, and reduces an impact of read disturb on endurance of the memory.

15. The apparatus according to claim 1 , wherein the strong type of error correcting code used for the dedicated blocks has more parity bits than an error correcting code selected for the non hot-read data.

16. The apparatus according to claim 1 , wherein an impact on the endurance of the memory due to data recycling in response to accumulated read disturbs and read disturb amplification is reduced.

17. The apparatus according to claim 1 , wherein the memory and the controller are part of a solid state drive.

18. The apparatus according to claim 1 , wherein the strong type of error correcting code is configured to tolerate a greater number of repeated read operations in order to reduce an amount of data recycling due to read disturb errors.

19. The apparatus according to claim 1 , wherein the hot-read data is read frequently compared to programming the hot-read data.

20. The apparatus according to claim 1 , wherein the strong type of error correcting code is configured to protect the hot-read data in the dedicated blocks.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034774/0077 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2014
From: CAI, YU; WU, YUNXIANG; HARATSCH, ERICH F.
To: LSI CORPORATION
Reel/Frame 032314/0690 →
Continuity (2)
Provisional Application 61938936 · Feb 12, 2014
Related Publication 20150227418A1 · Aug 13, 2015