IP Library › Granted Patent US 8,832,506
Granted Patent B2
US 8,832,506 · App. 13/355,050 · Granted Sep 9, 2014

Bit error rate based wear leveling for solid state drive memory

Inventors: Thomas J. Griffin (Salt Point, NY); Dustin J. Vanstee (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G11C16/3495G11C16/3409H04L1/203G06F11/16G01R31/3171G11C11/406G11C16/16G11C29/50G11C29/42G11C16/3468G11C16/14G11C16/10G06F11/1068G11C16/3404
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 8,832,506
App. No.
13/355,050
Granted
Sep 9, 2014
Kind
B2
Abstract

According to exemplary embodiments, a system, method, and computer program product are provided for BER-based wear leveling in a SSD. A block-level BER value for a block in the SSD is determined. An adjusted PE cycle count for the block is incremented or decremented based on the block-level BER value. Wear leveling is then performed in the SSD based on the adjusted PE cycle count.

Claims (29)

1. A method for bit error rate (BER) based wear leveling in a solid state drive (SSD), the method comprising:

determining a block-level BER value for a block in the SSD;

incrementing or decrementing an adjusted program/erase (PE) cycle count for the block based on the block-level BER value by a processor; and

performing wear leveling in the SSD based on the adjusted PE cycle count by distributing PE cycling among a plurality of blocks in the SSD based on a respective adjusted PE cycle count of each of the plurality of blocks in the SSD.

2. The method of claim 1 , wherein determining the block-level BER statistics for the block comprises collecting error correcting code (ECC) data from one or more read events of one or more pages in the block, and wherein determining the adjusted PE cycle count for the block based on the block-level BER value is performed in response to an erase event in the block.

3. The method of claim 1 , wherein determining the adjusted PE cycle count for the block based on the block-level BER value comprises comparing the block-level BER value and the adjusted PE cycle count of the block to a lookup table, wherein the lookup table comprises a plurality of ranges of expected PE cycle count values, each of the plurality of ranges of expected PE cycle count values being mapped to a respective BER value.

4. The method of claim 3 , wherein the adjusted PE cycle count of the block is incremented based on the adjusted PE cycle count being lower than a minimum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block.

5. The method of claim 4 , wherein the adjusted PE cycle count of the block is incremented to be equal to the minimum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block based on the adjusted PE cycle count being lower than the minimum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block.

6. The method of claim 3 , wherein the adjusted PE cycle count of the block is incremented based on the incremented adjusted PE cycle count being lower than the minimum threshold of the range of expected PE cycle count values plus a margin.

7. The method of claim 6 , wherein the adjusted PE cycle count of the block is incremented to be equal to a midpoint of the range of expected PE cycle count values given by the lookup table for the BER value of the block based on the incremented adjusted PE cycle count being lower than the minimum threshold of the range of expected PE cycle count values plus the margin.

8. The method of claim 3 , wherein the adjusted PE cycle count of the block is decremented based on the adjusted PE cycle count being higher than a maximum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block.

9. The method of claim 8 , wherein the adjusted PE cycle count of the block is decremented to be equal to the maximum threshold of the range of expected PC cycle count values given by the lookup table for the BER value of the block based on the adjusted PE cycle count being higher than a maximum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block.

10. The method of claim 3 , wherein the adjusted PE cycle count of the block is decremented based on the decremented adjusted PE cycle count being higher than the maximum threshold of the range of expected PE cycle count values minus a margin.

11. The method of claim 10 , wherein the adjusted PE cycle count of the block is decremented to be equal to a midpoint of the range of expected PC cycle count values given by the lookup table for the BER value of the block based on the decremented adjusted PE cycle count being higher than the maximum threshold of the range of expected PE cycle count values minus the margin.

12. The method of claim 1 , further comprising maintaining both the adjusted PE cycle count for the block and an actual PE cycle count for the block by a PE cycle count module of the block.

13. The method of claim 12 , further comprising:

providing the BER value for the block and the actual PE cycle count for the block from the PE cycle count module to a PE adjustment module; and

modifying a lookup table, wherein the lookup table comprises a plurality of ranges of expected PE cycle count values, each of the plurality of ranges of expected PE cycle count values being mapped to a respective BER value, based on the received BER value for the block and the received actual PE cycle count for the block by the PE adjustment module during operation of the SSD.

14. The method of claim 12 , further comprising:

based on BER based wear leveling being enabled for the SSD, providing the adjusted PE cycle count to a wear leveling module that performs the wear leveling, and performing wear leveling by the wear leveling module based on the adjusted PE cycle count; and

based on BER based wear leveling not being enabled for the SSD, providing the actual PE cycle count to the wear leveling module that performs the wear leveling, and performing wear leveling by the wear leveling module based on the actual PE cycle count.

15. A computer program product for bit error rate (BER) based wear leveling in a solid state drive (SSD), the computer program product comprising:

a tangible non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

determining a block-level BER value for a block in the SSD;

incrementing or decrementing an adjusted program/erase (PE) cycle count for the block based on the block-level BER value by a processor; and

performing wear leveling in the SSD based on the adjusted PE cycle count by distributing PE cycling among a plurality of blocks in the SSD based on a respective adjusted PE cycle count of each of the plurality of blocks in the SSD.

16. The computer program product of claim 15 , wherein determining the adjusted PE cycle count for the block based on the block-level BER value comprises comparing the block-level BER value and the adjusted PE cycle count of the block to a lookup table, wherein the lookup table comprises a plurality of ranges of expected PE cycle count values, each of the plurality of ranges of expected PE cycle count values being mapped to a respective BER value.

17. The computer program product of claim 16 , wherein the adjusted PE cycle count of the block is incremented based on the adjusted PE cycle count being lower than a minimum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block, and wherein the adjusted PE cycle count of the block is additionally incremented based on the incremented adjusted PE cycle count being lower than the minimum threshold of the range of expected PE cycle count values plus a margin.

18. The computer program product of claim 16 , wherein the adjusted PE cycle count of the block is decremented based on the adjusted PE cycle count being higher than a maximum threshold of the range of expected PE cycle count values given by the lookup table for the BER value of the block, and wherein the adjusted PE cycle count of the block is additionally decremented based on the decremented adjusted PE cycle count being higher than the maximum threshold of the range of expected PE cycle count values minus a margin.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2012
From: GRIFFIN, THOMAS J.; VANSTEE, DUSTIN J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027573/0620 →
Continuity (1)
Related Publication 20130191700A1 · Jul 25, 2013