CN115904221A - 高速缓存块预算技术 - Google Patents
高速缓存块预算技术 Download PDFInfo
- Publication number
- CN115904221A CN115904221A CN202210941759.4A CN202210941759A CN115904221A CN 115904221 A CN115904221 A CN 115904221A CN 202210941759 A CN202210941759 A CN 202210941759A CN 115904221 A CN115904221 A CN 115904221A
- Authority
- CN
- China
- Prior art keywords
- mode
- blocks
- tbw
- block
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
- G06F2212/6012—Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及高速缓存块预算技术。在一些存储器系统中,控制器可用高速缓存配置存储器装置。所述高速缓存可包含配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集。在所述第二模式下操作的块可配置成比在所述第一模式下操作的块每存储器单元存储相对更多的位。所述控制器可对于所述第二块子集中的每个块跟踪并存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率。所述控制器可从所述第二块子集中选择块以响应于触发器且基于所述块的所述相应比率而在模式之间进行切换。
Description
交叉引用
本专利申请要求He等人于2021年8月9日提交的标题为“高速缓存块预算技术(CACHE BLOCK BUDGETING TECHNIQUES)”的第17/397,799号美国专利申请的优先权,所述美国专利申请转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
本技术领域涉及高速缓存块预算技术。
背景技术
存储器装置广泛地用于将信息存储在例如计算机、用户装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可被编程为常常对应于逻辑1或逻辑0的两个支持状态中的一者。在一些实例中,单个存储器单元可支持超过两个可能的状态,所述状态中的任一者可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可以将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、三维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源定期更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种设备。所述设备包含存储器装置;以及控制器,其与所述存储器装置耦合且配置成使所述设备进行以下操作:用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
描述一种存储代码的非暂时性计算机可读媒体。所述非暂时性计算机可读媒体包含指令,所述指令在由电子装置的处理器执行时使所述电子装置进行以下操作:用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
描述一种由存储器系统执行的方法。所述方法包含:用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
附图说明
图1示出根据本文公开的实例支持高速缓存块预算技术的系统的实例。
图2示出根据本文公开的实例支持高速缓存块预算技术的系统的实例。
图3示出根据本文公开的实例支持高速缓存块预算技术的存储器系统的实例。
图4示出根据本文公开的实例支持高速缓存块预算技术的流程图的实例。
图5示出根据本文公开的实例支持高速缓存块预算技术的存储器系统的框图。
图6示出流程图,示出根据本文公开的实例支持高速缓存块预算技术的一或多种方法。
具体实施方式
一些存储器装置,例如NAND存储器,可包含高速缓存,所述高速缓存包含用于存储数据或其它信息的存储器单元子集(例如,在存储器阵列中)。在一些实例中,高速缓存可包含与存储器装置中的其它块相比可支持每单元更少位的存储器块。例如,高速缓存可包含一或多个单层级单元(SLC)块,相比其它块,例如包含多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)、五层级单元(PLC)等或这些或其它多层级存储器单元的任何组合的块,所述SLC块可包含每单元相对更少位。由于与用于数据存储的其它块相比,支持每单元更少位的块的性能得到改善(例如,相对更高的可靠性、相对更快的存取操作、相对更大的耐久性),因此此类高速缓存可以改进存储器装置的耐久性和性能。然而,在一些情况下,高速缓存可能与存储器装置的容量降低相关联(例如,由于相比高速缓存外部的块每单元存储更少位),这可能导致存储器装置存储容量和例如耗损均衡、垃圾收集等某些操作(例如,可能受益于将要使用的块或资源的过度配置池的操作)的性能降低。
如本文所描述,高速缓存可包含动态块子集,所述动态块可以在支持每单元相对更少位的第一模式(例如,SLC、MLC、TLC)与支持每单元相对更多位的第二模式(例如,MLC、TLC或QLC)之间切换。在一些实例中,在第二模式下对动态块执行的编程和擦除(P/E)循环可能会比在第一模式下的P/E循环更耗损块(例如,由于对应于第二模式的每单元的位数更大)。存储器系统控制器可以配置高速缓存以支持根据存储器装置的目标容量的目标总写入字节(TBW)。存储器系统控制器可以针对高速缓存中的至少一些动态块(如果不是每个动态块的话)并根据高速缓存的目标TBW配置在第一模式下执行的循环与在第二模式下执行的循环之间的目标比率。在一些实例中,目标比率可对应于第一模式的第一目标循环计数和第二模式的第二目标循环计数。当使用存储器装置时(例如,在产品运行时期间),存储器系统控制器可以跟踪高速缓存中每个动态块的循环计数。如果存储器系统控制器识别选择一或多个动态块以从第一模式切换到第二模式(或从第二模式切换到第一模式)的触发器,则存储器系统控制器可以基于或响应于循环计数、相应块的目标循环比率或两者来选择一或多个动态块。例如,触发器可以是存储器装置的容量满足(例如,超过或等于)或低于存储器装置的目标容量、高速缓存的写入命令、高速缓存的擦除命令或其任何组合。
另外或替代地,存储器系统控制器可配置成基于或响应于高速缓存的使用级别(例如,由主机系统)修改一或多个动态块的目标循环比率。在运行时期间,存储器系统控制器可以定期将高速缓存的TBW与高速缓存的目标TBW进行比较。如果实际TBW不同于目标TBW(例如,对于特定时间段),则存储器系统控制器可以确定调整(例如,增加或减少)一或多个动态块的目标循环比率。因此,存储器系统控制器可以利用一或多个进程来改进高速缓存内的块分配,这可以改进存储器装置的性能和耐久性,同时保持存储器装置的容量目标。
首先在参考图1和2描述的系统和装置的上下文中描述本公开的特征。在参考图3和4的存储器系统和过程流程的上下文中描述本公开的特征。进一步通过参考图5和6的与高速缓存块预算技术相关的设备图和流程图示出并在所述设备图和流程图的上下文中描述本公开这些和其它特征。
图1示出根据本文公开的实例支持高速缓存块预算技术的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中所述装置或装置的集合包含至少一个存储器阵列。例如,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含主机系统105,其可与存储器系统110耦合。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是配置成使主机系统105根据如本文中描述的实例进行各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。例如,主机系统105可包含配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统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读取或向其写入,则数据可以存储在本地存储器120中,并且数据可在本地存储器120内供主机系统105(例如,相对于存储器装置130具有减小的时延)用于后续根据高速缓存策略进行检索或操控(例如,更新)。
尽管图1中的存储器系统110的实例已示出为包含存储器系统控制器115,但在一些情况下存储器系统110可不包含存储器系统控制器115。例如,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130内部的一或多个本地控制器135,以执行本文中属于存储器系统控制器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存储器,多层级存储器单元可以提供更大的存储密度(例如,增加的容量),但在一些情况下可以涉及用于支持电路的更窄读取或写入容限或更大复杂性。在一些实例中,与多层级存储器单元相比,SLC存储器可具有更高的可靠性、更快的存取操作、改进的耐久性等。
一些存储器装置130可包含静态SLC存储器单元,其可在存储器装置130的整个生命周期中以SLC模式操作。静态SLC存储器单元可以支持存储器装置130相对较高的可靠性和耐久性,但与其它存储器单元相比,可具有更低的存储密度。随着写入存储器装置130的数据数量(例如,存储器装置130的使用级别)的增加,存储器装置130的容量可能会减少(例如,包含存储器装置130内可用存储器单元的过度配置池可能会减少)。因此,包含相对大量静态SLC存储器单元的存储器装置130可以存储相对少量的数据(例如,低容量)。为了在改进耐久性和性能的同时保持存储器装置130内的足够容量,存储器装置130可包含一或多个动态存储器单元。一或多个动态存储器单元可以编程为SLC存储器单元或多层级存储器单元(例如MLC、TLC、QLC、PLC等)。
在一些情况下,平面165可以指块170的群组,并且在一些情况下,并行操作可在不同平面165内进行。例如,并行操作可在不同块170内的存储器单元上执行,只要不同块170是在不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路或跨平面165共享的其它电路)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。例如,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可以是可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,例如,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,为了在块170内更新一些数据,同时保留块170内的其它数据,存储器装置130可将待保留的数据复制到新块170且将更新的数据写入到新块170的一或多个其余页。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保留在旧块170中的数据标记或以其它方式表示为无效或过时,并且可更新逻辑到物理(L2P)映射表以使数据的逻辑地址(例如,LBA)与新的有效块170而不是旧的无效块170相关联。例如,在一些情况下,归因于延迟或耗损考虑,可执行此这一复制和重新映射,而不是擦除和重写整个旧块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,一或多个块170或平面165内),以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
在一些情况下,可以维持L2P映射表且可以页级别的粒度将数据标记为有效或无效的,并且页175可以包含有效数据、无效数据或不包含数据。无效数据可以是由于数据的较新版本或更新版本存储在存储器装置130的不同页175中而过时的数据。无效数据先前可能已被编程到无效页175,但可能不再与有效逻辑地址(例如由主机系统105参考的逻辑地址)相关联。有效数据可以是存储在存储器装置130上的此类数据的最新版本。不包含数据的页175可以是从未被写入或已被擦除的页175。
在一些情况下,存储器系统控制器115或本地控制器135可以执行存储器装置130的操作(例如,作为一或多个媒体管理算法的一部分),例如耗损均衡、后台刷新、垃圾收集、清理、块扫描、运行状况监测,或其它操作,或其任何组合。例如,在存储器装置130内,块170可以具有包含有效数据的一些页175和包含无效数据的一些页175。为了避免等待块170中的所有页175具有无效数据以便擦除和重复使用块170,可调用被称作“垃圾收集”的算法,以允许块170被擦除和释放为用于后续写入操作的空闲块。垃圾收集可指媒体管理操作集,其包含例如选择包含有效和无效数据的块170、选择块中包含有效数据的页175、将来自所选页175的有效数据复制到新位置(例如,另一块170中的空闲页175)、将先前选择的页175中的数据标记为无效,以及擦除选定块170。因此,可增加已擦除的块170的数量,使得可使用更多的块170来存储后续数据(例如,随后从主机系统105接收到的数据)。在一些实例中,存储器装置130在垃圾收集和耗损均衡操作期间的性能可被称为脏性能。
在一些实例中,存储器装置130内的过度配置池可包含在此类操作期间擦除的空闲块170(例如,当前未存储数据的块170),这可以改进存储器装置130的媒体管理操作的效率和可靠性。随着存储器装置130的使用级别的增加,存储器装置130内的可用块的容量(例如,和过度配置池的相应容量)可能会减少,这可能导致性能降低(例如,脏性能)。在一些实例中,存储器装置130可包含高速缓存,所述高速缓存包含支持第一操作模式的块170(例如,SLC存储器)。与第二模式(例如,多层级单元存储器)相比,第一模式可以支持每存储器单元更少位,并且可以具有减少的容量。因此,如果存储器装置130包含在第一模式下操作的块的高速缓存,则所述装置的容量可能减少,这可能导致存储器装置130的过度配置减少和性能降低。
如本文描述的存储器装置130内的高速缓存可配置成包含配置成在第一模式下操作的第一块子集和配置成在第一模式下操作与在第二模式下操作之间动态切换的可被称为动态块的第二块子集。存储器系统控制器115可以基于或响应于存储器装置130的目标容量来配置高速缓存以支持目标TBW。存储器系统控制器115可以根据高速缓存的目标TBW(例如,总目标TBW)为高速缓存中的每个动态块配置与第一模式的第一目标循环计数和第二模式的第二目标循环计数相关联的目标循环比率。在一些实例中,在第二模式下对块执行的P/E循环对块的耗损可能比在第一模式下对块执行的P/E循环更大,并且可以根据第一模式下的耗损与第二模式下的耗损的比率来计算目标循环比率,以保持每个块170的足够耐久性。
当主机系统105使用存储器装置130,存储器系统控制器115可以跟踪高速缓存中每个动态块的循环计数。如果存储器系统控制器115识别选择一或多个动态块以从第一模式切换到第二模式或从第二模式切换到第一模式的触发器,则存储器系统控制器115可以基于或响应于一或多个动态块的循环计数和目标循环比率来选择相应动态块。例如,触发器可以是存储器装置130的容量超过或低于存储器装置130的目标容量、高速缓存的写入命令、高速缓存的擦除命令或其任何组合。另外或替代地,存储器系统控制器115可以根据高速缓存的使用级别修改一或多个动态块的目标循环比率。存储器系统控制器115可以定期将高速缓存的实际TBW与目标TBW进行比较。如果实际TBW不同于目标TBW(例如,在特定时间段,在特定参考时间),则存储器系统控制器115可以确定调整(例如,增加或减少)一或多个动态块的目标循环比率。因此,存储器系统控制器115可以利用一或多个过程来改进高速缓存内动态块的分配,这可以改进存储器装置130的性能和耐久性,同时保持存储器装置130的容量目标。
系统100可包含支持高速缓存块预算技术的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式存取一或多个非暂时性计算机可读媒体,其存储用于执行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能的指令(例如,固件)。例如,如果由主机系统105(例如,由主机系统控制器106)、存储器系统控制器115或存储器装置130(例如,由本地控制器135)执行,则此类指令可使主机系统105、存储器系统控制器115或存储器装置130执行本文描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路。受管理存储器系统的实例为受管理NAND(MNAND)系统。
图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可以是非高速缓存缓冲器。也就是说,主机系统205可不直接从缓冲器225读取数据。例如,可将读取命令添加到队列中,而无需将地址与已在缓冲器225中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含用于执行从主机系统205接收到的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是参考图1描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。在一些实例中,存储器系统控制器215可以是与ASIC相关联的处理器的实例。例如,系统200可包含多个存储器裸片。第一存储器裸片(例如,ASIC控制器裸片)可包含接口220、缓冲器225、存储控制器230或其组合,并且可由存储器系统控制器215控制。在一些情况下,第一存储器裸片可另外包含存储器系统控制器215。第二存储器裸片可包含一或多个存储器装置240并且可包含本地控制器(未示出)。存储器裸片可使用总线235彼此通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。例如,如果存储器系统210并行处理来自主机系统205的超过一个存取命令,则这可能是有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215和存储控制器230处描绘命令队列260、缓冲器队列265和存储队列270。然而,队列(如果使用的话)可位于存储器系统210内的任何位置。
在主机系统205与一或多个存储器装置240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。例如,存储器系统210中的系统组件可使用总线235彼此通信,而数据可使用通过数据路径组件的数据路径250代替总线235。存储器系统控制器215可通过与总线235上的数据路径组件通信来控制如何以及是否在主机系统205与存储器装置240之间传送数据(例如,使用特定于存储器系统210的协议)。
如果主机系统205将存取命令传输到存储器系统210,则命令可由接口220例如根据协议(例如,UFS协议或eMMC协议)接收。因此,可将接口220视为存储器系统210的前端。在接收到每个存取命令之后,接口220可例如经由总线235将命令传达到存储器系统控制器215。在一些情况下,可由接口220将每个命令添加到命令队列260以将命令传达到存储器系统控制器215。
存储器系统控制器215可基于或响应于来自接口220的通信而确定是否已接收到存取命令。在一些情况下,存储器系统控制器215可确定已通过从命令队列260中检索到命令而接收到存取命令。在例如已经由存储器系统控制器215从命令队列260中检索到命令之后,可将所述命令从所述命令队列移除。在一些情况下,存储器系统控制器215可使接口220例如经由总线235从命令队列260移除命令。
在确定已接收到存取命令后,存储器系统控制器215就可执行存取命令。对于读取命令,这可意味着从存储器装置240获得数据以及将数据传输到主机系统205。对于写入命令,这可意味着从主机系统205接收数据以及将数据移动到存储器装置240。
在任一情况下,存储器系统控制器215可使用缓冲器225临时存储从主机系统205接收或发送到所述主机系统的数据,以及其它用处。缓冲器225可被视为存储器系统210的中端。在一些情况下,缓冲器地址管理(例如,寻址缓冲器225中的位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)执行。
为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况下,缓冲器队列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中移除条目。
为了处理从主机系统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中且存储在所述缓冲器内时,命令可保持在缓冲器队列265中。如果已完成命令的处理(例如,如果已从缓冲器225传送出对应于存取命令的数据),则可例如通过存储器系统控制器215从缓冲器队列265移除命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外配置成用于一或多个存储器装置240相关联的操作。例如,存储器系统控制器215可以执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、运行状况监测以及与来自主机系统205的命令相关联的逻辑地址(例如,LBA)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。也就是说,主机系统205可以发出指示一或多个LBA的命令,并且存储器系统控制器215可以识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个连续LBA可对应于不连续的物理块地址。在一些情况下,存储控制器230可配置成结合起或代替存储器系统控制器215执行上述操作中的一或多者。在一些情况下,存储器系统控制器215可以执行存储控制器230的功能,并且可以省略存储控制器230。
如参考图1所描述,存储器装置240可包含高速缓存285以改进存储器装置240的性能。高速缓存285可包含可配置成在一或多个模式下操作的块。如本文所描述,在第一模式下操作的块可以比在第二模式下操作的块每存储器单元存储更少的位。例如,在第一模式下操作的块可以将数据存储在SLC中,并且在第二模式下操作的块可以将数据存储在多层级存储器单元(例如MLC、TLC或QLC)中。在一些实例中,在第一模式下操作的块可以将数据存储在MLC中,并且在第二模式下操作的块可以将数据存储在TLC或QLC中。另外或替代地,在第一模式下操作的块可以将数据存储在TLC中,并且在第二模式下操作的块可以将数据存储在QLC中。
在一些情况下,包含在第二模式下操作的大量块的存储器装置240(例如,NAND存储器装置240)可以比包含在第二模式下操作的更少块的存储器装置240更慢地执行操作。因此,存储器装置240可以使用包含在第一模式下操作的块的高速缓存285来处理相对低延迟的程序。例如,高速缓存285可以存储频繁读取的数据或最近读取的数据,以支持相对低延迟的读取操作。另外或替代地,在将数据从高速缓存285移动到其它存储器单元(例如,存储器装置240的更高容量存储器单元,例如TLC)之前,存储器系统210可以首先将数据写入高速缓存285以支持相对低延迟的写入操作。每存储器单元不同数量的位可以支持不同的耐久性,并且对应地,支持不同数量的P/E循环。在一个实例中,在每个相应块的生命周期内,SLC块可以支持100,000个P/E循环,MLC块可以支持30,000个P/E循环,TLC块可以支持8,000个P/E循环,并且QLC块可以支持2,000个P/E循环。因此,根据第一模式操作的块(例如,每存储器单元存储更少位的块)可以支持比其它块更高的TBW。
为了改进性能和耐久性,一些存储器装置240可以使用高速缓存285,所述高速缓存包含配置成在第一模式下静态操作的块,例如静态SLC块275。静态SLC块275可以在块的生命周期内根据第一模式操作,并且可以比存储器装置240中的其它块支持更多的耐久性和可靠性。尽管包含静态SLC块275的高速缓存285可比包含其它块的另一高速缓存存储更少的数据,但高速缓存285可比另一高速缓存持续更长的时间,并且可以支持更多的数据循环(例如,更多的写入操作和更多的TBW)。然而,在一些实例中,与高速缓存285相关联的减少的数据存储可以减少存储器装置240的容量。例如,高速缓存285内的每个静态SLC块275可比存储器装置240的其它块存储相对更少的信息,并且可从存储器装置240的过度配置池(例如,空闲块池)中移除。因此,高速缓存285可以减少过度配置,增加写入放大因子,并降低存储器装置240的性能(例如脏,性能)。
为了支持存储器装置240的耐久性与存储器装置240的充分过度配置之间的平衡,高速缓存285的至少一部分可包含动态块280。每个动态块280可以根据对相应块执行的每个P/E循环的第一模式或第二模式进行编程。在一些情况下,根据第二模式执行的P/E循环可比根据第一模式执行的P/E循环相对更大地降低动态块280的耐久性。例如,如果在第二模式下将数据写入动态块280一或多次,则动态块280支持的P/E循环的总数量(例如,TBW)可以减少到小于在第一模式下操作的块(例如,SLC块)所支持的P/E循环的总数量。一些系统可以处理此类动态块280(例如,在SLC中存储数据与在多层级单元中存储数据之间切换),就好像所述块与在多层级单元中静态存储数据的块支持相同的P/E循环的总数量一样。然而,此类系统可能无法有效地解释动态块280定期或不定期地将数据存储在SLC中所提供的耐久性增益。由于第二模式中的P/E循环而导致的耐久性降低可能是耗损均衡或为防止第二模式下的数据存储而执行的其它程序的产物(例如,第二模式在块上的耗损可能比第一模式更大)。
如本文所描述,存储器系统控制器215可以计算每个动态块280所支持的第一模式中的循环与第二模式中的循环的比率(例如,第二模式中的单个循环可耗损的块的量与计算出的与第一模式中的单个循环相比的比率相对应)。存储器系统控制器215可以利用计算出的比率和进程(例如,算法)来配置高速缓存285以包含动态块280的子集,并确定在使用高速缓存285时是在第一模式还是在第二模式下对每个动态块280进行编程,这可以提供对每个动态块280执行的目标数量的P/E循环,同时保持每个动态块280的目标耐久性。本文描述了用于有效配置和动态分配高速缓存285中的块的过程,并参考图4进一步详细描述了所述过程。
存储器系统控制器215可以使用一或多个静态SLC块275、动态块280、其它块或其任何组合来配置高速缓存285,以实现存储器装置240的性能、耐久性和容量之间的平衡。存储器系统控制器215可识别可在存储器装置240内分配的支持第二模式的块(例如,包含多层级单元的块)的数量,以实现存储器装置240的目标容量(例如,保持充分过度配置和存储容量的阈值容量)。存储器系统控制器215可以将其余块分配给高速缓存285,以改进存储器装置240的性能。存储器系统控制器215可以根据存储器装置240的目标容量和耐久性配置高速缓存285的目标TBW(例如,高速缓存285可以支持的目标数据数量)。在一些实例中,高速缓存285可以分配有第一数量的静态SLC块275和第二数量的动态块280,以支持高速缓存285的目标TBW。
存储器系统控制器215可以为高速缓存285中的每个动态块280配置在第一模式下执行的循环与在第二模式下执行的循环的目标比率。目标比率可以被称为目标循环比率,可对应于第一模式中P/E循环的相应第一目标计数和第二模式中P/E循环的相应第二目标计数。可以为高速缓存285中的每个动态块280计算目标循环比率,以实现高速缓存285的耐久性和性能(例如,目标TBW)与存储器装置240的容量目标之间的平衡。例如,每个动态块280可配置成对于第一百分比的循环在第一模式下操作并且对于第二百分比的循环在第二模式下操作,其中可以计算第一百分比和第二百分比,使得动态块280可以支持目标TBW(例如,高速缓存285、存储器装置240或两者的目标耐久性)。在一些情况下,存储器系统控制器215可以为高速缓存285的每个块配置目标比率,其中对静态SLC块275分配零循环计数的第二模式。在一些实例中,可以在存储器装置240的设计期间配置(例如,预配置)高速缓存285、高速缓存285的目标TBW、目标循环比率或其任何组合。
在一些实例中,可以由存储器系统控制器215或一些其它组件或控制器根据特征化操作(例如,NAND特征化操作)、进程(例如,算法)或两者确定高速缓存285的配置参数。可以计算和确定参数以满足存储器装置240的目标TBW,同时减少高速缓存285内静态SLC块275的分配(例如,最小化静态SLC块275的分配)(例如,在高速缓存285内获得零或接近零的静态SLC块275)。
尽管可以通过在设计时配置目标TBW和目标循环比率(例如,基于或响应于主机系统205的估计使用级别)来改进高速缓存285的耐久性和性能,但是一些主机系统205可以向存储器装置240写入比其它主机系统更多的数据,这可能会影响配置参数。例如,第一主机系统205可以频繁地将数据写入存储器装置240、在存储器装置240上存储相对大量的数据或两者。第二主机系统205可不及第一主机系统205频繁地将数据写入存储器装置240、在存储器装置240上存储比第一主机系统205更少的数据或两者。第一主机系统205对存储器装置240的TBW(例如,实际TBW)可以在特定时间段或参考时间(例如,使用一个月后)高于目标TBW,并且高速缓存285的目标循环计数可不支持第一主机系统205相对较高的使用级别(例如,动态块280在第二模式下的操作频率可显著高于第一模式)。另外或替代地,第二主机系统205对存储器装置240的TBW可以在特定时间段或参考时间小于目标TBW。与基于或响应于存储器装置240的使用级别动态确定目标循环计数相比,实际TBW与目标TBW之间的差可能导致更少的耐久性或更少的容量或两者。
如本文所描述,存储器系统控制器215可以根据存储器装置240的使用级别(例如,在产品运行时期间)动态切换动态块280中的一或多者的模式、调整动态块280中的一或多者的配置目标循环比率或两者。存储器系统控制器215可以跟踪在第一模式下对高速缓存285中的每个动态块280执行的第一数量的P/E循环和在第二模式下对每个动态块280执行的第二数量的P/E循环。另外或替代地,存储器系统控制器215可跟踪对高速缓存285的TBW。在一些实例中,TBW可对应于对高速缓存285中的块执行的P/E循环的总数量。本文包含参考图3可进一步描述针对用于跟踪与高速缓存使用相关联的数据的组件的额外方面。
存储器系统控制器215可以基于或响应于块的目标循环比率而确定是以第一模式还是第二模式对高速缓存285中的每个动态块280进行编程。在一些实例中,存储器系统控制器215可以监测每个动态块280的P/E循环的目标循环比率,以确定是否切换相应动态块280的模式。另外或替代地,存储器系统控制器215可以监测一或多个触发器,以将动态块280从第一模式切换到第二模式或从第二模式切换到第一模式。一或多个触发器可包含存储器装置240的容量满足阈值容量、存储器装置240的容量不满足阈值容量、针对存储器装置240的写入命令、针对存储器装置240的擦除命令或其任何组合。
在一个实例中,如果存储器装置240存储数据的容量低于存储器装置240的阈值容量,则存储器装置240或存储器系统控制器215可以触发高速缓存285中的一或多个动态块280从第一模式切换到第二模式(例如,增加存储器装置240的容量以满足阈值容量)。如果存储器装置240存储数据的容量超过阈值容量,则存储器装置240或存储器系统控制器215可以触发高速缓存285中的一或多个动态块280从第二模式切换到第一模式(例如,提高性能同时又满足阈值容量)。另外或替代地,为存储器装置240接收的每个写入命令或擦除命令可以触发存储器系统控制器215以选择一或多个动态块280切换模式。例如,如果命令指示将数据写入存储器装置240,则存储器系统控制器215可以选择一或多个动态块280从第一模式切换到第二模式。如果命令指示从存储器装置240擦除数据,则存储器系统控制器215可以选择一或多个动态块280从第二模式切换到第一模式。
存储器系统控制器215可以根据一或多个动态块280的跟踪循环比率和目标循环比率,选择一或多个动态块280从第一模式切换到第二模式或从第二模式切换到第一模式。存储器系统控制器215可以识别在循环比率上落后的第一组一或多个动态块280。例如,在第一模式下执行的循环与在第二模式下执行的循环的比率可以小于第一组动态块280中每个块的目标比率。存储器系统控制器215可以识别在循环比率上领先的第二组一或多个动态块280。例如,在第一模式下执行的循环与在第二模式下执行的循环的比率可能大于第二组动态块280中的每个块的目标比率。如果存储器系统控制器215识别将动态块280从第二模式切换到第一模式的触发器,则存储器系统控制器215可以从第一组中选择一或多个动态块280以在第一模式下编程。如果存储器系统控制器215识别将动态块280从第一模式切换到第二模式的触发器,则存储器系统控制器215可以从第二组中选择一或多个动态块280以在第二模式下编程。这种选择程序可以允许动态块280趋向于目标循环比率,支持更有效的动态块280的使用。
在一些实例中,存储器系统控制器215可以基于或响应于对高速缓存285的TBW(例如,主机系统205对高速缓存285的实际TBW),定期(或不定期地)确定是否调整动态块280的目标循环比率。对高速缓存285的TBW可对应于写入在第一模式下操作的单元(例如,静态SLC块275和作为SLC块操作的动态块280)的数据,其可支持高速缓存285的相对低延迟操作。如果对高速缓存285的实际TBW大于高速缓存285的目标TBW,则对于动态块280中的一或多者,存储器系统控制器215可以增加在第一模式下执行的循环与在第二模式下执行的循环的目标比率。因此,存储器系统控制器215可以在高速缓存285中以第一模式编程相对更多动态块280,以处理主机系统205的增加的耗损,这可以提供更长的高速缓存285的使用寿命,同时支持相对更较的工作负载(例如,与未调整循环目标相比)。如果对高速缓存285的实际TBW小于高速缓存285的目标TBW,则存储器系统控制器215可以降低动态块280中的一或多者在第一模式下执行的循环与在第二模式下执行的循环的目标比率。因此,存储器系统控制器215可以在高速缓存285中以第二模式编程相对更多的动态块280,以解释高速缓存285经历了比预期相对更低的工作负载(例如,比高速缓存285的目标TBW解释的工作负载低)。在第二模式下操作的动态块280的数量的增加可以支持存储器装置240的总容量的增加,以及存储器装置240对于例如耗损均衡、垃圾收集等操作(例如,脏性能)的增加的过度配置和改进的性能,同时仍然满足高速缓存285的实际工作负载。通过基于或响应于高速缓存285的实际TBW来调整一或多个循环目标,存储器系统控制器215可以根据高速缓存285、存储器装置240或两者的使用级别改进高速缓存285中的块的分配,以平衡存储器装置240的耐久性、性能和容量。
另外或替代地,存储器系统控制器215可以根据动态块280的耗损均衡状态来确定是否调整动态块280的目标循环比率。例如,可以根据对每个动态块280执行的擦除数量来跟踪耗损均衡。在一些实例中,可通过应用在第一模式下执行的擦除与在第二模式下执行的擦除之间的比率来计算调整的耗损均衡状态,以解释在第二模式下操作的动态块280上增加的耗损。因此,动态块280中的一或多者的耗损均衡过程可以向存储器系统控制器215指示一或多个块的擦除数量超过或低于阈值数量,其中可以计算所述数量以解释在第一模式和第二模式下执行的擦除。存储器系统控制器215因此可以根据指示的耗损均衡状态调整一或多个动态块280的目标循环比率。
如本文所描述的存储器装置240可以配置有高速缓存285、高速缓存285的目标TBW以及高速缓存285内每个动态块280在第一模式下执行的循环和在第二模式下执行的循环的目标比率(例如,在设计时)。存储器系统控制器215可以监测高速缓存285、存储器装置240或两者的使用级别(例如,在运行时),以动态调整动态块280的分配、动态块280的目标循环比率或两者,以改进存储器装置240的性能和过度配置。
图3示出根据本文公开的实例支持高速缓存块预算技术的存储器系统300的实例。在一些实例中,存储器系统300可以实施系统100和200的方面。例如,存储器系统300可包含存储器系统控制器315和存储器装置340,其可以是参考图1和2描述的存储器系统控制器215和存储器装置240的实例或包含其方面。
尽管为了说明清楚起见,存储器系统300的各个组件被示为单独的,但是可以任何组合来组合存储器系统300的组件,或可以添加额外的组件。此外,组件的位置可不同于所示(例如,组件可包含在存储器系统控制器315中,或可包含在存储控制器中,或可包含在存储器装置340中等)。在一些实例中,被描述为由一个组件进行的操作可另外或替代地由不同组件进行。在一些实例中,描述为存储在一个组件中或由一个组件配置的一或多个参数可以附加或替代地存储在不同组件中或由不同组件配置(例如,参数可以存储在存储器系统控制器315的组件内、高速缓存355内、存储器系统300的硬盘驱动器内或存储器系统300的其它位置)。
存储器系统300可包含存储器系统控制器315、存储器装置340和用于在存储器系统控制器315与存储器装置340之间传达命令的连接305。存储器系统控制器315或其各种组件可配置成支持存储器装置340中的高速缓存355的高速缓存块预算技术。例如,存储器系统控制器315可包含P/E循环计数组件320、P/E循环目标组件325、周期组件330、TBW组件335、逻辑组件345或其任何组合。这些组件中的每一者可以经由一或多个总线310直接或间接地彼此通信。存储器装置340可包含高速缓存355,其可以是如参考图2描述的高速缓存285的实例。高速缓存355可包含配置成根据第一模式(例如,使用SLC块)静态操作的第一块子集、配置成在第一模式下操作与在第二模式(例如,使用多层级存储器单元块)下操作之间动态切换的第二块子集(例如,动态块350)、一或多个其它块子集或其任何组合。存储器系统300可以支持高速缓存355中的动态块350的第一模式、第二模式、一或多个其它编程模式或其组合。
如本文包含参考图2所描述,存储器系统控制器315可以使用高速缓存355、高速缓存355的目标TBW、高速缓存355中每个动态块350在第一模式下执行的循环与在第二模式下执行的循环的目标比率或其任何组合来配置存储器装置340。在一些实例中,目标比率可以对应于每个动态块350的第一模式的第一目标循环计数和第二模式的第二目标循环计数。P/E循环目标组件325可以配置和存储动态块350的目标循环比率和目标循环计数(例如,与特定动态块350的相关联,例如动态块标识符)。在一些情况下,动态块350中的每一者首先可配置有相同的目标循环比率。存储器装置340的目标TBW可由TBW组件335配置和存储。另外或替代地,TBW组件335可(例如,基于或响应于主机系统的估计使用级别)配置存储器装置340的目标容量和目标TBW。存储器系统控制器315可以经由连接305(例如,使用连接305发送的命令信令)向存储器装置340指示高速缓存355的配置,包含配置参数。在一些实例中,可以使用高速缓存355和对应参数配置(例如,预配置)存储器装置340。
当主机系统(例如,在产品运行时期间)存取存储器装置340时,P/E循环计数组件320可以跟踪高速缓存355中每个动态块350在第一模式下执行的循环与在第二模式下执行的循环的比率。存储器系统控制器315(例如,使用P/E循环计数组件320)可以存储为每个动态块350执行的循环比率,并在存储器装置340的整个生命周期内更新存储的比率。另外或替代地,在运行时期间,TBW组件335可以跟踪对高速缓存355的TBW。存储器系统控制器315(例如,使用TBW组件335)可存储对高速缓存355的TBW(例如,实际TBW)和为高速缓存355配置的目标TBW。在一些实例中,TBW组件335可以基于或响应于为每个动态块350执行的循环数量来确定对高速缓存355的TBW,所述循环数量可由P/E循环计数组件320跟踪。
周期组件330可以确定用于监测且在一些实例中更新高速缓存355中动态块350的目标循环比率的周期或其它时间表(例如,非周期时间表)。周期可以基于或响应于主机系统的估计使用级别来确定。如果周期相对较短,则存储器系统控制器315可以解释不规则数据(例如,可能无法准确表示主机系统的典型使用的数据)。因此,周期组件330可以选择为获得准确的主机系统数据使用提供充分时间的周期(例如,周期可以是几天、几周、几个月或一些其它持续时间)。
如参考图2所描述,用于将动态块350从第一模式切换到第二模式或从第二模式切换到第一模式的一或多个触发器可以由逻辑组件345识别。例如,逻辑组件可以识别是否接收到针对存储器装置340的写入命令,是否接收到针对存储器装置340的擦除命令,存储器装置340的容量是高于还是低于阈值容量,高速缓存355的容量是高于还是低于阈值容量,或其任何组合。
逻辑组件345可以选择动态块350中的一或多者,以响应于识别一或多个触发器并根据一或多个动态块350的循环计数,从第一模式切换到第二模式或从第二模式切换到第一模式,如参考图2所描述。逻辑组件345可以从P/E循环计数组件320接收指示每个动态块350在第一模式下的第一循环计数和在第二模式下的第二循环计数的信令(例如,当前循环计数)。逻辑组件345可以从P/E循环目标组件325接收指示每个动态块350的目标循环比率的信令。逻辑组件345可以将周期间隔内的第一循环计数和第二循环计数与目标循环比率进行比较,以识别与相比目标循环比率第一模式中的循环与第二模式中的循环的较小比率相关联的第一组动态块350,以及与相比目标循环比率第一模式中的循环与第二模式中的循环的较大比率相关联的第二组动态块350。
如果逻辑组件345确定可以在第一模式下编程相对更多的动态块350(例如,响应于识别触发器),则逻辑组件345可以从第一组中选择一或多个动态块350。如果逻辑组件345确定可以在第二模式下编程相对更多的动态块350(例如,响应于识别触发器),则逻辑组件345可以从第二组中选择一或多个动态块350。逻辑组件345可以通过连接305将所选块的指示和用于对所选块进行编程的相应模式发送到存储器装置340。
如参考图2所描述,逻辑组件345可以根据存储器装置340和高速缓存355的使用级别来调整一或多个动态块350的循环目标。逻辑组件345可以根据周期组件330指示的周期,以一或多个间隔将对高速缓存355的当前TBW与高速缓存355的调整目标TBW(例如,第二阈值TBW)进行比较。逻辑组件345可以从TBW组件335接收指示高速缓存355的当前TBW和第二阈值TBW的信令。在一些实例中,TBW组件335可以基于或响应于高速缓存355的目标TBW(例如,第一阈值TBW)和周期来计算第二阈值TBW。在一个实例中,如果高速缓存355的生命周期为三年且周期为六个月,则第一间隔(例如,使用高速缓存355的前六个月)的第二阈值TBW可以是高速缓存355的目标TBW的六分之一。
如果在周期间隔期间对高速缓存355的TBW小于高速缓存355的第二阈值TBW,则逻辑组件345可以向P/E循环目标组件325指示对于一或多个动态块350第一模式的减少的第一目标计数和第二模式的增加的第二目标计数。如果在周期间隔期间对高速缓存355的TBW大于高速缓存355的第二阈值TBW,则逻辑组件345可以向P/E循环目标组件325指示对于一或多个动态块350第一模式的增加的第一目标计数和第二模式的减少的第二目标计数。P/E循环目标组件325可以相应地存储更新的目标循环计数。替代地,逻辑组件345可以基于或响应于在周期间隔期间对高速缓存355的TBW相对接近高速缓存355的第二阈值TBW(例如,在错误阈值内)而确定不更新目标循环计数。
另外或替代地,逻辑组件345可以基于或响应于在每个周期间隔内对动态块350执行的擦除数量来确定(例如,跟踪)动态块350的耗损均衡状态,如参考图2所描述。逻辑组件345可以响应于确定耗损均衡状态而选择一或多个动态块350以根据第一模式或第二模式进行编程。
因此,存储器系统控制器315可包含一或多个组件,用于用高速缓存355、高速缓存355的目标TBW以及高速缓存355内每个动态块350的目标循环比率配置存储器装置340。存储器系统控制器315可包含一或多个组件,用于动态切换对动态块350进行编程的模式、调整动态块350的目标循环比率或两者,以改进性能和过度配置。
图4示出根据本文公开的实例支持高速缓存块预算技术的流程图400的实例。流程图400可示出可由系统100(或其一或多个组件)、系统200(或其一或多个组件)或存储器系统300(或其一或多个组件)实施的过程,如参考图1-3所描述。流程图400可以示出用于管理高速缓存内的块以改进高速缓存和对应存储器装置的性能、耐久性和容量的过程,如参考图1-3所描述。
流程图400的各个方面可以由控制器(例如,存储器系统控制器)和其它组件来实施。另外或替代地,流程图400的各个方面可以实施为存储在存储器中的指令(例如,存储在与存储器装置、存储器系统控制器或两者耦合的存储器中的固件)。例如,如果指令由控制器(例如,存储器系统控制器或存储控制器)执行,则可使控制器执行流程图400的操作。可实施流程图400的替代实例,其中一些操作以与所述不同的顺序执行或根本不执行。在一些情况下,操作可包含下文未提及的特征,或可添加额外操作。
在405,用高速缓存配置存储器装置。例如,存储器装置可以从存储器系统控制器接收高速缓存的配置。可以在控制器或存储器装置的其它组件处接收配置。配置可以指示高速缓存中配置成在第一模式下静态操作的第一块子集,以及高速缓存中配置成在第一模式下操作与在第二模式下操作之间动态切换的第二块子集。如参考图1-3所描述,在第一模式下操作的块可配置成每存储器单元存储第一数量的位,并且在第二模式下操作的块可配置成每存储器单元存储比每存储器单元的第一数量的位更多的第二数量的位。
在410,可以根据第一模式的相应第一目标计数和第二模式的相应第二目标计数,为高速缓存中的第二块子集(例如,动态块)中的每个块分配在第一模式下执行的循环与在第二模式下执行的循环的目标比率。可以基于或响应于高速缓存的阈值TBW来配置每个块的目标循环比率。
在415,可以对高速缓存中第二块子集中的每个块在第一模式下执行的循环与在第二模式下执行的循环的相应比率进行跟踪、存储或两者。在一些实例中,当主机系统使用存储器装置时,存储器系统控制器可以跟踪和存储相应比率。
在420,可以确定是否设置用于将第二块子集中的块从第一模式切换到第二模式的第一触发器。第一触发器可以是存储器装置的容量未能满足阈值容量、指示将数据写入存储器装置的命令或两者。在425,如果设置了第一触发器(例如,将触发器位设置为指示存储器系统检测到第一触发器的值),则可以确定(例如,在415处跟踪的)块的比率是否大于所述块的相应目标比率。例如,可以确定所述块在第一模式下执行的P/E循环的数量是否大于在第一模式下的P/E循环的目标数量。
在430,如果块的相应比率大于目标比率(例如,在第一模式下执行的P/E循环与在第二模式下执行的P/E循环的比率大于目标比率),则可以选择所述块。例如,可以响应于识别第一触发器而从第二块子集中选择块以从第一模式切换到第二模式。在一些实例中,存储器系统控制器可以选择块并在后续P/E循环中在第二模式下对所述块进行编程。在435,如果块的相应比率小于目标比率(例如,在第一模式下执行的P/E循环与在第二模式下执行的P/E循环的比率小于目标比率),则可以选择另一个块,并且所述块可以在一或多个后续循环中保持在第一模式。
在440,如果未设置第一触发器(例如,如果未识别第一触发器),则可以确定是否设置了将第二块子集中的块从第二模式切换到第一模式的第二触发器。第二触发器可以是存储器装置的容量满足阈值容量、指示从存储器装置删除数据的命令或两者。
在445,如果设置了第二触发器(例如,如果识别了第二触发器),则可以确定(例如,如在415处跟踪的)块的比率是否小于块的相应目标比率。例如,可以确定在第一模式中执行的P/E循环与在第二模式中执行的P/E循环的比率是否小于目标比率。
在450,如果块的相应比率小于目标比率,则可以选择所述块。例如,可以响应于识别第一触发器而从第二块子集中选择块以从第二模式切换到第一模式。在一些实例中,存储器系统控制器可以选择块并在后续P/E循环中在第一模式下对所述块进行编程。在455,如果块的相应比率大于目标比率,则可以选择另一个块,并且所述块可以在一或多个后续循环中保持在第二模式。
在460,可以确定周期是否已过期。在一些实例中,周期可以是配置的周期。如参考图3所描述,可通过存储器系统控制器的周期组件对周期进行配置、存储或两者。如果周期未过期,则可重复所述过程。例如,存储器系统控制器可以在415继续跟踪动态块的循环的相应比率。
在465,如果周期已过期,则可以确定高速缓存的当前TBW是否小于高速缓存的第二阈值TBW。可以根据为高速缓存配置的阈值TBW和与周期相关联的定时来计算第二阈值TBW。例如,如果周期在存储器系统的整个生命周期内过期六次,则在第一时间周期过期时的第二阈值TBW可能是高速缓存的阈值TBW的六分之一。在第二时间周期过期时的第二阈值TBW可能是高速缓存的阈值TBW的六分之二。在一些实例中,如参考图3所描述,存储器系统控制器可以配置、跟踪或存储高速缓存的TBW、高速缓存的阈值TBW、高速缓存的第二阈值TBW或其任何组合。
在470,如果高速缓存的TBW小于高速缓存的第二阈值TBW,则可以减少第二块子集中的至少一个块的第一模式的第一目标计数,并且可以增加第二块子集中的至少一个块的第二模式的第二目标计数。因此,对于至少一个动态块,在第一模式下执行的循环与在第二模式下执行的循环的目标比率可以减少。在一些实例中,如参考图3所描述,存储器系统控制器的P/E循环目标组件可以调整至少一个块的目标比率,并可以存储调整后的比率。
在475,如果高速缓存的TBW大于或等于高速缓存的第二阈值TBW,则可以确定高速缓存的当前TBW是否大于高速缓存的第三阈值TBW。在一些实例中,第三阈值TBW可以与第二阈值TBW相同。另外或替代地,第三TBW可以不同于(例如,大于)第二阈值TBW,使得如果高速缓存的实际TBW在高速缓存的第二阈值TBW与第三阈值TBW之间的范围内,则可以不调整目标。可以根据高速缓存的阈值TBW以及周期来计算第三阈值TBW。
在480,如果高速缓存的TBW大于高速缓存的第三阈值TBW,则可以增加第二块子集中的至少一个块的第一模式的第一目标计数,并且可以减少第二块子集中的至少一个块的第二模式的第二目标计数。因此,对于至少一个动态块,在第一模式下执行的循环与在第二模式下执行的循环的目标比率可以增加。
如果高速缓存的实际TBW小于或等于高速缓存的第三阈值TBW,则可以保持循环的目标比率。例如,存储器系统控制器可以基于或响应于高速缓存的实际TBW在高速缓存的目标TBW的阈值范围内而避免调整一或多个目标比率。在调整或确定不调整目标比率时,存储器系统控制器可以在415继续跟踪动态块的循环的相应比率。
图5示出根据本文公开的实例支持高速缓存块预算技术的存储器系统520的框图500。存储器系统520可以是如参考图1-3描述的存储器系统110、210或300的方面的实例。存储器系统520或其各种组件可以是用于执行本文描述的高速缓存块预算技术的各个方面的构件的实例。例如,存储器系统520可包含高速缓存配置组件525、循环比率组件530、块选择组件535、目标循环比率组件540、触发器组件545、TBW组件550或其任何组合。这些组件中的每一者可直接或间接地(例如经由一或多个总线)彼此通信。
高速缓存配置组件525可配置为或以其它方式支持用于进行以下操作的构件:用高速缓存配置存储器装置,所述高速缓存包含配置成在第一模式下静态操作的第一块子集和配置成在第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在第二模式下操作的第二块配置成每存储器单元存储大于第一数量的位的第二数量的位。循环比率组件530可配置为或以其它方式支持用于进行以下操作的构件:对于第二块子集中的每个块,存储在第一模式下执行的循环与在第二模式下执行的循环的相应比率。块选择组件535可配置为或以其它方式支持用于进行以下操作的构件:从第二块子集中选择块,以响应于触发器且至少部分地基于所述块的相应比率而从第一模式切换到第二模式或从第二模式切换到第一模式。
在一些实例中,目标循环比率组件540可配置为或以其它方式支持用于进行以下操作的构件:根据第一模式的相应第一目标计数和第二模式的相应第二目标计数,基于(例如,响应于)高速缓存的阈值TBW,为第二块子集中的每个块分配在第一模式下执行的循环与在第二模式下执行的循环的相应目标比率。
在一些实例中,触发器组件545可配置为或以其它方式支持用于进行以下操作的构件:识别将所述块从第一模式切换到第二模式的触发器。在一些实例中,循环比率组件530可配置为或以其它方式支持用于进行以下操作的构件:基于(例如,响应于)识别触发器来确定所述块的相应比率大于所述块的相应目标比率,其中基于(例如,响应于)所述确定来选择所述块。在一些实例中,触发器包含存储器装置的当前容量未能满足阈值容量、指示将数据写入存储器装置的命令或两者。
在一些实例中,触发器组件545可配置为或以其它方式支持用于进行以下操作的构件:识别将所述块从第二模式切换到第一模式的触发器。在一些实例中,循环比率组件530可配置为或以其它方式支持用于进行以下操作的构件:基于(例如,响应于)识别触发器来确定所述块的相应比率小于所述块的相应目标比率,其中基于(例如,响应于)所述确定来选择所述块。在一些实例中,触发器包含存储器装置的当前容量满足阈值容量、指示从存储器装置删除数据的命令或两者。
在一些实例中,TBW组件550可配置为或以其它方式支持用于进行以下操作的构件:将在第一时间高速缓存的当前TBW与在第一时间高速缓存的第二阈值TBW进行比较,所述第二阈值TBW基于高速缓存的阈值TBW和所述第一时间(例如,使用高速缓存的阈值TBW和所述第一时间计算)。在一些实例中,目标循环比率组件540可配置为或以其它方式支持用于进行以下操作的构件:基于(例如,响应于)所述比较修改第二块子集中的至少一个块的目标比率。
在一些实例中,在第一时间高速缓存的当前TBW小于高速缓存的第二阈值TBW,并且目标循环比率组件540可配置为或以其它方式支持用于进行以下操作的构件:通过基于(例如,响应于)当前TBW小于第二阈值TBW而减少第二块子集中的至少一个块的第一模式的第一目标循环计数以及基于(例如,响应于)当前TBW小于第二阈值TBW而增加第二块子集中的至少一个块的第二模式的第二目标循环计数,来修改目标循环比率。
在一些实例中,在第一时间高速缓存的当前TBW大于高速缓存的第二阈值TBW,并且目标循环比率组件540可配置为或以其它方式支持用于进行以下操作的构件:通过基于(例如,响应于)当前TBW大于第二阈值TBW而增加第二块子集中的至少一个块的第一模式的第一目标计数以及基于(例如,响应于)当前TBW大于第二阈值TBW而减少第二块子集中的至少一个块的第二模式的第二目标计数,来修改目标循环比率。在一些实例中,根据配置的周期执行所述比较。
在一些实例中,高速缓存配置组件525可配置为或以其它方式支持用于进行以下操作的构件:基于(例如,响应于)存储器装置的阈值容量,将第一块子集和第二块子集分配给高速缓存。在一些实例中,高速缓存配置组件525可配置为或以其它方式支持用于进行以下操作的构件:基于(例如,响应于)高速缓存的阈值TBW,将块分配给第一块子集或第二块子集。
在一些实例中,在第一模式下操作的第一块将第一数据存储在SLC中,并且在第二模式下操作的第二块将第二数据存储在MLC、TLC或QLC中。在一些实例中,在第一模式下操作的第一块将第一数据存储在MLC中,并且在第二模式下操作的第二块将第二数据存储在TLC或QLC中。在一些实例中,在第一模式下操作的第一块将第一数据存储在TLC中,并且在第二模式下操作的第二块将第二数据存储在QLC中。在一些实例中,存储器装置包含NAND存储器装置。
图6示出流程图,示出根据本文公开的实例支持高速缓存块预算技术的方法600。方法600的操作可以由如本文描述的存储器系统或其组件来实施。例如,方法600的操作可由如参考图1-5描述的存储器系统来执行。在一些实例中,存储器系统可以执行指令集以控制装置的功能元件从而执行所描述功能。另外或替代地,存储器系统可以使用专用硬件来执行所描述的功能的各方面。
在605,所述方法可以包含用高速缓存配置存储器装置,所述高速缓存包含配置成在第一模式下静态操作的第一块子集和配置成在第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在第二模式下操作的第二块配置成每存储器单元存储大于第一数量的位的第二数量的位。605的操作可以根据本文公开的实例来执行。在一些实例中,605的操作的方面可以由如参考图5描述的高速缓存配置组件525来执行。
在610,所述方法可包含对于第二块子集中的每个块,存储在第一模式下执行的循环与在第二模式下执行的循环的相应比率。610的操作可以根据本文公开的实例来执行。在一些实例中,610的操作的方面可以由如参考图5描述的循环比率组件530来执行。
在615,所述方法可以包含从第二块子集中选择块,以响应于触发器且至少部分地基于所述块的相应比率而从第一模式切换到第二模式或从第二模式切换到第一模式。615的操作可以根据本文公开的实例来执行。在一些实例中,615的操作的方面可以由如参考图5描述的块选择组件535来执行。
在一些实例中,如本文描述的设备可执行一或多种方法,例如方法600。所述设备可包含用于进行以下操作的特征、电路、逻辑、构件或指令(例如,存储处理器可执行指令的非暂时性计算机可读媒体):用高速缓存配置存储器装置,所述高速缓存包含配置成在第一模式下静态操作的第一块子集和配置成在第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在第二模式下操作的第二块配置成每存储器单元存储大于第一数量的位的第二数量的位;对于第二块子集中的每个块,存储在第一模式下执行的循环与在第二模式下执行的循环的相应比率;以及从第二块子集中选择块,以响应于触发器且基于所述块的相应比率而从第一模式切换到第二模式或从第二模式切换到第一模式。
本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:根据第一模式的相应第一目标计数和第二模式的相应第二目标计数,基于高速缓存的阈值TBW,为第二块子集中的每个块分配在第一模式下执行的循环与在第二模式下执行的循环的相应目标比率。
本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:识别将所述块从第一模式切换到第二模式的触发器,并基于识别触发器来确定所述块的相应比率可能大于所述块的相应目标比率,其中可基于所述确定来选择所述块。在本文描述的方法600和设备的一些实例中,触发器包含存储器装置的当前容量未能满足阈值容量、指示将数据写入存储器装置的命令或两者。
本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:识别将所述块从第二模式切换到第一模式的触发器,并且基于识别触发器来确定所述块的相应比率可能小于所述块的相应目标比率,其中可基于所述确定来选择所述块。在本文描述的方法600和设备的一些实例中,触发器包含存储器装置的当前容量满足阈值容量、指示从存储器装置删除数据的命令或两者。
本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:将在第一时间高速缓存的当前TBW与在第一时间高速缓存的第二阈值TBW进行比较,所述第二阈值TBW基于高速缓存的阈值TBW和所述第一时间;以及基于所述比较修改第二块子集中的至少一个块的目标比率。
在本文描述的方法600和设备的一些实例中,在第一时间高速缓存的当前TBW可小于高速缓存的第二阈值TBW,并且修改目标循环比率可包含:基于当前TBW小于第二阈值TBW而减少第二块子集中的至少一个块的第一模式的第一目标循环计数,以及基于当前TBW小于第二阈值TBW而增加第二块子集中的至少一个块的第二模式的第二目标循环计数。
在本文描述的方法600和设备的一些实例中,在第一时间高速缓存的当前TBW可大于高速缓存的第二阈值TBW,并且修改目标循环比率可包含:基于当前TBW大于第二阈值TBW而增加第二块子集中的至少一个块的第一模式的第一目标计数,以及基于当前TBW大于第二阈值TBW而减少第二块子集中的至少一个块的第二模式的第二目标计数。在本文描述的方法600和设备的一些实例中,可以根据配置的周期执行所述比较。
本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:基于存储器装置的阈值容量,将第一块子集和第二块子集分配给高速缓存。本文描述的方法600和设备的一些实例可进一步包含用于进行以下操作的操作特征、电路、逻辑、构件或指令:基于高速缓存的阈值TBW,将块分配给第一块子集或第二块子集。
在本文描述的方法600和设备的一些实例中,在第一模式下操作的第一块将第一数据存储在SLC中,并且在第二模式下操作的第二块将第二数据存储在MLC、TLC或QLC中;在第一模式下操作的第一块将第一数据存储在MLC中,并且在第二模式下操作的第二块将第二数据存储在TLC或QLC中;或在第一模式下操作的第一块将第一数据存储在TLC中,并且在第二模式下操作的第二块将第二数据存储在QLC中。
在本文描述的方法600和设备的一些实例中,存储器装置包含NAND存储器装置。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,则组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当…时”、“基于”或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
术语“响应于”可以指由于先前条件或动作而至少部分地(如果不是完全地)发生的一个条件或动作。例如,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。在一些实例中,可进行第一条件或动作,且可作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件进行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其它条件或动作而进行。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(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 (25)
1.一种设备,其包括:
存储器装置;以及
控制器,其与所述存储器装置耦合且配置成使所述设备进行以下操作:
用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;
对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及
从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
2.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
根据所述第一模式的相应第一目标计数和所述第二模式的相应第二目标计数,至少部分地基于所述高速缓存的阈值总写入字节TBW,为所述第二块子集中的每个块分配在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应目标比率。
3.根据权利要求2所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
识别将所述块从所述第一模式切换到所述第二模式的所述触发器;以及
至少部分地基于识别所述触发器来确定所述块的所述相应比率大于所述块的所述相应目标比率,其中至少部分地基于所述确定来选择所述块。
4.根据权利要求3所述的设备,其中所述触发器包括所述存储器装置的当前容量未能满足阈值容量、指示将数据写入所述存储器装置的命令或两者。
5.根据权利要求2所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
识别将所述块从所述第二模式切换到所述第一模式的所述触发器;以及
至少部分地基于识别所述触发器来确定所述块的所述相应比率小于所述块的所述相应目标比率,其中至少部分地基于所述确定来选择所述块。
6.根据权利要求5所述的设备,其中所述触发器包括所述存储器装置的当前容量满足阈值容量、指示从所述存储器装置删除数据的命令或两者。
7.根据权利要求2所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
将在第一时间所述高速缓存的当前TBW与在所述第一时间所述高速缓存的第二阈值TBW进行比较,所述第二阈值TBW至少部分地基于所述高速缓存的所述阈值TBW和所述第一时间;以及
至少部分地基于所述比较修改所述第二块子集中的至少一个块的目标比率。
8.根据权利要求7所述的设备,其中:
在所述第一时间所述高速缓存的所述当前TBW小于所述高速缓存的所述第二阈值TBW;并且
配置成使所述设备修改所述目标比率的所述控制器配置成使所述设备进行以下操作:
至少部分地基于所述当前TBW小于所述第二阈值TBW,减少所述第二块子集中的所述至少一个块的所述第一模式的第一目标计数;以及
至少部分地基于所述当前TBW小于所述第二阈值TBW,增加所述第二块子集中的所述至少一个块的所述第二模式的第二目标计数。
9.根据权利要求7所述的设备,其中:
在所述第一时间所述高速缓存的所述当前TBW大于所述高速缓存的所述第二阈值TBW;并且
配置成使所述设备修改所述目标比率的所述控制器配置成使所述设备进行以下操作:
至少部分地基于所述当前TBW大于所述第二阈值TBW,增加所述第二块子集中的所述至少一个块的所述第一模式的第一目标计数;以及
至少部分地基于所述当前TBW大于所述第二阈值TBW,减少所述第二块子集中的所述至少一个块的所述第二模式的第二目标计数。
10.根据权利要求7所述的设备,其中根据配置的周期执行所述比较。
11.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
至少部分地基于所述存储器装置的阈值容量,将所述第一块子集和所述第二块子集分配给所述高速缓存。
12.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备进行以下操作:
至少部分地基于所述高速缓存的阈值总写入字节TBW,将块分配给所述第一块子集或所述第二块子集。
13.根据权利要求1所述的设备,其中:
在所述第一模式下操作的所述第一块将第一数据存储在单层级单元SLC中,并且在所述第二模式下操作的所述第二块将第二数据存储在多层级单元MLC、三层级单元TLC或四层级单元QLC中;
在所述第一模式下操作的所述第一块将第一数据存储在MLC中,并且在所述第二模式下操作的所述第二块将第二数据存储在TLC或QLC中;或
在所述第一模式下操作的所述第一块将第一数据存储在TLC中,并且在所述第二模式下操作的所述第二块将第二数据存储在QLC中。
14.根据权利要求1所述的设备,其中所述存储器装置包括“与非”存储器装置。
15.一种存储代码的非暂时性计算机可读媒体,所述非暂时性计算机可读媒体包括指令,所述指令在由电子装置的处理器执行时使所述电子装置进行以下操作:
用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;
对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及
从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
16.根据权利要求15所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
根据所述第一模式的相应第一目标计数和所述第二模式的相应第二目标计数,至少部分地基于所述高速缓存的阈值总写入字节TBW,为所述第二块子集中的每个块分配在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应目标比率。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
识别将所述块从所述第一模式切换到所述第二模式的所述触发器;以及
至少部分地基于识别所述触发器来确定所述块的所述相应比率大于所述块的所述相应目标比率,其中至少部分地基于所述确定来选择所述块。
18.根据权利要求16所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
识别将所述块从所述第二模式切换到所述第一模式的所述触发器;以及
至少部分地基于识别所述触发器来确定所述块的所述相应比率小于所述块的所述相应目标比率,其中至少部分地基于所述确定来选择所述块。
19.根据权利要求16所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
将在第一时间所述高速缓存的当前TBW与在所述第一时间所述高速缓存的第二阈值TBW进行比较,所述第二阈值TBW至少部分地基于所述高速缓存的所述阈值TBW和所述第一时间;以及
至少部分地基于所述比较修改所述第二块子集中的至少一个块的目标比率。
20.根据权利要求19所述的非暂时性计算机可读媒体,其中:
在所述第一时间所述高速缓存的所述当前TBW小于所述高速缓存的所述第二阈值TBW;并且
使所述电子装置修改所述目标比率的所述指令在由所述电子装置的所述处理器执行时使所述电子装置进行以下操作:
至少部分地基于所述当前TBW小于所述第二阈值TBW,减少所述第二块子集中的所述至少一个块的所述第一模式的第一目标计数;以及
至少部分地基于所述当前TBW小于所述第二阈值TBW,增加所述第二块子集中的所述至少一个块的所述第二模式的第二目标计数。
21.根据权利要求19所述的非暂时性计算机可读媒体,其中:
在所述第一时间所述高速缓存的所述当前TBW大于所述高速缓存的所述第二阈值TBW;并且
使所述电子装置修改所述目标比率的所述指令在由所述电子装置的所述处理器执行时使所述电子装置进行以下操作:
至少部分地基于所述当前TBW大于所述第二阈值TBW,增加所述第二块子集中的所述至少一个块的所述第一模式的第一目标计数;以及
至少部分地基于所述当前TBW大于所述第二阈值TBW,减少所述第二块子集中的所述至少一个块的所述第二模式的第二目标计数。
22.根据权利要求15所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
至少部分地基于所述存储器装置的阈值容量,将所述第一块子集和所述第二块子集分配给所述高速缓存。
23.根据权利要求15所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置进行以下操作:
至少部分地基于所述高速缓存的阈值总写入字节TBW,将块分配给所述第一块子集或所述第二块子集。
24.一种由存储器系统执行的方法,其包括:
用高速缓存配置所述存储器装置,所述高速缓存包括配置成在第一模式下静态操作的第一块子集和配置成在所述第一模式下操作与在第二模式下操作之间动态切换的第二块子集,其中在所述第一模式下操作的第一块配置成每存储器单元存储第一数量的位,并且在所述第二模式下操作的第二块配置成每存储器单元存储大于所述第一数量的位的第二数量的位;
对于所述第二块子集中的每个块,存储在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应比率;以及
从所述第二块子集中选择块,以响应于触发器且至少部分地基于所述块的所述相应比率而从所述第一模式切换到所述第二模式或从所述第二模式切换到所述第一模式。
25.根据权利要求24所述的方法,其进一步包括:
根据所述第一模式的相应第一目标计数和所述第二模式的相应第二目标计数,至少部分地基于所述高速缓存的阈值总写入字节TBW,为所述第二块子集中的每个块分配在所述第一模式下执行的循环与在所述第二模式下执行的循环的相应目标比率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/397,799 US11556479B1 (en) | 2021-08-09 | 2021-08-09 | Cache block budgeting techniques |
US17/397,799 | 2021-08-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904221A true CN115904221A (zh) | 2023-04-04 |
Family
ID=84922788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210941759.4A Pending CN115904221A (zh) | 2021-08-09 | 2022-08-08 | 高速缓存块预算技术 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11556479B1 (zh) |
CN (1) | CN115904221A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11960722B2 (en) * | 2022-07-25 | 2024-04-16 | Micron Technology, Inc. | Memory device programming technique for increased bits per cell |
US20240143170A1 (en) * | 2022-10-28 | 2024-05-02 | Micron Technology, Inc. | Runtime storage capacity reduction avoidance in sequentially-written memory devices |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848026B2 (en) * | 2001-11-09 | 2005-01-25 | International Business Machines Corporation | Caching memory contents into cache partitions based on memory locations |
US10402072B2 (en) * | 2015-05-04 | 2019-09-03 | Graphisoft Se | Predictive background updating |
US9697134B2 (en) * | 2015-06-10 | 2017-07-04 | Micron Technology, Inc. | Memory having a static cache and a dynamic cache |
US10359933B2 (en) * | 2016-09-19 | 2019-07-23 | Micron Technology, Inc. | Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods |
US20180081811A1 (en) * | 2016-09-20 | 2018-03-22 | Qualcomm Incorporated | Dynamic cache partitioning through hill-climbing |
US10503792B1 (en) * | 2019-05-10 | 2019-12-10 | Georgetown University | Cache optimization via topics in web search engines |
US10983829B2 (en) * | 2019-07-12 | 2021-04-20 | Micron Technology, Inc. | Dynamic size of static SLC cache |
US20210042236A1 (en) * | 2019-08-06 | 2021-02-11 | Micron Technology, Inc. | Wear leveling across block pools |
-
2021
- 2021-08-09 US US17/397,799 patent/US11556479B1/en active Active
-
2022
- 2022-08-08 CN CN202210941759.4A patent/CN115904221A/zh active Pending
-
2023
- 2023-01-11 US US18/095,782 patent/US20230236986A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230236986A1 (en) | 2023-07-27 |
US11556479B1 (en) | 2023-01-17 |
US20230041188A1 (en) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230236986A1 (en) | Cache block budgeting techniques | |
US11907556B2 (en) | Data relocation operation techniques | |
CN115248662A (zh) | 动态超级块 | |
CN114822670A (zh) | 有效数据感知媒体可靠性扫描 | |
US20230185713A1 (en) | Valid data identification for garbage collection | |
US20240020016A1 (en) | Metadata allocation in memory systems | |
US20230367486A1 (en) | Block conversion to preserve memory capacity | |
US20230205425A1 (en) | Sacrificial block pool | |
US11625333B2 (en) | Configurable flush operation speed | |
US11880595B2 (en) | Memory cell access techniques for memory systems | |
US20230342077A1 (en) | Unmap backlog in a memory system | |
US11977758B2 (en) | Assigning blocks of memory systems | |
US11995346B2 (en) | Resuming write operations after suspension | |
US20230342060A1 (en) | Techniques for data transfer operations | |
CN115373592B (zh) | 用于页线填充数据的设备、非暂时性计算机可读介质及方法 | |
US11762771B2 (en) | Advanced power off notification for managed memory | |
US20230043502A1 (en) | Read latency and suspend modes | |
US20240053916A1 (en) | Resuming write operations after suspension | |
US20240012751A1 (en) | Adaptive wear leveling for a memory system | |
WO2022193270A1 (en) | Write booster buffer flush operation | |
WO2022193212A1 (en) | Memory read performance techniques | |
WO2022193233A1 (en) | Memory write performance techniques | |
WO2024020707A1 (en) | Memory performance evaluation using address mapping information | |
US20240078031A1 (en) | Dividing blocks for special functions | |
US20230335204A1 (en) | Techniques to retire unreliable blocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |