操作存储设备的方法和使用该方法操作存储系统的方法与流程

文档序号:30059869发布日期:2022-05-17 21:35阅读:216来源:国知局
操作存储设备的方法和使用该方法操作存储系统的方法与流程
操作存储设备的方法和使用该方法操作存储系统的方法
1.相关申请的交叉引用
2.本技术要求于2020年10月26日在韩国知识产权局(kipo)提交的韩国专利申请no.10-2020-0139100的优先权,其内容通过引用全部并入本文。
技术领域
3.示例实施例总体上涉及半导体集成电路,更具体地,涉及操作存储设备的方法以及使用操作存储设备的方法操作存储系统的方法。


背景技术:

4.特定类型的数据存储设备包括一个或更多个半导体存储器件。这样的数据存储设备的示例包括固态驱动器(ssd)。与硬盘驱动器(hdd)相比,这些类型的数据存储设备可以具有各种设计和/或性能优势。潜在优势的示例包括没有移动机械部件、更高的数据访问速度、稳定性、耐久性和/或低功耗。近年来,各种系统(例如,膝上型计算机、汽车、飞机、无人机等)都采用ssd进行数据存储。
5.最近,包括半导体存储器件的一些数据存储设备支持命名空间功能。例如,为了支持主机设备的操作,可以将利用一个物理设备实现的数据存储设备划分为多个逻辑设备(例如,命名空间)。然后,主机设备可以基于命名空间管理数据。


技术实现要素:

6.本公开的至少一个示例实施例提供了一种操作存储设备的方法,该存储设备支持命名空间功能并能够有效地执行数据迁移操作。
7.本公开的至少一个示例实施例提供了一种使用操作存储设备的方法来操作存储系统的方法。
8.根据示例实施例,在操作存储设备的方法中,存储设备包括经由主机设备彼此连接的第一存储设备和第二存储设备,接收针对第一存储设备中包括的第一命名空间的数据迁移请求。在第二存储设备中生成第二命名空间。第二命名空间对应于第一命名空间。设置用于执行与数据迁移请求相对应的数据迁移操作的指针表。基于指针表将第一数据和第二数据迁移到第二命名空间。第一数据被存储在第一命名空间中。第二数据被存储在第一存储设备中包括的第一缓冲存储器中并且对应于第一命名空间。基于数据迁移操作被执行,第二数据直接从第一缓冲存储器发送到第二命名空间。
9.根据示例实施例,在一种操作包括主机设备、第一存储设备和第二存储设备的存储系统的方法中,第一存储设备和第二存储设备经由主机设备彼此连接。在主机设备访问第一存储设备中包括的第一命名空间时,对第一命名空间执行数据迁移操作。在数据迁移操作完成之后,由主机设备访问第二存储设备中包括的第二命名空间。基于执行数据迁移操作,生成针对第一命名空间的数据迁移请求。在第二存储设备中生成第二命名空间。第二命名空间对应于第一命名空间。设置用于执行数据迁移操作的指针表。基于指针表将第一
数据和第二数据迁移到第二命名空间。第一数据被存储在第一命名空间中。第二数据被存储在第一存储设备中包括的第一缓冲存储器中并且对应于第一命名空间。基于数据迁移操作被执行,第二数据直接从第一缓冲存储器发送到第二命名空间。
10.根据示例实施例,在一种操作存储设备的方法中,存储设备包括经由主机设备彼此连接的第一存储设备和第二存储设备,在由主机设备执行的应用或虚拟机访问第一存储设备中包括的第一命名空间时,从主机设备接收第一命名空间的数据迁移请求。基于数据迁移请求在第二存储设备中生成第二命名空间。第二命名空间对应于第一命名空间,并且具有的容量大于或等于第一命名空间的容量。基于数据迁移请求设置用于执行数据迁移操作的指针表。基于指针表将第一数据和第二数据迁移到第二命名空间。第一数据被存储在第一命名空间中。第二数据被存储在第一存储设备中包括的第一缓冲存储器中并且对应于第一命名空间。在设置指针表时,在第一个命名空间中设置第一指针、第二指针和第三指针。第一指针、第二指针和第三指针指示连续存储在第一命名空间中的第一数据和第二数据的位置。在第二命名空间中设置第一目标指针、第二目标指针和第三目标指针。第一目标指针、第二目标指针和第三目标指针指示连续存储在第二命名空间中的第一数据和第二数据的位置。基于数据迁移操作被执行,将第一数据复制到第二命名空间,使得第一数据对应于第一目标指针和第二目标指针,并且将第二数据复制到第二命名空间,使得第二数据对应于第二目标指针和第三目标指针。基于数据迁移操作被执行,第二数据不是从第一缓冲存储器冲刷到第一命名空间,而是在不经过第一命名空间的情况下直接从第一缓冲存储器发送到第二命名空间。
附图说明
11.通过以下结合附图的详细描述,将更清楚地理解说明性的、非限制性的示例实施例。
12.图1是示出根据示例实施例的操作存储设备的方法的流程图。
13.图2是示出根据示例实施例的存储设备和包括存储设备的存储系统的框图。
14.图3是示出根据示例实施例的存储设备中包括的存储控制器的示例的框图。
15.图4是示出根据示例实施例的存储设备中包括的非易失性存储器的示例的框图。
16.图5a、图5b、图6a和图6b是根据示例实施例的用于描述在存储设备中生成、设置和管理命名空间的操作的图。
17.图7a、图7b和图7c是用于描述图1中的接收数据迁移请求的示例和生成第二命名空间的示例的图。
18.图8是示出图1中的设置指针表的示例的流程图。
19.图9a和图9b是用于描述设置图8的指针表的操作的图。
20.图10是示出图1中的将第一数据和第二数据迁移到第二命名空间的示例的流程图。
21.图11a和图11b是用于描述图10的将第一数据和第二数据迁移到第二命名空间的操作的图。
22.图12a和图12b是用于描述图10的将第一数据和第二数据迁移到第二命名空间的示例的图。
23.图13是示出根据示例实施例的操作存储设备的方法的流程图。
24.图14是示出根据示例实施例的操作存储系统的方法的流程图。
25.图15是示出根据示例实施例的包括存储系统的数据中心的框图。
具体实施方式
26.将参考示出了实施例的附图更全面地描述各种示例实施例。然而,本公开可以以许多不同的形式实现,并且不应被解释为限于本文阐述的实施例。在本技术中,相同的附图标记指代相同的元件。
27.图1是示出根据示例实施例的操作存储设备的方法的流程图。
28.参照图1,根据示例实施例的操作存储设备的方法可以通过经由主机设备彼此连接的第一存储设备和第二存储设备来执行。第一存储设备和第二存储设备中的每一个可以包括存储控制器、多个非易失性存储器和缓冲存储器(或高速缓存存储器)。将参考图2描述存储设备和包括存储设备的存储系统的详细配置。
29.在根据示例实施例的操作存储设备的方法中,接收针对第一存储设备中包括的第一命名空间的数据迁移请求(s100)。例如,可以从主机设备向第一存储设备和第二存储设备提供数据迁移请求。例如,在访问第一存储设备时(例如,在主机设备访问第一存储设备时),可以实时和/或在线地(或在运行时期间)提供数据迁移请求。
30.一个命名空间可以表示一个逻辑分区和/或存储空间。通常,具有相对高的存储容量的一个存储设备可以被划分为多个命名空间,并且所有的多个命名空间可以物理地包括在同一存储设备中。每个命名空间可以用作分离的和/或单独的存储空间。例如,第一存储设备还可以包括除第一命名空间之外的至少一个命名空间。
31.基于数据迁移请求,在第二存储设备中生成或创建与第一命名空间相对应的第二命名空间(s200)。换言之,数据迁移请求可以是对数据迁移操作的请求,在该数据迁移操作中,第一存储设备中包括的第一命名空间被移动或复制到第二存储设备中包括的第二命名空间。第一命名空间可以被称为原始命名空间或源命名空间,第二命名空间可以被称为目标命名空间或目的命名空间。
32.设置用于执行与数据迁移请求相对应的数据迁移操作的指针表(s300)。例如,指针表可以包括对应于第一命名空间的指针(例如,原始指针或源指针)和对应于第二命名空间的目标指针(或,目的指针)。将参照图8详细描述操作s300。
33.基于指针表将第一数据和第二数据迁移到第二命名空间(s400)。第一数据被存储在第一命名空间中。第二数据被存储在第一存储设备中包括的第一缓冲存储器中,并且对应于第一命名空间。将参照图10详细描述操作s400。
34.在一些示例实施例中,第一数据和第二数据可以一次(或同时)迁移到第二命名空间。换句话说,在不需要任何附加请求的情况下,第一数据和第二数据可以基于在s100中接收到的一个数据迁移请求迁移到第二命名空间。
35.在一些示例实施例中,第一数据可以是已经存储在第一命名空间中的冷数据,第二数据可以是要从第一缓冲存储器冲刷(flush)到第一命名空间的热数据。在下文中,不依据数据访问的频率和/或数据更新的次数来区分或区别热数据和冷数据。相反,可以依据数据被存储的位置来区分热数据和冷数据。例如,从主机设备提供的并且对应于第一命名空
间的数据可以经由第一缓冲存储器存储在第一命名空间中。在要被存储在第一命名空间中的数据之中,已经从第一缓冲存储器冲刷到第一命名空间的数据可以被定义为冷数据,还没有被冲刷到第一命名空间并且留在第一缓冲存储器中的数据可以被定义为热数据。
36.在一些示例实施例中,当执行数据迁移操作时,第二数据可以直接从第一缓冲存储器发送或转移到第二命名空间。例如,当执行数据迁移操作时,第二数据可以不从第一缓冲存储器冲刷到第一命名空间,并且可以不经过第一命名空间而直接从第一缓冲存储器发送到第二命名空间。
37.在一些示例实施例中,如上所述,第一存储设备和第二存储设备彼此可以不直接连接,而是可以经由主机设备彼此连接。因此,将第二数据直接从第一缓冲存储器发送到第二命名空间的操作可以表示:第二数据在不需要经过主机设备中包括的主机存储器的情况下经由主机设备从第一缓冲存储器发送到第二命名空间而不是第二数据在不需要经过任何其他组件的情况下直接从第一缓冲存储器发送到第二命名空间。
38.在一些示例实施例中,第一存储设备和第二存储设备可以基于快速非易失性存储器(nvme)协议进行操作。nvme可以是寄存器级的接口,其执行诸如固态驱动器(ssd)的存储设备与主机软件之间的通信。nvme可以基于现有的快速外围组件互连(pcie)总线,并且可以是为ssd设计或优化的接口。可以使用命名空间访问nvme驱动器。
39.在根据示例实施例的操作存储设备的方法中,当执行将第一存储设备中包括的第一命名空间移动到第二存储设备中包括的第二命名空间的数据迁移操作时,第一命名空间中存储的第一数据和第一存储设备中包括的第一缓冲存储器中存储的第二数据可以一次迁移到第二命名空间。另外,第二数据可以直接从第一缓冲存储器发送到第二命名空间,而不用经过主机设备中包括的主机存储器。因此,可以在保持数据完整性的同时有效地实现在线和/或实时命名空间数据迁移过程,并且可以节省数据处理的时间和空间。
40.图2是示出根据示例实施例的存储设备和包括存储设备的存储系统的框图。
41.参照图2,存储系统10包括主机设备100、第一存储设备200和第二存储设备300。
42.主机设备100控制存储系统10的整体操作。例如,主机设备100可以包括主机处理器110和主机存储器120。主机处理器110可以控制主机设备100的操作。例如,主机处理器110可以执行操作系统(os)。主机存储器120可以存储由主机处理器110执行和/或处理的指令和/或数据。例如,由主机处理器110执行的操作系统可以包括用于文件管理的文件系统和用于在操作系统级控制包括存储设备200和300的外围设备的设备驱动器。
43.在一些示例实施例中,如将参照图6a和图6b所述的,主机设备100可以执行彼此不同并且在操作系统上驱动或运行的多个应用和/或多个虚拟机。
44.主机设备100访问第一存储设备200和第二存储设备300中的每一个。第一存储设备200可以包括第一存储控制器210、多个第一非易失性存储器220a、220b和220c以及第一缓冲存储器230。第二存储设备300可以包括第二存储控制器310、多个第二非易失性存储器320a、320b和320c以及第二缓冲存储器330。
45.第一存储控制器210可以基于从主机设备100接收到的命令、地址和数据来控制第一存储设备200的操作和/或多个第一非易失性存储器220a、220b和220c的操作。
46.多个第一非易失性存储器220a、220b和220c可以存储多个数据。例如,多个第一非易失性存储器220a、220b和220c可以存储元数据、各种用户数据等。
47.在一些示例实施例中,多个第一非易失性存储器220a、220b和220c中的每一个可以包括nand闪存。在其他示例实施例中,多个第一非易失性存储器220a、220b和220c中的每一个可以包括以下项中的一种:电可擦除可编程只读存储器(eeprom)、相变随机存取存储器(pram)、电阻随机存取存储器(rram)、纳米浮栅存储器(nfgm)、聚合物随机存取存储器(poram)、磁随机存取存储器(mram)、铁电随机存取存储器(fram)等。
48.在一些示例实施例中,可以在多个第一非易失性存储器220a、220b和220c上设置多个命名空间。例如,如将参照图5a和图5b所述的,可以在多个第一非易失性存储器220a、220b和220c的至少一部分上设置一个命名空间。
49.第一缓冲存储器230可以存储由第一存储控制器210执行和/或处理的指令和/或数据,并且可以临时存储被存储在多个第一非易失性存储器220a、220b和220c中的数据,或要被存储到多个第一非易失性存储器220a、220b和220c中的数据。例如,第一缓冲存储器230可以包括各种易失性存储器中的至少一种,例如,动态随机存取存储器(dram)、静态随机存取存储器(sram)等。
50.第二存储控制器310可以控制第二存储设备300的操作和/或多个第二非易失性存储器320a、320b和320c的操作。多个第二非易失性存储器320a、320b和320c可以存储多个数据。第二缓冲存储器330可以存储由第二存储控制器310执行和/或处理的指令和/或数据,并且可以临时存储被存储在多个第二非易失性存储器320a、320b和320c中的数据,或将要被存储到多个第二非易失性存储器320a、320b和320c中的数据。第二存储控制器310、多个第二非易失性存储器320a、320b和320c以及第二缓冲存储器330可以分别与第一存储控制器210、多个第一非易失性存储器220a、220b和220c以及第一缓冲存储器230基本相同。
51.第一存储设备200和第二存储设备300可以执行参照图1描述的方法。例如,第一存储设备200和第二存储设备300可以从主机设备100接收数据迁移请求,与第一存储设备200中的第一命名空间相对应的第二命名空间可以在第二存储设备300中生成,用于执行数据迁移操作的指针表可以被设置,并且第一命名空间和第一缓冲存储器230中的数据可以基于指针表一次迁移到第二命名空间。换句话说,可以执行在线和/或实时命名空间数据迁移过程。另外,第一存储设备200和第二存储设备300可以执行将参照图13描述的操作存储设备的方法,并且主机设备100以及第一存储设备200和第二存储设备300可以执行将参照图14描述的操作存储系统的方法。
52.在一些示例实施例中,第一存储设备200和第二存储设备300中的每一个可以是固态驱动器(ssd)。在其他示例实施例中,第一存储设备200和第二存储设备300中的每一个可以是通用闪存(ufs)、多媒体卡(mmc)或嵌入式多媒体卡(emmc)。在其它示例实施例中,第一存储设备200和第二存储设备300中的每一个可以是安全数字(sd)卡、微型sd卡、存储器棒、芯片卡、通用串行总线(usb)卡、智能卡、紧凑闪存(cf)卡等中的一种。
53.在一些示例实施例中,第一存储设备200和第二存储设备300中的每一个可以通过块可访问接口连接到主机设备100,该块可访问接口可以包括,例如,ufs、emmc、串行高级技术连接(sata)总线、快速非易失性存储器(nvme)总线、串行连接scsi(sas)总线等。存储设备200和300中的每一个可以使用与多个非易失性存储器220a、220b、220c、320a、320b和320c的访问大小相对应的块可访问地址空间,来向主机设备100提供块可访问接口,用于允许针对存储在多个非易失性存储器220a、220b、220c、320a、320b和320c中的数据以存储块
为单位进行访问。
54.在一些示例实施例中,存储系统10可以是任何计算系统,例如,个人计算机(pc)、服务器计算机、数据中心、工作站、数字电视、机顶盒、导航系统等。在其他示例实施例中,存储系统10可以是任何移动系统,例如,移动电话、智能电话、平板计算机、膝上型计算机、个人数字助理(pda)、便携式多媒体播放器(pmp)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(iot)设备、万物互联网(ioe)设备、电子书阅读器、虚拟现实(vr)设备、增强现实(ar)设备、机器人设备、无人机等。
55.图3是示出根据示例实施例的存储设备中包括的存储控制器的示例的框图。
56.参照图3,存储控制器400包括至少一个处理器410、存储器420、命名空间管理器430、主机接口(i/f)440、纠错码(ecc)块450和存储器接口460。例如,存储控制器400可以是图2中的第一存储控制器210或第二存储控制器310。
57.处理器410可以响应于经由主机接口440从主机设备(例如,图2中的主机设备100)接收到的命令来控制存储控制器400的操作。在一些示例实施例中,处理器410可以通过采用用于操作存储设备(例如,图2中的第一存储设备200)的固件来控制各个组件。
58.存储器420可以存储由处理器410执行和处理的指令和数据。例如,可以利用具有相对小容量和高速的易失性存储器(例如,静态随机存取存储器(sram)、高速缓存存储器等)来实现存储器420。
59.命名空间管理器430可以在存储设备中包括的非易失性存储器(例如,图2中的第一非易失性存储器220a、220b和220c)上生成、设置和管理命名空间。在一些示例实施例中,命名空间管理器430的至少一部分可以实现为硬件。例如,命名空间管理器430的至少一部分可以被包括在基于计算机的电子系统中。在其他示例实施例中,命名空间管理器430的至少一部分可以实现为指令代码或程序例程(例如,软件程序)。例如,指令代码或程序例程可以由基于计算机的电子系统执行,并且可以被存储在位于基于计算机的电子系统内部或外部的任何存储设备中。
60.用于纠错的ecc块450可以使用bose-chaudhuri-hocquenghem(bch)码、低密度奇偶校验(ldpc)码、turbo码、reed-solomon码、卷积码、递归系统码(rsc)、网格编码调制(tcm)、块编码调制(bcm)等执行编码调制,或者可以使用上述码或其他纠错码来执行ecc编码和ecc解码。
61.主机接口440可以提供主机设备与存储设备之间的物理连接。主机接口440可以提供与主机的总线格式相对应的接口,其用于主机设备与存储设备之间的通信。在一些示例实施例中,主机设备的总线格式可以是小型计算机系统接口(scsi)或串行连接scsi(sas)接口。在其他示例实施例中,主机设备的总线格式可以是usb、快速外围组件互连(pci)(pcie)、高级技术附件(ata)、并行ata(pata)、串行ata(sata)、快速非易失性存储器(nvm)(nvme)等格式。
62.存储器接口460可以与非易失性存储器交换数据。存储器接口460可以向非易失性存储器传送数据,或者可以接收从非易失性存储器读取的数据。在一些示例实施例中,存储器接口460可以经由一个通道连接到非易失性存储器。在其他示例实施例中,存储器接口460可以经由两个或更多通道连接到非易失性存储器。
63.图4是示出根据示例实施例的存储设备中包括的非易失性存储器的示例的框图。
64.参照图4,非易失性存储器500包括存储单元阵列510、地址译码器520、页缓冲电路530、数据输入/输出(i/o)电路540、电压发生器550和控制电路560。例如,非易失性存储器500可以是图2中的第一非易失性存储器220a、220b和220c中的一个或多个第二非易失性存储器320a、320b和320c中的一个。
65.存储单元阵列510经由多条串选择线ssl、多条字线wl和多条接地选择线gsl连接到地址译码器520。存储单元阵列510还经由多条位线bl连接到页缓冲电路530。存储单元阵列510可以包括连接到多条字线wl和多条位线bl的多个存储单元(例如,多个非易失性存储单元)。存储单元阵列510可以被划分为多个存储块blk1、blk2、

、blkz,每个存储块包括存储单元。另外,多个存储块blk1、blk2、

、blkz中的每一个可以被划分为多个页。
66.在一些示例实施例中,可以以二维(2d)阵列结构或三维(3d)垂直阵列结构布置多个存储单元。三维垂直阵列结构可以包括垂直定向的垂直单元串,使得至少一个存储单元位于另一个存储单元之上。至少一个存储单元可以包括电荷俘获层。在此通过引用被全部包括的以下专利文件描述了针对包括3d垂直阵列结构的存储单元阵列的合适配置,在3d垂直阵列结构中,三维存储单元阵列被配置为多个层级并且在层级之间共享字线和/或位线:美国专利no.7,679,133;8,553,466;8,654,587;8,559,235以及美国专利申请公开no.2011/0233648。
67.控制电路560从外部(例如,图2中的主机设备100和/或第一存储控制器210)接收命令cmd和地址addr,并基于命令cmd和地址addr控制非易失性存储器500的擦除、编程和读取操作。擦除操作可以包括执行一系列的擦除循环,并且编程操作可以包括执行一系列的编程循环。每个编程循环可以包括编程操作和编程验证操作。每个擦除循环可以包括擦除操作和擦除验证操作。读取操作可以包括正常读取操作和数据恢复读取操作。
68.例如,控制电路560可以生成用于控制电压发生器550的控制信号con,并且可以基于命令cmd生成用于控制页缓冲电路530的控制信号pbc,并且可以基于地址addr生成行地址r_addr和列地址c_addr。控制电路560可以向地址译码器520提供行地址r_addr,并且可以向数据i/o电路540提供列地址c_addr。
69.地址译码器520可以经由多条串选择线ssl、多条字线wl和多条接地选择线gsl连接到存储单元阵列510。
70.例如,在数据擦除/写入/读取操作中,地址译码器520可以基于行地址r_addr,将多条字线wl中的至少一条字线确定为选定字线,并且可以将多条字线wl中的选定字线以外的其余字线或剩余字线确定为未选字线。
71.此外,在数据擦除/写入/读取操作中,地址译码器520可以基于行地址r_addr,将多条串选择线ssl中的至少一条串选择线确定为选定串选择线,并且可以将多条串选择线ssl中的选定串选择线以外的其余串选择线或剩余串选择线确定为未选串选择线。
72.此外,在数据擦除/写入/读取操作中,地址译码器520可以基于行地址r_addr,将多条接地选择线gsl中的至少一条接地选择线确定为选定接地选择线,并且可以将多条接地选择线gsl中的选定接地选择线以外的其余接地选择线或剩余接地选择线确定为未选接地选择线。
73.电压发生器550可以基于电源pwr和控制信号con产生非易失性存储器500的操作所需的电压vs。电压vs可以经由地址译码器520被施加到多条串选择线ssl、多条字线wl和
多条接地选择线gsl。另外,电压发生器550可以基于电源pwr和控制信号con产生数据擦除操作所需的擦除电压vers。擦除电压vers可以直接或经由位线bl被施加到存储单元阵列510。
74.例如,在擦除操作期间,电压发生器550可以将擦除电压vers施加到存储块(例如,选定存储块)的公共源极线和/或位线bl,并且可以经由地址译码器520向存储块的所有字线或部分字线施加擦除允许电压(例如,接地电压)。此外,在擦除验证操作期间,电压发生器550可以同时向存储块的所有字线施加擦除验证电压,或顺序地依次向字线施加擦除验证电压。
75.例如,在编程操作期间,电压发生器550可以经由地址译码器520向选定字线施加编程电压,并且可以向未选字线施加编程通过(pass)电压。此外,在编程验证操作期间,电压发生器550可以经由地址译码器520向选定字线施加编程验证电压,并且可以向未选字线施加验证通过电压。
76.此外,在正常读取操作期间,电压发生器550可以经由地址译码器520向选定字线施加读取电压,并且可以向未选字线施加读取通过电压。在数据恢复读取操作期间,电压发生器550可以经由地址译码器520向与选定字线相邻的字线施加读取电压,并且可以向选定字线施加恢复读取电压。
77.页缓冲电路530可以经由多条位线bl连接到存储单元阵列510。页缓冲电路530可以包括多个页缓冲器。在一些示例实施例中,每个页缓冲器可以连接到一条位线。在其他示例实施例中,每个页缓冲器可以连接到两条或更多条位线。
78.页缓冲电路530可以存储要编程到存储单元阵列510中的数据dat,或者可以读取从存储单元阵列510感测到的数据dat。换句话说,页缓冲电路530可以根据非易失性存储器500的操作模式作为写驱动器或感测放大器来运行。
79.数据i/o电路540可以经由数据线dl连接到页缓冲电路530。数据i/o电路540可以基于列地址c_addr,经由页缓冲电路530将来自非易失性存储器500外部的数据dat提供给存储单元阵列510,或者可以将来自存储单元阵列510的数据dat提供给非易失性存储器500外部。
80.图5a、图5b、图6a和图6b是用于描述根据示例实施例的在存储设备中生成、设置和管理命名空间的操作的图。
81.参照图5a,示出了在多个非易失性存储器nvm1、nvm2、

、nvmk上生成和设置多个命名空间ns11、ns21、

、nsk1的示例,其中k是大于或等于2的自然数。例如,多个非易失性存储器nvm1、nvm2、

、nvmk可以被包括在一个存储设备中,因此多个命名空间ns11、ns21、

、nsk1也可以被包括在一个存储设备中。
82.在图5a的示例中,可以在一个非易失性存储器上生成和设置一个命名空间。例如,可以在非易失性存储器nvm1的整个区域上生成和设置命名空间ns11,可以在非易失性存储器nvm2的整个区域上生成和设置命名空间ns21,并且可以在非易失性存储器nvmk的整个区域上生成和设置命名空间nsk1。
83.在一些示例实施例中,多个命名空间ns11、ns21、

、nsk1可以具有相同的容量或不同的容量。尽管图5a示出命名空间ns11、ns21、

、nsk1的数目等于非易失性存储器nvm1、nvm2、

、nvmk的数目,但是示例实施例不限于此,并且命名空间的数目和非易失性存储器
的数目可以根据示例实施例改变。
84.参照图5b,示出了在多个非易失性存储器nvm1、nvm2、

、nvmk上生成和设置多个命名空间ns12、ns22、

、nsk2的另一示例。将省略基于图5a的重复描述。
85.在图5b的示例中,可以在所有的多个非易失性存储器nvm1、nvm2、

、nvmk上生成和设置一个命名空间。例如,可以在所有的多个非易失性存储器nvm1、nvm2、

、nvmk的一些区域上生成和设置命名空间ns12,可以在所有的多个非易失性存储器nvm1、nvm2、

、nvmk的一些其他区域上生成和设置命名空间ns22,并且可以在所有的多个非易失性存储器nvm1、nvm2、

、nvmk的一些其他区域上生成和设置命名空间nsk2。
86.尽管未在图5a和图5b中示出,但是可以根据示例实施例改变生成和设置命名空间的操作。例如,可以在一些非易失性存储器(例如,非易失性存储器nvm1和nvm2)的整个区域或部分区域上生成和设置一个命名空间。
87.参照图6a,示出了分配或指派多个命名空间ns1、ns2、

、nsk的示例。例如,多个命名空间ns1、ns2、

、nsk可以被包括在一个存储设备中。
88.在图6a的示例中,依据在主机设备(例如,图2中的主机设备100)上执行或运行的多个应用app1、app2、

、appk的类型和特性,多个应用app1、app2、

、appk中的每一个可以分配给多个命名空间ns1、ns2、

、nsk中的相应命名空间。例如,命名空间ns1可以分配给应用app1,命名空间ns2可以分配给应用app2,并且命名空间nsk可以分配给应用appk。
89.在一些示例实施例中,多个应用app1、app2、

、appk中的每一个可以被称为应用程序,并且可以是在操作系统上执行的应用软件程序。例如,多个应用app1、app2、

、appk中的每一个可以被编程为帮助生成、复制和删除文件。例如,多个应用app1、app2、

、appk中的每一个可以提供各种服务,例如,视频应用、游戏应用、网络浏览器应用等。多个应用app1、app2、

