用于高效垃圾收集的预测块分配的存储系统和方法与流程

文档序号:15615324发布日期:2018-10-09 21:13阅读:215来源:国知局



背景技术:

存储系统可以具有被组织为块的存储器。随着时间的推移,写入到块中的数据可能无效(例如,由于主机数据删除和/或存储系统内部的数据转移)。垃圾收集是收集使用的存储器块的有效部分(忽略无效的部分)并将它们移动到新的块的一种处理。当块完全无效时,其被返回到空闲块池。可以通过保持每个块的“有效计数器”以跟踪块中的有效闪存管理单元的数量和/或通过编程/擦除周期计数器来监视块的耐久力来控制垃圾收集。垃圾收集算法可以通过检查哪个块具有最低的“有效计数器”、最高的编程/擦除周期计数器、和/或低于平均值的编程/擦除周期计数器,来选择哪个块应该接下来被“收集”。



技术实现要素:

附图说明

图1a是实施例的非易失性存储系统的框图。

图1b是示出实施例的存储模块的框图。

图1c是示出实施例的层级存储系统的框图。

图2a是示出根据实施例的在图1a中所示的非易失性存储系统的控制器的组件的框图。

图2b是示出根据实施例的在图1a中所示的非易失性存储器存储系统的组件的框图。

图3是实施例的用于高效垃圾收集的预测块分配的方法的流程图。

图4是实施例的用于在存储器中存储模式的方法的流程图。

图5是使用模式匹配的实施例的用于高效垃圾收集的预测块分配的方法的流程图。

具体实施方式

通过介绍的方式,下面的实施例涉及用于高效垃圾收集的预测块分配的存储系统和方法。在一个实施例中,提供了用于块分配的方法。该方法包括确定存储系统中的存储器正在第一使用场景还是第二使用场景中被使用;响应于确定存储器正在第一使用场景中被使用,使用第一块分配方法;以及响应于确定存储器正在第二使用场景中被使用,使用第二块分配方法,其中第一块分配方法分配比第二块分配方法更接近于需要垃圾收集的块。

在一些实施例中,通过比较多个写入命令与存储在存储系统中的模式来执行确定,其中第一块分配方法与模式中的一个模式相关联,并且其中第二块分配方法与模式中的另一模式相关联。

在一些实施例中,使用机器学习来执行确定。在一些实施例中,机器学习使用监督式学习,然而,在其它实施例中,机器学习使用无监督式学习。

在一些实施例中,通过计算用户单个地址更新与驱动重写的比率来执行确定。

在一些实施例中,通过从主机接收关于存储器是正在第一使用场景中还是在第二使用场景中被使用的指示来执行确定。

在一些实施例中,该方法还包括改变垃圾收集的时间。

在一些实施例中,通过调整用于发起垃圾收集的至少一个阈值参数来改变垃圾收集的时间。

在一些实施例中,通过改变触发垃圾收集操作与主机写入的比率来改变垃圾收集的时间。

在一些实施例中,通过改变动态垃圾收集操作与静态垃圾收集操作的比率来改变垃圾收集的时间。

在一些实施例中,存储在第一使用场景中的数据比存储在第二使用场景中的数据更不频繁地被更新。

在一些实施例中,存储器包括三维存储器。

在一些实施例中,该方法在存储系统中被执行。

在另一个实施例中,提供了包括存储器和控制器的存储系统。控制器被配置为接收多个写入命令;比较多个写入命令与存储在存储系统中的模式;对于每个模式,生成表示多个写命令与该模式的匹配级别的得分;确定哪个得分超过阈值;以及选择与得分超过阈值的模式相关联的块分配方案。

在一些实施例中,与第一模式相关联的块分配方案分配比与第二模式相关联的块分配方案更接近于需要垃圾收集的块。

在一些实施例中,控制器还被配置为调整用于发起垃圾收集的至少一个阈值参数。

在一些实施例中,存储器包括三维存储器。

在一些实施例中,存储系统被嵌入在主机中。

在一些实施例中,存储系统可移除地连接到主机。

在另一实施例中,提供了存储系统,该存储系统包括:存储器;用于确定存储器正如何被使用的装置;以及用于基于存储器正如何被使用选择块分配方法的装置,其中响应于确定存储器正在第一使用场景中被使用,第一块分配方法,并且其中响应于确定存储器正在第二使用场景中被使用,第二块分配方法被选择,进一步,其中第一块分配方法分配比第二块分配方法更接近于需要垃圾收集的块。

在一些实施例中,用于确定的装置和用于选择的装置包括控制器。

在一些实施例中,存储器包括三维存储器。

其它实施例是可能的,并且实施例中的每一个可以被单独使用或组合一起使用。因此,现在将参照附图描述各种实施例。

现在转向附图,在图1a至图1c中示出适于在实施这些实施例的方面中使用的存储系统。图1a是示出根据本文描述的主题的实施例的非易失性存储系统100的框图。参考图1a,非易失性存储系统100包括控制器102和可以由一个或多个非易失性存储器裸芯104组成的非易失性存储器。如本文所使用的,术语裸芯是指在单个半导体基板上形成的非易失性存储器单元和用于管理那些非易失性存储器单元的物理操作的相关联的电路的集合。控制器102与主机系统接口,并且向非易失性存储器裸芯104发送用于读取、编程和擦除操作的命令序列。

控制器102(其可以是闪存控制器)可以采取以下形式:处理电路、微处理器或处理器、以及存储可由例如(微)处理器、逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入式微控制器运行的计算机可读程序代码(例如,固件)的计算机可读介质。控制器102可以被配置有硬件和/或固件以执行下面描述的并在流程图中示出的各种功能。并且,示出为在控制器的内部的组件中的一些也可以被存储在控制器的外部,并且可以使用其它组件。另外,短语“可操作地与……通信”可以意味着直接与之通信或者与通过一个或多个组件间接(有线或无线)与之通信,这可能有或者可能没有在本文示出或描述。

如这里所使用的,闪存控制器是管理存储在闪存上的数据并且与诸如计算机或电子设备的主机通信的设备。除了本文描述的具体功能之外,闪存控制器还可以具有各种功能。例如,闪存控制器可以格式化闪存以保证存储器正适当地操作,映射出坏的闪存单元,并且分配备用单元以替代将来故障的单元。备用单元的一些部分可以被用来保持固件以操作闪存控制器并且实施其它特征。在操作中,当主机需要从闪存读取数据或向闪存写入数据时,它将与闪存控制器通信。如果主机提供数据要被读取/写入到的逻辑地址,则闪存控制器可以将从主机接收的逻辑地址转换为在闪存中的物理地址。(可替换地,主机可以提供该物理地址。)闪存控制器还可以执行各种存储器管理功能,诸如但不限于,磨损均衡(分布写入操作以避免磨损否则将被重复写入的特定存储器块)和垃圾收集(在块满后,仅将有效的数据页移动到新的块,因此可以擦除并重新使用该满的块)。

非易失性存储器裸芯104可以包括任何合适的非易失性存储介质,包括nand闪存单元和/或nor闪存单元。存储器单元可以采取固态(例如,闪存)存储器单元的形式,并且可以是一次可编程的、几次可编程的或多次可编程的。存储器单元还可以是单级单元(slc)、多级单元(mlc)、三级单元(tlc)或者使用现在已知或稍后研发的其它存储器单元级技术。并且,存储器单元可以以二维或三维方式制造。

控制器102和非易失性存储器裸芯104之间的接口可以是诸如开关模式(togglemode)200、400或800的任何合适的快闪接口。在一个实施例中,存储系统100可以是基于卡的系统,诸如安全数字(sd)或微安全数字(micro-sd)卡。在替换性实施例中,存储系统100可以是嵌入式存储系统的部分。

虽然在图1a中所示的示例中,非易失性存储系统100(有时在本文称为存储模块)包括控制器102和非易失性存储器裸芯104之间的单个通道,本文描述的主题不限于具有单个存储器通道。例如,在一些nand存储系统架构中(诸如在图1b和图1c中的架构),取决于控制器能力,在控制器和nand存储器设备之间可能存在2、4、8个或更多的nand通道。在本文所描述的实施例的任何一个中,即使在附图中示出单个通道,在控制器和存储器裸芯之间也可以存在多于一个的通道。

图1b示出了包括多个非易失性存储系统100的存储模块200。这样,存储模块200可以包括与主机和与包括多个非易失性存储系统100的存储系统204接口的存储控制器202。存储控制器202和非易失性存储系统100之间的接口可以是诸如串行高级技术附件(sata)或外围组件接口快速(pcie)接口的总线接口。在一个实施例中,存储模块200可以是诸如在便携式计算设备(诸如膝上型计算机、和平板计算机)中找到的固态驱动器(ssd)。

图1c是示出层级存储系统的框图。层级存储系统250可以包括多个存储控制器202,该多个存储控制器202中的每一个控制相应的存储系统204。主机系统252可以经由总线接口访问在存储系统内的存储器。在一个实施例中,总线接口可以是nvme或以太网上的光纤通道(fcoe)接口。在一个实施例中,图1c中所示的系统可以是可由多个主机计算机访问的机架可安装大容量存储系统,诸如在数据中心或需要大容量存储的其它位置中找到的。

图2a是更详细地示出控制器102的组件的框图。控制器102包括与主机接口的前端模块108、与一个或多个非易失性存储器裸芯104接口的后端模块110、以及执行现在将要详细描述的功能的各种其它模块。模块可以采取以下形式:例如,被设计为与其它组件一起使用的封装功能硬件单元、可由(微)处理器或通常执行相关功能的特定功能的处理电路执行的程序代码(例如,软件或固件)的部分、或与更大系统接口的自包含硬件或软件组件。控制器102的模块可以包括在下面被更详细地讨论的块分配模块111,并且可以以硬件或软件/固件来实施。并且,正如从下面将会变得清楚,控制器102与用于执行本文讨论的和附图中示出的算法的硬件和/或软件配置一起,可以提供用于预测存储器的使用行为的装置以及用于基于预测的使用行为来分配块的装置。

再次参考控制器102的模块,缓冲器管理器/总线控制器114管理在随机存取存储器(ram)116中的缓冲器,并且控制控制器102的内部总线仲裁。只读存储器(rom)118存储系统引导代码。尽管在图2中示出为位于与控制器102分离,但在其它实施例中,ram116和rom118中的一个或这两者可以位于控制器内部。然而在其它实施例中,ram和rom的部分既可以位于控制器102的内部,也可以位于控制器102的外部。

前端模块108包括提供与主机或下一级存储控制器的电接口的主机接口120和物理层接口(phy)122。主机接口120的类型的选择可以取决于正使用的存储器的类型。主机接口120的示例包括但不限于:sata、sataexpress、sas、光纤通道、usb、pcie和nvme。主机接口120典型地促进数据、控制信号和定时信号的传递。

后端模块110包括对从主机接收的数据字节进行编码并且对从非易失性存储器读取的数据字节进行解码和错误校正的错误校正控制器(ecc)引擎124。命令定序器126生成要被发送到非易失性存储器裸芯104的诸如编程和擦除命令序列的命令序列。raid(独立驱动的冗余阵列)模块128管理raid奇偶校验的生成和故障数据的恢复。raid奇偶校验可以被用作对于正被写入到存储器设备104中的数据的附加级别的完整性防护。在一些情况下,raid模块128可以是ecc引擎124的部分。存储器接口130向非易失性存储器裸芯104提供命令序列,并且从非易失性存储器裸芯104接收状态信息。在一个实施例中,存储器接口130可以是诸如开关模式200、400或800接口的双数据速率(ddr)接口。快闪控制层132控制后端模块110的整体操作。

存储系统100还包括可以与控制器102接口的诸如外部电接口、外部ram、电阻器、电容器或其它组件的其它分立组件140。在替换性实施例中,物理层接口122、raid模块128、介质管理层138和缓冲器管理/总线控制器114中的一个或多个是在控制器102中不是必需的可选组件。

图2b是更详细地示出非易失性存储器裸芯104的组件的框图。非易失性存储器裸芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括被用来存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,其包括以二维和/或三维配置的nand闪存单元和/或nor闪存单元。外围电路141包括向控制器102提供状态信息的状态机152。非易失性存储器裸芯104还包括高速缓存数据的数据高速缓存156。

如上所述,存储系统可以具有被组织为块的存储器。(如本文所使用的,块是一组存储器单元。)随着时间的推移,写入到块中的数据可能无效(例如,由于主机数据删除和/或存储系统内部的数据转移)。垃圾收集是收集使用的存储器块的有效部分(忽略无效的部分)并将它们移动到新的块的一种处理。当块完全无效时,其被返回到空闲块池。可以通过保持每个块的“有效计数器”以跟踪块中的有效快闪管理单元的数量和/或通过编程/擦除周期计数器来监视块的耐久力来控制垃圾收集。垃圾收集算法可以通过检查哪个块具有最低的“有效计数器”、最高的编程/擦除循环计数器、和/或低于平均值的编程/擦除循环计数器,来选择哪个块应该接下来被“收集”。

垃圾收集可能会妨碍主机性能,因为它使用了从存储系统的控制器到存储器的接口并且还使用了在存储系统的控制器和存储器两者中的空间。在存储器和性能这两个方面,高效的垃圾收集非常有用。下面的实施例提供用于预测使用行为并选择将有效地改变垃圾收集的块分配方法的方法。也就是说,这些实施例可以在选择要分配的下一个块的处理中和/或在选择垃圾收集调度的处理中使用用户或主机的预测行为。通过在垃圾收集处理中使用自适应块分配,基于当前设备的使用场景,可以使用这些实施例来提供比先前设计更高效的方案。

现在转到附图,图3是用于高效垃圾收集的预测块分配的实施例的方法的流程图300。如图3所示,在本实施例中,存储系统100(例如,控制器102或块分配模块111)确定存储器正在第一使用场景还是第二使用场景中被使用(动作310)。响应于确定存储器104正在第一使用场景中被使用,存储系统100使用第一块分配方法(动作320)。相反,响应于确定存储器104正在第二使用场景中被使用,存储系统100使用第二块分配方法(动作330)。在一个实施例中,存储在第一使用场景中的数据比存储在第二使用场景中的数据更不频繁地被更新,并且第一块分配方法分配比第二块分配方法更接近于需要垃圾收集的块。在一个实施例中,一个块可能比另一个块更接近需要垃圾收集,如果那个块具有更接近于用于发起垃圾收集的阈值的参数(例如,有效快闪管理单元(fmu)计数器和/或编程/擦除周期计数器的值)。

例如,在被用于流传送(stream)视频的存储系统/存储器的块分配(极端使用情况:整个存储器104(例如快闪驱动器)被写入,然后立即被重写,一次又一次)与被用于在线更新事物的存储系统/存储器的块分配(使用情况:相同的逻辑块地址(lba)被一次又一次地写入,诸如当写入日志文件、进行维护或执行单个地址更新时)之间可以有明显的区别。在第一种使用场景(驱动器重写)中,因为所有的数据都是有效的,所以块分配可以以更“保守”的方式进行,并且通过垃圾收集操作没有释放块的系统增益。然而,在第二种使用场景中,因为只有少量快闪管理单元(fmu)是有效的,所以块分配可以以更“激进”的方式进行,并且通过垃圾收集操作具有对于快速恢复块的高激励。

因此,在第一使用场景(例如,“冷存储”)中写入的数据可以被分配给接近其垃圾收集发起阈值的块(例如,具有高编程擦除周期(pec)计数器的块)。即使这些区块已经接近垃圾收集发起阈值,因为数据不会被重新写入(或具有有限数量的重写),因此在近期内这些块需要垃圾收集的机会很小。加上,这些类型的块对存在多次重写(第二种使用场景)的情况并不理想,因为对接近其垃圾收集发起阈值的块的频繁重写将触发垃圾收集,如上所述,这可能不是优选的。

