APPARATUS, SYSTEM, AND METHOD FOR BAD BLOCK REMAPPING
First Claim
1. An apparatus to map bad blocks in solid-state storage, the apparatus comprising:
- a bad block identifier module that identifies one or more data blocks as bad blocks, each bad block comprising a block determined to be inappropriate for data storage, each bad block on a solid-state storage element in an array of solid-state storage elements;
a log update module that writes at least a location of each bad block (“
bad block location”
) identified by the bad block identifier module into each of two or more redundant bad block logs, wherein, for at least one of the bad block logs, the log update module writes the one or more bad block locations into a page of a block comprising the bad block log, the page being free of previously written bad block location information; and
a bad block mapping module that accesses at least one bad block log during a start-up operation to create in memory a bad block map comprising a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block (“
replacement block location”
) for each bad block location, wherein data is stored in each replacement block instead of the corresponding bad block, the start-up operation comprising making operational a controller for the solid-state storage from a non-operational state, wherein the bad block mapping module creates the bad block map using one ofa replacement block location stored with each bad block location in each of the bad block logs; and
a bad block mapping algorithm that uses a storage order of the bad block locations in a bad block log to pair each bad block location with a replacement block location.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for bad block remapping. A bad block identifier module identifies one or more data blocks on a solid-state storage element as bad blocks. A log update module writes at least a location of each bad block identified by the bad block identifier module into each of two or more redundant bad block logs. A bad block mapping module accesses at least one bad block log during a start-up operation to create in memory a bad block map. The bad block map includes a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block for each bad block location. Data is stored in each replacement block instead of the corresponding bad block. The bad block mapping module creates the bad block map using one of a replacement block location and a bad block mapping algorithm.
175 Citations
22 Claims
-
1. An apparatus to map bad blocks in solid-state storage, the apparatus comprising:
-
a bad block identifier module that identifies one or more data blocks as bad blocks, each bad block comprising a block determined to be inappropriate for data storage, each bad block on a solid-state storage element in an array of solid-state storage elements; a log update module that writes at least a location of each bad block (“
bad block location”
) identified by the bad block identifier module into each of two or more redundant bad block logs, wherein, for at least one of the bad block logs, the log update module writes the one or more bad block locations into a page of a block comprising the bad block log, the page being free of previously written bad block location information; anda bad block mapping module that accesses at least one bad block log during a start-up operation to create in memory a bad block map comprising a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block (“
replacement block location”
) for each bad block location, wherein data is stored in each replacement block instead of the corresponding bad block, the start-up operation comprising making operational a controller for the solid-state storage from a non-operational state, wherein the bad block mapping module creates the bad block map using one ofa replacement block location stored with each bad block location in each of the bad block logs; and a bad block mapping algorithm that uses a storage order of the bad block locations in a bad block log to pair each bad block location with a replacement block location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system to map bad blocks in solid-state storage, the system comprising:
-
a solid-state storage array comprising two or more solid-state storage elements; a solid-state storage controller that controls the solid-state storage array; a bad block identifier module that identifies one or more data blocks as bad blocks, each bad block comprising a block determined to be inappropriate for data storage, each bad block on a solid-state storage element in the solid-state storage array; a log update module that writes at least a location of each bad block (“
bad block location”
) identified by the bad block identifier module into each of two or more redundant bad block logs, wherein, for at least one of the bad block logs, the log update module writes the one or more bad block locations into a page of a block comprising the bad block log, the page being free of previously written bad block location information; anda bad block mapping module that accesses at least one bad block log during a start-up operation to create in memory a bad block map comprising a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block (“
replacement block location”
) for each bad block location, wherein data is stored in each replacement block instead of the corresponding bad block, the start-up operation comprising making operational a controller for the solid-state storage from a non-operational state, wherein the bad block mapping module creates the bad block map using one ofa replacement block location stored with each bad block location in each of the bad block logs; and a bad block mapping algorithm that uses a storage order of the bad block locations in a bad block log to pair each bad block location with a replacement block location. - View Dependent Claims (21)
-
-
22. A computer program product comprising a computer readable medium having computer usable program code executable to perform operations for mapping bad blocks in solid-state storage, the operations of the computer program product comprising:
-
identifying one or more data blocks as bad blocks, each bad block comprising a block determined to be inappropriate for data storage, each bad block on a solid-state storage element in an array of solid-state storage elements; writing at least a location of each identified bad block (“
bad block location”
) into each of two or more redundant bad block logs, wherein, for at least one of the bad block logs, the one or more bad block locations are written into a page of a block comprising the bad block log, the page being free of previously written bad block location information; andaccessing at least one bad block log during a start-up operation to create in memory a bad block map comprising a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block (“
replacement block location”
) for each bad block location, wherein data is stored in each replacement block instead of the corresponding bad block, the start-up operation comprising making operational a controller for the solid-state storage from a non-operational state, wherein creating the bad block map comprises using one ofa replacement block location stored with each bad block location in each of the bad block logs; and a bad block mapping algorithm that uses a storage order of the bad block locations in a bad block log to pair each bad block location with a replacement block location.
-
Specification