Wear leveling in solid-state device
First Claim
Patent Images
1. A flash storage device comprising:
- a plurality of storage blocks; and
a controller, wherein the controller is configured to;
read a first data unit in a first storage block of the plurality of storage blocks;
detect that a read data error has occurred in the first data unit and, in response, correct the first data unit; and
detect that the first storage block of the plurality of storage blocks is a dynamic storage block and, in response;
select an available storage block of the plurality of storage blocks;
move the first data unit from the first storage block to the available storage block;
select a second storage block of the plurality of storage blocks comprising static data; and
copy the static data into the first storage block.
8 Assignments
0 Petitions
Accused Products
Abstract
A flash storage device performs wear-leveling by tracking data errors that occur when dynamic data is read from a storage block of the flash storage device and moving the dynamic data to an available storage block of the flash storage device. Additionally, the flash storage device identifies a storage block containing static data and moves the static data to the storage block previously containing the dynamic data.
34 Citations
20 Claims
-
1. A flash storage device comprising:
-
a plurality of storage blocks; and a controller, wherein the controller is configured to; read a first data unit in a first storage block of the plurality of storage blocks; detect that a read data error has occurred in the first data unit and, in response, correct the first data unit; and detect that the first storage block of the plurality of storage blocks is a dynamic storage block and, in response; select an available storage block of the plurality of storage blocks; move the first data unit from the first storage block to the available storage block; select a second storage block of the plurality of storage blocks comprising static data; and copy the static data into the first storage block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A flash storage device comprising:
-
a plurality of storage blocks; and a controller in communication with the plurality of storage blocks, wherein the controller is configured to; read a first data unit from a first storage block of the plurality of storage blocks; determine if a data error has occurred from a read operation of the first storage block and if the first storage block contains dynamic data, and in response the controller is further configured to; correct the first data unit; move the first data unit from the first storage block to an available storage block; select a second storage block of the plurality of storage blocks, the second storage block containing a second data unit including static data; and move the second data unit from the second storage block to the first storage block. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method implemented in a flash storage device comprising:
-
reading a first data unit from a first storage block of a plurality of storage blocks; if a data error has occurred in the first data unit as a result of a read operation; correcting the data error in the first data unit; and maintaining an error status indicator, wherein the error status indicator comprises a count of the data errors of the first storage block; if the first storage block contains dynamic data and the error status indicator of the first storage block exceeds a threshold value; moving the first data unit from the first storage block to an available storage block; and moving a second data unit containing static data of a second storage block to the first storage block. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification