IP Library Granted Patent US 8,478,930
Granted Patent B1
US 8,478,930 · App. 13/335,194 · Granted Jul 2, 2013

Solid state drive power safe wear-leveling

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,478,930
App. No.
13/335,194
Granted
Jul 2, 2013
Kind
B1
Abstract

A solid state drive includes a plurality of flash memory devices, and a memory controller coupled to the plurality of flash memory devices. The memory controller is configured to logically associate blocks from the plurality of flash memory devices to form zip codes, the zip codes associated with corresponding erase counters. The solid state drive further includes a processor and a computer-readable memory having instructions stored thereon. The processor may perform a wear-leveling operation by determining that blocks in a first zip code have been erased and incrementing a first erase counter associated with the first zip code. It may then be determined that a second erase counter associated with a second zip code is low relative to at least one other erase counter, and based on this determination, data from blocks in the second zip code may be written to new blocks as part of a wear-leveling operation.

Claims (60)

1. A solid state drive comprising:

a flash memory device logically divided into a plurality of blocks; and

a controller coupled to the flash memory device, the controller configured to:

determine whether a wear-leveling operation should be performed on a first block of the plurality of blocks;

based at least in part on the determination,

write, to the flash memory device, first information indicative of the first block and a second block of the plurality of blocks that is involved in the wear-leveling operation on the first block; and

write data from the first block to the second block as part of the wear-leveling operation; and

write, to the flash memory device, second information indicative of progress made on the wear-leveling operation prior to a suspension of the wear-leveling operation.

2. The solid state drive of claim 1 , wherein the first information is written as a header and the second information is written as a footer.

3. The solid state drive of claim 1 , wherein each of the plurality of blocks is logically divided into addressable pages.

4. The solid state drive of claim 1 , wherein the controller is further configured to write the data from the first block to the second block by at least:

after writing the first information, writing a first page of the first block to the second block;

after writing the first page, determining if the wear-leveling operation is complete and determining if the wear-leveling operation should be suspended;

if the wear-leveling operation is not complete and should not be suspended, writing a second page of the first block to the second block; and

if the wear-leveling operation is not complete and should be suspended, writing the second information indicative of progress made on the wear-leveling operation before suspending the wear-leveling operation.

5. The solid state drive of claim 1 , wherein the second information comprises a completion footer if the wear-leveling operation is complete prior to the suspension.

6. The solid state drive of claim 1 , wherein the controller is further configured to determine that the wear-leveling operation should be performed on the first block by at least:

calculating an average value based on one or more erase counter values associated with one or more blocks of the plurality of blocks; and

comparing an erase counter value of the first block to the average value.

7. The solid state drive of claim 1 , wherein the controller is further configured to:

resume the wear-leveling operation based at least in part on the first and the second information.

8. The solid state drive of claim 1 , wherein the second information comprises an indication of one or more pages written in the wear-leveling operation before it was suspended.

9. The solid state drive of claim 1 , wherein the controller is further configured to:

upon powering-up of the solid state drive, search for second information indicative of progress made on wear-leveling operations;

if no second information is located, search for first information indicative of blocks associated with wear-leveling operations;

if a first information is located, erase any partially programmed block associated with the located first information, and write information indicative of completion of a wear-leveling operation associated with the located first information; and

re-schedule the wear-leveling operation associated with the located first information based at least in part on the first information.

10. The solid state drive of claim 9 , wherein the controller is further configured to:

if a second information is located, verify the second information by at least one of:

checking error codes associated with the located second information, and

comparing the located second information with at least one other copy of the located second information stored in the flash memory device.

11. A method of performing a wear-leveling operation in a solid state drive comprising a flash memory device logically divided into a plurality of blocks, the method comprising:

determining whether a wear-leveling operation should be performed on a first block of the plurality of blocks;

based at least in part on the determination,

writing, to the flash memory device, first information indicative of the first block and a second block of the plurality of blocks that is involved in the wear-leveling operation on the first block; and

writing data from the first block to the second block as part of the wear-leveling operation; and

writing, to the flash memory device, second information indicative of progress made on the wear-leveling operation prior to a suspension of the wear-leveling operation.

12. The method of claim 11 , wherein the first information is written as a header and the second information is written as a footer.

13. The method of claim 11 , wherein each of the plurality of blocks is logically divided into addressable pages.

14. The method of claim 11 , wherein writing the data from the first block to the second block further comprises:

after writing the first information, writing a first page of the first block to the second block;

after writing the first page, determining if the wear-leveling operation is complete and determining if the wear-leveling operation should be suspended;

if the wear-leveling operation is not complete and should not be suspended, writing a second page of the first block to the second block; and

if the wear-leveling operation is not complete and should be suspended, writing the second information indicative of progress made on the wear-leveling operation before suspending the wear-leveling operation.

15. The method of claim 11 , wherein the second information comprises a completion footer if the wear-leveling operation is complete prior to the suspension.

16. The method of claim 11 , wherein determining that the wear-leveling operation should be performed on the first block further comprises:

calculating an average value based on one or more erase counter values associated with one or more blocks of the plurality of blocks; and

comparing an erase counter value of the first block to the average value.

17. The method of claim 11 , further comprising:

resuming the wear-leveling operation based at least in part on the first and the second information.

18. The method of claim 11 , wherein the second information comprises an indication of one or more pages written in the wear-leveling operation before it was suspended.

19. The method of claim 11 , further comprising:

upon powering-up of the solid state drive, searching for second information indicative of progress made on wear-leveling operations;

if no second information is located, searching for first information indicative of blocks associated with wear-leveling operations;

if a first information is located, erasing any partially programmed block associated with the located first information, and writing information indicative of completion of a wear-leveling operation associated with the located first information; and

re-scheduling the wear-leveling operation associated with the located first information based at least in part on the first information.

20. The method of claim 19 , further comprising:

if a second information is located, verifying the second information by at least one of:

checking error codes associated with the located second information, and

comparing the located second information with at least one other copy of the located second information stored in the flash memory device.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2012
From: SYU, MEI-MAN L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 027524/0112 →