CN115639951A - 在存储器子***中实施自动速率控制 - Google Patents
在存储器子***中实施自动速率控制 Download PDFInfo
- Publication number
- CN115639951A CN115639951A CN202210841835.4A CN202210841835A CN115639951A CN 115639951 A CN115639951 A CN 115639951A CN 202210841835 A CN202210841835 A CN 202210841835A CN 115639951 A CN115639951 A CN 115639951A
- Authority
- CN
- China
- Prior art keywords
- memory device
- determining
- condition
- state
- rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本申请涉及在存储器子***中实施自动速率控制。一种存储器***中的处理装置在所述存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据。所述处理装置在所述存储器装置处于所述第一状态条件时基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率。所述处理装置确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则。响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,所述处理装置检测所述存储器装置的条件从所述第一状态到第二状态的改变。
Description
技术领域
本公开的实施例大体上涉及存储器子***,且更具体地说,涉及在存储器子***中实施自动速率控制。
背景技术
存储器子***可包含存储数据的一或多个存储器装置。所述存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机***可利用存储器子***以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一个方面,本申请提供一种***,其包括:存储器装置;以及处理装置,其以操作方式与所述存储器装置耦合,以执行包括以下各项的操作:在所述存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据;在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态条件到第二状态条件的改变;在所述存储器装置处于所述第二状态条件时,基于所述主机速率和所计算的调整值而确定所调整的主机速率;以及使用所述所调整的主机速率来确定用于所述存储器装置的主机写入操作的信用消耗速率。
在另一方面,本申请提供一种方法,其包括:在存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据;在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态条件到第二状态条件的改变;在所述存储器装置处于所述第二状态条件时,基于所述主机速率和所计算的调整值而确定所调整的主机速率;以及使用所述所调整的主机速率来确定用于所述存储器装置的主机写入操作的信用消耗速率。
在另一方面,本申请提供一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:在存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据,并且其中所述第一状态包括其中所述存储器装置的所述性能条件不稳定的存储器条件;在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态到第二状态的改变,其中所述第二状态包括其中所述存储器装置的所述性能条件稳定的存储器条件;以及检测所述存储器装置的所述条件从所述第二状态到所述第一状态的改变,其中检测所述存储器装置的所述条件从所述第二状态到所述第一状态的所述改变包括确定当前受害速率满足第二阈值准则,其中所述当前受害速率与所述存储器装置的块条带上的有效数据集相对应,其中正对所述块条带执行垃圾回收过程。
附图说明
根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。然而,各图不应视为将本公开限于特定实施例,而是仅用于解释和理解。
图1示出根据本公开的一些实施例的包含存储器子***的实例计算***。
图2为根据本公开的一些实施例的存储器装置的第一状态存储器条件和第二状态存储器条件期间随时间的主机速率和垃圾回收速率的实例曲线图。
图3为根据本公开的一些实施例的实施用于存储器装置的自动速率控制的实例方法的流程图。
图4为根据本公开的一些实施例的实施用于存储器装置的自动速率控制的实例方法的流程图。
图5为其中可操作本公开的实施例的实例计算机***的框图。
具体实施方式
本公开的各方面涉及在存储器子***中实施自动速率控制。存储器子***可为存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机***可利用存储器子***,所述存储器子***包含一或多个组件,例如存储数据的存储器装置。主机***可提供待存储在存储器子***处的数据,且可请求待从存储器子***检索的数据。
存储器子***可包含高密度非易失性存储器装置,其中当没有电力供应到存储器装置时期望保持数据。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块的集合组成。每一块由页的集合组成。每一页由存储器单元集合(“单元”)组成。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可由例如“0”和“1”等二进制值或此类值的组合表示。
当数据写入到存储器子***时,其通常在页层级进行,以使得在单个操作中写入整个页或多个页。在常规存储器子***中,主机***可提供待写入到存储器子***的数据。当存储器子***已满而使得没有充足容量来接受来自主机***的额外写入操作时,可擦除某些数据以便释放空间。然而,当从存储器子***擦除数据时,此通常在块层级完成,以使得在单个操作中擦除整个块(包含多个页)。因此,举例来说,当更新存储器子***上的特定数据段时,块中的某些页将具有已被重写到不同页的和/或不再需要的数据。不能简单地擦除整个块,因为每一块很可能还具有某一数目个有效数据页。可执行媒体管理操作(例如,垃圾回收过程),其涉及将块中含有有效数据的那些页移动到另一块,以使得当前块可被擦除和重写。垃圾回收是尝试回收垃圾的自动存储器管理形式,或被不再使用的过期数据对象(例如,因为所述数据对象已用新值更新)占用的存储器。可对例如被视为单元的块合集之类的块条带执行垃圾回收。块条带可为单个块或一或多个块。在垃圾回收过程期间将数据从一个块移动到另一块会引起到存储器子***的额外写入。需要每块移动到另一块的来自每一页的有效数据量被称为物理有效转换单元计数(PVTC)速率。PVTC速率越低,需要运行垃圾回收过程越慢。
在常规存储器子***中,由主机***所见的性能取决于媒体管理操作(例如,垃圾回收过程)运行的速度。如果主机***以比执行垃圾回收过程快的速率发出写入命令,那么存储器子***可能不具有剩余的足够自由空间以供写入到主机***且将因此需要等待直到垃圾回收过程释放空间为止。如果存在影响主机***和垃圾回收过程各自运行的速度的波动工作负载条件变化,那么主机***与垃圾回收过程之间的此不均匀平衡可引发不稳定性能。利用常规存储器子***的主机***被设计成在稳定或变化的工作负载条件下根据客户期望来执行。然而,由于主机***所见的性能取决于垃圾回收过程的速度,所以其可能无法在稳定或变化的工作负载条件下符合客户期望。
本公开的各方面通过具有实施自动速率控制以确定用于存储器子***的主机速率和垃圾回收速率的存储器子***来解决以上和其它不足。在一个实施例中,存储器子***可确定主机速率和垃圾回收速率以便控制来自主机***和垃圾回收过程的操作流(例如,写入操作)。举例来说,主机速率和垃圾回收速率可在基于时间的信用机制中使用,所述信用机制将某一数目个信用分配到主机***和垃圾回收过程两者,以便控制来自主机***和垃圾回收过程的操作流。主机速率和垃圾回收速率可用于确定主机***和垃圾回收过程可消耗每一所分配信用时的速率。主机***和垃圾回收过程中的任一者可在其具有正信用余额的情况下各自仅被允许运行。如果主机***或垃圾回收过程具有为零或负的信用余额,那么可补充信用余额。在一个实施例中,存储器子***可使用两种类型的存储器条件——第一状态和第二状态存储器条件来确定主机速率和垃圾回收速率。在一个实施例中,虽然存储器装置处于第一状态存储器条件,但存储器子***识别存储器装置的工作负载条件集合。在一个实施例中,工作负载条件集合可包含主机写入性能统计、垃圾回收统计、当前驱动条件和/或任何其它条件或统计。存储器子***基于存储器装置的所识别工作负载条件而确定用于由主机***执行的写入操作的主机速率。当存储器子***确定所识别工作负载条件满足准则时,存储器子***检测存储器条件从第一状态存储器条件到第二状态存储器条件的改变。当处于第二状态存储器条件中时,存储器子***调整用于由主机***执行的写入操作的主机速率,且可使用所调整的主机速率来确定主机***可消耗其所分配信用以用于写入操作时的速率。在一个实施例中,存储器子***在存储器装置处于第一状态存储器条件时确定用于由垃圾回收过程执行的写入操作的垃圾回收速率。存储器子***可随后使用垃圾回收速率来确定垃圾回收过程可消耗其所分配信用以用于写入操作时的速率。
本公开的优点包含但不限于改进存储器子***的性能。如上文所描述,由于主机***和垃圾回收过程可在存在主机速率和垃圾回收速率的不均匀平衡的情况下干扰各自的相应性能,因此存储器子***必须稳定竞争性主机***和垃圾回收过程。例如在如上文所描述的基于时间的信用机制中实施自动速率控制将允许存储器子***通过发现最优主机速率和垃圾回收速率来控制主机***和垃圾回收过程的流程。这将使得存储器子***能够维持更稳定的主机性能,甚至在工作负载条件中存在影响垃圾回收过程的波动时也是如此。此外,自动速率控制方法可被配置成用于具有不同工作负载容量和存储器条件的多个类型的存储器子***,而不牺牲存储器子***的性能。
图1示出根据本公开的一些实施例的包含存储器子***110的实例计算***100。存储器子***110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子***110可为存储装置、存储器模块或存储装置和存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算***100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人驾驶飞机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,包含于交通工具、工业设备或联网商业装置中的一者),或包含存储器和处理装置的此类计算装置。
计算***100可包含耦合到一或多个存储器子***110的主机***120。在一些实施例中,主机***120耦合到不同类型的多个存储器子***110。图1示出耦合到一个存储器子***110的主机***120的一个实例。如本文所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论有线或无线,包含例如电、光学、磁性等的连接。
主机***120可包含处理器芯片组和由所述处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器)以及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机***120使用存储器子***110,例如来将数据写入到存储器子***110以及从存储器子***110读取数据。
主机***120可经由物理主机接口耦合到存储器子***110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机***接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机***120与存储器子***110之间传输数据。在存储器子***110通过物理主机接口(例如,PCIe总线)与主机***120耦合时,主机***120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子***110与主机***120之间传递控制、地址、数据以及其它信号的接口。图1示出存储器子***110作为实例。一般来说,主机***120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子***。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)类型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,在所述操作中可在不事先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND类型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层单元(MLC)、三层单元(TLC)、四层单元(QLC)和五层单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用以存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,可将页分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列和NAND类型快闪存储器(例如,2D NAND、3D NAND)之类的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它硫属化物类存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、氧化物类RRAM(OxRAM)、或非(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子***控制器115(或为简单起见,控制器115)可与存储器装置130进行通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子***控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬编码)逻辑的数字电路***。存储器子***控制器115可为微控制器、专用逻辑电路***(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子***控制器115可包含处理装置,所述处理装置包含被配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示出的实例中,存储器子***控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制包含处理存储器子***110与主机***120之间的通信等存储器子***110的操作的各种过程、操作、逻辑流以及例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子***110已示出为包含存储器子***控制器115,但是在本公开的另一实施例中,存储器子***110不包含存储器子***控制器115,而是可依赖于外部控制(例如,由外部主机提供,或由与存储器子***分离的处理器或控制器提供)。
一般来说,存储器子***控制器115可从主机***120接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。存储器子***控制器115可负责其它操作,例如耗损均衡操作、垃圾回收操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子***控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120进行通信。主机接口电路***可将从主机***接收的命令转换成命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换成主机***120的信息。
存储器子***110还可包含未示出的额外电路***或组件。在一些实施例中,存储器子***110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器),所述地址电路***可从存储器子***控制器115接收地址并对所述地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子***控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子***110是受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于同一存储器装置封装内的媒体管理的控制器(例如,存储器子***控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子***110包含可实施自动速率控制的速率控制组件113。在一些实施例中,存储器子***控制器115包含速率控制组件113的至少一部分。在一些实施例中,速率控制组件113是主机***120、应用程序或操作***的部分。在其它实施例中,本地媒体控制器135包含速率控制组件113的至少一部分且被配置成执行本文中所描述的功能性。
速率控制组件113可实施用于存储器子***110的自动速率控制。在一个实施例中,速率控制组件113可在存储器装置130处于第一状态存储器条件时识别与存储器装置130相关联的工作负载条件集合。在一个实施例中,工作负载条件集合包含反映存储器装置130的性能条件的数据。在一个实施例中,工作负载条件集合包含反映主机***120和垃圾回收过程的性能的数据。在一个实施例中,速率控制组件113可基于所识别工作负载条件集合而确定用于存储器装置的主机***120的写入性能的主机速率。速率控制组件113可确定工作负载条件中的一或多者满足阈值准则。速率控制组件113可检测存储器装置130的条件从第一状态存储器条件到第二状态存储器条件的改变。在一个实施例中,速率控制组件113可在存储器装置130处于第二状态存储器条件时确定所调整的主机速率以考虑自由空间中的改变。在一个实施例中,速率控制组件113可使用所调整的主机速率来确定用于存储器装置的主机***120的写入操作的信用消耗速率。下文描述关于速率控制组件113的操作的其它细节。
图2为根据本公开的一些实施例的存储器装置的第一状态存储器条件和第二状态存储器条件期间随时间的主机速率和垃圾回收速率的实例曲线图。在一个实施例中,图2描绘用于由主机***(例如,图1的主机***120)和垃圾回收过程执行的写入操作的主机速率和垃圾回收速率。举例来说,主机速率202表示主机***120可发布存储器存取操作(例如,在某一时间段中发布的多个写入命令)的速率,且垃圾回收速率204表示存储器子***控制器115可执行媒体管理操作(例如,在某一时间段中执行的多个垃圾回收操作)的速率。在一个实施例中,第一状态存储器条件210是其中主机速率202和垃圾回收速率204处于不稳定的搜索状态。当主机速率202和垃圾回收速率204达到平衡(例如,在时间t1)时,存储器装置检测存储器装置的条件从第一状态存储器条件210到第二状态存储器条件220的改变。在第二状态存储器条件220期间,在稳定工作负载条件下使主机速率202和垃圾回收速率204平衡且稳定。在一个实施例中,如果例如工作负载条件中存在任何改变,那么存储器装置检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变(例如,在时间t2)。下文描述关于第一和第二状态存储器条件期间的主机速率和垃圾回收速率的其它细节。
图3为根据本公开的一些实施例的实施用于存储器子***的自动速率控制的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的速率控制组件113执行。虽然以特定顺序或次序来展示,但除非另外指定,否则可修改过程的次序。因此,示出的实施例应仅作为实例理解,且示出的过程可以不同次序执行,并且一些过程可并行执行。此外,在各种实施例中可省略一或多个过程。因此,每个实施例中并非需要所有过程。其它过程流程是可能的。
在操作304处,处理逻辑识别与例如存储器装置130之类的存储器装置相关联的工作负载条件集合。在一个实施例中,当存储器装置处于第一状态条件时,处理逻辑识别工作负载条件集合。工作负载条件集合可包含反映存储器装置的性能条件的数据。在一个实施例中,工作负载条件集合可包含主机写入性能统计、垃圾回收统计、当前驱动条件和/或任何其它条件或统计。举例来说,工作负载条件集合可包含但不限于由主机***(例如,图1的主机***120)执行的多个主机写入和多个主机读取、由垃圾回收过程执行的多个写入操作、自由空间量以及用于当前正由垃圾回收过程处理的存储器装置的块条带的PVTC速率。在一个实施例中,性能条件可包含稳定或不稳定的主机性能。举例来说,稳定的主机性能可为符合客户或用户期望的存储器装置。第一状态可为其中存储器装置的性能条件处于不稳定的存储器装置的存储器条件。
在操作306处,处理逻辑在存储器装置处于第一状态条件时确定用于存储器装置的主机速率。在一个实施例中,主机速率为由主机***执行的写入操作的速率。在一个实施例中,处理逻辑基于工作负载条件集合中的一或多个工作负载条件而确定主机速率。在一个实施例中,一或多个工作负载条件可包含垃圾回收速率。处理逻辑可基于包含当前主机写入计数、当前主机读取计数和总写入余量计数的一或多个工作负载条件而确定用于由垃圾回收过程处理的存储器装置的当前块条带的垃圾回收速率。基于在一段时间内存储器装置的最大吞吐量而确定总写入余量计数。在一个实施例中,一或多个工作负载条件可包含与存储器装置的块条带上的有效数据集相对应的当前受害速率(例如,PVTC速率)。块条带可为作为正通过垃圾回收过程回收的垃圾的当前块条带。处理逻辑可通过识别需要通过垃圾回收过程从块条带回收多少数据而确定用于块条带的当前受害速率。在一个实施例中,一或多个工作负载条件可包含用于存储器装置的目标自由空间。目标自由空间可为存储于存储器装置中的设定数目。在一个实施例中,一或多个工作负载条件可包含用于存储器装置的当前自由空间。处理逻辑可基于计算存储器装置上可用的多个自由页而确定用于存储器装置的当前自由空间。所述多个自由页可包含在存储器装置上为自由的、正被擦除的、将被擦除的或已擦除的页。在一个实施例中,处理逻辑可至少基于垃圾回收速率、当前受害速率、目标自由空间和当前自由空间而确定用于存储器装置的主机速率。在一个实施例中,处理逻辑基于用于当前块条带的垃圾回收速率和当前受害速率而计算参考主机速率。处理逻辑基于参考主机速率和当前自由空间而确定主机速率。举例来说,确定主机速率可包含根据当前自由空间来调整参考主机速率。在一个实施例中,处理逻辑使用主机速率来确定信用消耗速率。在一个实施例中,信用消耗速率可用于基于时间的信用机制以控制主机***执行用于存储器装置的写入操作时的速率。在一个实施例中,信用消耗速率可用于控制主机***执行用于存储器装置的读取操作时的速率。在一个实施例中,处理逻辑使用垃圾回收速率来确定用于垃圾回收过程的信用消耗速率,包含由垃圾回收过程执行的任何写入操作。
在操作308处,处理逻辑确定工作负载条件集合中的一或多个工作负载条件满足阈值准则。在一个实施例中,处理逻辑可确定用于存储器装置的预期垃圾回收写入计数与用于存储器装置的预期主机写入计数之间的比率。预期垃圾回收写入计数和预期主机写入计数可由处理逻辑基于用于当前块条带的当前受害速率来计算。在一个实施例中,处理逻辑可确定用于存储器装置的实际垃圾回收写入计数与用于存储器装置的实际主机写入计数之间的比率。处理逻辑可基于例如主机写入性能统计和垃圾回收统计等工作负载条件集合中的一或多者而确定实际垃圾回收写入计数与实际主机写入计数之间的比率。处理逻辑可通过将预期垃圾回收写入计数与预期主机写入计数之间的比率以及实际垃圾回收写入计数与实际主机写入计数之间的比率进行比较来识别匹配。如果比率相等或在范围上接近(例如,在彼此的阈值量内),那么处理逻辑可确定比率匹配。在一个实施例中,处理逻辑可确定用于存储器装置的目标自由空间。目标自由空间可为存储于存储器装置中的设定数目。在一个实施例中,处理逻辑可基于例如当前驱动条件等工作负载条件集合中的一或多者而确定用于存储器装置的当前自由空间。在一个实施例中,处理逻辑可确定存储器装置的当前自由空间等同于或在范围上接近用于存储器装置的目标自由空间。在一个实施例中,如果两个比率之间存在匹配且如果存储器装置的当前自由空间等同于或在范围上接近用于存储器装置的目标自由空间,那么处理逻辑确定多个工作负载条件中的一或多个工作负载条件满足阈值准则。
在操作310处,处理逻辑检测存储器装置的条件从第一状态存储器条件到第二状态存储器条件的改变。在一个实施例中,处理逻辑检测存储器装置的主机工作负载模式从第一状态存储器条件到第二状态存储器条件的改变。在一个实施例中,处理逻辑记录用于存储器装置的参考自由空间,所述参考自由空间在存储器装置从第一状态存储器条件改变为第二状态存储器条件时反映存储器装置上可用的一或多个自由页。在一个实施例中,处理逻辑在存储器装置处于第二状态存储器条件时确定用于存储器装置的当前自由空间,所述当前自由空间反映在第二状态存储器条件期间存储器装置上可用的一或多个自由页。在一个实施例中,处理逻辑在存储器装置处于第二状态时至少基于在第一状态存储器条件期间的所记录的参考自由空间以及在处于第二状态存储器条件时存储器装置的当前自由空间而确定调整值。在一个实施例中,第二状态可为其中存储器装置的性能条件处于稳定的存储器装置的存储器条件。
在操作312处,处理逻辑确定所调整的主机速率。在一个实施例中,当处理逻辑首先检测到存储器装置的条件从第一状态到第二状态的改变时,处理逻辑记录主机速率。在一个实施例中,处理逻辑基于所记录的主机速率和调整值而确定所调整的主机速率。在一个实施例中,处理逻辑确定用于第二状态存储器条件的垃圾回收速率。处理逻辑可基于包含当前主机写入计数、当前主机读取计数和总写入余量的一或多个工作负载条件而确定垃圾回收速率。基于在一段时间内存储器装置的最大吞吐量而确定写入余量计数。
在操作314处,处理逻辑使用所调整的主机速率来确定信用消耗速率。在一个实施例中,信用消耗速率可用于基于时间的信用机制以控制主机***执行用于存储器装置的写入操作时的速率。在一个实施例中,处理逻辑使用垃圾回收速率来确定用于垃圾回收过程的信用消耗速率。在一个实施例中,处理逻辑可检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变。在一个实施例中,检测存储器装置的条件从第二状态到第一状态的改变可包含在存储器装置处于第二状态条件时确定当前受害速率(例如,PVTC速率)满足阈值准则。在一个实施例中,当前受害速率与存储器装置的块条带上的有效数据集相对应。块条带可为作为正通过垃圾回收过程回收的垃圾的当前块条带。在一个实施例中,阈值准则可包含低PVTC速率。在一个实施例中,检测存储器装置的条件从第二状态到第一状态的改变可包含确定用于存储器装置的当前自由空间和用于存储器装置的目标自由空间不满足阈值准则。举例来说,阈值准则可包含当前自由空间必须处于其中的目标自由空间周围的范围。在一个实施例中,检测存储器装置的条件从第二状态到第一状态的改变可包含确定从当首先将第二状态存储器条件输入到当前工作负载时与主机写入和读取操作相关联的工作负载的改变。在一个实施例中,检测存储器装置的条件从第二状态到第一状态的改变可包含确定低主机写入和/或主机读取使用率。
图4为根据本公开的一些实施例的实施用于存储器子***的自动速率控制方法的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的速率控制组件113执行。虽然以特定顺序或次序来展示,但除非另外指定,否则可修改过程的次序。因此,示出的实施例应仅作为实例理解,且示出的过程可以不同次序执行,并且一些过程可并行执行。此外,在各种实施例中可省略一或多个过程。因此,每个实施例中并非需要所有过程。其它过程流程是可能的。
在操作404处,处理逻辑识别与例如存储器装置130之类的存储器装置相关联的工作负载条件集合。在一个实施例中,当存储器装置处于第一状态条件时,处理逻辑识别工作负载条件集合。工作负载条件集合可包含反映存储器装置的性能条件的数据。在一个实施例中,工作负载条件集合可包含主机写入性能统计、垃圾回收统计、当前驱动条件和/或任何其它条件或统计。举例来说,工作负载条件集合可包含但不限于由主机***(例如,图1的主机***120)执行的多个主机写入和多个主机读取、由垃圾回收过程执行的多个写入操作、自由空间量以及用于正由垃圾回收过程处理的存储器装置的当前块条带的PVTC速率。在一个实施例中,性能条件可包含稳定或不稳定的主机性能。举例来说,稳定的主机性能可为符合客户或用户期望的存储器装置。第一状态可为其中存储器装置的性能条件处于不稳定的存储器装置的存储器条件。
在操作406处,处理逻辑确定用于当前块条带的垃圾回收速率。处理逻辑可基于包含当前主机写入计数、当前主机读取计数和总写入余量计数的一或多个工作负载条件而确定用于当前块条带的垃圾回收速率。基于在一段时间内存储器装置的最大吞吐量而确定总写入余量计数。
在操作408处,处理逻辑确定与存储器装置的当前块条带上的有效数据集相对应的当前受害速率(例如,PVTC速率)。处理逻辑可通过识别需要通过垃圾回收过程从块条带回收多少数据而确定用于当前块条带的当前受害速率。
在操作410处,处理逻辑确定用于存储器装置的目标自由空间。目标自由空间可为存储于存储器装置中的设定数目。
在操作412处,处理逻辑确定用于存储器装置的当前自由空间。处理逻辑可基于计算存储器装置上可用的多个自由页而确定用于存储器装置的当前自由空间。所述多个自由页可包含在存储器装置上为自由的、正被擦除的、将被擦除的或已擦除的页。
在操作414处,处理逻辑确定用于存储器装置的主机速率。在一个实施例中,主机速率为由主机***执行的写入操作的速率。在一个实施例中,处理逻辑基于工作负载条件集合中的一或多个工作负载条件而确定主机速率。在一个实施例中,一或多个工作负载条件至少包含垃圾回收速率、当前受害速率、目标自由空间和当前自由空间。在一个实施例中,处理逻辑基于用于当前块条带的垃圾回收速率和当前受害速率而计算参考主机速率。处理逻辑基于参考主机速率和当前自由空间而确定主机速率。举例来说,确定主机速率可包含根据当前自由空间来调整参考主机速率。在一个实施例中,处理逻辑使用主机速率来确定信用消耗速率。在一个实施例中,信用消耗速率可用于基于时间的信用机制以控制主机***执行用于存储器装置的写入操作时的速率。在一个实施例中,信用消耗速率可用于控制主机***执行用于存储器装置的读取操作时的速率。在一个实施例中,处理逻辑使用垃圾回收速率来确定用于垃圾回收过程的信用消耗速率,包含由垃圾回收过程执行的任何写入操作。
在操作416处,处理逻辑确定工作负载条件集合中的一或多个工作负载条件满足第一阈值准则。在一个实施例中,处理逻辑可确定用于存储器装置的预期垃圾回收写入计数与用于存储器装置的预期主机写入计数之间的比率。预期垃圾回收写入计数和预期主机写入计数可由处理逻辑基于用于当前块条带的当前受害速率来计算。在一个实施例中,处理逻辑可确定用于存储器装置的实际垃圾回收写入计数与用于存储器装置的实际主机写入计数之间的比率。处理逻辑可基于例如主机写入性能统计和垃圾回收统计等工作负载条件集合中的一或多者而确定实际垃圾回收写入计数与实际主机写入计数之间的比率。处理逻辑可通过将预期垃圾回收写入计数与预期主机写入计数之间的比率以及实际垃圾回收写入计数与实际主机写入计数之间的比率进行比较来识别匹配。如果比率相等或在范围上接近(例如,在彼此的阈值量内),那么处理逻辑可确定比率匹配。在一个实施例中,处理逻辑可确定用于存储器装置的目标自由空间。目标自由空间可为存储于存储器装置中的设定数目。在一个实施例中,处理逻辑可基于例如当前驱动条件等工作负载条件集合中的一或多者而确定用于存储器装置的当前自由空间。在一个实施例中,处理逻辑可确定存储器装置的当前自由空间等同于或在范围上接近用于存储器装置的目标自由空间。在一个实施例中,如果两个比率之间存在匹配且如果存储器装置的当前自由空间等同于或在范围上接近用于存储器装置的目标自由空间,那么处理逻辑确定多个工作负载条件中的一或多个工作负载条件满足阈值准则。
在操作418处,处理逻辑检测存储器装置的条件从第一状态存储器条件到第二状态存储器条件的改变。在一个实施例中,处理逻辑记录用于存储器装置的参考自由空间,所述参考自由空间在存储器装置从第一状态存储器条件改变为第二状态存储器条件时反映存储器装置上可用的一或多个自由页。在一个实施例中,处理逻辑在存储器装置处于第二状态条件时至少基于所记录的参考自由空间以及在处于第二状态存储器条件时存储器装置的当前自由空间而确定调整值。在一个实施例中,第二状态可为其中存储器装置的性能条件处于稳定的存储器装置的存储器条件。
在操作420处,处理逻辑确定所调整的主机速率。在一个实施例中,当处理逻辑首先检测到条件从第一状态到第二状态的改变时,处理逻辑记录主机速率。在一个实施例中,处理逻辑基于所记录的主机速率和调整值而确定所调整的主机速率。在一个实施例中,处理逻辑确定用于第二状态存储器条件的垃圾回收速率。处理逻辑可基于包含当前主机写入计数、当前主机读取计数和总写入余量的一或多个工作负载条件而确定垃圾回收速率。基于在一段时间内存储器装置的最大吞吐量而确定写入余量计数。
在操作422处,处理逻辑使用所调整的主机速率来确定信用消耗速率。在一个实施例中,信用消耗速率可用于基于时间的信用机制以控制主机***执行用于存储器装置的写入操作时的速率。在一个实施例中,信用消耗速率可用于控制主机***执行用于存储器装置的读取操作时的速率。在一个实施例中,处理逻辑使用垃圾回收速率来确定用于垃圾回收过程的信用消耗速率,包含由垃圾回收过程执行的任何写入操作。
在操作424处,处理逻辑确定当前受害速率满足阈值准则。在一个实施例中,阈值准则可在存储器装置处于第二状态时包含低PVTC速率。
在操作426处,如果当前受害速率满足阈值准则,那么处理逻辑可检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变。在一个实施例中,处理逻辑可基于确定用于存储器装置的当前自由空间和用于存储器装置的目标自由空间不满足阈值准则而检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变。举例来说,阈值准则可包含当前自由空间必须处于其中的目标自由空间周围的范围。在一个实施例中,处理逻辑可基于确定当首先将第二状态存储器条件输入到当前工作负载时与主机写入和读取操作相关联的工作负载的改变而检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变。在一个实施例中,处理逻辑可基于确定低主机写入和/或主机读取使用率而检测存储器装置的条件从第二状态存储器条件到第一状态存储器条件的改变。
图5示出计算机***500的实例机器,在所述计算机***内可执行用于使机器执行本文中所论述的方法中的任何一或多者的一组指令。在一些实施例中,计算机***500可对应于主机***(例如,图1的主机***120),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***110)或可用于执行控制器的操作(例如,执行操作***以执行对应于图1的速率控制组件113的操作)。在替代性实施例中,机器可连接(例如,联网)到LAN、企业内部网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的资格进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由机器采取的动作的一组指令的任何所述机器。此外,尽管示出单个机器,但术语“机器”还应被理解为包含机器的任何合集,所述机器单独地或联合地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多者。
实例计算机***500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或RDRAM的动态随机存取存储器(DRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及经由总线530彼此通信的数据存储***518。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更确切地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置502被配置成执行用于进行本文中所论述的操作和步骤的指令526。计算机***500可进一步包含网络接口装置508以经由网络520进行通信。
数据存储***518可包含机器可读存储媒体524(也被称作计算机可读媒体),在所述机器可读存储媒体上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多者的软件。指令526还可在其由计算机***500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储***518和/或主存储器504可对应于图1的存储器子***110。
在一个实施例中,指令526包含用于实施对应于速率控制组件(例如,图1的速率控制组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但术语“机器可读存储媒体”应被认为包含单个媒体或存储一或多组指令的多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已关于对计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望结果的自洽的一系列操作。所述操作是需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、项、编号等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标记。本公开可指计算机***或类似电子计算装置的动作和过程,其将表示为计算机***的寄存器和存储器内的物理(电子)量的数据操控和变换为类似地表示为计算机***存储器或寄存器或其它此类信息存储***内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机***总线。
本文中呈现的算法和显示器本质上并不与任何特定计算机或其它设备相关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法的更专用设备是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含上面存储有可以用于编程计算机***(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考本公开的具体实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和图式。
Claims (20)
1.一种***,其包括:
存储器装置;以及
处理装置,其以操作方式与所述存储器装置耦合,以执行包括以下各项的操作:
在所述存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据;
在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;
确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;
响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态条件到第二状态条件的改变;
在所述存储器装置处于所述第二状态条件时,基于所述主机速率和所计算的调整值而确定所调整的主机速率;以及
使用所述所调整的主机速率来确定用于所述存储器装置的主机写入操作的信用消耗速率。
2.根据权利要求1所述的***,其中基于所述多个工作负载条件中的所述一或多个工作负载条件而确定用于所述存储器装置的所述主机速率包括:
确定用于所述存储器装置的垃圾回收速率;
确定与所述存储器装置的块条带上的有效数据集相对应的当前受害速率,其中正对所述块条带执行垃圾回收过程;
确定用于所述存储器装置的目标自由空间;
确定用于所述存储器装置的当前自由空间;以及
至少基于所述垃圾回收速率、所述当前受害速率、所述目标自由空间和所述当前自由空间而确定用于所述存储器装置的所述主机速率。
3.根据权利要求1所述的***,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则包括:
确定用于所述存储器装置的预期垃圾回收写入计数与用于所述存储器装置的预期主机写入计数之间的第一比率;
确定用于所述存储器装置的实际垃圾回收写入计数与用于所述存储器装置的实际主机写入计数之间的第二比率;以及
识别所述第一比率与所述第二比率之间的匹配。
4.根据权利要求3所述的***,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则进一步包括:
确定用于所述存储器装置的目标自由空间;
确定用于所述存储器装置的当前自由空间;以及
确定所述存储器装置的所述当前自由空间在用于所述存储器装置的所述目标自由空间的阈值量内。
5.根据权利要求1所述的***,其中所述处理装置被配置成执行进一步包括以下各项的操作:
检测所述存储器装置的所述条件从所述第二状态到所述第一状态的改变,其中检测所述存储器装置的所述条件从所述第二状态到所述第一状态的所述改变包括确定当前受害速率满足第二阈值准则,其中所述当前受害速率与所述存储器装置的块条带上的有效数据集相对应,其中正对所述块条带执行垃圾回收过程。
6.根据权利要求1所述的***,其中所述处理装置被配置成执行进一步包括以下各项的操作:
检测所述存储器装置的所述条件从所述第二状态到所述第一状态的改变,其中检测所述存储器装置的所述条件从所述第二状态到所述第一状态的所述改变包括确定用于所述存储器装置的当前自由空间和用于所述存储器装置的目标自由空间不满足阈值范围准则。
7.根据权利要求1所述的***,其中所述处理装置被配置成执行进一步包括以下各项的操作:
响应于确定所述第一阈值准则得到满足,在所述存储器装置处于所述第一状态条件时确定用于所述存储器装置的参考自由空间,其中所述参考自由空间在所述存储器装置的所述条件从所述第一状态到所述第二状态的所述改变期间反映所述存储器装置的一或多个自由页;
响应于检测所述存储器装置的所述条件从所述第一状态到所述第二状态的所述改变,在所述存储器装置处于所述第二状态条件时确定用于所述存储器装置的当前自由空间,其中所述当前自由空间反映所述存储器装置的一或多个自由页;以及
在所述存储器装置处于所述第二状态条件时,至少基于所述参考自由空间和所述当前自由空间而确定所述所计算的调整值。
8.根据权利要求1所述的***,其中所述第一状态包括其中所述存储器装置的所述性能条件不稳定的存储器条件,并且其中所述第二状态包括其中所述存储器装置的所述性能条件稳定的存储器条件。
9.一种方法,其包括:
在存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据;在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;
确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;
响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态条件到第二状态条件的改变;
在所述存储器装置处于所述第二状态条件时,基于所述主机速率和所计算的调整值而确定所调整的主机速率;以及
使用所述所调整的主机速率来确定用于所述存储器装置的主机写入操作的信用消耗速率。
10.根据权利要求9所述的方法,其中基于所述多个工作负载条件中的所述一或多个工作负载条件而确定用于所述存储器装置的所述主机速率包括:
确定用于所述存储器装置的垃圾回收速率;
确定与所述存储器装置的块条带上的有效数据集相对应的当前受害速率,其中正对所述块条带执行垃圾回收过程;
确定用于所述存储器装置的目标自由空间;
确定用于所述存储器装置的当前自由空间;以及
至少基于所述垃圾回收速率、所述当前受害速率、所述目标自由空间和所述当前自由空间而确定用于所述存储器装置的所述主机速率。
11.根据权利要求9所述的方法,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则包括:
确定用于所述存储器装置的预期垃圾回收写入计数与用于所述存储器装置的预期主机写入计数之间的第一比率;
确定用于所述存储器装置的实际垃圾回收写入计数与用于所述存储器装置的实际主机写入计数之间的第二比率;以及
识别所述第一比率与所述第二比率之间的匹配。
12.根据权利要求11所述的方法,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则进一步包括:
确定用于所述存储器装置的目标自由空间;
确定用于所述存储器装置的当前自由空间;以及
确定多个块条带的所述当前自由空间在用于所述存储器装置的所述目标自由空间的阈值量内。
13.根据权利要求9所述的方法,其进一步包括:
检测所述存储器装置的所述条件从所述第二状态到所述第一状态的改变,其中检测所述条件从所述第二状态到所述第一状态的所述改变包括确定当前受害速率满足第二阈值准则,其中所述当前受害速率与所述存储器装置的块条带上的有效数据集相对应,其中正对所述块条带执行垃圾回收过程。
14.根据权利要求9所述的方法,其进一步包括:
响应于确定所述第一阈值准则得到符合,在所述存储器装置处于所述第一状态条件时确定用于所述存储器装置的参考自由空间,其中所述参考自由空间在所述存储器装置的所述条件从所述第一状态到所述第二状态的所述改变期间反映所述存储器装置的一或多个自由页;
响应于检测所述存储器装置的所述条件从所述第一状态到所述第二状态的所述改变,在所述存储器装置处于所述第二状态条件时确定用于所述存储器装置的当前自由空间,其中所述当前自由空间反映所述存储器装置的一或多个自由页;以及
在所述存储器装置处于所述第二状态条件时,至少基于所述参考自由空间和所述当前自由空间而确定所述调整值。
15.根据权利要求9所述的方法,其中所述第一状态包括其中所述存储器装置的所述性能条件不稳定的存储器条件,并且其中所述第二状态包括其中所述存储器装置的所述性能条件稳定的存储器条件。
16.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
在存储器装置处于第一状态条件时识别与所述存储器装置相关联的多个工作负载条件,其中所述多个工作负载条件包括反映所述存储器装置的性能条件的数据,并且其中所述第一状态包括其中所述存储器装置的所述性能条件不稳定的存储器条件;
在所述存储器装置处于所述第一状态条件时,基于所述多个工作负载条件中的一或多个工作负载条件而确定用于所述存储器装置的主机***写入性能的主机速率;
确定所述多个工作负载条件中的一或多个工作负载条件满足第一阈值准则;
响应于确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则,检测所述存储器装置的条件从所述第一状态到第二状态的改变,其中所述第二状态包括其中所述存储器装置的所述性能条件稳定的存储器条件;以及
检测所述存储器装置的所述条件从所述第二状态到所述第一状态的改变,其中检测所述存储器装置的所述条件从所述第二状态到所述第一状态的所述改变包括确定当前受害速率满足第二阈值准则,其中所述当前受害速率与所述存储器装置的块条带上的有效数据集相对应,其中正对所述块条带执行垃圾回收过程。
17.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述处理装置用以执行进一步包括以下各项的操作:
在所述存储器装置处于所述第二状态条件时,基于所述主机速率和所计算的调整值而确定所调整的主机速率;以及
使用所述所调整的主机速率来确定用于所述存储器装置的主机写入操作的信用消耗速率。
18.根据权利要求16所述的非暂时性计算机可读存储媒体,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则包括:
确定用于所述存储器装置的预期垃圾回收写入计数与用于所述存储器装置的预期主机写入计数之间的第一比率;
确定用于所述存储器装置的实际垃圾回收写入计数与用于所述存储器装置的实际主机写入计数之间的第二比率;以及
识别所述第一比率与所述第二比率之间的匹配。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中确定所述多个工作负载条件中的所述一或多个工作负载条件满足所述第一阈值准则进一步包括:
确定用于所述存储器装置的目标自由空间;
确定用于所述存储器装置的当前自由空间;以及
确定所述存储器装置的所述当前自由空间在用于所述存储器装置的所述目标自由空间的阈值量内。
20.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述处理装置用以执行进一步包括以下各项的操作:
响应于确定所述第一阈值准则得到符合,在所述存储器装置处于所述第一状态条件时确定用于所述存储器装置的参考自由空间,其中所述参考自由空间在所述存储器装置的所述条件从所述第一状态到所述第二状态的所述改变期间反映所述存储器装置的一或多个自由页;
响应于检测所述存储器装置的所述条件从所述第一状态到所述第二状态的改变,在所述存储器装置处于所述第二状态条件时确定用于所述存储器装置的当前自由空间,其中所述当前自由空间反映所述存储器装置的一或多个自由页;以及
在所述存储器装置处于所述第二状态条件时,至少基于所述参考自由空间和所述当前自由空间而确定所述调整值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/379,118 US11556258B1 (en) | 2021-07-19 | 2021-07-19 | Implementing automatic rate control in a memory sub-system |
US17/379,118 | 2021-07-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115639951A true CN115639951A (zh) | 2023-01-24 |
Family
ID=84891062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210841835.4A Pending CN115639951A (zh) | 2021-07-19 | 2022-07-18 | 在存储器子***中实施自动速率控制 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11556258B1 (zh) |
CN (1) | CN115639951A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024036498A1 (en) * | 2022-08-17 | 2024-02-22 | Micron Technology, Inc. | Host rate adjustment using free space values |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411718B2 (en) * | 2012-12-21 | 2016-08-09 | Seagate Technology Llc | Method to apply fine grain wear leveling and garbage collection |
KR20170044780A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11169707B2 (en) * | 2016-01-22 | 2021-11-09 | Netapp, Inc. | Garbage collection pacing in a storage system |
JP2019046238A (ja) * | 2017-09-04 | 2019-03-22 | 東芝メモリ株式会社 | メモリシステム |
US11681464B2 (en) * | 2020-06-08 | 2023-06-20 | Western Digital Technologies, Inc. | Predicting host access rates for variable bit rate data streams using a data storage controller |
US11481145B2 (en) * | 2021-02-25 | 2022-10-25 | PetaIO Inc. | Dynamically throttling host write data rate |
-
2021
- 2021-07-19 US US17/379,118 patent/US11556258B1/en active Active
-
2022
- 2022-07-18 CN CN202210841835.4A patent/CN115639951A/zh active Pending
- 2022-12-08 US US18/077,762 patent/US11960740B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11556258B1 (en) | 2023-01-17 |
US20230013757A1 (en) | 2023-01-19 |
US11960740B2 (en) | 2024-04-16 |
US20230102577A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782847B2 (en) | Performing a media management operation based on a sequence identifier for a block | |
US20230176965A1 (en) | Media management based on data access metrics | |
CN115699185A (zh) | 在存储装置上每单元实施可变数目的位 | |
US20220171713A1 (en) | Temperature-aware data management in memory sub-systems | |
US11520699B2 (en) | Using a common pool of blocks for user data and a system data structure | |
US20220050772A1 (en) | Data block switching at a memory sub-system | |
US11693767B2 (en) | Performing a media management operation based on changing a write mode of a data block in a cache | |
US20240062820A1 (en) | Tracking operations performed at a memory device | |
US11960740B2 (en) | Implementing automatic rate control in a memory sub-system | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US20220188231A1 (en) | Low-bit density memory caching of parallel independent threads | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
US11868642B2 (en) | Managing trim commands in a memory sub-system | |
US11847349B2 (en) | Dynamic partition command queues for a memory device | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US11314456B2 (en) | Memory device performance based on storage traffic pattern detection | |
US20240071510A1 (en) | Two-pass corrective programming for memory cells that store multiple bits and power loss management for two-pass corrective programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |