挂起和恢复非易失性存储器操作的制作方法

文档序号:11935154阅读:192来源:国知局
挂起和恢复非易失性存储器操作的制作方法与工艺

所公开的实施例总体上涉及存储器系统,并且具体地涉及管理和挂起闪存操作。



背景技术:

半导体存储器设备(包括闪存)通常利用存储器单元来将数据存储为电性值,如电荷或电压。闪存单元例如包括具有用于存储表示数据值的电荷的浮栅的单个晶体管。闪存是可以被电擦除和重新编程的非易失性数据存储设备。更一般地,与需要电力来维持存储信息的易失性存储器相反,即使断电时,非易失性存储器(例如,闪存以及使用各种技术中的任何技术实现的其他类型的非易失性存储器)仍然保持所存储的信息。已经采用各种方式来促进存储密度的增加,包括:增加芯片上的通过制造发展而启动的存储器单元的密度,以及从单级闪存单元到多级闪存单元的转变,从而使得每个闪存单元可以存储两个或更多个比特。

由于闪存可能经受对执行存储器操作的服务质量约束(例如,可能需要设备在规定时限(如2ms)内响应读操作的至少一个预定义百分比(如99%)),因此优化存储器管理进程以便适应这些约束是很重要的。



技术实现要素:

所附权利要求书的范围内的系统、方法和设备的各个实施方式各自具有若干方面,其中这些方面中没有哪个单个方面单独地负责在此所描述的属性。不限制所附权利要求书的范围,在考虑本公开之后,并且具体地在考虑标题为“具体实施方式”的部分之后,将理解如何使用各个实施方式的各个方面来使能够管理和挂起闪存操作。一方面,结合启动定时器而执行来自第一队列的第一存储器操作,并且根据确定所述定时器已经到期来执行一个或多个操作,包括:判定第二队列是否包含第二存储器操作;以及如果包含,则挂起第一存储器操作并且执行第二存储器操作。

附图说明

为了可以更详细地理解本公开,可参考各个实施方式的特征以产生更具体的说明,所述实施方式中的一些被展示在附图中。然而,附图仅展示了本公开的更相关特征,并且因此不应被认为是限制性的,因为说明书可以允许其他有效的特征。

图1是框图,展示了根据一些实施例的非易失性存储器系统。

图2A是框图,展示了根据一些实施例的包括在图1中的非易失性存储器控制器。

图2B是框图,展示了根据一些其他实施例的包括在图1中的非易失性存储器控制器。

图3是流程图表示,展示了根据一些实施例的逻辑模块的操作。

图4A至图4G展示了根据一些实施例的管理和挂起方法的流程图表示。

根据惯例,附图中展示的各种特征不必按比例绘制。因此,为了清晰起见,不同特征的尺寸可以被任意放大或减小。此外,一些附图可能没有描绘给定系统、方法或设备的所有部件。最后,贯穿说明书和附图,相同的参考数字可以用来表示相似的特征。

具体实施方式

在此所描述的各个实施方式包括用于使能够管理和挂起闪存操作的系统、方法和/或设备。一些实施方式包括系统、方法和/或设备,所述系统、方法和/或设备用于结合启动定时器(例如,同时启动定时器)而执行来自第一队列的第一存储器操作,并且根据确定所述定时器已经到期来执行一个或多个操作,包括:判定第二队列是否包含第二存储器操作;以及如果包含,则挂起第一存储器操作并且执行第二存储器操作。

更具体地,一些实施例包括一种在非易失性存储器系统中操作的方法。在一些实施例中,所述方法包括:(1)在所述非易失性存储器系统中开始执行来自第一队列的第一存储器操作,(2)结合开始执行所述第一存储器操作,在所述非易失性存储器系统中启动第一定时器,其中,所述第一定时器被设置为在第一预定时间间隔之后到期;以及(3)在启动所述第一定时器之后,根据确定所述第一定时器已经到期,在所述非易失性存储器系统中执行一个或多个操作,包括:判定第二队列是否包含至少一个要执行的存储器操作。在这些实施例中,所述方法进一步包括:根据确定所述第二队列包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(i)挂起来自所述第一队列的所述第一存储器操作,(ii)执行来自所述第二队列的第二存储器操作;以及(iii)在完成执行来自所述第二队列的所述第二存储器操作之后,执行一个或多个后续操作。此外,在这些实施例中,所述方法进一步包括:根据确定所述第二队列不包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(i)重新启动所述第一定时器;以及(ii)继续执行来自所述第一队列的所述第一存储器操作。

在一些实施例中,所述第一队列是用于存储等待执行的普通优先级存储器操作的普通作业队列,并且所述第二队列是用于存储等待执行的高优先级存储器操作的高优先级作业队列。

在一些实施例中,所述方法包括从多个定时器中为所述第一存储器操作分配所述第一定时器。

在一些实施例中,所述一个或多个后续操作包括:(1)重新启动所述第一定时器,以及(2)恢复执行来自所述第一队列的所述第一存储器操作。

在一些实施例中,来自主机系统的读操作被置于所述第二队列中。

在一些实施例中,所述第一队列和所述第二队列是逻辑队列,并且所述第一队列和所述第二队列两者均是单个物理队列的一部分。

在一些实施例中,所述第一队列和所述第二队列是不同物理队列。

在一些实施例中,所述非易失性存储器系统包括全局指示符,所述全局指示符当被置位时指示不能挂起所述第一队列中的存储器操作,并且所述方法进一步包括:(1)根据预定义条件或命令置位所述全局指示符,以及(2)根据确定所述全局指示符被置位,防止挂起所述第一队列中的存储器操作。

在一些实施例中,所述方法进一步包括:根据关于所述第一定时器已经到期的一个或多个后续判定中的每个后续判定,执行一个或多个操作,包括:(1)判定所述第二队列是否包含至少一个要执行的存储器操作;(2)根据确定所述第二队列包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(a)挂起来自所述第一队列的所述第一存储器操作,(b)执行来自所述第二队列的存储器操作(有时被称为对应存储器操作),以及(c)在完成执行来自所述第二队列的所述存储器操作之后,执行一个或多个后续操作,包括:(i)重新启动所述第一定时器、以及(ii)恢复执行来自所述第一队列的所述第一存储器操作;以及(3)根据确定所述第二队列不包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(a)重新启动所述第一定时器,以及(b)继续执行来自所述第一队列的所述第一存储器操作。

在一些实施例中,所述方法进一步包括:(1)在所述非易失性存储器系统中开始执行来自所述第一队列的第三存储器操作,(2)结合开始执行所述第三存储器操作,在所述非易失性存储器系统中启动第二定时器,其中,所述第二定时器被设置为在第二预定时间间隔之后到期;以及(3)在启动所述第二定时器之后,根据确定所述第二定时器已经到期,在所述非易失性存储器系统中执行一个或多个操作,包括:判定所述第二队列是否包含至少一个要执行的存储器操作。在这些实施例中,所述方法进一步包括:根据确定所述第二队列包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(i)挂起来自所述第一队列的所述第三存储器操作;(ii)执行来自所述第二队列的第四存储器操作;以及(iii)在完成执行来自所述第二队列的所述第四存储器操作之后,执行一个或多个后续操作,包括:(aa)重新启动所述第二定时器,以及(bb)恢复执行来自所述第一队列的所述第三存储器操作。此外,在这些实施例中,所述方法进一步包括:根据确定所述第二队列不包含至少一个要执行的存储器操作,执行一个或多个操作,包括:(i)重新启动所述第二定时器;以及(ii)继续执行来自所述第一队列的所述第三存储器操作。

在一些实施例中,所述第二预定时间间隔与所述第一预定时间间隔不同。

在一些实施例中,所述方法进一步包括:判定所述第一队列中在所述第一存储器操作之后的存储器操作是否包括对应指示符;以及根据确定所述后续存储器操作的所述对应指示符被置位,防止挂起所述后续存储器操作。

在一些实施例中,所述方法进一步包括:根据确定所述后续存储器操作的指示符被置位,防止挂起所述后续存储器操作。

在一些实施例中,所述非易失性存储器系统包括多个部分,每个部分具有一个或多个非易失性存储器设备、(对应的)第一队列、(对应的)第二队列、以及当被置位时指示不能挂起所述第一队列中的存储器操作的专用于部分的指示符,并且所述方法进一步包括:根据确定所述非易失性存储器系统的第一部分(有时被称为对应部分)的所述专用于部分的指示符被置位,防止挂起所述非易失性存储器系统的所述第一部分的所述第一队列中的存储器操作。

在一些实施例中,所述非易失性存储器系统包括全局指示符,所述全局指示符当被置位时指示不能挂起所述非易失性存储器系统的所述多个部分的所述对应第一队列中的存储器操作,并且所述方法进一步包括:(1)根据预定义条件或命令置位所述全局指示符;以及(2)根据确定所述全局指示符被置位,防止挂起所述非易失性存储器系统的所述多个部分的所述对应第一队列中的存储器操作。

在一些实施例中,所述非易失性存储器系统包括一个或多个闪存设备。

在一些实施例中,所述非易失性存储器系统包括一个或多个三维(3D)存储器设备以及与所述一个或多个3D存储器设备中的存储器元件的操作相关联的电路。

在一些实施例中,所述一个或多个3D存储器设备中的对应3D存储器设备中的电路和一个或多个存储器元件在相同的基板上。

另一方面,以上所描述的方法中的任何方法由非易失性存储器系统执行,所述非易失性存储器系统包括:(1)一个或多个处理器,以及(2)存储一个或多个程序的存储器,所述程序当由所述一个或多个处理器执行时使所述非易失性存储器系统执行在此所描述的方法中的任何方法或控制其性能。

在又另一方面,以上所描述的方法中的任何方法由非易失性存储器系统执行,所述非易失性存储器系统包括多个部分,每个部分具有一个或多个非易失性存储器设备,其中,针对每个部分,所述非易失性存储器系统包括:(1)一个或多个定时器;(2)第一队列和第二队列;以及(3)逻辑模块,其中,所述逻辑模块被配置成用于执行在此所描述的方法中的任何方法或控制其性能。

在又另一方面,以上所描述的方法中的任何方法由非易失性存储器系统执行,所述非易失性存储器系统包括用于执行在此所描述的方法中的任何方法的装置。

在又另一方面,一些实施例包括一种非瞬态计算机可读存储介质,所述非瞬态计算机可读存储介质存储有被配置成由非易失性存储器系统的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行在此所描述的方法中的任何方法的指令。

为了提供对附图中展示的示例实施方式的透彻理解,在此描述了大量细节。然而,可以在没有许多特定细节的情况下实践一些实施例,并且权利要求书的范围仅由在权利要求中具体记载的那些特征和方面限制。此外,并未对已知的方法、部件和电路进行详细描述,以免不必要模糊在此所描述的实施方式的更多相关方面。

图1是框图,展示了根据一些实施例的非易失性存储器系统100的实施方式。尽管展示了一些示例特征,但是,为简洁起见并且以免不必要模糊在此所公开的示例实施方式的更多相关方面,没有展示各种其他特征。为此,作为非限制性示例,非易失性存储器系统100包括存储设备120,所述存储设备包括主机接口129、存储控制器124、非易失性存储器(NVM)控制器130(例如,NVM控制器130-1至NVM控制器130-p)、以及非易失性存储器(NVM)(例如,一个或多个NVM设备140,如一个或多个闪存设备),并且所述存储设备结合计算机系统110一起使用。

计算机系统110通过数据连接101耦合至存储设备120。然而,在一些实施例中,计算机系统110包括作为部件和/或子系统的存储控制器124。计算机系统110可以是任何合适的计算机设备,如计算机、膝上型计算机、平板计算机、上网本、因特网信息站、个人数字助理、移动电话、智能电话、游戏设备、计算机服务器、或任何其他计算设备。计算机系统110有时被称为主机或主机系统。在一些实施例中,计算机系统110包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户接口部件,如键盘、触屏显示器、鼠标、轨迹板、数字相机和/或用于增加功能的任何数量的补充设备。此外,在一些实施例中,计算机系统110向存储设备120发送控制线111上的一个或多个主机命令(例如,读命令和/或写命令)。在一些实施例中,计算机系统110是服务器系统(如数据中心中的服务器系统)并且不具有显示器和其他用户接口部件。

在一些实施例中,存储设备120包括主机接口129、存储控制器124、NVM控制器130(例如,NVM控制器130-1至NVM控制器130-p)以及NVM设备140(例如,NVM设备140-i至140-j以及NVM设备140-m至140-n)。存储设备120可以包括各种附加特征,为简洁起见并且以免模糊在此公开的示例实施方式的更多相关特征,没有展示所述附加特征,并且所述特征的不同安排是可能的。主机接口129通过数据连接101向计算机系统110提供接口。

在一些实施例中,每个NVM控制器130包括被配置成用于执行一个或多个程序中的指令(例如,在NVM控制器130中)的一个或多个处理单元(有时被称为CPU或处理器或微处理器或微控制器)。NVM设备140通过连接与NVM控制器130耦合,所述连接传达除数据外的命令,并且可选地传达元数据、纠错信息和/或除了将要存储在NVM设备140中的数据值以及从NVM设备140中读出的数据值之外的其他信息。在一些实施方式中,存储设备120被配置成用于适合于如云计算等应用的企业存储设备,或者被配置成用于缓存在辅助存储设备(如硬盘驱动器)中所存储(或将要存储)的数据。可替代地,存储设备120被配置成用于个人、膝上型和平板计算机的相对更小型应用,如个人闪存驱动器或硬盘替代。尽管闪存设备和闪存控制器在此被用作示例,但是,在一些实施例中,存储设备120包括其他(多个)非易失性存储器设备和相应的(多个)非易失性存储器控制器。在一些实施例中,如在此进一步定义的,存储设备120包括一个或多个三维(3D)存储器设备。

一个或多个NVM设备140(例如,NVM设备140-i至140-j或NVM设备140-m至140-n)和相应的NVM控制器130(例如,对应的NVM控制器130-1或NVM控制器130-p)的组合有时指部分或非易失性存储器部分(在此有时被称为存储器通道)。非易失性存储器系统100可以包括许多部分,因为存在不同组NVM设备,可以由一组NVM控制器并行的将命令发送至不同组NVM设备。

在一些实施例中,存储设备120包括单个NVM设备(例如,单个闪存设备),而在其他实施例中,存储设备120包括多个NVM设备(例如,多个闪存设备)。在一些实施例中,NVM设备140包括NAND类型闪存或NOR类型闪存。此外,在一些实施例中,NVM控制器130是固态驱动器(SSD)控制器。然而,根据各种各样的实施方式的各个方面,可以包括一种或多种其他类型的存储介质。在一些实施例中,存储设备120是或者包括双列直插式存储器模块(DIMM)设备。在一些实施例中,存储设备120与DIMM存储器槽兼容。在一些实施例中,存储器控制器120和主机接口使用定义的通信接口标准,如双倍数据速率类型三(DDR3)同步动态随机存取存储器。在一些实施例中,由存储器控制器120和主机接口使用的定义的通信接口标准是串行高级技术附件(SATA)。在一些其他实施方式中,由存储器控制器120和主机接口使用的定义的通信接口标准是SAS(串行附接SCSI)、或任何其他合适的存储接口标准。

在一些实施例中,存储控制器124包括管理模块121。存储控制器124通常与主机接口129和NVM控制器130耦合,以便协调这些部件的操作。存储控制器124可以包括各种附加特征,为简洁起见并且以免模糊在此公开的示例实施方式的更多相关特征,没有展示所述附加特征,并且所述特征的不同安排是可能的。

在一些实施例中,管理模块121包括被配置成用于执行一个或多个程序中的指令(例如,在管理模块121中)的一个或多个处理单元(CPU、有时还被称为处理器)122。在一些实施例中,一个或多个CPU 122由在存储控制器124的功能之内(以及某些情况下之外)的一个或多个部件共享。

然而,在一些实施方式中,存储控制器124、NVM控制器130和NVM设备140包括在如其部件等相同设备中。此外,在一些实施方式中,存储控制器124、NVM控制器130和NVM设备140嵌入在主机设备(如服务器系统、移动设备、平板、其他计算机或计算机控制设备)中,并且在此所描述的方法由嵌入的存储器控制器执行。

图2A是框图,展示了根据一些实施方式的包括在图1中的NVM控制器130的实施方式。尽管展示了一些示例特征,但是,为简洁起见并且以免不必要模糊在此所公开的示例实施方式的更多相关方面,没有展示各种其他特征。为此,作为非限制性示例,NVM控制器130包括逻辑模块201、操作队列202(有时指作业队列)以及定时器204。

在一些实施例中,对应的NVM控制器130中的操作队列202用于保持存储器操作由耦合至对应NVM控制器130的一个或多个NVM设备140执行。对应操作队列202当不为空时包含与读、写和/或擦除操作相对应的一个或多个存储器操作(或那些存储器操作的表示),以便从相应组NVM设备(例如,NVM设备140)中读取数据、将数据写入其中或从其中擦除数据。在一些实施例中,操作队列202中的存储器操作包括从主机系统(例如,计算机系统110)中接收的存储器操作。例如,在一些实施例中,操作队列202-1是包含一个或多个读、写和/或擦除操作的普通优先级作业队列,并且操作队列202-2是包含来自主机系统的一个或多个读操作的高优先级作业队列。在一些实施例中,普通优先级作业队列当等待执行时存储除了从主机系统接收的读操作外的所有存储器操作。此外,在一些实施例中,普通优先级队列包含内部生成的存储器操作,如由垃圾收集进程下发的存储器操作。

在一些实施例中,对应NVM控制器130中的定时器204用于在执行一个或多个存储器操作期间对时间流逝进行计时或跟踪。在一些实施例中,从多个定时器中为来自操作队列202的对应存储器操作分配对应定时器(例如,定时器204-1至204-k之一)。在一些实施例中,为来自操作队列202的对应存储器操作分配对应定时器(例如,定时器204-1至204-k之一)结合(例如,同时地)开始执行对应存储器操作一起发生。在一些实施例中,为来自操作队列202的对应存储器操作分配对应定时器(例如,定时器204-1至204-k之一)先于开始执行对应的存储器操作而发生。在一些实施例中,根据对应存储器操作的操作类型来为来自操作队列202的对应存储器操作分配对应定时器(例如,定时器204-1至204-k之一)。例如,在一些实施例中,当第一存储器操作的操作类型是写操作时,为所述第一存储器操作分配第一定时器。在一些实施例中,当第二存储器操作的操作类型是擦除操作时,为所述第二存储器操作分配第二定时器。在一些实施例中,第一定时器被设置为在第一预定时间间隔之后到期,并且第二定时器被设置为在第二预定时间间隔之后到期。在一些实施例中,第一预定时间间隔与第二预定时间间隔相同,而在一些其他实施例中,第一预定时间间隔与第二预定时间间隔不同。

在一些实施例中,当对应存储器操作的操作类型是写操作时,为对应存储器操作分配来自定时器的第一子集的第一定时器,并且当对应存储器操作的操作类型是擦除操作时,为对应存储器操作分配来自定时器的第二子集的第二定时器。在一些实施例中,当来自第一子集的定时器被分配时,将其设置为在第一预定时间间隔之后到期,并且当来自第二子集的定时器被分配时,将其设置为在第二预定时间间隔之后到期。在一些实施例中,第一预定时间间隔与第二预定时间间隔相同。在一些实施例中,第一预定时间间隔与第二预定时间间隔不同。

在一些实施例中,操作队列202中的对应操作包括与定时器204的特殊定时器相关联的标识符。在一些实施例中,根据标识符为对应操作分配定时器204的特殊定时器。

逻辑模块201耦合至操作队列202,并且包括用于管理执行操作队列202中的存储器操作的逻辑。例如,在一些实施例中,逻辑模块201被配置成用于判定操作队列202是否包含一个或多个要执行的存储器操作、管理执行来自操作队列202的存储器操作、管理定时器204以及判定定时器204是否已经到期。在一些实施例中,逻辑模块201被配置成用于实施以下参照图3和图4A至图4G描述的方法中的任何方法。

尽管图2A示出了两个操作队列(例如,操作队列202-1和操作队列202-2),但是在其他实施例中,NVM控制器130包括一个或多个操作队列。在一些实施例中,NVM控制器130包括两个逻辑操作队列,这两个逻辑操作队列是单个物理操作队列的一部分。此外,在一些实施例中,NVM控制器130包括每个NVM设备(例如,NVM设备140-i至140-j以及NVM设备140-m至140-n中的每个NVM设备)一个定时器。

图2B是框图,展示了根据一些实施方式的包括在图1中的NVM控制器130的另一个实施方式。NVM控制器130包括一个或多个处理单元(CPU)240、存储器206、以及用于使这些部件互连的一个或多个通信总线208,所述一个或多个处理单元用于执行存储在存储器206中的模块、程序和/或指令并且由此执行处理操作。通信总线208可选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时被称为芯片组)。NVM控制器130通过通信总线208耦合至存储控制器124和NVM设备140(例如,NVM设备140-i至140-j)。存储器206包括高速随机存取存储器,如DRAM、SRAM、DDR RAM或者其他随机存取固态存储设备;并且可包括非易失性存储器,如一个或多个磁盘存储设备、光盘存储设备、闪存设备、或者其他非易失性固态存储设备。存储器206可选地包括与(多个)CPU 240远离地定位的一个或者多个存储设备。存储器206或者可替换地在存储器206内的(多个)非易失性存储器设备包括非瞬态计算机可读存储介质。在一些实施例中,存储器206或存储器206的计算机可读存储介质存储下述程序、模块和数据结构或其子集:

·用于从一个或多个NVM设备中读取数据的数据读模块210;

·用于向一个或多个NVM设备写入数据的数据写模块212;

·用于从一个或多个NVM设备中擦除数据的数据擦除模块214;

·用于管理和挂起执行存储器操作的逻辑模块220,可选地包括:

o用于挂起一个或多个存储器操作的挂起模块222;

o用于恢复一个或多个存储器操作的恢复模块224;

o用于执行一个或多个存储器操作的执行模块226;

o用于防止挂起一个或多个存储器操作的覆盖模块228;

o定时器模块230,所述定时器模块用于管理定时器234(包括启动、停止和重设定时器234),并且判定定时器234是否已经到期;

o用于判定操作队列236是否包含一个或多个要执行的存储器操作的队列接口模块232;

·用于在执行一个或多个存储器操作期间对所经过的时间进行计时或跟踪的定时器234;以及

·用于保持要执行的存储器操作的操作队列236。

上述要素中的每一个都可以被存储在前面所提到的存储器设备中的一个或多个中,并且与用于执行上述功能的指令集相对应。上述模块或程序(即,指令集)不需要被实现为独立的软件程序、过程或模块,从而在各个实施例中,可以组合或者以其他方式重新排列这些模块的各个子集。在一些实施例中,存储器206可保存上述模块和数据结构的子集。此外,存储器206可存储上面没有说明的另外的模块和数据结构。在一些实施例中,存储在存储器206中的程序、模块和数据结构或者存储器206的计算机可读存储介质提供用于实施以下参照图3和图4A至图4G描述的方法中的任何方法的指令。

尽管图2B示出了根据一些实施例的NVM控制器130,但是图2B与其意在作为在此所描述的实施例的结构示意相比,更意在作为可以在NVM控制器130中存在的各种特征的功能描述。实践中,以及本领域技术人员知道的,分开示出的各项可以组合,并且一些项可以被分开。

图3是流程图表示,展示了根据一些实施例的逻辑模块的操作。在一些实施例中,图3的操作由图2A中的逻辑模块201执行。在一些实施例中,图3的操作由图2B中的逻辑模块220执行。为便于解释,以下描述了由图2A中的逻辑模块201执行的图3。

在一些实施例中,逻辑模块201开始(300)执行第一存储器操作(例如,来自普通优先级操作队列(如图2A中的队列202-1)的存储器操作)并且启动第一定时器(例如,图2A中的定时器204-1)。然后,逻辑模块201判定(302)第一定时器是否已经到期。如果第一定时器没有到期(302-No),则逻辑模块201继续判定(302)第一定时器是否已经到期。如果第一定时器已经到期(302-Yes),则逻辑模块201判定(304)第二队列(例如,高优先级操作队列,如图2A中的队列202-2)是否包含存储器操作。如果第二队列不包含存储器操作(304-No),则逻辑模块201重新启动(312)第一定时器,继续执行第一存储器操作,并且继续判定(302)第一定时器是否已经到期。

如果第二队列包含存储器操作(304-Yes),则逻辑模块201挂起(306)第一存储器操作,执行(308)来自第二队列的第二存储器操作,并且然后执行(310)一个或多个后续操作。在一些实施例中,执行(310)一个或多个后续操作包括重新启动第一定时器并且恢复执行第一操作。在一些实施例中,在执行第一存储器操作期间每次启动或重新启动第一定时器时,将其“设置”为在预定时间量(如500微秒)之后到期。通常,执行第一存储器操作在多个(例如,3到10)定时器到期之后完成。在一些情况下,如在第二队列包含多个存储器操作的情况下,执行第一存储器操作与执行来自第二队列的两个或更多个存储器操作交替进行。

图4A至图4G展示了根据一些实施例的管理和挂起方法的流程图表示。至少在一些实施例中,方法400由存储设备(例如,图1中的存储设备120)或存储设备的一个或多个部件(例如,图1中的存储控制器124和/或NVM控制器130)执行,其中,存储设备与主机系统(例如,图1中的计算机系统110)操作性地耦合。在一些实施例中,方法400由存储在非瞬态计算机可读存储介质中并由设备的一个或多个处理器(如图1中示出的管理模块121的一个或多个处理单元(CPU)122,或如图2B中示出的NVM控制器130的一个或多个处理单元(CPU)240)执行的指令控制。在一些实施例中,方法400由非易失性存储器系统(例如,图1中的非易失性存储器系统100)或非易失性存储器系统的一个或多个部件(例如,图1中的计算机系统110和/或存储设备120)执行。在一些实施例中,方法400的操作中的一些操作在主机(例如,图1中的计算机系统110)处执行,并且信息被传输至存储设备(例如,图1中的存储设备120)。在一些实施例中,方法400至少部分地由存储在非瞬态计算机可读存储介质中并由主机(图1中未示出)的一个或多个处理器执行的指令控制。为便于解释,以下描述了由存储设备(例如,图1中的存储设备120)执行的方法400。然而,本领域的技术人员将认识到,在其他实施例中,方法400中描述的操作中的一个或多个操作由主机(例如,图1中的计算机系统110)执行。

在非易失性存储器系统(例如,图1中的非易失性存储器系统100)中,存储设备(例如,图1中的存储设备120)开始(402)执行来自第一队列(例如,图2A中的操作队列202-1)的第一存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于开始执行来自第一队列的第一存储器操作。在一些实施例中,执行模块(例如,图2B中的执行模块226)用于开始执行来自第一队列(例如,图2B中的第一操作队列236)的第一存储器操作。

在非易失性存储器系统中,结合开始执行第一存储器操作,存储设备启动(404)第一定时器,其中,第一定时器被设置为在第一预定时间间隔之后到期。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于启动第一定时器(例如,图2A中的定时器204-1)。在一些实施例中,定时器模块(例如,图2B中的定时器模块230)用于启动第一定时器(例如,图2B中的定时器234)。

在一些实施例中,存储设备从多个定时器(例如,图2A中的定时器204或图2B中的定时器234)中为第一存储器操作分配(406)第一定时器(例如,图2A中的定时器204-1或图2B中的定时器234中的一个定时器)。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于分配第一定时器,而在一些实施例中,定时器模块(例如,图2B中的定时器模块230)用于分配第一定时器。

在启动第一定时器之后,存储设备根据确定第一定时器已经到期,在非易失性存储器系统中执行(408)一个或多个操作(有时指第一组操作)。在一些实施例中,在启动第一定时器(例如,图2A中的定时器204-1或图2B中的定时器234)之后,根据确定第一定时器已经到期,逻辑模块(例如,图2A中的逻辑模块201或图2B中的逻辑模块220)在非易失性存储器系统中执行一个或多个操作。

第一组操作包括判定(410)第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)是否包含至少一个要执行的存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于判定第二队列是否包含至少一个要执行的存储器操作,而在一些实施例中,使用队列接口模块。

在一些实施例中,第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)是(438)普通优先级作业队列,并且第二队列(例如,图2A中的操作队列202-2或图2B中的第一操作队列236)是高优先级作业队列。在一些实施例中,来自主机系统(例如,图1中的计算机系统110)的读操作被置于(440)第二队列中。在一些实施例中,第一队列和第二队列是(442)逻辑队列,并且第一队列和第二队列两者是单个物理队列的一部分。在一些实施例中,第一队列和第二队列是(444)不同物理队列。

第一组操作进一步包括:根据确定第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)包含至少一个要执行的存储器操作,来执行(412)一个或多个操作(有时指第二组操作),包括:(1)挂起来自所述第一队列的所述第一存储器操作;(2)执行来自所述第二队列的第二存储器操作;以及(3)在完成执行来自所述第二队列的所述第二存储器操作之后,执行一个或多个后续操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于执行第二组操作。在一些实施例中,挂起模块(例如,图2B中的挂起模块222)、执行模块(例如,图2B中的执行模块226)和/或逻辑模块(例如,图2B中的逻辑模块220)用于执行第二组操作。

在一些实施例中,一个或多个后续操作包括:(a)重新启动(456)第一定时器;以及(b)恢复执行来自第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)的第一存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于执行一个或多个后续操作。在一些实施例中,定时器模块(例如,图2B中的定时器模块230)、恢复模块(例如,图2B中的恢复模块224)和/或逻辑模块(例如,图2B中的逻辑模块220)用于执行一个或多个后续操作。

第一组操作进一步包括:根据确定第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)不包含至少一个要执行的存储器操作,来执行(414)一个或多个操作(有时指第三组操作),包括:(1)重新启动第一定时器;以及(2)继续执行来自第一队列的第一存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于执行第三组操作。在一些实施例中,定时器模块(例如,图2B中的定时器模块230)、执行模块(例如,图2B中的执行模块226)和/或逻辑模块(例如,图2B中的逻辑模块220)用于执行第三组操作。

在一些实施例中,根据关于第一定时器(例如,图2A中的定时器204-1或图2B中的定时器234)已经到期的一个或多个后续判定中的每个后续判定,存储设备执行(458)一个或多个操作,包括:判定(460)第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)是否包含至少一个要执行的存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)和/或队列接口模块(例如,图2B中的队列接口模块232)用于执行一个或多个操作,包括:判定第二队列是否包含至少一个要执行的存储器操作。

在一些实施例中,根据确定第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)包含至少一个要执行的存储器操作,存储设备执行(462)一个或多个操作,包括:(1)挂起来自第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)的第一存储器操作;(2)执行来自第二队列的对应存储器操作;以及(3)在完成执行来自第二队列的对应存储器操作之后,执行一个或多个后续操作,包括:(a)重新启动第一定时器(例如,图2A中的定时器204-1或图2B中的定时器234),以及(b)恢复执行来自第一队列的第一存储器操作。此外,在这些实施例中,根据确定第二队列不包含至少一个要执行的存储器操作,存储设备执行(464)一个或多个操作,包括:(1)重新启动第一定时器;以及(2)继续执行来自第一队列的第一存储器操作。

在一些实施例中,存储设备(1)在非易失性存储器系统(例如,图1中的非易失性存储器系统100)中开始(446)执行来自第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)的第三存储器操作;(2)结合开始执行第三存储器操作,在非易失性存储器系统中启动第二定时器(例如,图2A中的定时器204-k或图2B中的第二定时器234),其中,第二定时器被设置为在第二预定时间间隔后到期;并且(3)在启动第二定时器之后,根据确定第二定时器已经到期,在非易失性存储器系统中执行一个或多个操作,包括:判定(448)第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)是否包含至少一个要执行的存储器操作。此外,在这些实施例中,根据确定第二队列包含至少一个要执行的存储器操作,存储设备执行(450)一个或多个操作,包括:(a)挂起来自第一队列的第三存储器操作;(b)执行来自第二队列的第四存储器操作;以及(c)在完成执行来自第二队列的第四存储器操作之后,执行一个或多个后续操作,包括:(i)重新启动第二定时器,以及(ii)恢复执行来自第一队列的第三存储器操作。此外,在这些实施例中,根据确定第二队列不包含至少一个要执行的存储器操作,存储设备执行(452)一个或多个操作,包括:(a)重新启动第二定时器;以及(b)继续执行来自第一队列的第三存储器操作。

在一些实施例中,第二预定时间间隔与(454)第一预定时间间隔不同。

在一些实施例中,存储设备判定(466)第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)中在第一存储器操作之后的存储器操作是否包括对应指示符,并且根据确定后续存储器操作的对应指示符被置位,防止挂起后续存储器操作。例如,对应指示符可以是“高优先级”或“不挂起”指示符。

在一些实施例中,非易失性存储器系统(例如,图1中的非易失性存储器系统100)包括(416)全局指示符,所述全局指示符当被置位时指示不能挂起第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)中的存储器操作。例如,在一些实施例中,当全局指示符被置位时,不能挂起第一队列中的读、写和/或擦除操作。在一些实施例中,全局指示符是对逻辑模块(例如,图2A中的逻辑模块201或图2B中的逻辑模块220)的输入。

在一些实施例中,存储设备根据预定义条件或命令置位(418)全局指示符。例如,在一些实施例中,当非易失性存储器系统(例如,图1中的非易失性存储器系统100)经历断电情况时,置位全局指示符。在另一个实施例中,上述命令是主机命令。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201或图2B中的逻辑模块220)用于根据预定义条件或命令置位全局指示符。

此外,在一些实施例中,根据确定全局指示符已经被置位,存储设备防止(420)挂起第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)中的存储器操作。在一些实施例中,逻辑模块(例如,图2A中的逻辑模块201)用于防止挂起第一队列中的存储器操作。在一些实施例中,覆盖模块(例如,图2B中的覆盖模块228)用于防止挂起第一队列中的存储器操作。

在一些实施例中,非易失性存储器系统(例如,图1中的非易失性存储器系统100)包括(422)一个或多个闪存设备(例如,图1中的NVM设备140-i至140-j和NVM设备140-m至140-n)。在一些实施例中,非易失性存储器系统包括单个闪存设备,而在其他实施例中,非易失性存储器系统包括多个闪存设备。例如,在一些实施例中,非易失性存储器系统包括在并行存储器通道中组织的数十个或数百个闪存设备,如每个存储器通道16、32或64个闪存设备,以及8、16或32个并行存储器通道。在一些实施例中,非易失性存储器系统包括NAND类型闪存或NOR类型闪存。在一些实施例中,非易失性存储器系统包括一个或多个其他类型的非易失性存储设备。

在一些实施例中,非易失性存储器系统(例如,图1中的非易失性存储器系统100)包括(424)如在此进一步定义的一个或多个三维(3D)存储器设备、以及与一个或多个3D存储器设备中的存储器元件的操作相关联的电路。在一些实施例中,非易失性存储器系统(例如,图1中的非易失性存储器系统100)包括单个3D存储器设备,而在其他实施例中,存储介质包括多个3D存储器设备。

在一些实施例中,一个或多个3D存储器设备的对应3D存储器设备中的电路和一个或多个存储器元件位于(426)相同的基板上(例如,硅基板)。在一些实施例中,基板是一个或多个存储器元件的材料层沉积在其上和/或在其中形成一个或多个存储器元件的晶片。在一些实施例中,基板是形成一个或多个存储器元件之后附接到其上的载体基板。作为非限制性示例,在一些实施例中,基板包括如硅等半导体。

在一些实施例中,非易失性存储器系统包括(428)多个部分,每个部分具有一个或多个非易失性存储器设备(例如,图1中的NVM设备140-i至140-j和NVM设备140-m至140-n)、对应第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)、对应第二队列(例如,图2A中的操作队列202-2或图2B中的第二操作队列236)、以及当被置位时指示不能挂起对应第一队列中的存储器操作的专用于部分的指示符。例如,在一些实施例中,所述部分中的每个部分是具有多个NVM设备的存储器通道、或者存储器通道的子集、或单个NVM设备。在一些实施例中,专用于部分的指示符是对逻辑模块(例如,图2A中的逻辑模块201或图2B中的逻辑模块220)的输入。

在一些实施例中,根据确定非易失性存储器系统(例如,图1中的非易失性存储器系统100)的对应部分的专用于部分的指示符被置位,存储设备防止(430)挂起非易失性存储器系统的对应部分的第一队列(例如,图2A中的操作队列202-1或图2B中的第一操作队列236)中的存储器操作。

在一些实施例中,非易失性存储器系统(例如,图1中的非易失性存储器系统100)包括(432)全局指示符,所述全局指示符当被置位时指示不能挂起非易失性存储器系统的多个部分的对应第一队列中的存储器操作。在这些实施例中,存储设备根据预定义条件和命令来置位(434)全局指示符,并且根据确定全局指示符被置位来防止(436)挂起非易失性存储器系统的多个部分的对应第一队列中的存储器操作。

在一些实施例中,以上描述的方法中的任何方法由存储设备执行,所述存储设备包括:(1)一个或多个处理器;以及(2)存储一个或多个程序的存储器,所述程序当由所述一个或多个处理器执行时使所述存储设备执行在此所描述的方法中的任何方法或控制其性能。

在一些实施例中,以上描述的方法中的任何方法由非易失性存储器系统执行,所述非易失性存储器系统包括:(1)一个或多个处理器;以及(2)存储一个或多个程序的存储器,所述程序当由所述一个或多个处理器执行时使所述非易失性存储器系统执行在此所描述的方法中的任何方法或控制其性能。

在一些实施例中,以上描述的方法中的任何方法由非易失性存储器系统执行,所述非易失性存储器系统包括多个部分,每个部分具有一个或多个非易失性存储器设备,其中,针对每个部分,非易失性存储器系统包括:(1)一个或多个定时器;(2)第一队列和第二队列;以及(3)逻辑模块,其中,所述逻辑模块被配置成用于执行在此所描述的方法中的任何方法或控制其性能。

半导体存储器设备包括易失性存储器设备(如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”))、非易失性存储器设备(如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其还可以被考虑为EEPROM的子集)、铁电随机存取存储器(“FRAM”)、和磁阻随机存取存储器(“MRAM”))、以及能够存储信息的其他半导体元件。每种类型的存储器设备可以具有不同的配置。例如,可以在NAND或NOR配置中配置闪存设备。

存储器设备可由无源和/或有源元件以任何组合来形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,所述元件包括如反熔丝相变材料等电阻率切换存储元件以及(可选地)如二极管等操控元件。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存设备元件,在一些实施例中,所述元件包括如浮栅、导电纳米颗粒、或电荷存储介电材料等包含了电荷存储区域的元件。