、appk中的每一个可以生成用于使用或访问多个命名空间ns1、ns2、

、nsk中的相应命名空间的任务、作业和/或请求(例如,用于对多个命名空间ns1、ns2、

、nsk中的相应命名空间执行数据写入/读取/擦除操作)。换句话说,在图6a的示例中,访问每个命名空间并基于根据示例实施例的方法执行数据迁移操作的主体或一方可以是多个应用app1、app2、

、appk中的一个。
90.在一些示例实施例中,一个应用只能访问一个命名空间。在其他示例实施例中,两个或更多个应用可以同时访问两个或多个命名空间。
91.参照图6b,示出了分配或指派多个命名空间ns1、ns2、

、nsk的另一示例。将省略基于图6a的重复描述。
92.例如,依据在主机设备上执行或运行的多个虚拟机vm1、vm2、

、vm的类型和特性,多个虚拟机vm1、vm2、

、vm中的每一个可以分配给多个命名空间ns1、ns2、

、nsk中的相应命名空间。例如,命名空间ns1可以分配给虚拟机vm1,命名空间ns2可以分配给虚拟机vm2,命名空间nsk可以分配给虚拟机vmk。
93.在一些示例实施例中,主机设备可以支持虚拟化功能。例如,多个虚拟机vm1、vm2、

、vm中的每一个可以是由虚拟化操作生成的虚拟化核或处理器,并且可以独立地驱动操作系统(os)或应用。例如,可以使用vmware、单根(single-root)io虚拟化(sr-iov)等来执行虚拟化功能和虚拟化操作。例如,由虚拟机驱动的os可以被称为例如客人os(guest os)。多个虚拟机vm1、vm2、

、vm中的每一个可以生成用于使用或访问多个命名空间ns1、
ns2、

、nsk中的相应命名空间的任务、作业和/或请求(例如,用于对多个命名空间ns1、ns2、

、nsk中的相应命名空间执行数据写入/读取/擦除操作)。换句话说,在图6b的示例中,访问每个命名空间并基于根据示例实施例的方法执行数据迁移操作的主体或一方可以是多个虚拟机vm1、vm2、

