自适应吞吐量监测的制作方法


自适应吞吐量监测
1.交叉参考
2.本专利申请要求巴苏(basu)等人于2021年8月6日提交的标题为“自适应吞吐量监测(adaptive throughput monitoring)”的第17/396,117号美国专利申请的优先权,所述申请转让给本受让人,并且以引用的方式明确并入本文中。
技术领域
3.技术领域涉及自适应吞吐量监测。


背景技术:



4.存储器装置广泛用于在各种电子装置中存储信息,例如计算机、用户装置、无线通信装置、相机、数字显示器等等。信息通过将存储器装置内的存储器单元编程为各种状态来存储。例如,二进制存储器单元可编程成两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持超过两个可能状态,其中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程为对应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、静态ram(sram)、铁电ram(feram)、磁性ram(mram)、电阻性ram(rram)、快闪存储器、相变存储器(pcm)、3维交叉点存储器(3d交叉点)、或非(nor)和与非(nand)存储器装置等。存储器装置可以是易失性或非易失性的。易失性存储器单元(例如,dram单元)可随时间推移而丢失它们的编程状态,除非它们通过外部电源周期性地刷新。非易失性存储器单元(例如,nand存储器单元)可将它们的编程状态维持很长一段时间,即使在不存在外部电源的情况下也如此。


技术实现要素:



