CN115543186A - 使用命令序列分析管理存储器命令引擎 - Google Patents

使用命令序列分析管理存储器命令引擎 Download PDF

Info

Publication number
CN115543186A
CN115543186A CN202210656585.7A CN202210656585A CN115543186A CN 115543186 A CN115543186 A CN 115543186A CN 202210656585 A CN202210656585 A CN 202210656585A CN 115543186 A CN115543186 A CN 115543186A
Authority
CN
China
Prior art keywords
component
write
command
read
memory
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
Application number
CN202210656585.7A
Other languages
English (en)
Inventor
A·K·R·托卡拉
A·B·科拉里
R·里什
B·尼拉瓦尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115543186A publication Critical patent/CN115543186A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及使用命令序列分析管理存储器命令引擎。本文所描述的各种实施例提供使用(由主机系统发起的)对命令序列的分析来管理存储器命令组件,例如存储器系统的读取引擎或写入引擎。

Description

使用命令序列分析管理存储器命令引擎
技术领域
本公开的实施例大体上涉及存储器装置,并且更具体地,涉及使用(例如,由主机系统发起的)对命令序列的分析来管理存储器命令组件,例如存储器系统的读取引擎或写入引擎。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可使用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。
发明内容
根据本公开的方面,提供了一种系统。所述系统包括:存储器装置;写入组件,其将数据写入到所述存储器装置;读取组件,其从所述存储器装置读取数据;以及处理装置,其操作性地耦合到所述存储器装置,所述处理装置被配置成执行包括以下各项的操作:将从主机系统接收到的命令存储在所述系统的命令队列中;以及当从所述命令队列检索一或多个命令以用于执行时:分析所述命令队列以检测读取命令序列何时排成队列接下来从所述命令队列检索以供所述读取组件执行;以及响应于检测到所述读取命令序列:确定所述读取命令序列中的读取命令的数目;确定所述数目是否超过读取命令阈值;以及响应于确定所述数目超过所述读取命令阈值:确定所述写入组件的当前状态;并且基于所述写入组件的所述当前状态而启用或停用所述写入组件。
根据本公开的另一方面,提供了一种方法。所述方法包括:将从主机系统接收到的命令存储在存储器系统的命令队列中;以及当从所述命令队列检索一或多个命令以用于执行时:分析所述命令队列以检测写入命令序列何时排成队列接下来从所述命令队列检索以供存储器系统的写入组件执行;以及响应于检测到所述写入命令序列:确定所述写入命令序列中的写入命令的数目;确定所述数目是否超过写入命令阈值;以及响应于确定所述数目超过所述写入命令阈值:确定所述存储器系统的读取组件的当前状态;并且基于所述读取组件的所述当前状态而启用或停用所述读取组件。
根据本公开的又一方面,本公开提供了至少一个非暂时性机器可读存储媒体。所述非暂时性机器可读存储媒体包括指令,所述指令在由存储器系统的处理装置执行时使得所述处理装置执行包括以下各项的操作:将来自主机系统的命令存储在存储器系统的命令队列中;以及当从所述命令队列检索一或多个命令以用于执行时:在所述命令队列中分析相同命令类型的命令序列,所述命令序列排成队列接下来从所述命令队列检索以供所述存储器系统的读取组件或写入组件执行;基于所述写入组件的当前状态并且基于对所述命令序列的分析而使所述写入组件被启用或被停用;以及基于所述读取组件的当前状态并且基于对所述命令序列的分析而使所述读取组件被启用或被停用。
附图说明
根据下文给出的详细描述并且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于阐释和理解。
图1是示出根据本公开的一些实施例的包含存储器子系统的实例计算系统的框图。
图2是示出根据本公开的一些实施例的使用对命令序列的分析来管理存储器命令组件的实例存储器子系统的图式。
图3至9是根据本公开的一些实施例的用于使用对命令序列的分析来管理存储器系统的存储器命令组件(例如,读取引擎或写入引擎)的实例方法的流程图。
图10提供示出在一些实施例的上下文中计算环境的组件之间的交互的交互图,其中执行了如本文所描述的用于使用对命令序列的分析来管理存储器命令组件的方法。
图11是可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的方面涉及使用(例如,由主机系统发起的)对命令序列的分析来管理存储器命令组件(例如,引擎),例如存储器系统(例如,存储器子系统)的读取引擎或写入引擎。如本文所使用,存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可使用包含例如存储数据(例如,主机数据)的存储器装置之类的一或多个组件的存储器子系统。主机系统可将存取请求发送到存储器子系统,以便在存储器子系统处存储数据并且从存储器子系统读取数据。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求所指定,待读取或写入的数据在下文中被称为“主机数据”。主机请求可以包含主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、命名空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名称空间)可为主机数据的元数据的部分。元数据还可包含错误处理数据(例如,错误校正码(ECC)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的时期)、有效位图(哪些LBA或逻辑传递单元含有有效数据)等等。
存储器子系统可以对存储在存储器装置上的主机数据发起媒体管理操作,例如写入操作。例如,作为垃圾收集管理操作的部分,存储器子系统的固件可将先前写入的主机数据从存储器装置的方位重写到新位置。重写的数据(例如,如通过固件发起的)在下文中称为“垃圾收集数据”。
下文中的“用户数据”大体指代主机数据和垃圾收集数据。下文中的“系统数据”指由存储器子系统产生和/或维护以用于响应于主机请求而执行操作和用于媒体管理的数据。系统数据的实例包含但不限于系统表(例如,逻辑到物理存储器地址映射表,在本文中也称为L2P表)、来自日志记录的数据、高速暂存数据等。
存储器装置可以为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每个裸片可由一或多个平面构成。对于一些类型的非易失性存储器装置(例如,与非(NAND)型装置),每个平面由一组物理块构成。对于一些存储器装置,块是可擦除的最小区域。每个块由页集合构成。每个页由存储数据位的一组存储器单元构成。存储器装置可为原始存储器装置(例如,NAND),其在外部例如由外部控制器管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其是与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。
例如固态驱动器(SSD)等存储器系统传统地保持其相应的读取和写入组件(例如,引擎)处于启用状态(例如,处于活动状态或接通),而不考虑存储器系统当前正在处理的命令工作负载的类型(例如,长序列的读取命令或写入命令)。因此,在某些命令工作负载期间,常规存储器系统会消耗大量电力。例如,平均地,常规SSD(例如,外围组件互连件标准(PCIe)发生器3SSD)可在执行输入/输出操作的同时消耗大约3.5瓦,而不考虑当前正在处理的命令工作负载的类型。随着轻薄移动装置(例如,使用更轻电池、容量更小的膝上型计算机)的出现,降低其各种组件,包含其存储器系统的功耗的重要性只会增加。
本公开的方面通过使用(例如,从主机系统接收到的)对命令序列的分析来管理存储器命令组件(例如,引擎),例如存储器系统(例如,存储器子系统)的读取引擎或写入引擎,来解决上述和其它缺陷。例如,当主机系统使用读取和写入命令与存储器交互时,存储器系统(例如,SSD)可以通过分配和使用存储器系统的读取引擎或写入引擎的资源,一次处理一个命令。因此,在给定的时间点,可以在存储器系统上观察到特定类型的命令工作负载(例如,读取命令工作负载或写入命令工作负载)。例如,当主机系统(例如,膝上型计算机)正在启动时,耦合到主机系统的存储器系统将主要处理读取命令工作负载,而当在主机系统上复制文件时,存储器系统将主要处理写入命令工作负载。本文所描述的各种实施例提供了一种算法,所述算法通过基于存储器系统的当前或即将到来的命令工作负载(例如,基于对从主机系统接收到的命令的分析来确定排成队列以供执行的命令的模式)分离存储器系统的读取组件(例如,引擎)或写入组件(例如,引擎)并启用/停用读取组件、写入组件或这两者(例如,通过根据硬件映射接通/断开其特定组件(例如,IP或电路系统)),来管理(或协助管理)存储器系统的功耗。
具体地,一些实施例分析排成队列接下来供存储器系统执行的单个命令类型的命令序列(或系列)(例如,读取命令序列或写入命令序列),并且基于此分析而使存储器系统的写入组件(例如,引擎)启用或停用,使存储器系统的读取组件(例如,引擎)启用或停用,或使这两者启用或停用。例如,实施例可以将从主机系统接收到的命令存储在命令表(或命令队列)中,并分析命令表以检测读取命令序列何时排成队列接下来从命令表检索以供存储器系统执行,或者检测写入命令序列何时排成队列接下来从命令表检索以供存储器系统执行。基于所述分析,实施例可使写入组件被启用(例如,激活或接通)或被停用(例如,去激活或断开),或者使读取组件被启用或被停用。
另外,本文所描述的各种实施例鉴于时间延迟参数可使停用的写入组件或停用的读取组件被启用(例如,重新启用),这可以允许实施例减少或消除由于启用或停用存储器系统的特定存储器命令组件而引起的任何延迟(例如,通过针对特定类型的命令工作负载从节能模式(例如停用的读取或写入组件)移动到操作状态(例如启用的读取或写入组件))。例如,当写入组件在读取命令工作负载期间被停用(例如,断开)时,当在命令队列中检测到写入命令时,或者当在一定量的执行时间内预期在命令队列中达到写入命令时,可以重新启用(例如,再次接通)写入组件。同样,当读取组件在写入命令工作负载期间被停用(例如,断开)时,当在命令队列中检测到读取命令时,或者当在一定量的执行时间内预期在命令队列中达到读取命令时,可以重新启用(例如,再次接通)读取组件。
通过启用和停用存储器系统的写入组件、存储器系统的读取组件或这两者,各种实施例可更好地管理存储器系统的功耗。此外,各种实施例允许存储器系统在存储器系统正在处理存储器系统上命令(例如,执行输入/输出操作)时管理存储器系统的功耗。本文所描述的一些实施例可以在现有存储器系统,例如SSD中实施为固件(例如,命令处理程序中的算法),而无需修改现有存储器系统的硬件。
如本文所使用,存储器系统(例如,存储器子系统)的存储器命令引擎可以包括一或多个组件(例如,硬件或固件组件)以及存储器系统用于访问存储器系统的一或多个存储器装置的数据路径。如本文所使用,存储器系统的写入引擎可以包括存储器系统使用的一或多个组件和数据路径,以便于将数据写入存储器系统的一或多个存储器装置。如本文所使用,存储器系统的读取引擎可以包括存储器系统使用的一或多个组件和数据路径,以便于从存储器系统的一或多个存储器装置读取数据。如本文所使用,启用或停用存储器命令引擎可以包括使(或控制)与存储器命令引擎相关联的一或多个电压门(例如,存储器命令引擎组件的电压门)接通或断开。
如本文所使用,命令工作负载(或工作负载)可以指单个命令类型的命令序列,其中命令类型可以是存储器系统到主机系统类型(下文称为M2H命令类型),例如读取命令,或主机系统到存储器系统类型(下文称为H2M命令类型),例如写入命令。例如,M2H工作负载类型可以包括从主机系统接收并存储在存储器系统的命令队列中的读取命令序列(或系列),存储器系统从所述命令队列检索并执行命令。在另一实例中,H2M工作负载类型可以包括从主机系统接收并存储在存储器系统的命令队列中的写入命令序列(或系列)。如本文所使用,读取命令可以包括有助于存储器M2H数据传送的命令类型,并且写入命令可以包括有助于H2M数据传送的命令类型。可以基于特定命令的操作代码(opcode)确定与特定命令相关联的命令类型。
如本文所使用,存储器系统的命令表可以用作存储从主机系统检索到的命令并存储与索引或标签相关联的命令的命令队列。对于一些实施例,基于命令表中的可用空间将索引/标签分配到命令表中的命令(例如,使索引/标签与命令表中的命令相关联)的次序。命令通常从命令表中检索并按照存储器子系统接收命令的次序执行。
本文公开了使用对命令序列的分析来管理存储器命令引擎的一些实例,如本文所描述。
图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含SSD、快闪驱动器、通用串行总线(USB)快闪驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电、光学、磁性等的连接。
主机系统120可包含由处理器芯片组执行的处理器芯片组和软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、串行高级技术附件(SATA)控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。主机接口的实例包含但不限于SATA接口、PCIe接口、USB接口、光纤通道、串行连接的SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、DIMM接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步使用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1示出了存储器子系统110作为实例。通常,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含NAND型快闪存储器和就地写入存储器,例如三维交叉点(3D交叉点)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和3D NAND。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,每个存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示出的实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。尽管将图1中的实例存储器子系统110示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,并且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ECC操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,LBA、命名空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路可将从主机系统120接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地媒体控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统控制器115包含基于命令序列分析的存储器命令引擎管理器112(下文称为,存储器命令引擎管理器112)、写入引擎113和读取引擎114。根据各种实施例,存储器命令引擎管理器112基于分析存储在存储器子系统110的命令队列(例如,命令表)中的相同命令类型(例如,读取命令类型和写入命令类型)的命令序列,启用或促进关于启用或停用写入引擎113、读取引擎114或两者的操作,其中命令序列排成队列,接下来在命令队列中在存储器子系统110上执行(例如,由存储器子系统控制器115执行)。可从主机系统120接收或检索存储在命令队列中的命令。取决于实施例,存储器子系统110的命令队列可为存储器子系统控制器115的一部分(例如,实施在本地存储器119上)或在存储器子系统控制器115外部。另外,对于一些实施例,命令队列包括存储与索引或标记相关联的命令的命令表,其中将索引/标签分配到命令表中的命令(例如,使索引/标签与命令表中的命令相关联)的次序确定命令在命令队列(例如,命令表)中迭代和分析以确定命令序列的次序,以及(例如,由存储器子系统控制器115)从命令表检索命令以用于在存储器子系统110上执行的次序。
对于一些实施例,写入引擎113包括存储器子系统110的一或多个组件(例如,硬件IP或电路系统),其实现或促进在存储器装置130、140中的一或多个上写入数据。对于一些实施例,读取引擎114包括存储器子系统110的一或多个组件(例如,硬件IP或电路系统),其实现或促进来自存储器装置130、140中的一或多个的读取数据。根据一些实施例,存储器命令引擎管理器112使用映射(例如,硬件映射)来启用或停用写入引擎113中的一或多个组件。例如,存储器命令引擎管理器112可以使用映射来确定(例如,识别)存储器子系统110内的哪些组件与写入引擎113相关联(例如,实施);当写入引擎113启用时,识别的组件被启用,并且当写入引擎113停用时,识别的组件被停用。类似地,对于一些实施例,存储器命令引擎管理器112使用映射来启用或停用读取引擎114中的一或多个组件。例如,存储器命令引擎管理器112可以使用映射来确定(例如,识别)存储器子系统110内的哪些组件与读取引擎114相关联(例如,实施);当写入引擎113启用时,识别的组件被启用,并且当写入引擎113停用时,识别的组件被停用。对于一些实施例,一或多个组件与写入引擎113和读取引擎114两者相关联(例如,由其使用或由其共享),因此,停用写入引擎113或停用读取引擎114不会使得停用那些一或多个共享组件。
存储器命令引擎管理器112可以通过根据本文所描述的方法,例如关于图3-9所描述的方法中的一种执行操作来在存储器子系统110上实施各种实施例。例如,存储器命令引擎管理器112可以使得根据图3-9的方法300、400、500、600、700、800、900中的一或多种进行存储器子系统控制器115操作。
图2是示出根据本公开的一些实施例的使用命令序列分析来管理存储器命令引擎的实例存储器子系统204的图。如图所示,主机系统202耦合到存储器子系统204并与所述存储器子系统交互。存储器子系统204包括来自主机系统202的命令表210,所述命令表可以用作用于存储器子系统204的命令的命令队列。存储器子系统204包括命令处理程序212、写入引擎214、读取引擎216、主缓冲器218、存储器装置管理器220和存储器装置222。
命令处理程序212根据本文所描述的各种实施例实施写入引擎214、读取引擎216或这两者的启用和停用。命令处理程序212可以使用写入引擎214、读取引擎216或这两者来处理来自命令表210的命令的执行。写入引擎214包括一或多个组件(例如,硬件IP和电路系统),其有助于基于来自命令表210的写入命令的执行(经由主缓冲器218和存储器装置管理器220)将数据写入存储器装置222。类似地,读取引擎216包括基于来自命令表210的读取命令的执行而促进从存储器装置222(经由主缓冲器218和存储器装置管理器220)读取数据的一或多个组件(例如,硬件IP和电路系统)。如图所示,写入引擎214包括H2M直接存储器访问(DMA)组件250、中间数据缓冲器252、加密/压缩254组件、DMA描述队列230和DMA状态队列232。当执行写入命令时,数据从H2M DMA组件250流向中间数据缓冲器252和加密/压缩组件254,其中H2M DMA组件250和加密/压缩254组件在操作时访问DMA描述队列230和DMA状态队列232。最终,数据经由主缓冲器218和存储器装置管理器220流出写入引擎214并流向存储器装置222以进行存储。
还如图所示,读取引擎216包括M2H DMA组件260、中间数据缓冲器262、解密/解压缩组件264、DMA描述队列240和DMA状态队列242。当执行读取命令时,数据经由存储器装置管理器220和主缓冲器218从存储器装置222流向读取引擎216。在读取引擎216内,数据从解密/解压缩组件264流向中间数据缓冲器262和M2H DMA组件260,其中M2H DMA组件260和解密/解压缩组件264在操作时访问DMA描述队列240和DMA状态队列242。对于一些实施例,DMA描述队列230和DMA描述队列240表示由写入引擎214和读取引擎216共享的组件,并且DMA状态队列232和DMA状态队列242表示由写入引擎214和读取引擎216共享的另一组件。
命令表210根据标签(例如,1-256)存储来自主机系统202的命令,所述标签用于对命令表210内的命令编索引。如图所示,命令表210包括256个用于存储命令的标签槽。命令表210的大小或深度可以在不同的实施例之间变化。在图2中,命令表210当前存储从标签1至99的读取(RD)命令序列,以及从标签100至256的读取(RD)和写入(WR)命令的混合。取决于实施例,存储在命令表210中的命令可由存储器子系统204从主机系统202检索(例如,从主机系统202上的主机系统命令队列中提取或拉取,而不是从主机系统202推送到存储器子系统204)。另外,可以根据命令表210中的空间可用性将命令从主机系统202检索到命令表210中。例如,由于命令处理程序212从命令表210检索命令以用于执行,并且由于这种检索,命令表210中的空间变得可用,因此可以将更多命令从主机系统202检索到命令表210中。
对于在存储器子系统204上的命令处理/执行,命令处理程序212可以从命令表210的标签槽中检索(例如,移除)单个命令以用于执行。对于一些实施例,根据命令存储(例如,放置)到命令表210中的顺序次序,(例如,由命令处理程序212)从命令表210检索各个命令。根据一些实施例,命令表210内执行命令的顺序次序不是由标签的顺序次序确定的,而是由存储器子系统204接收命令的次序确定的。对于一些实施例,单个命令存储在当前可用的命令表210的单个标签槽中(例如,当前未存储命令或标记为可用)。例如,在当前存储的命令已从单个标签槽检索(例如,移除)以供命令处理程序212执行之后,单个标签槽可变得可用。对于一些实施例,将索引/标签分配到命令表210中的命令(例如,使索引/标签与命令表中的命令相关联)的次序确定命令在命令表210中迭代和分析以确定命令序列的次序。
命令处理程序212包括命令表分析器224和引擎控制器226。根据一些实施例,命令表分析器224和引擎控制器226中的一个或两个表示参考图1描述的存储器命令引擎管理器112的实施方案。对于一些实施例,命令表分析器224根据命令表210中存储命令的次序(例如,根据标签分配的次序)从命令表210检索各个命令,分析各个命令中的每一个的操作码(opcode),并且可以将每个单独的命令分类为M2H类型的命令(例如,读取命令类型),其中数据从存储器子系统204传送到主机系统202,或者分类为H2M类型的命令(例如,写入命令类型),其中数据从主机系统202传送到存储器子系统204。因此,当存储器子系统204正在处理读取工作负载时,命令表210可以主要由M2H命令占用。当存储器子系统204正在处理写入工作负载时,命令表210可以主要由H2M命令占用。
命令表分析器224实施本文所描述的各种实施例的一或多个特征。取决于实施例,命令表分析器224可以包括作为命令处理程序212的一部分的固件。命令表分析器224可以维护M2H命令计数器(例如,读取命令计数器)和H2M命令计数器(例如,写入命令计数器),并使用这两个计数器来分析命令表210。对于一些实施例,命令表分析器224分析命令表210以确定未来或即将到来的命令模式(例如,读取命令模式或写入命令模式),并使用此确定来(例如,经由引擎控制器226)控制何时启用(例如,接通)和停用(例如,断开)存储器子系统204的写入引擎214或读取引擎216中的至少一个。另外,对于一些实施例,命令表分析器224在确定是否启用或停用写入引擎214、读取引擎216或这两者时考虑延迟时间参数,这有助于减少或消除由于启用或停用引擎而引起的任何延迟。因此,命令表分析器224可以使存储器子系统204能够基于(由命令表分析器224)在命令表210中观察到排成队列接下来被检索以供命令处理程序212执行的(连续的)M2H命令(例如,读取命令)序列或(连续的)H2M命令(例如,写入命令)序列选择性地启用或停用写入引擎214或读取引擎216。另外,命令表分析器224可以使存储器子系统204能够选择性地启用或停用写入引擎214或读取引擎216,同时减少或消除由启用/停用写入引擎214或读取引擎216引起的延迟影响。命令表分析器224如何分析命令表210中的命令并启用/停用写入引擎214或读取引擎216的实例通过图3-9的实例方法来说明。
对于一些实施例,命令表分析器224通过相应地指示或触发引擎控制器226来促进启用或停用写入引擎214、读取引擎216或这两者。基于来自命令表分析器224的指令或信号,引擎控制器226可以单独地向写入引擎214、读取引擎216或这两者发送信号或指示写入引擎、读取引擎或这两者启用或停用自身。对于一些实施例,在停用写入引擎214之前(基于来自命令表分析器224的指令/信号),引擎控制器226经由来自写入引擎214的状态信号确定写入引擎214的状态。如果状态指示写入引擎214正忙,则当状态指示写入引擎214不再忙时,可以将写入引擎214的停用推迟一段时间。另外,对于一些实施例,在停用读取引擎216之前(基于来自命令表分析器224的指令/信号),引擎控制器226经由来自读取引擎216的状态信号确定读取引擎216的状态。如果状态指示读取引擎216正忙,则当状态指示读取引擎216不再忙时,可以将读取引擎216的停用推迟一段时间。
对于一些实施例,引擎控制器226通过启用或停用与写入引擎214相关联的一或多个组件(例如,硬件IP和电路系统)来启用或停用写入引擎214。例如,引擎控制器226可以具体地仅启用或停用写入引擎214中未与读取引擎216共享的那些组件,例如H2M DMA组件250、中间数据缓冲器252和加密/压缩组件254。为了启用或停用写入引擎214,引擎控制器226基于描述(例如,映射)写入引擎214的那些组件的映射数据来识别与写入引擎214相关联的一或多个组件。类似地,引擎控制器226通过启用或停用与读取引擎216相关联的一或多个组件(例如,硬件IP和电路系统)来启用或停用读取引擎216。例如,引擎控制器226可以具体地仅启用或停用读取引擎216中未与写入引擎214共享的那些组件,例如解密/解压缩组件264、中间数据缓冲器262和M2H DMA组件260。为了启用或停用读取引擎216,引擎控制器226基于描述(例如,映射)读取引擎216的那些组件的映射数据来识别与读取引擎216相关联的一或多个组件。
出于说明目的,假设在一个用例中,命令表210存储由主机系统202发起的200个读取命令的序列,并且已经从命令表210检索那些读取命令中的50个(例如,由命令处理程序212检索)并且正在使用读取引擎216执行。命令表分析器224可以按照将标签分配到命令表210中的命令的次序迭代命令表210。基于此迭代,命令表分析器224可以确定要从命令表210检索的下一个命令序列是150个读取命令的序列(其表示原始200个读取命令中剩余的150个命令),然后是至少一个写入命令。在从命令表210(例如,以小部分)检索150个读取命令的序列并使用读取引擎216执行时,预计写入引擎214处于空闲状态和未使用状态,命令表分析器224可以确定并使写入引擎214被停用。最终,当命令表分析器224确定接下来要从命令表210中检索到至少一个写入命令以供执行时(或者考虑到延迟时间参数,确定在一定量的时间内接下来将是至少一个写入命令),命令表分析器224可以确定并使写入引擎214被重新启用。另外,确定接下来要从命令表210检索至少一个写入命令以供执行,命令表分析器224可以确定下一个要从命令表210检索的命令序列,并确定写入命令序列是否至少具有一定长度(例如,写入命令的数目大于写入命令阈值),这将有利于命令表分析器224停用读取引擎216(因为它在处理写入命令序列期间保持空闲状态和未使用状态)。例如,写入命令阈值可以设置为50,并且写入命令序列可以包括100个写入命令,后跟至少一个读取命令。写入命令阈值可由存储器子系统204的用户设置。类似的阈值(例如,读取命令阈值)可用于确定何时停用写入引擎214,并且可由存储器子系统204的用户设置。
图3至9是根据本公开的一些实施例的用于使用对命令序列的分析来管理存储器系统的存储器命令引擎(例如,读取引擎或写入引擎)的实例方法的流程图。方法300、400、500、600、700、800、900可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300、400、500、600、700、800、900中的至少一种由图1的存储器子系统控制器115基于存储器命令引擎管理器112执行。另外或替代地,对于一些实施例,至少部分地由图1的存储器装置130的本地媒体控制器135执行方法300、400、500、600、700、800、900中的至少一种。虽然以特定顺序或次序示出,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。其它过程流程是可能的。
现在参考图3的方法300,对于一些实施例,方法300表示使用对命令序列的分析来管理例如存储器系统的读取引擎或写入引擎之类的存储器命令组件(例如,引擎)的方法。在操作302处,处理装置(例如,存储器子系统控制器115的处理器117)将从主机系统(例如,120)接收到的命令存储在存储器系统(例如,110)的命令队列中。主机系统(例如,120)生成用于存储器系统(例如,110)的命令,并且那些命令可被发送到存储器系统(例如,110)或由存储器系统从主机系统(例如,从主机系统上的队列)检索(例如,提取)。对于一些实施例,命令队列包括命令表(例如,210),其中每个命令与单个标签相关联地存储在命令表中。对于一些这样的实施例,存储器子系统(例如,110)接收命令的次序确定从命令表中检索并执行命令的次序,并且因此确定命令表中何时存在单个命令类型(例如,读取命令类型或写入命令类型)的命令序列。
对于各种实施例,当从命令队列中检索一或多个命令(例如,读取命令和写入命令)以供执行(例如,由处理装置执行)时,执行操作304至308。例如,当从命令队列检索一或多个命令以供执行时,可以响应于条件(例如,有新的读取命令或写入命令存储在命令表210中)执行或者定期(例如,基于某一时间间隔)执行操作304至308。
在操作304处,处理装置(例如,117)在命令队列中分析(例如,观察)相同命令类型(例如,M2H/读取命令类型或D2H/写入命令类型)的命令序列,其中命令序列被排成队列,接下来从命令队列中检索以供存储器系统(例如110)的读取组件(例如,114)或写入组件(例如,113)(在存储器子系统110的存储器装置130上)执行。对于一些实施例,分析命令队列中的命令序列(相同命令类型)包括根据将标签分配到命令队列(例如,命令表)中的命令(例如,使标签与命令队列中的命令相关联)的次序迭代遍历命令队列。在迭代期间,处理装置可以基于命令的操作码对每个命令的命令类型(例如,读取命令类型或写入命令类型)进行分类。
在操作306处,基于对命令序列的分析(在操作304处)和写入组件(例如,113)的当前状态,处理装置(例如,117)使存储器系统的写入组件(例如,113)启用或停用。对于一些实施例,操作302、304和306的执行由图4和5的方法400和500说明。另外,在操作308处,基于对命令序列的分析(在操作304处)和读取组件(例如,113)的当前状态,处理装置(例如,117)使存储器系统的读取组件被启用或被停用。对于一些实施例,操作302、304和308的执行由图6和7的方法600和700说明。
现在参考图4的方法400,对于一些实施例,方法400表示使用对命令序列的分析来管理存储器系统的写入组件(例如,引擎)的方法。在操作402处,处理装置(例如,存储器子系统控制器115的处理器117)将从主机系统(例如,120)接收到的命令存储在存储器系统(例如,110)的命令队列中。对于一些实施例,操作402类似于参考图3描述的方法300的操作302。
对于各种实施例,当从命令队列中检索一或多个命令(例如,读取命令和写入命令)以供执行(例如,由处理装置执行)时,执行操作404至412。例如,当从命令队列检索一或多个命令以供执行时,可以响应于条件(例如,有新的读取命令或写入命令存储在命令表210中)执行或者定期(例如,基于某一时间间隔)执行操作404至412。
在操作404处,处理装置(例如,117)分析命令队列,以检测读取命令序列何时排成队列,接下来从命令队列中检索以供存储器系统(例如,110)的读取组件(例如,114)执行。分析命令队列(以检测读取命令序列何时排成队列接下来从命令队列中检索)包括根据标签分配次序迭代遍历命令队列。
响应于检测到读取命令序列,在操作406处,处理装置(例如,117)确定读取命令序列中的读取命令的数目,并且在操作408处,确定读取命令的数目是否超过(例如,大于)读取命令阈值。取决于实施例,可以由存储器系统的制造商或存储器系统的用户设置读取命令阈值。另外,可以基于(例如,制造商或用户)测试和调整存储器系统来确定读取命令阈值。
响应于确定读取命令的数目超过读取命令阈值,在操作410处,处理装置(例如,117)确定存储器系统的写入组件(例如,113)的当前状态。写入组件的状态实例可以包含但不限于启用(例如,激活或接通)或停用(例如,去激活或断开),其中当写入组件启用时,写入组件的状态可以进一步为忙碌状态(例如,操作状态)或空闲状态。在操作412处,处理装置(例如,117)基于写入组件的当前状态而启用或停用写入组件(例如,113)。例如,通过确定写入组件的当前状态是否指示写入组件处于空闲状态(例如,启用和不忙),并且响应于指示写入组件处于空闲状态的当前状态而停用写入组件,处理装置可以基于写入组件的当前状态启用或停用写入组件。响应于指示写入组件未处于空闲状态的当前状态,处理装置可以在写入组件的当前状态改变以指示写入组件处于空闲状态之后停用写入组件。替代地,响应于指示写入组件未处于空闲状态的当前状态,处理装置可以重新确定读取命令序列的数目(因为自操作408处最后确定以来,它们可能已经改变),并且响应于确定(重新确定的)数目超过读取命令阈值而重新确定写入组件的当前状态,并且基于重新确定的写入组件的当前状态启用或停用写入组件。
对于一些实施例,停用写入组件可以包括停用与写入组件相关联的子组件(例如,未与读取组件共享的子组件)。如本文所描述,处理装置可以通过基于描述与写入组件相关联的子组件的映射数据来启用或停用写入组件的子组件而启用或停用写入组件。取决于实施例,映射数据可以由存储器系统的制造商存储在存储器系统(例如,本地存储器119)上。
现在参考图5的方法500,对于一些实施例,方法500表示使用对命令序列的分析来管理存储器系统的写入组件(例如,引擎)的方法。对于一些实施例,操作502、504、506、508分别类似于参考图4所描述的方法400的操作402、404、406、408。响应于确定读取命令的数目不超过(例如,不大于)读取命令阈值,在操作510处,处理装置(例如,117)确定存储器系统的写入组件(例如,113)的当前状态。随后,在操作512处,处理装置(例如,117)确定写入组件(例如,113)的当前状态是否指示写入组件被停用(例如,断开)。
根据各种实施例,处理装置(例如,117)不对指示写入组件未被停用(即,被启用)的写入组件的当前状态作出响应。然而,响应于确定写入组件的当前状态指示写入组件被停用,在操作514处,处理装置(例如,117)确定用于执行读取命令序列中任何剩余读取命令的时间(例如,存储器系统执行的估计时间),并且在操作516处,处理装置确定(已确定的)用于执行的时间是否少于延迟时间参数。
对于一些实施例,处理装置(例如,117)不对用于执行的时间不少于延迟时间参数作出响应。然而,响应于用于执行的时间少于延迟时间参数,在操作518处,处理装置(例如,117)启用写入组件(例如,113)。通过以这种方式基于延迟时间参数启用写入组件,各种实施例可以减少或消除当最终从命令队列检索写入命令以供执行时停用写入组件的延迟影响。
取决于实施例,可以由存储器系统的制造商或存储器系统的用户设置延迟时间参数。另外,可以基于(例如,制造商或用户)测试和调整存储器系统来确定延迟时间参数。用于写入组件和方法500的延迟时间参数可以不同于用于读取组件(和图7的方法700)的延迟时间参数。
现在参考图6的方法600,对于一些实施例,方法600表示使用对命令序列的分析来管理存储器系统的读取组件(例如,引擎)的方法。在操作602处,处理装置(例如,处理器117)将从主机系统(例如,120)接收到的命令存储在存储器系统(例如,110)的命令队列中。对于一些实施例,操作602类似于参考图4描述的方法400的操作402。
对于各种实施例,当从命令队列中检索一或多个命令(例如,读取命令和写入命令)以供执行(例如,由处理装置执行)时,执行操作604至612。例如,当从命令队列检索一或多个命令以供执行时,可以响应于条件(例如,有新的读取命令或写入命令存储在命令表210中)执行或者定期(例如,基于某一时间间隔)执行操作604至612。
在操作604处,处理装置(例如,117)分析命令队列,以检测写入命令序列何时排成队列,接下来从命令队列中检索以供存储器系统(例如,110)的写入组件(例如,113)执行。分析命令队列(以检测写入命令序列何时排成队列接下来从命令队列中检索)包括根据标签分配次序迭代遍历命令队列。
响应于检测到写入命令序列,在操作606处,处理装置(例如,117)确定写入命令序列中的写入命令的数目,并且在操作608处,确定写入命令的数目是否超过(例如,大于)写入命令阈值。取决于实施例,可以由存储器系统的制造商或存储器系统的用户设置写入命令阈值。另外,可以基于(例如,制造商或用户)测试和调整存储器系统来确定写入命令阈值。
响应于确定写入命令的数目超过写入命令阈值,在操作610处,处理装置(例如,117)确定存储器系统的读取组件(例如,114)的当前状态。读取组件的状态实例可以包含但不限于启用(例如,激活或接通)或停用(例如,去激活或断开),其中当读取组件启用时,读取组件的状态可以进一步为忙碌状态(例如,操作状态)或空闲状态。在操作612处,处理装置(例如,117)基于读取组件的当前状态启用或停用读取组件(例如,114)。例如,通过确定读取组件的当前状态是否指示读取组件处于空闲状态(例如,启用和不忙),并且响应于指示读取组件处于空闲状态的当前状态而停用读取组件,处理装置可以基于读取组件的当前状态启用或停用读取组件。响应于指示读取组件未处于空闲状态的当前状态,处理装置可以在读取组件的当前状态改变以指示读取组件处于空闲状态之后停用读取组件。替代地,响应于指示读取组件未处于空闲状态的当前状态,处理装置可以重新确定写入命令序列的数目(因为自操作608处最后确定以来,它们可能已经改变),并且响应于确定(重新确定的)数目超过写入命令阈值而重新确定读取组件的当前状态,并且基于重新确定的读取组件的当前状态启用或停用读取组件。
对于一些实施例,停用读取引擎可以包括停用与读取组件相关联的子组件(例如,未与读取组件共享的子组件)。如本文所描述,处理装置可以通过基于描述与读取引擎相关联的子组件的映射数据来启用或停用读取组件的子组件而启用或停用读取组件。取决于实施例,映射数据可以由存储器系统的制造商存储在存储器系统(例如,本地存储器119)上。
现在参考图7的方法700,对于一些实施例,方法700表示使用对命令序列的分析来管理存储器系统的读取组件(例如,引擎)的方法。对于一些实施例,操作702、704、706、708分别类似于参考图6描述的方法600的操作602、604、606、608。响应于确定写入命令的数目不超过(例如,不大于)写入命令阈值,在操作710处,处理装置(例如,117)确定存储器系统的读取组件(例如,114)的当前状态。随后,在操作712处,处理装置(例如,117)确定读取组件(例如,114)的当前状态是否指示读取组件被停用(例如,断开)。
根据各种实施例,处理装置(例如,117)不对指示读取组件未被停用(即,被启用)的读取组件的当前状态作出响应。然而,响应于确定读取组件的当前状态指示读取组件被停用,在操作714处,处理装置(例如,117)确定用于执行写入命令序列中任何剩余写入命令的时间(例如,存储器系统执行的估计时间),并且在操作716处,处理装置确定(已确定的)用于执行的时间是否少于延迟时间参数。
对于一些实施例,处理装置(例如,117)不对用于执行的时间不少于延迟时间参数作出响应。然而,响应于用于执行的时间少于延迟时间参数,在操作718处,处理装置(例如,117)启用读取组件(例如,114)。通过以这种方式基于延迟时间参数启用读取组件,各种实施例可以减少或消除当最终从命令队列检索写入命令以供执行时停用读取组件的延迟影响。
取决于实施例,可以由存储器系统的制造商或存储器系统的用户设置延迟时间参数。另外,可以基于(例如,制造商或用户)测试和调整存储器系统来确定延迟时间参数。用于读取组件和方法700的延迟时间参数可以不同于用于写入组件(和图5的方法500)的延迟时间参数。
现在参考图8的方法800,对于一些实施例,方法800表示使用对读取命令序列的分析来管理存储器系统的写入引擎214的方法。在操作802处,处理装置(例如,处理器117)确定命令表210中的读取命令序列中的读取命令的数目是否大于读取命令阈值。如果处理装置(例如,117)确定所述数目大于读取命令阈值,则方法800进行到操作806;否则,方法800进行到操作804。
在操作806处,处理装置(例如,117)确定存储器系统的写入引擎214是否处于空闲状态。如果处理装置(例如,117)确定写入引擎214处于空闲状态(在操作806处),则处理装置使写入引擎214被停用;否则,方法800返回到操作802(例如,因为写入引擎214处于忙碌状态)。
在操作804处,处理装置(例如,117)确定写入引擎214是否被停用(例如,断开)。如果处理装置(例如,117)确定写入引擎214被停用,则方法800进行到操作808;否则,处理装置不执行任何操作(810)。在操作808处,处理装置(例如,117)确定用于执行来自命令表210的待决(例如,剩余)读取命令的时间(例如,估计时间)是否少于延迟时间参数(例如,零延迟时间参数)。如果处理装置(例如,117)确定时间少于延迟时间参数(在操作808处),则处理装置使写入引擎214被启用;否则,处理装置不执行任何操作(810)。
现在参考图9的方法900,对于一些实施例,方法900表示使用对写入命令序列的分析来管理存储器系统的读取引擎216的方法。在操作902处,处理装置(例如,处理器117)确定命令表210中的写入命令序列中的写入命令的数目是否大于写入命令阈值。如果处理装置(例如,117)确定所述数目大于写入命令阈值,则方法900进行到操作906;否则,方法900进行到操作904。
在操作906处,处理装置(例如,117)确定存储器系统的读取引擎216是否处于空闲状态。如果处理装置(例如,117)确定读取引擎216处于空闲状态(在操作906处),则处理装置使读取引擎216停用;否则,方法900返回到操作902(例如,因为读取引擎216处于忙碌状态)。
在操作904处,处理装置(例如,117)确定读取引擎216是否被停用(例如,断开)。如果处理装置(例如,117)确定读取引擎216被停用,则方法900进行到操作908;否则,处理装置不执行任何操作(910)。在操作908处,处理装置(例如,117)确定用于执行来自命令表210的待决(例如,剩余)写入命令的时间(例如,估计时间)是否少于延迟时间参数(例如,零延迟时间参数)。如果处理装置(例如,117)确定时间少于延迟时间参数(在操作908处),则处理装置使读取引擎216被启用;否则,处理装置不执行任何操作(910)。
图10提供了交互图,其示出在一些实施例的上下文中计算环境的组件之间的交互,其中执行了如本文所描述的用于使用对命令序列的分析来管理存储器命令组件(例如,引擎)的方法。所述方法的操作可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,所述方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、写入组件(例如,113)、读取组件(例如,114)或其一些组合执行。虽然以特定顺序或次序示出操作,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。在图10所示的实例的上下文中,主机系统可以包含主机系统120,存储器子系统控制器可以包含存储器子系统控制器115,写入组件可以包含写入引擎113,并且读取组件可以包含读取引擎114。
如图所示,在操作1002处,主机系统120将一或多个命令发送到存储器子系统110。在操作1010处,存储器子系统控制器115从主机系统120接收一或多个命令。
在操作1012处,存储器子系统控制器115将一或多个命令存储在存储器子系统110的命令队列中。随后,在操作1014处,存储器子系统控制器115在命令队列中分析接下来由存储器子系统控制器115执行的相同命令类型的当前命令序列。操作1016处,基于对命令序列的分析(在操作1014处)和写入引擎113的当前状态,存储器子系统控制器115使写入引擎113被启用或被停用。在操作1032处,写入引擎113通过相应地促进存储器子系统控制器115的启用或停用来对存储器子系统控制器作出响应。在操作1018处,基于对命令序列的分析(在操作1014处)和读取引擎114的当前状态,存储器子系统控制器115使读取引擎114启用或停用。在操作1042处,读取引擎114通过相应地促进存储器子系统控制器115的启用或停用来对存储器子系统控制器作出响应。
图11示出呈计算机系统1100的形式的实例机器,在其内可执行指令集以使机器执行本文所论述的方法中的任何一或多种。在一些实施例中,计算机系统1100可与主机系统(例如,图1的主机系统120)对应,其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行本文所描述的操作。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接桥,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然示出单个机器,但是还应认为术语“机器”包含机器的任何集合,所述集合单独地或联合地执行指令的集合(或多个集合)以执行本文所论述的方法中的任何一或多种。
实例计算机系统1100包含处理装置1102、主存储器1104(例如,ROM、快闪存储器、例如SDRAM或Rambus DRAM(RDRAM)等DRAM)、静态存储器1106(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储装置1118,其经由总线1130彼此通信。
处理装置1102表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地说,处理装置1102可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置1102也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等等。处理装置1102被配置成执行指令1126,以用于执行本文所论述的操作和步骤。计算机系统1100还可包含网络接口装置1108以在网络1120上通信。
数据存储装置1118可包含机器可读存储媒体1124(也称为计算机可读媒体),其上存储有一或多个指令集1126或体现本文所描述的方法或功能中的任一或多种的软件。指令1126还可在其由计算机系统1100执行期间完全或至少部分地驻存在主存储器1104内和/或处理装置1102内,主存储器1104和处理装置1102也构成机器可读存储媒体。机器可读存储媒体1124、数据存储装置1118和/或主存储器1104可对应于图1的存储器子系统110。
在一个实施例中,指令1126包含实施与使用对命令序列的分析来管理本文所描述的存储器系统的写入组件(例如,引擎)相对应的功能的指令(例如,图1的存储器命令引擎管理器112)。尽管在实例实施例中将机器可读存储媒体1124示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令并且使机器执行本公开的方法中的任何一或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在这里且通常认为是引起所要结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于各自耦合到计算机系统总线的计算机可读存储媒体中,例如但不限于包含软盘、光盘、CD-ROM和磁性光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体。
本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考本公开具体实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种系统,其包括:
存储器装置;
写入组件,其将数据写入到所述存储器装置;
读取组件,其从所述存储器装置读取数据;以及
处理装置,其操作性地耦合到所述存储器装置,所述处理装置被配置成执行包括以下各项的操作:
将从主机系统接收到的命令存储在所述系统的命令队列中;以及
当从所述命令队列检索一或多个命令以用于执行时:
分析所述命令队列以检测读取命令序列何时排成队列接下来从所述命令队列检索以供所述读取组件执行;以及
响应于检测到所述读取命令序列:
确定所述读取命令序列中的读取命令的数目;
确定所述数目是否超过读取命令阈值;以及
响应于确定所述数目超过所述读取命令阈值:
确定所述写入组件的当前状态;并且
基于所述写入组件的所述当前状态而启用或停用所述写入组件。
2.根据权利要求1所述的系统,其中所述分析所述命令队列以检测所述读取命令序列何时排成队列接下来从所述命令队列检索以供所述读取组件执行包括:
根据所述一或多个命令存储在所述命令队列中的次序迭代遍历所述命令队列。
3.根据权利要求2所述的系统,其中所述命令队列包括命令表,每个命令与标签相关联地存储在所述命令表中,并且所述次序是基于将标签分配到所述命令表中存储的命令的次序来确定的。
4.根据权利要求1所述的系统,其中所述启用或停用所述写入组件包括基于描述与所述写入组件相关联的组件的映射数据而启用或停用所述写入组件的组件。
5.根据权利要求1所述的系统,其中所述基于所述写入组件的所述当前状态而启用或停用所述写入组件包括:
确定所述写入组件的所述当前状态是否指示所述写入组件处于空闲状态;以及
响应于确定所述写入组件的所述当前状态指示所述写入组件处于空闲状态,停用所述写入组件。
6.根据权利要求1所述的系统,其中所述基于所述写入组件的所述当前状态而启用或停用所述写入组件包括:
确定所述写入组件的所述当前状态是否指示所述写入组件处于空闲状态;以及
响应于确定所述写入组件的所述当前状态指示所述写入组件未处于空闲状态,在所述写入组件的所述当前状态改变之后停用所述写入组件以指示所述写入组件处于空闲状态。
7.根据权利要求1所述的系统,其中所述基于所述写入组件的所述当前状态而启用或停用所述写入组件包括:
确定所述写入组件的所述当前状态是否指示所述写入组件处于空闲状态;以及
响应于确定所述写入组件的所述当前状态指示所述写入组件未处于空闲状态:
重新确定所述读取命令序列的所述数目;以及
响应于确定重新确定的所述数目超过所述读取命令阈值:
重新确定所述写入组件的所述当前状态;并且
基于重新确定的所述写入组件的所述当前状态而启用或停用所述写入组件。
8.根据权利要求1所述的系统,其中所述操作包括:
响应于确定所述数目并不超过所述读取命令阈值:
确定所述写入组件的当前状态;
确定所述写入组件的所述当前状态是否指示所述写入组件被停用;以及
响应于确定所述写入组件的所述当前状态指示所述写入组件被停用:
确定用于执行所述读取命令序列中的任何其余读取命令的时间;
确定用于执行的所述时间是否少于延迟时间参数;以及
响应于确定用于执行的所述时间少于所述延迟时间参数,启用所述写入组件。
9.根据权利要求8所述的系统,其中所述延迟时间参数是用户定义的。
10.根据权利要求1所述的系统,其中所述读取命令阈值是用户定义的。
11.根据权利要求1所述的系统,其中所述处理装置为所述系统的存储器子系统控制器的部分,并且所述命令队列存储在所述存储器子系统控制器的本地存储器中。
12.一种方法,其包括:
将从主机系统接收到的命令存储在存储器系统的命令队列中;以及
当从所述命令队列检索一或多个命令以用于执行时:
分析所述命令队列以检测写入命令序列何时排成队列接下来从所述命令队列检索以供存储器系统的写入组件执行;以及
响应于检测到所述写入命令序列:
确定所述写入命令序列中的写入命令的数目;
确定所述数目是否超过写入命令阈值;以及
响应于确定所述数目超过所述写入命令阈值:
确定所述存储器系统的读取组件的当前状态;并且
基于所述读取组件的所述当前状态而启用或停用所述读取组件。
13.根据权利要求12所述的方法,其中所述分析所述命令队列以检测所述写入命令序列何时排成队列接下来从所述命令队列检索以供所述写入组件执行包括:
根据由所述命令队列从所述主机系统检索所述一或多个命令的次序迭代遍历所述命令队列。
14.根据权利要求12所述的方法,其中所述启用或停用所述读取组件包括基于描述与所述读取组件相关联的组件的映射数据而启用或停用所述读取组件的组件。
15.根据权利要求12所述的方法,其中所述基于所述读取组件的所述当前状态而启用或停用所述读取组件包括:
确定所述读取组件的所述当前状态是否指示所述读取组件处于空闲状态;以及
响应于确定所述读取组件的所述当前状态指示所述读取组件处于空闲状态,停用所述读取组件。
16.根据权利要求12所述的方法,其中所述基于所述读取组件的所述当前状态而启用或停用所述读取组件包括:
确定所述读取组件的所述当前状态是否指示所述读取组件处于空闲状态;以及
响应于确定所述读取组件的所述当前状态指示所述读取组件未处于空闲状态:
重新确定所述写入命令序列的所述数目;以及
响应于确定重新确定的所述数目超过所述写入命令阈值:
重新确定所述读取组件的所述当前状态;并且
基于重新确定的所述读取组件的所述当前状态而启用或停用所述读取组件。
17.根据权利要求12所述的方法,其包括:
响应于确定所述数目并不超过所述写入命令阈值:
确定所述读取组件的当前状态;
确定所述读取组件的所述当前状态指示所述读取组件被停用;以及
响应于确定所述读取组件的所述当前状态指示所述读取组件被停用:
确定用于执行所述写入命令序列中的任何其余写入命令的时间;
确定用于执行的所述时间是否少于延迟时间参数;以及
响应于确定用于执行的所述时间少于所述延迟时间参数,启用所述读取组件。
18.根据权利要求17所述的方法,其中所述延迟时间参数是用户定义的。
19.根据权利要求12所述的方法,其中所述写入命令阈值是用户定义的。
20.至少一种非暂时性机器可读存储媒体,其包括指令,所述指令在由存储器系统的处理装置执行时使得所述处理装置执行包括以下各项的操作:
将来自主机系统的命令存储在存储器系统的命令队列中;以及
当从所述命令队列检索一或多个命令以用于执行时:
在所述命令队列中分析相同命令类型的命令序列,所述命令序列排成队列接下来从所述命令队列检索以供所述存储器系统的读取组件或写入组件执行;
基于所述写入组件的当前状态并且基于对所述命令序列的分析而使所述写入组件被启用或被停用;以及
基于所述读取组件的当前状态并且基于对所述命令序列的分析而使所述读取组件被启用或被停用。
CN202210656585.7A 2021-06-14 2022-06-10 使用命令序列分析管理存储器命令引擎 Pending CN115543186A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/347,198 2021-06-14
US17/347,198 US11714574B2 (en) 2021-06-14 2021-06-14 Managing memory command engine using command sequence analysis

Publications (1)

Publication Number Publication Date
CN115543186A true CN115543186A (zh) 2022-12-30

Family

ID=84389861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210656585.7A Pending CN115543186A (zh) 2021-06-14 2022-06-10 使用命令序列分析管理存储器命令引擎

Country Status (2)

Country Link
US (1) US11714574B2 (zh)
CN (1) CN115543186A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714574B2 (en) 2021-06-14 2023-08-01 Micron Technology, Inc. Managing memory command engine using command sequence analysis
CN116909625A (zh) * 2023-09-13 2023-10-20 广东匠芯创科技有限公司 命令队列解析方法及其装置、电子设备、存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645601B2 (en) * 2010-06-11 2014-02-04 Smsc Holdings S.A.R.L. Methods and systems for performing serial data communication between a host device and a connected device
US9372526B2 (en) * 2012-12-21 2016-06-21 Intel Corporation Managing a power state of a processor
US9348405B2 (en) * 2013-12-24 2016-05-24 Intel Corporation Systems and techniques for control of storage device power states
KR102532084B1 (ko) * 2018-07-17 2023-05-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11093135B1 (en) * 2019-04-11 2021-08-17 Seagate Technology Llc Drive performance, power, and temperature management
US11714574B2 (en) 2021-06-14 2023-08-01 Micron Technology, Inc. Managing memory command engine using command sequence analysis

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714574B2 (en) 2021-06-14 2023-08-01 Micron Technology, Inc. Managing memory command engine using command sequence analysis
CN116909625A (zh) * 2023-09-13 2023-10-20 广东匠芯创科技有限公司 命令队列解析方法及其装置、电子设备、存储介质
CN116909625B (zh) * 2023-09-13 2023-12-12 广东匠芯创科技有限公司 命令队列解析方法及其装置、电子设备、存储介质

Also Published As

Publication number Publication date
US20220398035A1 (en) 2022-12-15
US11714574B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
US11422945B2 (en) Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes
CN115543186A (zh) 使用命令序列分析管理存储器命令引擎
US11604749B2 (en) Direct memory access (DMA) commands for noncontiguous source and destination memory addresses
US20230161509A1 (en) Dynamic selection of cores for processing responses
US20220050772A1 (en) Data block switching at a memory sub-system
US11157400B2 (en) Performing a media management operation based on changing a write mode of a data block in a cache
US20230195350A1 (en) Resequencing data programmed to multiple level memory cells at a memory sub-system
US11720490B2 (en) Managing host input/output in a memory system executing a table flush
US20220171713A1 (en) Temperature-aware data management in memory sub-systems
CN115639951A (zh) 在存储器子系统中实施自动速率控制
WO2022027578A1 (en) Memory overlay using host memory buffer
CN113377285A (zh) 用于读取干扰的预测性媒体管理
US11934676B2 (en) Memory command aggregation to improve sequential memory command performance
US12019892B2 (en) Multi-partition file system for storing video streams in a managed non-volatile memory device
US12019888B2 (en) Deferred zone adjustment in zone memory system
CN113939797B (zh) 用于存储器子系统的锁定管理
WO2023212848A1 (en) Multi-partition file system for storing video streams in managed non-volatile memory device
CN113918479B (zh) 用于并行独立线程的低位密度存储器高速缓存的方法及系统
US20230409239A1 (en) Efficient command fetching in a memory sub-system
US20240069774A1 (en) Deferred zone adjustment in zone memory system
US20230266897A1 (en) Dynamic zone group configuration at a memory sub-system
US20230061879A1 (en) Configurable Storage Granularity for Video/Image Recording
CN117296021A (zh) 降低存储器系统的功耗
CN114550780A (zh) 存储器中编程或擦除操作的恢复
CN114647377A (zh) 基于有效存储器单元计数的数据操作

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