Storage system and folding method for enhanced performance
AssigneeWestern Digital Technologies, Inc.
InventorsBhanushankar Doni Gurudath, Harish Gajula
Life of this patent
Estimating the term…
Abstract
Rather than use one long folding operation to fold data from single-level cell (SLC) blocks into a multi-level cell (MLC) block, a storage system uses a multi-stage folding operation. By breaking up the folding process into stages, SLC blocks involved in an earlier stage can be released prior to a subsequent stage being performed. This can increase performance of the storage system by releasing SLC source blocks sooner and reducing an SLC block budget requirement.
Claims20
A storage system comprising:
- a memory comprising a plurality of single-level cell (SLC) blocks and a multi-level cell (MLC) block;
- and
- a controller coupled to the memory and configured to fold data stored in the plurality of SLC blocks into the MLC block using a multi-stage process;
- wherein the controller is further configured to:
- perform a first stage of the multi-stage process, wherein in the first stage, a first subset of the plurality of SLC blocks is folded into a first subset of pages of the MLC block;
- and
- in response to successful completion of the first stage of the multi-stage process:
- perform a second stage of the multi-stage process, wherein in the second stage, a second subset of the plurality of SLC blocks is folded into a second subset of pages of the MLC block, wherein the second stage is performed without reading data written in the first stage and writing it back in the second stage;
- and
- release the first subset of the plurality of SLC blocks between the first and second stages.
In a storage system comprising a memory comprising a plurality of single-level cell (SLC) blocks and a quad-level cell (QLC) block, a method comprising:
- determining how many SLC blocks are available for folding;
- and
- in response to determining that two SLC blocks are available for folding:
- determining whether lower and middle pages of the QLC block have been programmed;
- in response to determining that the lower and middle pages of the QLC block have not been programmed;
- programming the lower and middle pages of the QLC block with the two SLC blocks;
- and then
- in response to the lower and middle pages of the QLC block being programmed successfully:
- releasing the two SLC blocks;
- and then programming upper and top pages of the QLC block;
- and
- in response to determining that the lower and middle pages of the QLC block have been programmed, programming the upper and top pages of the QLC block with the two SLC blocks.
A storage system comprising:
- a memory comprising a plurality of single-level cell (SLC) blocks and a multi-level cell (MLC) block;
- and
- means for folding data stored in the plurality of SLC blocks into the MLC block using a multi-stage process;
- wherein:
- in a first stage of the multi-stage process, a first subset of the plurality of SLC blocks is folded into a first subset of pages of the MLC block;
- in a second stage of the multi-stage process, which is performed in response to successful completion of the first stage, a second subset of the plurality of SLC blocks is folded into a second subset of pages of the MLC block, wherein the second stage is performed without reading data written in the first stage and writing it back in the second stage;
- and
- the first subset of the plurality of SLC blocks is released between the first and second stages.
Dependencies are inferred from the claim text.