Abstract:
Apparatus and method for managing shared resources in a data storage device such as a solid-state drive (SSD). In some embodiments, a non-volatile memory (NVM) has a population of semiconductor memory dies which are divided into die sets for different users. Each die set includes user garbage collection units (GCUs) for storage of user data blocks by the associated user and overprovisioned global GCUs to store user data blocks from the users of the other die sets. When an imbalance condition exists such that the workload traffic level of a first die set exceeds a workload traffic level of a second die set, at least one host I/O command for the first die set is offloaded for servicing using a selected global GCU of the second die set. The offloaded data may be subsequently transferred to the first die set after the imbalance condition is resolved.
Abstract:
A semiconductor data storage memory can receive data access commands into a queue in a first time sequence that correspond with the transfer of data between a host and portions of the memory. The memory may be divided into separate portions that each have a different owner and the access commands may be issued to each of the respective separate portions. The access commands can subsequently be executed in a different, second time sequence responsive to estimated completion times for each of the access commands based on measured completion times for previously serviced, similar commands to maintain a nominally consistent quality of service level for each of the respective owners.
Abstract:
Apparatus and method for managing metadata in a data storage device, such as a solid-state drive (SSD). In some embodiments, a non-volatile memory (NVM) includes a population of semiconductor memory dies. The dies are connected a number of parallel channels such that less than all of the semiconductor dies are connected to each channel. A controller circuit apportions the semiconductor memory dies into a plurality of die sets, with each die set configured to store user data blocks associated with a different user. The controller circuit subsequently rearranges the dies into a different arrangement of die sets so that at least one die is migrated from a first dies set to a second die set. A map manager circuit is configured to establish an array of pointers in a memory to identify contiguous portions of map metadtata that describe user data stored in the at least one migrated die.
Abstract:
Apparatus and method for managing namespaces in a Non-Volatile Memory Express (NVMe) controller environment. A non-volatile memory (NVM) is arranged to store map units (MUs) as addressable data blocks in one or more namespaces. A forward map has a sequence of map unit address (MUA) entries that correlate each of the MUs with the physical locations in the NVM. The MUA entries are grouped into immediately adjacent, contiguous ranges for each of the namespaces. A base MUA array identifies the address, within the forward map, of the beginning MUA entry for each namespace. A new namespace may be added by appending a new range of the MUA entries to the forward map immediate following the last MUA entry, and by adding a new entry to the base MUA array to identify the address, within the forward map, of the beginning MUA entry for the new namespace.
Abstract:
Apparatus and method for storing data in a non-volatile memory (NVM), such as a flash memory in a solid-state drive (SSD). In some embodiments, a distributed storage space of the NVM is defined to extend across a plural number of regions of the NVM. A non-standard parity data set is provided having a plural number of data elements greater than or equal to the plural number of regions in the storage space. The data set is written by storing a first portion of the data elements and a first parity value to the plural number of regions and a remaining portion of the data elements and a second parity value to a subset of the plural number of regions. The regions can comprise semiconductor dies in a flash memory, and the distributed storage space can be a garbage collection unit formed using one erasure block from each flash die.
Abstract:
Apparatus and method for managing shared resources in a data storage device such as a solid-state drive (SSD). In some embodiments, a non-volatile memory (NVM) has a population of semiconductor memory dies which are divided into die sets for different users. Each die set includes user garbage collection units (GCUs) for storage of user data blocks by the associated user and overprovisioned global GCUs to store user data blocks from the users of the other die sets. When an imbalance condition exists such that the workload traffic level of a first die set exceeds a workload traffic level of a second die set, at least one host I/O command for the first die set is offloaded for servicing using a selected global GCU of the second die set. The offloaded data may be subsequently transferred to the first die set after the imbalance condition is resolved.
Abstract:
A data storage device includes a data store optimized organized into allocation units sized according to an sequential writing unit or garbage collection unit of the data store. Information is written to the allocation units as either coarse or fine-grained packets, which are packets of data that are self-describing and written together. Random writes received from a host to data already written into allocation units is written to another allocation unit, and a coarse-grained forward map is updated to reflect the physical location of the valid data that superseded data in the allocation unit until the allocation unit can be rewritten. Promotion operations are disclosed to compact data and garbage collect data by rewriting allocation units.
Abstract:
A device comprising a file management system that includes a plurality of first entries and second entries. The first entries are configured function as a logical block address mapping table for data searching operations on data files stored in data blocks of the device, and the second entries are configured to organize the plurality of data blocks into separate logical groups.
Abstract:
A device comprising a file management system that includes a plurality of first entries and second entries. The first entries are configured function as a logical block address mapping table for data searching operations on data files stored in data blocks of the device, and the second entries are configured to organize the plurality of data blocks into separate logical groups.