Dynamic zns open partition activity limit
By dynamically adjusting the partition activity limit (ZAL) of ZNS devices, the problem of worst-case settings in ZNS devices is solved, improving memory utilization and device lifespan, and optimizing performance and durability.
Patent Information
- Application Number
- CN202080079966.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-30
- Filing Date
- 2020-06-01
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2040-06-01
AI Technical Summary
The partition activity limit (ZAL) value in existing ZNS devices is set based on worst-case scenarios, resulting in low memory utilization and reduced device lifespan. It is also unable to adapt to changes in device behavior, such as the impact of temperature and fault-induced bit flip counts.
By dynamically adjusting the partition activity limit (ZAL) of the partition namespace (ZNS), the ZAL value is updated in real time and sent to the host device based on changes in factors such as temperature, faults, or tortuous bit counts during device operation, thus avoiding fixed worst-case assumptions.
It enables more flexible device operation, improves memory utilization and device lifespan, optimizes performance and durability, and allows host devices to better utilize ZNS products.
Smart Images

Figure CN114730604B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. application No. 16 / 835,191, filed on March 30, 2020, which is incorporated herein by reference in its entirety. Background Art Technical Field
[0003] Embodiments of the present disclosure generally relate to dynamically adjusting a zone activity limit (ZAL) of a zone namespace (ZNS) in a storage system.
[0004] Description of the Related Art
[0005] Zoned Namespaces (ZNS) is a new direction in storage where data storage devices restrict writes to sequential partitions. ZNS aims to reduce device-side write amplification and overprovisioning by aligning host write patterns with internal device geometry and reducing the need for device-side writes that are not directly linked to host writes.
[0006] ZNS offers many benefits, including: reduced cost due to minimal DRAM requirements per SSD (solid-state drive); potential savings due to reduced need to over-provision NAND media; better SSD lifespan by reducing write amplification; significantly reduced latency; significantly improved throughput; and standardized interfaces to external systems that enable powerful software and hardware.
[0007] In a ZNS environment, the data storage device controller provides the host device with a partition activity limit (ZAL) when a partition is open. The ZAL indicates how long an open partition can remain open. The ZAL is fixed for the entire period that a block is in use by the host device, and the host device must complete the operation and close the partition before the ZAL ends.
[0008] ZAL is set based on worst-case assumptions, which results in considering the worst-case scenarios that a data storage device may face during the lifetime of the device. The worst-case scenarios result in a lower ZAL value provided to the host device and, therefore, lower memory utilization.
[0009] Therefore, there is a need in the art for a ZNS device with a more robust ZAL value. Summary of the Invention
[0010] The present disclosure generally relates to dynamically adjusting a zone activity limit (ZAL) of a zone namespace (ZNS). Rather than assuming a worst case of the ZNS, the ZAL can be dynamically adjusted even after it is provided to a host device. In doing so, device behavior changes due to factors such as temperature, faults, or flip bit counts, and device cycles can be considered to have an impact on the ZAL. The ZAL can then be adjusted over time, and a new ZAL can be sent to the host device. Thus, the host device will receive updated ZAL values over time as the device is running, rather than a fixed worst case ZAL.
[0011] In one embodiment, a data storage device includes a memory device; and a controller coupled to the memory device and supporting at least one zone namespace (ZNS), wherein the controller is configured to: receive a request from a host device to open a new zone; communicate an initial zone activity limit (ZAL) value of the ZNS to the host device; change the initial ZAL value of the ZNS to a new ZAL value of the ZNS; and send the new ZAL value of the ZNS to the host device.
[0012] In another embodiment, a data storage device includes a memory device; and a controller coupled to the memory device, wherein the controller is configured to: provide an initial zone activity limit (ZAL) value of a zone namespace (ZNS) to a host device; analyze blocks of the ZNS; determine conditions of block operations; calculate a new ZAL value of the ZNS; and send the new ZAL value of the ZNS to the host device.
[0013] In another embodiment, a data storage device includes a memory device; a controller coupled to the memory device; and means for dynamically changing an initial zone activity limit (ZAL) value to a new ZAL value upon opening of a zone namespace (ZNS). BRIEF DESCRIPTION OF DRAWINGS
[0014] Therefore, by reference to the embodiments, a detailed understanding of the above- described features of the present disclosure, a more particular description of the application, briefly summarized above, can be had by reference to the embodiments which are illustrated in the drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure can admit to other equally effective embodiments.
[0015] Figure 1 is a schematic block diagram of a storage system showing a storage device having a storage device that can be used as a host device in accordance with one or more techniques of the present disclosure.
[0016] Figure 2A is a schematic diagram of a conventional block storage device.
[0017] Figure 2B is a schematic diagram of a zoned block storage device according to one embodiment.
[0018] Figure 3A is a schematic diagram of device control for a traditional SSD.
[0019] Figure 3B is a schematic diagram of device control for a ZNS SSD according to one embodiment.
[0020] Figure 4 is a schematic diagram of a state diagram for a ZNS SSD according to one embodiment.
[0021] Figure 5 is a schematic diagram of a failure or flipping bit count (FBC) distribution for each cycle condition at various points in time in the life of a ZNS SSD.
[0022] Figure 6 is a flow diagram illustrating dynamic ZNS open block validity time calculation according to one embodiment.
[0023] To facilitate an understanding of this description, like reference characters are used to identify like elements throughout the service figures. It should be appreciated that any element of one embodiment disclosed can be readily adapted to other embodiments without specific recitation. DETAILED DESCRIPTION
[0024] In the following, reference is made to embodiments of the present disclosure. However, it should be understood that the present disclosure is not limited to the specifically described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, can be utilized to realize and practice the present disclosure. In addition, although the embodiments of the present disclosure can achieve advantages over other possible solutions and / or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not a limitation of the present disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims, unless specifically recited therein. Likewise, reference to “the present disclosure” should not be construed as an identification of any one or all of the inventive subject matter disclosed herein, and should not be construed as a limitation of the inventive subject matter to the specific embodiments presented in the following description.
[0025] The present disclosure generally relates to dynamically adjusting a zone activity limit (ZAL) for a zone namespace (ZNS). Rather than assuming a worst case for the ZNS, the ZAL can be dynamically adjusted even after it is provided to a host device. In doing so, device behavior changes due to factors such as temperature, faults, or flip bit counts, and device cycles can be considered to have an impact on the ZAL. The ZAL can then be adjusted over time, and a new ZAL can be sent to the host device. Thus, the host device will receive updated ZAL values over time as the device is running, rather than a fixed worst case ZAL.
[0026] Figure 1 is a schematic block diagram illustrating a storage system 100 in accordance with one or more techniques of the present disclosure, in which a data storage device 106 can be used as a storage device for a host device 104. For example, the host device 104 can utilize NVM (non-volatile memory) 110 included in the data storage device 106 to store and retrieve data. The host device 104 includes a host DRAM 138 that includes a read buffer 140. The read buffer 140 can be used to store read commands to be sent to the data storage device 106. In some examples, the storage system 100 can include multiple storage devices, such as the data storage device 106, that can work as a storage array. For example, the storage system 100 can include multiple data storage devices 106 that are configured to collectively work as a redundant array of inexpensive / independent disks (RAID) for the host device 104.
[0027] The storage system 100 includes a host device 104 that can store data to and / or retrieve data from one or more storage devices, such as the data storage device 106. As shown, the host device 104 can communicate with the data storage device 106 via an interface 114. The host device 104 can include any of a variety of devices, including a computer server, a network-attached storage (NAS) unit, a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a telephone handset such as a so-called “smart” phone, a so-called “smart” pad, a television, a camera, a display device, a digital media player, a video gaming console, a video streaming device, an Internet of Things (IOT) device, etc. Figure 1
[0028] The data storage device 106 includes a controller 108, a non-volatile memory 110 (NVM 110), a power supply 111, a volatile memory 112, an interface 114, and a write buffer 116. In some examples, for clarity, the data storage device 106 can include only the NVM 110 and the controller 108, and the power supply 111, the volatile memory 112, the interface 114, and the write buffer 116 can be omitted. Figure 1 additional components not shown. For example, the data storage device 106 can include a printed circuit board (PCB) to which components of the data storage device 106 are mechanically attached, and which includes conductive traces that electrically interconnect the components of the data storage device 106, etc. In some examples, the physical size and connector configuration of the data storage device 106 can conform to one or more standard form factors. Some example standard form factors include, but are not limited to, 3.5" data storage devices (e.g., hard disk drives (HDDs) or SSDs), 2.5" data storage devices, 1.8" data storage devices, peripheral component interconnect (PCI), PCI extended (PCI-X), PCI Express (PCIe) (e.g., PCIe xl, x4, x8, x16, PCIe Mini card, MiniPCI, etc.). In some examples, the data storage device 106 can be directly coupled (e.g., directly soldered) to a motherboard of the host device 104.
[0029] The interface 114 can include one or both of a data bus for exchanging data with the host device 104 and a control bus for exchanging commands with the host device 104. The interface 114 can operate according to any suitable protocol. For example, the interface 114 can operate according to one or more of the following protocols: Advanced Technology Attachment (ATA) (e.g., Serial ATA (SATA) and Parallel ATA (PATA)), Fibre Channel Protocol (FCP), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), PCI and PCIe, Non-Volatile Memory express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), Open Channel SSD (OCSSD), etc., so long as such protocols support partition management. Electrical connections of the interface 114 (e.g., the data bus, the control bus, or both) are electrically connected to the controller 108, providing electrical connections between the host device 104 and the controller 108, allowing data to be exchanged between the host device 104 and the controller 108. In some examples, the electrical connections of the interface 114 can also allow the data storage device 106 to receive power from the host device 104. For example, as shown, the power supply 111 can receive power from the host device 104 via the interface 114. Figure 1
[0030] The data storage device 106 includes an NVM 110, which can include a plurality of memory devices or storage units. The NVM 110 can be configured to store and / or retrieve data. For example, a storage unit of the NVM 110 can receive data and receive a message from the controller 108 instructing the storage unit to store the data. Similarly, a storage unit of the NVM 110 can receive a message from the controller 108 instructing the storage unit to retrieve data. In some examples, each of the storage units can be referred to as a die. In some examples, a single physical chip can include multiple dies (i.e., multiple storage units). In some examples, each storage unit can be configured to store a relatively large amount of data (e.g., 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, 64 GB, 128 GB, 256 GB, 512 GB, 1 TB, etc.).
[0031] In some examples, each storage unit of the NVM 110 can include any type of non-volatile memory device, such as a flash memory device, a phase change memory (PCM) device, a resistive random access memory (ReRAM) device, a magnetoresistive random access memory (MRAM) device, a ferroelectric random access memory (F-RAM), a holographic memory device, and any other type of non-volatile memory device.
[0032] The NVM 110 can include a plurality of flash memory devices or storage units. A flash memory device can include a NAND or NOR based flash memory device and can store data based on charge contained in a floating gate of a transistor for each flash memory cell. In a NAND flash memory device, the flash memory device can be divided into a plurality of blocks, which can be divided into a plurality of pages. Each block of the plurality of blocks within a particular memory device can include a plurality of NAND cells. Rows of NAND cells can be electrically connected using a word line to define a page of the plurality of pages. Respective cells in each page of the plurality of pages can be electrically connected to a respective bit line. Further, the NAND flash memory device can be a 2D or 3D device and can be a single-level cell (SLC), a multi-level cell (MLC), a triple-level cell (TLC), or a quad-level cell (QLC). The controller 108 can write data to and read data from the NAND flash memory device at a page level and erase data from the NAND flash memory device at a block level.
[0033] The data storage device 106 includes a power source 111 that can provide power to one or more components of the data storage device 106. When operating in a standard mode, the power source 111 can power the one or more components using power provided by an external device, such as the host device 104. For example, the power source 111 can power the one or more components using power received from the host device 104 via the interface 114. In some examples, the power source 111 can include one or more power storage components configured to power the one or more components when operating in an off mode, such as in the event that power is stopped being received from the external device. In this way, the power source 111 can act as an on-board backup power source. Some examples of the one or more power storage components include, but are not limited to, capacitors, supercapacitors, batteries, and the like. In some examples, the amount of power that can be stored by the one or more power storage components can be a function of the cost and / or size (e.g., area / volume) of the one or more power storage components. In other words, as the amount of power stored by the one or more power storage components increases, the cost and / or size of the one or more power storage components also increases.
[0034] The data storage device 106 also includes a volatile memory 112 that can be used by the controller 108 to store information. The volatile memory 112 can include one or more volatile memory devices. In some examples, the controller 108 can use the volatile memory 112 as a cache. For example, the controller 108 can store cached information in the volatile memory 112 until the cached information is written to the non-volatile memory 110. As shown, the volatile memory 112 can consume power received from the power source 111. Examples of the volatile memory 112 include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static RAM (SRAM), and synchronous dynamic RAM (SDRAM (e.g., DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4, etc.). Figure 1
[0035] The data storage device 106 includes a controller 108 that can manage one or more operations of the data storage device 106. For example, the controller 108 can manage reading data from the NVM 110 and / or writing data to the NVM. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 can initiate a data storage command to store data to the NVM 110 and monitor the progress of the data storage command. The controller 108 can determine at least one operational characteristic of the storage system 100 and store the at least one operational characteristic to the NVM 110. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 temporarily stores data associated with the write command in an internal memory or write buffer 116 before sending the data to the NVM 110.
[0036] Figure 2A and Figure 2B is a diagram of a block storage device according to various embodiments. In one embodiment, Figure 2A and Figure 2B the block storage device of Figure 1 the NVM 110 of the data storage device 106 of Figure 2A and Figure 2B the block storage device of Figure 2A and Figure 2B Each square of the block storage device of
[0037] Figure 2A is a diagram of a (non-partitioned) block storage device. In a traditional block storage system, data is written to the storage device in order. However, data can be inefficiently written to the drive, resulting in a decrease in the drive’s working or effective capacity. In Figure 2A data has been written to blocks that are interspersed throughout the block storage device. To overcome inefficient writes to the drive, the block storage system can be over-provisioned such that the exposed capacity (i.e., the capacity available for data) is similar to the effectively written block storage device capacity. The increased capacity of the storage device and the inefficient writes to the storage device can require a large mapping table (such as a logical-to-physical (L2P) table) within volatile memory (such as the volatile memory 112 of Figure 1 to store the location of data within the block storage device. The large mapping table can require high-capacity volatile memory 112, which can be cost-inefficient or expensive.
[0038] Figure 2B is a diagram of a zoned block storage device. The zoned block storage device is divided into a plurality of zones, where the Nth zone corresponds to the last zone in the storage device, and each zone has equal capacity. In another embodiment, the zoned block storage device is divided into a plurality of beams, where each beam has different capacity. In a zoned block storage system, the system implements a ZNS protocol in hardware or firmware that limits data writes to sequential writes within a zone. In Figure 2B In, data has been written sequentially into the first four blocks of zone 1, sequentially into the first six blocks of zone 2, and sequentially into the first four blocks of zone N. Because the ZNS limits data writes to sequential writes within a zone, the capacity of each zone is optimized. As a result, the available capacity of the storage device (i.e., the available capacity for data) is increased rather than having to over-provision the storage device to maintain the same amount of available capacity. The better utilization of the available capacity of the data of the zoned block storage device can reduce the size of the mapping table or L2P table stored in volatile memory 112, which can reduce the size of the volatile memory 112 required.
[0039] Figure 3A and Figure 3B is a diagram of device control of an SSD according to various embodiments. Figure 2A and Figure 2B Aspects of Figure 3A and Figure 3B may be applicable to Figure 3A and Figure 3B The flash memory device of Figure 1 may be the NVM 110 of the data storage device 106 of Figure 3A and Figure 3B The flash memory device of Figure 3A and Figure 3B Each square of the block storage device of
[0040] Figure 3Ais a diagram of device control for a traditional SSD. The SSD receives data from multiple applications such as application 1, application 2, and application 3. The data is stored in the flash memory of the SSD. In the SSD, the storage device controls data placement. Data is written to the flash memory in order such that data from each application can be written in the order the data was received. Because data from each application can be random throughout the entire order write, durability can be impacted when different applications interleave data.
[0041] Figure 3B is a diagram of device control for a ZNS SSD. Similar to Figure 3A , the SSD receives data from multiple applications such as application 1, application 2, and application 3. The data is stored in the flash memory of the SSD. In the SSD, the application or host (such as host device 104 of Figure 1 ) controls data placement in the zones. The flash memory of the SSD is divided into various equal capacity zones. These zones can be viewed as parallel units where the host device 104 can direct workloads or data to a particular parallel unit (i.e., the host has block access to the flash memory). For example, data associated with application 1 is located in a first zone, while data associated with application 2 is located in a second zone, and data associated with application 3 is located in a third zone. Due to zone provisioning, data associated with application 1 and data associated with application 2 are stored separately, thereby potentially improving durability.
[0042] Figure 4 is a diagram of a state diagram for a ZNS SSD according to one embodiment. In Figure 4 , various zone states (ZS) are empty (i.e., ZSE: empty), implicitly open (i.e., ZSIO: implicitly open), explicitly open (i.e., ZSEO: explicitly open), closed (i.e., ZSC: closed), full (i.e., ZSF: full), read-only (i.e., ZSRO: read-only), and offline (i.e., ZSO: offline). The general flow path for a zone can be from an empty state to an open state, which can be implicitly open or explicitly open. From the open state, the zone can be at full capacity such that the ZNS is full. After the full state, the zone contents can be erased, which resets the ZNS to empty.
[0043] In a controller (such as Figure 1The initial state of each partition after a power-on or reset event is determined by the partition characteristics of each partition. For example, the partition state ZSE: empty is represented by a valid write pointer (WP) pointing to the lowest LBA in the partition (i.e., the partition start LBA). The partition state ZSC: closed is represented by a WP not pointing to the lowest LBA in the partition. The partition state ZSF: full is the initial state when the most recent partition condition was full. The partition state ZSRO: read-only is the initial state when the most recent partition condition was read-only. The partition state ZSO: offline is the initial state when the most recent partition condition was offline.
[0044] The partition can have any total capacity or total size, such as 256 MiB or 512 MiB. However, a small portion of each partition can not be accessible to write data to, but can still be read, such as the portion of each partition storing XOR data, metadata, and one or more excluded erase blocks. For example, if the total capacity of a partition is 512 MiB, then the zone capacity (ZCAP) can be 470 MiB, which is the capacity available to write data to, and 42 MiB is not available to write data to. The ZCAP of a partition is equal to or less than the total partition storage capacity or total partition storage size. A data storage device, such as Figure 1 a block storage device of Figure 2B a block storage device of Figure 3B an SSD, can determine the ZCAP of each partition at a partition reset. For example, a controller, such as Figure 1 a controller 108 of
[0045] When a partition is empty (i.e., ZSE: empty), the partition contains no data (i.e., none of the erase blocks in the partition currently store data), and the write pointer (WP) is at the partition start LBA (ZSLBA) (i.e., WP = 0). The ZSLBA refers to the start of the partition (i.e., the first NAND location of the partition). The write pointer indicates the location in the partition of the storage device where data is written to. Once a write is scheduled to the partition or a partition open command is issued by the host (i.e., ZSIO: implicit open or ZSEO: explicit open), the empty partition will switch to an open and active partition. Partition management (ZM) commands can be used to move a partition between a partition open and a partition closed state (both active states). If a partition is active, the partition includes open blocks that can be written to, and a description of the recommended time in active state can be provided to the host. The controller 108 includes ZM (not shown). Partition metadata can be stored in the ZM and / or the controller 108.
[0046] The term "write" includes programming user data on 0 or more NAND locations in an erase block and / or partially filled NAND locations in an erase block when user data has not yet filled all available NAND locations. The NAND locations can be flash locations, such as Figure 2A and Figure 2B as mentioned in Figure 3A and Figure 3B The term "write" can also include moving a zone to a full (i.e., ZSF: full) state due to internal drive processing needs (open block data retention issues because error bits are accumulating faster on open erase blocks), the data storage device 106 shutting down or filling a zone due to resource limitations (like too many open zones to track or find defect states, etc.), or the host device, such as Figure 1 the host device 104 shutting down a zone because of issues such as no more data to send to the drive, the computer shutting down, error processing on the host, limited host resources for tracking, etc.
[0047] An active zone can be open (i.e., ZSIO: implicit open or ZSEO: explicit open) or closed (i.e., ZSC: closed). An open zone is an empty zone or a partially filled zone that is ready to be written to and has currently allocated resources. Data received from the host device with a write command or zone append command can be programmed to an open erase block that is not currently filled with previous data. A closed zone is an empty zone or a partially filled zone that is not currently receiving writes from the host on a continuous basis. Moving a zone from an open state to a closed state allows the controller 108 to reallocate resources to other tasks. These tasks can include, but are not limited to, other open zones, other regular non-zone areas, or other controller needs.
[0048] In open and closed zones, the write pointer points to some location in the zone between the ZSLBA and the end of the last LBA of the zone (i.e., WP > 0). An active zone can be toggled between open and closed states according to a designation by the ZM or when a write is scheduled to the zone. Additionally, the ZM can reset an active zone to clear or erase data stored in the zone so that the zone toggles back to an empty zone. Once an active zone is full, the zone toggles to a full state. A full zone is a zone that is completely filled with data and has no more available blocks for writing data (i.e., WP = zone capacity (ZCAP)). In a full zone, the write pointer points to the end of the writeable capacity of the zone. Read commands of data stored in a full zone can still be executed.
[0049] The ZM can reset a full zone (i.e., ZSF: full) to schedule erasure of data stored in the zone so that the zone switches back to an empty zone (i.e., ZSE: empty). In resetting a full zone, although the zone can be marked as an empty zone available for writes, the data of the zone can not be immediately purged. However, the reset zone must be erased before switching to an open and active zone. The zone can be erased at any time between ZM reset and ZM open. In resetting the zone, the data storage device 106 can determine a new ZCAP for the zone and update the writeable ZCAP attribute in the zone metadata. An offline zone is a zone in which data cannot be written. An offline zone can be in a full state, an empty state, or in a partially full state without being in an active state.
[0050] Since resetting a zone purges or schedules erasure of data stored in the zone, the need for garbage collection of individual erase blocks is eliminated, improving the overall garbage collection process of the data storage device 106. The data storage device 106 can mark one or more erase blocks for erasure. When a new zone is to be formed and the data storage device 106 anticipates ZM open, then the one or more erase blocks marked for erasure can be erased. The data storage device 106 can also decide and create the physical backing of the zone at the time of erasing the erase block. Thus, once a new zone is opened and an erase block is selected to form the zone, the erase block will be erased. Further, each time a zone is reset, a new order of LBAs and write pointers of the zone can be selected, enabling the zone to tolerate out-of-order received commands. The write pointers can optionally be closed so that commands can be written to any starting LBA as indicated by the command.
[0051] The controller 108 provides a T 分区活动限制 (ZAL) value for each zone. In various embodiments, the ZAL can also apply to blocks and / or streams. A ZAL value is assigned to each zone, which indicates the time for which an open zone can remain open. In a standard storage device, the ZAL value is fixed for the entire duration that the relevant zone is used by the host device 104 (i.e., the storage device receives a write command or a read command for the relevant zone from the host). The ZAL value is shared by each zone of the namespace (i.e., a global ZAL value). The ZAL value corresponds to a maximum time value before an unacceptable amount of bit errors has accumulated in the zone. The host device 104 or the data storage device 106 can close the zone before the ZAL value is reached to avoid accumulating an unacceptable amount of bit errors.
[0052] If the zone activity limit is restricted to a non-zero value, the controller can transition a zone in any of the "ZSIO: Implicit Open", "ZSEO: Implicit Open", or "ZSC: Closed" states to the "ZSF: Full" state. When a zone transitions to the "ZSIO: Implicit Open" state or the "ZSEO: Explicit Open" state, an internal timer in seconds is started so that the host device 104 or the data storage device 106 identifies when the ZAL value is exceeded. If the ZAL value or time limit is exceeded, the controller 108 can either warn the host device 104 that the zone needs to end (i.e., the zone needs to be in full load) or transition the zone to the "ZSF: Full" state. When the host device 104 is warned that the zone needs to end, the zone end recommended field is set to 1 and a zone information change event is reported to the host device 104. When the zone transitions to the "ZSF: Full" state, the zone by controller field is set to 1 and a zone information change event is reported to the host device 104. Because the ZAL value is a global parameter for each zone of a storage device, the zone can close too early, allowing for less than optimal storage drive operation, or can close too late, allowing for an unacceptable amount of bit errors to accumulate, which can result in a decrease in the integrity of the data storage device. The unacceptable accumulation of bit errors can also result in a decrease in the performance of the data storage device. The global ZAL parameter is a static parameter and can be based on a worst case estimate of the conditions that the host can face.
[0053] Figure 5 is a schematic of a failure or flipped bit count (FBC) distribution of each cycle condition at various points in time in the life of a ZNS SSD. The bit error rate (BER) estimates the amount of failure or flipped bits (i.e., FBC) in a memory device or each individual storage cell within a memory device. The BER can also be used to estimate the FBC of a zone within a storage cell. The term "zone" can also refer to any grouping of memory locations or NAND locations such as, but not limited to, a block, a beam, a die, etc.
[0054] In Figure 5 nine different embodiments of ZAL values are shown. Figure 5Each embodiment of the ZAL measurement is an example of a statistical distribution of ZAL measurements at different cycle levels and different retention periods (RT levels). FBC is on the x-axis and the probability of obtaining the FBC is on the y-axis. Each plot of individual ZAL values includes a curve corresponding to individual cycle values. Cycle values can refer to write / erase cycles, where each occurrence of a write or erase wears out and can lose the ability to store data for a flash memory cell. For example, cycle values shown are 1 cycle, 100 cycles, 500 cycles, and 1500 cycles. The cycle values listed are not intended to be limiting, but provide various examples of possible embodiments. For each ZAL value, FBC increases as the cycle value increases (i.e., the curve shows less than the best case). FBC also increases relative to the ZAL value increases.
[0055] A global ZAL value can be set by selecting a value corresponding to the current cycle condition (e.g., a cycle value of 1 cycle, a cycle value of 100 cycles, etc.) and the open partition time of the memory cell or memory location. After selecting the current cycle condition, the rightmost FBC value of the relevant cycle curve is selected. For example, for a cycle value of 1500 for the “After 314 hours” plot, the rightmost FBC value is about 490 FBC / 4 KiB. The rightmost value is a predefined FBC value that represents an end-of-life condition for the storage cell or memory cell. The ZAL value is selected based on the maximum allowed FBC value for the given cycle value. For example, if the cycle value is 1500 cycles and the maximum FBC value is 500 KiB, a ZAL value of about 400 hours is selected, as shown in the “After _400 hours” plot. After the global ZAL value is exceeded, the host (such as the host device 104 of Figure 1 is notified by the controller (such as the controller 108 of the data storage device 106 of Figure 1 ).
[0056] Figure 6 is a flowchart showing dynamic ZNS open block valid time calculation according to one embodiment. Figure 5 Aspects of the Figure 6 are used. The host (such as the host device 104 of Figure 1The host device 104) has block access, such that the host can issue commands to open a block or any similar grouping of NAND locations, such as a beam, a zone, etc. A storage unit is comprised of memory units, and each memory unit includes a plurality of NAND locations. The storage unit can be any multi-level cell, such as SLC, MLC, TLC, QLC, or any other iteration of multi-level cell not listed. The host device 104 is notified of changes in ZAL values due to changes in block conditions or variations between blocks. When the host device 104 is notified of a change in ZAL values from a zone of the global ZAL values, the zone completion recommendation (ZFR) can be modified. Further, a log page of zone-specific ZAL values for each zone is kept, such that the host device 104 decides when each zone should be closed. When a zone is closed, the zone is either at capacity from user data or filled with book data to achieve zone capacity.
[0057] At block 602, a data storage device (such as the data storage device 106 of Figure 1 receives a request from a host device 104 to open a new zone. When a new zone is opened, a controller (such as the controller 108 of Figure 1 logically sets the RT_level equal to 1 and records the current temperature (i.e., Xtemp). The RT_level can refer to the various embodiments described in Figure 5 When the RT_level is equal to 1, the relevant graph of Figure 5 is the "Time 0" graph.
[0058] The controller 108 includes a temperature sensor (not shown) to monitor the temperature of each storage unit. The temperature sensor can have the ability to record the temperature of a particular memory location of a storage unit, such as a block or a zone. Xtemp refers to the temperature of the relevant zone or the like corresponding to the host request to open a new zone. A change in temperature of a zone or memory location can affect adjacent zones or memory locations. Further, a change in temperature of a zone or memory location can increase the FBC and can utilize another set of distribution tables similar to the embodiments of Figure 5
[0059] At block 606, the controller 108 checks the number of typical cycles for a zone of a storage unit. At block 608, the controller 108 checks the current typical FBC, as shown in Figure 5 After checking the current typical FBC at block 608, at block 610, the controller determines whether Xtemp has changed. At block 612, if Xtemp has changed, the RT_level is increased by 1, and Xtemp is updated to the current temperature.
[0060] At block 610 if Xtemp does not change or at block 612 increases RT_level and records the updated Xtemp, at block 614 the controller 108 sets the percentile. The percentile is set based on the associated statistical FBC distribution. Then, at block 616, the controller 108 sets ZAL to the maximum RT_level, which is the value that meets the FBC requirement at the end of life. At block 618, the updated ZAL value is sent to the host device 104.
[0061] After sending the ZAL value to the host device 104, at block 620, the host device 104 determines if the ZAL value has been exceeded. The host device 104 is able to determine if the ZAL value has been exceeded because it has access to the NAND blocks. If at block 620 the ZAL value has been exceeded, at block 624 the host sends a command to shut down the associated zone that has exceeded the ZAL value. However, if at block 620 the ZAL value has not been exceeded, at block 622 the host device 104 waits to receive another RT_level and the current RT_level at the controller 108 is increased by 1. After increasing the current RT_level by 1 at block 622, the controller checks the typical number of cycles at 606. The process continues and repeats from block 606 to block 622 until the ZAL value for the zone has been exceeded at block 620 and the associated zone is shut down at block 624.
[0062] By dynamically adjusting the ZAL of a ZNS device, more flexible operation is achieved along with optimization of performance and endurance. The dynamic ZAL value will allow better utilization of ZNS products by the host device. The host device will benefit from a larger ZAL parameter as the ZAL parameter will be based on the current health of the blocks and not on the worst case scenario.
[0063] In one embodiment, a data storage device includes a memory device; and a controller coupled to the memory device and supporting at least one zone namespace (ZNS), wherein the controller is configured to: receive a request from a host device to open a new zone; communicate an initial zone activity limit (ZAL) value for the ZNS to the host device; change the initial ZAL value for the ZNS to a new ZAL value for the ZNS; and send the new ZAL value for the ZNS to the host device. The controller is further configured to calculate the new ZAL value for the ZNS. The new ZAL value is based on a temperature change of the data storage device. The new ZAL value is based on a change in a flipping bit count of the data storage device. The initial ZAL value is based on a cycle level of blocks in the open zone. The cycle level of the blocks remains the same at the time the zone is opened. The new ZAL value is less than the initial ZAL value.
[0064] In another embodiment, a data storage device includes a memory device; and a controller coupled to the memory device, wherein the controller is configured to provide an initial zone activity limit (ZAL) value for a zone namespace (ZNS) to a host device; analyze blocks of the ZNS; determine a condition of a block operation; calculate a new ZAL value for the ZNS; and send the new ZAL value for the ZNS to the host device. Sending the new ZAL value includes directing the host device to a zone information log page. The controller is further configured to update a parameter of the zone information log page. The controller is further configured to change a zone full recommendation (ZRF) flag. The controller is further configured to increase a save period. The controller increases the save period after sending the new ZAL value for the ZNS to the host device. The controller is further configured to measure a temperature of the data storage device.
[0065] In another embodiment, a data storage device includes a memory device; a controller coupled to the memory device; and means for dynamically changing an initial zone activity limit (ZAL) value to a new ZAL value when a zone namespace (ZNS) is open. The data storage device further includes means for updating a host device based on the new ZAL value. The data storage device further includes means for checking a temperature change of the data storage device. The data storage device further includes means for checking a flip or a failed bit count (FBC). The data storage device further includes means for comparing the checked FBC to an expected FBC. The data storage device further includes means for selecting a maximum RT_level value that meets a FBC requirement at an end of life of the data storage device.
[0066] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure can be devised without departing from the basic scope thereof, and the scope of the present disclosure is determined by the claims that follow.
Claims
1. A data storage device, the data storage device comprising: a memory device; and a controller coupled to the memory device and supporting at least one zone namespace (ZNS), wherein the controller is configured to: receive a request from a host device to open a new zone; communicate an initial zone activity limit (ZAL) value for the ZNS to the host device, wherein the ZAL value corresponds to a maximum time that an open zone can be open, wherein the open zone is closed when the maximum time is reached, wherein the ZAL value corresponds to a current cycle condition of the open zone and a time that the open zone has been open, and wherein the current cycle condition corresponds to a number of write / erase cycles of the open zone; based on the current cycle condition, change the initial ZAL value for the ZNS to a new ZAL value for the ZNS; and send the new ZAL value for the ZNS to the host device.
2. The data storage device of claim 1, wherein the controller is further configured to calculate the new ZAL value for the ZNS.
3. The data storage device of claim 2, wherein the new ZAL value is based on a temperature change of the data storage device.
4. The data storage device of claim 2, wherein the new ZAL value is based on a flip bit count change of the data storage device.
5. The data storage device of claim 1, wherein the initial ZAL value is based on a cycle level of a block in the open zone.
6. The data storage device of claim 5, wherein the cycle level of the block remains the same when the zone is open.
7. The data storage device of claim 1, wherein the new ZAL value is less than the initial ZAL value.
8. A data storage device, the data storage device comprising: a memory device; and a controller coupled to the memory device, wherein the controller is configured to: provide an initial zone activity limit (ZAL) value for a zone namespace (ZNS) to a host device, wherein the ZAL value corresponds to a maximum time that an open zone can be open, wherein the open zone is closed when the maximum time is reached, wherein the ZAL value corresponds to a current cycle condition of the open zone and a time that the open zone has been open, and wherein the current cycle condition corresponds to a number of write / erase cycles of the open zone; analyze a block of the ZNS; determine a condition of the block operation; based on the current cycle condition, calculate a new ZAL value for the ZNS; and send the new ZAL value for the ZNS to the host device.
9. The data storage device of claim 8, wherein sending the new ZAL value comprises directing the host device to a zone information log page.
10. The data storage device of claim 9, wherein the controller is further configured to update a parameter of the zone information log page. 11. The data storage device of claim 8, wherein the controller is further configured to change a zone full recommendation (ZFR) flag.
12. The data storage device of claim 8, wherein the controller is further configured to increase a save period.
13. The data storage device of claim 12, wherein the controller increases the save period after sending the new ZAL value of the ZNS to the host device.
14. The data storage device of claim 8, wherein the controller is further configured to measure a temperature of the data storage device.
15. A data storage device, the data storage device comprising: a memory device; a controller coupled to the memory device; and means for dynamically changing an initial zone activity limit (ZAL) value to a new ZAL value when a zone namespace (ZNS) opens based on a current cycle condition, wherein a ZAL value corresponds to a maximum time that an open zone can open, wherein the open zone closes when the maximum time is reached, wherein the ZAL value corresponds to a current cycle condition of the open zone and a time that the open zone has been open, and wherein the current cycle condition corresponds to a number of write / erase cycles of the open zone.
16. The data storage device of claim 15, further comprising means for updating a host device based on the new ZAL value.
17. The data storage device of claim 15, further comprising means for checking a temperature change of the data storage device.
18. The data storage device of claim 15, further comprising means for checking a flip or failure bit count (FBC).
19. The data storage device of claim 18, further comprising means for comparing the checked FBC to an expected FBC.
20. The data storage device of claim 19, further comprising means for selecting a maximum RT_level value that meets a FBC requirement at an end of life of the data storage device.
Citation Information
Patent Citations
Device based wear leveling
US20140040681A1
Inter zone write for zoned namespaces
US20200089407A1