6.描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可包含:存储包括指令的代码,所述指令在由存储器装置的处理器执行时使所述存储器装置:在非易失性存储器装置的控制器处接收多个命令,其中所述非易失性存储器装置包括多个时钟,所述多个时钟中的每一个与所述非易失性存储器装置的相应子组件相关联;至少部分地基于接收到所述多个命令,确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的所述吞吐量,调整所述多个时钟中的至少一个的速率。
7.描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可包含:存储包括指令的代码,所述指令在由存储器装置的处理器执行时使所述存储器装置:在存储器装置在空闲模式中操作时,在所述存储器装置处接收命令,其中所述存储器装置包括多个时钟,并且其中所述多个时钟中的每一个与所述存储器装置的相应子组件相关联;至少部分地基于接收到所述命令,将所述存储器装置从所述空闲模式转变到分析模式;确定在所
述存储器装置在所述分析模式中操作时接收到的多个命令的一或多个特性是否满足阈值;以及至少部分地基于确定在所述存储器装置在所述分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,调整所述多个时钟中的至少一个的速率。
8.描述一种设备。所述设备可包含:非易失性存储器装置,其包括多个时钟,所述多个时钟中的每一个与所述非易失性存储器装置的相应子组件相关联;以及控制器,其与所述非易失性存储器装置耦合,所述控制器配置成:接收多个命令;至少部分地基于接收到所述多个命令而确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的所述吞吐量,调整所述多个时钟中的至少一个的速率。
附图说明
9.图1示出根据本文所公开的实例的支持自适应吞吐量监测的系统的实例。
10.图2示出根据本文所公开的实例的支持自适应吞吐量监测的系统的实例。
11.图3示出根据本文所公开的实例的支持自适应吞吐量监测的存储器系统的实例。
12.图4示出根据本文所公开的实例的支持自适应吞吐量监测的框图的实例。
13.图5示出根据本文所公开的实例的支持自适应吞吐量监测的存储器系统的框图。
14.图6和7示出根据本文所公开的实例的流程图,示出了支持自适应吞吐量监测的一或多种方法。
具体实施方式
15.可使用基于主机系统的带宽设置的时钟速率对存储器系统执行操作。例如,主机系统可配置成设置其与存储器系统通信的速度。在一些例子中,主机系统可配置成以相对较高的速度设置其带宽要求,这可能导致存储器系统的时钟被设置为最大速率。但是,在一些例子中,尽管主机系统和存储器系统之间的实际吞吐量较低,但可以将存储器系统的时钟设置为最大速率。由于存储器系统具有相对较低的功率预算,因此可能需要基于主机系统和存储器系统之间的实际吞吐量来调整存储器系统的一或多个时钟的速率。
16.本文描述了一种配置成确定从主机系统接收的命令的吞吐量的存储器系统。在一些例子中,存储器系统可包含用于设置各个时钟的操作速率(例如,频率)的组件(例如,分频器)。例如,存储器系统可包含系统时钟、接口(例如,开放式nand快闪接口(onfi))时钟和cpu时钟等等。存储器系统可从主机系统接收一或多个命令,并且可转变到确定命令吞吐量的模式(例如,第二模式、分析模式)。在第二模式中操作时,存储器系统可将每个时钟的速率设置成最大值以预测需要最大带宽的主机系统。在计算命令的吞吐量时,存储器系统可调整一或多个时钟的速率(例如,向下调整速率)。基于所计算的吞吐量调整时钟速率可以节省原本可能由于时钟以不必要或不希望的高速率操作而产生的功率。
17.本公开的特征首先在参考图1到2的系统、装置和电路的上下文中描述。本公开的特征在参考图3和4的存储器系统和框图的上下文中描述。本公开的这些和其它特征进一步由参考图5-7的涉及自适应吞吐量监测的设备图和流程图示出并在所述设备图和流程图的上下文中描述。
18.图1示出根据本文所公开的实例的支持自适应吞吐量监测的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
19.存储器系统110可以是或包含任何装置或装置集合,其中装置或装置集合包含至少一个存储器阵列。例如,存储器系统110可以是或包含通用快闪存储(ufs)装置、嵌入式多媒体控制器(emmc)装置、快闪装置、通用串行总线(usb)快闪装置、安全数字(sd)卡、固态驱动器(ssd)、硬盘驱动器(hdd)、双列直插式存储器模块(dimm)、小型dimm(so-dimm)或非易失性dimm(nvdimm),以及其它可能性。
20.系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
21.系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106介接,所述主机系统控制器可以是配置成使主机系统105根据如本文中所描述的实例执行各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,并且在一些情况下,可包含处理器芯片组和由处理器芯片组执行的软件堆栈。例如,主机系统105可包含配置成与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个芯、一或多个高速缓存(例如,在主机系统105本地或包含在主机系统105中的存储器)、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统105可使用存储器系统110,例如以将数据写入到存储器系统110和从存储器系统110读取数据。尽管在图1中示出一个存储器系统110,但是主机系统105可与任何数量的存储器系统110耦合。
22.主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可配置成使用相关联的协议经由物理主机接口通信(例如,在存储器系统110和主机系统105之间交换或以其它方式传送控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于sata接口、ufs接口、emmc接口、pcie接口、usb接口、光纤通道接口、小型计算机系统接口(scsi)、串行连接的scsi(sas)、双倍数据速率(ddr)接口、dimm接口(例如,支持ddr的dimm套接接口)、开放式nand快闪接口(onfi),以及低功率双倍数据速率(lpddr)接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106和存储器系统110的存储器系统控制器115中或以其它方式支持在它们之间。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口或经由用于包含在存储器系统110中的每个类型的存储器装置130的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
23.存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任一类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元或其任何组合)的一或多个存储器阵列。尽管图1的实例中示出两个存储器装置130-a和130-b,但是存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含超过一个存储器装置130,那么存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
24.存储器系统控制器115可与主机系统105耦合并与其通信(例如,经由物理主机接口),并且可以是配置成使存储器系统110根据如本文中所描述的实例执行各种操作的控制
器或控制组件的实例。存储器系统控制器115还可与存储器装置130耦合并与其通信以执行操作,例如在存储器装置130处读取数据、写入数据、擦除数据或刷新数据——及其它这类操作——这些可统称为存取操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令,并与一或多个存储器装置130通信以执行此类命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。例如,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现存储器装置130的所需存取。在一些情况下,存储器系统控制器115可与主机系统105及一或多个存储器装置130交换数据(例如,响应于来自主机系统105的命令或以其它方式与所述命令相关联)。例如,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
25.存储器系统控制器115可配置成用于与存储器装置130相关联的其它操作。例如,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、背景刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(lba))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
26.存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑以执行本文中属于存储器系统控制器115的操作的电路系统。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp)),或任何其它合适的处理器或处理电路系统。
27.存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(rom)或其它可存储操作代码(例如,可执行指令)的存储器,所述操作代码可由存储器系统控制器115执行以执行本文中属于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(sram)或其它可供存储器系统控制器115用于内部存储或计算的存储器,例如,与本文中属于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可用作存储器系统控制器115的高速缓存。例如,如果从存储器装置130读取或向其写入,那么数据可以存储在本地存储器120中,并且数据可在本地存储器120内供主机系统105(例如,相对于存储器装置130具有减小的时延)用于后续根据高速缓存策略进行检索或操控(例如,更新)。
28.尽管图1中的存储器系统110的实例已经示出为包含存储器系统控制器115,但在一些情况下,存储器系统110可能不包含存储器系统控制器115。例如,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或一或多个本地控制器135,它们可分别在存储器装置130内部,以执行本文中属于存储器系统控制器115的功能。一般来说,本文中属于存储器系统控制器115的一或多个功能在一些情况下实际可由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地受存储器系统控制器115管理的存储器装置130可被称为受管理存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
29.存储器装置130可包含一或多个非易失性存储器单元阵列。例如,存储器装置130可包含nand(例如,nand快闪)存储器、rom、相变存储器(pcm)、自选存储器、其它硫族化物基
存储器、铁电随机存取存储器(ram)(feram)、磁性ram(mram)、nor(例如,nor快闪)存储器、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、氧化物基rram(oxram)、电可擦除可编程rom(eeprom)或其任何组合。另外或替代地,存储器装置130可包含一或多个易失性存储器单元阵列。例如,存储器装置130可包含ram存储器单元,例如动态ram(dram)存储器单元和同步dram(sdram)存储器单元。
30.在一些实例中,存储器装置130可包含(例如,在同一裸片上或在同一封装内)本地控制器135,其可在相应存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或者可执行本文中属于存储器系统控制器115的一或多个功能。例如,如图1中所示,存储器装置130-a可包含本地控制器135-a,且存储器装置130-b可包含本地控制器135-b。
31.在一些情况下,存储器装置130可以是或包含nand装置(例如,nand快闪装置)。存储器装置130可以是或包含存储器裸片160。例如,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一片电子器件级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,每个平面165可包含相应的一组块170,其中每个块170可包含相应的一组页175,每个页175可包含一组存储器单元。
32.在一些情况下,nand存储器装置130可包含配置成各自存储一个信息位的存储器单元,其可以称为单层级单元(slc)。另外或替代地,nand存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,那么其可以称为多层级单元(mlc),如果配置成各自存储三个信息位,那么可以称为三层级单元(tlc),如果配置成各自存储四个信息位,那么可以称为四层级单元(qlc),或者更一般地称为多层级存储器单元。多层级存储器单元相对于slc存储器单元可提供更大的存储密度,但是在一些情况下,可能会涉及更窄的读取或写入裕度或支持电路系统的更大复杂性。
33.在一些情况下,平面165可以指块170的组,并且在一些情况下,可在不同平面165内进行并行操作。例如,并行操作可在不同块170内的存储器单元上执行,只要所述不同块170在不同平面165中即可。在一些情况下,单独的块170可被称为物理块,并且虚拟块180可以指其内可进行并行操作的块170的组。例如,并行操作可在分别位于平面165-a、165-b、165-c和165-d的块170-a、170-b、170-c和170-d上执行,并且块170-a、170-b、170-c和170-d可统称为虚拟块180。在一些情况下,虚拟块可包含来自不同存储器装置130的块170(例如,包含存储器装置130-a和存储器装置130-b的一或多个平面中的块)。在一些情况下,虚拟块内的块170可在它们相应的平面165内具有相同块地址(例如,块170-a可以是平面165-a的“块0”,块170-b可以是平面165-b的“块0”,以此类推)。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如并行操作是对在相应平面165内具有相同页地址的不同页175内的存储器单元执行的(例如,与命令解码、页地址解码电路系统或其它电路系统跨平面165共享有关)。
34.在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。例如,同一页175中的存储器单元可共享公共字线(例如,与其耦合),并且同一串中的存储器单元可共享公共数字线(其可被替代地称作位线)(例如,与其耦合)。
35.对于一些nand架构,存储器单元可在第一粒度级(例如,在页粒度级)读取和编程
(例如,写入),但是可在第二粒度级(例如,在块粒度级)擦除。也就是说,页175可以是可独立编程或读取(例如,作为单个编程或读取操作的部分并行编程或读取)的最小存储器(例如,存储器单元集)单位,并且块170可以是可独立擦除(例如,作为单个擦除操作的部分并行擦除)的最小存储器(例如,存储器单元集)单位。此外,在一些情况下,nand存储器单元可在它们可以用新数据重写之前擦除。因此,例如,在一些情况下,已用页175可直到包含页175的整个块170被擦除才更新。
36.在一些情况下,存储器系统控制器115或本地控制器135可执行存储器装置130的操作(例如,作为一或多个媒体管理算法的部分),例如耗损均衡、背景刷新、垃圾收集、清理、块扫描、健康监测或其它操作,或其任何组合。例如,在存储器装置130内,块170可具有一些含有有效数据的页175和一些含有无效数据的页175。为了避免等待块170中的全部页175具有无效数据以便擦除和重复使用块170,可以调用称为“垃圾收集”的算法,使得块170被擦除和释放为空闲块以用于后续写入操作。垃圾收集可以指一组媒体管理操作,包含例如选择含有有效和无效数据的块170,选择块中含有有效数据的页175,将有效数据从选定页175复制到新位置(例如,另一块170中的空闲页175),将先前选定页175中的数据标记为无效,以及擦除选定块170。因此,已经擦除的块170的数目可以增加,使得更多块170可用于存储后续数据(例如,后续从主机系统105接收的数据)。
37.系统100可包含任何数量的支持自适应吞吐量监测的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包含或者可以其它方式存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储用于执行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能的指令(例如,固件)。例如,此类指令如果由主机系统105(例如,主机系统控制器106)、存储器系统控制器115或存储器装置130(例如,本地控制器135)执行,可使主机系统105、存储器系统控制器115或存储器装置130执行本文中所描述的一或多个相关联功能。
38.在一些情况下,存储器系统110可使用存储器系统控制器115提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例是受管理nand(mnand)系统。
39.在一些实例中,存储器系统110可包含用于各个子组件的一或多个时钟。例如,存储器裸片160可与系统时钟相关联,存储器系统控制器115可包含与cpu时钟相关联的处理器(例如,cpu)及与接口时钟相关联的数据路径。时钟的操作速率(例如,时钟的频率)可由存储器系统控制器115设置或调整。例如,存储器系统110可从主机系统105接收一或多个命令。在接收到命令后,存储器系统控制器115可确定命令的吞吐量,所述吞吐量可使用各种因子计算,如本文所述。基于所计算的吞吐量,存储器系统控制器115可维持或调整(例如,向上或向下)任何一个时钟或多个时钟的速率。基于所计算的吞吐量调整时钟速率可节省原本可能由于时钟以不必要的高速率操作而产生的功率。
40.图2示出根据本文所公开的实例的支持自适应吞吐量监测的系统200的实例。系统200可以是参考图1所描述的系统100或其方面的实例。系统200可包含配置成在主机系统205使用存取命令(例如,读取命令或写入命令)请求时存储从主机系统205接收的数据以及将数据发送到主机系统205的存储器系统210。系统200可实施参考图1所描述的系统100的
各方面。例如,存储器系统210和主机系统205可分别为存储器系统110和主机系统105的实例。
41.存储器系统210可包含存储器装置240,用于存储在存储器系统210和主机系统205之间传送的数据,例如响应于从主机系统205接收到存取命令,如本文所述。存储器装置240可包含参考图1所描述的一或多个存储器装置。例如,存储器装置240可包含nand存储器、pcm、自选存储器、3d交叉点、其它硫族化物基存储器、feram、mram、nor(例如,nor快闪)存储器、stt-mram、cbram、rram或oxram。
42.存储器系统210可包含存储控制器230,用于控制数据去往和来自存储器装置240的直接传递,例如咦存储数据、检索数据和确定要存储数据及从中检索数据的存储器位置。存储控制器230可与存储器装置240直接或经由总线275(例如,onfi总线)使用特定于每个类型的存储器装置240的协议通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包含多个存储控制器230,例如针对每个类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施参考图1所描述的本地控制器135的各方面。
43.存储器系统210可另外包含用于与主机系统205通信的接口220和用于在主机系统205和存储器装置240之间传送的数据的临时存储的缓冲器225。接口220、缓冲器225和存储控制器230可用于在主机系统205和存储器装置240之间转换数据,例如,如由数据路径250所示,并且可以统称为数据路径组件。
44.在传送期间使用缓冲器225临时存储数据可允许数据在命令进行处理时缓冲,由此减小命令之间的时延,并允许与命令相关联的任意数据大小。这还可允许处理命令突发,并且经缓冲数据可以在突发停止后立即存储或传输(或这两者)。缓冲器225可包含相对快速的存储器(例如,某些类型的易失性存储器,如sram或dram)或硬件加速器或这两者,以允许去往和来自缓冲器225的数据的快速存储和检索。缓冲器225可包含数据路径开关组件,用于缓冲器225和其它组件之间的双向数据传送。
45.缓冲器225内数据的临时存储可以指在执行存取命令期间数据存储在缓冲器225中。也就是说,在完成存取命令后,相关联数据可不再维持在缓冲器225中(例如,可以用额外存取命令的数据覆写)。另外,缓冲器225可以是非高速缓存缓冲器。也就是说,数据可以不由主机系统205直接从缓冲器225读取。例如,读取命令可以添加到队列中,而无需将地址与已经在缓冲器225中的地址匹配的操作(例如,无需高速缓存地址匹配或查操作)。
46.存储器系统210可另外包含存储器系统控制器215,用于执行从主机系统205接收的命令并在移动数据时控制数据路径组件。存储器系统控制器215可以是参考图1所描述的存储器系统控制器115的实例。总线235可用于在系统组件之间传送。
47.在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。这可为有益的,例如,在来自主机系统205的超过一个存取命令由存储器系统210并行处理时。作为可能实施方案的实例,命令队列260、缓冲器队列265和存储队列270分别描绘于接口220、存储器系统控制器215和存储控制器230处。然而,如果使用的话,队列可以定位在存储器系统210内的任何位置。
48.在主机系统205和存储器装置240之间传送的数据可采用存储器系统210中不同于非数据信息(例如,命令状态信息)的路径。例如,存储器系统210中的系统组件可使用总线
235彼此通信,而数据可使用通过数据路径组件的数据路径250而不是总线235。存储器系统控制器215可控制数据如何及是否通过在总线235上与数据路径组件通信(例如,使用特定于存储器系统210的协议)在主机系统205和存储器装置240之间传送。
49.如果主机系统205向存储器系统210传输存取命令,那么命令可由接口220接收,例如根据协议(例如,ufs协议或emmc协议)。因此,接口220可被视为存储器系统210的前端。在接收到每一存取命令后,接口220可例如经由总线235将命令传送到存储器系统控制器215。在一些情况下,每一命令可通过接口220添加到命令队列260中以将命令传送到存储器系统控制器215。
50.存储器系统控制器215可确定存取命令已基于来自接口220的传送接收到。在一些情况下,存储器系统控制器215可确定存取命令已经通过从命令队列260检索命令而接收到。命令可在它已经从命令队列260检索到之后从其移除,例如,通过存储器系统控制器215。在一些情况下,存储器系统控制器215可使接口220例如经由总线235从命令队列260移除命令。
51.在确定存取命令已经接收到后,存储器系统控制器215可执行存取命令。对于读取命令,这可指从存储器装置240获得数据并将数据传输到主机系统205。对于写入命令,这可指从主机系统205接收数据并将数据移动到存储器装置240。
52.在任一情况下,存储器系统控制器215可使用缓冲器225临时存储从主机系统205接收或发送到主机系统205的数据,以及其它用处。缓冲器225可被视为存储器系统210的中端。在一些情况下,缓冲器地址管理(例如,寻址缓冲器225中的位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)执行。
53.为了处理从主机系统205接收的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够的可用空间存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定缓冲器225内可用于存储与写入命令相关联的数据的空间量。
54.在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,包含写入命令。缓冲器队列265可包含与当前存储在缓冲器225中的数据相关联的存取命令。在一些情况下,命令队列260中的命令可通过存储器系统控制器215移动到缓冲器队列265,并且在相关联数据存储在缓冲器225中时可保持在缓冲器队列265中。在一些情况下,缓冲器队列265中的每一命令可与缓冲器225处的地址相关联。也就是说,指示与每一命令相关联的数据存储在缓冲器225中何处的指针可被维持。使用缓冲器队列265,多个存取命令可从主机系统205顺序接收,并且存取命令的至少部分可以并行处理。
55.如果缓冲器225具有足够的空间存储写入数据,那么存储器系统控制器215可使接口220向主机系统205传输可用指示(例如,“准备好传送”指示),例如,根据协议(例如,ufs协议或emmc协议)。当接口220随后从主机系统205接收与写入命令相关联的数据时,接口220可将数据传送到缓冲器225以供使用数据路径250临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内存储数据的位置。接口220可例如经由总线235向存储器系统控制器215指示去往缓冲器225的数据传送是否已经完成。
56.一旦写入数据已经通过接口220存储在缓冲器225中,数据可以传送到缓冲器225之外并存储于存储器装置240中。这可以使用存储控制器230完成。例如,存储器系统控制器
215可使存储控制器230使用数据路径250检索缓冲器225之外的数据,并将数据传送到存储器装置240。存储控制器230可被视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示去往存储器装置240的存储器装置的数据传送已经完成。
57.在一些情况下,存储队列270可用于辅助写入数据的传送。例如,存储器系统控制器215可(例如,经由总线235)将写入命令从缓冲器队列265推到存储队列270以用于处理。存储队列270可包含用于每一存取命令的条目。在一些实例中,存储队列270可另外包含:缓冲器指针(例如,地址),其可指示与命令相关联的数据存储在缓冲器225中何处;及存储指针(例如,地址),其可指示存储器装置240中与数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得从中获得数据的缓冲器225内的位置。存储控制器230可管理存储器装置240内存储数据的位置(例如,执行耗损均衡、垃圾收集等等)。条目可例如通过存储器系统控制器215添加到存储队列270中。例如,条目可在数据传送完成后通过存储控制器230或存储器系统控制器215从存储队列270移除。
58.为了处理从主机系统205接收的读取命令,存储器系统控制器215可同样首先确定缓冲器225是否具有足够的可用空间存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定缓冲器225内可用于存储与读取命令相关联的数据的空间量。
59.在一些情况下,缓冲器队列265可用于辅助以类似于上文关于写入命令所论述的方式缓冲存储与读取命令相关联的数据。例如,如果缓冲器225具有足够的空间存储读取数据,那么存储器系统控制器215可使存储控制器230从存储器装置240检索与读取命令相关联的数据,并将数据存储在缓冲器225中以供使用数据路径250临时存储。当去往缓冲器225的数据传送完成时,存储控制器230可例如经由总线235向存储器系统控制器215指示。
60.在一些情况下,存储队列270可用于辅助读取数据的传送。例如,存储器系统控制器215可将读取命令推到存储队列270以用于处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得从中检索数据的存储器装置240内的位置。在一些情况下,存储控制器230可从缓冲器队列265获得缓冲器225内存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回命令队列260。
61.一旦数据已经通过存储控制器230存储在缓冲器225中,数据就可以传送到缓冲器225之外并被发送到主机系统205。例如,存储器系统控制器215可使接口220使用数据路径250检索缓冲器225之外的数据并将数据传输到主机系统205,例如,根据协议(例如,ufs协议或emmc协议)。例如,接口220可处理来自命令队列260的命令,并且可例如经由总线235向存储器系统控制器215指示去往主机系统205的数据传输已经完成。
62.存储器系统控制器215可根据某一次序(例如,先入先出次序、根据命令队列260的次序)执行所接收命令。对于每一命令,存储器系统控制器215可使对应于命令的数据移动到缓冲器225之中和之外,如上文所论述。当数据移动到缓冲器225中并在其内存储时,命令可保持在缓冲器队列265中。如果命令的处理已经完成(例如,如果对应于存取命令的数据已经传送到缓冲器225之外),那么命令可以例如通过存储器系统控制器215从缓冲器队列265移除。如果命令从缓冲器队列265移除,那么先前存储与所述命令相关联的数据的地址
可用于存储与新命令相关联的数据。
63.存储器系统控制器215可另外配置成用于与存储器装置240相关联的操作。例如,存储器系统控制器215可执行或管理操作,例如耗损均衡操作、垃圾收集操作、如错误检测操作或误差校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、背景刷新、健康监测,及与来自主机系统205的命令相关联的逻辑地址(例如,lba)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。也就是说,主机系统205可发出指示一或多个lba的命令,并且存储器系统控制器215可识别由lba指示的一或多个物理块地址。在一些情况下,一或多个连续lba可对应于不连续物理块地址。在一些情况下,存储控制器230可配置成结合或替代存储器系统控制器215执行以上操作中的一或多个。在一些情况下,存储器系统控制器215可执行存储控制器230的功能,而存储控制器230可省略。
64.在一些实例中,系统200可包含用于各个子组件的一或多个时钟。例如,存储器装置240的存储器裸片可与接口时钟相关联,存储器系统控制器215可包含与cpu时钟相关联的处理器(例如,cpu),并且数据路径(例如,包含接口220、缓冲器225和存储控制器230)可与系统时钟相关联。时钟的操作速率(例如,时钟的频率)可由存储器系统控制器215设置或调整。例如,系统200可从主机系统205接收一或多个命令。在接收到命令后,存储器系统控制器215可确定命令的吞吐量,所述吞吐量可使用各种因子计算,如本文所述。基于所计算的吞吐量,存储器系统控制器215可维持或调整(例如,向上或向下)任何一个时钟或多个时钟的速率。基于所计算的吞吐量调整时钟速率可节省原本可能由于时钟以不必要的高速率操作而产生的功率。
65.图3示出根据本文所公开的实例的支持自适应吞吐量监测的存储器系统300的实例。存储器系统300可包含控制器305(例如,存储器控制器305)、处理器310(例如,cpu 310)和一或多个存储器裸片315。控制器305和存储器裸片315可与总线320耦合,所述总线可以是onfi总线320的实例。处理器310可包含在控制器305的固件层中或与其相关联。此外,控制器305和存储器裸片315可以是参考图2所描述的存储器系统控制器215和存储器装置240的实例。
66.另外或替代地,控制器305可包含队列325、加速器335、系统时钟分频器340、接口时钟分频器345和cpu时钟分频器350。如本文所描述,加速器335可配置成确定与从主机装置接收的命令相关联的吞吐量。基于所确定的吞吐量,系统时钟分频器340、接口时钟分频器345和cpu时钟分频器350可配置成调整存储器系统300的相应时钟的速率(例如,时钟速率)。基于所接收命令的吞吐量调整相应时钟的速率可使存储器系统300节省原本会由于时钟以不必要的高速率操作而产生的功率,还有其它益处。
67.在一些实例中,存储器系统300可与主机系统(例如,参考图2所描述的主机系统205)耦合。主机系统可向存储器系统300传输命令(例如,存取命令),其可由接口(未示出)接收。如参考图2所描述,命令可由接口根据协议(例如,ufs协议或emmc协议)接收。在一些情况下,每个所接收命令可通过接口添加到命令队列325中,并且命令可传送到加速器335,用于确定命令的吞吐量。
68.主机系统可配置成设置特定带宽要求。例如,主机系统可配置成设置其与存储器系统300通信的速度。在一些例子中,主机系统可配置成以在g1到g4范围内的不同挡位(例
如,速度)设置其带宽要求。当以g4操作时,主机系统可具有相对较高的带宽要求,且因此可以相对高的速率与存储器系统300通信。另外或替代地,当以g1操作时,主机系统可具有相对较低的带宽要求,且因此可以相对低的速率与存储器系统300通信。如本文所描述,即使主机系统设置了带宽要求,加速器335也可基于所接收命令的吞吐量来调整一或多个时钟的速率,这可减少存储器系统300的总体功耗。
69.在一些例子中,当在分析模式(例如,第二模式)中操作时,加速器335可确定所接收命令的吞吐量。存储器系统300可基于队列325是否包含任何命令而在不同模式(例如,不同状态)中操作。例如,存储器系统300可在分析模式、低功率模式、空闲模式(例如,第一模式)或另一模式(例如,第三模式)中操作。当队列325为空时,存储器系统300可进入空闲模式,并且当队列325包含一或多个命令时,存储器系统300可转变到分析模式。在一些实例中,存储器系统300可从任何其它模式(例如,从低功率模式、空闲模式等)转变到分析模式。当在分析模式中操作时,加速器335可能没有足够的信息将存储器系统300(或存储器系统300的特定时钟)变为特定功率分布。因此,存储器系统300可在分析模式中一直操作到加速器335能够做出关于功率分布的决策为止。
70.当在分析模式中操作时,加速器335可计算从主机系统接收的命令的吞吐量。如本文所使用,确定所接收命令的“吞吐量”可以指确定在一持续时间期间接收的命令数量、确定所接收命令中的一或多个的类型、确定与所接收命令中的一或多个相关联的数据数量、确定队列325的深度、确定所接收命令中的一或多个的地址,或其组合。
71.例如,加速器335可通过确定在一持续时间期间接收的命令数量而确定所接收命令的吞吐量。例如,加速器335(或控制器305的另一组件)可在转变到分析模式后发起定时器。接着,加速器335可以确定在定时器到期之前接收到的命令数量。基于吞吐量(例如,命令数量),加速器335可调整存储器系统300的一或多个时钟的速率。
72.另外或替代地,加速器可通过确定所接收命令中的一或多个的类型而确定所接收命令的吞吐量。例如,加速器335可基于命令是读取命令、写入命令、随机读取命令、随机写入命令或混合工作负载来调整存储器系统300的一或多个时钟的速率。
73.另外或替代地,加速器可通过确定与所接收命令中的一或多个相关联的数据数量而确定所接收命令的吞吐量。例如,加速器可确定与每个所接收命令相关联的数据数量,并且可基于数据数量调整存储器系统300的一或多个时钟的速率。
74.另外或替代地,加速器可通过确定队列325中的命令数量而确定所接收命令的吞吐量。例如,加速器可确定队列325中的命令数量,并且可基于命令数量调整存储器系统300的一或多个时钟的速率。
75.另外或替代地,加速器可通过确定一或多个所接收命令的地址而确定所接收命令的吞吐量。例如,加速器可确定地址与特定处理器或特定存储器裸片315相关联,并且可基于地址调整存储器系统300的一或多个时钟的速率。
76.在一些例子中,存储器系统300可包含与存储器系统300的相应子组件相关联的不同时钟。在一些实例中,控制器305(或另一组件)可包含振荡器(例如,压控振荡器(vco)或锁相回路(pll))以产生存储器系统300的时钟,或者存储器系统300可从主机接收时钟。控制器305可包含为子组件设置不同频率的相应分频器。例如,控制器305可包含系统时钟分频器340,其配置成为去往存储器系统300内的存储器裸片315的数据路径设置频率(例如,
速率)。控制器305还可包含配置成为总线320设置频率(例如,速率)的接口时钟分频器345和配置成为处理器310设置频率(例如,速率)的cpu时钟分频器350,所述处理器可管理队列325中的命令。尽管图3示出包含三(3)个时钟分频器的存储器系统300,但存储器系统300可包含与相应子组件的时钟相关联的任何数量的时钟分频器。
77.为了设置或调整存储器系统300的时钟的速率,加速器335可与相应时钟分频器通信。另外或替代地,加速器335可存储或存取表,例如下文再现的表1。表可包含与编索引时钟速率范围相关联的命令的类别。例如,在接收到多个命令后,加速器335可将命令分类到一或多个类别中,如下文所示。
[0078][0079][0080]
表1
[0081]
举例来说,在接收到多个命令后,存储器系统300可转变到分析模式中。当在分析模式中操作时,系统时钟分频器340、接口时钟分频器345和cpu时钟分频器350可将相应时钟设置成最大速率,如表1所示(例如,分别为500、800、400)。接着,加速器335可将命令分类到一或多个类别中,例如读取、写入、随机读取、随机写入等,如表1所示。然后,加速器335可使用本文所述的标准中的一个(例如,在一持续时间期间接收的命令数量、所接收命令中的一或多个的类型,等等)计算吞吐量。
[0082]
基于所接收命令的类别和所计算的吞吐量,加速器335可(例如,从编索引范围中)选择对应于每个时钟的速率的索引。例如,可将所接收命令分类为随机读取,并且可计算(例如,随机读取的)命令的吞吐量。使用此实例,系统时钟分频器340、接口时钟分频器345和cpu时钟分频器350可基于所计算的吞吐量将相应时钟设置成500、600和200或300、400和200。在一些例子中,所接收命令可属于超过一个类别。因此,在此类实例中,加速器335可从超过一个类别当中选择对应于时钟的最高速率的索引(针对每个相应时钟)。
[0083]
另外或替代地,每个时钟可与编索引频率范围(例如,编索引时钟速率范围)相关联。每个编索引频率范围可包含相同数量的时钟频率,但是一或多个类别中的至少一个时钟(或每个时钟)可选择不同索引。因此,系统时钟分频器340、接口时钟分频器345和cpu时钟分频器350可基于所计算的吞吐量设置相应频率。
[0084]
在一些实例中,时钟的速率还可基于要对存储器系统300执行的维护操作的数量
来调整。例如,当存储器系统300空闲(例如,在空闲模式即第一模式中操作时),存储器控制器305可确定要对存储器裸片315执行的垃圾收集操作的数量。取决于所述数量,一或多个时钟的速率可进行调整(例如,向上或向下调整)。例如,如果要执行的垃圾收集操作的数量相对较低,那么可以维持或降低(例如,向下调整)一或多个时钟的速率。此外,如果要执行的垃圾收集操作的数量相对较大,那么可以增加(例如,向上调整)一或多个时钟的速率,这可增加存储器系统300的带宽。因此,通过基于所接收命令的吞吐量或垃圾收集操作来调整存储器系统300的一或多个时钟的速率,存储器系统300可节省原本会由于时钟以不必要的高速率操作而产生的功率,还有其它益处。
[0085]
图4示出根据本文所公开的实例的支持自适应吞吐量监测的框图400的实例。框图400可示出存储器系统(例如,参考图3所描述的存储器系统300)的不同操作模式。例如,框图400可示出空闲模式405、分析模式410、其它模式415和低功率模式420。此外,框图400可示出不同模式之间的转变。基于相关联存储器系统的操作模式,相应时钟的速率可基于所接收命令的吞吐量进行调整,这可使存储器系统节省原本会由于时钟以不必要的高速率操作而产生的功率。
[0086]
在一些实例中,存储器系统可在空闲模式405中操作。存储器系统可基于在一持续时间内不存在从主机系统(例如,参考图2所描述的主机系统205)接收的命令而在空闲模式405中操作。换句话说,当队列(例如,参考图2所描述的队列325)为空时(例如,当其深度等于零(0)时),存储器系统可在空闲模式405中操作。
[0087]
在425处,存储器系统可从空闲模式405转变到分析模式。存储器系统可基于从主机系统接收到一或多个命令而转变。在一些例子中,425处的转变可基于单个命令存储到存储器系统的队列(例如,当队列深度大于零(0)时)而进行。
[0088]
当在分析模式410中操作时,存储器系统(例如,参考图3所描述的存储器系统300的加速器335)可能没有足够的信息来调整所有时钟的速率。因此,存储器系统可在分析模式410中一直操作到加速器能够做出将特定时钟设置成什么速率的决策为止。如本文所描述,当处于分析模式410时,加速器可确定所接收命令的吞吐量。在确定所接收命令的吞吐量时,如果预测确保功率分布将需要高带宽,那么存储器系统的时钟的速率可设置成相对较高(或最大)速率。在一些例子中,加速器可计算在一间隔(例如,一持续时间)内的所接收命令的吞吐量,所述间隔可以是可配置的。在确定所接收命令的吞吐量后,加速器可调整一或多个时钟的速率,存储器系统可转变到另一模式(例如,示出为其它模式415)。
[0089]
在430处,存储器系统可从分析模式410转变到另一模式(例如,示出为其它模式415)。所述其它模式415可对应于表1中所示类别中的一或多个。因此,转变到所述其它模式415可有效地设置相应时钟的时钟速率。在一些例子中,命令的模式可分类到超过一个类别中。因此,在此类实例中,来自超过一个类别中的任一个的每个时钟可以最高速率设置。另外或替代地,至少一个时钟的速率可根据类别(例如,单个类别)设置,并且速率在命令模式所分类的另一类别中更高的其它时钟的速率可以相应地增加。
[0090]
在所述其它模式415中操作时,存储器系统可处理从主机系统接收的命令,其时钟的速率可维持在由与所述其它模式415相关联的类别设置的速率。在一些例子中,存储器系统可继续在此模式中操作,直到它转变到空闲模式405或回到分析模式410为止。例如,在435处,存储器系统可基于队列为空而转变到空闲模式405。
[0091]
另外或替代地,在440处,存储器系统可基于接收到命令的不同模式而转变到分析模式。例如,加速器可基于接收到多个读取命令而设置一或多个时钟的速率。但是,在从分析模式410转变之后,存储器系统可接收多个写入命令。因此,存储器系统可继续在其它模式415中分析所接收命令。如果时钟的类别改变,那么存储器系统可从一个类别直接转变到另一类别,并且因此加速器可调整时钟的速率。
[0092]
另外或替代地,存储器系统可在低功率模式420中操作。存储器系统可基于从主机系统接收的命令(例如,休眠命令、睡眠命令等)而在低功率模式420中操作。因此,当在低功率模式420中操作时,存储器系统在一持续时间内可从主机系统接收相对较少的命令或不接收命令。在445处,存储器系统可从低功率模式420转变到分析模式410。存储器系统可基于从主机系统接收到一或多个命令而转变。在一些例子中,445处的转变可基于单个命令存储到存储器系统的队列(例如,当队列深度大于零(0)时)而进行。
[0093]
因此,参考图4所描述的各个模式可与基于所接收命令的吞吐量调整存储器系统的一或多个时钟的速率结合使用。因此,存储器系统可节省原本会由于时钟以不必要的高速率操作而产生的功率,还有其它益处。
[0094]
图5示出根据本文所公开的实例的支持自适应吞吐量监测的存储器系统520的框图500。存储器系统520可以是参考图1到4所描述的存储器系统的方面的实例。存储器系统520或其各种组件可以是用于执行本文所述的自适应吞吐量监测的各个方面的构件的实例。例如,存储器系统520可包含接收组件525、确定组件530、速率调整组件535、模式转变组件540、模式操作组件545、索引选择组件550、吞吐量计算组件555、分类组件560或其任何组合。这些组件中的每一个可直接或间接地彼此通信(例如,经由一或多个总线)。
[0095]
接收组件525可配置为或以其它方式支持用于在非易失性存储器装置的控制器处接收多个命令的构件,其中非易失性存储器装置包含多个时钟,所述多个时钟中的每一个与非易失性存储器装置的相应子组件相关联。在一些实例中,接收组件525可配置为或以其它方式支持用于在存储器装置在空闲模式中操作时在存储器装置处接收命令的构件,其中存储器装置包含多个时钟,并且其中所述多个时钟中的每一个与存储器装置的相应子组件相关联。
[0096]
在一些实例中,接收组件525可配置为或以其它方式支持用于在存储器装置在分析模式中操作时接收所述多个命令的构件。
[0097]
确定组件530可配置为或以其它方式支持用于至少部分地基于接收到所述多个命令而确定所述多个命令的吞吐量的构件。在一些实例中,确定组件530可配置为或以其它方式支持用于确定在非易失性存储器装置在第一模式中操作时要对非易失性存储器装置执行的维护操作的数量的构件。在一些实例中,为了支持确定所述多个命令的吞吐量,确定组件530可配置为或以其它方式支持用于以下的构件:至少部分地基于对所述多个命令归类分类,确定所述多个命令的子集与所述一或多个类别中的第一类别和所述一或多个类别中的第二类别相关联。
[0098]
在一些实例中,确定组件530可配置为或以其它方式支持用于确定在存储器装置在分析模式中操作时接收到的多个命令的一或多个特性是否满足阈值的构件。在一些实例中,确定组件530可配置为或以其它方式支持用于确定所述多个所接收命令的第一子集满足所述阈值的构件。在一些实例中,确定组件530可配置为或以其它方式支持用于确定所述
多个所接收命令的第二子集满足第二阈值的构件。
[0099]
速率调整组件535可配置为或以其它方式支持用于至少部分地基于确定所述多个命令的吞吐量而调整所述多个时钟中的至少一个的速率的构件。在一些实例中,速率调整组件535可配置为或以其它方式支持用于至少部分地基于从第一模式转变到第二模式而将所述多个时钟中的每一个的速率调整到第一速率的构件。在一些实例中,速率调整组件535可配置为或以其它方式支持用于至少部分地基于确定所述多个命令的吞吐量而将所述多个时钟中的至少一个的速率调整到低于第一速率的第二速率的构件。
[0100]
在一些实例中,速率调整组件535可配置为或以其它方式支持用于至少部分地基于确定要对非易失性存储器装置执行的维护操作的数量而调整所述多个时钟中的至少一个的速率的构件。在一些实例中,速率调整组件535可配置为或以其它方式支持用于以下的构件:至少部分地基于确定在存储器装置在分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,调整所述多个时钟中的至少一个的速率。
[0101]
在一些实例中,在存储器装置在分析模式中操作时,所述多个时钟中的每一个的速率设置为第一速率,并且速率调整组件535可配置为或以其它方式支持用于以下的构件:至少部分地基于确定在存储器装置在分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,将所述多个时钟中的至少一个的速率调整到低于第一速率的第二速率。在一些实例中,速率调整组件535可配置为或以其它方式支持用于以下的构件:至少部分地基于确定所述多个所接收命令的第一子集满足所述阈值且确定所述多个所接收命令的第二子集满足第二阈值,将所述多个时钟中的至少一个的速率调整到第三速率,其中所述阈值与第三速率相关联,第二阈值与低于第三速率的第四速率相关联。
[0102]
在一些实例中,模式转变组件540可配置为或以其它方式支持用于至少部分地基于接收到所述多个命令中的至少一个而将非易失性存储器装置从第一模式转变到第二模式的构件。模式转变组件540可配置为或以其它方式支持用于至少部分地基于接收到命令而将存储器装置从空闲模式转变到分析模式的构件。
[0103]
在一些实例中,在存储器装置在分析模式中操作时,所述多个时钟中的每一个的速率设置为第一速率,并且模式转变组件540可配置为或以其它方式支持用于至少部分地基于将所述多个时钟中的至少一个的速率调整到第二速率而将存储器装置从分析模式转变到不同于空闲模式的模式的构件。
[0104]
在一些实例中,模式操作组件545可配置为或以其它方式支持用于在接收所述多个命令之前在第一模式中操作非易失性存储器装置的构件。在一些实例中,模式操作组件545可配置为或以其它方式支持用于在将所述多个时钟中的至少一个的速率调整到第二速率之后在第三模式中操作非易失性存储器装置的构件。
[0105]
在一些实例中,为了支持调整所述多个时钟中的至少一个的速率,索引选择组件550可配置为或以其它方式支持用于针对第一时钟从第一编索引范围中选择对应于第三速率的第一索引的构件。在一些实例中,为了支持调整所述多个时钟中的至少一个的速率,索引选择组件550可配置为或以其它方式支持用于针对第二时钟从第二编索引范围中选择对应于第四速率的第二索引的构件。在一些实例中,为了支持调整所述多个时钟中的至少一个的速率,索引选择组件550可配置为或以其它方式支持用于针对第三时钟从第三编索引范围中选择对应于第五速率的第三索引的构件。
[0106]
在一些实例中,为了支持确定所述多个命令的吞吐量,索引选择组件550可配置为或以其它方式支持用于以下的构件:针对所述多个时钟中的相应时钟,从与第一类别相关联的第四索引和与第二类别相关联的第五索引中选择对应于所述相应时钟的最高速率的索引。
[0107]
在一些实例中,吞吐量计算组件555可配置为或以其它方式支持用于至少部分地基于所述一或多个特性而计算所述多个所接收命令的吞吐量的构件,其中调整所述多个时钟中的至少一个的速率至少部分地基于所计算的吞吐量。
[0108]
在一些实例中,为了支持确定所述多个命令的吞吐量,分类组件560可配置为或以其它方式支持用于至少部分地基于与所述多个命令中的每一个相关联的特性而将所述多个命令分类到一或多个类别中的构件,其中所述一或多个类别各自与第一编索引范围、第二编索引范围或第三编索引范围中的相应索引相关联。
[0109]
在一些实例中,所述多个时钟中的第一时钟与非易失性存储器装置的数据路径相关联,所述多个时钟中的第二时钟与非易失性存储器装置的处理器相关联,且所述多个时钟中的第三时钟与耦合到非易失性存储器装置的数据总线相关联。在一些实例中,确定所述多个命令的吞吐量包含确定在一持续时间期间接收的所述多个命令的数量,确定所接收的所述多个命令中的一或多个的类型,确定与所接收的所述多个命令中的一或多个相关联的数据数量,确定包含所接收的所述多个命令中的一或多个的队列的深度,确定所接收的所述多个命令中的一或多个的地址,或其组合。
[0110]
在一些实例中,所述一或多个特性包含在一持续时间期间接收的所述多个命令的数量、所述多个所接收命令中的一或多个的类型、与所述多个所接收命令中的一或多个相关联的数据数量、包含所述多个所接收命令中的一或多个的队列的深度、所述多个所接收命令中的一或多个的地址,或其组合。在一些实例中,所述多个时钟中的第一时钟与存储器装置的数据路径相关联,所述多个时钟中的第二时钟与存储器装置的处理器相关联,且所述多个时钟中的第三时钟与耦合到存储器装置的数据总线相关联。
[0111]
图6示出根据本文所公开的实例的流程图,示出了支持自适应吞吐量监测的方法600。方法600的操作可由本文所述的存储器系统或其组件实施。例如,方法600的操作可由参考图1到5所描述的存储器系统执行。在一些实例中,存储器系统可执行一组指令以控制装置的功能元件执行所述功能。另外或替代地,存储器系统可使用专用硬件执行所述功能的各方面。
[0112]
在605处,所述方法可包含在非易失性存储器装置的控制器处接收多个命令,其中非易失性存储器装置包含多个时钟,所述多个时钟中的每一个与非易失性存储器装置的相应子组件相关联。操作605可根据本文所公开的实例执行。在一些实例中,操作605的各方面可由参考图5所描述的接收组件525执行。
[0113]
在610处,所述方法可包含至少部分地基于接收到所述多个命令而确定所述多个命令的吞吐量。操作610可根据本文所公开的实例执行。在一些实例中,操作610的各方面可由参考图5所描述的确定组件530执行。
[0114]
在615处,所述方法可包含至少部分地基于确定所述多个命令的吞吐量而调整所述多个时钟中的至少一个的速率。操作615可根据本文所公开的实例执行。在一些实例中,操作615的各方面可由参考图5所描述的速率调整组件535执行。
[0115]
在一些实例中,本文所述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在非易失性存储器装置的控制器处接收多个命令,其中非易失性存储器装置包含多个时钟,所述多个时钟中的每一个与非易失性存储器装置的相应子组件相关联;至少部分地基于接收到所述多个命令,确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的吞吐量,调整所述多个时钟中的至少一个的速率。
[0116]
方法600和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:在接收所述多个命令之前在第一模式中操作非易失性存储器装置;至少部分地基于接收到所述多个命令中的至少一个,将非易失性存储器装置从第一模式转变到第二模式;以及至少部分地基于从第一模式转变到第二模式,将所述多个时钟中的每一个的速率调整到第一速率。
[0117]
在方法600和本文所述的设备的一些实例中,方法、设备和非暂时性计算机可读媒体可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于确定所述多个命令的吞吐量,将所述多个时钟中的至少一个的速率调整到可低于第一速率的第二速率。
[0118]
方法600和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:在将所述多个时钟中的至少一个的速率调整到第二速率之后,在第三模式中操作非易失性存储器装置。
[0119]
方法600和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:确定在非易失性存储器装置可在第一模式中操作时要对非易失性存储器装置执行的维护操作的数量,以及至少部分地基于确定要对非易失性存储器装置执行的维护操作的数量,调整所述多个时钟中的至少一个的速率。
[0120]
在方法600和本文所述的设备的一些实例中,调整所述多个时钟中的至少一个的速率可包含用于以下的操作、特征、电路系统、逻辑、构件或指令:针对第一时钟,从第一编索引范围中选择对应于第三速率的第一索引;针对第二时钟,从第二编索引范围中选择对应于第四速率的第二索引;以及针对第三时钟,从第三编索引范围中选择对应于第五速率的第三索引。
[0121]
在方法600和本文所述的设备的一些实例中,确定所述多个命令的吞吐量可包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与所述多个命令中的每一个相关联的特性,将所述多个命令分类到一或多个类别中,其中所述一或多个类别可各自与第一编索引范围、第二编索引范围或第三编索引范围中的相应索引相关联。
[0122]
在方法600和本文所述的设备的一些实例中,确定所述多个命令的吞吐量可包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于对所述多个命令进行分类,确定所述多个命令的子集可与所述一或多个类别中的第一类别和所述一或多个类别中的第二类别相关联;以及针对所述多个时钟中的相应时钟,从与第一类别相关联的第四索引和与第二类别相关联的第五索引中选择对应于所述相应时钟的最高速率的索引。
[0123]
在方法600和本文所述的设备的一些实例中,所述多个时钟中的第一时钟可与非易失性存储器装置的数据路径相关联,所述多个时钟中的第二时钟可与非易失性存储器装置的处理器相关联,且所述多个时钟中的第三时钟可与耦合到非易失性存储器装置的数据
总线相关联。
[0124]
方法600和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:确定所述多个命令的吞吐量包含确定在一持续时间期间接收的所述多个命令的数量,确定所接收的所述多个命令中的一或多个的类型,确定与所接收的所述多个命令中的一或多个相关联的数据数量,确定包含所接收的所述多个命令中的一或多个的队列的深度,确定所接收的所述多个命令中的一或多个的地址,或其组合。
[0125]
图7示出根据本文所公开的实例的流程图,示出了支持自适应吞吐量监测的方法700。方法700的操作可由本文所述的存储器系统或其组件实施。例如,方法700的操作可由参考图1到5所描述的存储器系统执行。在一些实例中,存储器系统可执行一组指令以控制装置的功能元件执行所述功能。另外或替代地,存储器系统可使用专用硬件执行所述功能的各方面。
[0126]
在705处,所述方法可包含在存储器装置在空闲模式中操作时在存储器装置处接收命令,其中存储器装置包含多个时钟,并且其中所述多个时钟中的每一个与存储器装置的相应子组件相关联。操作705可根据本文所公开的实例执行。在一些实例中,操作705的各方面可由参考图5所描述的接收组件525执行。
[0127]
在710处,所述方法可包含至少部分地基于接收到命令而将存储器装置从空闲模式转变到分析模式。操作710可根据本文所公开的实例执行。在一些实例中,操作710的各方面可由参考图5所描述的模式转变组件540执行。
[0128]
在715处,所述方法可包含确定在存储器装置在分析模式中操作时接收到的多个命令的一或多个特性是否满足阈值。操作715可根据本文所公开的实例执行。在一些实例中,操作715的各方面可由参考图5所描述的确定组件530执行。
[0129]
在720处,所述方法可包含至少部分地基于确定在存储器装置在分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,调整所述多个时钟中的至少一个的速率。操作720可根据本文所公开的实例执行。在一些实例中,操作720的各方面可由参考图5所描述的速率调整组件535执行。
[0130]
在一些实例中,本文所述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在存储器装置在空闲模式中操作时,在存储器装置处接收命令,其中存储器装置包含多个时钟,并且其中所述多个时钟中的每一个与存储器装置的相应子组件相关联;至少部分地基于接收到命令,将存储器装置从空闲模式转变到分析模式;确定在存储器装置在分析模式中操作时接收到的多个命令的一或多个特性是否满足阈值;以及至少部分地基于确定在存储器装置在分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,调整所述多个时钟中的至少一个的速率。
[0131]
方法700和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:在存储器装置可在分析模式中操作时接收所述多个命令,以及至少部分地基于所述一或多个特性,计算所述多个所接收命令的吞吐量,其中调整所述多个时钟中的至少一个的速率可至少部分地基于所计算的吞吐量。
[0132]
在方法700和本文所述的设备的一些实例中,所述一或多个特性包含在一持续时间期间接收的所述多个命令的数量、所述多个所接收命令中的一或多个的类型、与所述多
个所接收命令中的一或多个相关联的数据数量、包含所述多个所接收命令中的一或多个的队列的深度、所述多个所接收命令中的一或多个的地址,或其组合。
[0133]
在方法700和本文所述的设备的一些实例中,在存储器装置可在分析模式中操作时所述多个时钟中的每一个的速率可设置成第一速率,并且方法、设备和非暂时性计算机可读媒体可包含用于以下的其它操作、特征、电路系统、逻辑、构件或指令:至少部分地基于确定在存储器装置可在分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,将所述多个时钟中的至少一个的速率调整到可低于第一速率的第二速率;以及至少部分地基于将所述多个时钟中的至少一个的速率调整到第二速率,将存储器装置从分析模式转变到不同于空闲模式的模式。
[0134]
方法700和本文所述的设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:确定所述多个所接收命令的第一子集满足所述阈值,确定所述多个所接收命令的第二子集满足第二阈值,以及至少部分地基于确定所述多个所接收命令的第一子集满足所述阈值且确定所述多个所接收命令的第二子集满足第二阈值,将所述多个时钟中的至少一个的速率调整到第三速率,其中所述阈值可与第三速率相关联,且第二阈值可与可低于第三速率的第四速率相关联。
[0135]
在方法700和本文所述的设备的一些实例中,所述多个时钟中的第一时钟可与存储器装置的数据路径相关联,所述多个时钟中的第二时钟可与存储器装置的处理器相关联,且所述多个时钟中的第三时钟可与耦合到存储器装置的数据总线相关联。
[0136]
应注意,上文所描述的方法描述可能实施方案,并且操作和步骤可以重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个的部分。
[0137]
描述一种设备。所述设备可包含:非易失性存储器装置,其包括多个时钟,所述多个时钟中的每一个与所述非易失性存储器装置的相应子组件相关联;以及控制器,其与所述非易失性存储器装置耦合,所述控制器配置成:接收多个命令;至少部分地基于接收到所述多个命令而确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的所述吞吐量,调整所述多个时钟中的至少一个的速率。
[0138]
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所述信号可表示信号总线,其中总线可具有多种位宽度。
[0139]
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件中断所连接组件之间的信号流动一段时间。
[0140]
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开
路关系中,信号当前无法通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。如果例如控制器的一组件将其它组件耦合在一起,那么所述组件引发允许信号通过导电路径在所述其它组件之间流动的改变,所述导电路径先前不允许信号流动。
[0141]
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在断路,那么它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。如果控制器将两个组件隔离,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
[0142]
术语“如果”、“当
……
时”、“基于”或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当
……
时”、“基于”或“至少部分地基于”是用于描述条件性动作、条件性过程或过程部分之间的连接,那么这些术语可以互换。
[0143]
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。例如,可执行第一条件或动作,并且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
[0144]
另外,术语“直接地响应于”或“直接响应于”可指作为先前条件或动作的直接结果而发生一个条件或动作。在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,与是否发生其它条件或动作无关。在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此种其它条件或动作而执行。
[0145]
本文中所论述的包含存储器阵列的装置可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可为绝缘体上硅(soi)衬底,例如玻璃上硅(sog)或蓝宝石上硅(sop),或另一衬底上的半导体材料的外延层。可通过使用包含(但不限于)磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
[0146]
本文所论述的开关组件或晶体管可表示场效应晶体管(fet),并且包括包含源极、漏极和栅极的三端装置。端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂(例如简并)半导体区。源极与漏极可由轻掺杂的半导体区或沟道间隔开。如果沟道是n型(即,大部分载体为电子),那么fet可被称作n型fet。如果沟道是p型(即,大部分载体为空穴),那么fet可被称作p型fet。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。例如,将正电压或负电压分别施加到n型fet或p型fet可导致沟道变得导电。如果大于或等于晶体管的阈值电压的电压被施加到晶体管栅极,那么晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压被施加到晶体管栅极,那么晶体管可“断开”或“撤销激活”。
[0147]
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”是指“充当实例、例子或说明”,且不比其它实例“优选”或“有利”。详细描述包含特定细节,以便提供对所描述技术的理解。然而,这些技术可在没有这些特定细节的情况下实践。在一些例子中,以框图的形式展示众所周知的结构和装置以免混淆所描述实例的概念。
[0148]
在附图中,类似组件或特征可以具有相同参考标记。此外,可通过在参考标记之后跟着连字符及区分类似组件的第二标记来区分为相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一个,而与第二参考标记无关。
[0149]
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件来实施,那么可以将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体来传输。其它实例及实施方案在本公开及所附权利要求书的范围内。例如,由于软件的本质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。
[0150]
例如,结合本文中的公开内容所描述的各种说明性块和组件可使用经设计以执行本文中所描述的功能的通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器、一或多个微处理器结合dsp核心,或任何其它此类配置)。
[0151]
如本文中(包含在权利要求书中)所使用,项目的列表(例如,以例如“中的至少一个”或“中的一或多个”的短语结尾的项目的列表)中所使用的“或”指示包含性列表,使得(例如)a、b或c中的至少一个的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。并且,如本文中所使用,短语“基于”不应被理解为对一组封闭条件的引用。例如,被描述为“基于条件a”的示例性步骤可基于条件a和条件b两者,而不脱离本公开的范围。换句话说,如本文中所使用,短语“基于”应按照与短语“至少部分地基于”相同的方式来解释。
[0152]
计算机可读媒体包含非暂时性计算机存储装置媒体和通信媒体两者,通信媒体包含有助于将计算机程序从一个地方传送到另一地方的任何媒体。非暂时性存储媒体可以是任何可用的媒体,它可以由通用或专用计算机存取。举例来说且不加限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可用于载送或存储呈指令或数据结构形式的所要程序代码构件且可以通过通用或专用计算机或通用或专用处理器存取的非暂时性媒体。并且,任何连接被适当地称为计算机可读媒体。例如,如果软件从网站、服务器或其它远程源使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或红外、无线电和微波等无线技术传输,那么同轴电缆、光纤电缆、双绞线、dsl或红外、无线电和微波等无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合同样包含在计算机可读媒体的范围内。
[0153]
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本发明不限于本文中所描述的实例和设计,而是被赋予与本文中所公开的原理和新颖特征一致的最宽范围。