多个存储器元件可以被配置为使得它们串联或使得每个元件是可单独访问的。通过非限制性示例的方式,NAND配置(NAND存储器)中的闪存设备通常包含串联的存储器元件。NAND存储器阵列可以被配置为使得阵列包括多个存储器串,其中,串包括共享单个位线并作为群组被访问的多个存储器元件。可替代地,存储器元件可以被配置为使得每一个元件是可单独访问的(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其他方式配置。

位于基板内和/或上方的半导体存储器元件可以被安排在两个或三个维度(如二维存储器结构或三维存储器结构)中。

在二维存储器结构中,半导体存储器元件被安排在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被安排在基本上平行于支撑存储器元件的基板的主要表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成存储器元件层的晶片,或者其可以是在形成存储器元件之后附接至其上的载体基板。作为非限制性示例,基板可以包括如硅等半导体。

可以在单个存储器设备级中将存储器元件安排成有序阵列,如在多个行和/或列中。然而,可以在非规则或非正交配置中排列存储器元件。存储器元件中的每个存储器元件可以具有两个或更多个电极或接触线,如位线和字线。

三维存储器阵列被安排成使得存储器元件占据多个平面或多个存储器设备级,由此在三个维度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本上平行于基板的主表面)中形成结构。

作为非限制性示例,三维存储器结构可以被垂直地安排成多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可以被安排成多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),每列在每列中具有多个存储器元件。可以在二维配置中(例如,在x-z平面中)安排所述列,导致存储器元件的三维安排,元件位于多个垂直堆叠的存储器平面上。存储器元件在三个维度中的其他配置也可以构成三维存储器阵列。

通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合在一起,以便在单个水平(例如,x-z)存储器设备级内形成NAND串。可替代地,存储器元件可以被耦合在一起,以便形成横跨多个水平存储器设备级的垂直NAND串。可以设想其他三维配置,其中,一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨越多个存储器级的存储器元件。还可以在NOR配置中和在ReRAM配置中设计三维存储器阵列。

通常,在单片式三维存储器阵列中,在单个基板上方形成一个或多个存储器设备级。可选地,单片式三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个存储器层。作为非限制性示例,基板可以包括如硅等半导体。在单片式三维阵列中,构成阵列的每个存储器设备级的层通常在阵列的基础存储器设备级的层上形成。然而,单片式三维存储器阵列的邻近存储器设备级的层可以被共享或在存储器设备级之间存在中间层。

然后,再次,二维阵列可以被单独地形成并且然后被封装在一起,以便形成具有多个存储器层的非单片式存储器设备。例如,非单片式堆叠存储器可以通过在单独地基板上形成存储器级然后将存储器级堆叠在彼此顶上来构造。可以减薄基板或者可以在堆叠之前将其从存储器设备级中移除,但是因为存储器设备级最初地在单独的基板上方形成,所以所产生的存储器阵列不是单片式三位存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片式或非单片式)可以在单独的芯片上形成然后被封装在一起,以便形成堆叠芯片存储器设备。

存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件完成如编程和读取等功能的电路。此相关联的电路可以位于与存储器元件相同的基板上和/或位于单独的基板上。例如,用于存储器读-写操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相同的基板上。

术语“三维存储器设备”(或3D存储器设备)在此被定义为指具有多个存储器层或多个存储器元件级(例如,有时被称为多个存储器设备级)的存储器设备,包括以下各项中的任一项:具有单片式或非单片式3D存储器阵列的存储器设备(以上描述了其一些非限制性示例);或两个或更多个2D和/或3D存储器设备(其被封装在一起,以便形成堆叠芯片存储器设备,以上描述了其一些非限制性示例)。

本领域的技术人员将意识到,本发明不限于所描述的二维和三维示例性结构,但涵盖了如此处描述的本发明的精神和范围内的和如本领域的技术人员理解的所有相关存储器结构。

将理解的是,尽管此处可以使用术语“第一”、“第二”等来描述各个元件,但是这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一个元件相区分。例如,在不改变描述的含义的情况下,第一区域可以被称为第二区域,并且类似地,第二区域可以被称为第一区域,只要一致地重新命名“第一区域”的所有出现并且一致地重新命名“第二区域”的所有出现即可。第一区域和第二区域都是区域,不过它们不是同一区域。

此处所使用的术语仅出于描述特定实施例的目的,而不旨在于限制权利要求书。如在对实施例和所附权利要求书的描述中所使用的,除非上下文另有明示,否则单数形式“一个(a)”、“一个(an)”和“所述(the)”旨在同样包括复数形式。还将理解的是,如本文使用的术语“和/或”指代并且包括相关联的列举项的一个或多个项的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组的存在或添加。

如在此所使用的,短语“A、B和C中的至少一者”将被解释为需要所列项目中的一个或多个项目,并且此短语关于单独A的单个实例、单独B的单个实例、或单独C的单个实例,同时还包括如“A中的一者或多者以及B中的一者或多者而没有C中的任何一者”等所列项目的组合。

如在此所使用的,根据上下文,术语“如果”可以被解释为指“当…时”或者“在…时”或者“响应于确定”或者“根据确定”或者“响应于检测到”所述先决条件为真。类似地,根据上下文,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”可以被解释为指“在确定时”或“响应于确定”或“根据确定”或“在检测到时”或“响应于检测到”所述先决条件为真。

出于解释的目的,已经参考特定实施例描述了前述描述。然而,以上的说明性讨论并不旨在是详尽的或旨在将权利要求书限制成所公开的精确形式。鉴于以上教导,许多修改和变化都是可能的。选择并描述了实施例,以便最好地解释操作原理和实际应用,由此使能本领域的技术人员。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1