相反,在第二使用场景(例如,“多个重写”)中写入的数据可以被分配到更远离其垃圾收集发起阈值的块(例如,具有低编程擦除周期(pec)计数器的块或已经新被垃圾收集或提前被垃圾收集的块)。这种块比更接近其垃圾收集发起阈值的块(例如,具有高编程擦除周期(pec)计数器的块)更适于将被重新写入的数据,因为这样的块在到达垃圾收集发起阈值之前经受更多的重写。

如可以从这些示例中看出地,基于预测的使用行为选择块分配的方法有效地改变了何时发生垃圾收集,因为,分配的块相对更接近还是更远离需要垃圾收集影响了对该块的垃圾收集何时发生。如上所述,垃圾收集可能妨碍主机性能,因为它使用了从存储系统的控制器102到存储器104的接口并且还使用了在存储系统的控制器102、存储器104两者和/或ram116中的空间。使用基于使用行为的块分配可以在存储器和性能这两方面提供高效的垃圾收集。这些实施例还可以减少高效的垃圾收集操作所需的存储器过量拨备(over-provisioning),因为对于相同的数据输入,贯穿存储系统的寿命的分配的块的总数可能较低。这些实施例也可以增加在存储器104已满时的耐久性和性能。

虽然在上面的示例中只讨论了两种使用场景,但是应该注意到,在这些之间可以有许多使用场景。在一个实施例中,存储系统100被配置为基于用户的行为或使用情形在“保守”和“激进”之间动态地设置块分配方案。

有许多可以与这些实施例一起使用的替代方案。例如,可以以任何合适的方式进行确定存储器104正在第一使用场景还是第二使用场景(或任何数量的使用场景)中被使用。例如,在一个实施例中,通过从主机接收关于存储器104是正在第一使用场景中还是在第二使用场景中被使用的指示来执行确定。在另一实施例中,该确定由存储系统100执行(例如,利用被编程有算法的控制器102,该算法决定存储系统100/存储器104正在第一使用场景、第二使用场景等中被使用、或者两者/多者都不)。例如,在一个实施例中,控制器102比较多个写入命令与存储在存储系统100中的模式。将结合图4和图5更详细地讨论这个示例。

如图4中所示,当存储系统100离线时(例如,在生产期间,但是在一个实施例中,可以在存储模块100的寿命期间更新存储的模式),与各种写入场景相对应的写入模式可以被存储在存储器104(或存储系统100中的另一存储位置(例如,rom118))中(动作410)。例如,可以存储体现了优化的块分配可能涉及的模式的多个(n)模式(例如,第一块分配方法可以与模式中的一个相关联,并且第二块分配方法可以与模式中的另一个相关联)。对模式的成功分类可以得到针对该模式的块分配最优化。这些模式可以包括,例如,对于给定的使用场景预期用户要写入的逻辑块地址(lba)或lba范围。用户/主机的lba写入历史可以被记录并且可以与存储的模式中的每个相匹配。

图5是将来自由存储系统100接收的写入命令的写入地址与存储在存储系统100中的写入地址模式相匹配的一个实施例的方法的流程图500。在这个实施例中,当存储系统100在线时,执行这个流程图500中的动作。如图5中所示,在这个实施例中,存储系统100(例如,控制器102或块分配模块111)针对存储在存储系统100中的模式,连续地测试来自由存储系统100接收的多个写入命令的写入地址模式(动作510)。然后,存储系统100为每个存储的模式生成表示当前写入模式与存储的模式的匹配级别的得分(动作520)。因此,对于每个存储的模式,将生成表示模式与用户写入历史的匹配的得分。然后,存储系统100针对阈值检查匹配得分(动作530)。如果存在低匹配,则处理在动作510处再次开始。然而,如果存在高匹配,则存储系统100根据检测到的写入模式改变块分配方案(动作540)。因此,如果得分中的一个超过了某一阈值,则宣告成功匹配。因此,例如,如果模式中的一个描绘了不断写入相同的小范围的lba,并且用户正在不断地写1lba(或<100lba的范围),则这个模式可以被识别,并且指示可以被传递给块分配单元,然后该块分配单元将根据上面讨论的“单个地址重写”使用场景而行动。

