用于交错存储器操作的方法和系统转让专利

申请号 : CN201580025960.6

文献号 : CN106537365B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R.W.埃利斯J.M.希金斯V.莫汉

申请人 : 桑迪士克科技有限责任公司

摘要 :

在这里描述的实施例用于执行交错存储器操作。该方法包括,在存储装置的多个不同存储器部分中的每一个,建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的非零命令延迟参数。该方法进一步包括:在存储装置的多个不同存储器部分中的每一个中建立非零命令延迟参数之后,在重叠时间段期间在存储装置的多个不同存储器部分的两个或更多存储器部分中执行存储器操作,该执行包括在多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数对应的时间量。

权利要求 :

1.一种存储装置中的操作方法,包括:

在所述存储装置的操作期间:

对于所述存储装置的多个不同存储器部分中的每一个,建立命令延迟参数的非零值,其中所述命令延迟参数的非零值与对于所述多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数的值不同;

在所述存储装置的多个不同存储器部分中的每一个中建立命令延迟参数的非零值之后,在重叠时间段期间在所述存储装置的多个不同存储器部分的两个或更多存储器部分中执行存储器操作,所述执行包括在所述多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数的非零值对应的时间量。

2.如权利要求1所述的方法,其中,所述多个存储器部分包括非易失性存储器部分。

3.如权利要求1所述的方法,其中,所述多个存储器部分包括NAND闪存存储器部分。

4.如权利要求1所述的方法,其中,所述存储装置包括一个或多个闪存存储器装置。

5.如权利要求2所述的方法,其中,在所述存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作包括多个同一存储器操作类型的操作,其中,所述同一存储器操作类型是从由写入操作、读取操作和擦除操作构成的组中选出的。

6.如权利要求5所述的方法,其中,所述存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是从由用于控制写入操作的延迟的写入延迟参数、用于控制读取操作的延迟的读取延迟参数和用于控制擦除操作的延迟的擦除延迟参数构成的组中选出的。

7.如权利要求6所述的方法,其中,所述存储装置的多个不同存储器部分中的两个或更多存储器部分中的每一个的命令延迟参数的非零值小于或等于其相应的存储器操作时间的平均持续时间。

8.如权利要求1-7中的任意一个所述的方法,包括,在所述存储装置的多个不同存储器部分的单个存储器部分中执行存储器操作序列时,根据对于该单个存储器部分建立的命令延迟参数的非零值而延迟所述存储器操作序列的第一存储器操作,且此后以顺序次序执行所述存储器操作序列中每个后续的存储器操作而不再延迟所述存储器操作序列中的每个所述后续的存储器操作。

9.如权利要求8所述的方法,包括在与所述单个存储器部分相关联的工作队列中检测所述存储器操作序列的存在。

10.如权利要求1-7中的任意一个所述的方法,进一步包括:

在与所述存储装置的多个不同存储器部分的第一子集相关联的工作队列中执行存储器写入操作时,并行地执行工作队列中存储器写入操作的第一子集,所述执行被延迟与对于每一个存储器部分建立的命令延迟参数的非零值对应的时间量,其中,由工作队列中存储器写入操作的第一子集将写入数据写入到所述每一个存储器部分,和此后执行工作队列中的每一个后续的存储器写入操作而不再延迟每一所述后续的存储器写入操作。

11.如权利要求1-7中的任意一个所述的方法,其中,一个或多个命令延迟参数被存储在非易失性存储器中。

12.如权利要求1-7中的任意一个所述的方法,进一步包括,在与所述存储装置的所述多个存储器部分不同的存储装置的附加存储器部分中,在重叠时间段期间执行存储器操作,而不延迟所述存储装置的所述附加存储器部分中所述存储器操作的执行。

13.如权利要求1-7中的任意一个所述的方法,进一步包括,在与存储装置的所述多个存储器部分不同的存储装置的附加存储器部分,建立与对于所述多个不同存储器部分建立的命令延迟参数不同的命令延迟参数的零值,并根据所述命令延迟参数的零值在重叠时间段期间在所述存储装置的所述附加存储器部分中执行存储器操作。

14.如权利要求1所述的方法,进一步包括,对于所述存储装置的多个不同存储器部分中的每一个,建立与对于所述多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的两个或更多命令延迟参数的非零值,其中,所述两个或更多命令延迟参数至少包括用于当执行从由读取、写入和擦除命令构成的集合中选出的第一命令类型时使用的第一命令延迟参数和用于当执行与第一命令类型不同且从由读取、写入和擦除命令构成的集合中选出的第二命令类型时使用的第二命令延迟参数。

15.如权利要求1-7中的任意一个所述的方法,进一步包括:

在所述存储装置的多个不同存储器部分中的每一个中建立命令延迟参数的非零值之后,和在将多个不同存储器部分中的每一个中各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数的非零值对应的时间量之后:调整与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的非零值。

16.如权利要求15所述的方法,其中,调整与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的非零值包括:将与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的值减小到零。

17.如权利要求15所述的方法,其中,调整与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的非零值包括:将与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的值改变为新的非零值。

18.如权利要求1-7中的任意一个所述的方法,所述存储装置包括一个或多个三维(3D)存储器装置和与一个或多个3D存储器装置中的存储器元件的操作相关联的电路。

19.如权利要求1-7中的任意一个所述的方法,包括根据第一不同存储器部分的年龄调整与所述多个存储器部分的第一不同存储器部分对应的命令延迟参数的非零值。

20.一种存储装置,包括:

用于将所述存储装置耦接到主机系统的接口;

非易失性存储器,包括所述非易失性存储器的多个不同存储器部分;和

一个或多个存储控制器的集合,具有一个或多个处理器,所述一个或多个存储控制器的集合配置为:对于所述存储装置的非易失性存储器的多个不同存储器部分中的每一个,建立命令延迟参数的非零值,其中所述命令延迟参数的非零值与对于所述多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同;和在所述多个不同存储器部分中的每一个中建立命令延迟参数的非零值之后被使能,在重叠时间段期间在所述多个不同存储器部分的两个或更多存储器部分中执行存储器操作,所述执行包括在所述多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数的非零值对应的时间量。

21.如权利要求20所述的存储装置,其中,所述多个存储器部分包括NAND闪存存储器部分。

22.如权利要求20所述的存储装置,其中,在所述存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作包括多个同一存储器操作类型的操作,其中,所述同一存储器操作类型是从由写入操作、读取操作和擦除操作构成的组中选出的。

23.如权利要求22所述的存储装置,其中,所述存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是从由用于控制写入操作的延迟的写入延迟参数、用于控制读取操作的延迟的读取延迟参数和用于控制擦除操作的延迟的擦除延迟参数构成的组中选出的。

24.如权利要求20所述的存储装置,其中,所述一个或多个存储控制器的集合配置为,对于所述存储装置的多个不同存储器部分中的每一个,建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的两个或更多命令延迟参数的非零值,其中,所述两个或更多命令延迟参数至少包括用于当执行从由读取、写入和擦除命令构成的集合中选出的第一命令类型时使用的第一命令延迟参数和用于当执行与第一命令类型不同且从由读取、写入和擦除命令构成的集合中选出的第二命令类型时使用的第二命令延迟参数。

25.如权利要求20所述的存储装置,其中,所述一个或多个存储控制器的集合进一步配置为执行如权利要求1-19中的任意一个所述的方法。

26.一种存储装置,包括:

用于将所述存储装置耦接到主机系统的接口;

非易失性存储器,包括所述非易失性存储器的多个不同存储器部分;和

控制构件,在所述存储装置的操作期间被使能,包括:

对于所述存储装置的非易失性存储器的多个不同存储器部分中的每一个,建立命令延迟参数的非零值的构件,其中所述命令延迟参数的非零值与对于所述多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同;和在所述多个不同存储器部分中的每一个中建立命令延迟参数的非零值之后被使能,在重叠时间段期间在所述多个不同存储器部分的两个或更多个存储器部分中执行存储器操作的构件,所述执行包括在所述多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数的非零值对应的时间量。

说明书 :

用于交错存储器操作的方法和系统

技术领域

[0001] 公开的实施例总的来说涉及存储器系统,且具体来说,涉及在存储器的一个或多个部分上执行交错存储器操作。

背景技术

