IP Library Granted Patent US 9,971,515
Granted Patent B2
US 9,971,515 · App. 15/264,391 · Granted May 15, 2018

Incremental background media scan

Inventors: Hung-Min Chang (Irvine, CA); Haining Liu (Irvine, CA); Yuriy Pavlenko (Mission Viejo, CA); Hung-Cheng Yeh (Irvine, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/061G06F3/0655G06F3/0688
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,971,515
App. No.
15/264,391
Granted
May 15, 2018
Kind
B2
Abstract

In general, a storage device may perform an incremental background media scan. The storage device includes a data storage portion comprising a plurality of blocks. The storage device also includes a controller configured to perform the scan to determine whether to perform maintenance on the page. As such, the controller may scan a first page of a first block of a set of blocks. Each block has multiple pages. The controller may, for each respective remaining block of the set, scan a respective first page of the respective remaining block, the first page having a same first index as the respective first page. The controller may further scan a second page of the first block. The controller may then, for each respective remaining block of the set, scan a respective second page of the respective remaining block, the second page having a same second index as the respective second page.

Claims (64)

1. A method comprising:

scanning, by a controller, a first page of a first block of a set of blocks in a storage device to determine whether to perform maintenance on the first page, wherein the storage device comprises a plurality of blocks and the plurality of blocks includes the set of blocks, and wherein each respective block of the set of blocks comprises a plurality of pages;

in response to determining to perform maintenance on the first page of the first block, writing, by the controller, data previously stored in the first page of the first block to a recovery page, wherein the recovery page comprises a page in a block in the set of blocks different than the first page;

for each respective remaining block of the set of blocks, scanning, by the controller, a respective first page of the respective remaining block to determine whether to perform maintenance on the respective first page, wherein the first page of the first block has a same first index value as the respective first page;

scanning, by the controller, a second page of the first block to determine whether to perform maintenance on the second page; and

for each respective remaining block of the set of blocks, scanning, by the controller, a respective second page of the respective remaining block to determine whether to perform maintenance on the respective second page, wherein the second page of the first block has a same second index value as the respective second page.

2. The method of claim 1 , wherein the first index value indicates a relative location of the first page within the first block, wherein each respective first page of each remaining block have the same relative location within the respective remaining block as the relative location of the first page in the first block.

3. The method of claim 2 , wherein the first index value and the second index value are sequential index values for each block in the set of blocks.

4. The method of claim 2 , wherein the first index value and the second index value are non-sequential index values for each block in the set of blocks.

5. The method of claim 1 , further comprising:

receiving, by the controller and from a host device, an instruction to perform an operation;

performing, by the controller, the operation indicated by the instruction;

while performing the operation:

refraining, by the controller, from scanning any pages in the set of blocks; and

recording, by the controller, an amount of time spent performing the operation to completion; and

after completing performance of the operation, scanning, by the controller and based on the amount of time spent performing the operation, a number of pages in the set of blocks successively.

6. The method of claim 5 , further comprising:

after scanning the number of pages in the set of blocks successively:

scanning, by the controller, a first remaining page of the set of blocks; and

after a predetermined time delay, scanning, by the controller, a second remaining page of the set of blocks.

7. The method of claim 1 , wherein the storage device comprises a solid state drive.

8. A storage device comprising:

a data storage portion comprising a plurality of blocks; and

a controller configured to:

scan a first page of a first block of a set of blocks in a storage device to determine whether to perform maintenance on the first page, wherein the plurality of blocks includes the set of blocks, and wherein each respective block of the set of blocks comprises a plurality of pages;

in response to determining to perform maintenance on the first page of the first block, write data previously stored in the first page of the first block to a recovery page, wherein the recovery page comprises a page in a block in the set of blocks different than the first page;

for each respective remaining block of the set of blocks, scan a respective first page of the respective remaining block to determine whether to perform maintenance on the respective first page, wherein the first page of the first block has a same first index value as the respective first page;

scan a second page of the first block to determine whether to perform maintenance on the second page; and

for each respective remaining block of the set of blocks, scan a respective second page of the respective remaining block to determine whether to perform maintenance on the respective second page, wherein the second page of the first block has a same second index value as the respective second page.

9. The storage device of claim 8 , wherein the first index value indicates a relative location of the first page within the first block, wherein the first page of the first block having the same first index value as the respective first page comprises the first page of the first block having the same relative location within the first block as a relative location of the respective first page within the respective remaining block.

10. The storage device of claim 9 , wherein the first index value and the second index value are sequential index values for each block in the set of blocks.

11. The storage device of claim 9 , wherein the first index value and the second index value are non-sequential index values for each block in the set of blocks.

12. The storage device of claim 8 , wherein the controller is further configured to:

receive, from a host device, an instruction to perform an operation;

perform the operation indicated by the instruction;

while performing the operation:

refrain from scanning any pages in the set of blocks; and

record an amount of time spent performing the operation to completion; and

after completing performance of the operation, scan, based on the amount of time spent performing the operation, a number of pages in the set of blocks successively.

13. The storage device of claim 12 , wherein the controller is further configured to:

after scanning the number of pages in the set of blocks successively:

scan a first remaining page of the set of blocks; and

after a predetermined time delay, scan a second remaining page of the set of blocks.

14. The storage device of claim 8 , wherein the storage device comprises a solid state drive.

15. A computer-readable storage medium storing instructions that, when executed, cause a controller of a storage device to:

scan a first page of a first block of a set of blocks in the storage device to determine whether to perform maintenance on the first page, wherein the storage device comprises a plurality of blocks and the plurality of blocks includes the set of blocks, and wherein each respective block of the set of blocks comprises a plurality of pages;

in response to determining to perform maintenance on the first page of the first block, write data previously stored in the first page of the first block to a recovery page, wherein the recovery page comprises a page in a block in the set of blocks different than the first page;

for each respective remaining block of the set of blocks, scan a respective first page of the respective remaining block to determine whether to perform maintenance on the respective first page, wherein the first page of the first block has a same first index value as the respective first page;

scan a second page of the first block to determine whether to perform maintenance on the second page; and

for each respective remaining block of the set of blocks, scan a respective second page of the respective remaining block to determine whether to perform maintenance on the respective second page, wherein the second page of the first block has a same second index value as the respective second page.

16. The computer-readable storage medium of claim 15 , wherein the first index value indicates a relative location of the first page within the first block, wherein the first page of the first block having the same first index value as the respective first page comprises the first page of the first block having the same relative location within the first block as a relative location of the respective first page within the respective remaining block.

17. The computer-readable storage medium of claim 16 , wherein the first index value and the second index value are sequential index values for each block in the set of blocks.

18. The computer-readable storage medium of claim 16 , wherein the first index value and the second index value are non-sequential index values for each block in the set of blocks.

19. The computer-readable storage medium of claim 15 , wherein the instructions further cause the controller to:

receive, from a host device, an instruction to perform an operation;

perform the operation indicated by the instruction;

while performing the operation:

refrain from scanning any pages in the set of blocks; and

record an amount of time spent performing the operation to completion; and

after completing performance of the operation, scan, based on the amount of time spent performing the operation, a number of pages in the set of blocks successively.

20. The computer-readable storage medium of claim 19 , wherein the instructions further cause the controller to:

after scanning the number of pages in the set of blocks successively:

scan a first remaining page of the set of blocks; and

after a predetermined time delay, scan a second remaining page of the set of blocks.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2016
From: CHANG, HUNG-MIN; LIU, HAINING; PAVLENKO, YURIY; YEH, HUNG-CHENG
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 039722/0353 →
Continuity (1)
Related Publication 20180074701A1 · Mar 15, 2018