CN115374025A - 可配置刷新操作速度 - Google Patents
可配置刷新操作速度 Download PDFInfo
- Publication number
- CN115374025A CN115374025A CN202210441603.XA CN202210441603A CN115374025A CN 115374025 A CN115374025 A CN 115374025A CN 202210441603 A CN202210441603 A CN 202210441603A CN 115374025 A CN115374025 A CN 115374025A
- Authority
- CN
- China
- Prior art keywords
- cache
- refresh operation
- memory system
- data
- indication
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种可配置刷新操作速度。在包含单层级单元SLC的高速缓存的第一部分处执行刷新操作之前,存储器系统可将与存储在所述高速缓存的所述第一部分中的数据相关联的参数传送到主机系统。接着,所述主机系统可基于所述参数和与所述高速缓存的其它部分相关联的刷新操作的速度来识别用于所述刷新操作的所述高速缓存的另一部分(例如,包含SLC或多层级单元MLC)。所述主机系统可向所述存储器系统指示所述高速缓存的所识别部分,并且所述存储器系统可在所述高速缓存的所述第一部分处执行刷新操作。例如,所述存储器系统可将存储在所述高速缓存的所述第一部分处的所述数据的子集写入到所述高速缓存的第二部分。
Description
交叉引用
本专利申请要求卡列洛(Cariello)于2021年4月26日提交的标题为“可配置刷新操作速度(CONFIGURABLE FLUSH OPERATION SPEED)”的第17/240,832号美国专利申请的优先权,所述申请转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及可配置刷新操作速度。
背景技术
存储器装置广泛用于在各种电子装置中存储信息,例如计算机、无线通信装置、相机、数字显示器等等。信息通过将存储器装置内的存储器单元编程为各种状态来存储。例如,二进制存储器单元可编程成两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持超过两个可能状态,其中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程为对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。易失性存储器单元(例如,DRAM单元)可随时间推移而丢失它们的编程状态,除非它们通过外部电源周期性地刷新。非易失性存储器单元(例如,NAND存储器单元)可将它们的编程状态维持很长一段时间,即使在不存在外部电源的情况下也如此。
发明内容
描述一种设备。所述设备包括:高速缓存,其包括具有多个单层级单元的第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;以及控制器,其与所述高速缓存耦合。所述控制器配置成使所述设备:向主机系统传送与存储在所述高速缓存的所述第一部分中的数据相关联的一或多个参数;至少部分地基于传送所述一或多个参数,从所述主机系统接收所述一或多个额外部分中用于刷新操作的所述高速缓存的部分的指示;以及至少部分地基于执行所述刷新操作且至少部分地基于接收到所述高速缓存的所述部分的所述指示,将存储在所述高速缓存的所述第一部分中的所述数据的子集写入到所述高速缓存的所述一或多个额外部分中的所述高速缓存的第二部分。
描述设备。所述设备包括与存储器系统耦合的控制器,其中所述控制器配置成使所述设备:从所述存储器系统接收与存储在所述存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包括具有多个单层级单元的所述第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;至少部分地基于所述一或多个参数,识别所述一或多个额外部分中用于在所述存储器系统处执行的刷新操作的所述高速缓存的部分;以及向所述存储器系统指示用于所述刷新操作的所述高速缓存的所识别部分。
描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体在存储器系统处存储代码并且包括指令,所述指令可由处理器执行以进行以下操作:向主机系统传送与存储在所述存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包括具有多个单层级单元的所述第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;至少部分地基于传送所述一或多个参数,从所述主机系统接收所述一或多个额外部分中用于刷新操作的所述高速缓存的部分的指示;以及至少部分地基于执行所述刷新操作,至少部分地基于接收到所述高速缓存的所述部分的所述指示,将存储在所述高速缓存的所述第一部分中的所述数据的子集写入到所述高速缓存的所述一或多个额外部分中的所述高速缓存的第二部分。
附图说明
图1示出根据本文所公开的实例的支持可配置刷新操作速度的系统的实例。
图2示出根据本文所公开的实例的支持可配置刷新操作速度的系统的实例。
图3示出根据本文所公开的实例的支持可配置刷新操作速度的过程流的实例。
图4示出根据本文所公开的实例的支持可配置刷新操作速度的存储器系统的框图。
图5示出根据本文所公开的实例的支持可配置刷新操作速度的主机系统的框图。
图6和7示出根据本文所公开的实例的流程图,示出了支持可配置刷新操作速度的一或多种方法。
具体实施方式
一些存储器系统可包含高速缓存,高速缓存包含多个存储器单元块(例如,多个子集)(例如,多个部分)。例如,多层级高速缓存可包含一或多个单层级单元(SLC)部分和一或多个多层级单元(MLC)部分(例如,双层级单元、三层级单元(TLC)、四层级单元(QLC)或五层级单元(PLC)部分)。在一些实例中,这些部分中的一个可以用作缓冲器(例如,写入提升器缓冲器)。例如,SLC部分可以用作缓冲器。在此实例中,存储器系统可(例如,从主机系统)接收数据以存储在存储器系统内的存储器装置处。然后,存储器系统可将数据(例如,从主机系统接收到)缓冲在高速缓存的SLC部分而不是高速缓存的其它部分中。在一些情况下(例如,响应于高速缓存的SLC部分达到阈值水平,例如全满或接近全满),写入到SLC部分的数据可使用刷新操作刷新(例如,移动)到高速缓存的另一部分。在一个实例中,刷新操作可包含将数据写入到高速缓存的一或多个SLC部分。替代地,刷新操作可包含将数据写入到高速缓存的一或多个MLC部分。不同刷新操作(例如,将数据刷新到高速缓存的SLC部分、将数据刷新到高速缓存的MLC部分)可与不同特征相关联。例如,相比于将数据从SLC部分刷新到MLC部分,将数据从SLC部分刷新到另一SLC部分可进行得更快。另外,相比于将数据从SLC部分刷新到另一SLC部分,将数据从SLC部分刷新到MLC部分可能更高效(例如,可在SLC部分中释放更多空间)。在一些情况下,取决于完成刷新操作的期望速度或刷新操作的效率,一个刷新操作可能比另一刷新操作更好。
如本文所描述,存储器系统可利用基于或响应于与执行刷新操作的不同选择方案相关联的速度或效率来确定要执行的刷新操作的方法。例如,存储器系统可基于或响应于从主机系统接收到用于刷新操作的高速缓存部分的指示而确定在高速缓存的SLC部分上执行刷新操作。例如,主机系统可评估与存储器系统相关联的一或多个参数,以确定应该执行第一刷新操作(例如,其完成将早于不同类型的第二刷新操作的执行,所以其为更快的刷新操作)还是执行第二刷新操作(例如,其完成将晚于不同类型的第一刷新操作的执行,所以其为更高效的刷新操作)。在确定应该执行第一刷新操作还是执行第二刷新操作之后,作为一个实例,主机系统可向存储器系统指示用于刷新操作的高速缓存部分。例如,主机系统可向存储器系统指示应该用于第一(例如,更快)刷新操作的高速缓存的一或多个SLC部分。另外或替代地,主机系统可向存储器系统指示用于第二(例如,更高效)刷新操作的高速缓存的一或多个MLC部分。基于或响应于从主机系统接收到所述一或多个高速缓存部分的指示,存储器系统可执行刷新操作。例如,存储器系统可将数据从高速缓存的SLC部分(例如,充当缓冲器)写入到另一部分。因此,主机系统或存储器系统(或这两者)可评估与存储器系统相关联的一或多个参数,以确定要执行的刷新操作的类型(例如,快速刷新操作、高效刷新操作)。
本公开的特征初始地在参考图1到2所描述的系统的上下文中描述。本公开的特征在参考图3所描述的过程流的上下文中描述。本公开的这些和其它特征进一步由参考图4-7所描述的涉及可配置刷新操作速度的设备图和流程图示出并参考其描述。
图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介接,所述主机系统控制器可以是配置成使主机系统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读取或向其写入,那么数据可以存储在本地存储器120中,并且数据可在本地存储器120内供主机系统105(例如,相对于存储器装置130具有减小的时延)用于后续根据高速缓存策略进行检索或操控(例如,更新)。
尽管图1中的存储器系统110的实例已经示出为包含存储器系统控制器115,但在一些情况下,存储器系统110可能不包含存储器系统控制器115。例如,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或一或多个本地控制器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可直到包含页175的整个块170被擦除才更新。
在一些情况下,为了更新块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接收的数据)。
在一些实例中,存储器系统110可包含高速缓存。例如,本地存储器120可以是高速缓存的实例或者可包含高速缓存。在另一实例中,存储器装置130中的一个可以是或可包含高速缓存。在任一实例中,高速缓存可划分成多个块170或部分(例如,如参考存储器装置130-a所示)。在一些情况下(例如,对于多层级高速缓存设计),高速缓存的各个块可对应于不同单元类型(例如,架构)。例如,第一块170可以是SLC部分的实例,且第二块170可以是MLC部分的实例。此外,在一些实例中,高速缓存的一或多个块170可用作缓冲器(例如,写入提升器缓冲器)。在一些实例中,存储器系统110可在主机系统105和存储器系统110之间利用缓冲器进行中间数据存储。也就是说,存储器系统110可在将数据存储在存储器装置130处之前将数据写入到缓冲器。
存储器系统110可执行刷新操作,以将有效数据从高速缓存的第一块170移动到高速缓存的第二块170。在一些情况下,刷新操作可清理高速缓存的第一块170(例如,对应于缓冲器),并使存储器系统110将额外数据存储在高速缓存的第一块170中(例如,在刷新操作之后)。在一些情况下,刷新操作的特征可基于与高速缓存的第二块170相关联的单元架构的类型。例如,相比于与有效数据到包含MLC(例如,双层级单元、TLC、QLC)的块170的垃圾收集相关联的刷新操作,与有效数据到包含SLC的块170的垃圾收集相关联的刷新操作可相对较快。另外,相比于与有效数据到SLC池的另一块170的垃圾收集相关联的刷新操作,与有效数据到包含MLC的块170的垃圾收集相关联的刷新操作可能更高效(例如,可从第一块170清理更多数据)。
在系统100的实例中,主机系统105可从存储器系统110接收一或多个参数的指示,并且主机系统105可基于或响应于所述一或多个参数而选择刷新操作(例如,相对快速的刷新操作、相对更高效的刷新操作)。在一些实例中,所述一或多个参数可与存储在高速缓存的块170内的数据量或分配相关联(例如,可指示所存储的更高或更低数据量、可指示较高浓度的所存储数据分配或较低浓度的数据分配、可指示所存储的有效数据的浓度),或者所述一或多个参数可与时间估计(例如,可指示使用不同类型的刷新操作释放给定量的缓冲器可耗费的所估计时间)相关联。另外,主机系统105可利用过往数据,例如历史参数信息(例如,以及用于分析信息的一或多种技术,如机器学习),来选择刷新操作。
一旦主机系统105选定要执行的刷新操作,主机系统105就可向存储器系统110指示选定的刷新操作。例如,主机系统控制器106可将选定刷新操作的指示写入到寄存器125(例如,向存储器系统110发送将指示写入到寄存器125的命令)。存储器系统控制器115可轮询寄存器125以识别选定刷新操作,并基于所指示的选定刷新操作而执行刷新操作。在另一实例中,主机系统控制器106可向存储器系统控制器115发送指示选定刷新操作的命令,并且存储器系统控制器115可基于或响应于命令而执行刷新操作,其中命令可指示是执行第一刷新操作还是执行第二刷新操作。因而,存储器系统110可基于或响应于与高速缓存和存储器系统相关联的一或多个参数而选择性地执行一或多个更快或更高效的刷新操作。在一些情况下,选择性地执行更快或更高效的刷新操作可提高总体处理效率,并且在一些情况下可改善用户体验。
系统100可包含任何数量的支持可配置刷新操作速度的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包含或者可以其它方式存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储用于执行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能的指令(例如,固件)。例如,此类指令如果由主机系统105(例如,主机系统控制器106)、存储器系统控制器115或存储器装置130(例如,本地控制器135)执行,可使主机系统105、存储器系统控制器115或存储器装置130执行本文中所描述的一或多个相关联功能。
图2示出根据本文所公开的实例的支持可配置刷新操作速度的系统200的实例。系统200可以是参考图1或其方面所描述的系统100的实例。系统200可包含存储器系统210,所述存储器系统配置成在主机系统205使用存取命令(例如,读取命令或写入命令)进行请求的情况下存储从主机系统205接收到的数据以及向主机系统205发送数据。系统200可实施参考图1所描述的系统100的各方面。例如,存储器系统210和主机系统205可分别为存储器系统110和主机系统105的实例。
在一些实例中,存储器系统210可包含可划分成多个部分240的高速缓存230。例如,高速缓存230可包含部分240-a、部分240-b、部分240-c和部分240-d。部分240可以是参考图1所描述的块170的实例。在一些实例中,高速缓存230可以是多层级高速缓存设计的实例。也就是说,高速缓存230可包含与不同单元架构相关联的部分240。例如,在一些实例中,部分240-a和部分240-b可包含SLC,并且部分240-c和240-d可包含MLC。确切地说,部分240-c可包含TLC,且部分240-d可包含QLC。
在一些实例中,存储器系统210可利用高速缓存230的一或多个部分240作为缓冲器(例如,写入提升器缓冲器)。例如,存储器系统210可利用部分240-a作为缓冲器。在一些实例中,存储器系统210可依赖缓冲器提高存储器系统210的性能。例如,响应于主机系统205向存储器系统210传输包含要存储在存储器系统210处的一组数据的写入命令,存储器系统210可将所述一组数据写入到缓冲器(例如,高速缓存230的部分240-a)。然后,如果已使用的缓冲器空间满足阈值,例如变得全满或接近全满,那么存储器系统210可对缓冲器执行刷新操作,将存储在缓冲器中的数据写入到高速缓存230的另一部分240。相比于利用例如高速缓存230的包含MLC的部分240,利用高速缓存230的包含SLC的部分240作为缓冲器可提高写入性能,因为与MLC相关联的编程时间可比与SLC相关联的编程时间更多。另外,相比于MLC,SLC可与更高的可靠性相关联。更一般来说,相比于利用例如高速缓存230的包含高阶单元(例如,TLC、QLC)的部分240,利用高速缓存230的包含低阶单元(例如,SLC、双层级单元)的部分240作为缓冲器可提高写入性能,因为与高阶单元相关联的编程时间可比与低阶单元相关联的编程时间更多。另外,相比于高阶单元,低阶单元可与更高的可靠性相关联。
存储器系统210可对高速缓存230的一或多个部分240执行维护操作。例如,存储器系统210可执行刷新操作或垃圾收集操作。响应于存储器系统201对高速缓存230的部分240执行刷新操作,存储器系统210可将存储在部分240内的数据(例如,存储在部分240中的有效数据)的子集写入到高速缓存230的另一部分240。例如,执行刷新操作可包含将数据从高速缓存230的第一部分240-a移动到高速缓存230的另一部分240(例如,部分240-b、部分240-c或部分240-d)。类似地,执行垃圾收集操作可包含将有效数据从高速缓存230的第一部分240-a移动到高速缓存230的另一部分240并擦除存储在高速缓存230的第一部分240-a中的数据。
高速缓存230的部分240(例如,部分240-a)上执行的刷新操作和垃圾收集操作的速度和效率可取决于包含在高速缓存230中写入数据(例如,存储在部分240-a中)的部分240中的存储器单元的类型及其它方面。例如,相比于将数据从部分240-a移动到包含TLC的部分240-c或包含QLC的部分240-d,将数据从部分240-a移动到包含SLC的部分240-b可相对快速地进行。也就是说,SLC编程可比TLC或QLC编程更快,或更一般来说,低阶单元的编程可比高阶单元的编程更快。另外,相比于将数据从部分240-a移动到包含TLC的部分240-c或包含QLC的部分240-d,将数据从部分240-a移动到包含SLC的部分240-b可能不太高效。例如,部分240-c和240-d的数据存储容量可大于部分240-a和240-c的数据存储容量(例如,由于MLC存储的数据位比SLC更多)。因此,相比于部分240-b(其包含SLC),有更大的数据量可以移动到部分240-c和240-d(其包含MLC)。因而,将数据移动到部分240-c(例如,包含SLC)可对应于相对最快的刷新操作,将数据移动到部分240-d(例如,包含QLC)可对应于相对最慢的刷新操作,并且将数据移动到部分240-c(例如,包含TLC)可对应于中间速度的刷新操作。
存储器系统210可配置成基于或响应于与高速缓存230相关联的一或多个参数而选择刷新操作类型(例如,相对较快的刷新操作、相对较慢的刷新操作)以供在高速缓存230的部分240(例如,部分240-a)处执行。另外或替代地,主机系统205可配置成响应于与存储器系统210和高速缓存230相关联的参数而向存储器系统210指示推荐刷新操作类型。例如,主机系统205可从存储器系统210接收与部分240-a相关的一或多个参数的指示。例如,存储器系统210可将所述一或多个参数的指示写入到寄存器225。主机系统205可轮询寄存器以从存储器系统210接收所述一或多个参数的指示。
主机系统205可基于或响应于参数而确定刷新操作(例如,较快、中间或较慢)。然后,主机系统205可配置成响应于与存储器系统210和高速缓存230相关联的参数而向存储器系统210指示(例如,发送)推荐刷新操作类型。存储器系统210可确定是否执行由主机系统205指示的推荐刷新操作类型或是否执行不同于推荐刷新操作类型的刷新操作。例如,如果存储器系统210确定所述一或多个参数被错误地指示给主机系统205或如果指示给主机系统205的所述一或多个参数不再有效,那么存储器系统210可确定执行不同于推荐刷新操作类型的刷新操作。参数可包含与部分240-a相关联的逻辑饱和水平、碎片化水平或有效计数分配。逻辑饱和水平可指示部分240-a存储数据的百分比。如果逻辑饱和水平为高(例如,高于阈值),那么主机系统205可选择较慢的刷新操作(例如,更高效的刷新操作),使得在刷新操作期间从部分240-a移动相对大量的数据。碎片化水平可指示部分240-a内的数据存储稀疏性。如果碎片化水平为高(数据极其稀疏),那么主机系统205可选择较快刷新,以启用碎片化数据的较快编程,并且因此要从部分240-a移动的数据数量可相对较小。有效计数分配可指示缓冲器的物理占用率。如果有效计数分配为低且逻辑饱和度为高,那么主机系统205可选择快速刷新。
主机系统205可另外基于(例如,响应于)一或多个额外参数(例如,除了由存储器系统210指示、先前由主机系统205确定或另一来源的参数之外)而选择或确定指示建议刷新操作。例如,主机系统205可评估存储器系统210的电池水平和系统200的位置。也就是说,主机系统205可在存储器系统210的电池水平低于阈值的情况下或在系统200的位置不与电源相关联(例如,为远程位置或未知位置,而不是归属位置或已知位置)的情况下选择较慢刷新操作(例如,以节约电力)。另外,主机系统205可依赖历史数据(例如,包含用户使用的启发)并利用机器学习算法(例如,人工智能)及其它技术来预测与刷新操作相关联的定时(例如,作用中/空闲时间比)。在一些实例中,所预测定时可基于或响应于电池水平、实时位置等等中的一或多个。
一旦主机系统205选定刷新操作,主机系统205就可向存储器系统210指示选定的刷新操作。例如,主机系统205可指示高速缓存230的部分240来移动存储在部分240-a中的数据。例如,如果主机系统205选择较快刷新操作,那么主机系统205可向存储器系统210指示部分240-b(例如,包含SLC)。另外,如果主机系统205确定应该执行中间速度的刷新,那么主机系统205可向存储器系统210指示部分240-c(例如,包含TLC)。此外,如果主机系统205确定应该执行较慢刷新,那么主机系统205可向存储器系统210指示部分240-d(例如,包含QLC)。在一些实例中,主机系统205可经由命令指示高速缓存230的部分240(例如,通过向存储器系统210传输刷新命令)。在另一实例中,主机系统205可通过将选定部分240的指示写入到与存储器系统210耦合的寄存器225来指示高速缓存230的部分240。在一些情况下,存储器系统控制器215可轮询寄存器225以确定主机系统205指示高速缓存230的哪一部分240。在一些情况下,寄存器225可与一组寄存器225相关联,其中每一寄存器225与高速缓存的所述一或多个额外部分中的一个相关联。例如,第一寄存器225可与部分240-b相关联,第二寄存器225可与部分240-c相关联,且第三寄存器225可与部分240-d相关联。此处,主机系统205可通过将指示写入到所述一组寄存器225中与高速缓存230的所指示部分240相关联的寄存器来指示高速缓存230的部分240。
在从主机系统205接收到选定刷新操作的指示之后,存储器系统210可在部分240-a处执行刷新操作。在一些情况下,存储器系统210可执行由主机系统205指示的刷新操作(例如,通过将数据从部分240-a写入到由主机系统205指示的高速缓存230的部分240)。在一些其它情况下,存储器系统210可执行不同于由主机系统205指示的刷新操作的刷新操作。例如,主机系统205可指示较快刷新操作(例如,与部分240-b相关联),并且存储器系统210可确定执行中间速度的刷新操作(例如,与部分240-c相关联)。例如,存储器系统可基于部分240-a的有效百分比(例如,物理饱和)为高且确定较快刷新操作的效率(例如,在较快刷新操作期间移动的部分240-a的有效数据数量)未高到足以刷新部分240-a而确定执行中间速度的刷新操作(例如,而不是所指示的快速刷新操作)。另外,存储器系统可基于所预测的功率消耗、基于或响应于部分240-a具有高有效计数分配(例如,90%)或某一其它参数或因子而确定执行中间速度的操作(例如,而不是所指示的快速刷新操作)。
图3示出根据本文所公开的实例的支持可配置刷新操作速度的过程流300的实例。在一些实例中,过程流300可实施系统100或系统200的各方面,或者可由所述方面实施。例如,过程流300可包含主机系统305和存储器系统310,它们可以是本文所述的主机系统和存储器系统的实例。存储器系统310可包含具有不同部分(例如,带SLC的第一部分,及带SLC或MLC的额外部分)的高速缓存。过程流300可涉及主机系统305基于或响应于一或多个参数而选择刷新操作,以及将选定刷新操作的指示发送到存储器系统310,其中存储器系统310可执行或不执行主机系统305选定的刷新操作。可以实施下文的替代性实例,其中一些步骤以不同于所述的次序执行或完全不执行。在一些情况下,步骤可包含下文未提及的额外特征,或者可以添加其它步骤。
过程流300的各方面可由控制器及其它组件实施。另外或替代地,过程流300的各方面可实施为存储在存储器中的指令(例如,存储在与主机系统305或存储器系统310耦合的存储器中的固件)。例如,响应于由控制器(例如,主机系统控制器)执行,所述指令可使控制器执行过程流300的至少一些或所有操作。
在315处,可传送一或多个参数。例如,在315处,可通过存储器系统310(例如,经由寄存器)将一或多个参数传送到主机系统305。例如,存储器系统310可确定与存储器系统的高速缓存的第一部分(例如,包含在存储器系统310中的高速缓存的SLC部分)相关联的碎片化水平或逻辑饱和度(或这两者)。在一些实例中,存储器系统310可通过将寄存器编程为存储指示所述一或多个参数的值(例如,制造商默认值(MDV))来向主机系统305指示碎片化水平(例如,经由bFragmentationLevel参数)和逻辑饱和度(例如,经由bLogicSaturation参数)。例如,存储器系统310可通过将寄存器编程为存储bFragmentationLevel参数的‘0h’值而指示高速缓存的第一部分(例如,缓冲器)的低碎片化水平。另外,存储器系统310可通过将寄存器编程为存储bFragmentationLevel参数的‘FFH’值而指示高速缓存的第一部分(例如,缓冲器)的较高碎片化水平,例如相比于阈值。在另一实例中,存储器系统310可通过将寄存器编程为存储bLogicSaturation参数的‘0h’值而指示高速缓存的第一部分(例如,缓冲器)的较低饱和水平,例如相比于阈值。另外,存储器系统310可通过将寄存器分别编程为存储bLogicSaturation参数的‘1h’、‘25h’、‘50h’、‘75h’和‘100h’值而指示高速缓存的第一部分的1%、25%、50%、75%和100%逻辑饱和水平。
在320处,可识别所述一或多个参数。例如,在320处,可通过主机系统305识别所述一或多个参数。在一些实例中,主机系统305可通过轮询与存储器系统310耦合的寄存器来识别从存储器系统310接收到的所述一或多个参数(例如,碎片化水平、逻辑饱和度、有效计数分配等)。另外或替代地,主机系统305可确定与存储器系统310相关联的一或多个额外参数。例如,主机系统305可识别与存储器系统310相关联的电池寿命、存储器系统310的当前位置、与存储器系统310处的一或多个先前刷新操作相关联的数据、存储器系统310的计算功率或其任何组合。
在325处,可识别(例如,用于刷新操作的)高速缓存部分。例如,在325处,可通过主机系统305识别(例如,用于刷新操作的)高速缓存的部分。也就是说,主机系统305可响应于在高速缓存的第一部分上执行刷新操作而识别存储器系统310将数据从高速缓存的第一部分(例如,缓冲器、包含SLC的高速缓存的部分)写入到的高速缓存部分。在一些情况下,主机系统305可识别用于快速刷新操作的包含SLC的高速缓存部分、用于中间速度的刷新操作的包含TLC的高速缓存部分和用于较慢刷新操作的包含QLC的高速缓存部分。在一些实例中,主机系统305可基于或响应于在320处确定的所述一或多个参数而识别用于刷新操作的高速缓存部分。例如,如果主机系统305确定高速缓存的第一部分具有高碎片化水平,那么主机系统305可识别用于较快刷新操作的包含SLC的高速缓存部分。在另一实例中,如果主机系统305确定与存储器系统310相关联的电池水平为低,那么主机系统305可识别用于较慢刷新操作(例如,其消耗更少功率)的包含QLC的高速缓存部分。
在330处,可接收高速缓存部分指示。例如,在330处,可由存储器系统310接收高速缓存部分指示。也就是说,主机系统305可向存储器系统310传送高速缓存部分(例如,在325处由主机系统305针对刷新操作所识别)的指示。在一个实例中,主机系统305可通过传输在存储器系统处执行刷新操作的命令来指示高速缓存部分,其中命令包含高速缓存部分的指示。在另一实例中,主机系统305可通过将寄存器编程为存储用于刷新操作的高速缓存部分的指示来指示高速缓存部分。此处,存储器系统310可读取寄存器以从主机系统305接收用于刷新操作的高速缓存部分的指示。在一些情况下,主机系统305可通过指示对应于刷新操作目的地(例如,或高速缓存部分)的速度(例如,经由bWBFlushSpeed参数)来指示用于刷新操作的高速缓存部分。例如,主机系统可将bWBFlushSpeed参数设置为‘0h’值以指示无刷新操作,设置为‘1h’值以指示快速刷新操作(例如,对应于到其它SLC的垃圾收集),设置为‘2h’值以指示正常刷新操作(例如,对应于到TLC的垃圾收集),及设置为‘3h’值以指示慢刷新操作(例如,对应于到QLC的垃圾收集)。
在335处,可选择用于刷新操作的高速缓存部分(例如,有效数据可从高速缓存的第一部分移动到的高速缓存部分)。例如,在335处,存储器系统310可选择用于刷新操作的目的地高速缓存部分,其中存储器系统310将有效数据从高速缓存的第一部分(例如,缓冲器)移动到选定高速缓存部分。也就是说,存储器系统310可从高速缓存的额外部分(例如,除高速缓存的第一部分或缓冲器以外)选择用于执行刷新操作的高速缓存的第二部分。在一些情况下,高速缓存的第二部分可与330处主机系统305所指示的高速缓存部分相同。在一些其它情况下,高速缓存的第二部分可不同于330处主机系统305所指示的高速缓存部分。例如,主机系统305可指示与快速刷新操作相关联的高速缓存部分,并且存储器系统310可选择与正常刷新操作相关联的高速缓存部分。
在340处,可执行刷新操作。例如,在340处,可通过存储器系统310执行刷新操作。例如,基于或响应于从主机系统305接收到高速缓存部分的指示,存储器系统将存储在高速缓存的第一部分中的数据(例如,包含有效数据)的子集写入到高速缓存的第二部分。在一些情况下,在将数据子集写入到高速缓存的第二部分之后,存储器系统310擦除存储在高速缓存的第一部分中的数据。
图4示出根据本文所公开的实例的支持可配置刷新操作速度的存储器系统420的框图400。存储器系统420可以是参考图1到3所描述的存储器系统的各方面的实例。存储器系统420或其各种组件可以是用于执行本文所述的可配置刷新操作速度的各个方面的构件的实例。例如,存储器系统420可包含参数管理器425、高速缓存部分管理器430、刷新操作管理器435或其任何组合。这些组件中的每一个可与彼此直接或间接地通信(例如,经由一或多个总线)。
参数管理器425可配置为或以其它方式支持用于向主机系统传送与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数的构件,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分。高速缓存部分管理器430可配置为或以其它方式支持用于至少部分地基于传送所述一或多个参数而从主机系统接收所述一或多个额外部分中用于刷新操作的高速缓存部分的指示的构件。刷新操作管理器435可配置为或以其它方式支持用于至少部分地基于执行刷新操作且至少部分地基于接收到高速缓存部分的指示而将存储在高速缓存的第一部分中的数据的子集写入到高速缓存的所述一或多个额外部分中的高速缓存的第二部分的构件。
在一些实例中,为了支持将数据的子集写入到第二部分,刷新操作管理器435可配置为或以其它方式支持用于将数据的子集写入到高速缓存的所指示部分的构件。
在一些实例中,高速缓存部分管理器430可配置为或以其它方式支持用于至少部分地基于接收到指示而从高速缓存的所述一或多个额外部分选择不同于所指示部分的第二部分的构件,其中将数据的子集写入到第二部分至少部分地基于所述选择。
在一些实例中,选择第二部分至少部分地基于与第二部分相关联的刷新操作的第一速度、与所指示部分相关联的刷新操作的第二速度、第二部分内的第一可用空间量、所指示部分内的第二可用空间量,或其任何组合。
在一些实例中,高速缓存部分的指示包含对应于刷新操作的多个速度中的一个的值。在一些实例中,所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
在一些实例中,所述一或多个额外部分中具有多个SLC的高速缓存的第一额外部分与所述多个速度中刷新操作的第一速度相关联。在一些实例中,所述一或多个额外部分中具有多个MLC的高速缓存的第二额外部分与所述多个速度中刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
在一些实例中,所述一或多个参数包含存储在高速缓存的第一部分中的数据碎片化的指示、存储有效数据的高速缓存的第一部分的百分比的指示,或这两者。
在一些实例中,为了支持接收指示,高速缓存部分管理器430可配置为或以其它方式支持用于读取存储在与存储器系统耦合的寄存器处的高速缓存部分的指示的构件。
在一些实例中,为了支持接收指示,高速缓存部分管理器430可配置为或以其它方式支持用于读取存储在与存储器系统耦合的一组寄存器处的高速缓存部分的指示的构件,其中所述一组寄存器中的每一寄存器与高速缓存的所述一或多个额外部分中的一个相关联。
在一些实例中,为了支持接收指示,高速缓存部分管理器430可配置为或以其它方式支持用于接收执行刷新操作的命令的构件,其中命令包含用于刷新操作的高速缓存部分的指示。
在一些实例中,为了支持传送所述一或多个参数,参数管理器425可配置为或以其它方式支持用于将所述一或多个参数的指示写入到与存储器系统耦合的寄存器的构件。
在一些实例中,为了支持执行刷新操作,刷新操作管理器435可配置为或以其它方式支持用于至少部分地基于数据的子集包含有效数据而识别存储在高速缓存的第一部分中的数据的子集的构件,其中写入数据的子集至少部分地基于所述识别。在一些实例中,为了支持执行刷新操作,刷新操作管理器435可配置为或以其它方式支持用于至少部分地基于将数据的子集写入到高速缓存的第二部分而擦除存储在高速缓存的第一部分中的数据的构件。
图5示出根据本文所公开的实例的支持可配置刷新操作速度的主机系统520的框图500。主机系统520可以是参考图1到3所描述的主机系统的各方面的实例。主机系统520或其各种组件可以是用于执行本文所述的可配置刷新操作速度的各个方面的构件的实例。例如,主机系统520可包含参数接收器525、高速缓存部分识别器530、高速缓存部分指示器535或其任何组合。这些组件中的每一个可与彼此直接或间接地通信(例如,经由一或多个总线)。
参数接收器525可配置为或以其它方式支持用于从存储器系统接收与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数的构件,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分。高速缓存部分识别器530可配置为或以其它方式支持用于至少部分地基于所述一或多个参数而识别所述一或多个额外部分中用于在存储器系统处执行的刷新操作的高速缓存部分的构件。高速缓存部分指示器535可配置为或以其它方式支持用于向存储器系统指示用于刷新操作的高速缓存的所识别部分的构件。
在一些实例中,为了支持指示高速缓存的所识别部分,高速缓存部分识别器530可配置为或以其它方式支持用于将值写入到与存储器系统耦合的寄存器的构件,其中所述值指示高速缓存的所识别部分。
在一些实例中,为了支持指示高速缓存的所识别部分,高速缓存部分识别器530可配置为或以其它方式支持用于将值写入到与存储器系统耦合的一组寄存器的构件,其中所述一组寄存器中的每一寄存器与高速缓存的所述一或多个额外部分中的一个相关联,并且将值写入到所述一组寄存器中的一个基于所述一个寄存器与高速缓存的所述一或多个额外部分中的哪一部分相关联来指示高速缓存的所识别部分。
在一些实例中,为了支持指示高速缓存的所识别部分,高速缓存部分指示器535可配置为或以其它方式支持用于传输执行刷新操作的命令的构件,其中命令指示用于刷新操作的高速缓存的所识别部分。
在一些实例中,为了支持识别用于刷新操作的高速缓存部分,高速缓存部分识别器530可配置为或以其它方式支持用于至少部分地基于与所识别部分相关联的刷新操作的速度来识别高速缓存部分的构件。
在一些实例中,为了支持接收所述一或多个参数,参数接收器525可配置为或以其它方式支持用于轮询存储器系统处的寄存器的构件,其中寄存器存储所述一或多个参数的指示。
在一些实例中,高速缓存部分的指示包含对应于刷新操作的多个速度中的一个的值。在一些实例中,所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
在一些实例中,所述一或多个额外部分中具有多个SLC的高速缓存的第一额外部分与所述多个速度中刷新操作的第一速度相关联。在一些实例中,所述一或多个额外部分中具有多个MLC的高速缓存的第二额外部分与所述多个速度中刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
在一些实例中,所述一或多个参数包含存储在高速缓存的第一部分中的数据碎片化的指示、存储有效数据的高速缓存的第一部分的百分比的指示,或这两者。
在一些实例中,高速缓存部分指示器535可配置为或以其它方式支持用于基于或响应于一或多个额外参数而识别用于刷新操作的高速缓存部分的构件,其中所述一或多个额外参数包含与存储器系统相关联的电池寿命、存储器系统的当前位置、与存储器系统处的一或多个先前刷新操作相关联的数据、存储器系统的计算功率或其任何组合。
图6示出根据本文所公开的实例的流程图,示出了支持可配置刷新操作速度的方法600。方法600的操作可由本文所述的存储器系统或其组件实施。例如,方法600的操作可由参考图1到4所描述的存储器系统执行。在一些实例中,存储器系统可执行一组指令,以控制装置的功能元件执行所描述的功能。另外或替代地,存储器系统可使用专用硬件执行所述功能的各方面。
在605处,方法可包含向主机系统传送与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分。操作605可根据本文所公开的实例执行。在一些实例中,操作605的各方面可由参考图4所描述的参数管理器425执行。
在610处,方法可包含至少部分地基于传送所述一或多个参数,从主机系统接收所述一或多个额外部分中用于刷新操作的高速缓存部分的指示。操作610可根据本文所公开的实例执行。在一些实例中,操作610的各方面可由参考图4所描述的高速缓存部分管理器430执行。
在615处,方法可包含至少部分地基于执行刷新操作且至少部分地基于接收到高速缓存部分的指示,将存储在高速缓存的第一部分中的数据的子集写入到高速缓存的所述一或多个额外部分中的高速缓存的第二部分。操作615可根据本文所公开的实例执行。在一些实例中,操作615的各方面可由参考图4所描述的刷新操作管理器435执行。
在一些实例中,本文所述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):向主机系统传送与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分;至少部分地基于传送所述一或多个参数,从主机系统接收所述一或多个额外部分中用于刷新操作的高速缓存部分的指示;以及至少部分地基于执行刷新操作且至少部分地基于接收到高速缓存部分的指示,将存储在高速缓存的第一部分中的数据的子集写入到高速缓存的所述一或多个额外部分中的高速缓存的第二部分。
在本文所述的方法600和设备的一些实例中,将数据的子集写入到第二部分可包含用于将数据的子集写入到高速缓存的所指示部分的操作、特征、电路系统、逻辑、构件或指令。
本文所述的方法600和设备的一些实例可进一步包含用于至少部分地基于接收到指示而从高速缓存的所述一或多个额外部分选择不同于所指示部分的第二部分的操作、特征、电路系统、逻辑、构件或指令,其中将数据的子集写入到第二部分可至少部分地基于所述选择。
本文所述的方法600和设备的一些实例可进一步包含用于至少部分地基于以下来选择第二部分的操作、特征、电路系统、逻辑、构件或指令:与第二部分相关联的刷新操作的第一速度、与所指示部分相关联的刷新操作的第二速度、第二部分内的第一可用空间量、所指示部分内的第二可用空间量,或其任何组合。
在本文所述的方法600和设备的一些实例中,高速缓存部分的指示包含对应于刷新操作的多个速度中的一个的值,并且所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
在本文所述的方法600和设备的一些实例中,所述一或多个额外部分中具有多个SLC的高速缓存的第一额外部分可与所述多个速度中刷新操作的第一速度相关联,并且所述一或多个额外部分中具有多个MLC的高速缓存的第二额外部分与所述多个速度中刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
在本文所述的方法600和设备的一些实例中,所述一或多个参数包含存储在高速缓存的第一部分中的数据碎片化的指示、存储有效数据的高速缓存的第一部分的百分比的指示,或这两者。
在本文所述的方法600和设备的一些实例中,接收指示可包含用于读取存储在与存储器系统耦合的寄存器处的高速缓存部分的指示的操作、特征、电路系统、逻辑、构件或指令。
在本文所述的方法600和设备的一些实例中,接收指示可包含用于读取存储在与存储器系统耦合的一组寄存器处的高速缓存部分的指示的操作、特征、电路系统、逻辑、构件或指令,其中所述一组寄存器中的每一寄存器与高速缓存的所述一或多个额外部分中的一个相关联。
在本文所述的方法600和设备的一些实例中,接收指示可包含用于接收执行刷新操作的命令的操作、特征、电路系统、逻辑、构件或指令,其中命令包含用于刷新操作的高速缓存部分的指示。
在本文所述的方法600和设备的一些实例中,传送所述一或多个参数可包含用于将所述一或多个参数的指示写入到与存储器系统耦合的寄存器的操作、特征、电路系统、逻辑、构件或指令。
在本文所述的方法600和设备的一些实例中,执行刷新操作可包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于数据的子集包含有效数据而识别存储在高速缓存的第一部分中的数据的子集,其中写入数据的子集可至少部分地基于所述识别;以及至少部分地基于将数据的子集写入到高速缓存的第二部分而擦除存储在高速缓存的第一部分中的数据。
图7示出根据本文所公开的实例的流程图,示出了支持可配置刷新操作速度的方法700。方法700的操作可由本文所述的主机系统或其组件实施。例如,方法700的操作可由参考图1到3和5所描述的主机系统执行。在一些实例中,主机系统可执行一组指令,以控制装置的功能元件以执行所描述的功能。另外或替代地,主机系统可使用专用硬件执行所述功能的各方面。
在705处,方法可包含从存储器系统接收与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分。操作705可根据本文所公开的实例执行。在一些实例中,操作705的各方面可由参考图5所描述的参数接收器525执行。
在710处,方法可包含至少部分地基于所述一或多个参数,识别所述一或多个额外部分中用于在存储器系统处执行的刷新操作的高速缓存部分。操作710可根据本文所公开的实例执行。在一些实例中,操作710的各方面可由参考图5所描述的高速缓存部分识别器530执行。
在715处,方法可包含向存储器系统指示用于刷新操作的高速缓存的所识别部分。操作715可根据本文所公开的实例执行。在一些实例中,操作715的各方面可由参考图5所描述的高速缓存部分指示器535执行。
在一些实例中,本文所述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):从存储器系统接收与存储在存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包含具有多个SLC的第一部分和具有多个SLC或多个MLC的一或多个额外部分;至少部分地基于所述一或多个参数,识别所述一或多个额外部分中用于在存储器系统处执行的刷新操作的高速缓存部分;以及向存储器系统指示用于刷新操作的高速缓存的所识别部分。
在本文所述的方法700和设备的一些实例中,指示高速缓存的所识别部分可包含用于将值写入到与存储器系统耦合的寄存器的操作、特征、电路系统、逻辑、构件或指令,其中所述值指示高速缓存的所识别部分。
在本文所述的方法700和设备的一些实例中,指示高速缓存的所识别部分可包含用于将值写入到与存储器系统耦合的一组寄存器的操作、特征、电路系统、逻辑、构件或指令,其中所述一组寄存器中的每一寄存器与高速缓存的所述一或多个额外部分中的一个相关联,并且将值写入到所述一组寄存器中的一个基于所述一个寄存器与高速缓存的所述一或多个额外部分中的哪一部分相关联来指示高速缓存的所识别部分。
在本文所述的方法700和设备的一些实例中,指示高速缓存的所识别部分可包含用于传输执行刷新操作的命令的操作、特征、电路系统、逻辑、构件或指令,其中命令指示用于刷新操作的高速缓存的所识别部分。
在本文所述的方法700和设备的一些实例中,识别用于刷新操作的高速缓存部分可包含用于至少部分地基于与所识别部分相关联的刷新操作的速度而识别高速缓存部分的操作、特征、电路系统、逻辑、构件或指令。
在本文所述的方法700和设备的一些实例中,接收所述一或多个参数可包含用于轮询存储器系统处的寄存器的操作、特征、电路系统、逻辑、构件或指令,其中寄存器存储所述一或多个参数的指示。
在本文所述的方法700和设备的一些实例中,高速缓存部分的指示包含对应于刷新操作的多个速度中的一个的值,并且所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
在本文所述的方法700和设备的一些实例中,所述一或多个额外部分中具有多个SLC的高速缓存的第一额外部分可与所述多个速度中刷新操作的第一速度相关联,并且所述一或多个额外部分中具有多个MLC的高速缓存的第二额外部分与所述多个速度中刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
在本文所述的方法700和设备的一些实例中,所述一或多个参数包含存储在高速缓存的第一部分中的数据碎片化的指示、存储有效数据的高速缓存的第一部分的百分比的指示,或这两者。
在本文所述的方法700和设备的一些实例中,所述设备可包含用于基于或响应于一或多个额外参数而识别用于刷新操作的高速缓存部分的操作、特征、电路系统、逻辑、构件或指令,其中所述一或多个额外参数包含与存储器系统相关联的电池寿命、存储器系统的当前位置、与存储器系统处的一或多个先前刷新操作相关联的数据、存储器系统的计算功率或其任何组合。
应注意,上文所描述的方法描述可能实施方案,并且操作和步骤可以重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个的部分。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所述信号可表示信号总线,其中总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于或响应于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件中断所连接组件之间的信号流动一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。如果例如控制器的一组件将其它组件耦合在一起,那么所述组件引发允许信号通过导电路径在所述其它组件之间流动的改变,所述导电路径先前不允许信号流动。
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在断路,那么它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。如果控制器将两个组件隔离,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当…时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当…时”、“基于”或“至少部分地基于”用于描述条件性动作、条件性过程或过程的部分之间的连接,那么所述术语可互换。
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。例如,可执行第一条件或动作,并且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指作为先前条件或动作的直接结果而发生一个条件或动作。在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,与是否发生其它条件或动作无关。在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此种其它条件或动作而执行。
本文中所论述的包含存储器阵列的装置可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可为绝缘体上硅(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所述的设备,其中将所述数据的所述子集写入到所述第二部分包括:
将所述数据的所述子集写入到所述高速缓存的所指示部分。
3.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
至少部分地基于接收到所述指示,从所述高速缓存的所述一或多个额外部分选择不同于所述所指示部分的所述第二部分,其中将所述数据的所述子集写入到所述第二部分至少部分地基于所述选择。
4.根据权利要求3所述的设备,其中选择所述第二部分至少部分地基于与所述第二部分相关联的所述刷新操作的第一速度、与所述所指示部分相关联的所述刷新操作的第二速度、所述第二部分内的第一可用空间量、所述所指示部分内的第二可用空间量,或其任何组合。
5.根据权利要求1所述的设备,其中:
所述高速缓存的所述部分的所述指示包括对应于所述刷新操作的多个速度中的一个的值;且
所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
6.根据权利要求5所述的设备,其中:
所述一或多个额外部分中具有多个单层级单元的所述高速缓存的第一额外部分与所述多个速度中所述刷新操作的第一速度相关联;且
所述一或多个额外部分中具有多个多层级单元的所述高速缓存的第二额外部分与所述多个速度中所述刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
7.根据权利要求1所述的设备,其中所述一或多个参数包括存储在所述高速缓存的所述第一部分中的所述数据碎片化的指示、存储有效数据的所述高速缓存的所述第一部分的百分比的指示,或这两者。
8.根据权利要求1所述的设备,其进一步包括:
寄存器,其与所述控制器耦合且配置成存储从所述主机系统接收到的所述高速缓存的所述部分的所述指示,其中所述控制器进一步配置成使所述设备读取存储在所述寄存器处的所述高速缓存的所述部分的所述指示。
9.根据权利要求1所述的设备,其进一步包括:
一组寄存器,其与所述控制器耦合且配置成一起存储从所述主机系统接收到的所述高速缓存的所述部分的所述指示,其中所述一组寄存器中的每一寄存器与所述高速缓存的所述一或多个额外部分中的一个相关联,并且其中所述控制器进一步配置成使所述设备读取存储在所述一组寄存器处的所述高速缓存的所述部分的所述指示。
10.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
接收执行所述刷新操作的命令,其中所述命令包括用于所述刷新操作的所述高速缓存的所述部分的所述指示。
11.根据权利要求1所述的设备,其进一步包括:
寄存器,其与所述控制器耦合且配置成存储所述一或多个参数的指示,其中所述控制器进一步配置成使所述设备将所述一或多个参数的所述指示写入到所述寄存器。
12.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
至少部分地基于所述数据的所述子集包括有效数据,识别存储在所述高速缓存的所述第一部分中的所述数据的所述子集,其中写入所述数据的所述子集至少部分地基于所述识别;以及
至少部分地基于将所述数据的所述子集写入到所述高速缓存的所述第二部分,擦除存储在所述高速缓存的所述第一部分中的所述数据。
13.一种设备,其包括:
控制器,其配置成与存储器系统耦合,其中所述控制器配置成使所述设备:
从所述存储器系统接收与存储在所述存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包括具有多个单层级单元的所述第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;
至少部分地基于所述一或多个参数,识别所述一或多个额外部分中用于在所述存储器系统处执行的刷新操作的所述高速缓存的部分;以及
向所述存储器系统指示用于所述刷新操作的所述高速缓存的所识别部分。
14.根据权利要求13所述的设备,其中所述控制器进一步配置成使所述设备:
将所述高速缓存的所述所识别部分的指示写入到所述存储器系统处的寄存器。
15.根据权利要求13所述的设备,其中指示所述高速缓存的所述所识别部分包括:
传输执行所述刷新操作的命令,其中所述命令指示用于所述刷新操作的所述高速缓存的所述所识别部分。
16.根据权利要求13所述的设备,其中识别用于所述刷新操作的所述高速缓存的所述部分包括:
至少部分地基于与所述所识别部分相关联的所述刷新操作的速度,识别所述高速缓存的所述部分。
17.根据权利要求13所述的设备,其中所述控制器进一步配置成使所述设备:
轮询所述存储器系统处的寄存器,其中所述寄存器存储所述一或多个参数的指示。
18.根据权利要求13所述的设备,其中:
指示所述高速缓存的所述部分包括指示对应于所述刷新操作的多个速度中的一个的值;且
所述一或多个额外部分中的每一个与所述多个速度中的相应速度相关联。
19.根据权利要求18所述的设备,其中:
所述一或多个额外部分中具有多个单层级单元的所述高速缓存的第一额外部分与所述多个速度中所述刷新操作的第一速度相关联;且
所述一或多个额外部分中具有多个多层级单元的所述高速缓存的第二额外部分与所述多个速度中所述刷新操作的第二速度相关联,所述第一速度快于所述第二速度。
20.根据权利要求13所述的设备,其中:
识别用于所述刷新操作的所述高速缓存的所述部分至少部分地基于一或多个额外参数;且
所述一或多个额外参数包括与所述存储器系统相关联的电池寿命、所述存储器系统的当前位置、与所述存储器系统处的一或多个先前刷新操作相关联的数据、所述存储器系统的计算功率或其任何组合。
21.一种在存储器系统处存储代码的非暂时性计算机可读媒体,所述代码包括能够由处理器执行以进行以下操作的指令:
向主机系统传送与存储在所述存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包括具有多个单层级单元的所述第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;
至少部分地基于传送所述一或多个参数,从所述主机系统接收所述一或多个额外部分中用于刷新操作的所述高速缓存的部分的指示;以及
至少部分地基于执行所述刷新操作且至少部分地基于接收到所述高速缓存的所述部分的所述指示,将存储在所述高速缓存的所述第一部分中的所述数据的子集写入到所述高速缓存的所述一或多个额外部分中的所述高速缓存的第二部分。
22.根据权利要求21所述的非暂时性计算机可读媒体,其中将所述数据的所述子集写入到所述第二部分的所述指令能够由所述处理器执行以进行以下操作:
将所述数据的所述子集写入到所述高速缓存的所指示部分。
23.根据权利要求21所述的非暂时性计算机可读媒体,其中所述指令进一步能够由所述处理器执行以进行以下操作:
至少部分地基于接收到所述指示,从所述高速缓存的所述一或多个额外部分选择不同于所述所指示部分的所述第二部分,其中将所述数据的所述子集写入到所述第二部分至少部分地基于所述选择。
24.一种在主机系统处存储代码的非暂时性计算机可读媒体,所述代码包括能够由处理器执行以进行以下操作的指令:
从存储器系统接收与存储在所述存储器系统的高速缓存的第一部分中的数据相关联的一或多个参数,所述高速缓存包括具有多个单层级单元的所述第一部分和具有多个单层级单元或多个多层级单元的一或多个额外部分;
至少部分地基于所述一或多个参数,识别所述一或多个额外部分中用于在所述存储器系统处执行的刷新操作的所述高速缓存的部分;以及
向所述存储器系统指示用于所述刷新操作的所述高速缓存的所识别部分。
25.根据权利要求24所述的非暂时性计算机可读媒体,其中指示所述高速缓存的所述所识别部分的所述指令能够由所述处理器执行以进行以下操作:
将所述高速缓存的所述所识别部分的指示写入到所述存储器系统处的寄存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/240,832 | 2021-04-26 | ||
US17/240,832 US11625333B2 (en) | 2021-04-26 | 2021-04-26 | Configurable flush operation speed |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115374025A true CN115374025A (zh) | 2022-11-22 |
Family
ID=83508230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210441603.XA Pending CN115374025A (zh) | 2021-04-26 | 2022-04-25 | 可配置刷新操作速度 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11625333B2 (zh) |
CN (1) | CN115374025A (zh) |
DE (1) | DE102022108821A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115840663A (zh) * | 2021-09-18 | 2023-03-24 | 伊姆西Ip控股有限责任公司 | 刷写元数据的方法、电子设备和计算机程序产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10120800B2 (en) * | 2014-07-18 | 2018-11-06 | Oracle International Corporation | History based memory speculation for partitioned cache memories |
US20180181491A1 (en) * | 2016-12-22 | 2018-06-28 | Apple Inc. | Targeted cache flushing |
US10545685B2 (en) * | 2017-08-30 | 2020-01-28 | Micron Technology, Inc. | SLC cache management |
KR20210006129A (ko) * | 2019-07-08 | 2021-01-18 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
-
2021
- 2021-04-26 US US17/240,832 patent/US11625333B2/en active Active
-
2022
- 2022-04-12 DE DE102022108821.9A patent/DE102022108821A1/de active Pending
- 2022-04-25 CN CN202210441603.XA patent/CN115374025A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022108821A1 (de) | 2022-10-27 |
US11625333B2 (en) | 2023-04-11 |
US20220342826A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114171076A (zh) | 自适应缓冲器分割 | |
CN115904221A (zh) | 高速缓存块预算技术 | |
CN115705889A (zh) | 功率管理技术 | |
CN115373587A (zh) | 用于废弃项目收集的页面有效性表颜色 | |
CN115248662A (zh) | 动态超级块 | |
CN114822670A (zh) | 有效数据感知媒体可靠性扫描 | |
CN114968085A (zh) | 数据重定位操作技术 | |
CN114627916A (zh) | 用于存储器装置的状态信息检索 | |
CN114639418A (zh) | 取消映射操作技术 | |
CN116391179A (zh) | 多级存储器装置性能通知 | |
CN115374025A (zh) | 可配置刷新操作速度 | |
CN115373592B (zh) | 用于页线填充数据的设备、非暂时性计算机可读介质及方法 | |
CN116610251A (zh) | 执行写入操作的技术 | |
CN116360682A (zh) | 牺牲块池 | |
CN115729848A (zh) | 直接逻辑到物理地址映射 | |
CN116364136A (zh) | 用于在保持损失后增强系统性能的技术 | |
CN115951932A (zh) | 用于命令序列调整的技术 | |
CN115705887A (zh) | 存储器操作完成标记 | |
CN114647378A (zh) | 用于垃圾收集的有效数据标识 | |
CN114924689A (zh) | 经优化命令序列 | |
US20230342077A1 (en) | Unmap backlog in a memory system | |
CN114443514A (zh) | 用于存储器系统的存储器单元存取技术 | |
CN114691031A (zh) | 基于分片操作的存储器系统的存取 | |
CN114816236A (zh) | 数据迁移技术 | |
US11977758B2 (en) | Assigning blocks of memory systems |
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 |