技术特征:


1.一种非暂时性计算机可读媒体,其存储代码,所述代码包括指令,所述指令在由存储器装置的处理器执行时使所述存储器装置:在非易失性存储器装置的控制器处,接收多个命令,其中所述非易失性存储器装置包括多个时钟,所述多个时钟中的每一个与所述非易失性存储器装置的相应子组件相关联;至少部分地基于接收到所述多个命令,确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的所述吞吐量,调整所述多个时钟中的至少一个的速率。2.根据权利要求1所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:在接收所述多个命令之前,在第一模式中操作所述非易失性存储器装置;至少部分地基于接收到所述多个命令中的至少一个,将所述非易失性存储器装置从所述第一模式转变到第二模式;以及至少部分地基于从所述第一模式转变到所述第二模式,将所述多个时钟中的每一个的所述速率调整到第一速率。3.根据权利要求2所述的非暂时性计算机可读媒体,其中确定所述多个命令的所述吞吐量在所述非易失性存储器装置在所述第二模式中操作时进行,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:至少部分地基于确定所述多个命令的所述吞吐量,将所述多个时钟中的至少一个的所述速率调整到低于所述第一速率的第二速率。4.根据权利要求3所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:在将所述多个时钟中的至少一个的所述速率调整到所述第二速率之后,在第三模式中操作所述非易失性存储器装置。5.根据权利要求1所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:确定在所述非易失性存储器装置在第一模式中操作时要对所述非易失性存储器装置执行的维护操作的数量;以及至少部分地基于确定要对所述非易失性存储器装置执行的维护操作的所述数量,调整所述多个时钟中的至少一个的所述速率。6.根据权利要求1所述的非暂时性计算机可读媒体,其中为了调整所述多个时钟中的至少一个的所述速率,所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:针对第一时钟,从第一编索引范围中选择对应于第三速率的第一索引;针对第二时钟,从第二编索引范围中选择对应于第四速率的第二索引;以及针对第三时钟,从第三编索引范围中选择对应于第五速率的第三索引。7.根据权利要求6所述的非暂时性计算机可读媒体,其中为了确定所述多个命令的所述吞吐量,所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:至少部分地基于与所述多个命令中的每一个相关联的特性,将所述多个命令分类到一或多个类别中,其中所述一或多个类别各自与所述第一编索引范围、所述第二编索引范围
或所述第三编索引范围中的相应索引相关联。8.根据权利要求7所述的非暂时性计算机可读媒体,其中为了确定所述多个命令的所述吞吐量,所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:至少部分地基于对所述多个命令进行分类,确定所述多个命令的子集与所述一或多个类别中的第一类别和所述一或多个类别中的第二类别相关联;以及针对所述多个时钟中的相应时钟,从与所述第一类别相关联的第四索引和与所述第二类别相关联的第五索引中选择对应于所述相应时钟的最高速率的索引。9.根据权利要求1所述的非暂时性计算机可读媒体,其中所述多个时钟中的第一时钟与所述非易失性存储器装置的数据路径相关联,所述多个时钟中的第二时钟与所述非易失性存储器装置的处理器相关联,且所述多个时钟中的第三时钟与耦合到所述非易失性存储器装置的数据总线相关联。10.根据权利要求1所述的非暂时性计算机可读媒体,其中确定所述多个命令的所述吞吐量包括确定在一持续时间期间接收的所述多个命令的数量,确定所接收的所述多个命令中的一或多个的类型,确定与所接收的所述多个命令中的一或多个相关联的数据数量,确定包含所接收的所述多个命令中的一或多个的队列的深度,确定所接收的所述多个命令中的一或多个的地址,或其组合。11.一种非暂时性计算机可读媒体,其存储代码,所述代码包括指令,所述指令在由存储器装置的处理器执行时使所述存储器装置:在存储器装置在空闲模式中操作时,在所述存储器装置处接收命令,其中所述存储器装置包括多个时钟,并且其中所述多个时钟中的每一个与所述存储器装置的相应子组件相关联;至少部分地基于接收到所述命令,将所述存储器装置从所述空闲模式转变到分析模式;确定在所述存储器装置在所述分析模式中操作时接收到的多个命令的一或多个特性是否满足阈值;以及至少部分地基于确定在所述存储器装置在所述分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,调整所述多个时钟中的至少一个的速率。12.根据权利要求11所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:在所述存储器装置在所述分析模式中操作时,接收所述多个命令;以及至少部分地基于所述一或多个特性,计算所述多个所接收命令的吞吐量,其中调整所述多个时钟中的至少一个的所述速率至少部分地基于所计算的吞吐量。13.根据权利要求12所述的非暂时性计算机可读媒体,其中所述一或多个特性包括在一持续时间期间接收的所述多个命令的数量、所述多个所接收命令中的一或多个的类型、与所述多个所接收命令中的一或多个相关联的数据数量、包含所述多个所接收命令中的一或多个的队列的深度、所述多个所接收命令中的一或多个的地址,或其组合。14.根据权利要求11所述的非暂时性计算机可读媒体,其中在所述存储器装置在所述分析模式中操作时所述多个时钟中的每一个的所述速率设置为第一速率,并且其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:
至少部分地基于确定在所述存储器装置在所述分析模式中操作时接收到的所述多个命令的所述一或多个特性满足所述阈值,将所述多个时钟中的至少一个的所述速率调整到低于所述第一速率的第二速率;以及至少部分地基于将所述多个时钟中的至少一个的所述速率调整到所述第二速率,将所述存储器装置从所述分析模式转变到不同于所述空闲模式的模式。15.根据权利要求11所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:确定所述多个所接收命令的第一子集满足所述阈值;确定所述多个所接收命令的第二子集满足第二阈值;以及至少部分地基于确定所述多个所接收命令的所述第一子集满足所述阈值且确定所述多个所接收命令的所述第二子集满足所述第二阈值,将所述多个时钟中的至少一个的所述速率调整到第三速率,其中所述阈值与所述第三速率相关联,且所述第二阈值与低于所述第三速率的第四速率相关联。16.根据权利要求11所述的非暂时性计算机可读媒体,其中所述多个时钟中的第一时钟与所述存储器装置的数据路径相关联,所述多个时钟中的第二时钟与所述存储器装置的处理器相关联,且所述多个时钟中的第三时钟与耦合到所述存储器装置的数据总线相关联。17.一种设备,其包括:非易失性存储器装置,其包括多个时钟,所述多个时钟中的每一个与所述非易失性存储器装置的相应子组件相关联;以及控制器,其与所述非易失性存储器装置耦合,所述控制器配置成:接收多个命令;至少部分地基于接收到所述多个命令,确定所述多个命令的吞吐量;以及至少部分地基于确定所述多个命令的所述吞吐量,调整所述多个时钟中的至少一个的速率。18.根据权利要求17所述的设备,其中所述控制器进一步配置成:在接收所述多个命令之前,在第一模式中操作所述非易失性存储器装置;至少部分地基于接收到所述多个命令中的至少一个,将所述非易失性存储器装置从所述第一模式转变到第二模式;以及至少部分地基于从所述第一模式转变到所述第二模式,将所述多个时钟中的每一个的所述速率调整到第一速率。19.根据权利要求18所述的设备,其中确定所述多个命令的所述吞吐量在所述非易失性存储器装置在所述第二模式中操作时进行,其中所述控制器进一步配置成:至少部分地基于确定所述多个命令的所述吞吐量,将所述多个时钟中的至少一个的所述速率调整到低于所述第一速率的第二速率。20.根据权利要求19所述的设备,其中所述控制器进一步配置成:在将所述多个时钟中的至少一个的所述速率调整到所述第二速率之后,在第三模式中操作所述非易失性存储器装置。21.根据权利要求17所述的设备,其中所述控制器进一步配置成:
确定在所述非易失性存储器装置在第一模式中操作时要对所述非易失性存储器装置执行的维护操作的数量;以及至少部分地基于确定要对所述非易失性存储器装置执行的维护操作的所述数量,调整所述多个时钟中的至少一个的所述速率。22.根据权利要求17所述的设备,其中为了调整所述多个时钟中的至少一个的所述速率,所述控制器配置成:针对第一时钟,从第一编索引范围中选择对应于第三速率的第一索引;针对第二时钟,从第二编索引范围中选择对应于第四速率的第二索引;以及针对第三时钟,从第三编索引范围中选择对应于第五速率的第三索引。23.根据权利要求22所述的设备,其中为了确定所述多个命令的所述吞吐量,所述控制器配置成:至少部分地基于与所述多个命令中的每一个相关联的特性,将所述多个命令分类到一或多个类别中,其中所述一或多个类别各自与所述第一编索引范围、所述第二编索引范围或所述第三编索引范围中的相应索引相关联。24.根据权利要求23所述的设备,其中为了确定所述多个命令的所述吞吐量,所述控制器配置成:至少部分地基于对所述多个命令进行分类,确定所述多个命令的子集与所述一或多个类别中的第一类别和所述一或多个类别中的第二类别相关联;以及针对所述多个时钟中的相应时钟,从与所述第一类别相关联的第四索引和与所述第二类别相关联的第五索引中选择对应于所述相应时钟的最高速率的索引。25.根据权利要求17所述的设备,其中所述多个时钟中的第一时钟与所述非易失性存储器装置的数据路径相关联,所述多个时钟中的第二时钟与所述非易失性存储器装置的处理器相关联,且所述多个时钟中的第三时钟与耦合到所述非易失性存储器装置的数据总线相关联。

技术总结


本申请涉及自适应吞吐量监测。在一些实例中,存储器系统可与各自与相应子组件相关联的一或多个时钟相关联。当所述存储器系统接收多个命令时,所述存储器系统可确定所述命令的吞吐量。基于所确定的吞吐量,所述存储器系统可调整所述时钟中的一或多个的速率。调整所述时钟中的一或多个的速率。调整所述时钟中的一或多个的速率。


技术研发人员:

R

受保护的技术使用者:

美光科技公司

技术研发日:

2022.08.04

技术公布日:

2023/2/17

本文发布于:2024-09-21 19:37:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/62130.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   所述   多个   命令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议