Patent classifications
G06F3/0614
Immediate Partial Host Buffer Fetching
The present disclosure generally relates to improving data transfer in a data storage device. Not only prior to executing a command received from a host device, but even before scheduling the command, the data storage device parses the command and fetches physical region page (PRP) entries and/or scatter-gather list (SGL) entries. The fetching occurs just after receiving the command. Additionally, the host buffer pointers, which are described in PRP or SGL methods, associated with the entries are also fetched prior to scheduling the command. The fetching is a function of device constraints, queue depth, and/or tenant ID in a multi-tenant environment. The immediate fetching of at least part of the host buffers improves device performance, particularly in sequential write or read look ahead (RLA) scenarios.
Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
A Storage Area Network (SAN) system has host computers, front-end SAN controllers (FE_SAN) connected via a bus or network interconnect to back-end SAN controllers (BE_SAN), and physical disk drives connected via network interconnect to the BE_SANs to provide distributed high performance centrally managed storage. Described are hardware and software architectural solutions designed to eliminate I/O traffic bottlenecks, improve scalability, and reduce the overall cost of SAN systems. In an embodiment, the BE_SAN has firmware to recognize when, in order to support a multidisc volume, such as a RAID volume, it is configured to support, it requires access to a physical disk attached to a second BE_SAN; when such a reference is recognized it passes assess commands to the second BE_SAN. Buffer memory of each FE_SAN is mapped into application memory space to increase access speed, where multiple hosts share an LBA the BE_SAN tracks writes and invalidates the unwritten buffers.
Memory operations using compound memory commands
Memory operations using compound memory commands, including: receiving, by a memory module, a compound memory command indicating one or more operations to be applied to each portion of a plurality of portions of contiguous memory in the memory module; generating, based on the compound memory command, a plurality of memory commands to apply the one or more operations to each portion of the plurality of portions of contiguous memory; and executing the plurality of memory commands.
Write bank group mask during arbitration
A memory controller includes an arbiter for selecting memory requests from a command queue for transmission to a dynamic random access memory (DRAM) memory. The arbiter includes a bank group tracking circuit that tracks bank group numbers of three or more prior write requests selected by the arbiter. The arbiter also includes a selection circuit that selects requests to be issued from the command queue, and prevents selection of write requests and associated activate commands to the tracked bank group numbers unless no other write request is eligible in the command queue. The bank group tracking circuit indicates that a prior write request and the associated activate commands are eligible to be issued after a number of clock cycles has passed corresponding to a minimum write-to-write timing period for a bank group of the prior write request.
Memory system and operating method for testing target firmware by processing a plurality of test commands
Embodiments of the present disclosure relate to a memory system and an operating method thereof. According to the embodiments of the present disclosure, the memory system may, when setting a firmware as a target firmware, generate a plurality of test commands to test the target firmware, test the target firmware by processing the plurality of test commands, and randomly generate logical block address (LBA) values corresponding to each of the plurality of test commands based on a seed value corresponding to each of the plurality of test commands.
ENHANCED FILESYSTEM SUPPORT FOR ZONE NAMESPACE MEMORY
A processing device in a memory sub-system identifies a first memory device and a second memory device and configures the second memory device with a zone namespace. The processing device identifies a first portion and a second portion of the first memory device, the first portion storing zone namespace metadata corresponding to the zone namespace on the second memory device. The processing device further exposes the second portion of the first memory device to a host system as a non-zoned addressable memory region.
IMPLEMENTING FAULT TOLERANT PAGE STRIPES ON LOW DENSITY MEMORY SYSTEMS
An example memory sub-system comprises: a memory device; and a processing device, operatively coupled with the memory device. The processing device is configured to: receive a first host data item; store the first host data item in a first page of a first logical unit of a memory device, wherein the first page is associated with a fault tolerant stripe; receive a second host data item; store the second host data item in a second page of the first logical unit of the memory device, wherein the second page is associated with the fault tolerant stripe, and wherein the second page is separated from the first page by one or more wordlines including a dummy wordline storing no host data; and store, in a third page of a second logical unit of the memory device, redundancy metadata associated with the fault tolerant stripe.
TRACKING DATA MIRROR DIFFERENCES
Methods, apparatus, and processor-readable storage media for tracking data mirror differences are provided herein. An example computer-implemented method includes obtaining a request to start tracking data differences between a plurality of data mirror volumes of a storage system, wherein the storage system is configured to apply at least a first data tracking technique that tracks the data differences using one or more bitmap records and a second data tracking technique that tracks the data differences using or more journal records; selecting at least one of the first data tracking technique and the second data tracking technique using one or more selection criteria; and tracking the data differences in accordance with the selected at least one data tracking technique.
Method, apparatus and computer program product for managing cache
Techniques manage a cache. Such techniques involve creating a primary cache by a cache management module in a storage system. Such techniques further involve: in response to the primary cache being created, sending a first request to a hardware management module to obtain first information about a first virtual disk. Such techniques further involve: in response to receiving the first information from the hardware management module, creating a secondary cache using the first virtual disk. Such techniques further involve: in response to an available capacity of the primary cache being below a predetermined threshold, flushing at least one cache page in the primary cache to the secondary cache. In certain techniques, it is possible to use spare extents in the disk array to create the secondary cache to increase a total capacity of the cache in the system, thereby improving the access performance of the system.
Memory system, memory controller, and operation method
Embodiments of the present disclosure relate to a memory system, a memory controller and an operating method, which allocate one or more of a plurality of buffer slots in a buffer pool to a write buffer as write buffer slots or to a read buffer as read buffer slots, configures initial values of count information on the respective write buffer slots and the respective read buffer slots, which indicate remaining allocation periods respectively, and updates the count information on each of at least some of the write buffer slots when data is written to the write buffer or updates the count information on each of at least some of the read buffer slots when data is read out from the read buffer, thereby providing optimal data read and write performance and minimizing overhead caused in the process of dynamically changing the buffer size.