Abstract:
An apparatus includes a controller capable of being coupled to a host interface and a memory device. The memory device includes two or more non-hierarchical, non-volatile memory units having different minimum addressable data unit sizes. The controller is configured to at least perform determining a workload indicator of a data object being stored in the memory device via the host interface. The controller selects one of the memory units in response to the workload indicator of the data object corresponding to the minimum addressable data unit size of the selected memory unit corresponding to the workload indicator. The data object is stored in the selected memory unit in response thereto.
Abstract:
Method and apparatus for managing data in a memory. In accordance with some embodiments, a first data object and an associated first ECC data set are generated and stored in a non-volatile (NV) main memory responsive to a first set of data blocks having a selected logical address. A second data object and an associated second ECC data set are generated responsive to receipt of a second set of data blocks having the selected logical address. The second data object and the second ECC data set are subsequently stored in the in the NV main memory responsive to a mismatch between the first ECC data set and the second ECC data set.
Abstract:
A data storage device may generally be constructed and operated with at least one variable resistance memory cell configured with non-factory operational parameters by a controller. The non-factory operational parameters are assigned in response to an identified variance from a predetermined threshold in at least one variable resistance memory cell.
Abstract:
Method and apparatus for managing a memory, such as but not limited to a flash memory. In accordance with some embodiments, user data and associated metadata are stored in a memory. The metadata are arranged as a first sequence of snapshots of the metadata at different points in time during the operation of the memory, and a second sequence of intervening journals which reflect updates to the metadata from one snapshot to the next. Requested portions of the metadata are recovered from the memory using a selected snapshot in the first sequence and first and second journals in the second sequence.
Abstract:
Method and apparatus for enhancing performance of a storage device, such as a solid-state drive (SSD). In some embodiments, the storage device monitors a rate at which client I/O access commands are received from a client to transfer data with a non-volatile memory (NVM) of the storage device. A ratio of background access commands to the client I/O access commands is adjusted to maintain completion rates of the client I/O access commands at a predetermined level. The background access commands transfer data internally with the NVM to prepare the storage device to service the client I/O access commands, and can include internal reads and writes to carry out garbage collection and metadata map updates. The ratio may be adjusted by identifying a workload type subjected to the storage device by the client.
Abstract:
A data storage system may store a first data block having a first data configuration generated by a host in a non-volatile memory that is connected to a data module. A data strategy may be generated with the data module in response to the storage of data with the data strategy consisting of at least one trigger associated with identifying the first data block as hot. The first data block can be replicated to a different memory location with a second data configuration as directed by the data strategy with the first data configuration being different than the second data configuration.
Abstract:
Method and apparatus for enhancing performance of a storage device, such as a solid-state drive (SSD). A non-volatile memory (NVM) stores user data from a client device. Map metadata in a local memory describes locations of the user data in the NVM. The map metadata is arranged as a snapshot and accumulated journal updates. A metadata manager circuit combines a first portion of the journal updates with the existing snapshot to generate a new snapshot, and places a second portion of the journal updates into a read-only journal table in accordance with a selected metadata journaling strategy. A controller uses the updated snapshot and the table to service subsequently received client commands. Only dirty entries are processed and are written at the slowest acceptable rate, thereby improving client I/O performance during normal operation and time to ready (TTR) performance of the device during initialization.
Abstract:
Embodiments herein provide for a controller that is operable to soft read a data bit a plurality of times, to generate a bit set for the data bit from the soft reads, to logically operate on the bit set, and to generate a Hamming weight for the data bit based on the logical operation. The Hamming weight has fewer bits than the bit set and is operable to correct the data bit.
Abstract:
Systems and methods presented herein provide for failure detection and data recovery in a storage system. In one embodiment, a method operable in a storage system comprises locating failures in data blocks in storage area of a storage device, categorizing the failures into block groups, each block group comprising one or more data blocks having failures, and halting input/output (I/O) operations to data blocks in a first of the block groups due to the failures of the first block group. The method also includes detecting additional failures in one or more data blocks of other block groups remaining in the storage area, and determining when to fail the storage area of the storage device based on the detected failures.
Abstract:
Method and apparatus for decoding error correction code (ECC) code words. Reference voltages are used to extract a selected code word from a communication channel. The selected code word is processed by an ECC decoder, and an initial syndrome weight is determined indicative of unresolved parity errors. A coarse search operates to concurrently adjust, over a first succession of iterations, each of the reference voltages. A subsequent fine search operates, over a second succession of iterations, to individually adjust the reference voltages. Decoding and syndrome weight determination continues over each iteration until a minimum syndrome weight is obtained, after which a user data content of the code word is decoded. The coarse search may transition the decoder from a saturated operational region to a linear operational region. The decoder may be a low density parity check (LDPC) decoder.