Patent classifications
G06F2212/1036
Flash translation layer design using reinforcement learning
The subject matter described herein provides systems and techniques to counter a high write amplification in physical memory, to ensure the longevity of the physical memory, and to ensure that the physical memory wears in a more uniform manner. In this regard, aspects of this disclosure include the design of a Flash Translation Layer (FTL), which may manage logical to physical mapping of data within the physical memory. In particular, the FTL may be designed with a mapping algorithm, which uses reinforcement learning (RL) to optimize data mapping within the physical memory. The RL technique may use a Bellman equation with q-learning that may rely on a table being updated with entries that take into account at least one of a state, an action, a reward, or a policy. The RL technique may also make use a deep neural network to predict particular values of the table.
SYSTEM AND METHOD TO CONSERVE DEVICE LIFETIME FOR SNAPSHOT GENERATION
Methods and systems for generating backups are disclosed. To generate a backup, a snapshot may be generated. A snapshot may be a point in time representation of data, in contrast to live data which may be updated over time. To reduce the impact of snapshot generation, a method, system, and device for generating and maintaining a snapshot that utilizes fewer writes is disclosed. To reduce the writes, the snapshots may be generated by preferentially referring to already stored copies of data for the snapshot rather than storing an additional copy of data for the snapshot. The snapshots may be maintained by storing copies of data for the snapshot only when live data diverges from the snapshot.
Storage device using buffer memory in read reclaim operation
A storage device includes a nonvolatile memory device, a memory controller, and a buffer memory. The memory controller determines a first memory block of the nonvolatile memory device, which is targeted for a read reclaim operation, and reads target data from a target area of the first memory block. The target data are stored in the buffer memory. The memory controller reads at least a portion of the target data stored in the buffer memory in response to a read request corresponding to at least a portion of the target area.
Wear leveling in EEPROM emulator formed of flash memory cells
The present embodiments relate to systems and methods for implementing wear leveling in a flash memory device that emulates an EEPROM. The embodiments utilize an index array, which stores an index word for each logical address in the emulated EEPROM. The embodiments comprise a system and method for receiving an erase command and a logical address, the logical address corresponding to a sector of physical words of non-volatile memory cells in an array of non-volatile memory cells, the sector comprising a first physical word, a last physical word, and one or more physical words between the first physical word and the last physical word; when a current word, identified by an index bit, is the last physical word in the sector, erasing the sector; and when the current word is not the last physical word in the sector, changing a next index bit.
System to identify aggressor blocks causing back to back erase failure
Aspects of a storage device including a controller are provided which identifies a bad, open block that causes subsequent erase operations to fail in closed blocks due to charge leakage following a previous program operation in the open block. Each time the controller programs an open block, the controller attempts to erase a plurality of closed blocks following each programming of the open block. When the closed blocks fail to erase, the controller determines whether a number of consecutive erase failures after programming the open block meets a threshold, after which the controller re-attempts to erase the closed blocks. After a successful re-attempt, the controller stores a list of open blocks in memory. In response to repeating these steps a number or plurality of times, the controller stores multiple lists of open blocks in memory, and identifies the single common open block between the multiple lists as a bad block.
READ AND WRITE METHODS AND MEMORY DEVICES
A read and write method includes: applying a read command to a memory device, the read command indicating address information; reading data to be read from a storage unit corresponding to the address information indicated by the read command; and if an error occurs in the data to be read, associating the address information indicated by the read command with a spare storage unit, and backing up the address information indicated by the read command and association information between the address information and the spare storage unit in a non-volatile storage unit based on a preset rule.
Fast garbage collection in zoned namespaces SSDs
A data storage device includes a memory device and a controller coupled to the memory device. The data storage device supports zoned namespace. The controller is configured to maintain a zone timestamp table that includes a corresponding timestamp for each zone and add a timestamp to each garbage collection block of the memory device. The controller is further configured to scan a garbage collection block from a last physical block address (PBA) entry to a first PBA entry, determine a zone timestamp for the scanned PBA entry, and compare the zone timestamp to a timestamp of the garbage collection block. The controller is further configured to create and maintain a zone timestamp table and create and maintain a zone based defragmentation table.
Systems and methods for data relocation using a signal development cache
Methods, systems, and devices related to data relocation via a cache are described. In one example, a memory device in accordance with the described techniques may include a memory array, a sense amplifier array, and a signal development cache configured to store signals (e.g., cache signals, signal states) associated with logic states (e.g., memory states) that may be stored at the memory array (e.g., according to various read or write operations). In some cases, the memory device may transfer data from a first address of the memory array to the signal development cache. The memory device may transfer the data stored in the signal development cache to a second address of the memory array based on a parameter associated with the first address of the memory array satisfying a criterion for performing data relocation.
Managing cache replacement in a storage cache based on input-output access types of data stored in the storage cache
An apparatus comprises a processing device configured to monitor a storage cache storing a plurality of cache pages to determine whether the storage cache reaches one or more designated conditions and to determine cache replacement scores for at least a subset of the cache pages, the cache replacement scores being determined based at least in part on input-output access types for data stored in the cache pages. The processing device is also configured to select, responsive to determining that the storage cache has reached at least one of the one or more designated conditions, at least one of the cache pages to move from the storage cache to a storage device based at least in part on the determined cache replacement scores. The processing device is further configured to move the selected at least one of the plurality of cache pages from the storage cache to the storage device.
CACHE DATA DETERMINING METHOD AND APPARATUS
The present embodiments provide a cache data determining method and apparatus, and pertain to the field of computer technologies. The method includes: acquiring a data identifier of read cache miss data; selecting, based on the acquired data identifier, a data identifier of to-be-determined data; recording data identifiers by groups; collecting statistics on quantities of occurrence times, in each group, of the data identifiers; and selecting target to-be-determined data according to the quantities of occurrence times, and determining the target to-be-determined data as cache miss data to be written into a cache memory. Data identifiers are recorded by groups, and after statistics on quantities of occurrence times, in each group, of the data identifiers is collected, target to-be-determined data is selected according to the quantities of occurrence times, and the target to-be-determined data is determined as cache miss data to be written into a cache memory.