[0002] 包括闪存存储器的半导体存储器装置通常使用存储器单元以将数据存储为电的值,比如电荷或者电压。闪存存储器单元例如包括单个晶体管,该晶体管具有用于存储表示数据值的电荷的浮置栅极。闪存存储器是可以电擦除和重新编程的非易失性数据存储装置。更一般地,与要求电源来保持存储的信息的易失性存储器相反,非易失性存储器(例如,闪存存储器、以及使用各种技术中的任意一个实现的其它类型的非易失性存储器)即使在不通电时也保存存储的信息。
[0003] 随着在存储装置内可以同时执行的存储器操作的数目增加,由存储装置形成的电流尖峰的数目和大小也增加。即使形成的电流的平均量良好地落入到存储装置的电源的供电能力以内,这些电流尖峰可能超过存储装置的电源的供电能力。此外,这些电流尖峰导致不规则的功率特征,且在某些情况下浪费半导体存储器装置的组件的功率并增加其损耗。

发明内容

[0004] 所附权利要求的范围内的系统、方法和装置的各种实现每个都具有几个方面,并非其单一的一个方面单独负责在这里描述的属性。在不限制所附权利要求的范围的情况下,在考虑本公开之后,且特别地在考虑题为“具体实施方式”的部分之后,将理解各种实现的各方面怎样用于在存储器的一个或多个部分上执行交错存储器操作。

附图说明

[0005] 为了能够更详细地理解本公开,可以参考各种实现的特征进行更具体的描述,在附图中图示了其中一些特征。但是,附图仅图示本公开的更相关的特征且因此不应被视为限制性的,因为描述可能允许其它有效的特征。
[0006] 图1A是图示根据某些实施例的数据存储系统的框图。
[0007] 图1B和图1C是图示根据某些实施例的非易失性存储器模块的两个实现的框图。
[0008] 图1D是根据某些实施例的数据存储系统的框图。
[0009] 图2A是图示根据某些实施例的非易失性存储器模块的框图。
[0010] 图2B是图示根据某些实施例的存储装置控制器的管理模块的框图。
[0011] 图3A-3B图示根据某些实施例的用于在非易失性存储器装置上执行的存储器操作的示例性功率特征。
[0012] 图4A-图4E图示根据某些实施例的在存储器的一个或多个部分上执行交错存储器操作的方法的流程图表示。
[0013] 根据惯例,附图中图示的各种特征可以不必是按比例描绘的。因此,各种特征的尺寸可以为了清楚任意地扩展或者缩小。另外,某些附图可以不绘出给定系统、方法或装置的所有组成部分。最后,相似的附图标记可以用于表示整个说明书和附图中相似的特征。

具体实施方式

