CN117501229B - 高速缓存分配技术 - Google Patents

高速缓存分配技术 Download PDF

Info

Publication number
CN117501229B
CN117501229B CN202180098247.XA CN202180098247A CN117501229B CN 117501229 B CN117501229 B CN 117501229B CN 202180098247 A CN202180098247 A CN 202180098247A CN 117501229 B CN117501229 B CN 117501229B
Authority
CN
China
Prior art keywords
data
cache
memory system
amount
application
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.)
Active
Application number
CN202180098247.XA
Other languages
English (en)
Other versions
CN117501229A (zh
Inventor
葛亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Priority claimed from PCT/CN2021/087833 external-priority patent/WO2022217592A1/en
Publication of CN117501229A publication Critical patent/CN117501229A/zh
Application granted granted Critical
Publication of CN117501229B publication Critical patent/CN117501229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请案涉及高速缓存分配技术。存储器系统可接收包含与数据流的性能约束相关联的流标识(ID)的写入命令。所述存储器系统可基于所述写入命令的所述流ID确定指示数据类型的应用程序标识(ID)。在一些情况中,所述存储器系统可指派与所述应用程序ID相关联的指示写入操作要写入的数据量的级别及基于所述指派级别在单级单元高速缓存中分配可供所述写入操作写入的空间量。所述存储器系统可将所述数据写入到所述单级单元高速缓存在所述单级单元高速缓存的所述空间量内。

Description

高速缓存分配技术
交叉参考
本专利申请案是由GE在2021年4月16日申请的标题为“高速缓存分配技术(CACHEALLOCATION TECHNIQUES)”的第PCT/CN2021/087833号国际专利申请案的国家阶段申请,所述国际专利申请案被让与其受让人且以其全文引用方式明确并入本文中。
技术领域
技术领域涉及高速缓存分配技术。
背景技术
存储器装置广泛用于存储例如计算机、无线通信装置、相机、数字显示器及类似物的各种电子装置中的信息。信息通过将存储器装置内的存储器单元编程到各种状态来存储。举例来说,二进制存储器单元可编程到通常对应于逻辑1或逻辑0的两种支持状态中的一者。在一些实例中,单个存储器单元可支持多于两种可能状态,其中任一者可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,其包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)及与非(NAND)存储器装置及其它。存储器装置可为易失性或非易失性的。易失性存储器单元(例如DRAM单元)可随时间丢失其编程状态,除非其由外部电源周期性刷新。非易失性存储器单元(例如NAND存储器单元)可长时间维持其编程状态,即使缺少外部电源。
发明内容
描述一种设备。所述设备可包含:存储器系统,其经配置以存储固件;及控制电路,其与所述存储器系统耦合且经配置以致使所述设备:从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;至少部分基于所述指派级别而在所述存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
描述一种非暂时性计算机可读媒体,其存储包括指令的代码。所述非暂时性计算机可读媒体存储包括指令的代码,所述指令在由电子装置的处理器执行时致使所述电子装置:从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;至少部分基于所述指派级别而在存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
描述一种方法。所述方法可包含:从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;至少部分基于所述指派级别而在存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
附图说明
图1说明根据本文中公开的实例的支持高速缓存分配技术的系统的实例。
图2说明根据本文中公开的实例的支持高速缓存分配技术的系统的实例。
图3说明根据本文中公开的实例的支持高速缓存分配技术的写入命令的实例。
图4说明根据本文中公开的实例的支持高速缓存分配技术的数据属性布局的实例。
图5说明根据本文中公开的实例的支持高速缓存分配技术的框图的实例。
图6说明根据本文中公开的实例的支持高速缓存分配技术的流程图的实例。
图7展示根据本文中公开的实例的支持高速缓存分配技术的存储器系统的框图。
图8展示说明根据本文中公开的实例的支持高速缓分配技术的一或若干方法的流程图。
具体实施方式
存储器系统可包含可用于写入传入数据的可用高速缓存。在一些情况中,写入到存储器系统的传入数据量可超过或可几乎超过可用于写入的高速缓存(例如单级单元(SLC)高速缓存)中的可用空间量。然而,在此类情况中,可为较低级单元高速缓存(例如SLC高速缓存)的高速缓存可耗尽或几乎耗尽用于写入的可用空间。存储器系统不是写入到较低级单元高速缓存,而是可写入到存储器系统的较高级单元高速缓存,这可比写入到较低级单元高速缓存相对增加起动时间及执行操作的延时。因此,如果可为SLC高速缓存的较低级单元高速缓存满载或几乎满载且存储器系统写入到可为多级单元(MLC)高速缓存、三级单元(TLC)高速缓存或四级单元(QLC)高速缓存等的不同更高级单元高速缓存,那么存储器系统会在若干时隙期间经历性能下降。将数据写入到SLC高速缓存且不分配可用空间量可由于空间有限而以比期望更快的速率占满高速缓存中可用的总空间(或几乎占满可用总空间),借此降低用户体验且缩短存储器系统的寿命以及其它缺点。存储器系统可另外或替代地使用额外时间来恢复SLC高速缓存(例如,存储在存储器装置本地的SLC高速缓存的一部分),借此降低效率及执行各种操作的起动时间且降低存储器系统的整体性能。
描述用于改进原本可能经历由写入到较高级单元高速缓存而非较低级单元高速缓存引起的性能下降的存储器系统的总体效率及操作的系统、装置及技术。在一些存储器系统中,用户体验以及其它因素可通过基于或响应于写入操作要写入的数据量(例如与接收到的写入命令相关的信息)而在例如SLC高速缓存的较低级单元高速缓存中分配可用于写入的空间量来改进。存储器系统可接收包含与写入操作相关联的一或多个数据流(例如与彼此相关联的多个数据流)的流标识(ID)的写入命令。流ID可识别可与不同性能约束相关联(例如,使用或涉及不同性能约束的操作方面)的一或多个不同数据流以提高用户体验。存储器系统可基于或响应于流ID而确定可指示写入操作的数据类型的应用程序标识(ID)。在一些情况中,存储器系统可指派与应用程序ID相关联的级别且级别可指示或涉及写入操作要写入或响应于写入操作而写入的数据量。在此类情况中,存储器系统可基于或响应于所指派的级别而在较低级单元高速缓存中分配可供写入操作写入的空间量(例如,而非允许写入操作的结果在较低级单元高速缓存中分配可用于写入的总空间量)。举例来说,存储器系统可针对不同类型的不同数据流且根据每一应用程序性能约束(例如性能要求)来设置可用于写入的空间量的不同上限。存储器系统可接着将数据写入到所分配的空间量内的SLC高速缓存,其可在可用于写入的空间量的设置上限内。
在此类情况中,存储器系统可确保与应用程序ID相关联的每一应用程序可通过限制所使用的较低级单元高速缓存空间(例如,例如SLC高速缓存的较低级单元高速缓存中可用于写入的空间量)来达到性能阈值。因此,通过设置在较低级单元高速缓存中可用于写入的空间量的上限,存储器系统或其它组件能够以提高速度及效率执行操作,借此确保存储器系统及应用程序性能提供稳定用户体验。通过基于或响应于与应用程序ID相关联的数据类型而在较低级单元高速缓存内设置(例如,指派)空间量的上限来改进较低级单元高速缓存使用可减少起动时间及执行操作的延时以及提高执行与应用程序ID相关联的应用程序的可靠性以及其它好处。
首先在参考图1到2的系统的上下文中描述本公开的特征。在参考图3到6的设备及流程图的上下文中描述本公开的特征。通过参考图7到8的与高速缓存分配技术相关的设备图及流程图进一步说明且在所述设备图及流程图的上下文中描述本公开的这些及其它特征。
图1说明根据本文中公开的实例的支持高速缓存分配技术的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可为或包含任何装置或装置集合,其中装置或装置集合包含至少一个存储器阵列。举例来说,存储器系统110可为或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动(SSD)、硬盘驱动(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性DIMM(NVDIMM)以及其它可能性。
系统100可包含于例如桌上型计算机、膝上型计算机、网络服务器、移动装置、载具(例如飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)启用装置、嵌入式计算机(例如包含于载具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的任何其它计算装置的计算装置中。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,主机系统控制器106可为经配置以致使主机系统105执行根据本文中描述的实例的各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,且在一些情况中可包含处理器芯片组及由处理器芯片组执行的软件栈。举例来说,主机系统105可包含经配置用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如在主机系统105本地或包含于主机系统105中的存储器)、存储器控制器(例如NVDIMM控制器)及存储协议控制器(例如外围组件互连高速(PCIe)控制器、串行高级技术附接(SATA)控制器)。举例来说,主机系统105可使用存储器系统110来将数据写入到存储器系统110及从存储器系统110读取数据。尽管图1中展示一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
主机系统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耦合)。
存储器系统110可包含存储器系统控制器115及一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如非易失性存储器单元、易失性存储器单元或其任何组合)的一或多个存储器阵列。尽管图1的实例中展示两个存储器装置130-a及130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个存储器装置130,那么存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口)且可为经配置以致使存储器系统110执行根据本文中描述的实例的各种操作的控制器或控制组件的实例。存储器系统控制器115还可与存储器装置130耦合及通信以在存储器装置130处执行例如读取数据、写入数据、擦除数据或刷新数据的操作及其它此类操作,其可统称为存取操作。在一些情况中,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此类命令(例如,在一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作且可将命令或操作转换成指令或适当命令以实现存储器装置130的期望存取。在一些情况中,存储器系统控制器115可与主机系统105及一或多个存储器装置130交换数据(例如,响应于或以其它方式相关联于来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如数据分组或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可经配置用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如损耗均衡操作、废弃项目收集操作、错误控制操作(例如错误检测操作或错误校正操作)、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测及与来自主机系统105的命令相关联的逻辑地址(例如逻辑块地址(LBA))与存储器装置130内的存储器单元相关联的物理地址(例如物理块地址)之间的地址转译。
存储器系统控制器115可包含例如一或多个集成电路或离散组件、缓冲存储器或其任何组合的硬件。硬件可包含具有执行本文中归于存储器系统控制器115的操作的专用(例如硬编码)逻辑的电路系统。存储器系统控制器115可为或包含微控制器、专用逻辑电路系统(例如场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP))或任何其它合适处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况中,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行以执行本文中归于存储器系统控制器115的功能的操作代码(例如可执行指令)。在一些情况中,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能相关的内部存储或计算。另外或替代地,本地存储器120可用作存储器系统控制器115的高速缓存。举例来说,数据可在从存储器装置130读取或写入到存储器装置130时存储于本地存储器120中,且数据可在本地存储器120内用于主机系统105根据高速缓存策略进行后续检索或操纵(例如更新)(例如,具有相对于存储器装置130减少的延时)。
尽管图1中的存储器系统110的实例已被说明为包含存储器系统控制器115,但在一些情况中,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖外部控制器(例如,由主机系统105实施)或一或多个本地控制器135,本地控制器135可分别在存储器装置130内部以执行本文中归于存储器系统控制器115的功能。一般来说,在一些情况中,本文中归于存储器系统控制器115的一或多个功能可代以由主机系统105、本地控制器135或其任何组合执行。在一些情况中,至少部分由存储器系统控制器115管理的存储器装置130可称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置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)存储器单元。
在一些实例中,存储器装置130可包含(例如,在相同裸片上或在相同封装内)本地控制器135,其可对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可结合存储器系统控制器115操作或可执行本文中归于存储器系统控制器115的一或多个功能。举例来说,如图1中说明,存储器装置130-a可包含本地控制器135-a且存储器装置130-b可包含本地控制器135-b。
在一些情况中,存储器装置130可为或包含NAND装置(例如NAND快闪装置)。存储器装置130可为或包含存储器裸片160。举例来说,在一些情况中,存储器装置130可为包含一或多个裸片160的封装。在一些实例中,裸片160可为从晶片切割的一块电子级半导体(例如从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,且每一平面165可包含一组相应块170,其中每一块170可包含一组相应页面175,且每一页面175可包含一组存储器单元。
在一些情况中,NAND存储器装置130可包含经配置以各自存储一个信息位的存储器单元,其可称为单级单元(SLC)。另外或替代地,NAND存储器装置130可包含经配置以各自存储多个信息位的存储器单元,其可在经配置以各自存储两个信息位时称为多级单元(MLC),在经配置以各自存储三个信息位时称为三级单元(TLC),在经配置以各自存储四个信息位时称为四级单元(QLC),或更一般地称为多级存储器单元。多级存储器单元可相对于SLC存储器单元提供更大存储密度,但在一些情况中可涉及更窄读取或写入裕度或更大复杂性用于支持电路系统。
在一些情况中,平面165可指代若干群组块170,且在一些情况中,并发操作可发生(例如,执行)于不同平面165内。举例来说,并发操作可对不同块170内的存储器单元执行,只要不同块170在不同平面165中。在一些情况中,在不同平面165中执行并发操作可受到一或多个限制,例如对在其相应平面165内具有相同页面地址的不同页面175内的存储器单元执行相同操作(例如,与命令解码、页面地址解码电路系统或跨平面165共享的其它电路系统相关)。
在一些情况中,块170可包含组织成行(页面175)及列(例如串,未展示)的存储器单元。举例来说,相同页面175中的存储器单元可共享共同字线(例如,与共同字线耦合),且相同串中的存储器单元可共享共同数字线(其可替代地称为位线)(例如,与共同数字线耦合)。
针对一些NAND架构,存储器单元可以第一粒度级(例如,以页面粒度级)读取及编程(例如写入)但可以第二粒度级(例如,以块粒度级)擦除。即,页面175可为可独立编程或读取(例如,作为单个编程或读取操作的部分并发编程或读取)的存储器的最小单位(例如存储器单元组),且块170可为可独立擦除(例如,作为单个擦除操作的部分并发擦除)的存储器的最小单位(例如存储器单元组)。此外,在一些情况中,NAND存储器单元可在其可用新数据重写之前擦除。因此,举例来说,在一些情况中,直到包含页面175的整个块170被擦除才可更新用过的页面175。
系统100可包含支持高速缓存分配技术的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或可以其它方式存取存储用于执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能的指令(例如固件)的一或多个非暂时性计算机可读媒体。举例来说,此类指令在由主机系统105(例如主机系统控制器106)、存储器系统控制器115或存储器装置130(例如本地控制器135)执行时可致使主机系统105、存储器系统控制器115或存储器装置130执行本文中描述的一或多个相关联功能。
在一些情况中,存储器系统110可利用存储器系统控制器115来提供可包含例如与本地(例如裸片上或封装内)控制器(例如本地控制器135)组合的一或多个存储器阵列及相关电路系统的受管理存储器系统。受管理存储器系统的实例是受管理NAND(MNAND)系统。
在与本公开相异的其它不同系统中,存储器系统可接收写入命令且在例如SLC高速缓存的高速缓存中分配相同空间量,无论与写入命令相关联的数据为何。举例来说,第一写入命令可被分配高速缓存内的一部分空间且第二写入命令可被分配高速缓存内的相同部分空间。在此类情况中,空间分配可为静态或固定的且可经过度配置以在高速缓存中涉及比用于操作及/或给定用户体验更多的空间。在一些实例中,可基于或响应于接收到的写入命令而使写入操作不必要地写入高速缓存的整个部分。在此类情况中,其它不同存储器系统可经历减少处理时间、增加起动时间及降低用户体验(例如整体性能)以及其它缺点。
为了解决降低存储器性能,根据本公开的存储器系统110可基于或响应于传入写入命令中的一或多者而调整(例如,动态调整)在例如较低级单元高速缓存(例如SLC高速缓存)的高速缓存内分配的空间。举例来说,存储器系统110可接收写入命令且作为写入命令的部分,识别写入命令包含与给定应用程序ID相关联的流ID。流ID可与对与由写入命令指示的写入操作相关联的一或多个数据流的一或多个性能约束相关联,且应用程序ID可基于流ID指示写入操作的数据类型。在一些情况中,存储器系统110可向应用程序ID指派一级别且基于或响应于指派级别来分配高速缓存的空间量。在此类情况中,存储器系统110可将数据写入到高速缓存中分配的空间。通过设置待写入的分配空间的限制,存储器系统110可经历改进处理时间及改进用户体验以及其它好处。
图2说明根据本文中公开的实例的支持高速缓存分配技术的系统200的实例。系统200可为参考图1描述的系统100或其方面的实例。系统200可包含存储器系统210,其经配置以在由主机系统205使用一或多个存取命令(例如读取命令或写入命令)请求时存储从主机系统205接收的数据及将数据发送到主机系统205。系统200可实施参考图1描述的系统100的方面或可由所述方面实施。举例来说,存储器系统210及主机系统205可分别为存储器系统110及主机系统105的实例。
存储器系统210可包含存储器装置240以例如响应于从主机系统205接收到存取命令而存储在存储器系统210与主机系统205之间传送的数据,如本文中描述。存储器装置240可包含参考图1描述的一或多个存储器装置。举例来说,存储器装置240可包含NAND存储器、PCM、自选择存储器、3D交叉点、其它硫属化物基存储器、FERAM、MRAM、NOR(例如NOR快闪)存储器、STT-MRAM、CBRAM、RRAM或OxRAM。
存储器系统210可包含存储控制器230用于控制数据直接来回传递于存储器装置240,例如用于存储数据、检索数据及确定其中存储数据及从其检索数据的存储器位置。存储控制器230可使用特定于每一类型的存储器装置240的协议直接或经由总线(未展示)与存储器装置240通信。在一些情况中,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况中,存储器系统210可包含多个存储控制器230,例如用于每一类型的存储器装置240的不同存储控制器230。在一些情况中,存储控制器230可实施参考图1描述的本地存储器135的方面。
存储器系统210可另外包含用于与主机系统205通信的接口220及用于临时存储在主机系统205与存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225及存储控制器230可用于在主机系统205与存储器装置240之间转译数据(例如,如由数据路径250展示)且可统称为数据路径组件。
在传送期间使用缓冲器225临时存储数据可允许数据在处理命令时缓冲,借此减少命令之间的延时且允许与命令相关联的任意数据大小。此还可允许处置命令突发,且一旦突发停止,缓冲数据就可被存储或传输(或两者)。缓冲器225可包含相对快速存储器(例如一些类型的易失性存储器,例如SRAM或DRAM)或硬件加速器或两者以允许数据快速存储到缓冲器225及快速从缓冲器225检索。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传送的数据路径切换组件。
数据临时存储于缓冲器225内可指代在存取命令执行期间数据存储于缓冲器225中。即,在存取命令完成之后,相关联数据可不再保存于缓冲器225中(例如,可用额外存取命令的数据盖写)。另外,缓冲器225可为非高速缓存缓冲器。即,数据可不由主机系统205直接从缓冲器225读取。举例来说,读取命令可添加到队列,无需使地址与已在缓冲器225的地址匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含存储器系统控制器215用于执行从主机系统205接收的命令及在数据移动时控制数据路径组件。存储器系统控制器215可为参考图1描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
在一些情况中,一或多个队列(例如命令队列260、缓冲队列265及存储队列270)可用于控制存取命令的处理及对应数据的移动。例如,如果来自主机系统205的多于一个存取命令由存储器系统210并发处理,那么此可为有益的。作为可能实施方案的实例,命令队列260、缓冲队列265及存储队列270分别描绘于接口220、存储器系统控制器215及存储控制器230处。然而,队列在使用时可定位于存储器系统210内的任何位置。
在主机系统205与存储器装置240之间传送的数据可在存储器系统210中采用(例如,涉及)与非数据信息(例如命令、状态信息)不同的路径。举例来说,存储器系统210中的系统组件可使用总线235彼此通信,而数据可使用通过数据路径组件的数据路径250而非总线235。存储器系统控制器215可通过经由总线235与数据路径组件通信(例如,使用特定于存储器系统210的协议)来控制数据如何及是否在主机系统205与存储器装置240之间传送。
如果主机系统205将存取命令传输到存储器系统210,那么命令可由接口220例如根据协议(例如UFS协议或eMMC协议)接收。因此,接口220可被视为存储器系统210的前端。在接收到每一存取命令之后,接口220可例如经由总线235将命令传递到存储器系统控制器215。在一些情况中,每一命令可通过接口220添加到命令队列260以将命令传递到存储器系统控制器215。
存储器系统控制器215可基于或响应于来自接口220的通信而确定存取命令已被接收。在一些情况中,存储器系统控制器215可通过从命令队列260检索命令来确定存取命令已被接收。命令可在其例如通过存储器系统控制器215从命令队列260检索之后从命令队列260移除。在一些情况中,存储器系统控制器215可例如经由总线235致使接口220从命令队列260移除命令。
在确定存取命令已被接收之后,存储器系统控制器215就可执行存取命令。针对读取命令,此可意味着从存储器装置240获得数据及将数据传输到主机系统205。针对写入命令,此可意味着从主机系统205接收数据及将数据移动到存储器装置240。
在任一情况中,存储器系统控制器215可使用缓冲器225来临时存储从主机系统205接收或发送到主机系统205的数据以及其他。缓冲器225可被视为存储器系统210的中端。在一些情况中,缓冲器地址管理(例如缓冲器225中的地址位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如专用电路)执行。
为了处理从主机系统205接收的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间用于存储与命令相关联的数据。举例来说,存储器系统控制器215可例如经由固件(例如控制器固件)确定缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况中,缓冲器225可包含SLC高速缓存275,其可为较低级单元高速缓存的实例。在其它实例中,另外或替代地,存储器系统210的存储器装置240或其它组件可包含SLC高速缓存275。SLC高速缓存275可临时存储数据。举例来说,SLC高速缓存275可包含可用于存储与接收到的写入命令相关联的数据的空间。SLC高速缓存275可基于或响应于指派给应用程序ID的级别而分配(例如,划分)成可用于写入到SLC高速缓存275中的不同空间部分(例如量)。在一些情况中,SLC高速缓存275中可用于写入的空间量的上限可由存储器系统210中的一或多个组件(例如存储器系统控制器215)基于或响应于指派级别而设置。应用程序ID可基于写入命令的流ID以及其它因素来指示写入操作的数据类型(例如,在写入操作中涉及)。数据可基于或响应于分配可用于写入的空间量(例如,设置可用于写入的空间量的上限)而写入到可用空间量的上限内的SLC高速缓存275。在一些实例中,SLC高速缓存275中可用于写入的空间量可基于或响应于一或多个不同指派级别、待写入数据的一或多种不同类型、其它因素或其任何组合而进行不同分配。在一些情况中,分配可用于写入的空间量可小于SLC高速缓存275中可用于写入的总空间量。
在一些情况中,缓冲队列265可用于控制与存储于缓冲器225中的数据相关联的命令流,包含写入命令。缓冲队列265可包含与当前存储于缓冲器225中的数据相关联的存取命令。在一些情况中,命令队列260中的命令可由存储器系统控制器215移动到缓冲队列265且可在相关联数据存储于缓冲器225中时保持于缓冲队列265中。在一些情况中,缓冲队列265中的每一命令可与缓冲器225处的地址相关联。即,可维持指示与每一命令相关联的数据存储于缓冲器225中的位置的指针。使用缓冲队列265,可从主机系统205循序接收多个存取命令且可并发处理存取命令的至少部分。
如果缓冲器225具有足够空间用于存储写入数据,那么存储器系统控制器215可致使接口220例如根据协议(例如UFS协议或eMMC协议)将可用性指示传输到主机系统205(例如,“传送就绪”指示)。当接口220随后从主机系统205接收与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225进行临时存储。在一些情况中,接口220可从缓冲器225或缓冲队列265获得缓冲器225内存储数据的位置。接口220可例如经由总线235向存储器系统控制器215指示数据传送到缓冲器225是否已完成。
一旦写入数据通过接口220存储于缓冲器225中,数据就可从缓冲器225传出且存储于存储器装置240中。此可使用存储控制器230完成。举例来说,存储器系统控制器215可致使存储控制器230使用数据路径250从缓冲器225检索数据且将数据传送到存储器装置240。存储控制器230可被视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示数据传送到存储器装置240中的存储器装置已完成。
在一些情况中,存储队列270可用于辅助写入数据传送。举例来说,存储器系统控制器215可将来自缓冲队列265的写入命令(例如,经由总线235)推送到存储队列270进行处理。存储队列270可包含用于每一存取命令的条目。在一些实例中,存储队列270可另外包含可指示与命令相关联的数据存储于缓冲器225中的位置的缓冲器指针(例如地址)及可指示与数据相关联的存储器装置240中的位置的存储指针(例如地址)。在一些情况中,存储控制器230可从缓冲器225、缓冲队列265或存储队列270获得从其获得数据的缓冲器225内的位置。存储控制器230可管理存储器装置240内的位置以存储数据(例如执行损耗均衡、废弃项目收集及类似者)。条目可例如由存储器系统控制器215添加到存储队列270。条目可在数据传送完成之后例如由存储控制器230或存储器系统控制器215从存储队列270移除。
在一些情况中,存储器装置240可包含可为较高级单元高速缓存的实例的高速缓存280,且可存储可为例如查找表的表的实例的信息285。高速缓存280可例如定位于存储器系统210的缓冲器225或其它组件中。高速缓存280可为TLC高速缓存、MLC高速缓存、QLC高速缓存或具有比存储器系统210中的另一高速缓存(例如SLC高速缓存275)更高阶级的单元的高速缓存的实例。高速缓存280可临时存储数据且包含用于在某持续时间内存储数据的可用空间。举例来说,数据可基于或响应于确定SLC高速缓存275中可用于写入的空间量满足阈值(例如,SLC高速缓存275中可用于写入的空间量低于给定阈值)而写入到高速缓存280。在此类情况中,SLC高速缓存275中可用于写入的空间量可小于待写入的数据量,且数据可由存储器系统210写入到不同高速缓存(例如高速缓存280)。
信息285可为可包含指示与流ID相关联的应用程序ID的值的查找表的实例。举例来说,存储器系统210的一或多个组件可对信息285执行查找程序以在一些实例中确定与写入命令的流ID相关联的应用程序ID。在此类情况中,存储器系统210可接收写入命令且在信息285中执行查找程序。信息285可为将一或多个相应流ID映射到一或多个相应应用程序ID的应用程序ID及流ID映射表的实例。举例来说,存储控制器230可参考信息285(例如,执行查找程序)且可基于或响应于应用程序ID与流ID之间的映射在SLC高速缓存275中分配(或可经配置以向存储器系统210的另一组件指示分配)可用于写入的空间。在一些情况中,信息285可存储于存储器系统210的缓冲器225或一或多个其它组件中。接口220可通过数据路径250转译主机系统205与存储器装置240的高速缓存280之间的数据。举例来说,存储器系统控制器215可致使存储器装置240使用数据路径250将数据传送到主机系统205。
为了处理从主机系统205接收的读取命令,存储器系统控制器215可确定缓冲器225是否具有足够可用空间用于存储与命令相关联的数据。举例来说,存储器系统控制器215可例如经由固件(例如控制器固件)确定缓冲器225内可用于存储与读取命令相关联的数据的空间量。
在一些情况中,缓冲队列265可用于以与上文关于写入命令论述类似的方式辅助与读取命令相关联的数据的缓冲存储。举例来说,如果缓冲器225具有足够空间用于存储读取数据,那么存储器系统控制器215可致使存储控制器230从存储器装置240检索与读取命令相关联的数据且使用数据路径250将数据存储于缓冲器225中进行临时存储。存储控制器230可例如经由总线235向存储器系统控制器215指示数据传送到缓冲器225是否已完成。
在一些情况中,存储队列270可用于辅助读取数据传送。举例来说,存储器系统控制器215可将读取命令推送到存储队列270进行处理。在一些情况中,存储控制器230可从缓冲器225或存储队列270获得从其检索数据的存储器装置240内的位置。在一些情况中,存储控制器230可从缓冲队列265获得缓冲器225内存储数据的位置。在一些情况中,存储控制器230可从存储队列270获得缓冲器225内存储数据的位置。在一些情况中,存储器系统控制器215可将由存储队列270处理的命令移回到命令队列260。
一旦数据已由存储控制器230存储于缓冲器225中,数据就可从缓冲器225传出且发送到主机系统205。举例来说,存储器系统控制器215可致使接口220使用数据路径250从缓冲器225检索数据且例如根据协议(例如UFS协议或eMMC协议)将数据传输到主机系统205。举例来说,接口220可处理来自命令队列260的命令且可例如经由总线235向存储器系统控制器215指示数据传输到主机系统205已完成。
存储器系统控制器215可根据一顺序(例如先进先出顺序、根据命令队列260的顺序)执行接收到的命令。针对每一命令,存储器系统控制器215可致使对应于命令的数据移进及移出缓冲器225,如上文论述。当数据移进缓冲器225且存储于缓冲器225内时,命令可保持于缓冲队列265中。如果命令的处理已完成(例如,如果对应于存取命令的数据已从缓冲器225传出),那么可例如通过存储器系统控制器215将命令从缓冲队列265移除。如果命令从缓冲队列265移除,那么先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外经配置用于与存储器装置240相关联的操作。举例来说,存储器系统控制器215可执行或管理操作,例如损耗均衡操作、废弃项目收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测及与来自主机系统205的命令相关联的逻辑地址(例如LBA)与存储器装置240内的存储器单元相关联的物理地址(例如物理块地址)之间的地址转译。即,主机系统205可发出指示一或多个LBA的命令且存储器系统控制器215可识别由LBA指示的一或多个物理块地址。在一些情况中,一或多个连续LBA可对应于非连续物理块地址。在一些情况中,存储控制器230可经配置以结合或代替存储器系统控制器215执行上述操作中的一或多者。在一些情况中,存储器系统控制器215可执行存储控制器230的功能且存储控制器230可省略。
图3说明根据本文中公开的实例的支持高速缓存分配技术的写入命令300的实例。写入命令300可为参考图1及2描述的写入命令的实例。写入命令300可包含操作码305、逻辑块地址310、群组号315及传送长度320以及其它方面。
写入命令300可为由主机系统传输到存储器系统的命令的实例,且命令可包含执行写入操作的指令。举例来说,存储器系统可接收写入命令300。在一些情况中,执行写入操作的指示可在除写入命令300之外的其它类型的命令中发送。写入命令300可包含各种位,例如位0到7及字节0到9。写入命令中的每一编号框可表示包含多个信息位或一个信息位的信息字节。写入命令300可包含操作码305,其可与基于写入命令300实施的存储器系统的操作条件相关联。在一些情况中,存储器系统可基于早先包含操作码305的写入命令300来产生指示操作条件的操作码305。
在一些实例中,写入命令300可包含逻辑块地址310。逻辑块地址310可与在写入操作执行期间存取的存储器系统的一或多个物理地址相关联。写入命令300可包含传送长度320。传送长度320可指示可从存储器系统传送或可不从存储器系统传送、传送到存储器系统或两者的字节数量的长度。
写入命令300可包含群组号315。群组号315可为参考图1及2描述的流ID的实例,可包含所述流ID,或可以其它方式指示流ID。在此类情况中,存储器系统可使用群组号315(例如流ID)中包含的信息来设置存储器系统的高速缓存中空间量的上限。群组号315(例如流ID)可与对与写入操作相关联的一或多个数据流的一或多个性能约束相关联。群组号315(例如流ID)可由存储器系统用于基于或响应于应用程序中的一或多者(如果不是每一应用程序)的使用而为一或多个应用程序设置SLC高速缓存大小的上限,借此避免原本可能且不必要地消耗SLC高速缓存内的增加空间量的应用程序突发(例如,接收运行多于一个应用程序的增加请求量),这可导致其它应用程序在此突发时隙中具有较慢响应。突发时隙可为存储器系统接收待处置的命令突发(例如,多于一个)的时段的实例。
群组号315可例如由存储器系统用于识别什么类型的数据可包含于与写入操作相关联的数据流中。在此类情况中,群组号315可指示信息位是可为相同数据流的部分还是相关数据流的部分(例如(举例来说),与相同数据流或其它相比)。群组号315可指示信息串可与彼此及单个数据流的部分相关。群组号315可由存储器系统用于传达存储器系统预期从主机系统接收的信息类型,使得存储器系统可确定如何处理传入数据流(例如,是否执行读取操作、写入操作、擦除操作、存储传入数据流以及其它实例)。
一群组个别数据写入可为集体数据流的实例,其可为与彼此相关联的多个数据流的实例。每一数据流可被给予唯一ID(例如流ID)。举例来说,主机系统可传输流ID(例如,其可为包含用于辅助存储器系统确定如何存储数据的信息的I/O提示的实例),其可经配置以向存储器系统的一或多个存储组件指示或指示存储器系统的一或多个存储组件如何或在哪里存储传入数据及什么数据类型可包含于传入数据中。在一些情况中,流ID可识别可与彼此相关联的多个数据流。在一些情况中,流ID可向存储器系统指示与彼此相关联或具有类似寿命的数据写入。流ID可允许在主机系统与存储器系统之间更快通信,借此提高存储器系统的效率且改进性能及一致性能及延时。在一些情况中,存储器系统能够使用流ID参考所存储信息(例如,在查找表中)以确定如何解译包含于数据流中的信息。基于确定流ID,存储器系统可参考查找表且确定接下来做什么。
存储器系统可根据对不同数据流中的每一者的一或多个相关应用程序性能约束(例如性能要求)在高速缓存中为不同数据流设置可用于写入的空间量的不同上限。举例来说,流ID可指示性能约束,其中性能约束可为加载应用程序的起动时间、运行应用程序的持续时间、实时数据的数量或其任何组合的实例。在一些情况中,存储器系统可基于流ID确定一或多个性能约束是否满足阈值。举例来说,如果与给定应用程序相关联的实时数据的数量超过阈值,那么存储器系统可基于或响应于确定一或多个性能约束超过阈值而指派第一级别。举例来说,如果与给定应用程序相关联的实时数据的数量未超过阈值,那么存储器系统可基于或响应于确定一或多个性能约束未超过阈值而指派第二级别。
在一些情况中,存储器系统可将流ID指派给相同擦除块。在此类情况中,可使多个写入操作彼此相关的流ID可指派给存储器系统中的相同擦除块。流ID可与对数据流(例如,包含一群组个别写入)的性能约束相关联。在一些情况中,主机系统可擦除包含可同时或作为相同擦除操作的部分来写入到存储器系统的个别写入群组的数据流,借此减少对存储器系统执行的擦除操作的总数量。
图4说明根据本文中公开的实例的支持高速缓存分配技术的数据属性布局400的实例。数据属性布局400可包含与指示符相关的数据类型,例如系统图像405、高速缓存410、应用程序图像415、本地高速缓存数据420及应用程序类型425。
基于流ID,存储器系统(例如存储器系统控制器)可确定指示写入操作的数据类型的应用程序ID。数据类型可为图片(例如系统图像405)、视频(例如用户录制视频)、影片、只读取或只写高速缓存(例如高速缓存410或本地高速缓存数据420)、应用程序图像(例如应用程序图像415)、配置文件或其任何组合的实例。在一些情况中,存储器系统可响应于确定应用程序ID而确定应用程序ID的属性。属性可为例如与写入操作相关联的数据的大小、与写入操作相关联的数据类型、与存取数据相关联的频率或其任何组合。
属性可与应用程序ID的相应类型相关。数据属性布局400可经配置以向存储器系统指示数据类型(例如,数据是热还是冷(基于来自主机系统的存取或请求的相对级别)、是只读还是只写、是循序还是非循序等等)。举例来说,数据属性布局400可包含系统图像405。系统图像405可包含与存取相关联的频率(例如快速数据)及数据类型(例如循序且只读数据)的属性。数据属性布局400可包含高速缓存410。高速缓存410可包含与存取相关联的频率(例如快速数据)及数据类型(例如热数据)的属性。数据属性布局400可包含应用程序图像415,其可包含数据类型(例如循序且只读数据)的属性。在一些实例中,数据属性布局400可包含本地高速缓存数据420,其可包含数据类型(例如热且只读数据)的属性。数据属性布局400可包含应用程序类型(例如图片、视频、影片),其可包含数据类型(例如冷数据)的属性。
存储器系统可基于写入命令的流ID确定应用程序ID。举例来说,应用程序ID可通过执行确定或参考程序(例如表中的查找程序)来从流ID确定。在此类情况中,存储器系统可在表中查找流ID,且表可指示与流ID相关联的应用程序ID或可提供用于确定应用程序ID的指示。表可为指示相应应用程序ID如何对应于相应流ID的参考列表的实例。举例来说,流ID可包含代码(例如值),存储器系统的处理器可使用代码来参考预配置列表且可接着基于列表中的值来参考应用程序ID。在其它实例中,流ID可为应用程序ID。在一些实例中,应用程序ID可基于与流ID(例如一群组个别数据写入)相关联的数据类型来确定。
在一些情况中,流ID及应用程序ID可用于限制高速缓存中的应用程序空间。举例来说,存储器系统可基于流ID确定应用程序ID,且存储器系统可基于基本写入命令来指派与应用程序ID相关联的可指示待写入数据量的级别。存储器系统可接着基于或响应于与应用程序ID相关联的指派级别而在高速缓存中分配可用于写入的空间量(例如,可限制应用程序可写入的空间量)。通过限制应用程序可写入的空间量,存储器系统能够以提高速度及效率执行操作,借此确保存储器系统及应用程序性能提供稳定用户体验。通过基于与应用程序ID相关联的指派级别分配可用于写入的空间量来改进较低级单元高速缓存使用可减少起动时间及执行操作的延时以及提高执行与应用程序ID相关联的应用程序的可靠性以及其它好处。
图5说明根据本文中公开的实例的支持高速缓存分配技术的框图500的实例。框图500可包含例如SLC高速缓存505的较低级单元高速缓存及例如可为MLC高速缓存、TLC高速缓存或QLC高速缓存的不同高速缓存510的较高级单元高速缓存。存储器系统可划分SLC高速缓存505中的可用空间,使得SLC高速缓存空间可对应于用于不同应用程序(例如应用程序515-a、515-b或515-c)的空间。在给定时间,SLC高速缓存505还可包含可用空间520。
存储器系统可指派与可指示写入操作写入到SLC高速缓存505的数据量的应用程序ID相关联(例如,与应用程序515-a、515-b或515-c相关联)的级别。在一些实例中,基于使用模型(例如,数据类型是否包含实时数据及/或实时数据量)、描述性模型(例如加载应用程序515的持续时间、运行应用程序515的持续时间、存取频率)以及例如预测性模型或配置分布(或两个或更多个模型的组合)的其它选项,主机系统可为SLC高速缓存505设置不同级别及将不同级别传输到存储器系统。举例来说,基于不同应用程序515的潜在使用类型,存储器系统可将一级别指派给一或多个应用程序515且在SLC高速缓存505中为一或多个应用程序分配空间量。表1可说明可基于或响应于使用模型指派的不同级别。
应用程序 使用模型 级别
应用程序515-a 大实时数据 1
应用程序515-b 小实时数据 2
应用程序515-c 无实时数据 3
表1
在一些情况中,应用程序515-a可被指派第一级别,应用程序515-b可被指派第二级别,且应用程序515-c可被指派第三级别。指派给每一应用程序515的级别可基于或响应于使用模型(例如,数据类型是否包含实时数据,例如实时数据的级别、加载应用程序515的持续时间、运行应用程序515的持续时间、与应用程序515相关联的存取频率以及其它)。在一些情况中,存储器系统可基于“N”个使用模型(例如多个使用模型、不同使用模型以及其它)来指派与应用程序ID相关联的级别。每一应用程序515可包含与流ID相关联的性能约束(例如性能要求)。性能约束可为加载应用程序的起动时间、运行应用程序的持续时间、实时数据的数量或其任何组合的实例。在此类情况中,性能约束可包含实时数据。在此类情况中,存储器系统可基于或响应于确定应用程序ID来确定数据类型是否包含实时数据的给定阈值量或级别。存储器系统可直接响应于确定数据类型包含实时数据的给定阈值量或级别来指派级别。
第一级别可与大实时数据使用模型相关联。举例来说,应用程序515-a可处理增加实时数据量、写入增加实时数据量或作为应用程序515-a的操作的部分接收实时响应或其任何组合。在此类情况中,应用程序515-a可被指派给第一级别。第二级别可与小实时数据使用模型相关联。举例来说,应用程序515-b可处理比应用程序515-a更少的实时数据、写入比应用程序515-a更少的实时数据或作为应用程序515-a的操作的部分接收比应用程序515-a更少的实时响应。在此类情况中,应用程序515-b可被指派第二级别。第三级别可与无实时数据使用模型相关联。举例来说,应用程序515-c可不处理或写入实时数据(例如,可代以非实时写入数据)或可不接收实时响应。在此类情况中,应用程序515-c可被指派第三级别。
在一些情况中,存储器系统可识别第一级别与第二级别之间的第一阈值。在此类情况中,存储器系统可基于或响应于确定应用程序515是否满足第一阈值而确定应用程序515可被指派哪一级别。存储器系统可识别第二级别与第三级别之间的第二阈值。在此类情况中,存储器系统可基于或响应于确定应用程序515是否满足第二阈值而确定应用程序515可被指派哪一级别。在一些实例中,第一阈值或第二阈值中的一或两者可为或包含实时数据量、实时数据的级别或分类、可为实时数据的使用百分比、数据类型是否包含实时数据、加载应用程序515的持续时间、运行应用程序515的持续时间、与应用程序515相关联的存取频率或其组合以及其它实例。
实时数据可为可在应用程序515在使用时加载的数据的实例。举例来说,存储器系统可实时下载可从与存储器系统相关联的网络流式传输的视频、影片或音乐。在此类情况中,存储器系统可基于或响应于实时数据的使用、或实时数据的预期使用或两者而将第一级别或第二级别指派给应用程序515。在其它实例中,存储器系统可运行应用程序515,其可包含预下载视频、影片或音乐。在此类情况中,存储器系统可基于或响应于实时数据的使用或实时数据的预期使用而将第二级别或第三级别指派给应用程序。
存储器系统可计算下载数据的数量以将一级别指派给应用程序ID且确保与执行应用程序515相关联的稳定用户体验。在一些情况中,例如,在短持续时间内下载数据无法改进用户体验,因为数据直到较晚时间才执行(例如,播放)。在一些实例中,存储器系统可确定可在下载的持续时间内使用的数据量及基于或响应于确定数据量而设置(例如,初始地或更新)指派级别。举例来说,持续时间可为1秒,且存储器系统可基于或响应于在持续时间内使用的数据量而将第一级别指派给应用程序ID。在其它实例中,持续时间可为10秒,且存储器系统可基于或响应于在持续时间内使用的数据量而将第二级别指派给应用程序ID。在此类情况中,存储器系统可基于在持续时间内使用的数据量而确定哪一级别可指派给应用程序ID以导致稳定用户体验,借此确保每一应用程序515都满足性能阈值。
存储器系统可基于或响应于指派级别而在存储器系统的SLC高速缓存505中分配可供写入操作写入的空间量。在此类情况中,存储器系统可将SLC高速缓存505划分成不同区段(例如可用于写入的空间子集)及将每一区段分配给不同应用程序ID(例如应用程序515-a、515-b或515-c)。SLC高速缓存505可基于或响应于使用百分比(例如应用程序515可被执行的频率)、刷新控制(例如执行刷新操作的阈值)或游标(例如游标中可用的空间量)而划分。可用于写入的空间量可基于或响应于不同指派级别、不同数据类型或两者而不同分配。
在一些实例中,存储器系统可基于或响应于指派级别而例如在SLC高速缓存505中设置可用于写入的空间量的上限。举例来说,存储器系统可基于或响应于与至少一些(如果不是每一)应用程序515相关联的应用程序性能要求而为至少一些(如果不是每一)应用程序515设置上限大小。在此类情况中,应用程序515-a可被指派第一级别且可基于或响应于使用模型而被分配可用SLC高速缓存505空间的第一部分。应用程序515-b可被指派第二级别且可基于或响应于使用模型而被分配可用SLC高速缓存505空间的第二部分(其可小于第一部分)。举例来说,第一级别可被分配大于第二级别的可用SLC高速缓存505的一部分。应用程序515-c可被指派第三级别且可基于或响应于使用模型而被分配可用SLC高速缓存505空间的第三部分。举例来说,第三级别可被分配小于第一级别及第二级别中的至少一者(如果不是每一者)的可用SLC高速缓存505的一部分。
存储器系统可避免将SLC高速缓存505的一部分过度分配给应用程序515且可基于或响应于例如与应用程序515相关联的实时数据的数量来这样做。举例来说,存储器系统可接收与写入实时数据相关联的写入命令且将第一级别指派给应用程序515-a。存储器系统可将数据写入到所分配的空间量内的SLC高速缓存505而非将数据写入到SLC高速缓存505的整个可用空间,这可保留SLC高速缓存505的一些可用空间用于写入其它数据以及其它好处。如果数据先前未写入到SLC高速缓存505,那么SLC高速缓存505的整个可用空间可为SLC高速缓存505的整个空间,或整个可用空间可为SLC高速缓存505的剩余部分(例如,包含空间520)。空间520可为SLC高速缓存505内可基于先前应用程序(例如应用程序515-a、515-b及515-c)写入的空间而未被写入的空间量的实例。在一些实例中,分配可用于写入的空间量可小于存储器系统的SLC高速缓存505中可用于写入的总空间量。
在一些情况中,存储器系统可基于或响应于将数据写入到SLC高速缓存505而将数据从SLC高速缓存505擦除。举例来说,当分配SLC高速缓存505时或作为执行写入操作的部分,存储器系统可执行一或多个清除操作,其包含从TLC空间恢复更多SLC空间、删除数据或将数据从SLC高速缓存505移动到高速缓存510(例如TLC高速缓存或QLC高速缓存)。在其它实例中,存储器系统可在SLC高速缓存505内为一或多个应用程序515分配空间及执行写入操作之前或之后执行清除操作。
存储器系统可动态分配可用于写入的空间量。举例来说,存储器系统可确定应用程序ID,指派级别,及响应于接收到第一写入命令而分配空间量。存储器系统可接收第二写入命令且在分配与接收到的第一写入命令相关联的空间量时(例如,在与分配与接收到的第一写入命令相关联的空间量至少部分重叠的持续期间期间、在与分配与接收到的第一写入命令相关联的空间量相同的持续时间期间)开始确定应用程序ID、指派级别及分配可用空间量。在此类情况中,存储器系统可基于或响应于待决写入命令而动态调整SLC高速缓存505中可用于写入的空间量。在其它实例中,当存储器系统执行清除操作时,存储器系统可将数据写入到空间量内的SLC高速缓存505。
在一些情况中,存储器系统可接收与指派给应用程序ID的相同级别相关联的多个写入命令。可用于写入的空间量可小于待写入的数据量。在此类情况中,存储器系统可将数据写入到SLC高速缓存505且将剩余数据写入到不同高速缓存510。举例来说,存储器系统可基于或响应于指派级别而确定SLC高速缓存505中可用于写入的空间量是否满足(例如,超过)阈值。存储器系统可基于或响应于确定可用空间量满足阈值而将第二组数据写入到存储器系统的不同高速缓存510。不同高速缓存510可为TLC高速缓存、QLC高速缓存、MLC高速缓存或高于SLC高速缓存505的级单元的任何阶级单元的实例。在一些情况中,SLC高速缓存505可为低于不同高速缓存510的存储器的任何阶级单元的实例。较快高速缓存可为MLC高速缓存的实例且较慢高速缓存可为TLC高速缓存或QLC高速缓存的实例。在一些实例中,SLC高速缓存505可代以为MLC高速缓存且不同高速缓存510可为TLC高速缓存或QLC高速缓存。在一些实例中,SLC高速缓存505可代以为TLC高速缓存且不同高速缓存510可为QLC高速缓存。
在其它系统中,与将数据写入到SLC高速缓存505相比,将数据写入到更高阶级单元高速缓存(例如不同高速缓存510)可增加起动时间及执行操作的延时,借此导致用户在执行应用程序515时经历滞后时间。在一些情况中,存储器系统可经历较慢处理量且接下来接收的写入命令也会经历起动及执行操作的增加延时,借此降低存储器系统的效率及整体性能。因此,如果SLC高速缓存满载且存储器系统可写入到不同高速缓存,那么存储器系统会在时隙期间经历性能下降。
为了改进存储器系统的整体效率及操作,存储器系统可从接收到的写入命令识别与不同级别的性能及实时数据使用相关联的多个应用程序(例如应用程序ID)。存储器系统可指派与应用程序ID相关联的级别且基于或响应于指派级别而在SLC高速缓存505内为每一应用程序设置可用于写入的空间量的限制。举例来说,存储器系统可使用写入命令的流ID及与写入操作的数据类型相关联的应用程序ID来基于应用程序类型动态调整SLC高速缓存505的分配部分。
因此,设置可用于写入的空间量的上限可允许存储器系统或其它组件以提高速度、效率执行操作,借此在执行应用程序515时确保稳定用户体验。通过基于或响应于数据类型(例如指派级别)而在SLC高速缓存内指派空间量来改进SLC高速缓存使用可减少起动时间及执行操作的延时以及提高执行与应用程序ID相关联的应用程序515的可靠性以及其它好处。
图6说明根据本文中公开的实例的支持高速缓存分配技术的流程图600的实例。流程图600可包含主机系统605及存储器系统610,其可为参考图1到5描述的主机系统105及存储器系统110的相应实例。可实施下文的替代实例,其中一些步骤以不同顺序执行或根本不执行。一些步骤可另外包含下文未提及的额外特征。流程图600说明其中存储器系统在存储器系统的高速缓存中分配可用于写入的空间的技术。
流程图600的方面可由控制器以及其它组件实施。另外或替代地,流程图600的方面可经实施为存储于存储器中的指令(例如存储于与存储器系统610耦合存储器中的固件)。举例来说,指令在由控制器(例如存储器系统控制器115或存储控制器230)执行时可致使控制器执行流程图600的操作。
在615处,可传输写入命令。举例来说,主机系统605可确定数据将写入到存储器系统610及数据可为数据流的部分。在此类情况中,主机系统605可将写入命令传输到存储器系统610。在此类情况中,存储器系统610可接收写入命令以执行写入操作。写入命令可包含与对与写入操作相关联的一或多个数据流的一或多个性能约束相关联的流ID。流ID可指示性能约束。在一些实例中,流ID可与性能约束相关联,使得存储器系统610可使用流ID查找表中的性能约束。作为写入命令的部分,存储器系统610可识别写入命令包含将与不同写入操作相关联的数据分块联系在一起的流ID。
在620处,可确定应用程序ID。举例来说,存储器系统610可基于写入命令的流ID确定指示写入操作的数据类型的应用程序ID。存储器系统610可响应于确定应用程序ID而确定应用程序ID的属性。属性可为与写入操作相关联的数据的大小、与写入操作相关联的数据类型、与存取数据相关联的频率或其任何组合的实例。举例来说,应用程序ID的属性可识别数据可为热数据、冷数据、只读数据、快速数据、循序数据或其任何组合。
存储器系统610可响应于接收到写入命令而在表中执行查找程序。在此类情况中,确定应用程序ID可基于或响应于执行查找程序。举例来说,存储器系统610可使用参考列表在表中查找且将流ID转换成应用程序ID。在一些实例中,流ID可指示应用程序ID。在其它实例中,流ID可与应用程序ID相关联,使得存储器系统610可使用流ID在表中查找应用程序ID。
在625处,可确定性能约束。举例来说,存储器系统610可基于流ID确定一或多个性能约束是否满足阈值。存储器系统610可使用流ID识别及指派不同性能约束(例如要求)。性能约束可包含实时数据。在此类情况中,存储器系统可响应于确定应用程序ID而确定与应用程序ID相关联的数据类型是否包含实时数据。在一些实例中,与写入操作相关联的数据类型可包含图片、视频、影片、高速缓存、应用程序图像、配置文件或其任何组合。数据类型中的每一者可包含实时数据或非实时数据。
在630处,可指派级别。举例来说,存储器系统610可指派与应用程序ID相关联的级别,其中级别指示写入操作要写入的数据量。存储器系统610可将应用程序ID匹配(例如,指派)给与可用于写入的空间量相关联的不同级别中的一者。在一些情况中,级别可响应于确定属性、确定一或多个性能约束满足阈值、确定数据类型包括实时数据或其任何组合而指派。存储器系统610可在指派级别时说明实时数据使用。
在635处,可分配空间量。举例来说,存储器系统610可基于或响应于指派级别而在存储器系统610的SLC高速缓存中分配可供写入操作写入的空间量。存储器系统610可指派一级别来设置可使用(例如,写入)的SLC高速缓存空间量。举例来说,存储器系统可基于或响应于指派级别而在SLC高速缓存中设置可用于写入的空间量的上限。设置上限可为数据流或数据类型的总可用SLC高速缓存的百分比的实例。
在一些情况中,存储器系统610可直接响应于指派与应用程序ID相关联的级别而确定可用于写入的SLC空间量是否满足阈值。存储器系统610可为不同级别、为不同应用程序(例如不同数据类型)或两者分配不同空间量。在一些实例中,SLC高速缓存中分配的空间可小于SLC高速缓存的总空间。
在640处,可写入数据。举例来说,存储器系统610可响应于分配可用于写入的空间量而将数据写入到SLC高速缓存的空间量内的SLC高速缓存。存储器系统610可执行接收到的写入命令,将数据写入到存储器系统610。在一些情况中,将数据写入到SLC高速缓存可响应于设置上限。
在一些实例中,存储器系统610可响应于确定单级单元高速缓存中可用于写入的空间量满足阈值而将第二组数据写入到存储器系统610的不同高速缓存(例如TLC高速缓存、QLC高速缓存、MLC高速缓存)。举例来说,如果接收到的数据类型超过阈值(例如,数据类型与不同数据类型同时接收,如果数据类型大于SLC高速缓存中可用的空间),那么存储器系统610可将数据写入到不同高速缓存。不同高速缓存可经配置以存储比SLC高速缓存更高阶级的单元。
在645处,可传输指示。举例来说,存储器系统610可直接响应于将数据写入到存储器系统610的SLC高速缓存而向主机系统605传输在SLC高速缓存中分配可用于写入的空间量的指示。在此类情况中,存储器系统610可向主机系统605提供使用SLC高速缓存的验证。
图7说明根据本文中公开的实例的支持高速缓存分配技术的框图700的实例。存储器系统705可为参考图1到6描述的存储器系统的方面的实例。存储器系统705或其各种组件可为用于执行易失性寄存器的各个方面以检测功率损耗的构件的实例,如本文中描述。举例来说,存储器系统705可包含命令接收器710、应用程序识别器715、级别组件720、分配组件725、写入组件730或其任何组合。这些组件中的每一者可彼此直接或间接通信(例如,经由一或多个总线)。
命令接收器710可经配置为或以其它方式支持用于从主机系统接收执行写入操作的写入命令的构件,写入命令包括与对与写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID)。应用程序识别器715可经配置为或以其它方式支持用于至少部分基于写入命令的流ID来确定指示写入操作的数据类型的应用程序ID的构件。级别组件720可经配置为或以其它方式支持用于指派与应用程序ID相关联且指示写入操作要写入的数据量的级别的构件。分配组件725可经配置为或以其它方式支持用于至少部分基于指派级别而在存储器系统的单级单元高速缓存中分配可供写入操作写入的空间量的构件。写入组件730可经配置为或以其它方式支持用于至少部分基于分配可用于写入的空间量来将数据写入到单级单元高速缓存的空间量内的存储器系统的单级单元高速缓存的构件。
在一些实例中,为了分配空间量,分配组件725可经配置为或以其它方式支持用于至少部分基于指派级别而在单级单元高速缓存中设置可用于写入的空间量的上限的构件,其中将数据写入到单级单元高速缓存可至少部分基于设置上限。
在一些实例中,级别组件720可经配置为或以其它方式支持用于至少部分基于流ID来确定一或多个性能约束是否满足阈值的构件,其中指派级别可至少部分基于确定一或多个性能约束满足阈值。
在一些实例中,应用程序识别器715可经配置为或以其它方式支持用于至少部分基于确定应用程序ID来确定数据类型是否包含实时数据的构件,其中指派级别可至少部分基于确定数据类型包含实时数据。
在一些实例中,一或多个性能约束包括实时数据,且应用程序识别器715可经配置为或以其它方式支持用于至少部分基于确定应用程序ID来确定应用程序ID的属性的构件,其中指派级别可至少部分基于确定属性,其中属性包含与写入操作相关联的数据的大小、与写入操作相关联的数据类型、与存取数据相关联的频率或其任何组合。
在一些实例中,分配组件725可经配置为或以其它方式支持用于至少部分基于指派与应用程序ID相关联的级别来确定单级单元高速缓存中可用于写入的空间量是否满足阈值的构件。在一些实例中,写入组件可经配置为或以其它方式支持用于至少部分基于确定单级单元高速缓存中可用于写入的空间量满足阈值来将第二组数据写入到存储器系统的不同高速缓存的构件,不同高速缓存经配置以存储比单级单元高速缓存更高阶级的单元。
在一些实例中,分配组件725可经配置为或以其它方式支持用于至少部分基于将数据写入到存储器系统的单级单元高速缓存来向主机系统传输在单级单元高速缓存中分配可用于写入的空间量的指示的构件。
在一些实例中,应用程序识别器715可经配置为或以其它方式支持用于至少部分基于接收到写入命令而在表中执行查找程序的构件,其中确定应用程序ID可至少部分基于执行查找程序。
在一些实例中,可用于写入的空间量可至少部分基于不同指派级别、不同数据类型或两者来不同分配。
在一些实例中,分配可用于写入的空间量可小于存储器系统的单级单元高速缓存中可用于写入的总空间量。
在一些实例中,与写入操作相关联的数据类型包含图片、视频、影片、高速缓存、应用程序图像、配置文件或其任何组合。
图8展示说明根据本文中公开的实例的支持高速缓存分配技术的方法800的流程图。方法800的操作可由本文中描述的存储器系统或其组件实施。举例来说,方法800的操作可由存储器系统执行。在一些实例中,存储器系统可执行一组指令以控制装置的功能元件执行所描述功能。另外或替代地,存储器系统可使用专用硬件执行所描述功能的方面。
在805处,可接收写入命令。举例来说,方法可包含从主机系统接收执行写入操作的写入命令,写入命令包含与对与写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID)。操作805可根据本文中公开的实例执行。在一些实例中,操作805的方面可由参考图7描述的命令接收器710执行。
在810处,可确定应用程序ID。举例来说,方法可包含至少部分基于写入命令的流ID来确定指示写入操作的数据类型的应用程序ID。操作810可根据本文中公开的实例执行。在一些实例中,操作805的方面可由参考图7描述的应用程序识别器715执行。
在815处,可指派级别。举例来说,方法可包含指派与应用程序ID相关联且指示写入操作要写入的数据量的级别。操作815可根据本文中公开的实例执行。在一些实例中,操作805的方面可由参考图7描述的级别组件720执行。
在820处,可分配空间量。举例来说,方法可包含至少部分基于指派级别而在存储器系统的单级单元高速缓存中分配可供写入操作写入的空间量。操作820可根据本文中公开的实例执行。在一些实例中,操作805的方面可由参考图7描述的分配组件725执行。
在825处,可写入数据。举例来说,方法可包含至少部分基于分配可用于写入的空间量来将数据写入到单级单元高速缓存的空间量内的存储器系统的单级单元高速缓存。操作825可根据本文中公开的实例执行。在一些实例中,操作805的方面可由参考图7描述的写入组件730执行。
在一些实例中,本文中描述的设备可执行一或若干方法,例如方法800。设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如存储可由处理器执行的指令的非暂时性计算机可读媒体):从主机系统接收执行写入操作的写入命令,写入命令包含与对与写入操作相关联的一或多个数据流的一或多个性能约束相关联的流ID;至少部分基于写入命令的流ID来确定指示写入操作的数据类型的应用程序ID;指派与应用程序ID相关联且指示写入操作要写入的数据量的级别;至少部分基于指派级别而在存储器系统的单级单元高速缓存中分配可供写入操作写入的空间量;及至少部分基于分配可用于写入的空间量来将数据写入到单级单元高速缓存的空间量内的存储器系统的单级单元高速缓存。
在本文中描述的方法800及设备的一些实例中,分配空间量可包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于指派级别而在单级单元高速缓存中设置可用于写入的空间量的上限,其中将数据写入到单级单元高速缓存可至少部分基于设置上限。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于流ID来确定一或多个性能约束是否满足阈值,其中指派级别可至少部分基于确定一或多个性能约束满足阈值。
在本文中描述的方法800及设备的一些实例中,一或多个性能约束包括实时数据。本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于确定应用程序ID来确定数据类型是否包含实时数据,其中指派级别可至少部分基于确定数据类型包含实时数据。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于确定应用程序ID来确定应用程序ID的属性,其中指派级别可至少部分基于确定属性,其中属性包含与写入操作相关联的数据的大小、与写入操作相关联的数据类型、与存取数据相关联的频率或其任何组合。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于指派与应用程序ID相关联的级别来确定单级单元高速缓存中可用于写入的空间量是否满足阈值;及至少部分基于确定单级单元高速缓存中可用于写入的空间量满足阈值来将第二组数据写入到存储器系统的不同高速缓存,不同高速缓存经配置以存储比单级单元高速缓存更高阶级的单元。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于将数据写入到存储器系统的单级单元高速缓存来向主机系统传输在单级单元高速缓存中分配可用于写入的空间量的指示。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分基于接收到写入命令而在表中执行查找程序,其中确定应用程序ID可至少部分基于执行查找程序。
在本文中描述的方法800及设备的一些实例中,可用于写入的空间量可至少部分基于不同指派级别、不同数据类型或两者来不同分配。
本文中描述的方法800及设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:分配可用于写入的空间量可小于存储器系统的单级单元高速缓存中可用于写入的总空间量。
在本文中描述的方法800及设备的一些实例中,与写入操作相关联的数据类型包含图片、视频、影片、高速缓存、应用程序图像、配置文件或其任何组合。
应注意,本文中描述的方法描述可能实施方案,且操作及步骤可经重新布置或以其它方式修改且其它实施方案是可能的。此外,可组合来自方法中的两者或更多者的部分。
本文中描述的信息及信号可使用各种不同技术及科技中的任何者表示。举例来说,在整个以上描述中可参考的数据、指令、命令、信息、信号、位、符号及芯片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示。一些图式可将信号说明为单个信号;然而,信号可表示信号总线,其中总线可具有各种位宽度。
术语“电子通信”、“导电触点”、“连接”及“耦合”可指代组件之间支持组件之间的信号流动的关系。如果在组件之间存在可在任何时间支持组件之间的信号流动的任何导电路径,那么认为组件彼此电子通信(或导电接触或连接或耦合)。在任何给定时间,彼此电子通信(或导电接触或连接或耦合)的组件之间的导电路径可基于包含经连接组件的装置的操作而为开路或闭路。经连接组件之间的导电路径可为组件之间的直接导电路径,或经连接组件之间的导电路径可为可包含中间组件(例如开关、晶体管或其它组件)的间接导电路径。在一些实例中,在一段时间内可例如使用一或多个中间组件(例如开关或晶体管)中断经连接组件之间的信号流动。
术语“耦合”指代从组件之间的开路关系(其中信号目前不能通过导电路径在组件之间传递)转变到组件之间的闭路关系(其中信号能够通过导电路径在组件之间传递)的条件。如果例如控制器的组件将其它组件耦合在一起,那么组件引发允许信号通过先前不准信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”指代其中信号目前不能在组件之间流动的组件之间的一种关系。如果组件之间存在开路,那么组件彼此隔离。举例来说,如果定位于两个组件之间的开关打开,那么通过开关分离的组件彼此隔离。如果控制器隔离两个组件,那么控制器带来防止信号使用先前准许信号流动的导电路径在组件之间流动的变化。
术语“如果”、“当…时”、“基于”或“至少部分基于”可互换使用。在一些实例中,如果术语“如果”、“当…时”、“基于”或“至少部分基于”用于描述条件动作、条件过程或过程的部分之间的连接,那么术语可为可互换的。
术语“响应于”可指代一个条件或动作至少部分(如果非完全)由于先前条件或动作而发生。举例来说,可执行第一条件或动作且第二条件或动作可至少部分由于先前条件或动作发生而发生(无论直接在第一条件或动作之后还是在第一条件或动作之后发生的一或多个其它中间条件或动作之后)。
另外,术语“直接地响应于”或“直接响应于”可指代一个条件或动作直接由于先前条件或动作而发生。在一些实例中,可执行第一条件或动作且第二条件或动作可直接由于先前条件或动作发生而发生,与其它条件或动作是否发生无关。在一些实例中,可执行第一条件或动作且第二条件或动作可直接由于先前条件或动作发生而发生,使得没有其它中间条件或动作发生于早先条件或动作与第二条件或动作之间或有限数量的一或多个中间步骤或动作发生于早先条件或动作与第二条件或动作之间。除非另外指定,否则本文中描述为“基于”、“至少部分基于”或“响应于”一些其它步骤、动作、事件或条件而执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此其它条件或动作而执行。
本文中论述的装置(包含存储器阵列)可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可为绝缘体上硅(SOI)衬底(例如玻璃上硅(SOG)或蓝宝石上硅(SOP))或另一衬底上半导体材料外延层。衬底或衬底的子区域的导电性可通过使用各种化学物种(包含(但不限于)磷、硼或砷)进行掺杂来控制。掺杂可在衬底的初始形成或生长期间通过离子植入或通过任何其它掺杂方法来执行。
本文中论述的开关组件或晶体管可表示场效晶体管(FET)且包括包含源极、漏极及栅极的三端子装置。端子可通过导电材料(例如金属)连接到其它电子元件。源极及漏极可为导电的且可包括重掺杂(例如简并)半导体区域。源极及漏极可通过轻掺杂半导体区域或沟道分离。如果沟道是n型(即,多数载子是电子),那么FET可称为n型FET。如果沟道是p型(即,多数载子是空穴),那么FET可称为p型FET。沟道可由绝缘栅极氧化物覆盖。沟道导电性可通过将电压施加到栅极来控制。举例来说,分别将正电压或负电压施加到n型FET或p型FET可导致沟道变成导电。如果将大于或等于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“接通”或“激活”。如果将小于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“断开”或“取消激活”。
本文中陈述的描述结合附图来描述实例配置且表示可实施或在权利要求书的范围内的所有实例。本文中使用的术语“示范性”意味着“用作实例、例子或说明,而非“优选的”或“优于其它实例”。具体实施方式包含用于提供所描述技术的理解的特定细节。然而,可在没有这些具体细节的情况下实践这些技术。在一些例子中,以框图形式展示众所周知结构及装置以免模糊所描述实例的概念。
在附图中,类似组件或特征可具有相同参考标记。此外,可通过在参考标记之后加上连字符及区分类似组件的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
本文中描述的功能可经实施于硬件、由处理器执行的软件、固件或其任何组合中。如果实施于由处理器执行的软件中,那么功能可作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体传输。其它实例及实施方案在本公开及所附权利要求书的范围内。举例来说,由于软件的性质,本文中描述的功能可使用由处理器执行的软件、硬件、固件、硬接线或这些中的任何者的组合实施。实施功能的特征也可在物理上定位于各个位置处,包含经分布使得功能的部分在不同物理位置处实施。
举例来说,结合本公开描述的各种说明框及组件可用经设计以执行本文中描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代例中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可被实施为计算装置的组合(例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任何其它此配置)。
如本文中(包含在权利要求书中)使用,项目列表(例如以例如“…中的至少一者”或“…中的一或多者”的短语开头的项目列表)中使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一者的列表意味着A或B或C或AB或AC或BC或ABC(即,A及B及C)。而且,如本文中使用,短语“基于”不应被解释为参考一组封闭条件。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A及条件B两者。换句话说,如本文中使用,短语“基于”应以与短语“至少部分基于”相同的方式解释。
计算机可读媒体包含非暂时性计算机存储媒体及通信媒体两者,其包含促进计算机程序从一个位置传送到另一位置的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。通过实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置或可用于载送或存储呈指令或数据结构形式的期望程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。而且,任何连接都适当地称为计算机可读媒体。举例来说,如果软件使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外、无线电及微波)从网站、服务器或其它远程源传输,那么同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外、无线电及微波)包含于媒体定义中。如本文中使用,磁盘及光盘包含CD、激光盘、光盘、数字多功能光盘(DVD)、软盘及蓝光盘,其中磁盘通常磁性地复制数据,而光盘用激光光学地复制数据。上述内容的组合也包含于计算机可读媒体的范围内。
提供本文中的描述来使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将明白本公开的各种修改,且在不脱离本公开的范围的情况下,本文中定义的一般原理可应用到其它变动。因此,本公开不限于本文中描述的实例及设计,而是应符合与本文中公开的原理及新型特征一致的最广范围。

Claims (20)

1.一种设备,其包括:
存储器系统,其经配置以存储固件;及
控制电路,其与所述存储器系统耦合且经配置以致使所述设备:
从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);
至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);
指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;
至少部分基于所述指派级别而在所述存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及
至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
2.根据权利要求1所述的设备,其中为了分配所述空间量,所述控制电路经配置以致使所述设备:
至少部分基于所述指派级别而在所述单级单元高速缓存中设置可用于写入的所述空间量的上限,其中将所述数据写入到所述单级单元高速缓存是至少部分基于设置所述上限。
3.根据权利要求1所述的设备,其中所述控制电路进一步经配置以致使所述设备:
至少部分基于所述流ID来确定所述一或多个性能约束是否满足阈值,其中指派所述级别是至少部分基于确定所述一或多个性能约束满足所述阈值。
4.根据权利要求3所述的设备,其中所述一或多个性能约束包括实时数据,且其中所述控制电路进一步经配置以致使所述设备:
至少部分基于确定所述应用程序ID来确定所述数据类型是否包括所述实时数据,其中指派所述级别是至少部分基于确定数据类型包括所述实时数据。
5.根据权利要求1所述的设备,其中所述控制电路进一步经配置以致使所述设备:
至少部分基于确定所述应用程序ID来确定所述应用程序ID的属性,其中指派所述级别是至少部分基于确定所述属性,其中所述属性包括与所述写入操作相关联的所述数据的大小、与所述写入操作相关联的所述数据类型、与存取所述数据相关联的频率或其任何组合。
6.根据权利要求1所述的设备,其中所述控制电路进一步经配置以致使所述设备:
至少部分基于指派与所述应用程序ID相关联的所述级别来确定所述单级单元高速缓存中可用于写入的所述空间量是否满足阈值;及
至少部分基于确定所述单级单元高速缓存中可用于写入的所述空间量满足所述阈值来将第二组数据写入到所述存储器系统的不同高速缓存,所述不同高速缓存经配置以存储比所述单级单元高速缓存更高阶级的单元。
7.根据权利要求1所述的设备,其中所述控制电路进一步经配置以致使所述设备:
至少部分基于将所述数据写入到所述存储器系统的所述单级单元高速缓存来向所述主机系统传输在所述单级单元高速缓存中分配可用于写入的所述空间量的指示。
8.根据权利要求1所述的设备,其中所述控制电路进一步经配置以致使所述设备:
至少部分基于接收到所述写入命令而在表中执行查找程序,其中确定所述应用程序ID是至少部分基于执行所述查找程序。
9.根据权利要求1所述的设备,其中可用于写入的所述空间量至少部分基于不同指派级别、不同数据类型或两者来不同分配。
10.根据权利要求1所述的设备,其中分配可用于写入的所述空间量小于所述存储器系统的所述单级单元高速缓存中可用于写入的总空间量。
11.根据权利要求1所述的设备,其中与所述写入操作相关联的所述数据类型包括图片、视频、影片、高速缓存、应用程序图像、配置文件或其任何组合。
12.一种非暂时性计算机可读媒体,其存储包括指令的代码,所述指令在由电子装置的处理器执行时致使所述电子装置:
从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);
至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);
指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;
至少部分基于所述指派级别而在存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及
至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
13.根据权利要求12所述的非暂时性计算机可读媒体,其中在由所述电子装置的所述处理器执行时致使所述电子装置分配所述空间量的所述指令在由所述电子装置的所述处理器执行时致使所述电子装置:
至少部分基于所述指派级别而在所述单级单元高速缓存中设置可用于写入的所述空间量的上限,其中将所述数据写入到所述单级单元高速缓存是至少部分基于设置所述上限。
14.根据权利要求12所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分基于所述流ID来确定所述一或多个性能约束是否满足阈值,其中指派所述级别是至少部分基于确定所述一或多个性能约束满足所述阈值。
15.根据权利要求14所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分基于确定所述应用程序ID来确定所述数据类型是否包括实时数据,其中指派所述级别是至少部分基于确定数据类型包括所述实时数据。
16.根据权利要求12所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分基于确定所述应用程序ID来确定所述应用程序ID的属性,其中指派所述级别是至少部分基于确定所述属性,其中所述属性包括与所述写入操作相关联的所述数据的大小、与所述写入操作相关联的所述数据类型、与存取所述数据相关联的频率或其任何组合。
17.一种方法,其包括:
从主机系统接收执行写入操作的写入命令,所述写入命令包括与对与所述写入操作相关联的一或多个数据流的一或多个性能约束相关联的流标识(ID);
至少部分基于所述写入命令的所述流ID来确定指示所述写入操作的数据类型的应用程序标识(ID);
指派与所述应用程序ID相关联且指示所述写入操作要写入的数据量的级别;
至少部分基于所述指派级别而在存储器系统的单级单元高速缓存中分配可供所述写入操作写入的空间量;及
至少部分基于分配可用于写入的所述空间量来将所述数据写入到所述单级单元高速缓存的所述空间量内的所述存储器系统的所述单级单元高速缓存。
18.根据权利要求17所述的方法,其中分配所述空间量进一步包括:
至少部分基于所述指派级别而在所述单级单元高速缓存中设置可用于写入的所述空间量的上限,其中将所述数据写入到所述单级单元高速缓存是至少部分基于设置所述上限。
19.根据权利要求17所述的方法,其进一步包括:
至少部分基于所述流ID来确定所述一或多个性能约束是否满足阈值,其中指派所述级别是至少部分基于确定所述一或多个性能约束满足所述阈值。
20.根据权利要求17所述的方法,其进一步包括:
至少部分基于确定所述应用程序ID来确定所述数据类型是否包括实时数据,其中指派所述级别是至少部分基于确定数据类型包括所述实时数据。
CN202180098247.XA 2021-04-16 高速缓存分配技术 Active CN117501229B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/087833 WO2022217592A1 (en) 2021-04-16 2021-04-16 Cache allocation techniques

