Legal claims defining the scope of protection, as filed with the USPTO.
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.
Unknown
May 15, 2018
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.