应该注意,上述算法仅仅是示例,可以使用其它算法和方法。另外,许多其它替代方案可以与这些实施例一起使用。例如,除了上面讨论的匹配处理之外或者作为对上面讨论的匹配处理的替代方案,例如通过使用机器学习预测使用行为,可以在块分配处理中生成并使用可以表示模式与用户历史的匹配的“软”测量。在这个替代方案中,机器学习算法可以被用于学习用户的访问模式,并相应地做出关于垃圾收集策略(例如,激进的方案与保守的方案)的决定。可以使用支持向量机(svm)分类、神经网络、或诸如k-means和/或主成分分析(pca)方法的其它聚类方法来执行模式识别。可以使用监督(预校准)式或无监督式学习算法(即,可以在具有或不具有包括相关训练示例的地面实况标签(groundtruthlabel)的标记数据集合的情况下进行算法的训练/校准(或这甚至没有模型的预训练/校准,在此情况下,在设备的使用寿命期间直接进行分类(自适应学习)))。作为又一示例,存储系统100可通过计算单个地址更新与驱动器重写的比率来预测使用行为,并且相应地适配触发垃圾收集操作与主机写入的比率和/或动态垃圾收集操作与静态垃圾收集操作的比率。此外,代替存储系统100进行预测,主机可以进行预测并且将结果的指示发送到存储系统100。

此外,除了或代替基于使用行为来分配块,存储系统100可以通过调整用于在存储器104的块中发起垃圾收集的至少一个阈值参数来改变垃圾收集起始(initialization)的时间。阈值参数的示例包括但不限于,块中的有效单元的数量和块中执行的多个编程/擦除周期的数量。作为另一示例,可以通过提前在块中执行垃圾收集(例如,响应于预测将要被存储在块中的数据将具有频繁的更新)来改变垃圾收集起始的时间。

最后,如上所述,可以使用任何合适类型的存储器。半导体存储设备包括诸如动态随机存取存储器(“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-y平面中,得到具有在多个垂直堆叠的存储器平面上的元件的存储器元件的三维布置。三维存储元件的其它配置也可以构成三维存储器阵列。

通过非限制性示例的方式,在三维nand存储器阵列中,存储器元件可以被耦合到一起以形成在单个水平(例如,x-z)存储器设备级之内的nand串。可替换地,存储器元件可以被耦合到一起以形成横跨过多个水平存储器设备级的垂直nand串。可以预想其它三维配置,其中一些nand串将存储器元件包含在单个存储器级中的存储器元件,而其它串包含跨越多个存储器级的存储器元件。也可以以nor配置以及以reram配置设计三维存储器阵列。

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

然后,二维阵列可以被分离地形成然后封装在一起以形成具有多层存储器的非单片存储器设备。例如,可以通过在分离的基板上形成存储器级然后将存储器层一个在另一个之上堆叠来构造非单片堆叠存储器。基板可以在堆叠之前从存储器设备级减薄或移除,但是由于存储器设备级最初被形成在分离的基板上,所以得到的存储器阵列不是单片三维存储器阵列。另外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以被形成在分离的芯片上然后被封装在一起以形成堆叠芯片存储器设备。

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

本领域技术人员将认识到,本发明不限于所描述的二维或三维结构,而是覆盖如本文所述的和如本领域普通技术人员所理解的发明的精神和范围内的所有相关的存储器结构。

意图是前述详细描述被理解为发明可以采取的所选形式的例示,而不是作为本发明的定义。只有包括所有等同物的以下权利要求意图限定要求保护的发明的范围。最后,应该注意到,本文描述的任何实施例的任何方面可以单独使用或彼此组合使用。

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