Redundancy coding stripe based on internal addresses of storage devices
AssigneeWestern Digital Technologies, Inc.
InventorsBrian W O'Krafka, Vladislav Bolkhovitin, Sanjay Subbarao
Life of this patent
Estimating the term…
Abstract
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.
Claims20
A system comprising:
- a plurality of non-volatile storage devices, wherein each non-volatile storage device comprises:
- a device controller;
- and
- a plurality of non-volatile memory cells configured with internal addresses;
- 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 to a selected non-volatile storage device of the plurality of non-volatile storage devices using a virtual block address;
- 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 from 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.
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 plurality of 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 plurality of non-volatile storage devices, a fixed internal address of the chunk in an internal address space of the respective non-volatile storage device;
- sending, by each of the plurality of non-volatile storage devices, the fixed internal address to a manager system including non-transitory storage;
- 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.
A non-volatile storage system comprising:
- a plurality of non-volatile storage devices, wherein each non-volatile storage device comprises:
- a device controller;
- and
- a plurality of non-volatile memory cells configured with internal addresses;
- 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 the plurality of non-volatile storage devices, a command to write one of the chunks of random writes within a contiguous region of the plurality of non-volatile memory cells in each respective non-volatile storage device;
- writing means for writing each respective chunk of the redundancy coding stripe in a contiguous region of the plurality 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.
Dependencies are inferred from the claim text.