CN118038920A - 存储器装置中初始轮询定时器的动态调整 - Google Patents
存储器装置中初始轮询定时器的动态调整 Download PDFInfo
- Publication number
- CN118038920A CN118038920A CN202311501028.9A CN202311501028A CN118038920A CN 118038920 A CN118038920 A CN 118038920A CN 202311501028 A CN202311501028 A CN 202311501028A CN 118038920 A CN118038920 A CN 118038920A
- Authority
- CN
- China
- Prior art keywords
- memory
- counter value
- command
- determining
- response
- 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
- 230000015654 memory Effects 0.000 claims abstract description 250
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 18
- 230000000737 periodic effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 2
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及存储器装置中初始轮询定时器的动态调整。公开了包含存储器装置和以操作方式耦合到所述存储器装置的处理装置的系统和方法。所述处理装置可执行包括以下的操作:从主机系统接收存储器存取命令;响应于确定所述存储器存取命令为程序命令,使连续计数器值递增;确定所述连续计数器值是否满足阈值准则;响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与满足所述阈值准则的所述连续计数器值相关联的值。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器装置中初始轮询定时器的动态调整。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可例如为非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
根据本申请的一方面,提供一种系统。所述系统包括:存储器装置;及处理装置,其以操作方式耦合到所述存储器装置以执行包括以下的操作:从主机系统接收存储器存取命令;响应于确定所述存储器存取命令为程序命令,使连续计数器值递增;确定所述连续计数器值是否满足阈值准则;及响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与所述连续计数器值满足所述阈值准则相关联的值。
根据本申请的另一方面,提供一种方法。所述方法包括:从主机系统接收存储器存取命令;响应于确定所述存储器存取命令为程序命令,使连续计数器值递增;确定所述连续计数器值是否满足阈值准则;及响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与所述连续计数器值满足所述阈值准则相关联的值。
根据本申请的又一方面,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由以操作方式耦合到存储器的处理装置执行时执行包括以下的操作:响应于确定存储器存取命令是程序命令,使连续计数器值递增;确定所述连续计数器值是否满足阈值准则;及响应于确定所述连续计数器值未能满足所述阈值准则,将所述初始轮询定时器设置为与所述连续计数器值未能满足所述阈值准则相关联的值。
附图说明
将从下文给出的实施方式和从本公开的各种实施例的附图更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2A到2B为根据本公开的一些实施例的用于基于当前工作负载设置初始轮询定时器的实例方法的流程图。
图3为根据本公开的一些实施例的说明在发布存储器存取命令之后执行的操作的图。
图4为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及存储器装置中初始轮询定时器的动态调整。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供要存储在存储器子系统处的数据,且可请求要从存储器子系统检索的数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可包含两个或更多个平面。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面包含一组物理块。在一些实施中,每一块可包含多个子块。每一平面承载形成于硅晶片上并且通过被称为字线(WL)和位线(BL)的导体接合的存储器单元矩阵,使得字线接合形成存储器单元矩阵的行的多个存储器单元,而位线接合形成存储器单元矩阵的列的多个存储器单元。
取决于单元类型,每一存储器单元可存储一或多个二进制信息位,并且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或此类值的组合表示。可通过将某一电压施加到存储器单元来编程(写入到)存储器单元,这使得存储器单元保持电荷,因此允许调制由存储器单元产生的电压分布。可在单个操作中例如通过选择连续位线一起编程被称为存储器页的一组存储器单元。
可由存储器子系统执行存储器存取操作。存储器存取操作可为主机起始的操作或存储器子系统控制器起始的操作。举例来说,主机系统可起始存储器子系统上的存储器存取操作(例如,写入操作、读取操作、擦除操作等)。主机系统可将存储器存取命令(例如,写入命令、读取命令)发送到存储器子系统,以便在存储器子系统处的存储器装置上存储数据以及从存储器子系统上的存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中被称为“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名称空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名称空间)可为用于主机数据的元数据的部分。元数据还可包含错误处理数据(例如,ECC码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的期限)、有效位图(其LBA或逻辑传送单元含有有效数据)等。存储器子系统控制器起始的存储器存取操作可涉及维护操作,例如垃圾收集、耗损均衡、不良块管理、块刷新操作等。
存储器子系统控制器可经由位于存储器子系统控制器与存储器装置之间的数据总线(例如,开放NAND快闪接口(ONFI)总线)将存储器存取命令发送到存储器装置。如在图3的图中所说明,在发送存储器存取命令(例如,程序命令)后,存储器子系统控制器接着可在将请求存储器装置的状态的状态命令发送到存储器装置之前等待初始预定时间周期(例如,等待定时器到期)。此初始预定时间周期可由存储器子系统控制器的固件配置,且被称为“初始轮询周期”或“初始轮询定时器”。在实例中,将初始轮询周期设置为存储器装置处理程序命令所需的大致时间(例如,1.7毫秒(ms)、1.8ms等)。状态命令可询问存储器装置是就绪还是忙碌的。就绪状态可指示程序命令已经处理,而忙碌状态可指示存储器装置仍在处理程序命令。如果接收到忙碌状态,那么存储器子系统控制器可在将另一状态命令发送到存储器装置之前等待额外时间量。此额外时间周期还可由存储器子系统控制器的固件配置,且被称为“周期性轮询周期”或“周期轮询定时器”。在实例中,周期性轮询周期可为0.05ms。存储器子系统控制器可反复地发送状态命令,直到接收到就绪状态(被称为“周期性状态轮询阶段”)为止。一旦接收到就绪状态,存储器子系统控制器便可发送下一存储器存取命令(例如,下一程序命令)。发布存储器存取命令与接收就绪状态之间的总时间被称为“命令操作时间”。
在一些情况下,存储器子系统可接收执行存储器存取操作的请求,例如对由主机供应的数据进行编程的程序操作,且接着,在程序操作已完成之前,接收执行另一存储器存取操作的请求,例如对同一地址的读取操作。存储器子系统可保持在存储器子系统的存储器装置(例如,“与非”(NAND)型快闪存储器)经编程时在控制器存储器(例如,动态随机存取存储器(DRAM))中编程的数据,且接着在程序操作完成时刷新控制器存储器。只要编程时间(即,用于执行存储器装置的程序操作的时间)相对较短,合理大小的控制器存储器就可适应待编程的数据。然而,如果存储器装置使用某些类型的存储器单元,例如三层级单元(TLC)或四层级单元(QLC),那么编程时间可显著增加。因而,与随后接收到的存储器存取操作相关联的命令处理时延显著增加。如果在程序操作仍在进行时接收到执行读取操作的后续请求,那么一些存储器子系统将在对存储器装置执行读取操作之前等待直到程序操作完成为止。这可导致在对来自主机系统的请求作出响应时出现显著时延。
为了减少混合工作负载中的时延(例如,写入操作和读取操作的组合,例如紧接着写入操作的读取操作),某些存储器子系统利用程序暂停协议以允许随后接收到的存储器存取命令(例如,读取命令)存取当前正在其上执行写入操作的存储器装置。程序暂停协议可临时暂停写入操作以允许对存储器阵列的存取。具体地说,当存储器子系统在写入操作进行时接收到对存储在存储器装置的特定页中的数据执行存储器存取操作的请求时,存储器子系统控制器可发布程序暂停命令,所述命令使得存储器装置进入暂停状态。
然而,在一些系统中,程序暂停协议无法在周期性状态轮询阶段期间起始,且实际上可仅在初始轮询阶段期间起始。因而,如果存储器装置在周期性状态轮询阶段期间仍执行程序操作,且存储器子系统控制器从主机接收读取命令,那么存储器装置无法执行程序暂停协议,使得可对读取命令进行优先级排序。因而,程序命令继续进行处理,这增加了存储器子系统的读取时延。替代地,如果存储器装置在初始轮询阶段期间仍执行程序操作,且存储器子系统控制器从主机接收读取命令,那么存储器子系统控制器可指示存储器装置进入程序暂停协议且处理读取命令。然而,由于初始轮询定时器继续到期,因此处理读取命令将延长初始程序操作的命令操作时间。举例来说,读取命令可消耗约0.05ms来处理。因而,延长周期性状态轮询阶段。由于一些存储器装置可一次支持多个程序暂停命令(例如,每页30个程序暂停命令),因此周期性状态轮询阶段可使得存储器子系统在对主机起始的读取请求作出响应时经历显著时延。举例来说,在30%写入命令和70%读取命令的混合工作负载中,程序命令的命令操作时间可增加到约2.8ms,从而导致服务质量降级。此外,将初始轮询定时器设置为较高值(例如,2.8ms)以考虑混合工作负载可通过增加每一发布的程序命令之间的持续时间来影响完全或主要的程序工作负载。
本公开的各方面通过实施能够基于存储器子系统所经历的工作负载动态调整初始轮询定时器的存储器子系统控制器来解决以上及其它缺陷。具体地说,存储器子系统控制器可从主机系统接收工作负载(例如,一组存储器存取命令)。对于每一存储器存取命令,存储器子系统控制器可首先确定存储器存取命令是程序命令还是读取命令。响应于存储器存取命令为程序命令,处理逻辑可增加连续计数(CC)计数器的值。基于CC计数器的当前值,处理逻辑可选择初始轮询定时器。举例来说,如果CC计数器的值满足阈值准则(例如,CC计数器值等于或超出阈值),那么存储器子系统控制器可确定当前工作负载为程序工作负载(或主要为程序工作负载)。存储器子系统控制器接着可将初始轮询定时器设置为反映处理程序命令所必需的大致命令操作时间的预定值(例如,1.7ms)。
如果CC计数器的值未能满足阈值准则(例如,CC计数器值小于阈值),那么存储器子系统控制器可确定当前工作负载为混合工作负载。存储器子系统控制器接着可将初始轮询定时器设置为反映处理由一定量的程序暂停操作中断的程序命令所必需的大致命令操作时间的预定值(例如,2.7ms)。
每当接收到读取命令或预定量的读取命令时,CC计数器可经复位。因而,存储器子系统可确定当前工作负载是程序工作负载还是混合工作负载,且基于所确定的工作负载动态地改变初始轮询定时器以适当地改进读取时延和/或程序时延。
根据本公开的一些实施例实施的系统和方法的优点包含但不限于降低复杂性和提高拥有工作负载的性能。此性能提高包含减少的时延,特别是当存储器子系统控制器可基于工作负载类型调整初始轮询周期时,因此使得程序能够暂停运行并改进读取时延。其它优点对于本领域的普通技术人员来说将是显而易见的,这将在下文中论述。尽管使用NAND快闪存储器的字线描述实施例,但本公开的各方面可应用于其它类型的存储器子系统。
图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(2D NAND)和三维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的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在所说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转换。存储器子系统控制器115还可包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换为主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路可从存储器子系统控制器115接收地址并对所述地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为包含原始存储器装置130的受管理存储器装置,所述原始存储器装置具有在裸片上的控制逻辑(例如,本地控制器132)和用于同一存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器子系统110包含媒体管理组件113,其可用于处理存储器子系统控制器115与存储器子系统110的存储器装置(例如,存储器装置130)的交互。举例来说,媒体管理组件113可将与从主机系统120接收到的请求对应的存储器存取命令发送到存储器装置130,所述存储器存取命令例如为写入(程序)命令、读取命令、擦除命令或其它命令。另外,媒体管理组件113可从存储器装置130接收数据,例如响应于读取命令或成功地执行程序(写入)命令的确认而检索到的数据。在一些实施例中,媒体管理组件113可为具有一或多个存储器装置130的存储器子系统110的部分。在一些实施例中,存储器子系统控制器115包含媒体管理操作组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,媒体管理组件113为主机系统120、应用程序或操作系统的部分。在另一实施例中,本地媒体控制器135包含媒体管理组件113的至少一部分,且经配置以执行本文中所描述的功能性。
在一些实施例中,媒体管理组件113可将包含暂停命令和恢复命令的特定命令引导到存储器装置130,以管理不同存储器存取操作之间的冲突。当接收到对同一数据块、子块和字线的单元执行后续存储器存取操作的请求时,在对存储器装置130的特定数据块、子块和字线的单元执行待决存储器存取操作时可能发生冲突。在一些实施例中,媒体管理组件113可通过将指定暂停命令发布到存储器装置130且接着在暂停待决存储器存取操作时发布执行后续存储器存取操作的请求而暂停待决存储器存取操作。
在一些实施例中,媒体管理组件113可维持连续计数(CC)计数器114。CC计数器114可维持初始设置为0的值。在一些实施例中,CC计数器114可在不接收使CC计数器114复位的阈值量的存储器存取命令类型(例如,读取命令、擦除命令等)的情况下反映由存储器装置130、140接收到的连续程序命令的数目。对于所接收的每一程序命令,由CC计数器114维持的值可例如按1的值递增。如下文将详细地解释,接收一定量的非程序存储器存取命令类型(例如,读取命令)可将CC计数器114复位到初始值0。CC计数器114值可供媒体管理组件113用于确定当前工作负载类型(例如,混合工作负载、程序工作负载、读取工作负载)。程序工作负载是指存储器装置仅接收或主要接收程序命令(例如,~99%程序命令和~1%读取命令)。读取工作负载是指存储器装置仅接收或主要接收读取命令(例如,~99%读取命令和~1%程序命令)。混合工作负载是指存储器装置接收程序命令和读取命令的相对混合(例如,~70%读取命令和~30%程序命令、~50%读取命令和~50%程序命令、~70%程序命令和~30%读取命令等)。如下文将详细地解释,在一些实施例中,媒体管理组件113可基于由存储器装置130、140所经历的当前工作负载类型而调整初始轮询定时器。
图2A到2B为根据本公开的一些实施例的用于基于当前工作负载设置初始轮询定时器的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的媒体管理组件113执行。虽然以特定顺序或次序来展示,但是除非另外指定,否则可修改过程的次序。因此,所说明的实施例应理解为仅作为实例,且所说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。
在操作210处,处理逻辑接收存储器存取命令。存储器存取命令可由主机(例如,主机120)或由存储器子系统控制器(例如,存储器子系统控制器115)起始。在一些实施例中,存储器存取命令可包含读取命令、程序命令、擦除命令等。
在操作215处,处理逻辑确定存储器存取命令是否为程序命令。在一些实施例中,为确定存储器存取命令是否为程序命令,处理逻辑检查存储器存取命令的操作码(操作代码),且将操作码与操作码数据结构(例如,元数据表)进行比较。在一些实施例中,所述操作码可位于存储器存取命令的标头中。在一些实施例中,处理逻辑可确定程序命令是否为特定类型的程序命令,例如主机起始的程序命令。
响应于处理逻辑确定存储器存取命令为程序命令,处理逻辑进行到操作220。响应于确定存储器存取命令不是程序命令(例如,是读取命令、擦除命令等),处理逻辑进行到图2B的操作260。
在操作220处,处理逻辑增加连续计数(CC)计数器(例如,CC计数器114)。CC计数器可初始地维持设置为0的值,且对于所接收的每一程序命令,可(例如,按1的值)使所述值递增。
在操作225处,处理逻辑确定CC计数器是否满足阈值准则。在一些实施例中,满足阈值准则可包含确定CC计数器值是等于CC阈值还是超出CC阈值。可基于操作者(例如,用户)输入、基于从机器学习模型获得的输出等使用数学公式确定阈值。在实施例中,可使用以下表示的公式来确定阈值:
队列深度可指存储器子系统110可在任一时间处理的待决输入/输出(I/O)存储器存取命令的数目(例如,64、128、256等)。传送大小可指顺序写入工作负载的大小(例如,64千字节(kB)、128kB等)。带宽可指顺序写入工作负载的处理量(例如,每秒4,000兆字节(MB/s)、5,000MB/s等)。CPU频率可指处理器的时钟速率(例如,100MHz、500MHz、1,000MHz等)。监控回路的循环可指单个监控回路需要的CPU循环的量(例如,500个循环、1000个循环等)。监控回路可指由存储器子系统的固件执行以收集和处理事件、调度操作、执行排队子任务等的事件回路。因此,作为说明性实例,CC阈值可设置为3,250,如下所见:
响应于满足阈值准则的CC计数器,处理逻辑进行到操作230且确定当前工作负载为程序工作负载,且进行到操作240。程序工作负载指示正由处理逻辑接收的当前一组存储器存取命令仅包含或主要包含程序命令。
响应于未能满足阈值准则的CC计数器,处理逻辑进行到操作235且确定当前工作负载为混合工作负载,且进行到操作240。混合工作负载指示正由处理逻辑接收的当前一组存储器存取命令包含混合写入命令和读取命令。
在操作240处,处理逻辑基于所确定的工作负载类型设置初始轮询定时器。当所确定的工作负载类型为程序工作负载时,处理逻辑可将初始轮询定时器设置为程序工作负载值。程序工作负载值可为预定值,例如存储器装置处理程序命令所需的大致持续时间(例如,命令操作时间)(例如,1.8ms)、小于存储器装置处理程序操作所需的大致持续时间的持续时间(例如,1.7ms)等。由于在程序工作负载期间不存在或存在相对较少的读取操作(因此,不存在或存在极少的程序暂停操作),命令操作时间的变化相对较小,因此对读取时延的影响有限。
当所确定的工作负载类型为混合工作负载时,处理逻辑可将初始轮询定时器设置为混合工作负载值。在混合工作负载中,程序命令的命令操作时间可由于暂停程序命令的程序暂停操作而变化。举例来说,在~70%读取命令与~30%写入命令的混合工作负载中,程序命令的命令操作时间可约为2.8ms。因此,混合工作负载值可为反映存储器装置在混合工作负载中处理程序命令通常需要的大致持续时间(或较小值)的预定值(例如,2.8ms、2.7ms等)。因此,在混合工作负载中,将初始轮询定时器设置为混合工作负载值可减少在周期性状态轮询阶段期间程序暂停的不可用性所经历的读取时延。
在操作245处,处理逻辑将设置轮询定时器的程序命令发布到存储器装置。
参看图2B,且响应于在图2A的操作215处确定存储器存取命令不是程序命令,处理逻辑进行到操作260。在操作260处,处理逻辑确定存储器存取命令是否为读取命令。在一些实施例中,为确定存储器存取命令是否为读取命令,处理逻辑检查存储器存取命令的操作码(操作代码),且将操作码与操作码数据结构(例如,元数据表)进行比较。在一些实施例中,处理逻辑可确定读取命令是否为特定类型的程序命令,例如主机起始的读取命令。
响应于处理逻辑确定存储器存取命令为读取命令,处理逻辑进行到操作265。响应于确定存储器存取命令不是读取命令(例如,是擦除命令),处理逻辑直接进行到操作270而不执行与CC计数器相关的任何操作(例如,处理逻辑不使CC计数器值递增或复位)。
在操作265处,处理逻辑使CC计数器复位。举例来说,处理逻辑可将读取计数器复位成值0。在一些实施例中,处理逻辑可首先使读取计数器的值递增。读取计数器可维持初始设置为0的值且可反映所接收的读取命令的数目。对于所接收的每一读取命令,由读取计数器维持的值可例如递增值1。响应于读取计数器值满足阈值准则(例如,等于或超出阈值),处理逻辑可使CC计数器和读取计数器复位。可基于用户输入(例如,响应于测试结果、实验结果等)、基于算法、基于机器学习模型的输出等来设置读取计数器阈值准则。使用读取计数器可防止处理逻辑由于在主要的程序工作负载期间接收到相对较少的读取命令而使CC计数器复位。
在操作270处,处理逻辑将存储器存取命令发布到存储器装置。举例来说,处理逻辑可发布读取命令或擦除命令。在一些实施例中,响应于接收到读取命令,存储器装置可执行程序暂停操作以处理读取命令。
图4说明计算机系统400的实例机器,在所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统400可对应于主机系统(例如,图1的主机系统120),所述主机系统包含或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,可用于运行操作系统以执行与图1的媒体管理操作组件113对应的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行将由所述机器采取的指定动作的一组指令的任何机器。此外,虽然说明单个机器,但应认为术语“机器”还包含机器的任何集合,所述机器单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
实例计算机系统400包含处理装置402、主存储器404(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM))、静态存储器406(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统418,它们经由总线430彼此通信。处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置402还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置402经配置以执行用于执行本文所论述的操作和步骤的指令426。计算机系统400可进一步包含网络接口装置408以经由网络420进行通信。
数据存储系统418可包含机器可读存储媒体424(也称为计算机可读媒体),其上存储有一或多组指令426或体现本文中所描述的方法或功能中的任一或多种的软件。指令426还可在其由计算机系统400执行期间完全或至少部分地驻存在主存储器404内和/或处理装置402内,主存储器404和处理装置402还构成机器可读存储媒体。机器可读存储媒体424、数据存储系统418和/或主存储器404可与图1的存储器子系统110对应。
在一个实施例中,指令426包含用于实施对应于图1的媒体管理组件113的功能性的指令。尽管在实例实施例中将机器可读存储媒体424展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的一组指令且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其他技术人员的方式。本文的算法通常是指产生所要结果的操作的自洽序列。操作为要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等有时是便利的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文的操作的设备。此设备可出于所希望目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中所呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是便利的。将如下文描述中所示呈现用于多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。举例来说,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,已参考本公开的特定实例实施例描述本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种系统,其包括:
存储器装置;及
处理装置,其以操作方式耦合到所述存储器装置以执行包括以下的操作:
从主机系统接收存储器存取命令;
响应于确定所述存储器存取命令为程序命令,使连续计数器值递增;
确定所述连续计数器值是否满足阈值准则;及
响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与所述连续计数器值满足所述阈值准则相关联的值。
2.根据权利要求1所述的系统,其中所述操作进一步包括:
响应于确定所述连续计数器值未能满足所述阈值准则,将所述初始轮询定时器设置为与所述连续计数器值未能满足所述阈值准则相关联的值。
3.根据权利要求2所述的系统,其中与所述连续计数器值未能满足所述阈值准则的相关联的所述值大于与所述连续计数器值满足所述阈值准则相关联的所述值。
4.根据权利要求1所述的系统,其中所述操作进一步包括:
响应于确定所述存储器存取命令为读取命令,使所述连续计数器值复位。
5.根据权利要求1所述的系统,其中所述操作进一步包括:
响应于确定所述存储器存取命令为读取命令,使读取计数器值递增。
6.根据权利要求5所述的系统,其中所述操作进一步包括:
响应于确定所述读取计数器值满足阈值准则,使所述连续计数器值复位。
7.根据权利要求1所述的系统,其中所述操作进一步包括:
在将所述初始轮询定时器设置成与所述连续计数器值满足所述阈值准则相关联的所述值的情况下向所述存储器装置发布所述程序命令。
8.一种方法,其包括:
从主机系统接收存储器存取命令;
响应于确定所述存储器存取命令为程序命令,使连续计数器值递增;
确定所述连续计数器值是否满足阈值准则;及
响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与所述连续计数器值满足所述阈值准则相关联的值。
9.根据权利要求8所述的方法,其进一步包括:
响应于确定所述连续计数器值未能满足所述阈值准则,将所述初始轮询定时器设置为与所述连续计数器值未能满足所述阈值准则相关联的值。
10.根据权利要求9所述的方法,其中与未能满足所述阈值准则的所述连续计数器值相关联的所述值大于与满足所述阈值准则的所述连续计数器值相关联的所述值。
11.根据权利要求8所述的方法,其进一步包括:
响应于确定所述存储器存取命令为读取命令,使所述连续计数器值复位。
12.根据权利要求8所述的方法,其进一步包括:
响应于确定所述存储器存取命令为读取命令,使读取计数器值递增。
13.根据权利要求12所述的方法,其进一步包括:
响应于确定所述读取计数器值满足阈值准则,使所述连续计数器值复位。
14.根据权利要求8所述的方法,其进一步包括:
在将所述初始轮询定时器设置成与所述连续计数器值满足所述阈值准则相关联的所述值的情况下向存储器装置发布所述程序命令。
15.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由以操作方式耦合到存储器的处理装置执行时执行包括以下的操作:
响应于确定存储器存取命令是程序命令,使连续计数器值递增;
确定所述连续计数器值是否满足阈值准则;及
响应于确定所述连续计数器值未能满足所述阈值准则,将所述初始轮询定时器设置为与所述连续计数器值未能满足所述阈值准则相关联的值。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于确定所述连续计数器值满足阈值准则,将初始轮询定时器设置为与所述连续计数器值满足所述阈值准则相关联的值。
17.根据权利要求16所述的非暂时性计算机可读存储媒体,其中与所述连续计数器值未能满足所述阈值准则相关联的所述值大于与所述连续计数器值满足所述阈值准则相关联的所述值。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于确定所述存储器存取命令为读取命令,使所述连续计数器值复位。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于确定所述存储器存取命令为读取命令,使读取计数器值递增。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于确定所述读取计数器值满足阈值准则,使所述连续计数器值复位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/425,094 | 2022-11-14 | ||
US18/382,703 | 2023-10-23 | ||
US18/382,703 US20240160367A1 (en) | 2022-11-14 | 2023-10-23 | Dynamically adjusting the initial polling timer in memory devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118038920A true CN118038920A (zh) | 2024-05-14 |
Family
ID=91003048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311501028.9A Pending CN118038920A (zh) | 2022-11-14 | 2023-11-13 | 存储器装置中初始轮询定时器的动态调整 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118038920A (zh) |
-
2023
- 2023-11-13 CN CN202311501028.9A patent/CN118038920A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693774B2 (en) | Selectively utilizing a read page cache mode in a memory subsystem | |
US11709605B2 (en) | Storing zones in a zone namespace on separate planes of a multi-plane memory device | |
US11698864B2 (en) | Memory access collision management on a shared wordline | |
US20240103770A1 (en) | Improved memory performance using memory access command queues in memory devices | |
US11687285B2 (en) | Converting a multi-plane write operation into multiple single plane write operations performed in parallel on a multi-plane memory device | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
US20220137856A1 (en) | Program operation execution during program operation suspend | |
US20220404979A1 (en) | Managing queues of a memory sub-system | |
CN118038920A (zh) | 存储器装置中初始轮询定时器的动态调整 | |
US20240160367A1 (en) | Dynamically adjusting the initial polling timer in memory devices | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US11861228B2 (en) | Memory status command aggregation | |
US11763900B2 (en) | Resumption of program or erase operations in memory | |
US11669456B2 (en) | Cache release command for cache reads in a memory sub-system | |
US11886346B2 (en) | Cache read context switching in a memory sub-system | |
US11899972B2 (en) | Reduce read command latency in partition command scheduling at a memory device | |
US11604732B1 (en) | Memory performance during program suspend protocol | |
US20230214157A1 (en) | NVMe COMMAND COMPLETION MANAGEMENT FOR HOST SYSTEM MEMORY | |
US20230068061A1 (en) | Memory sub-system command fencing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |