主机自适应存储器装置优化

文档序号:1378464 发布日期:2020-08-14 浏览:9次 >En<

阅读说明:本技术 主机自适应存储器装置优化 (Host adaptive memory device optimization ) 是由 N·格勒斯 D·A·帕尔默 于 2019-12-27 设计创作,主要内容包括:提供了用于主机自适应存储器装置优化的装置和技术。存储器装置可以维护与主机的交互的主机模型。可以评估来自所述主机的一组命令以创建所述一组命令的配置文件。可以将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性。然后可以基于所述不一致性修改所述存储器装置的操作。(Devices and techniques for host adaptive memory device optimization are provided. The memory device may maintain a host model of interactions with the host. A set of commands from the host may be evaluated to create a profile of the set of commands. The configuration file may be compared to the host model to determine an inconsistency between the configuration file and the host model. The operation of the memory device may then be modified based on the inconsistency.)

主机自适应存储器装置优化

技术领域

本申请案涉及存储器装置,且尤其涉及主机自适应存储器装置优化。

背景技术

存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。

易失性存储器需要电力来维护其数据,并包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)等等。

非易失性存储器可以在未被供电时保留经存储数据,并包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、例如相变随机存取存储器(PCRAM)的电阻可变存储器、电阻式随机存取存储器(RRAM),或磁阻式随机存取存储器(MRAM)等等。

快闪存储器用作广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含一组或多组单晶体管、浮栅或电荷陷阱存储器单元,以实现高存储器密度、高可靠性和低功耗。

两种常见类型的快闪存储器阵列架构包含NAND和NOR架构,它们以逻辑形式命名,每种架构的基本存储器单元配置都以所述逻辑形式布置。存储器阵列的存储器单元通常被布置成矩阵。在一示例中,阵列的行中的每个浮栅存储器单元的栅极耦合到存取线(例如字线)。在NOR架构中,阵列的列中的每个存储器单元的漏极耦合到数据线(例如位线)。在NAND架构中,阵列的串中的每个存储器单元的漏极在源极线和位线之间以源极到漏极的方式串联耦合在一起。

NOR和NAND架构半导体存储器阵列两者都通过解码器被存取,所述解码器通过选择耦合到其栅极的字线来激活特定存储器单元。在NOR架构半导体存储器阵列中,一旦被激活,选定存储器单元就将其数据值放置在位线上,从而致使不同电流取决于特定单元被编程的状态而流动。在NAND架构半导体存储器阵列中,高偏置电压被施加到漏极侧选择栅极(SGD)线。以指定传递电压(例如Vpass)驱动耦合到每个组的未选定存储器单元的栅极的字线,以使每个组的未选定存储器单元作为传递晶体管而操作(例如以不受它们的经存储数据值限制的方式传递电流)。电流然后通过每个串联耦合组从源极线流动到位线,仅受每个组的选定存储器单元限制,从而将选定存储器单元的当前经编码数据值放置在位线上。

NOR或NAND架构半导体存储器阵列中的每个快闪存储器单元可以被个别地或共同地编程为一个或多个编程状态。例如,单级单元(SLC)可以表示两个编程状态(例如1或0)中的一者,表示一个数据位。

然而,快闪存储器单元也可以表示两个以上编程状态中的一者,从而允许在不增加存储器单元数目的情况下制造较高密度的存储器,这是因为每个单元可以表示一个以上二进制数字(例如一个以上位)。此类单元可以被称为多状态存储器单元、多数字单元或多级单元(MLC)。在某些示例中,MLC可以是指可以每个单元存储两个数据位的存储器单元(例如四个编程状态中的一者),三级单元(TLC)可以是指可以每个单元存储三个数据位的存储器单元(例如八个编程状态中的一者),并且四级单元(QLC)可以每个单元存储四个数据位。MLC在本文中在其较广泛的背景中使用,以可以是指可以每个单元存储一个以上数据位(即,可以表示两个以上编程状态)的任何存储器单元。

传统的存储器阵列是布置在半导体衬底的表面上的二维(2D)结构。为了增加给定区域的存储器容量并降低成本,个别存储器单元的大小已减小。然而,减小个别存储器单元的大小存在技术限制,并且因此,2D存储器阵列的存储器密度存在技术限制。作为响应,正在开发例如三维(3D)NAND架构半导体存储器装置的3D存储器结构以进一步增加存储器密度并降低存储器成本。

此类3D NAND装置常常包含串联耦合(例如漏极到源极)的存储单元串,位于靠近源极的一个或多个源极侧选择栅极(SGS)和靠近位线的一个或多个漏极侧选择栅极(SGD)之间。在一示例中,SGS或SGD可以包含一个或多个场效应晶体管(FET)或金属氧化物半导体(MOS)结构装置等等。在一些示例中,所述串将竖直地延伸通过含有相应字线的多个竖直间隔的层。半导体结构(例如多晶硅结构)可邻近存储器单元串延伸以形成用于所述串的存储单元的沟道。在竖直串的示例中,多晶硅结构可以呈竖直延伸的柱的形式。在一些示例中,串可以被“折叠”,并因此相对于U形柱而布置。在其它示例中,多个竖直结构可以彼此堆叠以形成存储单元串的堆叠阵列。

存储器阵列或装置可以组合在一起以形成存储器系统的存储卷,例如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等等。SSD可以尤其用作计算机的主存储装置,其相比于具有移动部件的传统硬盘驱动器在例如性能、大小、重量、稳固性、操作温度范围和功耗方面具有优势。例如,SSD可以减少与磁盘驱动器(例如机电等等)相关联的寻道时间、时延或其它延迟。SSD使用例如快闪存储器单元的非易失性存储器单元来消除内部电池供应要求,因此使驱动器更通用和紧凑。

SSD可以包含多个存储器装置,包含多个裸片或逻辑单元(例如逻辑单元号或LUN),并可以包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一个或多个处理器或其它控制器。此类SSD可以包含一个或多个快闪存储器裸片,其上包含多个存储器阵列和外围电路系统。快闪存储器阵列可以包含被组织为多个物理页的多个存储器单元块。在许多示例中,SSD还将包含DRAM或SRAM(或其它形式的存储器芯片或其它存储器结构)。SSD可以从主机接收与存储器操作相关联的命令,所述存储器操作是例如用于在存储器装置和主机之间传送数据(例如用户数据和关联完整性数据,例如错误数据和地址数据等等)的读取或写入操作,或用于从存储器装置中擦除数据的擦除操作。

发明内容

本发明的一个方面提供一种用于主机自适应存储器装置优化的存储器装置,其中所述存储器装置包括:存储装置,其用于维护与主机的交互的主机模型;以及处理电路系统,其用于:评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

本发明的另一个方面提供一种用于主机自适应存储器装置优化的方法,其中所述方法包括:由存储器装置维护与主机的交互的主机模型;评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

本发明的另一个方面提供一种机器可读媒体,其中所述机器可读媒体包含指令,所述指令在由处理电路系统执行时致使所述处理电路系统执行用于主机自适应存储器装置优化的方法,其中所述方法包括:由存储器装置维护与主机的交互的主机模型;评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

本发明的另一个方面提供一种系统,其包括用于执行用于主机自适应存储器装置优化的方法的构件,其中所述方法包括:由存储器装置维护与主机的交互的主机模型;评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

附图说明

在未必按比例绘制的附图中,类似数字可以在不同视图中描述相似组件。具有不同字母后缀的类似数字可以表示相似组件的不同实例。附图通常以示例而非限制的方式绘示本文档中所论述的各种实施例。

图1绘示包含可以供实施一个或多个实施例的存储器装置的环境的示例。

图2绘示主机模型数据库的示例。

图3是用于主机自适应存储器装置优化的方法的示例的流程图。

图4是绘示可以供实施一个或多个实施例的机器的示例的框图。

具体实施方式

例如NAND快闪装置的存储器装置可以包含在各种情况下影响存储器装置性能的各种操作参数。可以基于主机的预期操作条件将操作配置文件安装在存储器装置中。例如,能量约束的移动电话可以展现短时段的密集写入和读取活动,接着展现长时段的不活动。在此类示例中,可以增加写入高速缓冲存储器以实现较快的写入,不活动时段用于将写入高速缓冲存储器复制到更紧凑的存储装置(例如SLC高速缓冲存储器到TLC存储装置)。然而,此类配置文件可能不适于涉及常规大容量写入或读取的服务器应用程序。

当在存储器装置中选择和实施配置文件以满足特定操作情境时可能会出现的问题是变更。尽管可以手动地更新配置文件,但性能下降通常会变得严重以提示此类动作。此外,如果行为的变更是暂时的,或如果可用的配置文件不完全满足主机的操作行为,那么仅仅在配置文件之间切换可能是徒劳的。

为了解决这些问题,可以使用主机自适应存储器装置优化。此处,使用主机模型来量化预期主机行为。测量当前主机命令活动并将其与此主机模型进行比较,以确定预期行为的偏差。存储器装置然后可以基于此偏差更新操作参数。此类布置使能够高度地定制和自动地修改存储器装置,以满足不断变更的主机行为。此外,随时间推移,可以更新主机模型,以使存储器装置操作与主机活动更加一致。

基于主机行为的变更动态地调整存储器装置的控制参数会提高存储器装置性能,并使存储器装置能够较快且更高效地完成存储器装置命令。这减少了主机上运行的不同应用程序所经历的时延,并提供了优于典型存储器装置的显著技术改进。下文提供了额外细节和示例。

图1绘示环境100的示例,环境100包含被配置成经由通信接口111通信的主机105和存储器装置110。主机105和存储器装置110可以包含在各种产品150中,例如IoT装置(例如冰箱或其它器具、传感器、电动机或致动器、移动通信装置、汽车、移动电话、无人机等等),以支持对产品150中的给定产品的处理、通信或控制。

一个或多个通信接口111可以用于在存储器装置110和主机105之间传送数据。通信接口111可以包含串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口,或一个或多个其它连接器或接口。主机105可以包含主机系统、电子装置、处理器、CPU、存储器卡读取器,或一个或多个其它电子装置。在一些示例中,主机105可以是具有参考图4的机器400所论述的组件的某一部分。

存储器装置110包含存储器控制器115和存储器阵列120,存储器阵列120包含例如一个或多个个别存储器裸片(例如三维(3D)NAND裸片的堆叠)。在3D架构半导体存储器技术中,竖直结构被堆叠成多个层,并被耦合以形成物理页,以增加给定覆盖区(即,尺寸外型)中的存储器装置(例如存储装置)的存储密度。

存储器控制器115可以经由通信接口111从主机105接收指令,并可以与存储器阵列120通信,例如以向(例如写入或擦除)或从(例如读取)存储器阵列120的存储器单元、平面、子块、块或页中的一者或多者传送数据。存储器控制器115可以尤其包含电路系统或固件,包含一个或多个组件或集成电路。例如,存储器控制器115可以包含被配置成控制跨存储器阵列120的存取并在主机105和存储器装置110之间提供转换层的一个或多个存储器控制单元、电路、控制电路系统或组件。存储器控制器115可以包含用于向或从存储器阵列120传送数据的一个或多个I/O电路、线或接口。存储器控制器115可以包含存储器管理器125和阵列控制器135。

存储器控制器115还可以实施主机自适应优化。为此,存储器控制器115被配置成维护与存储器装置110的主机交互的主机模型。维护主机模型可以包含存储器主机模型(例如在管理表130中),并还可以包含修改或更新主机模型。图2中绘示了示例主机模型。通常,主机模型是描述主机的可能行为的一组指标。这可以用于定制各种存储器装置110操作以满足此行为。例如,如果主机具有小的一致写入,那么存储器控制器115可以在这些写入时段之外调度维护操作,例如无用单元收集。

虽然主机模型实现了一定程度的定制,但它本身无法解决对主机105的变更。此类变更可以包含新的工作负载(例如应用程序、主机105服务的实体等等)、新的操作软件、新的硬件、新的固件等等。为了适应于这些变更,存储器控制器115被配置成分析一组存储器装置命令—例如存储器控制器115的命令队列中的那些存储器装置命令—以确定那些命令是否与主机模型一致。如果所述一组命令与主机模型不一致,那么存储器控制器115被配置成修改存储器装置110的操作参数。

在一示例中,存储器控制器115被配置成通过在给定时间间隔(例如每30秒)之后或在预定数目的命令(例如,每1000个命令)之后计算与命令有关的平均值或其它统计度量来生成或更新主机模型。此类更新使存储器控制器115能够使其操作参数适应于主机的行为,在从载入在主机模型中的一般主机行为的转变或暂时偏离期间使用主机自适应技术。

在一示例中,所计算的平均值或其它统计度量表示跨关于命令类型(例如单块写入、单块读取、多块写入或多块读取)的所有命令的命令队列的平均行为。在一示例中,可以计算命令队列的平均深度、命令队列中的命令的平均数据大小、命令队列中的命令接收之间的平均时间或命令队列中的命令的平均命令未决持续时间,并将其存储为主机模型中的相应条目。

在一示例中,为了计算命令队列的平均深度,存储器控制器115被配置成在每个给定时间间隔过去之后对命令队列中未决的命令的数目进行计数。然后将此数目与先前存储在相应主机模型条目中的平均值一起求平均值。在一示例中,为了计算命令队列中的命令的平均数据大小,存储器控制器115被配置成获得命令状态信息—例如命令大小(例如将要写入/读取多少页或块)—对于命令队列中未决的每个命令。在一示例中,命令状态信息收集被限制为不同时间间隔。存储器控制器115然后可以计算所获得的命令大小的平均值。在给定时间间隔结束时,所计算的平均数据大小存储在主机模型中。

在一示例中,基于接收到的命令的时间戳计算命令队列中的命令接收之间的平均时间—例如在每个给定时间间隔期间。此处,存储器控制器115可以计算按顺序接收到的命令的对的时间戳之间的差以及所述差的平均值。在给定时间间隔结束时,结果存储在主机模型中。在一示例中,平均命令未决持续时间可以被计算为每个时间戳和当前时间之间的差以及所确定的差的平均值。

存储器控制器115被配置成确定接收到的命令—例如命令队列中的命令—是否与主机模型一致。在一示例中,存储器控制器115被配置成获得当前命令队列信息(例如命令队列的平均深度、命令队列中的命令的平均数据大小、命令队列中的命令接收之间的平均时间、平均命令未决持续时间、命令队列中的特定类型的命令的状态信息等等),并将其与主机模型的一个或多个条目的任何组合进行比较。

在一示例中,如果命令队列的当前深度和命令队列的平均深度之间的差超过阈值(例如所述差比阈值大或小绝对数或给定百分比量),那么命令队列中的一组命令与主机模型不一致。在一示例中,存储器控制器115被配置成将分析限制为来自命令队列的与特定类型的命令相对应的给定的一组命令。

当关于从主机105接收的当前命令的观测与主机模型不一致时,存储器控制器115被配置成调整存储器装置110的操作参数。例如,存储器控制器115可以将自适应定时器恢复为默认值或另一个预定值,增大或减小写入高速缓冲存储器大小,增大或减小写入高速缓冲存储器清空频率,对齐与命令队列中的命令相对应的更多或更少的块,增大或减小无用单元收集频率,或将耗损均衡从静态变更为动态,反之亦然,以修改存储器装置110的操作。

阵列控制器135可以尤其包含被配置成控制与以下操作相关联的存储器操作的电路系统或组件:将数据写入到存储器装置110的一个或多个存储器单元,从存储器装置110的一个或多个存储器单元读取数据,或擦除存储器装置110的一个或多个存储器单元。存储器操作可以基于例如从主机105接收的或由存储器管理器125在内部生成的主机命令(例如与耗损均衡、错误检测或校正等等相关联)。

NOR或NAND架构半导体存储器阵列中的每个快闪存储器单元可以被个别地或共同地编程为一个或多个编程状态。例如,单级单元(SLC)可以表示两个编程状态(例如1或0)中的一者,表示一个数据位。然而,快闪存储器单元也可以表示两个以上编程状态中的一者,从而允许在不增加存储器单元数目的情况下制造较高密度的存储器,这是因为每个单元可以表示一个以上二进制数字(例如一个以上位)。此类单元可以被称为多状态存储器单元、多数字单元或多级单元(MLC)。在某些示例中,MLC可以是指可以每个单元存储两个数据位的存储器单元(例如四个编程状态中的一者),三级单元(TLC)可以是指可以每个单元存储三个数据位的存储器单元(例如八个编程状态中的一者),并且四级单元(QLC)可以每个单元存储四个数据位。MLC在本文中在其较广泛的背景中使用,以可以是指可以每个单元存储一个以上数据位(即,可以表示两个以上编程状态)的任何存储器单元。

存储器阵列120可以包含布置在例如多个装置、平面、子块、块或页中的多个存储器单元。作为一个示例,48GB TLC NAND存储器装置可以包含每页18,592个数据字节(16,384+2208个字节)、每块1536个页、每平面548个块以及每装置4个或更多平面。作为另一个示例,32GB MLC存储器装置(每个单元存储两个数据位(即,4个可编程状态))可以包含每页18,592个数据字节(B)(16,384+2208个字节)、每块1024个页、每平面548个块以及每装置4个平面,但所需的写入时间减少一半,而对应TLC存储器装置的编程/擦除(P/E)周期增加两倍。其它示例可以包含其它数目或布置。在一些示例中,可以以SLC模式或以期望的MLC模式(例如TLC、QLC等等)选择性地操作存储器装置或其部分。

在操作中,数据通常以页被写入到存储器装置110或从存储器装置110被读取,并以块被擦除。然而,可以根据需要对更大或更小组的存储器单元执行一个或多个存储器操作(例如读取、写入、擦除等等)。存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为扇区。

不同类型的存储器单元或存储器阵列120可以提供不同页大小,或可能需要与之相关联的不同量的元数据。例如,不同存储器装置类型可能具有不同误码率,这可能会导致确保数据页完整性所必要的元数据量不同(例如具有较高误码率的存储器装置相比于具有较低误码率的存储器装置可能需要更多字节的错误校正码数据)。作为一示例,MLC NAND快闪装置相比于对应单级单元(SLC)NAND快闪装置可以具有较高的误码率。因而,MLC装置相比于对应SLC装置可能需要更多的元数据字节用于错误数据。

阵列控制器135可以包含错误校正码(ECC)组件140,错误校正码(ECC)组件140可以尤其包含被配置成检测或校正与向耦合到存储器控制器115的存储器装置110的一个或多个存储器单元写入数据或从所述一个或多个存储器单元读取数据相关联的错误的ECC引擎或其它电路系统。例如,ECC组件140可以检测或计算与执行多个存储器操作相关联的误码率(BER)。BER可以对应于在I/O总线的锁存器中发生的位错误、控制器115的内部错误、在一个或多个NAND阵列中发生的错误,或在存储器装置110的一个或多个多级单元(MLC)中发生的错误。存储器控制器115可以被配置成主动地检测与数据的各种操作或存储相关联的错误发生(例如位错误、操作错误、崩溃状况、停顿、挂断等等)并从中恢复,同时维持在主机105和存储器装置110之间传送的数据的完整性,或维护经存储数据的完整性(例如使用冗余RAID存储装置等等),并可以移除(例如注销)出现故障的存储器资源(例如存储器单元、存储器阵列、页、块等等),以防止将来的错误。存储器控制器115可以包含跟踪从主机接收的存储器命令的命令队列(未展示)。队列中的命令可以由控制器115以先进先出(FIFO)方式、堆叠方式、不按顺序、根据优先级或以任何其它合适次序来执行。命令队列包含与队列中的每个命令相关联的状态信息。此类状态信息可以包含给定命令的BER、与给定命令相关联的剩余块数,以及表示自从存储器装置110接收到给定命令以来的时间间隔的时间戳。

存储器管理器125可以尤其包含电路系统或固件,例如与各种存储器管理功能相关联的多个组件或集成电路。为了本描述的目的,将在NAND存储器的背景中描述示例存储器操作和管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可以具有类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡(例如无用单元收集或回收)、错误检测(例如BER监测)或校正、块注销,或一种或多种其它存储器管理功能。存储器管理器125可以将主机命令(例如从主机接收的命令)解析或格式化为装置命令(例如与存储器阵列的操作相关联的命令等等),或为阵列控制器135或存储器装置110的一个或多个其它组件生成装置命令(例如以完成各种存储器管理功能)。

存储器管理器125可以包含一组管理表130,所述一组管理表130被配置成维护与存储器装置110的一个或多个组件相关联的各种信息(例如与耦合到存储器控制器115的存储器阵列或一个或多个存储器单元相关联的各种信息)。例如,管理表130可以包含关于耦合到存储器控制器115的一个或多个存储器单元块的块寿命、块擦除计数、错误历史、错误参数信息或一个或多个错误计数(例如写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等等)的信息。在某些示例中,如果针对一个或多个错误计数(例如错误参数)检测到的错误的数目高于阈值(例如可允许的错误阈值),那么位错误可以被称为不可校正的位错误。管理表130可以维护可校正或不可校正的位错误的计数等等。

存储器阵列120可以包含布置在例如多个装置、平面、子块、块或页中的多个存储器单元。作为一个示例,48GB TLC NAND存储器装置可以包含每页18,592个数据字节(16,384+2208个字节)、每块1536个页、每平面548个块以及每装置4个或更多平面。作为另一个示例,32GB MLC存储器装置(每个单元存储两个数据位(即,4个可编程状态))可以包含每页18,592个数据字节(B)(16,384+2208个字节)、每块1024个页、每平面548个块以及每装置4个平面,但所需的写入时间减少一半,而对应TLC存储器装置的编程/擦除(P/E)周期增加两倍。其它示例可以包含其它数目或布置。在一些示例中,可以以SLC模式或以期望的MLC模式(例如TLC、QLC等等)选择性地操作存储器装置或其部分。

在操作中,数据通常以页被写入到存储器装置110或从存储器装置110被读取,并以块被擦除。然而,可以根据需要对更大或更小组的存储器单元执行一个或多个存储器操作(例如读取、写入、擦除等等)。存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为扇区。

不同类型的存储器单元或存储器阵列120可以提供不同页大小,或可能需要与之相关联的不同量的元数据。例如,不同存储器装置类型可能具有不同误码率,这可能导致确保数据页完整性所必要的元数据量不同(例如具有较高误码率的存储器装置相比于具有较低误码率的存储器装置可能需要更多字节的错误校正码数据)。作为一示例,MLC NAND快闪装置相比于对应单级单元(SLC)NAND快闪装置可以具有较高的误码率。因而,MLC装置相比于对应SLC装置可能需要更多的元数据字节用于错误数据。

图2绘示主机模型数据库200的示例。主机模型数据库200包含用于不同命令类型的多个条目212、214、216、218,并指定每种命令类型的平均参数。每个条目包含存储器装置命令类型字段210、平均数据大小字段220、平均未决间隔字段230、与其它存储器装置命令的关系字段240,以及平均到达速率字段250。

存储器装置命令类型字段210包含表示不同类型的命令的值。命令类型的示例包含单块写入、单块读取、多块写入和多块读取命令等等。当遇到命令—例如从存储器装置的命令队列获得的命令—时,可以确定每个命令的命令类型并将其输入到存储器装置命令类型字段210中。在一示例中,此条目可以影响其它字段(例如字段220到250)的可能值。

例如,如果确定在给定时间间隔期间接收到的存储在命令队列中的给定的一组命令是单块写入命令,那么可以计算这些单块写入命令中的每个命令的平均数据大小并将其存储在条目212的平均数据大小字段220中。在一示例中,在成功完成存储器装置上的每个单块写入命令之后,对于每个单块写入命令,可以计算对应于相应单块写入命令完成时的时间戳与对应于从主机接收到相应单块写入命令时的时间戳之间的差,并将其输入到条目212的平均未决间隔203中。主机模型模块160对每个单块写入命令的这些所计算的差求平均值,并将所计算的差存储在对应于与单块写入命令字段210相关联的条目212的平均未决间隔字段230中。主机模型模块160还可以计算表示何时按顺序接收到单块写入命令的对的时间戳之间的差,计算跨在给定时间间隔期间接收到的所有单块写入命令的这些差的平均值,并将所述差的此平均值存储在与单块写入命令字段210相关联的条目212的平均到达速率字段250中。

对于命令间关系字段240,可以确定和存储不同类型的命令之间的关系。例如,确定每个单块写入命令始终或在大于阈值次数内在从主机接收到三个多块读取命令之后被接收。此处,可以分析命令队列以确定多块写入命令彼此被三个顺序多块读取命令分开。在这种情况下,单块写入命令跟随三个顺序多块读取命令的指示存储在条目212的字段240中。

在一示例中,可以对在每个接收到的单块写入命令之间接收到的非单块写入命令—例如除了单块写入命令条目212的命令类型字段210中指定的命令类型以外或与其不同的类型的命令—的数目进行计数。此计数可以被存储为单块写入命令条目212的平均到达速率字段250。

可以执行与上文所提到的操作相似的操作,以填充数据库200中与条目214、216和218的剩余存储器装置命令类型字段210相对应的平均数据大小字段220、平均未决间隔字段230、与其它存储器装置命令的关系字段240以及平均到达速率字段250。

图3是用于主机自适应存储器装置优化的方法300的示例的流程图。方法300的操作在例如上文所描述(例如存储器控制器)或下文所描述(例如处理电路系统)的计算机硬件中实施。

在操作305,存储器装置维护与主机交互的主机模型。主机模型是用于标识存储器装置与主机交互的模式的数据结构。数据结构可以采取若干形式,例如如图2所绘示的数据库、人工神经网络(ANN)、一个或多个参数化函数等等。在一示例中,主机模型是制造时提供给存储器装置的若干主机模型中的一者。可以在考虑到认知类型的主机(例如移动电话主机模型、电池供电的传感器主机模型、启用市电的服务器主机模型等等)的情况下实例化这些主机模型。在一示例中,存储器装置经由运用主机的观测创建主机模型。

在操作310,评估来自主机的一组命令以创建所述一组命令的配置文件。此组命令可以是当前的一组命令(例如在包含当前时间的时间窗口内)、存储器装置的命令队列中的命令,或存储器装置接收到的一系列先前命令。在一示例中,为了评估所述一组命令,测量所述一组命令中的命令的特性。在一示例中,特性是数据大小、未决间隔、命令间间隔、与其它类型的存储器装置操作的关系、到达速率、命令队列的深度中的一者。因此,配置文件是来自命令测量的某一数值结果。数值结果可以包含额外处理,例如计算平均数、中位数、众数、回归分析,或可以用于比较的其它度量。

在操作315,将配置文件与主机模型进行比较以确定配置文件和主机模型之间的不一致性。此处,不一致性是与由主机模型预测的配置文件值和配置文件实际值的偏差。在一示例中,经由与主机模型中的对应值不同的计算来创建配置文件。例如,主机模型值可以是若干数据元素的单个值组合(例如平均值),而配置文件值是单个数据元素值。在一示例中,为了将配置文件与主机模型进行比较,从主机模型中检索单个命令的特性的表示,并且将来自一组命令的命令子集的相应特性与所述特性的表示进行比较。在将命令子集与主机模型进行比较之后,确定相应特性比所述特性的表示大或小阈值以上。确定的值(例如大小)是不一致性。

在一示例中,命令子集对应于单个类型的命令。在一示例中,命令的类型是读取、写入、清空、擦除、移动或无用单元收集中的一者。因此,此处,将类似命令与类似命令进行比较。在一示例中,特性的表示是平均值。如上文所提到,可以使用其它统计度量。例如,当暴露于特性时,可以训练ANN产生某一输出。ANN的输出(例如由ANN产生的特性的分类)可以是特性的表示。还可以使用其它技术,例如函数的结果。然而,这些技术当中的统一主题是能够将特性的表示与存储在主机模型中的对应值进行比较。

在一示例中,命令子集的数目超出第二阈值以产生不一致性。此示例限制了比较对偏差的敏感性。因此,如果命令子集并不有效(例如超出阈值),那么它们被视为离群值并将不影响存储器装置的操作。

在一示例中,一组命令是存储器装置的命令队列中的命令。此处,不一致性是命令队列的深度和存储在主机模型中的命令队列的平均深度之间的差。这是一种形式的统合分析,借此比较命令流特性,而未必比较命令本身。此类分析可以用于确定主机的突发模式、睡眠-唤醒周期等等。在一示例中,可以将统合分析与特定命令分析组合。因此,例如,可以比较写入命令的命令队列深度。

在操作320,基于在操作315中确定的不一致性修改存储器装置的操作。在一示例中,修改存储器装置的操作包含变更主机超时间隔、看门狗定时器、写入高速缓冲存储器大小、清空频率、块对齐参数、无用单元收集频率或耗损均衡参数中的至少一者。修改这些操作可以对存储器装置相对于主机的实际或感知操作产生不同影响。例如,如果主机以突发性性质操作,即,在短时段的高活动之后是较长时段的不活动,那么增加写入高速缓冲存储器可以增加主机的写入吞吐量;在不活动时段期间从高速缓冲存储器写入数据。

在一示例中,主机超时间隔或看门狗定时器中的至少一者基于相对于给定命令的接收和针对给定命令来自主机的后续复位信号的接收的时间度量而变更。此类调整使存储器装置的定时器与传统主机行为保持一致。因此,如果例如减少了命令内和复位时间,那么缩短超时会在可能的失败操作之后较快地恢复。

在一示例中,方法300可以被扩展为包含用于更新主机模型以解决不一致性的操作。这使主机模型能够跟踪主机随时间的变更。这些变更可以由于主机上的软件或固件变更、不同外围装置附件或只是变更工作负载而发生。更新主机模型会实现动态主机行为配置处理,以确保存储器装置相对于主机操作具有较佳操作。在一示例中,为了更新主机模型,修改一组命令的平均值特性的条目以在平均值特性包含不一致性。因此,将平均值修改为还对来自一组命令的特性的新值求平均值。在一示例中,平均值特性是数据大小、未决间隔、与其它类型的存储器装置操作的关系或到达速率中的一者。

图4绘示可以供执行本文中所论述的任何一种或多种技术(例如方法)的示例机器400的框图。在替代实施例中,机器400可以作为独立装置而操作,或可以连接(例如联网)到其它机器。在联网部署中,机器400可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的资格而操作。在一示例中,机器400可以充当对等式(P2P)(或其它分布式)网络环境中的对等机器。机器400可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车系统,或能够执行指令(顺序指令或其它指令)的任何机器,这些指令指定了要由所述机器执行的操作。此外,虽然仅绘示了单个机器,但术语“机器”也应被视为包含机器的任何集合,这些机器个别地或联合地执行一组(或多组)指令以执行本文中所论述的任何一种或多种方法,例如云计算、软件即服务(SaaS)、其它计算机集群配置。

如本文中所描述的示例可以包含逻辑、组件、装置、封装或机构,或可以由它们操作。电路系统是在包含硬件(例如简单电路、门、逻辑等等)的有形实体中实施的电路的集合(例如组)。电路系统成员资格可以随时间推移以及基础硬件可变性而灵活变化。电路系统包含可以在操作时单独地或组合地执行特定任务的成员。在一示例中,电路系统的硬件可以被不变地设计为实行特定操作(例如硬连线)。在一示例中,电路系统的硬件可以包含可变连接的物理组件(例如执行单元、晶体管、简单电路等等),包含物理上修改(例如磁性、电学、可移动地放置不变质量的粒子等等)以编码特定操作的指令的计算机可读媒体。在连接物理组件时,硬件成分的基础电属性会变更,例如从绝缘体变更为导体,反之亦然。所述指令使参与的硬件(例如执行单元或加载机构)能够经由可变连接在硬件中创建电路系统的成员,以在操作时实行特定任务的部分。因此,当装置操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在一示例中,任何物理组件都可以在一个以上电路系统的一个以上成员中使用。例如,在操作下,执行单元可以在一个时间点在第一电路系统的第一电路中使用,并在不同时间由第一电路系统中的第二电路或由第二电路系统中的第三电路重新使用。

机器(例如计算机系统)400(例如主机装置105、存储器装置110等等)可以包含硬件处理器402(例如中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器115等等)、主存储器404和静态存储器406,它们中的一些或全部可以经由互连(例如总线)430彼此通信。机器400可以进一步包含显示单元410、字母数字输入装置412(例如键盘)和用户界面(UI)导览装置414(例如鼠标)。在一示例中,显示单元410、输入装置412和UI导览装置414可以是触摸屏显示器。机器400可以另外包含存储装置(例如驱动单元)408、信号生成装置418(例如扬声器)、网络接口装置420和一个或多个传感器416,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器400可以包含输出控制器428,例如串行(例如通用串行总线(USB)、并行或其它有线或无线(例如红外(IR)、近场通信(NFC)等等)连接,以与一个或多个外围装置(例如打印机、读卡器等等)通信或控制它们。

存储装置408可以包含机器可读媒体422,机器可读媒体422上存储有体现本文中所描述的任何一种或多种技术或功能或由其利用的一组或多组数据结构或指令424(例如软件)。指令424在由机器400执行期间还可以全部或至少部分地驻留在主存储器404内、静态存储器406内或硬件处理器402内。在一示例中,硬件处理器402、主存储器404、静态存储器406或存储装置408的一个或任何组合可以构成机器可读媒体422

虽然机器可读媒体422被绘示为单个媒体,但术语“机器可读媒体”可以包含被配置成存储一个或多个指令424的单个媒体或多个媒体(例如集中式或分布式数据库,或关联高速缓冲存储器和服务器)。

术语“机器可读媒体”可以包含能够存储、编码或携带用于由机器400执行的指令并致使机器400执行本发明的任何一种或多种技术或能够存储、编码或携带由此类指令使用或与之相关联的数据结构的任何媒体。非限制性机器可读媒体示例可以包含固态存储器,以及光学和磁性媒体。在一示例中,大量机器可读媒体包括具有多个具有不变(例如静止)质量的粒子的机器可读媒体。因此,大量机器可读媒体不是暂时性传播信号。大量机器可读媒体的特定示例可以包含:非易失性存储器,例如半导体存储器装置(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。

指令424(例如软件、程序、操作系统(OS)等等)或其它数据存储在存储装置421上,可以由存储器404存取以供处理器402使用。存储器404(例如DRAM)通常是快速的,但为易失性的,并因此为类型与适合于长期存储(包含在“关闭”条件下时)的存储装置421(例如SSD)不同的存储装置。由用户或机器400使用的指令424或数据通常加载在存储器404中以供处理器402使用。当存储器404已满时,可以分配来自存储装置421的虚拟空间以补充存储器404;然而,因为存储装置421通常比存储器404慢,并且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用可以由于存储装置时延而极大地降低用户体验(与存储器404(例如DRAM)形成对比)。此外,将存储装置421用于虚拟存储器可以极大地降低存储装置421的使用寿命。

与虚拟存储器对比,虚拟存储器压缩(例如内核特征“ZRAM”)将存储器的部分用作压缩块存储器,以避免分页到存储装置421。在压缩块中进行分页,直到有必要将此类数据写入到存储装置421。虚拟存储器压缩增加了存储器404的可用大小,同时减少了对存储装置421的耗损。

针对移动电子装置而优化的存储装置,或移动存储装置,传统上包含MMC固态存储装置(例如微型安全数字(microSDTM)卡等等)。MMC装置包含与主机装置介接的多个并行接口(例如8位并行接口),并且常常是可从主机装置移除并与其分开的组件。与此对比,eMMCTM装置附接到电路板并被视为主机装置的组件,其读取速度比得上基于串行ATATM(串行AT(高级技术)附件或SATA)的SSD装置。然而,对移动装置性能的需求不断地增加,例如完全启用虚拟装置或增强现实装置,利用不断增加的网络速度等等。响应于此需求,存储装置已从并行通信接口转变为串行通信接口。通用快闪存储(UFS)装置,包含控制器和固件,使用具有专用读取/写入路径的低压差分信令(LVDS)串行接口与主机装置通信,从而进一步提高了读取/写入速度。

指令424可以进一步利用多种传送协议(例如帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等等)中的任一者经由网络接口装置420而使用传输媒体在通信网络426上被传输或接收。示例通信网络可以包含:局域网(LAN);广域网(WAN);分组数据网络(例如互联网);移动电话网络(例如蜂窝网络),例如由第三代合作伙伴计划(3GPP)系列标准(例如3G、4G、5G、长期演进(LTE)等等)定义的那些网络;普通老式电话(POTS)网络;以及无线数据网络(例如电气电子工程师学会(IEEE)802.11系列标准(被称为)、IEEE 802.15.4系列标准、对等式(P2P)网络等等。在一示例中,网络接口装置420可以包含一个或多个物理插孔(例如以太网、同轴或电话插孔)或一个或多个天线以连接到通信网络426。在一示例中,网络接口装置420可以包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者进行无线通信。术语“传输媒体”应被视为包含可以存储、编码或携带用于由机器400执行的指令的任何无形媒体,并包含数字或模拟通信信号或其它无形媒体以促进此类软件的通信。

额外示例:

示例1是一种用于主机自适应存储器装置优化的存储器装置,所述存储器装置包括:存储装置,其用于维护与主机的交互的主机模型;以及处理电路系统,其用于:评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

在示例2中,示例1的主题,其中,为了评估所述一组命令,所述处理电路系统被配置成测量所述一组命令中的命令的特性。

在示例3中,示例2的主题,其中所述特性是数据大小、未决间隔、命令间间隔、与其它类型的存储器装置操作的关系、到达速率、命令队列的深度中的一者。

在示例4中,示例2到3中的任一者的主题,其中,为了将所述配置文件与所述主机模型进行比较,所述处理电路系统被配置成:从所述主机模型中检索单个命令的所述特性的表示;将来自所述一组命令的命令子集的相应特性与所述特性的所述表示进行比较;以及确定所述相应特性比所述特性的所述表示大或小阈值以上以产生所述不一致性。

在示例5中,示例4的主题,其中所述特性的所述表示是平均值。

在示例6中,示例4到5中的任一者的主题,其中所述命令子集的数目超出第二阈值以产生所述不一致性。

在示例7中,示例2到6中的任一者的主题,其中所述命令子集对应于单个类型的命令。

在示例8中,示例7的主题,其中命令的所述类型是读取、写入、清空、擦除、移动或无用单元收集中的一者。

在示例9中,示例1到8中的任一者的主题,其中所述一组命令是所述存储器装置的命令队列中的命令,并且其中所述不一致性是所述命令队列的深度和存储在所述主机模型中的所述命令队列的平均深度之间的差。

在示例10中,示例1到9中的任一者的主题,其中,为了修改所述存储器装置的所述操作,所述处理电路系统被配置成变更主机超时间隔、看门狗定时器、写入高速缓冲存储器大小、清空频率、块对齐参数、无用单元收集频率或耗损均衡参数中的至少一者。

在示例11中,示例10的主题,其中所述主机超时间隔或所述看门狗定时器中的至少一者基于相对于给定命令的接收和针对所述给定命令来自所述主机的后续复位信号的接收的时间度量而变更。

在示例12中,示例1到11中的任一者的主题,其中所述处理电路系统被配置成更新所述主机模型以解决所述不一致性。

在示例13中,示例12的主题,其中,为了更新所述主机模型,所述处理电路系统被配置成修改所述一组命令的平均值特性的条目以在所述平均值特性中包含所述不一致性。

在示例14中,示例12到13中的任一者的主题,其中所述平均值特性是数据大小、未决间隔、与其它类型的存储器装置操作的关系或到达速率中的一者。

示例15是一种用于主机自适应存储器装置优化的方法,所述方法包括:由存储器装置维护与主机的交互的主机模型;评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

在示例16中,示例15的主题,其中评估所述一组命令包含测量所述一组命令中的命令的特性。

在示例17中,示例16的主题,其中所述特性是数据大小、未决间隔、命令间间隔、与其它类型的存储器装置操作的关系、到达速率、命令队列的深度中的一者。

在示例18中,示例16到17中的任一者的主题,其中将所述配置文件与所述主机模型进行比较包含:从所述主机模型中检索单个命令的所述特性的表示;将来自所述一组命令的命令子集的相应特性与所述特性的所述表示进行比较;以及确定所述相应特性比所述特性的所述表示大或小阈值以上以产生所述不一致性。

在示例19中,示例18的主题,其中所述特性的所述表示是平均值。

在示例20中,示例18到19中的任一者的主题,其中所述命令子集的数目超出第二阈值以产生所述不一致性。

在示例21中,示例16到20中的任一者的主题,其中所述命令子集对应于单个类型的命令。

在示例22中,示例21的主题,其中命令的所述类型是读取、写入、清空、擦除、移动或无用单元收集中的一者。

在示例23中,示例15到22中的任一者的主题,其中所述一组命令是所述存储器装置的命令队列中的命令,并且其中所述不一致性是所述命令队列的深度和存储在所述主机模型中的所述命令队列的平均深度之间的差。

在示例24中,示例15到23中的任一者的主题,其中修改所述存储器装置的所述操作包含变更主机超时间隔、看门狗定时器、写入高速缓冲存储器大小、清空频率、块对齐参数、无用单元收集频率或耗损均衡参数中的至少一者。

在示例25中,示例24的主题,其中所述主机超时间隔或所述看门狗定时器中的至少一者基于相对于给定命令的接收和针对所述给定命令来自所述主机的后续复位信号的接收的时间度量而变更。

在示例26中,示例15到25中的任一者的主题,其包括更新所述主机模型以解决所述不一致性。

在示例27中,示例26的主题,其中更新所述主机模型包含修改所述一组命令的平均值特性的条目以在所述平均值特性中包含所述不一致性。

在示例28中,示例26到27中的任一者的主题,其中所述平均值特性是数据大小、未决间隔、与其它类型的存储器装置操作的关系或到达速率中的一者。

示例29是一种机器可读媒体,其包含用于主机自适应存储器装置优化的指令,所述指令在由处理电路系统执行时致使所述处理电路系统执行包括以下各者的操作:由存储器装置维护与主机的交互的主机模型;评估来自所述主机的一组命令以创建所述一组命令的配置文件;将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性;以及基于所述不一致性修改所述存储器装置的操作。

在示例30中,示例29的主题,其中评估所述一组命令包含测量所述一组命令中的命令的特性。

在示例31中,示例30的主题,其中所述特性是数据大小、未决间隔、命令间间隔、与其它类型的存储器装置操作的关系、到达速率、命令队列的深度中的一者。

在示例32中,示例30到31中的任一者的主题,其中将所述配置文件与所述主机模型进行比较包含:从所述主机模型中检索单个命令的所述特性的表示;将来自所述一组命令的命令子集的相应特性与所述特性的所述表示进行比较;以及确定所述相应特性比所述特性的所述表示大或小阈值以上以产生所述不一致性。

在示例33中,示例32的主题,其中所述特性的所述表示是平均值。

在示例34中,示例32到33中的任一者的主题,其中所述命令子集的数目超出第二阈值以产生所述不一致性。

在示例35中,示例30到34中的任一者的主题,其中所述命令子集对应于单个类型的命令。

在示例36中,示例35的主题,其中命令的所述类型是读取、写入、清空、擦除、移动或无用单元收集中的一者。

在示例37中,示例29到36中的任一者的主题,其中所述一组命令是所述存储器装置的命令队列中的命令,并且其中所述不一致性是所述命令队列的深度和存储在所述主机模型中的所述命令队列的平均深度之间的差。

在示例38中,示例29到37中的任一者的主题,其中修改所述存储器装置的所述操作包含变更主机超时间隔、看门狗定时器、写入高速缓冲存储器大小、清空频率、块对齐参数、无用单元收集频率或耗损均衡参数中的至少一者。

在示例39中,示例38的主题,其中所述主机超时间隔或所述看门狗定时器中的至少一者基于相对于给定命令的接收和针对所述给定命令来自所述主机的后续复位信号的接收的时间度量而变更。

在示例40中,示例29到39中的任一者的主题,其中所述操作包括更新所述主机模型以解决所述不一致性。

在示例41中,示例40的主题,其中更新所述主机模型包含修改所述一组命令的平均值特性的条目以在所述平均值特性中包含所述不一致性。

在示例42中,示例40到41中的任一者的主题,其中所述平均值特性是数据大小、未决间隔、与其它类型的存储器装置操作的关系或到达速率中的一者。

示例43是一种用于主机自适应存储器装置优化的系统,所述系统包括:用于由存储器装置维护与主机的交互的主机模型的构件;用于评估来自所述主机的一组命令以创建所述一组命令的配置文件的构件;用于将所述配置文件与所述主机模型进行比较以确定所述配置文件和所述主机模型之间的不一致性的构件;以及用于基于所述不一致性修改所述存储器装置的操作的构件。

在示例44中,示例43的主题,其中所述用于评估所述一组命令的构件包含用于测量所述一组命令中的命令的特性的构件。

在示例45中,示例44的主题,其中所述特性是数据大小、未决间隔、命令间间隔、与其它类型的存储器装置操作的关系、到达速率、命令队列的深度中的一者。

在示例46中,示例44到45中的任一者的主题,其中所述用于将所述配置文件与所述主机模型进行比较的构件包含:用于从所述主机模型中检索单个命令的所述特性的表示的构件;用于将来自所述一组命令的命令子集的相应特性与所述特性的所述表示进行比较的构件;以及用于确定所述相应特性比所述特性的所述表示大或小阈值以上以产生所述不一致性的构件。

在示例47中,示例46的主题,其中所述特性的所述表示是平均值。

在示例48中,示例46到47中的任一者的主题,其中所述命令子集的数目超出第二阈值以产生所述不一致性。

在示例49中,示例44到48中的任一者的主题,其中所述命令子集对应于单个类型的命令。

在示例50中,示例49的主题,其中命令的所述类型是读取、写入、清空、擦除、移动或无用单元收集中的一者。

在示例51中,示例43到50中的任一者的主题,其中所述一组命令是所述存储器装置的命令队列中的命令,并且其中所述不一致性是所述命令队列的深度和存储在所述主机模型中的所述命令队列的平均深度之间的差。

在示例52中,示例43到51中的任一者的主题,其中所述用于修改所述存储器装置的所述操作的构件包含用于变更主机超时间隔、看门狗定时器、写入高速缓冲存储器大小、清空频率、块对齐参数、无用单元收集频率或耗损均衡参数中的至少一者的构件。

在示例53中,示例52的主题,其中所述主机超时间隔或所述看门狗定时器中的至少一者基于相对于给定命令的接收和针对所述给定命令来自所述主机的后续复位信号的接收的时间度量而变更。

在示例54中,示例43到53中的任一者的主题,其包括用于更新所述主机模型以解决所述不一致性的构件。

在示例55中,示例54的主题,其中所述用于更新所述主机模型的构件包含用于修改所述一组命令的平均值特性的条目以在所述平均值特性中包含所述不一致性的构件。

在示例56中,示例54到55中的任一者的主题,其中所述平均值特性是数据大小、未决间隔、与其它类型的存储器装置操作的关系或到达速率中的一者。

示例57是至少一种机器可读媒体,其包含指令,所述指令在由处理电路系统执行时致使所述处理电路系统执行操作以实施示例1到56中的任一者。

示例58是一种设备,其包括用于实施示例1到56中的任一者的构件。

示例59是一种用于实施示例1到56中的任一者的系统。

示例60是一种用于实施示例1到56中的任一者的方法。

以上具体实施方式包含对附图的参考,这些附图形成了具体实施方式的部分。附图通过说明的方式展示了可以实践本发明的特定实施例。这些实施例在本文中也被称为“示例”。此类示例还可以包含除了所展示或描述的那些元件以外的元件。然而,本发明人还考虑了仅提供所展示或描述的那些元件的示例。此外,本发明人还考虑关于特定示例(或其一个或多个方面)或关于本文中所展示或描述的其它示例(或其一个或多个方面)所展示或描述的那些元素(或其一个或多个方面)的任何组合或排列的示例。

在本文档中,术语“一”如专利文档中常见的那样用于包含一个或一个以上,其独立于“至少一个”或“一个或多个”的任何其它实例或用法。在本文档中,除非另有指示,否则术语“或”用于是指非排它性的或,使得“A或B”可以包含“A而不是B”、“B而不是A”以及“A和B”。在所附权利要求书中,术语“包含(including)”和“其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的普通英语等效词。此外,在所附权利要求书中,术语“包含”和“包括”是开放式的,也就是说,包含除了权利要求书中在此类术语之后列出的元件以外的元件的系统、装置、物品或过程仍然被认为属于所述权利要求书的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等等仅仅用作标签,且并不旨在对其对象施加数字要求。

在各种示例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可以尤其包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”是指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含一组处理器或多核心装置。

术语“晶片”和“衬底”在本文中通常用于是指在其上形成集成电路的任何结构,并还是指在集成电路制造的各个阶段期间的此类结构。因此,以下具体实施方式不应被视为限制性的意义,并且各种实施例的范围仅由所附权利要求书以及此类权利要求书所赋予的等效物的全部范围限定。

根据本发明并在本文中所描述的各种实施例包含利用存储器单元的竖直结构(例如存储器单元的NAND串)的存储器。如本文中所使用,定向形容词将被视为相对于其上形成有存储器单元的衬底表面(即,竖直结构将被视为远离衬底表面延伸,竖直结构的底端将被视为最接近衬底表面的端,并且竖直结构的顶端将被视为最远离衬底表面的端)。

如本文中所使用,操作存储器单元包含从存储器单元读取,向存储器单元写入,或擦除存储器单元。将存储器单元置于预期状态的操作在本文中被称为“编程”,并可以包含向存储器单元写入或从存储器中擦除两者(例如存储器单元可以被编程为擦除状态)。

根据本发明的一个或多个实施例,位于存储器装置内部或外部的存储器控制器(例如处理器、控制器、固件等等)能够确定(例如选择、设置、调整、计算、变更、清除、传达、适配、导出、限定、利用、修改、应用等等)一定数量的耗损周期或耗损状态(例如记录耗损周期,对它们发生时存储器装置的操作进行计数,跟踪它启动的存储器装置的操作,评估与耗损状态相对应的存储器装置特性等等)。

根据本发明的一个或多个实施例,存储器存取装置可以被配置成在每次存储器操作时向存储器装置提供耗损周期信息。存储器装置控制电路系统(例如控制逻辑)可以被编程为补偿与耗损周期信息相对应的存储器装置性能变更。存储器装置可以接收耗损周期信息,并响应于耗损周期信息而确定一个或多个操作参数(例如值、特性)。

本文中所描述的方法示例可以至少部分地是机器或计算机实施的。一些示例可以包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如以上示例中所描述的方法。此类方法的实施方案可以包含代码,例如微代码、汇编语言代码、高级语言代码等等。此类代码可以包含用于执行各种方法的计算机可读指令。所述代码可以形成计算机程序产品的部分。此外,可以例如在执行期间或在其它时间将代码有形地存储在一个或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的示例可以包含但不限于硬盘、可移动磁盘、可移动光盘(例如紧凑光盘和数字视频磁盘)、卡盒式磁带、存储器卡或存储器棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置等等。

以上描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以彼此组合地使用。在回顾以上描述后,就可以例如由所属领域的普通技术人员使用其它实施例。提交本文档时应理解,不会将其用于解释或限制权利要求书的范围或含义。此外,在以上具体实施方式中,可以将各种特征分组在一起以简化本发明。这不应被解释为意在未主张的所揭示特征对于任何权利要求是必不可少的。而是,发明主题可以在于少于特定所揭示实施例的所有特征。因此,所附权利要求书据此并入到具体实施方式中,其中每个权利要求独立地作为单独实施例,并且可以预期的是,此类实施例可以以各种组合或排列彼此组合。本发明的范围应参考所附权利要求书以及此类权利要求书所赋予的等效物的全部范围来确定。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用固件的存储器装置策略执行

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!