Storage system and dual-write programming method with reverse order for secondary block
AssigneeWestern Digital Technologies, Inc.
InventorsYogendra Singh Sikarwar, Ankit Naghate, Milind Giradkar, Rakshit Tikoo
Life of this patent
Estimating the term…
Abstract
A storage system has a memory with primary and secondary blocks. Data is stored redundantly in the primary and secondary memory blocks but in a different programming order. For example, data is programmed in the first memory block starting at a first wordline and ending at a last wordline, while data is programmed in the second memory block starting at the last wordline and ending at the first wordline.
Claims16
A storage system comprising:
- a memory comprising a multi-level cell (MLC) block of memory, a primary single-level cell (SLC) block of memory, and a secondary SLC block of memory, wherein the primary and secondary SLC blocks of memory comprise a plurality of wordlines;
- and
- a controller configured to:
- program a plurality of data segments in the plurality of wordlines in the primary SLC block of memory in a first programming order without skipping any wordlines in the prima SLC block, wherein all of the wordlines in the primary SLC block are programmed;
- program a redundant version of the plurality of the data segments in the plurality of wordlines in the secondary SLC block of memory in a second programming order that is opposite the first programming order without skipping any wordlines in the secondary SLC block, wherein all of the wordlines in the secondary SLC block are programmed, and wherein a given data segment and its redundant version are stored in different wordline numbers in the primary and secondary SLC blocks;
- and
- fold the plurality of data segments into the MLC block of memory, wherein a data segment that is readable from the primary SLC block is read from the primary SLC block, and wherein a data segment that is unreadable from the primary SLC block is read from the secondary SLC block.
In a storage system comprising a memory comprising a multi-level cell (MLC) block of memory, a primary single-level cell (SLC) block of memory, and a secondary SLC block of memory, wherein the primary and secondary SLC blocks of memory comprise a plurality of wordlines, a method comprising:
- receiving a plurality of data segments to be stored in the memory;
- performing a dual-write programming operation by:
- storing the plurality of data segments in the primary SLC block of memory starting at a first wordline and ending at a last wordline, without skipping any wordlines in the primary SLC block, wherein all of the wordlines in the primary SLC block are programmed;
- and
- storing a redundant version of the plurality of data segments in the plurality of wordlines in the secondary SLC block of memory starting at the last wordline and ending at the first wordline without skipping any wordlines in the secondary SLC block, wherein all of the wordlines in the secondary SLC block are programmed, and wherein a given data segment and its redundant version are stored in different wordline numbers in the primary and secondary SLC blocks;
- and
- folding the plurality of data segments into the MLC block of memory, wherein a data segment that is readable from the primary SLC block is read from the primary SLC block, and wherein a data segment that is unreadable from the primary SLC block is read from the secondary SLC block.
A storage system comprising:
- a memory comprising a multi-level cell (MLC) block of memory, a primary single-level cell (SLC) block of memory, and a secondary SLC block of memory, wherein the primary and secondary SLC blocks of memory comprise a plurality of wordlines;
- means for programming a plurality of data segments in the plurality of wordlines in the primary SLC block of memory in a first programming order without skipping any wordlines in the primary SLC block, wherein all of the wordlines in the primary SLC block are programmed;
- means for programming a redundant version of the plurality of the data segments in the plurality of wordlines in the secondary SLC block of memory in a second programming order that is opposite the first programming order, without skipping any wordlines in the secondary SLC block, wherein all of the wordlines in the secondary SLC block are programmed, and wherein a given data segment and its redundant version are stored in different wordline numbers in the primary and secondary SLC blocks;
- and
- means for folding the plurality of data segments into the MLC block of memory, wherein a data segment that is readable from the primary SLC block is read from the primary SLC block, and wherein a data segment that is unreadable from the primary SLC block is read from the secondary SLC block.
Dependencies are inferred from the claim text.