使用数据版本控制来防止意外更新和删除的数据存储设备和方法与流程

文档序号:35709261发布日期:2023-10-12 10:05阅读:40来源:国知局
使用数据版本控制来防止意外更新和删除的数据存储设备和方法与流程
使用数据版本控制来防止意外更新和删除的数据存储设备和方法


背景技术:

1.主机可将数据存储在数据存储设备中并且稍后检索该数据。在许多情况下,主机写入的数据可能被该主机或其他主机更新或删除。这可能发生在例如非易失性快速存储器(nvme)环境中的共享命名空间中。
附图说明
2.图1a是一个实施方案的数据存储设备的框图。
3.图1b是示出一个实施方案的存储模块的框图。
4.图1c是示出一个实施方案的分级存储系统的框图。
5.图2a是示出根据一个实施方案的图1a所示的数据存储设备的控制器的部件的框图。
6.图2b是示出根据一个实施方案的图1a所示的存储器数据存储设备的部件的框图。
7.图3是一个实施方案的主机和数据存储设备的框图。
8.图4是一个实施方案的共享命名空间环境的框图。
9.图5a是没有数据版本控制的一个实施方案的逻辑到物理地址映射的图示。
10.图5b是具有数据版本控制的一个实施方案的逻辑到物理地址映射的图示。
11.图6是用于使用数据版本控制来防止意外更新和删除的一个实施方案的设备管理方法的流程图。
12.图7是用于使用数据版本控制来防止意外更新和删除的一个实施方案的主机辅助方法的流程图。
具体实施方式
13.概述
14.通过介绍的方式,以下实施方案涉及用于使用数据版本控制来防止意外更新和删除的数据存储设备和方法。在一个实施方案中,提供了一种数据存储设备,该数据存储设备包括易失性存储器、非易失性存储器和控制器。该控制器被配置为:从主机接收修改存储在该存储器中的数据的命令,其中该数据与由该数据存储设备创建的主机标识符相关联;确定该主机是否与该主机标识符相关联;响应于确定该主机与该主机标识符相关联,修改该数据;并且响应于确定该主机不与该主机标识符相关联,创建该数据的新版本而不修改该数据。
15.在一些实施方案中,该控制器被进一步配置为更新逻辑到物理地址表,以将逻辑地址与该数据和该数据的新版本两者相关联。
16.在一些实施方案中,经更新的逻辑到物理地址表中用于该逻辑地址的条目与用于该数据的第一物理存储器地址和用于该数据的新版本的第二物理存储器地址相关联。
17.在一些实施方案中,该控制器被进一步配置为:从该主机接收删除存储在该存储
器中的数据的命令;确定该主机是否与该主机标识符相关联;响应于确定该主机与该主机标识符相关联,删除该数据而不确认删除数据的该命令;并且响应于确定该主机不与该主机标识符相关联,在确认删除数据的该命令之后删除该数据。
18.在一些实施方案中,该控制器被进一步配置为更新逻辑到物理地址表以反映该数据已被删除。
19.在一些实施方案中,该控制器被进一步配置为用该主机标识符来标记该数据。
20.在一些实施方案中,该控制器被进一步配置为用版本标识符来标记该数据,并且为该数据的新版本创建新的版本标识符。
21.在一些实施方案中,该控制器被进一步配置为与非易失性快速存储器(nvme)环境中的多个主机通信。
22.在一些实施方案中,该存储器的逻辑区域被配置为作为共享命名空间在该多个主机之间共享。
23.在一些实施方案中,存储器包括三维存储器。
24.在另一实施方案中,提供了一种在数据存储设备中执行的方法,该数据存储设备包括存储数据的存储器。该方法包括:从主机接收修改该数据的命令;确定该数据最初是否由该主机存储;响应于确定该数据最初由该主机存储,修改该数据;并且响应于确定该数据最初并非由该主机存储,创建该数据的新版本而不修改该数据。
25.在一些实施方案中,该方法还包括更新逻辑到物理地址表,以将逻辑地址与该数据和该数据的新版本两者相关联。
26.在一些实施方案中,该方法还包括:从该主机接收删除该数据的命令;确定该数据最初是否由该主机存储;响应于确定该数据最初由该主机存储,删除该数据而不确认删除该数据的该命令;并且响应于确定该数据最初并非由该主机存储,在确认删除数据的该命令之后删除该数据。
27.在一些实施方案中,该方法还包括更新逻辑到物理地址表以反映该数据已被删除。
28.在一些实施方案中,该方法还包括用主机标识符来标记该数据。
29.在一些实施方案中,该主机标识符用于确定该数据最初是否由该主机存储。
30.在一些实施方案中,该方法还包括用版本标识符来标记该数据;并且为该数据的新版本创建新的版本标识符。
31.在一些实施方案中,该数据存储设备被配置为与非易失性快速存储器(nvme)环境中的多个主机通信。
32.在一些实施方案中,该存储器的逻辑区域被配置为作为共享命名空间在该多个主机之间共享。
33.在另一实施方案中,提供了一种数据存储设备,该数据存储设备包括:存储器;用于从主机接收修改存储在该存储器中的数据的命令的装置,其中该数据与由该数据存储设备创建的主机标识符相关联;用于确定该主机是否与该主机标识符相关联的装置;用于响应于确定该主机与该主机标识符相关联而修改该数据的装置;以及用于响应于确定该主机不与该主机标识符相关联,创建该数据的新版本而不修改该数据的装置。
34.其他实施方案是可行的,并且实施方案中的每个可单独使用或组合在一起使用。
因此,现在将参考附图描述各种实施方案。
35.实施方案
36.下面的实施方案涉及一种数据存储设备(dsd)。如本文所述,“数据存储设备”是指存储数据的设备。csd的示例包含(但不限于)硬盘驱动器(hdd)、固态驱动器(ssd)、磁带驱动器、混合驱动器等。下面提供了示例dsd的详细信息。
37.在图1a至图1c中示出适用于实现这些实施方案的各方面的数据存储设备。图1a是示出根据本文所述的主题的一个实施方案的数据存储设备100的框图。参考图1a,数据存储设备100包括控制器102和可由一个或多个非易失性存储器裸片104组成的非易失性存储器。如本文所述,术语裸片是指在单个半导体基板上形成的非易失性存储器单元的集合,以及用于管理那些非易失性存储器单元的物理操作的相关联的电路。控制器102与主机系统进行交互,并且将用于读取操作、编程操作和擦除操作的命令序列传输到非易失性存储器裸片104。
38.控制器102(其可以是非易失性存储器控制器(例如,闪存、电阻随机存取存储器(reram)、相变存储器(pcm)或磁阻随机存取存储器(mram)控制器))可采用以下形式:例如,处理电路、微处理器或处理器,以及存储可由(微)处理器执行的计算机可读程序代码(例如,固件)的计算机可读介质、逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有硬件和/或固件,以执行下文描述并且在流程图中示出的各种功能。另外,示出为在控制器内部的一些部件可也存储在控制器外部,并且可以使用其他部件。此外,短语“操作地与
……
通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信、通过一个或多个部件通信,其可在本文中示出或未示出。
39.如本文所用,非易失性存储器控制器是管理存储在非易失性存储器上的数据并且与主机诸如计算机或电子设备通信的设备。除了本文描述的特定功能外,非易失性存储器控制器可以具有各种功能。例如,非易失性存储器控制器可以对非易失性存储器进行格式化以确保存储器正在正确操作,标出坏的非易失性存储器单元,并且分配备用单元以替代将来的故障单元。备用单元中的一些部分可以用来容纳固件以操作非易失性存储器控制器并且实现其他特征。在操作中,当主机需要从非易失性存储器读取数据或向非易失性存储器写入数据时,它可与非易失性存储器控制器通信。如果主机提供要读取/写入数据的逻辑地址,那么非易失性存储器控制器可以将从主机接收的逻辑地址转换为非易失性存储器中的物理地址。(另选地,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并且重用完整块)。
40.非易失性存储器裸片104可包括任何合适的非易失性存储介质,包括电阻随机存取存储器(reram)、磁阻随机存取存储器(mram)、相变存储器(pcm)、nand闪速存储器单元和/或nor闪速存储器单元。存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是可一次编程、可数次编程或可多次编程的。存储器单元还可以是单级单元(slc)、多级单元(mlc)、三级单元(tlc),或者使用现在已知或之后开发的其他存储器单元级技术。另外,存储器单元可以二维方式或三维方式制造。
41.位于控制器102和非易失性存储器裸片104之间的接口可为任何合适的闪存接口,
诸如切换模式200、400或800。在一个实施方案中,数据存储设备100可为基于卡的系统,诸如安全数字卡(sd)或微型安全数字(微型sd)卡。在另选的实施方案中,数据存储设备100可为嵌入式数据存储设备的一部分。
42.虽然在图1a所示的示例中,数据存储设备100(本文有时称为存储模块)包括控制器102和非易失性存储器裸片104之间的单个信道,但是本文描述的主题不限于具有单个存储器信道。例如,在一些存储系统架构(诸如图1b和图1c中所示的架构)中,控制器和存储器设备之间根据控制器的能力可以存在2个、4个、8个或更多个存储器信道。在本文描述的任何实施方案中,即使在附图中示出单个信道,控制器和存储器裸片之间也可以存在超过一个单个信道。
43.图1b示出了包括多个非易失性数据存储设备100的存储模块200。这样,存储模块200可包括存储控制器202,该存储控制器与主机以及包括多个数据存储设备100的数据存储设备204进行交互。存储控制器202和数据存储设备100之间的接口可以是总线接口,诸如串行高级技术附件(sata)、外围部件快速互连(pcie)接口或双倍数据率(ddr)接口。在一个实施方案中,存储模块200可以是诸如在服务器pc或便携式计算设备诸如膝上型计算机和平板电脑中存在的固态驱动器(ssd)或非易失性双列直插式存储器模块(nvdimm)。
44.图1c是示出分级存储系统的框图。分级存储系统250包括多个存储控制器202,该多个存储控制器中的每个存储控制器控制相应的数据存储设备204。主机系统252可经由总线接口存取存储系统250内的存储器。在一个实施方案中,总线接口可以是非易失性存储器快速(nvme)或以太网光纤信道(fcoe)接口。在一个实施方案中,图1c所示的系统可以是机架可安装的大容量存储系统,该机架可安装的大容量存储系统能够由多个主机计算机存取,诸如在数据中心中或在需要大容量存储的其他位置中可以找到。
45.图2a是更详细地示出控制器102的示例性部件的框图。控制器102包括与主机进行交互的前端模块108、与一个或多个非易失性存储器裸片104进行交互的后端模块110、以及执行现在将详细描述的功能的各种其他模块。模块可以采用以下形式:例如,设计用于搭配其他部件使用的封装功能硬件单元、能够由通常执行相关功能中的特定功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件),或者与更大系统进行交互的独立硬件或软件部件。此外,用于执行功能的“装置”可以用本文所述的用于控制器的至少任何结构来实现,并且可以是纯硬件或硬件与计算机可读程序代码的组合。
46.再次参考控制器102的模块,缓冲区管理/总线控制器114管理随机存取存储器(ram)116中的缓冲区,并且控制控制器102的内部总线仲裁。只读存储器(rom)118存储系统引导代码。虽然图2a所示为与控制器102分开定位,但在其他实施方案中,ram 116和rom 118中的一者或两者可以定位在控制器内。在又其他实施方案中,ram和rom的部分可位于控制器102内和控制器外部。
47.前端模块108包括提供与主机或下一级存储控制器的电接口的主机接口120和物理层接口(phy)122。可以取决于所使用的存储器的类型来选择主机接口120的类型。主机接口120的示例包括但不限于sata、sata express、串行附接小型计算机系统接口(sas)、光纤信道、通用串行总线(usb)、pcie和nvme。主机接口120通常有利于传送数据、控制信号和定时信号。
48.后端模块110包括错误校正代码(ecc)引擎124,该ecc引擎对从主机接收的数据字
节进行编码,并且对从非易失性存储器读取的数据字节进行解码和错误校正。命令定序器126生成命令序列,诸如编程命令序列和擦除命令序列,以传输到非易失性存储器裸片104。raid(独立驱动器冗余阵列)模块128管理raid奇偶校验的生成和失败数据的恢复。raid奇偶校验可用作写入存储器设备104中的数据的附加级的完整性保护。在一些情况下,raid模块128可以是ecc引擎124的一部分。存储器接口130向非易失性存储器裸片104提供命令序列并从非易失性存储器裸片104接收状态信息。在一个实施方案中,存储器接口130可以是双倍数据速率(ddr)接口,诸如切换模式200、400或800接口。闪存控制层132控制后端模块110的整体操作。
49.数据存储设备100还包括其他分立部件140,诸如外部电接口、外部ram、电阻器、电容器或可与控制器102进行交互的其他部件。在另选的实施方案中,物理层接口122、raid模块128、媒体管理层138和缓冲区管理/总线控制器114中的一者或多者是控制器102中不需要的任选的部件。
50.图2b是更详细地示出非易失性存储器裸片104的部件的框图。非易失性存储器裸片104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括采用二维配置和/或三维配置的reram、mram、pcm、nand闪速存储器单元和/或nor闪速存储器单元。非易失性存储器裸片104还包括高速缓存数据的数据高速缓存156。外围电路141包括提供状态信息到控制器102的状态机152。
51.再次返回图2a,闪存控制层132(其在本文中将被称为闪存转换层(ftl),或者更一般地被称为“媒体管理层”,由于存储器可以不是闪存)处理闪存错误并与主机进行交互。具体地讲,ftl(其可以是固件中的算法)负责存储器管理的内部并将来自主机的写入转换为到存储器104的写入。ftl可能是需要的,因为存储器104可能具有有限的耐久性,可能仅写入多个页面,和/或可能不写入(除非其作为块被擦除)。ftl理解存储器104的这些潜在限制,这些限制可能对主机不可见。因此,ftl尝试将来自主机的写入转换为到存储器104中的写入。
52.ftl可包括逻辑到物理地址(l2p)映射以及分配的高速缓存存储器。这样,ftl将来自主机的逻辑块地址(“lba”)转换为存储器104中的物理地址。ftl可包括其他特征,诸如但不限于断电恢复(使得ftl的数据结构可在突然电力损失的情况下恢复)和损耗均衡(使得跨存储器块的损耗均匀,以防止某些块过度损耗,该过度损耗将导致更大机会出现故障)。
53.再次回到附图,图3是一个实施方案的主机300和数据存储设备100的框图。主机300可采用任何合适的形式,包括但不限于计算机、移动电话、平板电脑、可穿戴设备、数字视频记录器、监视系统等。在该实施方案中,主机300(此处,计算设备)包括处理器330和存储器340。在一个实施方案中,存储在主机存储器340中的计算机可读程序代码将主机处理器330配置为执行本文所描述的动作。因此,由主机300执行的动作在本文中有时被称为由在主机300上运行的应用(计算机可读程序代码)执行。
54.如上所述,主机300可以将数据存储在数据存储设备100中并且稍后检索该数据。在许多情况下,主机100写入的数据可能被该主机100或其他主机更新或删除。这可能发生在例如nvme共享命名空间环境中,其中多个主机可以访问共享命名空间并且可以为相同逻辑区域创建它们自己的版本,也允许访问其他版本。此类环境在图4中示出。然而,应当注
意,这些实施方案可用于其他环境中,并且除非在权利要求中明确记载,否则不应将共享命名空间环境解读到权利要求中。
55.如图4所示,该数据存储设备400包括两个nvme控制器,每个控制器连接到不同的pcie端口以连接到主机300。第一nvme控制器与命名空间标识符(nsid)1和2相关联,并且第二nvme控制器与命名空间标识符(nsid)2和3相关联。nsid 1具有指定为命名空间(ns)a的存储器区域104,nsid 2具有指定为命名空间ns b的存储器区域104,并且nsid 3具有指定为命名空间ns c的存储器区域104。由于ns b由两个主机共享,因此每个主机都可以将数据写入命名空间,以及更改或删除该数据。
56.可能存在用户可能想要恢复到已更新数据的较旧版本的情况。例如,如果数据是使用更改而更新的文档,则用户可能希望查看该文档在作出更改之前的原始版本。以下实施方案可用于允许主机访问数据的先前版本,该先前版本可能已被该主机或某个其他主机更新。更具体地,如果多个主机更改相同的逻辑区域,并且所有版本可供所有其他主机访问,则数据存储设备可以维持对共享名称空间中的数据的版本控制。
57.更一般地,利用这些实施方案,数据存储设备100可以通过促成数据的设备侧版本控制来防止数据的意外更新/删除。这可以通过从主机300获得关于是否允许对被写入的数据进行版本控制的输入或者通过基于设备使用在设备100本身上决定是否启用数据版本控制来处理。数据存储设备100中的控制器102可以以列表的形式在逻辑到物理地址表中创建附加层,以适应用于数据的不同版本的不同物理位置,从而仅为已在启用版本控制的情况下改变的那些区域动态地添加额外空间。
58.在一个实施方案中,对需版本控制的数据进行标记,因此数据存储设备100知晓需要对该数据进行特殊处理(例如,以用于数据版本控制和/或意外删除保护)。标记可以由数据存储设备100或由主机300完成。下面讨论这两种替代方案。应当注意,这些替代方案可以单独地或彼此结合地使用。还应当注意,在一个实施方案中,所有主机都有权访问数据的所有版本。主机可以知晓正在发生的版本控制,并且因此可以知晓一些额外空间正被其他副本(版本)占据。
59.首先转向由数据存储设备100完成标记的实施方案,在该实施方案中,数据存储设备100用“主机id”和/或“版本id”来标记数据以用于数据的版本控制。当相同的主机更新数据时,这将是典型的覆写。然而,当另一主机尝试更新由某一其他主机写入的某一数据时,其得到是否创建新版本同时保留由其他主机写入的较旧版本的提示。在其他主机尝试删除该数据的情况下,将提示另一主机写入了该数据,以及他是否仍然想要删除该数据。现在将结合图6中的流程图600更详细地描述该实施方案。
60.如图6所示,在该实施方案中,当数据存储设备100从主机300接收到数据以存储到存储器104中时,控制器102用主机的标识符(主机id)和数据的版本标识符(版本id)来标记该数据(605)。当数据存储设备100接收到更改数据的命令时,控制器102确定该命令是删除数据(610)还是修改数据(630)的命令。(除了数据版本控制之外或代替数据版本控制,还可以使用意外删除预防,因为两者都可以由被标记为“重要”的数据来触发。)
61.如果该命令是删除数据,则控制器102确定该命令是否来自与最初写入数据的主机相同的主机(615)。如果是相同的主机,则数据存储设备100假设该主机知道它正在做什么,并且控制器102删除该数据而无需首先要求确认(620)。如果不同的主机正在请求删除
数据,则控制器102在删除数据之前请求该主机进行确认(625)。这起到双重检查的作用,并确保该主机真正想要继续进行删除。在数据被删除之后,控制器102更新逻辑到物理地址表。
62.如果该命令是修改数据,则控制器102确定该命令是否来自与最初写入数据的主机相同的主机(635)。如果是相同的主机,则数据存储设备100假设该主机知道它正在做什么,并且控制器102用新数据覆写旧数据(640)。如果不同的主机正在请求修改数据,则控制器102确定该主机是否正在尝试创建数据的新版本(645)。如果不是,则覆写该数据(640)。然而,如果主机正在尝试创建数据的新版本,则控制器102创建该数据的新版本并将其存储在存储器104中(650)。控制器102还更新逻辑到物理地址表以适应新版本(650)。
63.如上所述,在另一实施方案中,主机(用户)将数据标记为“重要”,以防止意外更新/删除。在该实施方案中,当相同的主机对该数据做出任何更改时,为其提供更新(覆写)该文件或创建该文件的新版本的选项。当不同的主机尝试对该数据做出任何更改时,其将被提示是否保留较旧版本。这样,无论主机如何,将给出要求对删除进行确认的提示,因为主机之前将数据标记为重要的。将结合图7中的流程图700更详细地描述该实施方案。
64.如图7所示,在该实施方案中,识别受制于防更改技术的数据是主机的责任而不是数据存储设备100的责任。因此,如图7所示,主机首先标记其认为重要的数据,然后将该数据发送到数据存储设备100以存储在存储器104中(705)。当数据存储设备100接收到更改数据的命令时,控制器102确定该命令是删除数据(710)还是修改数据(720)的命令。
65.如果该命令是删除数据,则控制器102在删除数据之前请求该主机进行确认(715)。由于该数据被指定为重要的,因此这充当双重检查的作用并且确保该主机真正想要继续进行删除。一旦接收到确认,控制器102就删除该数据并更新逻辑到物理地址表(720)。
66.如果该命令是修改数据,则控制器102确定该主机是否正在尝试创建该数据的新版本(730)。如果不是,则覆写该数据(735)。然而,如果主机正在尝试创建数据的新版本,则控制器102创建该数据的新版本并将其存储在存储器104中(740)。控制器102还更新逻辑到物理地址表以适应新版本。因此,在闪存转换层(ftl)模块管理链表中的逻辑到物理地址转换页面更新/删除的情况下,可能需要来自数据存储设备100的后端支持。
67.为了在任何上述实施方案中处理对数据的版本控制的后端支持,可以对逻辑到物理地址映射表进行修改以包括关于数据版本的信息。考虑主机写入逻辑块地址(lba)0-1000,然后重写lba 500-700(“版本1”)的示例。控制器102将较旧的lba 500-700维护为“版本0”(用以维护lba版本的另一可切换地址转换(sat)层),而不是像通常那样使其无效。任何主机可访问数据(例如,文档)的任何版本,因为控制器102知晓数据文档的不同版本。还允许主机删除文档的特定版本,这也可能需要额外的确认来防止意外删除。
68.图5a和图5b示出了逻辑到物理地址映射,其示出了支持数据版本控制的后端逻辑到物理(l2p)地址映射。图5a示出了典型的l2p映射,其中每个lba范围与存储器104中的一个物理地址相关联。图5b示出如何在后端中维护l2p映射以适应数据版本控制。如图5b所示,该表介绍了l2p映射的另一层,其仅为经历版本控制的特定逻辑区域创建条目。该表利用链表,该链表包含其中存在数据的不同版本的不同物理区域。该列表允许版本条目及其物理位置的动态添加和删除。
69.相同逻辑区域的不同版本可以用主机id和/或版本id来标记。l2p映射的附加层可
仅用于更改的逻辑区域(经版本控制的数据),在这种情况下,逻辑区域中未经版本控制的其余部分保持不变,如在典型系统中那样。任何主机都可以根据主机id和/或版本id从数据存储设备100访问数据。可以提供多种数据访问组合。在一些情况下,主机还可提供用于某些逻辑数据的特定密钥,其中可保护某些版本免受某些主机影响。如果数据存储设备100允许主机通过仅分析已存储在控制块中的lba范围中的lba版本来比较版本并提供差异以避免实际比较整个数据,则存在额外的优点。
70.存在许多与这些实施方案相关联的优点。例如,这些实施方案可用于通过创建新版本来防止数据的意外更新,在数据被标记为重要的情况下通过要求删除确认来防止意外删除,以及对数据进行版本控制以允许任何主机访问共享命名空间中的不同数据版本。此外,通过这些实施方案,可以仅将两个版本的数据中的差异添加到存储装置中作为更新的一部分(该差异可以在存储为控制数据的逻辑区域方面)。此外,通过这些实施方案,数据存储设备100中可存在用于维护数据的版本以促成该特征的最小开销。此外,主机可提供版本中的差异,其中可通过在sat上进行简单查找而返回不同的lba区域,而无需实际数据比较。
71.如上所述,这些实施方案对于nvme共享命名空间环境可能是非常有益的,因为在那些环境中,多个主机可访问并更改/删除共享逻辑存储器区域中的数据。通过这些实施方案,可以使用版本控制和确认提示来防止数据的意外更新或删除。此外,这些实施方案可用于其中数据存储设备(例如,零售设备)存在人类用户的环境中或诸如汽车、物联网或工业环境之类的其他环境中。例如,主机id/文件id可与版本控制启用/禁用一起用于汽车/企业用例中以理解环境中的要求而无需手动(人工)干预。又如,如果启用版本控制,则版本id可以与特定主机(主机id)相关联,从而将不需要手动干预。
72.最后,如上所述,可以使用任何合适类型的存储器。半导体存储器设备包括易失性存储器设备,诸如动态随机存取存储器(“dram”)或静态随机存取存储器(“sram”)设备,非易失性存储器设备,诸如电阻式随机存取存储器(“reram”)、电可擦除可编程只读存储器(“eeprom”)、闪存存储器(也可以被认为是eeprom的子集)、铁电随机存取存储器(“fram”)和磁阻随机存取存储器(“mram”),以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以nand配置或nor配置进行配置。
73.该存储器设备可由无源元件和/或有源元件以任何组合形成。举非限制性示例而言,无源半导体存储器元件包括reram设备元件,该无源半导体存储器元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。进一步举非限制性示例而言,有源半导体存储器元件包括eeprom和闪速存储器设备元件,该有源半导体存储器元件在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
74.多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独访问。以非限制性示例的方式,nand配置中的闪存存储器设备(nand存储器)通常包含串联连接的存储器元件。nand存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并作为组被访问的多个存储器元件构成。另选地,可配置存储器元件,使得每个元件可被单独访问,例如nor存储器阵列。nand存储器配置和nor存储器配置为示例,并且可以其他方式配置存储器元件。
75.位于衬底内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二
维存储器结构或三维存储器结构。
76.在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),该平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是存储器元件的层在其之上或之中形成的晶圆,或者其可以是在存储器元件形成后附接到其的承载基板。作为非限制性示例,衬底可包括半导体,诸如硅。
77.存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规配置或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。
78.三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。
79.作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中每一列均具有多个存储器元件。列可以二维配置例如在x-z平面中布置,从而得到存储器元件的三维布置,其中元件在多个竖直堆叠的存储器平面上。三维存储器元件的其他配置也可构成三维存储器阵列。
80.举非限制性示例而言,在三维nand存储器阵列中,存储器元件可耦接在一起以在单个水平(例如,x-z)存储器设备级内形成nand串。另选地,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直nand串。可设想到其他三维配置,其中一些nand串包含在单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可以nor配置以及reram配置来设计。
81.通常,在单片三维存储器阵列中,一个或多个存储器设备级在单个衬底上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个衬底内的一个或多个存储器层。作为非限制性示例,衬底可包括半导体,诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。
82.然后,可单独形成二维阵列,并且然后封装在一起以形成具有多个存储器层的非单片存储器设备。例如,非单片的堆叠存储器可通过在单独的衬底上形成存储器级并且然后将存储器级堆叠在彼此之上而构造。可在堆叠前将衬底减薄或从存储器设备级移除,但由于存储器设备级在单独的衬底上方初始形成,因此所得的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,然后封装在一起以形成堆叠的芯片存储器设备。
83.通常需要相关联的电路来操作存储器元件并与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。
84.本领域的技术人员将认识到,本发明不限于所述的二维和三维结构,但涵盖如本
文所述的并且如本领域的技术人员所理解的本发明的实质和范围内的所有相关存储器结构。
85.预期将前面的详细描述理解为本发明可以采用的选定形式的说明,而不是作为本发明的定义。预期只有以下权利要求(包括所有等同物)限定要求保护的本发明的范围。最后,应当注意,本文所述的任何实施方案的任何方面均可单独使用或彼此组合使用。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1