、vm中的一个。
94.在下文中,将基于数据迁移操作由应用执行的示例来详细描述示例实施例。然而,示例实施例不限于此,并且数据迁移操作可以由虚拟机执行。
95.图7a、图7b和图7c是用于描述图1中的接收数据迁移请求的示例和生成第二命名空间的示例的图。
96.参照图1和图7a,命名空间管理器(例如,图3中的命名空间管理器430)可以在第一存储设备sd1中生成和设置第一命名空间ns1-1。例如,可以在第一存储设备sd1中包括的多个第一非易失性存储器(例如,图2中的多个第一非易失性存储器220a、220b和220c)的至少一部分上设置第一命名空间ns1-1。第一存储设备sd1还可以包括第一缓冲存储器buf1。
97.命名空间管理器可以将由主机设备(例如,图2中的主机设备100)执行的应用app1分配给第一命名空间ns1-1,并且应用app1可以访问第一命名空间ns1-1。例如,应用app1可以执行用于将多个数据d1、d2、d3、d4和d5存储到第一命名空间ns1-1的数据写入操作。
98.在一些示例实施例中,尽管在图7a中未示出,但是主机设备还可以包括文件系统、块层和设备驱动器。文件系统可以管理主机设备使用的文件。例如,文件系统可以管理由来自主机设备的请求或由主机设备执行的应用访问的文件的文件名、扩展名、文件属性、文件大小、集群(cluster)信息等。块层可以被称为块输入/输出层,并且可以以存储块为单位执行数据读取/写入操作。设备驱动器可以在操作系统级控制第一存储设备sd1。例如,设备驱动器可以是用于控制第一存储设备sd1的核的软件模块。当要执行数据写入操作时,应用app1可以生成文件存储请求,文件系统可以生成与文件存储请求相对应的写入请求,块层可以生成与写入请求相对应的输入/输出请求,并且设备驱动器可以基于输入/输出请求发送要写入第一存储设备sd1的命令、地址和多个数据d1、d2、d3、d4和d5。
99.应用app1发送给第一存储设备sd1的数据可以通过第一缓冲存储器buf1顺序地存储在第一命名空间ns1-1中。例如,当多个数据d1、d2、d3、d4和d5按照从数据d1到数据d5的顺序被顺序地发送时,数据d1可以临时存储在第一缓冲存储器buf1中,然后可以存储在第一命名空间ns1-1中。随后,数据d2可以临时存储在第一缓冲存储器buf1中,然后可以存储在第一命名空间ns1-1中。随后,数据d3可以临时存储在第一缓冲存储器buf1中,然后可以存储在第一命名空间ns1-1中。随后,数据d4可以临时存储在第一缓冲存储器buf1中,然后可以存储在第一命名空间ns1-1中。数据d5可以临时存储在第一缓冲存储器buf1中,并且可以在存储到第一命名空间ns1-1或冲刷到第一命名空间ns1-1之前的状态下仍然在第一缓冲存储器buf1中。
100.在图7a的示例中,根据示例实施例,多个数据d1、d2、d3、d4和d5中的已经存储在、复制到或提交到第一命名空间ns1-1的数据d1、d2、d3和d4可以表示冷数据。根据示例实施例,多个数据d1、d2、d3、d4和d5中的当前存储在第一缓冲存储器buf1中并且要被冲刷到第一命名空间ns1-1的数据d5可以表示热数据。
101.参照图1和图7b,在s100中,由主机设备执行的应用app1可以生成数据迁移请求dmreq,并且在应用app1访问第一存储设备sd1和第一命名空间ns1-1时(例如,实时、在线
和/或在i/o执行期间),可以将数据迁移请求dmreq发送到第一存储设备sd1和第二存储设备sd2。第一存储设备sd1和第二存储设备sd2可以接收数据迁移请求dmreq。
102.在一些示例实施例中,当满足预定条件(或情况)时,可以生成数据迁移请求dmreq。例如,当需要备份诸如密码、重要文档等的机密数据时,当需要备份诸如源代码的开发os时,和/或当设备故障可预测时,可以生成数据迁移请求dmreq。
103.参照图1和图7c中,在s200中,命名空间管理器可以生成和设置与第二存储设备sd2中的第一命名空间ns1-1相对应的第二命名空间ns1-2。例如,可以在第二存储设备sd2中包括的多个第二非易失性存储器(例如,图2中的多个第二非易失性存储器320a、320b和320c)的至少一部分上设置第二命名空间ns1-2。第二存储设备sd2还可以包括第二缓冲存储器buf2。
104.在一些示例实施例中,第二命名空间ns1-2的容量可以大于或等于第一命名空间ns1-1的容量。第二命名空间ns1-2可以是用于替换第一命名空间ns1-1的存储空间,因此,第二命名空间ns1-2的容量可以与第一命名空间ns1-1的容量相同或更大。
105.在一些示例实施例中,第一存储设备sd1和第二存储设备sd2可以是物理上不同或彼此区分的不同存储设备。
106.尽管未在图7a、图7b和图7c中示出,第一存储设备sd1和第二存储设备sd2中的每一个还可以包括分配给除应用app1以外的至少一个应用的至少一个命名空间。
107.图8是示出图1中的设置指针表的示例的流程图。图9a和图9b是用于描述设置图8的指针表的操作的图。
108.参照图1、图8、图9a和图9b,在s300中,可以在第一命名空间中设置第一指针和第二指针(s310),可以在第二命名空间中设置第一目标指针和第二目标指针(s320)。第一指针可以指示第一数据在第一命名空间中的开始位置,第二指针可以指示第一数据在第一命名空间中的结束(或最后)位置,第一目标指针可以对应于第一指针,第二目标指针可以对应于第二指针。另外,可以在第一命名空间中设置第三指针(s330),可以在第二命名空间中设置第三目标指针(s340)。当第二数据被冲刷到第一命名空间时并且当第二数据在第一命名空间中的开始位置被设置为对应于第二指针时,第三指针可以指示第二数据在第一命名空间中的结束位置,并且第三目标指针可以对应于第三指针。
109.例如,如图9a所示,分别指示数据d1、d2、d3和d4的开始和结束位置的指针p1和p2可以设置在第一命名空间ns1-1中。数据d1、d2、d3和d4可以是已经存储在作为原始命名空间的第一命名空间ns1-1中的数据。指示数据d5的结束位置的指针p3可以设置在第一命名空间ns1-1中。数据d5当前可以临时存储在第一缓冲存储器buf1中,并且当数据d5被冲刷到第一命名空间ns1-1的作为开始位置的与指针p2相对应的位置时,指针p3可以指示数据d5的结束位置。随后,可以在作为目标命名空间的第二命名空间ns1-2中设置目标指针tp1、tp2和tp3。第二命名空间ns1-2中的目标指针tp1、tp2和tp3可以分别对应于第一命名空间ns1-1中的指针p1、p2和p3。例如,第一命名空间ns1-1中的由指针p1、p2和p3指示的存储空间的大小和范围可以与第二命名空间ns1-2中的由目标指针tp1、tp2和tp3指示的存储空间的大小和范围基本相同。
110.在一些示例实施例中,指针p1、p2和p3以及目标指针tp1、tp2和tp3中的每一个都可以对应于逻辑地址。例如,如图9b所示,指针p1和p2可以分别指示数据d1、d2、d3和d4被存
储在第一命名空间ns1-1中的位置的第一逻辑块地址(lba)lba1-1和最后lba lba2-1,指针p2和p3可以分别指示数据d5将被存储在第一命名空间ns1-1中的位置的第一lbalba2-1和最后lba lba3-1。类似地,目标指针tp1、tp2和tp3可以分别指示数据d1、d2、d3、d4和d5被存储在第二命名空间ns1-2中的位置的lba lba1-2、lba2-2和lba3-2。与对应于指针p1、p2和p3的lba相同数目的lba可以被分配给第二命名空间ns1-2和目标指针tp1、tp2和tp3。例如,图9b的指针表可以存储在缓冲存储器buf1和buf2中。
111.图10是示出图1中的将第一数据和第二数据迁移到第二命名空间的示例的流程图。图11a和图11b是用于描述图10的将第一数据和第二数据迁移到第二命名空间的操作的图。
112.参照图1、图10和图11a,在s400中,可以将第一数据复制到第二命名空间中的第一位置(s410),并且可以将第二数据复制到第二命名空间中的第二位置(s420)。第一位置可以对应于第一目标指针和第二目标指针,并且第二位置可以对应于第二目标指针和第三目标指针。
113.例如,如图11a所示,数据d1、d2、d3和d4可以被复制到第二命名空间ns1-2中的与目标指针tp1和tp2相对应的位置,并且数据d5可以被复制到第二命名空间ns1-2中的与目标指针tp2和tp3相对应的位置。数据d5可以不被冲刷到第一命名空间ns1-1,并且可以不经过第一命名空间ns1-1而直接从第一缓冲存储器buf1发送到第二命名空间ns1-2。
114.尽管在图11a中没有示出,但是数据d1、d2、d3、d4和d5可以通过主机设备从第一存储设备sd1发送到第二存储设备sd2,如稍后参照图12a和图12b所述。
115.在一些示例实施例中,如上所述,可以在访问第一存储设备sd1时实时(或在线)执行数据迁移操作。
116.在一些示例实施例中,数据迁移操作对于主机设备可以是隐藏的后台操作。例如,即使当第一存储设备sd1被应用app1以外的应用过载时,也可以在后台执行数据迁移操作。因此,存储系统可以具有改进的或增强的性能。
117.参照图11b,在数据迁移操作完成之后,由主机设备执行的应用app1可以访问第二存储设备sd2中包括的第二命名空间ns1-2。例如,应用app1可以执行数据写入操作,以将多个数据d1、d2、d3、d4和d5之后的数据d6存储到第二命名空间ns1-2中。例如,数据d1、d2、d3、d4和d5以及数据d6可以是连续的或连续不断的数据。例如,数据d6可以临时存储在第二缓冲存储器buf2中,然后可以存储在第二命名空间ns1-2中。图11b示出了数据d6临时存储在第二缓冲存储器buf2中并且在被冲刷到第二命名空间ns1-2之前的状态。
118.在一些示例实施例中,在数据迁移操作完成之后,应用app1可以不再访问第一命名空间ns1-1。例如,可以删除和/或擦除第一存储设备sd1中的与第一命名空间ns1-1相对应的多个数据d1、d2、d3、d4和d5。例如,可以将第一命名空间ns1-1分配给另一个应用程序,或者可以释放第一命名空间ns1-1的设置。
119.换句话说,在数据迁移操作完成之后,目标指针tp1与tp3之间的数据d1、d2、d3、d4和d5可以是应用app1的全部数据。另外,应用app1和第一命名空间ns1-1可以分离,并且应用app1的整个i/o可以重定向到第二命名空间ns1-2。因此,在保持数据完整性的同时,可以在i/o期间整体地或完全地执行命名空间迁移。
120.图12a和图12b是用于描述图10的将第一数据和第二数据迁移到第二命名空间的
示例的图。
121.参照图12a,当执行数据迁移操作时,第一命名空间ns1-1中的数据d1、d2、d3和d4以及第一缓冲存储器buf1中的数据d5可以基本上同时或并发地从第一存储设备sd1发送到第二存储设备sd1。
122.例如,第一存储设备sd1可以包括第一引脚252和第二引脚254。第一引脚252可以连接到形成或包括在第一命名空间ns1-1中的至少一个第一非易失性存储器。第二引脚254可以连接到第一缓冲存储器buf1。数据d1、d2、d3和d4可以经由第一引脚252发送,数据d5可以经由第二引脚254发送,并且数据d1、d2、d3、d4和d5可以基本上同时发送。例如,引脚可以是接触引脚或接触焊盘,但是示例实施例不限于此。
123.类似地,第二存储设备sd2可以包括第三引脚352和第四引脚354。第三引脚352可以接收数据d1、d2、d3和d4,第四引脚354可以接收数据d5。在一些示例实施例中,数据d1、d2、d3、d4和d5可以通过第二缓冲存储器buf2存储在第二命名空间ns1-2中。
124.在一些示例实施例中,第一引脚252与第三引脚352之间的路径可以形成或包括在一个通道中,第二引脚254与第四引脚354之间的路径可以形成或包括在另一个通道中。在图12a的示例中,第一命名空间ns1-1中的数据d1、d2、d3和d4以及第一缓冲存储器buf1中的数据d5可以使用两个不同的通道基本上同时发送。
125.在一些示例实施例中,数据d1、d2、d3、d4和d5可以仅通过主机设备hd中包括的主机处理器hprc被直接发送到第二命名空间ns1-2,而不经过主机设备hd中包括的主机存储器hmem。例如,当使用控制器存储器缓冲器(cmb)时,可以在不经过主机存储器hmem的情况下执行数据发送操作。
126.参照图12b,当执行数据迁移操作时,第一命名空间ns1-1中的数据d1、d2、d3和d4以及第一缓冲存储器buf1中的数据d5可以顺序地从第一存储设备sd1发送到第二存储设备sd2。
127.例如,第一存储设备sd1可以包括第一引脚256。第一引脚256可以连接到形成或包括在第一命名空间ns1-1中的至少一个第一非易失性存储器和第一缓冲存储器buf1。数据d1、d2、d3、d4和d5可以经由第一引脚256顺序地发送。例如,可以先发送数据d1、d2、d3和d4,然后再发送数据d5。
128.类似地,第二存储设备sd2可以包括第二引脚356。第三引脚352可以顺序地接收数据d1、d2、d3、d4和d5。
129.在一些示例实施例中,第一引脚256与第二引脚356之间的路径可以形成一个通道。在图12b的示例中,可以使用一个通道顺序地发送第一命名空间ns1-1中的数据d1、d2、d3和d4以及第一缓冲存储器buf1中的数据d5。例如,可以使用用于在数据d1、d2、d3和d4与数据d5之间进行区分的标志和/或标识符。
130.在一些示例实施例中,数据d1、d2、d3、d4和d5可以仅通过主机设备hd中包括的主机处理器hprc被直接发送到第二命名空间ns1-2,而不经过主机设备hd中包括的主机存储器hmem。
131.图13是示出根据示例实施例的操作存储设备的方法的流程图。将省略基于图1的重复描述。
132.参考图13,在根据示例实施例的操作存储设备的方法中,第二存储设备可以电连
接到主机设备(s500)。例如,在初始操作时间中,第二存储设备可以不连接到主机设备,当要执行数据迁移操作时,第二存储设备可以被插入到主机设备中。
133.在执行s500之后,可以顺序地执行操作s100、s200、s300和s400。换句话说,可以在第二存储设备连接到主机设备之后,执行如下操作:接收数据迁移请求、生成第二命名空间、设置指针表以及将第一数据和第二数据迁移到第二命名空间。例如,可以将异步事件通知(aen)发送到主机设备(例如,发送到特定应用和/或虚拟机)以开始数据迁移操作,并且可以执行这些操作s100、s200、s300和s400。操作s100、s200、s300和s400可以分别与图1中的操作s100、s200、s300和s400基本相同。
134.图14是示出根据示例实施例的操作存储系统的方法的流程图。
135.参照图14,通过包括主机设备、第一存储设备和第二存储设备的存储系统,执行根据示例实施例的操作存储系统的方法。第一存储设备和第二存储设备经由主机设备彼此连接。例如,可以参照图2来实现存储系统。
136.在根据示例实施例的操作存储系统的方法中,在主机设备访问第一存储设备中包括的第一命名空间时,对第一命名空间执行数据迁移操作(s1100)。操作s1100可以基于根据参照图1至图13描述的示例实施例的操作存储设备的方法来执行。
137.在数据迁移操作完成之后,主机设备访问第二存储设备中包括的第二命名空间(s1200)。例如,可以参照图11b所述的执行s1200。
138.如本领域技术人员所理解的,本发明构思可以提供为系统、方法、计算机程序产品和/或一个或更多个存储有计算机可读程序代码的计算机可读介质。计算机可读程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是任何有形介质,其可以包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序。例如,计算机可读介质可以是非暂时性计算机可读介质。
139.图15是示出根据示例实施例的包括存储系统的数据中心的框图。
140.参照图15,数据中心3000可以是收集各种类型的数据并提供各种服务的设施,并且可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是由诸如银行或政府机构的公司使用的计算系统。数据中心3000可以包括应用服务器3100到3100n和存储服务器3200到3200m。应用服务器3100到3100n的数目和存储服务器3200到3200m的数目可以根据示例实施例不同地确定,并且应用服务器3100到3100n的数目和存储服务器3200到3200m的数目可以彼此不同。
141.应用服务器3100可以包括至少一个处理器3110和至少一个存储器3120,并且存储服务器3200可以包括至少一个处理器3210和至少一个存储器3220。存储服务器3200的操作将作为示例来描述。处理器3210可以控制存储服务器3200的整体操作,并且可以访问存储器3220以执行加载在存储器3220中的指令和/或数据。存储器3220可以包括以下中的至少一种:双数据速率(ddr)同步动态随机存取存储器(sdram)、高带宽存储器(hbm)、混合存储器立方体(hmc)、双列直插式存储器模块(dimm)、optane-dimm、非易失性dimm(nvdimm)等。根据示例实施例,可以不同地选择存储服务器3200中包括的处理器3210的数目和存储器3220的数目。在一些示例实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在一些示例实施例中,处理器3210的数目和存储器3220的数目可以彼此不同。处理器3210
可以包括单核处理器或多核处理器。存储服务器3200的上述描述可以类似地应用于应用服务器3100。应用服务器3100可以包括至少一个存储设备3150,并且存储服务器3200可以包括至少一个存储设备3250。在一些示例实施例中,应用服务器3100可以不包括存储设备3150。存储服务器3200中包括的存储设备3250的数目可以根据示例实施例进行各种选择。
142.应用服务器3100至3100n和存储服务器3200至3200m可以通过网络3300相互通信。网络3300可以使用光纤通道(fc)或以太网实现。fc可以是用于相对高速数据传输的介质,并且提供高性能和/或高可用性的光交换机可以被使用。根据网络3300的接入方案,可以将存储服务器3200到3200m提供为文件存储、块存储或对象存储。
143.在一些示例实施例中,网络3300可以是仅存储网络或专用于存储的网络,例如存储区域网络(san)。例如,san可以是使用fc网络并且根据fc协议(fcp)实现的fc-san。例如,san可以是使用传输控制协议/互联网协议(tcp/ip)网络并且根据iscsi(scsi over tcp/ip或互联网scsi)协议实现的ip-san。在其它示例实施例中,网络3300可以是诸如tcp/ip网络的通用网络或普通网络。例如,网络3300可以根据诸如以太网上的fc(fcoe)、网络附接存储器(nas)、fabrics上的快速非易失性存储器(nvme)(nvme-of)的协议中的至少一种来实现。
144.在下文中,将基于应用服务器3100和存储服务器3200来描述示例实施例。应用服务器3100的描述可以应用于另一应用服务器3100n,存储服务器3200的描述可以应用于另一存储服务器3200m。
145.应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储到存储服务器3200到3200m之一。另外,应用服务器3100可以通过网络3300从存储服务器3200到3200m之一获取由用户或客户端请求读取的数据。例如,应用服务器3100可以实现为网页服务器或数据库管理系统(dbms)。
146.应用服务器3100可以通过网络3300访问另一应用服务器3100n中包括的存储器3120n或存储设备3150n,和/或可以通过网络3300访问存储服务器3200至3200m中包括的存储器3220至3220m或存储设备3250至3250m。因此,应用服务器3100可以对应用服务器3100到3100n和/或存储服务器3200到3200m中存储的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100到3100n和/或存储服务器3200到3200m之间移动或复制数据的命令。数据可以从存储服务器3200到3200m的存储设备3250到3250m直接或通过存储服务器3200到3200m的存储器3220到3220m被传送到应用服务器3100到3100n的存储器3120到3120n。例如,通过网络3300传送的数据可以是出于安全或隐私加密的数据。
147.在存储服务器3200中,接口3254可以提供处理器3210与控制器3251之间的物理连接和/或网络接口卡(nic)3240与控制器3251之间的物理连接。例如,接口3254可以基于存储设备3250直接与专用电缆连接的直接附加存储(das)方案来实现。例如,接口3254可以基于诸如以下各种接口方案中的至少一种来实现:高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机系统接口(scsi)、串行连接的scsi(sas)、外围组件互连(pci)、快速pci(pcie)、nvme、ieee 1394、通用串行总线(usb)、安全数字(sd)卡接口、多媒体卡(mmc)接口、嵌入式mmc(emmc)接口、通用闪存(ufs)接口、嵌入式ufs(eufs)接口、紧凑闪存(cf)卡接口等。
148.存储服务器3200还可以包括交换机3230和nic 3240。交换机3230可以在处理器
3210的控制下选择性地连接处理器3210和存储设备3250,或者可以选择性地连接nic 3240和存储设备3250。类似地,应用服务器3100还可以包括交换机3130和nic 3140。
149.在一些示例实施例中,nic 3240可以包括网络接口卡、网络适配器等。nic 3240可以通过有线接口、无线接口、蓝牙接口、光学接口等连接到网络3300。nic 3240还可以包括内部存储器、数字信号处理器(dsp)、主机总线接口等,并且可以通过主机总线接口连接到处理器3210和/或交换机3230。主机总线接口可以实现为接口3254的上述示例之一。在一些示例实施例中,nic 3240可以与处理器3210、交换机3230和存储设备3250中的至少一个集成。
150.在存储服务器3200到3200m和/或应用服务器3100到3100n中,处理器可以向存储设备3150到3150n和3250到3250m或存储器3120到3120n和3220到3220m发送命令,以编程或读取数据。例如,数据可以是由纠错码(ecc)引擎进行纠错的数据。例如,数据可以通过数据总线反转(dbi)或数据屏蔽(dm)被处理,并且可以包括循环冗余码(crc)信息。例如,数据可以是出于安全或隐私加密的数据。
151.存储设备3150到3150n和3250到3250m可以响应于从处理器接收到的读取命令,向nand闪存器件3252到3252m发送控制信号和命令/地址信号。当从nand闪存器件3252到3252m读取数据时,读取使能(re)信号可以被输入为数据输出控制信号,并且可以用于将数据输出到dq总线。可以使用re信号生成数据选通信号(dqs)。命令和地址信号可以基于写入使能(we)信号的上升沿或下降沿锁存在页缓冲器中。
152.控制器3251可以控制存储设备3250的整体操作。在一些示例实施例中,控制器3251可以包括静态随机存取存储器(sram)。控制器3251可以响应于写入命令将数据写入nand闪存器件3252,或者响应于读取命令从nand闪存器件3252读取数据。例如,可以从存储服务器3200中的处理器3210、另一存储服务器3200m中的处理器3210m或应用服务器3100到3100n中的处理器3110到3110n提供写入命令和/或读取命令。dram 3253可以临时存储(例如,可以缓冲)要写入nand闪存器件3252的数据或从nand闪存器件3252读取的数据。此外,dram 3253可以存储元数据。元数据可以是由控制器3251生成的用于管理用户数据或nand闪存器件3252的数据。
153.存储设备3150到3150n和3250到3250m可以基于根据参照图1到图14所描述的示例实施例的存储设备和方法来实现。例如,存储设备3150到3150n和3250到3250m可以执行根据示例实施例的方法(例如,数据迁移方法)。
154.本发明构思可以应用于包括存储设备和存储系统的各种电子设备和系统。例如,本发明构思可以应用于以下系统,诸如,个人计算机(pc)、服务器计算机、数据中心、工作站、移动电话、智能电话、平板计算机、膝上型计算机、个人数字助理(pda)、便携式多媒体播放器(pmp)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(iot)设备、万物互联网(ioe)设备、电子书阅读器、虚拟现实(vr)设备、增强现实(ar)设备、机器人设备、无人机等。
155.在根据示例实施例的操作存储设备的方法和操作存储系统的方法中,存储在第一命名空间中的第一数据和存储在第一缓冲存储器中的第二数据可以在执行数据迁移操作时(顺序地或同时地)一次迁移到第二命名空间。另外,第二数据可以在不经过第一命名空间和/或不经过主机设备中包括的主机存储器的情况下,直接从第一缓冲存储器发送到第
二命名空间。因此,可以在保持数据完整性的同时有效地实现在线和/或实时命名空间数据迁移过程,并且可以节省数据处理的时间和空间。
156.根据示例实施例,本文所述的组件、元件、模块或单元中的至少一个可以实现为执行上述各个功能的各种数目的硬件、软件和/或固件结构。例如,这些组件、元件或单元中的至少一个可以使用直接电路结构,例如,存储器、处理器、逻辑电路、查找表等,其可以通过一个或更多个微处理器或其他控制设备的控制来执行各个功能。此外,这些组件、元件或单元中的至少一个可以由模块、程序或代码的一部分具体实现,该模块、程序或代码的一部分包含用于执行指定逻辑功能的一个或更多个可执行指令,并且由一个或更多个微处理器或其他控制装置执行。此外,这些组件、元件或单元中的至少一个还可以包括诸如执行各个功能的中央处理单元(cpu)、微处理器等的处理器,或由诸如执行各个功能的中央处理单元(cpu)、微处理器等的处理器来实现。这些组件、元件或单元中的两个或更多个可以组合成一个单独的组件、元件或单元,其执行组合的两个或更多个组件、元件或单元的所有操作或功能。此外,这些组件、元件或单元中的至少一个的至少部分功能可以由这些组件、元件或单元中的另一个来执行。此外,尽管在框图中未示出总线,但是可以通过总线执行组件、元件或单元之间的通信。上述示例实施例的功能方面可以以在一个或更多个处理器上执行的算法来实现。此外,由块或处理操作表示的组件、元件或单元可以采用用于电子配置、信号处理和/或控制、数据处理等的任何数目的相关技术。
157.上述内容是示例实施例的说明,不应解释为对示例实施例的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在不实质上脱离示例实施例的新颖教导和优点的情况下,在示例实施例中可以进行许多修改。因此,所有这些修改意在被包括在如权利要求中所定义的示例实施例的范围内。因此,应当理解,前述内容是各种示例实施例的说明,并且不应被解释为限于所公开的特定示例实施例,并且对所公开的示例实施例以及其他示例实施例的修改意在被包括在所附权利要求书的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1