[0014] 在这里描述的各种实现包括用于管理当执行并行存储器操作时观察到的电流尖峰的系统、方法和/或装置。某些实现包括执行交错存储器操作的系统、方法和/或装置。
[0015] 范围从智能电话到服务器系统的电子装置的存储器存储需求快速增长。例如,当企业应用成熟时,这些应用需要的存储装置的容量显著地增加。当容量增大时,相应地,存储装置内部非易失性存储器芯片的数目也增加。作为存储器芯片的数目增加的结果,这些存储装置内部集中式的硬件资源处于管理由并行存储器操作引起的、存储装置所经历的电流尖峰的更高要求下。
[0016] 为了有效地管理电流尖峰,由于存储装置中的并行存储器操作,在这里描述的某些实现使用可缩放技术来跨越多个非易失性存储器(NVM)模块执行具有交错的延迟的存储器操作,其中每个NVM模块包括多个NVM装置。例如,由存储装置的不同存储器通道中的非易失性存储器装置(有时称为存储器芯片或者NVM裸芯)执行的存储器操作以不同延迟时间执行从而扩散与那些存储器操作相关联的电流尖峰。
[0017] 在一些实施例中,存储装置在多个存储器通道的每一个中包括多个NVM模块,且每个NVM模块包括在这里被称为NVM控制器的处理器(例如,ASIC),和至少由NVM控制器控制其操作的多个NVM装置。每个NVM模块包括用于存储包括一个或多个延迟值的装置配置参数的易失的或者非易失性的存储器。作为其功能之一的示例,NVM控制器根据由存储装置的存储控制器提供的或者由主机计算机系统提供的延迟值,延迟NVM模块中NVM装置的存储器操作的执行。通过向不同NVM模块提供不同延迟值,在不同NVM模块中执行的并行存储器操作在交错的开始时间开始执行,这减小了由于不同NVM模块中存储器操作的并行执行导致的电流尖峰。
[0018] 更具体地,在一些实施例中,在存储装置中执行的方法包括,在存储装置的多个不同存储器部分中的每一个,建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的非零命令延迟参数。该方法包括:在存储装置的多个不同存储器部分的每一个中建立非零命令延迟参数之后,在重叠时间周期期间在存储装置的多个不同存储器部分的两个或更多存储器部分中执行存储器操作,所述执行包括在多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数对应的时间量。
[0019] 在一些实施例中,多个存储器部分包括非易失性存储器部分。在一些实施例中,多个存储器部分包括NAND闪存存储器部分。例如,在某些实现中,多个存储器部分是位于不同NVM模块中的存储装置的存储器部分,其中每个NVM模块包括不同的存储器部分。在另一实例中,多个存储器部分是位于不同存储器通道中的存储装置的存储器部分,其中每个存储器通道中的NVM器件包括不同的存储器部分。
[0020] 在一些实施例中,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是写入操作。在一些实施例中,存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是用于控制写入操作的延迟的写入延迟参数。在一些实施例中,至少一个写入延迟参数的值小于或等于写入操作的时间的平均持续时间。
[0021] 在一些实施例中,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是擦除操作。在一些实施例中,存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是用于控制擦除操作的延迟的擦除延迟参数。在一些实施例中,至少一个擦除延迟参数的值小于或等于擦除操作的时间的平均持续时间。
[0022] 在一些实施例中,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是读取操作。在一些实施例中,读取装置的多个不同读取器部分的两个或更多读取器部分中的每一个的命令延迟参数是用于控制读取操作的延迟的读取延迟参数。在一些实施例中,至少一个读取延迟参数的值小于或等于读取操作的时间的平均持续时间。
[0023] 在一些实施例中,该方法包括,在存储装置的多个不同存储器部分的单个存储器部分中执行存储器操作序列时,根据对于该单个存储器部分建立的命令延迟参数而延迟存储器操作序列的第一存储器操作,且此后以顺序次序执行存储器操作序列中每个后续的存储器操作而不再延迟存储器操作序列中的每个所述后续的存储器操作。在一些实施例中,该方法包括在与该单个存储器部分相关联的工作队列中检测存储器操作序列的存在。
[0024] 在一些实施例中,该方法包括,在与存储装置的多个不同存储器部分的第一子集相关联的工作队列中执行存储器写入操作时,并行地执行工作队列中的存储器写入操作的第一子集,其中那些操作的执行被延迟与对于每个存储器部分建立的命令延迟参数对应的时间量,且由工作队列中存储器写入操作的第一子集将写入数据写入到该每个存储器部分。在一些实施例中,该方法进一步包括此后执行工作队列中的每个后续的存储器写入操作而不再延迟每个所述后续的存储器写入操作。
[0025] 在一些实施例中,该方法包括,在与存储装置的所述多个存储器部分不同的存储装置的附加存储器部分中,在重叠时间段期间执行存储器操作,而不延迟存储装置的该附加存储器部分中所述存储器操作的执行。
[0026] 在一些实施例中,该方法进一步包括,在与存储装置的所述多个存储器部分不同的存储装置的附加存储器部分,建立与对于所述多个不同存储器部分建立的命令延迟参数不同的零命令延迟参数,并根据该零命令延迟参数在重叠时间段期间在存储装置的附加存储器部分中执行存储器操作。
[0027] 在一些实施例中,该方法进一步包括,在存储装置的多个不同存储器部分中的每一个,建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的两个或更多非零命令延迟参数,其中该两个或更多非零命令延迟参数至少包括用于当执行从由读取、写入和擦除命令构成的集合中选出的第一命令类型时使用的第一命令延迟参数和用于当执行与第一命令类型不同且从由读取、写入和擦除命令构成的集合中选出的第二命令类型时使用的第二命令延迟参数。
[0028] 在一些实施例中,该方法进一步包括:调整与多个存储器部分的第一不同存储器部分对应的非零命令延迟参数的值。在一些实施例中,调整与多个存储器部分的第一不同存储器部分对应的非零命令延迟参数的值包括将与多个存储器部分的第一不同存储器部分对应的命令延迟参数的值减小到零。在一些实施例中,调整与多个存储器部分的第一不同存储器部分对应的非零命令延迟参数的值包括将与多个存储器部分的第一不同存储器部分对应的命令延迟参数的值改变为新的非零值。
[0029] 在一些实施例中,该存储装置包括一个或多个三维(3D)存储器装置和与一个或多个3D存储器装置中的存储器元件的操作相关联的电路。
[0030] 在一些实施例中,该一个或多个3D存储器装置的各个3D存储器装置中的电路和一个或多个存储器元件在同一衬底上。
[0031] 在一些实施例中,该存储装置包括一个或多个闪存存储器装置。
[0032] 在一些实施例中,在非易失性存储器中存储一个或多个命令延迟参数。
[0033] 在一些实施例中,存储装置包括多个控制器。
[0034] 在一些实施例中,存储装置上的多个控制器包括存储器控制器和一个或多个闪存控制器,该一个或多个闪存控制器由存储器控制器耦接到存储装置的主机接口。
[0035] 在一些实施例中,存储装置上的多个控制器包括至少一个非易失性存储器(NVM)控制器和除了该至少一个NVM控制器之外的至少一个其它存储器控制器。
[0036] 在一些实施例中,该存储装置包括双列直插式存储器模块(DIMM)装置。
[0037] 在一些实施例中,存储装置上的多个控制器之一将两倍数据速率(DDR)接口命令映射到串行高级技术附件(SATA)接口命令。
[0038] 在另一方面中,由存储装置执行如上所述的任意一个方法,该存储装置包括(1)用于将存储装置耦接到主机系统的接口,(2)非易失性存储器,包括非易失性存储器的多个不同存储器部分,和(3)一个或多个存储控制器的集合,具有一个或多个处理器,该一个或多个存储控制器的集合配置为:(A)在存储装置的多个不同存储器部分中的每一个,建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的非零命令延迟参数,和(B),在多个不同存储器部分中的每一个中建立非零命令延迟参数之后,在重叠时间段期间在多个不同存储器部分的两个或更多存储器部分中执行存储器操作,该执行包括,在多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数对应的时间量。
[0039] 在又一个方面中,由存储装置执行如上所述的任意一个方法;该存储装置包括(1)用于将存储装置耦接到主机系统的构件;非易失性存储器构件,包括多个不同存储器部分;和控制器构件,配置为:在多个不同存储器部分中的每一个;建立与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的非零命令延迟参数;和在多个不同存储器部分中的每一个中建立非零命令延迟参数之后;在重叠时间段期间在多个不同存储器部分的两个或更多存储器部分中执行存储器操作,该执行包括,在多个存储器部分的每个存储器部分中;将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数对应的时间量。
[0040] 在一些实施例中,该存储装置配置为执行如上所述的任意一个方法。
[0041] 在又一个方面中,一种非瞬时计算机可读存储介质存储用于由存储装置的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行如上所述的任何一个方法的指令。
[0042] 在一些实施例中,该存储装置包括多个控制器,且该非瞬时计算机可读存储介质包括用于多个控制器的每个控制器的非瞬时计算机可读存储介质,每个非瞬时计算机可读存储介质具有包括用于执行如上所述的任意一个方法,或者如上所述的任意一个方法的各个部分的指令的一个或多个程序。
[0043] 在这里描述许多细节为了提供附图中图示的示例实施例的全面理解。但是,可以没有许多具体的细节地实践某些实施例,且权利要求的范围仅由在权利要求书中具体地叙述的那些特征和方面所限定。此外,没有以穷尽的细节描述公知的方法、组件和电路从而不会不必要地模糊的在这里描述的实施例的更相关的方面。
[0044] 图1A是图示根据某些实施例的数据存储系统100的框图。虽然图示了某些示例特征,为了简洁未图示各种其它特征且从而不模糊在这里公开的示例实施例的更相关的方面。为此,作为非限制示例,数据存储系统100包括存储装置120,该存储装置120包括主机接口122、存储装置控制器128和存储器通道106。每个存储器通道106包括存储器通道控制器170和一个或多个NVM模块160。可选地,数据存储系统100也包括如以下讨论的中间模块
125。
[0045] 在该非限制示例中,数据存储系统100与计算机系统110结合地使用。计算机系统110通过数据连接101耦接到存储装置120。但是,在一些实施例中,计算机系统110包括存储装置120作为组件和/或子系统。计算机系统110可以是任何适当的计算装置,比如个人计算机、工作站、计算机服务器或者任何其它计算装置。计算机系统110有时被称为主机或者主机系统。在一些实施例中,计算机系统110包括一个或多个处理器、一个或多个类型的存储器,可选地包括显示器和/或其它用户接口组件,比如键盘、触摸屏显示器、鼠标、跟踪垫、数码相机和/或添加功能性的任何数量的辅助装置。另外,在一些实施例中,计算机系统110在控制线111上将一个或多个主机命令(例如,读取命令和/或写入命令)发送到存储装置120。
在一些实施例中,计算机系统110是服务器系统,比如数据中心中的服务器系统,且不具有显示器、键盘、鼠标或者其它用户接口组件。
[0046] 在一些实施例中,存储装置120包括中间模块125,该中间模块125包括配置为执行一个或多个程序中的指令的一个或多个处理单元(有时也称为CPU或者处理器或者微处理器或者微控制器)。中间模块125耦接到主机接口122和存储装置控制器128,以协调这些组件的操作,包括监视和控制比如以下的一个或多个的功能:电源接通和电源断开、数据硬化、对一个或多个储能装置充电、数据登录、存储装置120上的模块之间的通信、耐久性管理、RAID管理、压缩、纠错编码/解码、加密、电源故障恢复、损耗矫正和/或管理存储装置120上的功能的其它方面。
[0047] 存储装置120可以配置用于企业存储,适用于比如云计算的应用,或者适用于缓存在比如硬盘驱动器的辅助存储器中存储(或者将要存储)的数据。附加地和/或替代地,存储装置120也可以配置用于相对小规模的应用,比如个人、膝上型和平板计算机的个人闪存驱动器或者硬盘替换。虽然闪存存储器装置和闪存控制器在这里用作示例,存储装置120(图1A)可以包括任何其它一个或多个NVM装置和相应的一个或多个NVM模块控制器。
[0048] 存储装置控制器128耦接到主机接口122(例如,直接或者经由中间存储装置模块125)和存储器通道控制器170。一个或多个非易失性存储器(NVM)模块160经由一个或多个通道106(例如,通道106-1到106-k)与存储装置控制器128耦接。在一些实施例中,如图1A所示,各个通道106中的每一个支持一个或多个NVM模块160且与各个存储器通道控制器170耦接,该存储器通道控制器170又耦接到存储装置控制器128。在一些实施例中,存储装置控制器128是或者包括固态驱动器(SSD)控制器。在一些实施例中,存储器通道控制器170驻留在存储装置控制器128内。另外,在一些实施例中,存储器通道控制器170是或者包括固态驱动器(SSD)控制器。
[0049] 在一些实施例中,各个通道106中的每一个支持直接与存储装置控制器128耦接的一个或多个NVM模块160,且某些这种实施例不包括存储器通道控制器170。
[0050] 在一些实施例中,NVM控制器170中的每个NVM控制器包括配置为执行一个或多个程序中的指令的一个或多个处理单元(有时称为CPU或者处理器或者微处理器或者微控制器)。耦接存储器通道控制器170和NVM模块160的通道106是通常除数据之外还传送命令的连接,且可选地,除要存储在一个或多个NVM模块160内的非易失性存储器中的数据值和从一个或多个NVM模块160内的非易失性存储器读取的数据值之外还传送元数据、纠错信息和/或其它信息。在一些实施例中,各个通道106中的每一个包括一个或多个数据总线(例如,八个数据总线)。在一些实施例中,存储装置控制器128与单个NVM模块160耦接(例如,经由单个通道106),而在其它实施例中,存储装置控制器128与多个NVM模块160耦接(例如,经由一个或多个通道106)。
[0051] 在一些实施例中,在写入操作期间,存储装置控制器128通过主机接口122从计算机系统110接收数据,且在读取操作期间,存储装置控制器128通过主机接口122发送数据到计算机系统110。另外,主机接口122提供存储装置控制器128和计算机系统110之间的通信需要的附加数据、信号、电压和/或其它信息。在一些实施例中,存储装置控制器128和主机接口122使用定义的接口标准用于通信,比如两倍数据速率类别三同步动态随机存取存储器(DDR3)。在一些实施例中,由存储控制器130和主机接口122使用的所定义的用于通信的接口标准是串行高级技术附件(SATA)。在某些其它实现中,由存储控制器130和主机接口122使用的所定义的用于通信的接口标准是SAS(串行附加SCSI)或者其它存储接口。
[0052] 在一些实施例中,存储装置控制器128包括配置为执行一个或多个程序中(例如,存储装置控制器128中)的指令的一个或多个处理单元(有时也称为CPU或者处理器或者微处理器或者微控制器)。
[0053] 在一些实施例中,存储装置控制器128经由主机接口122从计算机系统110接收主机命令,以在存储装置120内非易失性存储器的一个或多个部分上执行一个或多个存储器操作。例如,存储装置控制器128接收主机命令以执行读取、写入、擦除、读取-修改-写入或者其它存储器编程操作。
[0054] 在一些实施例中,存储装置控制器128包括管理模块121,其将所接收的主机命令中的逻辑地址转换为存储装置120中的物理地址,且然后根据物理地址将与所接收的主机命令对应的存储器命令传送到各个存储器通道106。典型地,每个存储器通道具有与分配给其它存储器通道的物理地址不同的所分配的物理地址范围。
[0055] 在一些实施例中,NVM模块中的NVM控制器根据由存储装置控制器128分发给NVM模块160的命令延迟参数182,延迟将执行存储器操作的命令发送到那些NVM模块内的NVM装置。在一些实施例中,延迟参数182存储在非易失性存储器中,且在一些实施例中延迟参数182存储在易失性存储器中。
[0056] 在一些实施例中,存储装置控制器128经由主机接口122接收一个或多个主机命令以建立或者更新驻留在存储装置控制器128内、或者驻留在一个或多个NVM模块160内的命令延迟参数182。在一些实施例中,命令延迟参数182包括分配给NVM模块160或者NVM模块160内非易失性存储器的各部分的全部各种命令延迟参数。在一些实施例中,使能使用延迟参数执行交错存储器操作的算法、代码或者编程由存储装置控制器128加载或者更新。在一些实施例中,该加载或者更新在固件初始化期间、在电源接通期间、在存储装置的空闲操作期间或者在存储装置的正常操作期间发生。
[0057] 在一些实施例中,存储装置控制器128执行命令以建立或者更新取决于实现在NVM模块160存储或者在NVM装置140(例如,如图1C所示)存储的命令延迟参数。在某些实现中,这些命令被称作“修剪”命令或者“配置设置”命令,用于设置NVM控制器130和/或NVM装置140中的内部或者配置参数。在某些其它实施例中,存储装置控制器128执行命令以将用于每个存储器通道的命令延迟参数分发到相应的存储器通道控制器170,且存储器通道控制器170执行命令(例如,上述的“修剪”命令或者“配置设置”命令)以建立或者更新取决于实现在NVM模块160存储或者在NVM装置140(例如,如图1C所示)存储的命令延迟参数。通常,用于在存储装置120的不同通道中(或更一般地在存储装置120的NVM模块160的不同子集中,或者在存储装置120的NVM装置140的不同子集中)最初建立命令延迟参数的同一延迟参数分发机制也用于更新存储装置120的不同通道中(或更一般地存储装置120的NVM模块160的不同子集中,或者存储装置120的NVM装置140的不同子集中)的命令延迟参数。
[0058] 闪存存储器装置使用存储器单元以存储作为电的值的数据,比如电荷或者电压的数据。每个闪存存储器单元典型地包括具有用于存储电荷的浮置栅极的单个晶体管,电荷修改晶体管的阈值电压(即,将晶体管导通所需的电压)。电荷的幅值和电荷所创建的相应的阈值电压用于表示一个或多个数据值。在一些实施例中,在读取操作期间,读阈值电压应用于控制晶体管的栅极,且产生的感应电流或电压映射到数据值。
[0059] 在闪存存储器单元的上下文中的术语“单元电压”和“存储器单元电压”指的是存储器单元的阈值电压,其是为了使晶体管传导电流而需要施加到存储器单元的晶体管的栅极的最小电压。类似地,施加到闪存存储器单元的读阈值电压(有时也称为读信号和读电压)是施加到闪存存储器单元的栅极以确定存储器单元是否在该栅极电压下传导电流的栅极电压。在一些实施例中,当闪存存储器单元的晶体管在给定读阈值电压下传导电流时,指示了单元电压小于读阈值电压,用于该读取操作的原始数据值是“1”且否则原始数据值是“0”。
[0060] 图1B和1C是分别图示根据某些实施例的非易失性存储器(NVM)模块160和160(A)的两个实现190和192的框图。为了该说明的目的,NVM模块位于存储器通道c,该存储器通道c可以是存储装置120的任意一个存储器通道,且延迟参数180-c是分配给存储器通道c中的装置的延迟参数。但是,以下描述具有其它分配延迟参数的模式的其它实施例。
[0061] 在一些实施例中,每个NVM模块160包括一个或多个NVM模块控制器(例如,一个或多个NVM模块控制器130)和一个或多个NVM装置140(例如,一个或多个闪存存储器裸芯(die))。在一些实施例中,各个NVM装置140是单个裸芯,同时在其它实施例中各个NVM装置包括多于一个裸芯。典型地,NVM模块160包括多个NVM装置140,但是在某些实现中包括单个NVM装置(例如,高密度3D闪存存储器裸芯)。在一些实施例中,NVM装置140包括NAND类型闪存存储器或者NOR类型闪存存储器。
[0062] 在一些实施例中,NVM模块160接收一个或多个主机命令以在NVM模块160中的非易失性存储器的一个或多个部分执行一个或多个存储器操作(例如,在三个不同裸芯上执行三个读取操作)。在一些实施例中,NVM模块160确定发送各个存储器操作到各个NVM装置140中的哪个。在一些实施例中,该确定由一个或多个NVM模块控制器130做出。在一些实施例中,NVM模块控制器130根据NVM模块160中存储的命令延迟参数180-c,延迟发送在各个NVM装置140上执行存储器操作的一个或多个命令,如实现190(图1B)所示。在一些实施例中,命令延迟参数180-c存储在非易失性存储器中,且在一些实施例中命令延迟参数180存储在易失性存储器中。
[0063] 在一些实施例中,每个NVM模块160包括高速缓存存储器、存储器寄存器和/或易失性存储器(例如,使用SRAM或者DRAM实现)。在一些实施例中,每个NVM模块160在NVM模块160的高速缓冲存储器、寄存器或者易失性存储器中存储命令延迟参数180-c的集合。在一些实施例中,每次存储装置120接通电源或者复位,通过由存储装置控制器128执行的初始化或者接通电源处理而在NVM模块160中重建命令延迟参数180-c。替代地,在检测到电源故障条件或者关闭时,NVM模块160将包括高速缓冲存储器、寄存器和/或易失性存储器中的命令延迟参数180-c的数据传送到非易失性存储器(例如,在NVM模块160的一个或多个NVM装置中),并在电源接通或者功率恢复时将包括命令延迟参数180-c的数据恢复到高速缓冲存储器、寄存器或者易失性存储器。在另一替代中,命令延迟参数180-c存储在非易失性存储器中,这种NOR闪存存储器、或者NAND闪存存储器配置为以单层单元(SLC)操作模式操作以促进快速存储、检索和更新(如果可应用)。
[0064] 实现192示出了在一些实施例中,分配给存储器通道c中的存储器装置的命令延迟参数180-c存储在NVM装置140中。在这种实现中,NVM装置160包括根据在那些装置中存储的命令延迟参数180-c来延迟一个或多个存储器操作的执行的控制器或者状态机(未示出)。此外,在这种实现中,NVM模块控制器130(A)根据命令延迟参数180-c不存储命令延迟参数
180-c或者延迟存储器操作命令到NVM装置的分发。
[0065] 通过在不同存储器通道的NVM装置140或者NVM模块控制器130中(或更一般地在存储装置120的NVM模块160的不同子集中,或者在存储装置120的NVM装置140的不同子集中)存储不同命令延迟参数180-c,使否则将会在实际上相同的开始时间并行执行的存储器操作的执行交错,由此减小由不同存储器通道中(或更一般地存储装置120的NVM模块160的不同子集中,或者存储装置120的NVM装置140的不同子集中)的存储器命令的并行执行引起的电流尖峰。
[0066] 在一些实施例中,分配给特定的NVM模块160或者NVM装置140的命令延迟参数180包括三个延迟参数:指定当执行读取操作时要使用的延迟量的读取延迟参数、指定当执行写入操作时要使用的延迟量的写入延迟参数、和指定当执行擦除操作时要使用的延迟量的擦除延迟参数。这三个延迟参数由于这三个类型的存储器操作的不同定时特性,典型地具有不同的值,且选择其值从而当在不同存储器通道中(或更一般地在存储装置120的NVM模块160的不同子集中,或者在存储装置120的NVM装置140的不同子集中)并行地执行每个类型的存储器操作时,总体上使由存储装置120形成的电流平滑。
[0067] 在一些实施例中,每个NVM装置140被划分为多个可寻址的和单独可选择的块。在一些实施例中,单独可选择的块是闪存存储器装置中的最小尺寸的可擦除单元。换句话说,每个块包括可以被同时擦除的最小数目的存储器单元。每个块通常进一步划分为多个页和/或字线,其中每个页或者字线典型地是块中最小的单独可访问的(可读取的)部分的实例。在一些实施例中(例如,使用某些类型的闪存存储器),但是,数据集的最小的单独可访问的单元是扇区,其是页的子单元。也就是,块包括多个页,每个页包括多个扇区,且每个扇区是用于从闪存存储器装置读取数据的最小数据单元。
[0068] 例如,每个块包括预定义数目的页,例如,64页、128页、256页或者另一适当的页数。块典型地分组为多个区域。每个块区域可以某种程度上独立地管理,这增加了用于并行操作的并行程度且简化了每个NVM装置140的管理。
[0069] 图1D图示根据某些实施例的数据存储系统100的一部分。虽然图示了某些示例特征,为了简洁未图示各种其它特征且从而不模糊在这里公开的示例实现的更相关的方面。为此,作为非限制实例,数据存储系统100包括存储装置控制器128和存储介质161,且与计算机系统110结合使用。
[0070] 已经如上参考图1A所述的存储系统100、计算机系统110和存储装置控制器128的特征和功能这里不再重复。
[0071] 存储介质161通过连接103耦接到存储装置控制器128。连接103有时被称为数据连接,但是典型地除数据之外还传送命令,且可选地除了传送要在存储介质161中存储的数据值和从存储介质161读取的数据值之外还传送元数据、纠错信息和/或其它信息。但是,在某些实现中,存储装置控制器128和存储介质161作为其组件包括在同一装置中。包括比如可选择部分131的可选择部分的存储介质161的另外的特征和功能如以上在图1B的讨论中关于NVM装置140所描述的。
[0072] 在某些实现中,存储装置控制器128包括管理模块121、输入缓冲器135、输出缓冲器136、错误控制模块132和存储介质接口(I/O)138。存储装置控制器128可以包括为了简洁而未图示的各种附加特征,且从而不模糊在这里公开的示例实现的更相关的特征,且特征的不同布置是可能的。输入和输出缓冲器135、136提供通过数据连接101到计算机系统110的接口。类似地,存储介质I/O 138提供通过连接103到存储介质161的接口。在某些实现中,存储介质I/O 138包括读取和写入电路,其包括能够传送命令延迟参数到存储介质161(例如,在图1B和图1C中示出的,建立或者更新命令延迟参数180-c)的电路。
[0073] 在某些实现中,管理模块121包括配置为执行一个或多个程序中(例如,管理模块121中)的指令的一个或多个处理单元127(CPU,有时也称为处理器)。在某些实现中,一个或多个CPU 127由存储装置控制器128的功能内和有时超出存储装置控制器128的功能的一个或多个组件共享。管理模块121耦接到输入缓冲器135、输出缓冲器136(连接未示出)、错误控制模块132和存储介质I/O 138以协调这些组件的操作。在一些实施例中,管理模块121包括如先前关于图1A描述的延迟参数182的集合。
[0074] 错误控制模块132耦接到存储介质I/O 138、输入缓冲器135和输出缓冲器136。提供错误控制模块132以限制无意被引入数据中的无法校正的错误的数目。在一些实施例中,错误控制模块132包括编码器133和解码器134。编码器133通过应用错误控制代码产生代码字来编码数据,该代码字随后存储在存储介质161中。在一些实施例中,当从存储介质161读取已编码数据(例如,一个或多个代码字)时,解码器134向已编码数据应用解码处理以恢复数据,和在错误控制代码的纠错能力内校正所恢复的数据中的错误。如果解码成功,则已解码数据被提供给输出缓冲器136,在输出缓冲器136处使得已解码数据对计算机系统110可用。在某些实现中,如果解码未成功,则存储装置控制器128可以借助于多种补救措施或者提供不可解决的错误条件的指示。为了简洁的缘故,在这里不提供本领域技术人员通常可用和已知的各种类型的编码和解码算法的穷尽描述。
[0075] 在某些实现中,管理模块121包括如上所述的用于将命令延迟参数的不同集合分发给存储介质161的不同部分(例如,不同存储器通道)中的NVM模块或者NVM装置的一个或多个过程。
[0076] 在一些实施例中,管理模块121检测电流尖峰可能发生的操作条件,比如来自主机系统110或者来自比如垃圾收集处理的内部处理的存储器操作命令的脉冲串(burst),并通过在传送到存储介质161的存储器操作命令中或者与该存储器操作命令一起传送延迟参数值,来响应这种条件的检测。延迟参数的值由预定义的命令延迟分发方案或者模式确定,比如对于不同存储器通道,或者对于不同组的NVM模块,或者对于不同组的NVM装置的不同延迟。接收包括或者伴随有非零延迟参数值的存储器操作命令的NVM模块、或者NVM装置根据所接收的非零延迟参数值延迟那些存储器操作命令的执行。在这种实现中,NVM模块160和/或NVM装置140不需要配置有命令延迟参数的不同集合,因为当存储装置120中的操作条件批准交错的命令执行延迟的使用以避免电流尖峰时,与存储器操作命令一起传送命令延迟参数。
[0077] 图2A是图示根据某些实施例的NVM模块160-1的框图。NVM模块160-1典型地包括用于执行存储器206中存储的模块、程序和/或指令且由此执行处理操作的一个或多个处理器(有时也称为CPU或者处理单元或者微处理器或者微控制器,或者比如NVM控制器130-1的控制器)、存储器206和用于互连这些组件的一个或多个通信总线208。虽然NVM模块160-1典型地包括单个NVM控制器130-1,在一些实施例中NVM模块160-1包括多个NVM控制器。类似地,NVM控制器130-1典型地包括用于执行一个或多个程序中的指令的单个处理器,但是在一些实施例中,NVM控制器130-1包括两个或更多处理器。
[0078] 通信总线208可选地包括互连和控制系统组件之间的通信的电路(有时称作芯片组)。在一些实施例中,NVM模块160-1通过通信总线208耦接到存储装置控制器128、中间存储装置模块125(如果存在)和NVM装置140(例如,NVM装置140-1到140-n)。在一些实施例中,通信总线208除数据之外还传送命令,且可选地除了传送将要存储在NVM装置140中的数据值和从NVM装置140读取的数据值之外还传送元数据、纠错信息和/或其它信息。
[0079] 存储器206包括高速随机存取存储器,比如DRAM、SRAM、DDR RAM或者其它随机存取固态存储器装置,且可以包括NVM,比如一个或多个闪存存储器装置、其它非易失性固态存储装置、磁盘存储装置或者光盘存储装置。存储器206可选地包括与其它NVM模块共享或者与存储装置控制器128共享的一个或多个存储装置。存储器206、或者替代的存储器206内的一个或多个NVM装置包括非瞬时计算机可读存储介质。在一些实施例中,存储器206或者存储器206的计算机可读存储介质存储以下程序、模块和数据结构或者其子集:
[0080] ·接口模块210,用于与其它组件,比如存储装置控制器128、错误检测和校正电路126和NVM装置140的通信;
[0081] ·复位模块212,用于复位NVM模块160-1;
[0082] ·一个或多个数据读取和写入模块214,用于从NVM装置140读取和写入到NVM装置140;
[0083] ·数据擦除模块216,用于擦除NVM装置140上存储器的部分;
[0084] ·操作延迟管理模块218,用于管理一个或多个命令延迟参数对在NVM装置140上执行的存储器操作的应用;
[0085] ·电源故障模块220,用于检测关于存储装置(例如,存储装置120,图1A)的电源故障条件和触发易失性存储器中的数据到NVM的存储;
[0086] ·命令延迟参数222,与操作延迟管理模块218关联地使用以延迟NVM装置140上一个或多个存储器操作的执行;和
[0087] ·易失性数据224,包括与NVM模块160-1相关联的易失性数据,且在一些实施例中包括比如以下的一个或多个的信息:用于NVM装置140或者其部分的健康信息、存储器操作参数、最近执行的操作的日志等。
[0088] 在一些实施例中,操作延迟管理模块218包括用于延迟NVM模块160中NVM装置140上存储器操作的执行的指令。在一些实施例中,这些指令指示如何根据图4A-图4E中描述的方法延迟存储器操作的执行。在一些实施例中,操作延迟管理模块218检索命令延迟参数222以执行以上标识的操作。
[0089] 以上标识的元件中的每一个可以存储在一个或多个先前提到的存储装置中,且对应于用于执行如上所述的功能的指令的集合。上述标识的模块或者程序(即,指令的集合)不需要实现为单独的软件程序、过程或者模块,且因此这些模块的各种子集在各种实施例中可以组合或者以其它方式重新布置。在一些实施例中,存储器206可以存储上述标识的模块和数据结构的子集。此外,存储器206可以存储上面未描述的附加的模块和数据结构。在一些实施例中,存储器206或者存储器206的计算机可读存储介质中存储的程序、模块和数据结构包括用于实现以下将要参考图4A-图4E描述的方法中的各个操作的指令。
[0090] 虽然图2A示出了根据某些实施例的NVM模块160-1,相对作为在这里描述的实施例的结构示意,图2A意在更多地作为可能在NVM模块中存在的各种特征的功能描述。实际上,且本领域技术人员认识到的,分开地示出的项可以被组合且某些项可以被分开。另外,虽然图2A示出了NVM模块160-1,图2A的描述类似地应用于存储装置120(图1A)中的其它NVM模块(例如,NVM模块160-m)。
[0091] 图2B是图示根据某些实施例的示例性管理模块121的框图。管理模块121典型地包括:一个或多个处理单元(CPU)127,用于执行存储器202中存储的模块、程序和/或指令且由此执行处理操作;存储器202;和用于互连这些组件的一个或多个通信总线229。一个或多个通信总线229可选地包括互连和控制系统组件之间的通信的电路(有时称为芯片组)。管理模块121通过一个或多个通信总线229耦接到缓冲器135、缓冲器136、错误控制模块132和存储介质I/O 138。存储器202包括高速随机存取存储器,比如DRAM、SRAM、DDR RAM或者其它随机存取固态存储器装置,且可以包括非易失性存储器,比如一个或多个闪存存储器装置、其它非易失性固态存储装置、磁盘存储装置或者光盘存储装置。存储器206可选地包括与存储介质138中的一个或多个NVM模块160共享的一个或多个存储装置。存储器202、或者替代的存储器202内的一个或多个非易失性存储装置包括非瞬时计算机可读存储介质。在一些实施例中,存储器202或者存储器202的非瞬时计算机可读存储介质存储以下程序、模块和数据结构或者其子集或者超集:
[0092] ·数据读取模块230,用于从包括闪存存储器(例如,一个或多个闪存存储器装置,比如每个包括多个裸芯的NVM装置140、142)的存储介质161(图1C)读取数据;
[0093] ·数据写入模块232,用于写入数据到存储介质161;
[0094] ·数据擦除模块234,用于从存储介质161擦除数据;
[0095] ·延迟参数管理模块236,用于获得、更新和保持对于存储介质161上存储器的各个部分建立、或者分配给存储介质161上存储器的各个部分的延迟参数信息;
[0096] ·如上所述的命令延迟参数182;
[0097] ·电源故障模块240,用于检测关于存储装置(例如,存储装置120,图1A)的电源故障条件,和触发易失性存储器中的数据到非易失性存储器的存储,和可选地与其它存储器170和/或NVM模块160中的电源故障模块协同工作;
[0098] ·地址转换模块242,用于将在所接收的主机命令中指定的逻辑地址转换为存储介质161中的物理地址,且由此标识各个存储器命令要被引导到的存储器通道106(图1A)、和/或NVM模块160(图1A、1B、1C)和/或NVM装置140;和
[0099] ·一个或多个地址转换表244。
[0100] 在一些实施例中,延迟参数管理模块236将初始或者调整的命令延迟参数传送到存储介质161中的NVM模块160或者NVM装置140。在一些实施例中,延迟参数管理模块236确定怎样或者何时调整命令延迟参数;但是,在其它实施例中,由主机计算机110或者在存储装置120或者数据存储系统100外部的其它计算机系统执行该功能。在一些实施例中,延迟参数管理模块236在非易失性存储器中以命令延迟参数182存储在NVM模块160和/或NVM装置140中存储的全部命令延迟参数的副本。
[0101] 上述的标识的元件中的每一个可以存储在一个或多个先前提到的存储器装置中,且对应于用于执行如上所述的功能的指令的集合。上述标识的模块或者程序(即,指令的集合)不需要实现为单独的软件程序、过程或者模块,且因此这些模块的各种子集在各种实施例中可以组合或者以其它方式重新布置。在一些实施例中,存储器202可以存储上述标识的模块和数据结构的子集。此外,存储器202可以存储上面未描述的附加的模块和数据结构。在一些实施例中,存储器202或者存储器202的非瞬时计算机可读存储介质中存储的程序、模块和数据结构提供用于实现以下将要参考图4A-图4E描述的任意一个方法的指令。
[0102] 虽然图2B示出了管理模块121,相对作为在这里描述的实施例的结构示意,图2B意在更多地作为可能在管理模块中存在的各种特征的功能描述。实际上,且如本领域技术人员认识到的,分开地示出的程序、模块和数据结构可以被组合且某些程序、模块和数据结构可以被分开。
[0103] 图3A-图3B图示根据某些实施例的用于非易失性存储装置的各种示例性功率特征。在图3A中,功率特征300、302、304和306示出对于在一些实施例中经非易失性存储器的各个部分上的4个单独的并行存储器通道(例如,存储器通道106,图1A)执行的相同存储器操作(例如,写入操作),电流随着时间的图形表示。例如,功率特征300示出经第一存储器通道发送的一系列写入操作,同时功率特征306示出经第四存储器通道发送的一系列写入操作。
[0104] 在一些实施例中,功率特征300、302、304和306示出经单个存储器通道的子通道(例如,8总线存储器通道的四个数据总线)并行执行的存储器操作的功率特征。在一些实施例中,功率特征300、302、304和306示出并行地在四个不同闪存存储器裸芯上执行存储器操作的功率特征。在一些实施例中,如果在重叠时间段期间执行两个或更多存储器操作,或者替代地,都在具有与任何一个存储器操作的持续时间对应的持续时间的给定时间段期间发生,则两个或更多存储器操作被称为是并行执行。例如,在时间标记309-1和时间标记309-2之间的时间段期间,发生四个并行存储器操作,如在四个功率特征300、302、304和306中看到的。
[0105] 在图3A中,时间标记308位于功率特征300中存储器操作的电流峰值。在图3A中,这也与在功率特征302、304和306中示出的存储器操作的电流峰值一致。在该特定实例中,当由标记触控的各个存储器操作中的每个达到大约0.055A的峰值电流时,时间标记308位于大约22微秒。
[0106] 图3B图示图3A示出的功率特征300、302、304和306的加和的图形表示310。位于大约22微秒的时间标记312示出,当在图3A中标记的四个并行存储器操作同时(例如,经相同时间段或者在相同时刻)发生时,观察到大约0.22A的电流尖峰。
[0107] 相对比地,图形表示314图示在图3A中观察到相同的四个功率特征,但是在它们的开始时间是交错的(例如,延迟的)。在该实例中,存储器操作中的三个延迟不同的非零时间量,使得四个存储器操作的电流峰值不重叠。
[0108] 图形表示316图示图形表示314中功率特征的加和(summation)。该交错的功率特征的加和示出了更平滑的电流,具有比图形310中显著更低的电流峰值。图形316图示每个通道、子通道或者存储器部分确定适当的命令延迟参数值的益处。换言之,通过交错存储器操作的开始时间,那些操作的电流峰值也交错,且结果,总峰值电流比当存储器操作的开始时间不交错时少得多。
[0109] 注意到图3A和图3B中的图形示出在存储装置的不同存储器通道中并行执行的一系列相同类型的存储器操作。但是,在一些实施例中,在不同存储器通道或者存储装置的不同部分中并行执行各种存储器操作,且在这种实施例中也使用存储器命令执行交错以减小总峰值电流。
[0110] 图4A-4E图示根据某些实施例的操作具有多个NVM模块的存储装置的方法400的流程图表示。至少在一些实施例中,方法400的部分或者全部由存储装置(例如,存储装置120,图1)或者存储装置的一个或多个组件(例如,NVM模块160、NVM控制器130和/或存储装置控制器128,图1A-图1D)执行。在一些实施例中,方法400由在非瞬时计算机可读存储介质中存储并由存储装置120的一个或多个处理器执行的指令管理。
[0111] 该方法包括,在存储装置的多个不同存储器部分中的每一个,建立(402)与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的非零命令延迟参数。例如,对于各个存储器部分(例如,存储器通道、NVM模块或者闪存存储器裸芯),建立30微秒的擦除命令延迟参数。
[0112] 注意到上述的多个不同存储器部分不需要包括存储装置的全部存储器部分,在该情况下不延迟存储装置的其它部分中的存储器操作。例如,如果存储装置具有八个不同的存储器部分,可以在八个不同存储器部分的七个中建立非零命令延迟参数,同时剩余的存储器部分事实上不建立命令延迟。
[0113] 在一些实施例中,多个存储器部分是(404)非易失性存储器部分,且在一些实施例中,多个存储器部分是(406)NAND闪存存储器部分。在一些实施例中,一个或多个命令延迟参数(408)存储在非易失性存储器中。例如,一个或多个命令延迟参数存储在存储介质161中的NVM装置140的一个或多个部分中。在一些实施例中,存储装置包括(410)一个或多个3D存储器装置(3D)和与一个或多个三维存储器装置中的存储器元件的操作相关联的电路,且在一些实施例中,一个或多个3D存储器装置的各个3D存储器装置中的电路和一个或多个存储器元件(412)在相同衬底上。在一些实施例中,存储装置包括(414)一个或多个闪存存储器装置。
[0114] 该方法包括:在存储装置的多个不同存储器部分中的每一个中建立非零命令延迟参数之后,在重叠时间段期间在存储装置的多个不同存储器部分的两个或更多存储器部分中执行(416)存储器操作,所述执行包括在多个存储器部分的每个存储器部分中,将各个存储器操作的执行延迟与对于该存储器部分建立的命令延迟参数对应的时间量。例如,对于第一闪存存储器裸芯(例如,在第一存储器通道中),建立具有30微秒的值的擦除延迟参数,且对于第二闪存存储器裸芯(例如,在第二存储器通道中),建立具有60微秒的值的擦除延迟参数。在该实例中,要在第一裸芯上执行的第一擦除操作在其执行之前被延迟30微秒,且要在第二裸芯上执行的第二擦除操作在其执行之前被延迟60微秒。
[0115] 在一些实施例中,或者在一些情况下,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是(418)写入操作,且存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是(420)用于控制写入操作的延迟的写入延迟参数。在一些实施例中,至少一个写入延迟参数的值(422)小于或等于写入操作的时间的平均持续时间。例如,写入操作占用300微秒且至少一个写入延迟参数的值是10微秒。在一些实施例中,选择对于不同存储器部分建立的存储器操作延迟参数的值,从而最小化跨多个存储器通道或者跨非易失性存储器的多个部分所看到的总和电流的预测幅值。
[0116] 在一些实施例中,或者在一些情况下,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是(424)擦除操作,且存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是(426)用于控制擦除操作的延迟的擦除延迟参数。在一些实施例中,至少一个擦除延迟参数的值(428)小于或等于擦除操作的时间的平均持续时间。
[0117] 在一些实施例中,或者在一些情况下,在存储装置的多个不同存储器部分的两个或更多存储器部分中执行的所执行的存储器操作是(430)读取操作,且存储装置的多个不同存储器部分的两个或更多存储器部分中的每一个的命令延迟参数是(432)用于控制读取操作的延迟的读取延迟参数。在一些实施例中,至少一个读取延迟参数的值(434)小于或等于读取操作的时间的平均持续时间。
[0118] 在一些实施例中,该方法包括,在存储装置的多个不同存储器部分的单个存储器部分中执行存储器操作序列时,根据对于该单个存储器部分建立的命令延迟参数而延迟(436)存储器操作序列的第一存储器操作,且此后以顺序次序执行存储器操作序列中每个后续的存储器操作而不再延迟存储器操作序列中的每个所述后续的存储器操作。例如,十个读取操作被发送到第一存储器通道上以在第一裸芯上执行。第一读取操作延迟50微秒,即由第一裸芯的读取延迟参数设置的持续时间,但是不延迟后续九个读取操作。在一些实施例中,对于该单个存储器部分建立的命令延迟参数特定于正被请求的存储器操作(例如,特定于读取、写入或者擦除操作)并且特定于该存储器部分。
[0119] 在一些实施例中,该方法包括检测(438)与单个存储器部分相关联的工作队列中存储器操作序列的存在,且然后参考操作436应用如上所述的方法。
[0120] 在一些实施例中,该方法包括,在与存储装置的多个不同存储器部分的第一子集相关联的工作队列中执行存储器写入操作时,并行地执行(440)其执行被延迟了与对于每个存储器部分建立的命令延迟参数对应的时间量的工作队列中的存储器写入操作的第一子集,其中,写入数据被工作队列中存储器写入操作的第一子集写到该每个存储器部分。例如,在四个裸芯的工作队列中加载100个写入操作,其中四个裸芯中的每一个位于四个不同的存储器通道之一中,且在各个裸芯中的每一个上执行25个写入操作。要在各个裸芯中的每一个上执行的第一写入操作被并行执行,其中每个写入操作被延迟与对于其中执行写入操作的存储器通道建立的写入延迟参数对应的时间量。
[0121] 在一些实施例中,该方法进一步包括,此后执行(442)工作队列中的每个后续的存储器写入操作而不再延迟每个所述后续的存储器写入操作。
[0122] 在一些实施例中,该方法包括,在存储装置的多个不同存储器部分中的每一个,建立(444)与对于多个不同存储器部分中的一个或多个其它存储器部分建立的命令延迟参数不同的两个或更多非零命令延迟参数,其中该两个或更多非零命令延迟参数至少包括用于当执行从由读取、写入和擦除命令构成的集合中选出的第一命令类型时使用的第一命令延迟参数和用于当执行与第一命令类型不同且从由读取、写入和擦除命令构成的集合中选出的第二命令类型时使用的第二命令延迟参数。例如,在第一裸芯,建立具有10微秒的值的写入延迟参数,且建立具有25微秒的值的擦除延迟参数。此外,在该实例中,第一裸芯的写入延迟参数的值不同于第二裸芯的写入延迟参数的值(例如,20微秒),且第一裸芯的擦除延迟参数的值不同于第二裸芯的擦除延迟参数的值(例如,50微秒)。
[0123] 在一些实施例中,该方法包括:调整(446)与多个存储器部分的第一不同存储器部分对应的非零命令延迟参数的值。在一些情况下,与多个存储器部分的第一不同存储器部分对应的命令延迟参数的值被减小(448)到零。在一些情况下,与多个存储器部分的第一不同存储器部分对应的命令延迟参数的值被改变(450)到新的非零值。例如,先前对于第一裸芯建立具有10微秒的值的读取延迟参数,且后来被改变为具有12微秒的值。
[0124] 在一些实施例中,根据其对应的存储器部分的年龄、或者多个存储器部分的其它存储器部分的年龄做出命令延迟参数的值的调整。在一些实施例中,命令延迟参数的值的调整由一个或多个主机命令(例如,从计算机系统110接收到的,图1)管理以做出调整。在一些实施例中,命令延迟参数的值的调整由存储装置控制器(例如,存储装置控制器128,图1)管理。
[0125] 在一些实施例中,该方法进一步包括,在与存储装置的所述多个存储器部分不同的存储装置的附加存储器部分中,在重叠时间段期间执行(452)存储器操作,而不延迟存储装置的该附加存储器部分中所述存储器操作的执行。例如,如果在存储系统中的八个存储器通道的七个中建立非零延迟参数,则剩余存储器通道中的存储器装置执行它们各自的存储器操作而不引入任何延迟。
[0126] 在一些实施例中,该方法进一步包括,在与存储装置的所述多个存储器部分不同的存储装置的附加存储器部分中,建立(454)与对于所述多个不同存储器部分建立的命令延迟参数不同的零命令延迟参数,和根据该零命令延迟参数在重叠时间段期间执行存储装置的附加存储器部分中的存储器操作。例如,在存储系统中,在存储系统的七个存储器通道中建立非零延迟参数。剩余存储器通道具有以零值建立的各个命令延迟参数。在一些实施例中,零命令延迟参数可以之后被调整为具有非零值。
[0127] 半导体存储器装置包括易失性存储器装置,比如动态随机存取存储器(“DRAM”)或者静态随机存取存储器(“SRAM”)装置、非易失性存储器装置、比如电阻性随机存取存储器(“ReRAM”)、电可擦可编程只读存储器(“EEPROM”)、闪存存储器(其也可以被视为EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻随机存取存储器(“MRAM”)以及能够存储信息的其它半导体元件。每个类型的存储器装置可以具有不同配置。例如,闪存存储器装置可以配置为NAND或者NOR配置。
[0128] 存储器装置可以以任何组合由无源和/或有源元件形成。通过非限制实例的方式,无源半导体存储器元件包括ReRAM装置元件,其中在一些实施例中包括电阻率开关存储元件,比如反熔丝、相变材料、等等,且可选地是电流导引元件,比如二极管等。另外通过非限制实例的方式,有源半导体存储器元件包括EEPROM和闪存存储器装置元件,其在一些实施例中包括包含电荷存储区域的元件,比如浮置栅极、导电纳米微粒或者电荷存储介电材料。
[0129] 多个存储器元件可以配置为使得它们串联连接或者使得每个元件可单独地访问。通过非限制实例的方式,NAND配置的闪存存储器装置(NAND存储器)典型地包括串联连接的存储器元件。NAND存储器阵列可以配置为使得阵列由多个存储器串组成,其中存储器串由共享单个位线和作为整体存取的多个存储器元件组成。替代地,存储器元件可以配置为使得每个元件可单独地存取(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,且可以以别的方式配置存储器元件。
[0130] 位于衬底内和/或衬底上的半导体存储器元件可以以二维或者三维空间布置,比如二维存储器结构或者三维存储器结构。
[0131] 在二维存储器结构中,在单个平面或者单个存储器装置级中布置半导体存储器元件。典型地,在二维存储器结构中,存储器元件以实质上平行于支撑存储器元件的衬底的主要表面延伸的平面(例如,以x-z方向平面)布置。该衬底可以是其上或者其中形成存储器元件的层的晶片,或者其可以是在形成存储器元件之后附于存储器元件的载体衬底。作为非限制实例,衬底可以包括比如硅的半导体。
[0132] 存储器元件可以以有序阵列中的单一存储器装置级布置,比如以多个行和/或列。但是,可以以不规则或者非正交的配置布置存储器元件。存储器元件每个可以具有两个或更多电极或者接触线,比如位线和字线。
[0133] 布置三维存储器阵列以使得存储器元件占据多个平面或者多个存储器装置级,由此形成三维空间中的结构(即,以x、y和z方向,其中y方向实质上垂直于衬底的主表面,且x和z方向实质上平行于衬底的主表面)。
[0134] 作为非限制实例,三维存储器结构可以垂直地布置为多个二维存储器装置级的堆叠。作为另一非限制实例,三维存储器阵列可以布置为多个垂直列(例如,以实质上垂直于衬底的主要表面,即,y方向延伸的列),其中每个列在每个列中具有多个存储器元件。列可以以二维配置布置(例如,在x-z平面中),导致具有在多个垂直地堆叠的存储器平面上的元件的存储器元件的三维布置。三维空间中的存储器元件的其它配置也可以构成三维存储器阵列。
[0135] 通过非限制实例的方式,在三维NAND存储器阵列中,存储器元件可以耦接在一起以形成单个水平(例如,x-z)存储器装置级内的NAND串。替代地,存储器元件可以耦接在一起以形成跨越多个水平存储器装置级的垂直NAND串。可以设想其它三维配置,其中,某些NAND串包括单个存储器级的存储器元件,而其它串包括跨过多个存储器级的存储器元件。三维存储器阵列也可以以NOR配置和以ReRAM配置设计。
[0136] 典型地,在单片三维存储器阵列中,在单个衬底之上形成一个或多个存储器装置级。可选地,单片三维存储器阵列也可以具有至少部分地在单个衬底内的一个或多个存储器层。作为非限制实例,衬底可以包括比如硅的半导体。在单片三维阵列中,构成阵列的每个存储器装置级的层典型地在阵列的下方存储器装置级的层上形成。但是,单片三维存储器阵列的相邻存储器装置级的层可以被共享或者具有在存储器装置级之间的介于其间的层。
[0137] 而且,可以分开地形成二维阵列且然后封装在一起以形成具有多层存储器的非单片存储器装置。例如,可以通过在分开的衬底上形成存储器级且然后在彼此之上堆叠存储器级而构造非单片堆叠存储器。该衬底在堆叠之前可以变薄或者从存储器装置级去除,但是当在分开的衬底之上最初形成存储器装置级时,产生的存储器阵列不是单片三维存储器阵列。另外,多个二维存储器阵列或者三维存储器阵列(单片或者非单片)可以在分开的芯片上形成且然后封装在一起以形成堆叠芯片的存储器装置。
[0138] 通常需要关联的电路以用于存储器元件的操作和用于与存储器元件的通信。作为非限制实例,存储器装置可以具有用于控制和驱动存储器元件以实现比如编程和读取的功能的电路。该关联的电路可以在与存储器元件相同的衬底上和/或在分开的衬底上。例如,用于存储器读取-写入操作的控制器可以位于分开的控制器芯片上和/或与存储器元件相同的衬底上。
[0139] 术语“三维存储器装置”(或者3D存储器装置)在这里定义为指具有多个存储器层或者存储器元件的多级(例如,有时称作多个存储器装置级)的存储器装置,包括以下的任意:具有单片或者非单片3D存储器阵列的存储器装置,其某些非限制实例在上面描述了;或者封装在一起以形成堆叠芯片的存储器装置的两个或更多2D和/或3D存储器装置,其某些非限制实例在上面描述了。
[0140] 本领域技术人员将认识到本发明不限于描述的二维和三维示例性结构而是覆盖如在这里描述和本领域技术人员理解的本发明的精神和保护范围内的所有相关的存储器结构。
[0141] 将理解,虽然术语“第一”、“第二”等在这里可以用于描述各种元件,这些元件不应该由这些术语限制。这些术语仅用于区分一个元件与另一元件。例如,第一触点可以被称为第二触点,且类似地,第二触点可以被称为第一触点,这不改变描述的含义,只要一致地重命名所有“第一触点”的出现和一致地重命名所有第二触点的出现。第一触点和第二触点两者都是触点,但是它们不是相同的触点。
[0142] 在这里使用的术语仅用于描述特定的实施例的目的而不意在限制权利要求。如在实施例的描述和所附权利要求中使用的,单数形式“一”、“一个”和“该”意在也包括复数形式,除非上下文清楚地指示例外。还将理解如在此使用的术语“和/或”是指和包括一个或多个关联的列出的项目的任何和全部可能的组合。另外将理解术语“包括”和/或“包含”当在该说明书中使用时指定所述的特征、整数、步骤、操作、元件和/或其组件的存在,而不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组的存在或者附加。
[0143] 如在此使用的,术语“如果”取决于上下文,可以解释为指“当...时”或者“在...时”或者“响应于确定”或者“根据确定”或者“响应于检测”在前叙述的条件下为真。类似地,短语“如果确定[在前叙述的条件为真]”或者“如果[在前叙述的条件为真]"或者“当[在前叙述的条件为真]时”取决于上下文,可以被解释为指“在确定…时”或者“响应于确定”或者“根据确定”或者“在检测到...时”或者“响应于检测到”在前叙述的条件为真。
[0144] 为了说明的目的,已经参考特定实施例描述了前述描述。但是,以上的说明性的讨论不意在是穷尽的或者限制权利要求到公开的精确形式。考虑上述教导许多修改和变化是可能的。选择和描述实施例以最好地解释操作的原理和实际应用,以由此使能本领域技术人员。