Abstract:
Apparatuses, systems, and methods are disclosed for snapshots of a non-volatile device. A method includes writing data in a sequential log structure for a non-volatile device. A method includes marking a point, in a sequential log structure, for a snapshot of data. A method includes preserving a logical-to-physical mapping for a snapshot based on a marked point and a temporal order for data in a sequential log structure.
Abstract:
Techniques are disclosed relating to arranging data on storage media. In one embodiment, a computer system is configured to access a storage array that includes a plurality of storage blocks. The computer system executes a first set of processes and a second set of processes, where the first set of processes operates on selected ones of the plurality of storage blocks to increase a likelihood that the selected storage blocks are operated on by the second set of processes. In some embodiments, the second set of processes determines whether to operate on a storage block based on an amount of invalid data within the storage block. In such an embodiment, the first set of processes increases a likelihood that the storage block is operated on by increasing the amount of invalid data within the storage block.
Abstract:
Apparatuses, systems, methods, and computer program products are disclosed. A method includes processing metadata for data saved from a volatile memory buffer to a non-volatile storage medium. The data may be saved in response to a trigger event for a volatile memory buffer. A method includes locating saved data on a non-volatile storage medium. A method includes providing access to saved data after a trigger event based on processed metadata.
Abstract:
Apparatuses, systems, methods, and computer program products are disclosed for providing access to auto-commit memory. An auto-commit memory module is configured to cause a volatile memory buffer to commit data from the volatile memory buffer to a non-volatile memory medium in response to a trigger. A mapping module is configured to determine whether to associate a range of data with the volatile memory buffer. A bypass module is configured to service a request for the range of data directly from the volatile memory buffer in response to the mapping module determining to associate the range of data with the volatile memory buffer.
Abstract:
Apparatuses, systems, methods, and computer program products are disclosed for error correcting code (ECC) decoding. A soft information module may be configured to determine whether to obtain an indication of the accuracy of a data value for a variable node of an ECC decoder such as a low density parity check (LDPC) code decoder. A score module may be configured to assign and update a score for the variable node. The score may be based on the accuracy indication and on a count of unsatisfied check nodes of the ECC decoder that are associated with the variable node. A precision for the score may be based on an estimated number of errors for the received code word. A check node update module may be configured to update check nodes associated with the variable node based on the score.
Abstract:
Techniques are disclosed relating to determining statistics associated with the storage of data on a medium. In one embodiment, a computing system maintains a management statistic for a storage device, and uses the management statistic as a proxy for a workload statistic for a storage block within the storage device. In some embodiments, the storage block is a first storage block included within a second storage block of the storage device. In one embodiment, the management statistic is a timestamp indicative of when a write operation was performed for the second storage block; the workload statistic is a write frequency of the first storage block. In one embodiment, the management statistic is a number of read operations performed for the second storage block; the using includes deriving, based on the number of read operation, a read frequency for the first storage block as the workload statistic.
Abstract:
Apparatuses, systems, methods, and computer program products are disclosed for a memory controller. An apparatus includes a volatile memory medium located on a memory module. An apparatus includes a non-volatile memory medium located on a memory module. A memory controller is located on a memory module. A memory controller may be configured to provide access to at least a non-volatile memory medium over a direct wire interface with a processor.
Abstract:
A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising a plurality of columns. The ECC codewords may comprise ECC codeword symbols. The ECC symbols of a data segment may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The individual ECC symbols may be stored within respective columns of the array (e.g., may not cross column boundaries). Data of an unavailable ECC symbol may be reconstructed by use of other ECC symbols stored on other columns of the array.
Abstract:
Apparatuses, methods, and computer program products are disclosed for determining read thresholds for a non-volatile memory device. A method includes obtaining soft read data for a storage cell of a non-volatile storage medium. A method includes determining a read voltage threshold or other configuration parameter for a storage cell based on soft read data. A method includes using a determined read voltage threshold or other configuration parameter to read data from a storage cell.
Abstract:
Apparatuses, systems, methods and computer program products are disclosed for auto-commit memory management. A method includes receiving a memory request from a client, such as a barrier request or a checkpoint request. The memory request is associated with a volatile memory buffer of a non-volatile recording device. The memory buffer may be configured to preserve data in the non-volatile recording device in response to a trigger. A method includes issuing a serializing instruction that flushes data from a processor complex to the memory buffer. A method includes determining completion of the serializing instruction flushing the data to the memory buffer.