Redundancy Coding Stripe Based On Internal Addresses Of Storage Devices

US2019102250A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2019102250-A1
Application numberUS-201715722685-A
CountryUS
Kind codeA1
Filing dateOct 2, 2017
Priority dateOct 2, 2017
Publication dateApr 4, 2019
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • G11C29/52Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2019102250A1 cover?
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…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G11C29/52. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 04 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).