Two-tier defect scan management
US-2024402922-A1 · Dec 5, 2024 · US
US2019102250A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2019102250-A1 |
| Application number | US-201715722685-A |
| Country | US |
| Kind code | A1 |
| Filing date | Oct 2, 2017 |
| Priority date | Oct 2, 2017 |
| Publication date | Apr 4, 2019 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Technology disclosed herein efficiently uses memory available in non-volatile storage devices in a non-volatile memory system. In one aspect, a manager collects enough data to fill an entire chunk of a redundancy coding stripe, and requests that the entire chunk be written together in a selected non-volatile storage device. The selected non-volatile storage device may return an internal address at which the entire chunk was written. The manager may store a stripe map that identifies the internal addresses at which each chunk was stored.
Opening claim text (preview).
What is claimed is: 1 . A system comprising: non-transitory storage; a data collecting module configured to collect, for each chunk of a redundancy coding stripe, data for the chunk; a command module configured to issue a command to write the data for the chunk of the redundancy coding stripe in a selected of a plurality of non-volatile storage devices; an interface configured to receive, for each chunk of the redundancy coding stripe, an internal address of the chunk in the selected non-volatile storage device; and a redundancy coding module configured to store into the non-transitory storage a redundancy stripe map having a redundancy stripe identifier and the internal addresses in the non-volatile storage devices for the chunks of the redundancy coding stripe. 2 . The system of claim 1 , further comprising a data recovery module configured to: send a request to a first of the non-volatile storage devices for a chunk of the redundancy coding stripe, the request specifies the internal address of the chunk. 3 . The system of claim 1 , further comprising logic configured to instruct at least one of the plurality of non-volatile storage devices to store, into non-volatile storage, a forward map that maps from virtual addresses to redundancy stripe identifiers. 4 . The system of claim 3 , further comprising a data recovery module configured to: read the forward map from the non-volatile storage on a non-volatile storage device to retrieve a redundancy stripe identifier for a virtual address; use the retrieved redundancy stripe identifier to retrieve internal addresses in the redundancy stripe map; and request chunks of data from ones of the non-volatile storage devices, the requests for the chunks specifying the retrieved internal addresses. 5 . The system of claim 1 , wherein each of the chunks of data comprise a plurality of blocks of random data each with an external logical address, and wherein a first of the non-volatile storage devices comprises: an address mapping module configured to: map the external logical addresses associated with a chunk of data to sequential internal addresses in the first non-volatile storage device; and store the mapping in non-transitory storage in the first non-volatile storage device. 6 . The system of claim 1 , wherein a first of the non-volatile storage devices comprises: writing logic configured to write the entire chunk of the redundancy coding stripe to a contiguous region of non-volatile memory cells in the first non-volatile storage device; and address providing logic configured to provide, to the interface, an internal address at which the chunk was written in the first non-volatile storage device. 7 . The system of claim 1 , wherein the internal address that a first of the plurality of non-volatile storage devices provides for a first chunk in the redundancy coding stripe is a first internal logical address. 8 . The system of claim 7 , wherein the first non-volatile storage device further comprises: non-transitory storage; writing logic configured to move the first chunk that is stored in a first contiguous region in the first non-volatile storage device to a second contiguous region in the first non-volatile storage device; and an address mapping module configured to update, in the non-transitory storage, a mapping of the first internal logical address from the first contiguous region to the second contiguous region. 9 . The system of claim 8 , wherein the first contiguous region is all or a portion of a first erase block in the first non-volatile storage device, wherein the second contiguous region is all or a portion of a second erase block in the first non-volatile storage device. 10 . The system of claim 1 , wherein each of the chunks of data comprise a plurality of blocks of random data each with an external logical block address, and further comprising drive virtualization logic configured to: for each virtual block address associated with one of the external logical block addresses sent in a write request to one of the plurality of non-volatile storage devices, convert the virtual block address to one of the external logical block addresses and an identifier of one of the plurality of non-volatile storage devices. 11 . The system of claim 1 , wherein the command to write the data for the chunk of the redundancy coding stripe in the selected one of the plurality of non-volatile storage devices instructs the selected non-volatile storage device to write the entire chunk within all or a portion of an erase block. 12 . A method comprising: receiving, at each of a plurality of non-volatile storage devices, a request to write a chunk of a redundancy coding stripe; writing, by each of the non-volatile storage devices, the entire chunk to a contiguous region of non-volatile memory cells in the respective non-volatile storage device; providing, by each of the non-volatile storage devices, a fixed internal address of the chunk in an internal address space of the respective non-volatile storage device; and storing a redundancy stripe map into non-transitory storage, the redundancy stripe map having a redundancy stripe identifier and the fixed internal addresses for the chunks for the redundancy coding stripe. 13 . The method of claim 12 , further comprising: sending a request to a first of the non-volatile storage devices for a chunk of the redundancy coding stripe, the request specifies the fixed internal address of the chunk. 14 . The method of claim 13 , further comprising: instructing at least one of the plurality of non-volatile storage devices to store, into non-volatile storage, a forward map that maps from virtual addresses to redundancy stripe identifiers. 15 . The method of claim 14 , further comprising: reading the forward map from the non-volatile storage on a non-volatile storage device to retrieve a redundancy stripe identifier for a virtual address; using the retrieved redundancy stripe identifier to retrieve internal addresses in the redundancy stripe map; and requesting chunks of data from ones of the non-volatile storage devices, the requests for the chunks specifying the retrieved internal addresses. 16 . The method of claim 12 , further comprising: collecting, by a manager system, random writes for each of the chunks of the redundancy coding stripe; and sending, by the manager system, commands to write all of the random writes for each of the chunks in a contiguous region on each of the non-volatile storage devices. 17 . The method of claim 16 , wherein the contiguous region is an erase block. 18 . A non-volatile storage system comprising: non-transitory storage; data collecting means for collecting random writes for each chunk of a redundancy coding stripe; command means for sending, to each of a plurality of non-volatile storage devices, a command to write one of the chunks of random writes within a contiguous region of the non-volatile storage device; writing means for writing each respective chunk of the redundancy coding stripe in a contiguous region of non-volatile memory cells in each respective non-volatile storage device; address providing means for providing, for each of the chunks, an internal address at which the chunk was written in the respective non-volatile storage device; and redundancy coding means for storing into the non-transitory storage a redundancy stripe map having a redundancy stripe identifier and the internal addresses for the chunks for the redundancy coding stripe.
Protection of memory contents; Detection of errors in memory contents · CPC title
Multiple device management, e.g. distributing data over multiple flash devices · CPC title
Virtual address space management · CPC title
in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence) · CPC title
for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.