Publications (2)

Publication Number Publication Date
CN117501229A CN117501229A (zh) 2024-02-02
CN117501229B true CN117501229B (zh) 2024-07-05

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733321A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 无用数据收集-自动数据放置
JP2018200718A (ja) * 2018-08-24 2018-12-20 東芝メモリ株式会社 メモリシステムの制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733321A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 无用数据收集-自动数据放置
JP2018200718A (ja) * 2018-08-24 2018-12-20 東芝メモリ株式会社 メモリシステムの制御方法

Similar Documents

Publication Publication Date Title
CN115248662A (zh) 动态超级块
CN114816900A (zh) 用于存储器系统的温度跟踪
CN115373592B (zh) 用于页线填充数据的设备、非暂时性计算机可读介质及方法
US20230367486A1 (en) Block conversion to preserve memory capacity
US20230205425A1 (en) Sacrificial block pool
US11775207B2 (en) Techniques to perform a write operation
US11955203B2 (en) Techniques to mitigate memory die misalignment
CN114756167A (zh) 使用压缩存储器的读取操作
CN117501229B (zh) 高速缓存分配技术
US11822478B2 (en) Cache allocation techniques
US11922069B2 (en) Adaptive block mapping
US20230418491A1 (en) Memory block utilization in memory systems
US20230043502A1 (en) Read latency and suspend modes
US20240231694A1 (en) Read buffer allocation balance between multiple memory dies
US12014077B2 (en) Rating-based mapping of data to memory
US11768629B2 (en) Techniques for memory system configuration using queue refill time
US20240192888A1 (en) Low-latency processing for unmap commands
US11687291B2 (en) Techniques for non-consecutive logical addresses
US11977758B2 (en) Assigning blocks of memory systems
US20230367710A1 (en) Data defragmentation control
US20230342060A1 (en) Techniques for data transfer operations
US20240176534A1 (en) Techniques for improved write performance modes
WO2024020707A1 (en) Memory performance evaluation using address mapping information
WO2022193233A1 (en) Memory write performance techniques
US20240012751A1 (en) Adaptive wear leveling for a memory system

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant