CN115951932A - 用于命令序列调整的技术 - Google Patents
用于命令序列调整的技术 Download PDFInfo
- Publication number
- CN115951932A CN115951932A CN202211209990.0A CN202211209990A CN115951932A CN 115951932 A CN115951932 A CN 115951932A CN 202211209990 A CN202211209990 A CN 202211209990A CN 115951932 A CN115951932 A CN 115951932A
- Authority
- CN
- China
- Prior art keywords
- commands
- command
- subset
- queue
- sequence
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请针对用于命令序列调整的技术。存储器系统或主机系统可在所述存储器系统或主机系统确定队列中的命令的子集是测试模式的一部分的情况下例如通过确定所述子集的每一命令是否对应于相同大小的数据来调整所述队列中的命令集的次序。可对所述命令集进行重排序,使得与所述测试模式相关联的命令的所述子集是连续的或背对背的。在某些情况下,可对与测试模式相关联的命令的所述子集进行重排序,使得命令的所述子集的逻辑地址(例如,逻辑块地址)是连续的。
Description
交叉参考
本专利申请要求毕(Bi)于2021年10月8日提交的标题为“用于命令序列调整的技术(TECHNIQUES FOR COMMAND SEQUENCE ADJUSTMENT)”的第17/497,610号美国专利申请的优先权,该美国专利申请转让给本受让人且以引用的方式明确地并入本文中。
技术领域涉及用于命令序列调整的技术。
背景技术
存储器装置广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。举例来说,二进制存储器单元可编程到常常对应于逻辑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展示根据如本文中所公开的实例支持用于命令序列调整的技术的主机系统的框图。
图7和8展示根据如本文中所公开的实例的流程图,其示出支持用于命令序列调整的技术的一或多种方法。
具体实施方式
存储器系统可通过作为测试模式的一部分接收和执行来自主机系统的命令集来测量系统性能(例如,读取性能、写入性能)。举例来说,测试模式可包含执行一定数量的写入命令以将目标测试文件写入到新打开的存储器块,读回目标测试文件一或多次(例如,三次)以计算平均序列读取性能,以及重写(例如,覆写)目标测试文件一或多次(例如,三次)以计算平均序列写入性能。然而,在某些情况下,主机系统还可在测试模式期间发射来自后台任务的命令(例如,并非测试模式的一部分的命令)。在某些情况下,与后台任务相关联的命令可在与测试模式相关联的命令之间执行,这可能由于致使存储器系统在执行测试模式命令和后台任务命令之间切换而降低系统性能。
本公开描述用于在存储器系统或主机系统确定队列(例如,存储器系统处的队列或主机系统处的队列)中的命令集的子集与测试模式相关联的情况下调整所述命令集的次序的技术。举例来说,存储器系统或主机系统可调整命令集的序列或次序使得与测试模式相关联的命令是连续的(例如,使得测试模式命令中的每一个循序或背对背执行)。此外,存储器系统或主机系统可调整命令集的次序使得测试模式命令的逻辑地址(其中的每一个可被称为逻辑块地址(LBA))是连续的。在非限制性实例中,命令的重排序集合中的第一命令可对应于0到127的LBA,命令的重排序集合中的第二命令可对应于128到255的LBA,等等。如本文所描述调整命令的序列可例如通过允许存储器系统连续地执行测试模式来改进测试模式性能。
首先参考图1到2在系统、装置和电路的上下文中描述本公开的特征。参考图3和4在过程流程的上下文中描述本公开的特征。参考图5-8,通过涉及用于命令序列调整的技术的设备图和流程图来进一步说明且在所述设备图和流程图的上下文中描述本公开的这些和其它特征。
图1示出根据如本文中所公开的实例支持用于命令序列调整的技术的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是被配置成致使主机系统105根据如本文所描述的实例执行各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,并且在一些情况下,可包含处理器芯片组及通过处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含被配置成用于与存储器系统110或其中的装置通信的应用。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器),及存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110,例如将数据写入到存储器系统110及从存储器系统110读取数据。尽管图1中展示一个存储器系统110,但是主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可被配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传送控制、地址、数据和其它信号)。物理主机接口的实例可包含(但不限于)SATA接口、UFS接口、eMMC接口、PCIe接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI),和低功率双数据速率(LPDDR)接口。在一些实例中,一或多个这种接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每一存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每种类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管图1的实例中展示两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含一个以上存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),并且可以是被配置成致使存储器系统110根据如本文所描述的实例执行各种操作的控制器或控制组件的实例。存储器系统控制器115还可与存储器装置130耦合及通信以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据,或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130的所要存取。在某些情况下,存储器系统控制器115可与主机系统105及一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的相应信号。
存储器系统控制器115可以被配置成用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、比如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、介质管理操作、后台刷新、健康监测,及与来自主机系统105的命令相关联的逻辑地址(例如,LBA)和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址或物理页地址)之间的地址转译。
存储器系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有用以执行本文中归于存储器系统控制器115的操作的专用(例如,硬译码)逻辑的电路系统。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115使用以用于例如与本文中归于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,在从存储器装置130读取或向存储器装置130写入的情况下,数据可存储在本地存储器120中,并且数据可在本地存储器120内可用以用于根据高速缓存策略由主机系统105后续检索或操纵(例如,更新)(例如,在相对于存储器装置130的减少的时延的情况下)。
尽管图1中的存储器系统110的实例已示出为包含存储器系统控制器115,但在某些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地分别依赖于外部控制器(例如,由主机系统105实施)或者可在存储器装置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存储器单元提供更大的存储密度,但在一些情况下,可涉及用于支持电路系统的更窄读取或写入容限或更大复杂性。
在一些情况下,平面165可指代块170的群组,并且在一些情况下,可在不同平面165内发生并行操作。举例来说,可在不同块170内的存储器单元上执行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,个别块170可称为物理块,并且虚拟块180可指可在其内发生并行操作的块170的群组。举例来说,可在分别在平面165-a、165-b、165-c和165-d内的块170-a、170-b、170-c和170-d上执行并行操作,且块170-a、170-b、170-c和170-d可统称为虚拟块180。在一些情况下,虚拟块可包含来自不同存储器装置130的块170(例如,包含存储器装置130-a及存储器装置130-b的一或多个平面中的块)。在一些情况下,虚拟块内的块170可在其相应平面165内具有相同的块地址(例如,块170-a可为平面165-a的“块0”,块170-b可为平面165-b的“块0”,等等)。在一些情况下,在不同平面165中执行并行操作可受制于一或多个限制,例如在不同页175内的存储器单元上执行并行操作,所述存储器单元在其相应平面165内具有相同页地址(例如,与命令解码、页地址解码电路系统,或跨平面165共享的其它电路系统相关)。
在一些情况下,块170可包含组织成行(页175)和列(例如串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其或者可称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取及编程(例如,写入),但是可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的部分同时编程或读取)的存储器的最小单位(例如,存储器单元集合),且块170可以是可独立地擦除(例如,作为单个擦除操作的部分同时擦除)的存储器的最小单位(例如,存储器单元集合)。另外,在一些情况下,NAND存储器单元可在其可用新数据重写之前擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新已使用的页175。
系统100可包含支持用于命令序列调整的技术的任何数量的非暂时性计算机可读介质。举例来说,主机系统105、存储器系统控制器115或存储器装置130(例如,本地控制器135)可包含或以其它方式可存取一或多个非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令(例如,固件)以执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此些指令可致使主机系统105、存储器系统控制器115或存储器装置130执行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115来提供受管理存储器系统,所述受管理存储器系统可包含(例如)一或多个存储器阵列及与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例是受管理NAND(MNAND)系统。
在一些情况下,存储器系统110或主机系统105可支持在存储器系统110或主机系统105确定队列(例如,含有由主机系统105发射的命令的存储器系统110处的队列,或含有待发射到存储器系统110的命令的主机系统105处的队列)中的命令集的子集与测试模式相关联的情况下调整所述命令集的次序。举例来说,存储器系统110或主机系统105可调整命令集的序列或次序使得与测试模式相关联的命令是连续的(例如,使得测试模式命令中的每一个循序或背对背执行)。此外,存储器系统110或主机系统105可调整命令集的次序使得测试模式命令的LBA是连续的。如本文所描述调整命令的序列可例如通过允许存储器系统110连续地执行测试模式来改进测试模式性能。
图2示出根据如本文中所公开的实例支持用于命令序列调整的技术的系统200的实例。系统200可以是如参考图1或其方面所描述的系统100的实例。系统200可包含存储器系统210,其被配置成存储从主机系统205接收的数据,且如果由主机系统205使用存取命令(例如,读取命令或写入命令)请求,则将数据发送到主机系统205。系统200可实施如参考图1所描述的系统100的方面。举例来说,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
如本文所描述,存储器系统210可包含存储器装置240,以例如响应于从主机系统205接收存取命令而存储在存储器系统210与主机系统205之间传递的数据。存储器装置240可包含如参考图1所描述的一或多个存储器装置。举例来说,存储器装置240可包含NAND存储器、PCM、自选存储器、3D交叉点、其它基于硫族化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM,或OxRAM。
存储器系统210可包含存储控制器230以用于控制直接进出存储器装置240的数据的传递,例如用于存储数据、检索数据,和确定待将数据存储在其中和待从其检索数据的存储器位置。存储控制器230可使用特定针对每一类型的存储器装置240的协议直接地或经由总线(未图示)与存储器装置240通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包含多个存储控制器230,例如,用于每一类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施如参考图1所描述的本地控制器135的方面。
存储器系统210可另外包含用于与主机系统205通信的接口220,和用于临时存储正在主机系统205与存储器装置240之间传递的数据的缓冲器225。接口220、缓冲器225及存储控制器230可用于例如由数据路径250所展示在主机系统205与存储器装置240之间转译数据,并且可统称为数据路径组件。
在传递期间使用缓冲器225临时地存储数据可允许在处理命令时缓冲数据,由此减少命令之间的时延且允许与命令相关联的任意数据大小。这还可允许处理命令突发,并且一旦突发停止,就可存储或发射(或两者)所缓冲的数据。缓冲器225可包含相对快速的存储器(例如,一些类型的易失性存储器,例如SRAM或DRAM),或硬件加速器或这两者,以允许快速地将数据存储到缓冲器225和从缓冲器225检索数据。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传递的数据路径切换组件。
数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,在完成存取命令后,相关联数据可能不再维持于缓冲器225中(例如,可用额外存取命令的数据覆写)。此外,缓冲器225可以是非高速缓存缓冲器。也就是说,主机系统205可不直接从缓冲器225读取数据。举例来说,可将读取命令添加到队列,而无需将地址与已在缓冲器225中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含用于执行从主机系统205接收的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是如参考图1所描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265,及存储队列270)可用于控制存取命令的处理及相应数据的移动。例如,如果存储器系统210并行处理来自主机系统205的一个以上存取命令,则这可能是有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215及存储控制器230处描绘命令队列260、缓冲器队列265及存储队列270。然而,队列(如果使用)可位于存储器系统210内的任何位置。
在主机系统205与存储器装置240之间传递的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。举例来说,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件而不是总线235使用数据路径250。存储器系统控制器215可通过经由总线235与数据路径组件通信(例如,使用特定针对存储器系统210的协议)而控制如何及是否在主机系统205与存储器装置240之间传递数据。
如果主机系统205将存取命令发射到存储器系统210,则接口220可例如根据协议(例如,UFS协议或eMMC协议)接收命令。因此,接口220可被视为存储器系统210的前端。在接收到每一存取命令后,接口220可例如经由总线235将命令传送到存储器系统控制器215。在一些情况下,可通过接口220将每一命令添加到命令队列260,以将命令传送到存储器系统控制器215。
存储器系统控制器215可确定已基于(例如,使用)来自接口220的通信而接收到存取命令。在一些情况下,存储器系统控制器215可确定已通过从命令队列260检索命令而接收到存取命令。在例如已经由存储器系统控制器215从命令队列260检索命令之后,可将所述命令从命令队列260移除。在一些情况下,存储器系统控制器215可致使接口220例如经由总线235从命令队列260移除命令。
在确定已接收到存取命令后,存储器系统控制器215可执行存取命令。对于读取命令,这可意味着从存储器装置240获得数据及将数据发射到主机系统205。对于写入命令,这可意味着从主机系统205接收数据及将数据移动到存储器装置240。
在任一情况下,存储器系统控制器215可将缓冲器225(尤其)用于从主机系统205接收的或发送到主机系统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中且存储在缓冲器225内时,命令可保持在缓冲器队列265中。如果已完成命令的处理(例如,如果对应于存取命令的数据已传递离开缓冲器225),则可例如通过存储器系统控制器215从缓冲器队列265移除命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外被配置成用于与存储器装置240相关联的操作。举例来说,存储器系统控制器215可执行或管理操作,例如耗损均衡操作、垃圾收集操作、比如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、介质管理操作、后台刷新、健康监测,及与来自主机系统205的命令相关联的逻辑地址(例如,LBA)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址或物理页地址)之间的地址转译。也就是说,主机系统205可发布指示一或多个LBA的命令,并且存储器系统控制器215可识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个邻接LBA可对应于非邻接的物理块地址。在一些情况下,存储控制器230可被配置成结合或代替存储器系统控制器215执行以上操作中的一或多个。在一些情况下,存储器系统控制器215可执行存储控制器230的功能并且可省略存储控制器230。
在某些情况下,主机系统205可包含命令队列261。命令队列261可存储例如存取命令等命令,然后将命令发射到存储器系统210(例如,存储器系统210的命令队列260)。在某些情况下,主机系统205可将命令从命令队列261发射到存储器系统210的接口220。
在某些情况下,存储器系统210或主机系统205可支持在存储器系统210或主机系统205确定队列(例如,含有由主机系统205从命令队列261发射的命令的存储器系统210处的命令队列260,或含有待发射到存储器系统210的命令的主机系统205处的命令队列261)中的命令集的子集与测试模式相关联的情况下调整所述命令集的次序。举例来说,存储器系统210或主机系统205可调整命令队列260或命令队列261中的命令集的序列或次序,使得与测试模式相关联的命令是连续的(例如,使得测试模式命令中的每一个循序地或背对背执行)。在某些情况下,可由存储器系统控制器215或与主机系统205相关联的控制器调整命令的次序。在与主机系统205相关联的控制器调整命令的次序的情况下,与主机系统205相关联的控制器可调整存储在命令队列261中的命令的次序。
此外,存储器系统210或主机系统205可调整命令集的次序使得测试模式命令的LBA是连续的。如本文所描述调整命令的序列可例如通过允许存储器系统210连续地执行测试模式来改进测试模式性能。
图3示出根据如本文中所公开的实例支持用于命令序列调整的技术的过程流程300的实例。过程流程300可由存储器系统(例如参考图1和2描述的存储器系统110)的组件执行。举例来说,过程流程300可分别由存储器系统或存储器装置(或这两者)的控制器(例如,存储器系统控制器115或本地控制器135)执行,如参考图1所描述。可实施过程流程300以减少时延和功率消耗且增加系统性能,以及实现其它益处。过程流程300的方面可由控制器以及其它组件实施。另外或替代地,过程流程300的方面可实施为存储在存储器中的指令(例如,存储在与存储器系统控制器115或本地控制器135耦合的存储器中的固件)。举例来说,所述指令如果由控制器(例如,存储器系统控制器115、本地控制器135)执行,则可致使控制器执行过程流程300的操作。在过程流程300的以下描述中,可以与所展示的次序不同的次序执行操作。举例来说,也可从过程流程300省略特定操作,或可将其它操作添加到过程流程300。
在305处,可接收命令集。举例来说,存储器系统可从主机系统接收命令集。在一些实例中,命令集可包含存储在存储器装置中的一或多个存储器装置的块中的存取命令,例如读取命令、写入命令或擦除命令,以及其它实例。
在310处,可存储命令集。举例来说,存储器系统可使用队列中的第一序列来存储命令集,所述队列例如命令队列260、缓冲器队列265、存储队列270或其组合,如参考图2所描述。举例来说,如果命令集包含六个命令(即,第一命令到第六命令),则第一序列可指示将执行第一命令,接着将执行第二命令(例如,在完成第一命令之后),接着将执行第三命令,等等,直至已执行命令集的命令中的每一个。在某些情况下,第一序列可反映命令集的每一命令从主机系统被接收的次序。
在315处,可确定命令集的子集中的命令是否为测试模式的一部分。举例来说,存储器系统可确定命令的子集是否为与用于测量存储器系统的性能的测试模式(例如,标竿分析模式)相关联的写入命令,所述性能例如写入速度或读取性能,以及其它实例。测试模式可包含执行一定数量的写入命令以将目标测试文件写入到新打开的存储器块,读回目标测试文件一或多次(例如,三次)以计算平均序列读取性能,以及重写(例如,覆写)目标测试文件一或多次(例如,三次)以计算平均序列写入性能。
在某些情况下,存储器系统可通过确定子集的命令中的每一个是否为与相同大小的数据相关联的写入命令来确定命令的子集是否为测试模式的一部分。在非限制性实例中,作为写入目标测试文件的一部分,主机系统可发布一或多个写入命令以使用共同组块大小(例如,512千字节(KB)组块大小)写入目标测试文件。因此,如果存储器系统检测到命令的子集的每一命令指示待写入的相同大小的数据,则存储器系统可确定命令的子集是测试模式的一部分。
在某些情况下,可在315处确定命令集的子集中的命令不是测试模式的一部分。因此,在320处,可执行命令集。举例来说,存储器系统可通过根据第一序列(例如,根据命令从主机系统接收的次序)执行命令中的每一个来执行命令集。
在325处,如果确定命令集的子集中的命令是测试模式的一部分,则可配置命令集的第二序列。举例来说,存储器系统可通过调整第一序列的次序(例如,将执行命令集的次序)来配置第二序列。在某些情况下,第二序列可指示命令的子集的每一命令的LBA是连续的(例如,待执行的第一命令的LBA低于待在第一命令之后执行的第二命令的LBA)。
在非限制性实例中,命令集可包含根据第一序列存储在队列中的四个命令(例如,循序地存储第一命令到第四命令)。第一命令可指示0到127的LBA(例如,第一命令可具有512KB的组块大小),第二命令指示256到383的LBA(例如,第二命令可具有512KB的组块大小),第三命令可指示10240的LBA且具有4KB的组块大小,且第四命令可指示128到255的LBA(例如,第四命令可具有512KB的组块大小)。
因为第一命令、第二命令和第四命令各自指示相同大小的数据(例如,512KB组块大小),所以存储器系统可确定第一命令、第二命令和第四命令是测试模式的一部分。因此,存储器系统可使用第二序列配置命令存储在队列中的次序,使得所述次序指示将执行第一命令,继之以第四命令(例如,因为第四命令的LBA在第一命令之后),继之以第二命令,继之以第三命令。换句话说,存储器系统可对命令的子集进行重排序,使得命令的LBA等于先前命令的LBA加上先前命令的组块大小。
在330处,可执行命令的子集。举例来说,存储器系统可按由第二序列(例如,325处配置)指示的次序执行命令的子集。在某些情况下,执行命令的子集可包含将与命令的子集的至少一个命令相关联的数据写入到存储器单元的新打开的块(例如,第一块)。举例来说,作为测试模式的一部分,存储器系统可打开存储器的第一块以记录目标测试文件,且随后将命令的子集中指示的数据写入到第一块。
在某些情况下,将命令的子集写入到第一块可包含将每一命令的数据写入到连续物理地址(例如,由命令的子集的LBA指示的存储器单元的物理地址可以是连续的),例如连续物理页地址。举例来说,子集中执行的第一命令可包含将数据写入到物理地址的第一集合,子集中执行的第二命令可包含将数据写入到紧接在物理地址的第一集合之后的物理地址的第二集合,等等,直至已执行子集中的每一写入命令。在某些情况下,将目标测试文件写入到连续物理地址可增加写入性能,以及增加读取性能(如果随后读取目标测试文件)。
在某些情况下,在335处,可接收取消映射命令。举例来说,存储器系统可从主机系统接收取消映射命令。取消映射命令可指示作为测试模式的一部分写入的数据(例如,330处写入的数据)将被擦除。在一些实例中,接收取消映射命令可指示测试模式的结束。因此,响应于接收到取消映射命令,存储器系统可从第一块擦除作为测试模式的一部分写入的数据。
在某些情况下,在340处,测试模式可结束。举例来说,存储器系统可响应于接收到取消映射命令、执行取消映射命令或这两者而确定结束测试模式。另外或替代地,存储器系统可响应于命令的第二子集满足命令的阈值数量而确定测试模式的结束。举例来说,如果存储器系统检测到一定数量的随机命令(例如,并非测试模式的一部分的一定数量的命令,比如与后台任务相关联的命令),则存储器系统可确定结束测试模式。在一些实例中,所述阈值数量可以是16,但应了解,其它数量是可能的。
在某些情况下,在345处,可执行命令的第二子集。举例来说,在退出测试模式之后,存储器系统可执行在310处存储在队列中的不与测试模式相关联的命令的其余部分(例如,第二子集)。命令的第二集合可以是例如读取、写入或擦除命令等存取命令或者由存储器系统从主机系统接收的任何其它命令的实例。在一些实例中,例如如果命令的第二子集包含写入命令,则命令的第二子集可在不同于用于执行与测试模式相关联的写入命令的块的块上执行。
过程流程300的方面可由控制器以及其它组件实施。另外或替代地,过程流程300的方面可实施为存储于存储器中的指令(例如,存储于与存储器系统耦合的存储器中的固件)。举例来说,所述指令在由控制器(例如,存储器系统控制器115)执行时可致使控制器执行过程流程300的操作。
图4示出根据如本文中所公开的实例支持用于命令序列调整的技术的过程流程400的实例。过程流程400可由存储器系统(例如,参考图1和2描述的存储器系统110)的组件执行。举例来说,过程流程400可由主机系统的控制器执行,例如如参考图1所描述的主机系统控制器106。可实施过程流程400以减少时延和功率消耗且增加系统性能,以及实现其它益处。过程流程400的各方面可由控制器以及其它组件实施。另外或替代地,过程流程400的方面可实施为存储在存储器中的指令(例如,存储在与存储器系统控制器115或本地控制器135耦合的存储器中的固件)。举例来说,所述指令如果由控制器(例如,存储器系统控制器115、本地控制器135)执行,则可致使控制器执行过程流程400的操作。在过程流程400的以下描述中,可以与所展示的次序不同的次序执行操作。举例来说,也可从过程流程400省略特定操作,或可将其它操作添加到过程流程400。
在405处,可存储命令集。举例来说,主机系统可使用例如主机系统的队列等队列中的第一序列来存储命令集。举例来说,如果命令集包含六个命令(即,第一命令到第六命令),则第一序列可指示第一命令将发射到存储器系统,接着将发射第二命令(例如,在发射第一命令之后),接着将发射第三命令,等等,直至命令集的命令中的每一个已发射到存储器系统。
在410处,可确定命令集的子集是否为用于存储器系统的测试模式的一部分。举例来说,主机系统可确定命令的子集是否为与用于测量存储器系统的性能的测试模式(例如,标竿分析模式)相关联的写入命令,所述性能例如写入速度或读取性能,以及其它实例。测试模式可包含执行一定数量的写入命令以将目标测试文件写入到新打开的存储器块,读回目标测试文件一或多次(例如,三次)以计算平均序列读取性能,以及重写(例如,覆写)目标测试文件一或多次(例如,三次)以计算平均序列写入性能。
在某些情况下,主机系统可通过确定子集的命令中的每一个是否为与相同大小的数据相关联的写入命令来确定命令的子集是否为测试模式的一部分。在非限制性实例中,作为写入目标测试文件的一部分,主机系统可发布一或多个写入命令以使用共同组块大小(例如,512KB组块大小)写入目标测试文件。因此,如果主机系统检测到命令的子集的每一命令指示待写入的相同大小的数据,则主机系统可确定命令的子集是测试模式的一部分。
在某些情况下,可在410处确定命令集的子集中的命令不是测试模式的一部分。因此,在415处,命令集可发射到存储器系统。举例来说,主机系统可根据第一序列发射命令集。
在420处,如果确定命令集的子集中的命令是测试模式的一部分,则可配置命令集的第二序列。举例来说,主机系统可通过调整第一序列的次序(例如,命令集将被发射的次序)来配置第二序列。在某些情况下,第二序列可指示命令的子集的每一命令的LBA是连续的(例如,待发射的第一命令的LBA低于待在第一命令之后发射的第二命令的LBA)。
在非限制性实例中,命令集可包含根据第一序列存储在队列中的四个命令(例如,循序地存储第一命令到第四命令)。第一命令可指示0到127的LBA(例如,第一命令可具有512KB的组块大小),第二命令可指示256到383的LBA(例如,第二命令可具有512KB的组块大小),第三命令可指示10240的LBA且具有4KB的组块大小,且第四命令可指示128到255的LBA(例如,第四命令可具有512KB的组块大小)。
因为第一命令、第二命令和第四命令各自指示相同大小的数据(例如,512KB组块大小),所以主机系统可确定第一命令、第二命令和第四命令是测试模式的一部分。因此,主机系统可使用第二序列配置命令存储在队列中的次序,使得所述次序指示将发射第一命令,继之以第四命令(例如,因为第四命令的LBA在第一命令之后),继之以第二命令,继之以第三命令。换句话说,主机系统可对命令的子集进行重排序,使得命令的LBA等于先前命令的LBA加上先前命令的组块大小。
在425处,可发射命令的子集。举例来说,主机系统可按由第二序列指示的次序(例如,在420处配置)将命令的子集发射到存储器系统。在某些情况下,主机系统还可发射命令的第二子集(例如,命令集的并非测试模式的一部分的命令)。命令的第二子集可在命令的第一子集之后发射,例如如由第二序列所指示。
过程流程400的各方面可由控制器以及其它组件实施。另外或替代地,过程流程400的方面可实施为存储于存储器中的指令(例如,存储于与存储器系统耦合的存储器中的固件)。举例来说,所述指令在由控制器(例如,主机系统控制器106)执行时可致使控制器执行过程流程400的操作。
图5展示根据如本文中所公开的实例支持用于命令序列调整的技术的存储器系统520的框图500。存储器系统520可以是如参考图1至4所描述的存储器系统的方面的实例。存储器系统520或其各种组件可以是用于执行如本文中所描述的用于命令序列调整的技术的各个方面的构件的实例。举例来说,存储器系统520可包含命令管理器525、队列管理器530、测试模式管理器535、序列组件540、写入管理器545或其任何组合。这些组件中的每一个可直接或间接地(例如,经由一或多个总线)彼此通信。
命令管理器525可被配置成或以其它方式支持用于在存储器系统处接收命令集的构件。队列管理器530可被配置成或以其它方式支持用于根据至少部分地基于接收命令集的第一序列将命令集存储在队列中的构件。测试模式管理器535可被配置成或以其它方式支持用于确定命令集中的命令的子集是否与测试模式相关联的构件。序列组件540可被配置成或以其它方式支持用于至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列的构件,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址。在一些实例中,命令管理器525可被配置成或以其它方式支持用于作为测试模式的一部分根据第二序列执行命令的子集的构件。
在一些实例中,为了支持配置第二序列,序列组件540可被配置成或以其它方式支持用于以下操作的构件:调整队列中的命令的子集的次序使得与队列中的第一命令相关联的第一逻辑地址小于与队列中的第二命令相关联的第二逻辑地址,其中第二命令在第一命令之后根据第二序列执行。
在一些实例中,为了支持执行命令的子集,写入管理器545可被配置成或以其它方式支持用于至少部分地基于确定命令的子集与测试模式相关联而将与命令的子集的至少一个命令相关联的第一数据写入到第一块的构件。
在一些实例中,命令管理器525可被配置成或以其它方式支持用于执行命令集中的命令的第二子集的构件,所述第二子集不同于所述子集。
在一些实例中,为了支持执行命令的第二子集,写入管理器545可被配置成或以其它方式支持用于将与命令的第二子集的至少一个命令相关联的第二数据写入到存储器单元的不同于第一块的第二块的构件。
在一些实例中,命令管理器525可被配置成或以其它方式支持用于接收识别与命令的子集相关联的数据的取消映射命令的构件。在一些实例中,命令管理器525可被配置成或以其它方式支持用于至少部分地基于接收到取消映射命令而从第一块擦除第一数据的构件。
在一些实例中,命令的子集包含一或多个写入命令,所述一或多个写入命令的每一写入命令识别相同大小的数据。
在一些实例中,命令管理器525可被配置成或以其它方式支持用于至少部分地基于命令的第二子集满足命令的阈值数量而确定结束测试模式的构件。
在一些实例中,确定结束测试模式进一步至少部分地基于命令的第二子集包含取消映射命令。
在一些实例中,确定命令集中的命令的子集与测试模式相关联是至少部分地基于与子集的每一命令相关联的数据的相应大小满足阈值。
在一些实例中,确定命令集中的命令的子集与测试模式相关联是至少部分地基于子集的命令的数量满足阈值。
图6展示根据如本文中所公开的实例支持用于命令序列调整的技术的主机系统620的框图600。主机系统620可以是如参考图1到4所描述的主机系统的方面的实例。主机系统620或其各种组件可以是用于执行如本文中所描述的用于命令序列调整的技术的各个方面的构件的实例。举例来说,主机系统620可包含队列管理器625、测试模式组件630、序列组件635、命令管理器640或其任何组合。这些组件中的每一个可直接或间接地(例如,经由一或多个总线)彼此通信。
队列管理器625可被配置成或以其它方式支持用于在主机系统处的队列中存储用于根据第一序列将数据存储在存储器系统处的命令集的构件。测试模式组件630可被配置成或以其它方式支持用于确定命令集中的命令的子集是否与测试模式相关联的构件。序列组件635可被配置成或以其它方式支持用于至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列的构件,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址。命令管理器640可被配置成或以其它方式支持用于根据第二序列将命令的子集发射到存储器系统的构件。
在一些实例中,确定命令集中的命令的子集与测试模式相关联是至少部分地基于与子集的每一命令相关联的数据的相应大小满足阈值。
在一些实例中,为了支持配置第二序列,序列组件635可被配置成或以其它方式支持用于以下操作的构件:调整队列中的命令的子集的次序使得与队列中的第一命令相关联的第一逻辑地址小于与队列中的第二命令相关联的第二逻辑地址,其中第二命令被配置成在第一命令之后根据第二序列执行。
图7展示根据本文中所公开的实例的流程图,其示出支持用于命令序列调整的技术的方法700。方法700的操作可由如本文所描述的存储器系统或其组件实施。举例来说,方法700的操作可由如参考图1到5所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器系统可使用专用硬件执行所描述的功能的方面。
在705处,所述方法可包含在存储器系统处接收命令集。可根据如本文中所公开的实例执行705的操作。在一些实例中,705的操作的各方面可由如参考图5所描述的命令管理器525执行。
在710处,所述方法可包含根据至少部分地基于接收命令集的第一序列将命令集存储在队列中。可根据如本文所公开的实例执行710的操作。在一些实例中,710的操作的各方面可由如参考图5所描述的队列管理器530执行。
在715处,所述方法可包含确定命令集中的命令的子集是否与测试模式相关联。可根据如本文所公开的实例执行715的操作。在一些实例中,715的操作的方面可由参考图5所描述的测试模式管理器535执行。
在720处,所述方法可包含至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址。可根据如本文所公开的实例执行720的操作。在一些实例中,720的操作的方面可由如参考图5所描述的序列组件540执行。
在725处,所述方法可包含作为测试模式的一部分根据第二序列执行命令的子集。可根据如本文中所公开的实例执行725的操作。在一些实例中,725的操作的各方面可由如参考图5所描述的命令管理器525执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下操作的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):在存储器系统处接收命令集;根据至少部分地基于接收命令集的第一序列将命令集存储在队列中;确定命令集中的命令的子集是否与测试模式相关联;至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址;以及作为测试模式的一部分根据第二序列执行命令的子集。
在本文中所描述的方法700和设备的一些实例中,配置第二序列可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:调整队列中的命令的子集的次序使得与队列中的第一命令相关联的第一逻辑地址可小于与队列中的第二命令相关联的第二逻辑地址,其中可在第一命令之后根据第二序列执行第二命令。
在本文中所描述的方法700和设备的一些实例中,执行命令的子集可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于确定命令的子集可与测试模式相关联而将与命令的子集的至少一个命令相关联的第一数据写入到第一块。
本文中所描述的方法700和设备的一些实例可进一步包含用于执行命令集中的命令的第二子集的操作、特征、电路系统、逻辑、构件或指令,所述第二子集不同于所述子集。
在本文中所描述的方法700和设备的一些实例中,执行命令的第二子集可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:将与命令的第二子集的至少一个命令相关联的第二数据写入到存储器单元的不同于第一块的第二块。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:接收识别与命令的子集相关联的数据的取消映射命令;以及至少部分地基于接收到所述取消映射命令从第一块擦除第一数据。
在本文中所描述的方法700和设备的一些实例中,命令的子集包含一或多个写入命令,所述一或多个写入命令的每一写入命令识别相同大小的数据。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于命令的第二子集满足命令的阈值数量而确定结束测试模式。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定结束测试模式可进一步至少部分地基于命令的第二子集包含取消映射命令。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定命令集中的命令的子集可与测试模式相关联可至少部分地基于与子集的每一命令相关联的数据的相应大小满足阈值。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定命令集中的命令的子集可与测试模式相关联可至少部分地基于子集的命令的数量满足阈值。
图8展示根据本文中所公开的实例的流程图,其示出支持用于命令序列调整的技术的方法800。方法800的操作可由如本文所描述的主机系统或其组件实施。举例来说,可由如参考图1到4和6描述的主机系统执行方法800的操作。在一些实例中,主机系统可执行指令集以控制装置的功能元件来执行所描述的功能。另外或替代地,主机系统可使用专用硬件执行所描述的功能的方面。
在805处,所述方法可包含在主机系统处的队列中存储用于根据第一序列将数据存储在存储器系统处的命令集。可根据如本文所公开的实例执行805的操作。在一些实例中,805的操作的各方面可由如参考图6所描述的队列管理器625执行。
在810处,所述方法可包含确定命令集中的命令的子集是否与测试模式相关联。可根据如本文所公开的实例执行810的操作。在一些实例中,810的操作的方面可由如参考图6所描述的测试模式组件630执行。
在815处,所述方法可包含至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址。可根据如本文所公开的实例执行815的操作。在一些实例中,815的操作的方面可由如参考图6所描述的序列组件635执行。
在820处,所述方法可包含根据第二序列将命令的子集发射到存储器系统。可根据如本文所公开的实例执行820的操作。在一些实例中,820的操作的各方面可由如参考图6所描述的命令管理器640执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下操作的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):在主机系统处的队列中存储用于根据第一序列将数据存储在存储器系统处的命令集;确定命令集中的命令的子集是否与测试模式相关联;至少部分地基于确定命令的子集与测试模式相关联而在队列中配置命令集的第二序列,所述第二序列至少部分地基于与命令的子集的每一命令相关联的相应逻辑地址;以及根据第二序列将命令的子集发射到存储器系统。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定命令集中的命令的子集可与测试模式相关联可至少部分地基于与子集的每一命令相关联的数据的相应大小满足阈值。
在本文中所描述的方法800和设备的一些实例中,配置第二序列可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:调整队列中的命令的子集的次序使得与队列中的第一命令相关联的第一逻辑地址可小于与队列中的第二命令相关联的第二逻辑地址,其中第二命令可被配置成在第一命令之后根据第二序列执行。
应注意,上文描述的方法描述可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或两个以上的部分。
可使用多种不同技术和技艺中的任一个来表示本文中描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所述信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指代支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持组件之间的信号流动的任何导电路径,则认为所述组件彼此电子连通(导电接触或连接或耦合)。在任何给定时间,基于(例如,响应于)包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件将所连接组件之间的信号流中断一段时间。
术语“耦合”指代从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前不能够经由导电路径在组件之间传送,在闭路关系中,信号能够经由导电路径在组件之间传送。如果例如控制器等组件将其它组件耦合在一起,则所述组件起始允许信号经由先前不准许信号流动的导电路径在所述其它组件之间流动的改变。
术语“隔离”是指信号当前不能够在组件之间流动的组件之间的关系。如果组件之间存在开路,则所述组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器隔离两个组件,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当……时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
术语“响应于”可指一个条件或动作由于先前条件或动作而至少部分地(如果不完全地)发生。举例来说,可执行第一条件或动作,并且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。
在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,与是否发生其它条件或动作无关。在一些实例中,可执行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此其它条件或动作而执行。
本文中论述的装置(包含存储器阵列)可形成于例如硅、锗、硅-锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,所述衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(silicon-on-insulator,SOI)衬底,例如玻璃上硅(silicon-on-glass,SOG)或蓝宝石上硅(silicon-on-sapphire,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.根据权利要求4所述的设备,其中执行命令的所述第二子集被配置成致使所述设备:
将与命令的所述第二子集的至少一个命令相关联的第二数据写入到存储器单元的不同于所述第一块的第二块。
6.根据权利要求3所述的设备,其中所述控制器进一步被配置成致使所述设备:
接收识别与命令的所述子集相关联的数据的取消映射命令;以及
至少部分地基于接收到所述取消映射命令而从所述第一块擦除所述第一数据。
7.根据权利要求1所述的设备,其中命令的所述子集包括一或多个写入命令,所述一或多个写入命令的每一写入命令识别相同大小的数据。
8.根据权利要求1所述的设备,其中所述控制器进一步被配置成致使所述设备:
至少部分地基于命令的第二子集满足命令的阈值数量而确定结束所述测试模式。
9.根据权利要求8所述的设备,其中确定结束所述测试模式进一步至少部分地基于命令的所述第二子集包括取消映射命令。
10.根据权利要求1所述的设备,其中确定所述命令集中的命令的所述子集与所述测试模式相关联是至少部分地基于与所述子集的每一命令相关联的数据的相应大小满足阈值。
11.根据权利要求1所述的设备,其中确定所述命令集中的命令的所述子集与所述测试模式相关联是至少部分地基于所述子集的命令的数量满足阈值。
12.一种存储包括指令的代码的非暂时性计算机可读介质,所述指令在由电子装置的处理器执行时致使所述电子装置:
在存储器系统处接收命令集;
根据至少部分地基于接收所述命令集的第一序列将所述命令集存储在队列中;
确定所述命令集中的命令的子集是否与测试模式相关联;
至少部分地基于确定命令的所述子集与所述测试模式相关联而在所述队列中配置所述命令集的第二序列,所述第二序列至少部分地基于与命令的所述子集的每一命令相关联的相应逻辑地址;以及
作为所述测试模式的一部分根据所述第二序列执行命令的所述子集。
13.根据权利要求12所述的非暂时性计算机可读介质,其中用以配置所述第二序列的所述指令可由所述处理器执行以:
调整所述队列中的命令的所述子集的次序使得与所述队列中的第一命令相关联的第一逻辑地址小于与所述队列中的第二命令相关联的第二逻辑地址,其中在所述第一命令之后根据所述第二序列执行所述第二命令。
14.根据权利要求12所述的非暂时性计算机可读介质,其中用以执行命令的所述子集的所述指令可由所述处理器执行以:
至少部分地基于确定命令的所述子集与所述测试模式相关联而将与命令的所述子集的至少一个命令相关联的第一数据写入到第一块。
15.根据权利要求14所述的非暂时性计算机可读介质,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置执行所述命令集中的命令的第二子集,所述第二子集不同于所述子集。
16.根据权利要求15所述的非暂时性计算机可读介质,其中用以执行命令的所述第二子集的所述指令可由所述处理器执行以:
将与命令的所述第二子集的至少一个命令相关联的第二数据写入到存储器单元的不同于所述第一块的第二块。
17.根据权利要求14所述的非暂时性计算机可读介质,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
接收识别与命令的所述子集相关联的数据的取消映射命令;以及
至少部分地基于接收到所述取消映射命令而从所述第一块擦除所述第一数据。
18.根据权利要求12所述的非暂时性计算机可读介质,其中命令的所述子集包括一或多个写入命令,所述一或多个写入命令的每一写入命令识别相同大小的数据。
19.一种方法,其包括:
在存储器系统处接收命令集;
根据至少部分地基于接收所述命令集的第一序列将所述命令集存储在队列中;
确定所述命令集中的命令的子集是否与测试模式相关联;
至少部分地基于确定命令的所述子集与所述测试模式相关联而在所述队列中配置所述命令集的第二序列,所述第二序列至少部分地基于与命令的所述子集的每一命令相关联的相应逻辑地址;以及
作为所述测试模式的一部分根据所述第二序列执行命令的所述子集。
20.根据权利要求19所述的方法,其中配置所述第二序列包括:
调整所述队列中的命令的所述子集的次序使得与所述队列中的第一命令相关联的第一逻辑地址小于与所述队列中的第二命令相关联的第二逻辑地址,其中在所述第一命令之后根据所述第二序列执行所述第二命令。
21.根据权利要求19所述的方法,其中执行命令的所述子集包括:
至少部分地基于确定命令的所述子集与所述测试模式相关联而将与命令的所述子集的至少一个命令相关联的第一数据写入到第一块。
22.根据权利要求21所述的方法,其进一步包括:
执行所述命令集中的命令的第二子集,所述第二子集不同于所述子集。
23.一种设备,其包括:
控制器,其被配置成与存储器系统耦合,其中所述控制器被配置成致使所述设备:
在主机系统处的队列中存储用于根据第一序列将数据存储在存储器系统处的命令集;
确定所述命令集中的命令的子集是否与测试模式相关联;
至少部分地基于确定命令的所述子集与所述测试模式相关联而在所述队列中配置所述命令集的第二序列,所述第二序列至少部分地基于与命令的所述子集的每一命令相关联的相应逻辑地址;以及
根据所述第二序列将命令的所述子集发射到所述存储器系统。
24.根据权利要求23所述的设备,其中确定所述命令集中的命令的所述子集与所述测试模式相关联是至少部分地基于与所述子集的每一命令相关联的数据的相应大小满足阈值。
25.根据权利要求23所述的设备,其中配置所述第二序列被配置成致使所述设备:
调整所述队列中的命令的所述子集的次序使得与所述队列中的第一命令相关联的第一逻辑地址小于与所述队列中的第二命令相关联的第二逻辑地址,其中所述第二命令被配置成在所述第一命令之后根据所述第二序列执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/497,610 | 2021-10-08 | ||
US17/497,610 US11604609B1 (en) | 2021-10-08 | 2021-10-08 | Techniques for command sequence adjustment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115951932A true CN115951932A (zh) | 2023-04-11 |
Family
ID=85480832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211209990.0A Pending CN115951932A (zh) | 2021-10-08 | 2022-09-30 | 用于命令序列调整的技术 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11604609B1 (zh) |
CN (1) | CN115951932A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7473600B2 (ja) * | 2022-07-15 | 2024-04-23 | 株式会社日立製作所 | ストレージシステム、データ送信方法およびネットワークインタフェース |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112265A (en) * | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
US20120331343A1 (en) * | 2011-06-23 | 2012-12-27 | Qualcomm Incorporated | Apparatus and method for electronic device testing |
KR20130078455A (ko) * | 2011-12-30 | 2013-07-10 | 삼성전자주식회사 | 메모리 특성 정보를 저장하는 반도체 메모리 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 반도체 메모리 장치의 동작방법 |
CN110751974A (zh) * | 2018-07-23 | 2020-02-04 | 爱思开海力士有限公司 | 存储器系统和用于优化读取阈值的方法 |
KR20210099943A (ko) * | 2020-02-05 | 2021-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2021
- 2021-10-08 US US17/497,610 patent/US11604609B1/en active Active
-
2022
- 2022-09-30 CN CN202211209990.0A patent/CN115951932A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11604609B1 (en) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115729848A (zh) | 直接逻辑到物理地址映射 | |
US20240241663A1 (en) | Suspension during a multi-plane write procedure | |
CN115373592A (zh) | 页线填充数据技术 | |
CN115248662A (zh) | 动态超级块 | |
CN114882927A (zh) | 存储器装置的事件管理 | |
CN114816900A (zh) | 用于存储器系统的温度跟踪 | |
CN116897342A (zh) | 存储器装置的偏压控制 | |
CN114647378A (zh) | 用于垃圾收集的有效数据标识 | |
CN117667760A (zh) | 存储器系统逻辑单元号程序 | |
CN115951932A (zh) | 用于命令序列调整的技术 | |
US12019877B2 (en) | Metadata allocation in memory systems | |
CN116610251A (zh) | 执行写入操作的技术 | |
WO2022183308A1 (en) | Two-stage buffer operations supporting write commands | |
WO2022193218A1 (en) | Techniques to mitigate memory die misalignment | |
CN114924689A (zh) | 经优化命令序列 | |
CN115605850A (zh) | 用于逻辑到物理表压缩的数据组织 | |
CN114077399A (zh) | 检测页面错误通信量 | |
US11687291B2 (en) | Techniques for non-consecutive logical addresses | |
US12124723B2 (en) | Techniques for data transfer operations | |
US12045495B2 (en) | Read latency and suspend modes | |
US20240201860A1 (en) | Address mappings for random access operations | |
US20240231702A1 (en) | Multiplane data transfer commands | |
US20230043338A1 (en) | Techniques for memory zone size adjustment | |
US20230342060A1 (en) | Techniques for data transfer operations | |
US20230297516A1 (en) | Circular buffer partitions |
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 |