数据存储设备及其操作方法与流程

文档序号:11176730阅读:1252来源:国知局
数据存储设备及其操作方法与流程

对相关申请的交叉引用

本申请要求于2016年3月25日提交的第10-2016-0036386号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入于此。

本公开的实施例涉及数据存储设备,并且更具体地,涉及用于提高主机(host)和数据存储设备之间的传输效率的数据存储设备和方法,以及包括其的数据处理系统。



背景技术:

具有大容量的存储设备通常包括多个存储器设备(memorydevice)。存储器设备用于存储数据。存储器设备被分为易失性存储器设备和非易失性存储器设备。

数据复制或备份经常用于在存储设备或电源出现故障的情况下恢复数据。数据镜像就是一种这样的数据复制方案。其是在至少一个设备中重复地存储数据的技术。主机通常针对相同的数据在存储设备上运行多个写入命令以执行数据镜像,或者运行具有由存储设备接收的单个地址并在存储设备中转换(translate)的单个写入命令以执行复制。因此,典型的数据复制可能需要由主机生成的更多数量(例如,两倍之多)的命令,或者可能需要在存储设备处执行地址转换和/或处理。这两者都可能需要额外的处理。



技术实现要素:

一些实施例提供了用于提高在主机和数据存储设备之间的数据效率并且降低功耗的数据存储系统、方法、以及设备。

在一些实施例中,数据存储设备包括:第一非易失性存储器设备;第二非易失性存储器设备;以及管理电路,其连接到第一非易失性存储器设备和第二非易失性存储器设备。所述管理电路被配置为:接收外部多访问命令(multi-accesscommand),所述外部多访问命令从所述数据存储设备的外部接收,并且包括第一地址和第二地址,基于所述外部多访问命令和第一地址,生成第一内部访问命令并将第一内部访问命令和第一地址提供给第一非易失性存储器设备,以及基于所述外部多访问命令和第二地址,生成第二内部访问命令并将第二内部访问命令和第二地址提供给第二非易失性存储器设备。

在一些实施例中,其可以包括上述或其它实施例,访问数据存储设备的方法包括:在所述数据存储设备处从在所述数据存储设备外部的设备接收外部多访问命令,所述外部多访问命令包括第一地址和第二地址;将基于所述外部多访问命令的第一访问命令提供给第一非易失性存储器设备,第一访问命令包括第一地址;使用第一访问命令和第一地址在第一非易失性存储器设备上运行第一访问操作;将基于所述外部多访问命令的第二访问命令提供给第二非易失性存储器设备,第二访问命令包括第二地址;以及使用第二访问命令和第二地址在第二非易失性存储器设备上运行第二访问操作。

在一些实施例中,其可以包括上述或其它实施例,用于数据存储设备的多访问方法包括:通过生成多访问请求在主机设备上启动多访问操作;对所述多访问请求执行映射操作以生成多访问命令,所述多访问命令包括至少命令类型指示符、复制/拆分标志、以及多个地址;以及从所述主机向所述数据存储设备发送所述多访问命令。

在一些实施例中,其可以包括上述或其它实施例,用于包括管理电路和多个非易失性存储器设备的数据存储设备的多访问方法包括:从所述数据存储设备外部的设备接收外部多访问命令,所述外部多访问命令包括命令类型指示符和至少第一地址和第二地址;使用第一地址将基于所述外部多访问命令的第一内部多访问命令传输到所述数据存储设备的第一非易失性存储器设备;使用第二地址将基于所述外部多访问命令的第二内部多访问命令传输到所述数据存储设备的第二非易失性存储器设备;使用第一地址访问第一非易失性存储器设备;以及使用第二地址访问第二非易失性存储器设备。

附图说明

通过参考附图详细描述其示例性实施例,上述和其它特征和优点将变得更加明显,其中:

图1是根据一些实施例的数据处理系统的框图;

图2是根据一些实施例的图1中所示的主机和数据存储设备的框图;

图3是根据一些实施例的图2中所示的存储器设备集群(cluster)的框图;

图4是根据一些实施例的主机的层级(hierarchical)结构的示图;

图5a和图5b是图1中所示的数据存储设备的示例的框图;

图6是根据一些实施例的数据处理系统的多访问方法的流程图;

图7是根据一些实施例的数据处理系统的多写入方法的流程图;

图8a是根据一些实施例的诸如图7中所示的多写入命令的示图;

图8b是根据本发明构思的其它实施例的诸如图7中所示的另一多写入命令的示图;

图9是根据一些实施例的用于说明数据处理系统的多写入操作的示图;

图10是根据其它实施例的用于说明数据处理系统的多写入操作的示图;

图11是根据一些实施例的数据处理系统的多读取方法的流程图;

图12是根据其它实施例的数据处理系统的多读取方法的流程图;

图13是根据一些实施例的用于说明数据处理系统的多读取操作的示图;

图14是根据一些实施例的用于说明数据处理系统的多擦除方法的示图;

图15是根据一些实施例的数据处理系统的框图;以及

图16和图17是根据一些实施例的包括数据存储设备的数据处理系统的框图。

相同的数字始终指代相同的元素。虽然不同的附图示出了示例性实施例的变型,并且可以使用诸如“在一个实施例中”的语言来指代,但是这些附图不一定旨在彼此相互排斥。相反,如从下面的详细描述的上下文中将看到的,当将附图及其描述作为整体考虑时,不同附图中描绘和描述的某些特征可以与其它附图中的其它特征组合以得到各种实施例。并且这些各种实施例也应当在本发明构思的范围内。

具体实施方式

图1是根据一些实施例的数据处理系统100的框图。图2是根据一些实施例的图1中所示的主机200和数据存储设备300的框图。图3是根据一些实施例的图2中所示的存储器设备集群400a的框图。

参考图1至图3,数据处理系统100可以包括主机200和数据存储设备300,数据存储设备300可以通过接口110与主机200通信命令和/或数据。数据处理系统100可以被实现为,例如,个人计算机(pc)、工作站、数据中心、互联网数据中心(idc)、存储区域网络(san)、网络附接存储(nas)或移动计算设备,但是本发明构思不限于这些示例。移动计算设备可以是膝上型计算机、蜂窝电话、智能电话、平板pc、个人数字助理(pda)、企业数字助理(eda)、数字静止照相机、数字摄像机、便携式多媒体播放器(pmp)、个人导航设备或便携式导航设备(pnd)、手持游戏控制台、移动互联网设备(mid)、可穿戴计算机、物联网(iot)设备,万物互联(ioe)设备、无人机或电子书,但不限于此。

接口110可以被实现为,例如,串行高级技术附件(sata)接口、高速sata(satae)接口、sas(串行附接小型计算机系统接口(scsi))、高速外围组件互连(pcie)接口、高速非易失性存储器(nvme)接口、高级主机控制器接口(ahci)或多媒体卡(mmc)接口,但是本发明构思不限于这些示例。接口110可以在主机200和数据存储设备300之间传输电信号或光学信号。

主机200可以通过接口110控制数据存储设备300的数据处理操作(例如,写入或读取操作)。主机200可以指代主机控制器。

数据存储设备300可以包括管理模块310和多个非易失性存储器(nvm)设备410-1至410-m,其中“m”是至少为2的整数。为了在描述中方便起见,nvm设备410-1至410-m将被称为存储器设备集群400。图2中所示的数据存储设备300a还可以包括缓冲器360和电源管理集成电路(pmic)370。

数据存储设备300可以是非易失性存储器设备,诸如基于闪存的存储器设备或相变随机访问存储器(pram)设备,但是其不限于这些示例。数据存储设备300可以被实现为,例如,固态驱动器或固态盘(ssd)、嵌入式ssd(essd)、通用闪速存储器(ufs)、mmc、嵌入式mmc(emmc)或受管理(managed)nand,但是本发明构思不限于这些示例。

在数据存储设备300包括一个或多个基于闪存的存储器设备的情况下,每个基于闪存的存储器设备可以包括存储器单元阵列。存储器单元阵列可以包括多个存储器单元。存储器单元阵列可以是二维或三维存储器单元阵列。

三维存储器单元阵列可以在具有布置在硅衬底上或上方的有源区域的存储器单元的阵列中的一个或多个物理级(physicallevel)处单体地(monolithically)形成,并且可以包括与存储器单元的操作相关的电路。电路可以形成在硅衬底中、硅衬底上、或硅衬底的上方。术语“单体的(monolithic)”意指阵列中的每一级(level)处的层(layer)直接沉积在阵列中的基础级(underlyinglevel)处的层上。三维存储器单元阵列可包括垂直取向的垂直nand串,使得至少一个存储器单元置于另一存储器单元上或上方。所述至少一个存储器单元可以包括电荷捕获层。以下专利文献(其通过引用整体并入本文)描述了用于三维存储器阵列的合适配置,其中三维存储器阵列被配置为多个级,其中字线和/或位线在各级之间共享:专利号为7,679,133、8,553,466、8,654,587和8,559,235的美国专利以及公开号为2011/0233648的美国专利申请。

可替换地,数据存储设备300可以被实现为硬盘驱动器(hdd)、pram设备、磁阻ram(mram)设备、自旋力矩传输mram(stt-mram)设备、铁电ram(fram)设备或电阻式ram(rram)设备。

可以包括各种电路元件并且可以包括集成电路的管理模块310可以被称为管理电路310,并且可以控制在主机200和nvm设备410-1至410-m之间传输的命令和/或数据的传递或处理。在nvm设备410-1至410-m是nand设备的情况下,管理电路310可以被指代为nand管理电路。管理模块310可以在例如ic或片上系统(soc)中实现。图2中所示的主机200a可以包括总线架构210、中央处理单元(cpu)220、存储器225和第一接口230。主机200a可以在数据存储设备300a的外部。主机200a(包括其各种组件)和数据存储设备300(包括其各种组件)可被配置以执行这里所描述的各种操作和方法。

cpu220、存储器225和第一接口230可以经由总线架构210彼此通信命令和/或数据。尽管主机200a包括总线架构210、cpu220、存储器225以及图2中所示的实施例中的第一接口230,但是本发明构思不限于图2中所示的主机200a。

主机200可以被实现为ic、主板、soc、应用处理器(ap)、移动ap、web服务器、数据服务器或数据库服务器,但是本发明构思不限于这些示例。总线架构210可以被实现为高级微控制器总线架构(amba)、高级高性能总线(ahb)、高级外围总线(apb)、高级可扩展接口(axi)、高级系统总线(asb)、axi一致性扩展(ace)或其组合,但是本发明构思不限于这些示例。

cpu220可以生成用于控制数据存储设备300的写入操作的写入命令、用于控制数据存储设备300的读取操作的读取命令或用于控制数据存储设备300的擦除操作的擦除命令。写入命令可以包括写入地址(例如,逻辑地址或物理地址)。读取命令可以包括读取地址(例如,逻辑地址或物理地址)。cpu220还可以生成用于控制数据存储设备300的多写入操作的多写入命令(n-write)、用于控制数据存数设备300的多读取操作的多读取命令(n-read)或用于控制数据存储设备300的多擦除操作的多擦除命令(n-erase)。由主机生成的命令在这里被称为与存储设备300相关的外部命令。

为了在描述中方便起见,n-write、n-read和n-erase各自通常被称为多访问命令或外部多访问命令。外部多访问命令是在各种实施例中最初在主机200和数据存储设备300之间传递的命令,使得使用单个命令相对于至少两个地址(例如,物理地址)执行数据写入、读取或擦除操作。例如,所述至少两个地址可以与单个多访问命令相关联并且可以与所述单个多访问命令一起传输。多访问命令可以包括n-write、n-read和n-erase,但是本发明构思不限于这些示例。包括多个地址的其它命令也可以被描述为多访问命令。

cpu220可以包括至少一个内核(core)。

存储器225可以存储用于cpu220的操作的数据、将要传输到数据存储设备300的数据或者从数据存储设备300接收的数据。存储器225还可以存储可以由cpu220运行的闪存转换层(flashtranslationmemory,ftl)代码。ftl代码可以被简单地称为ftl。下面将参考图4详细描述主机200和ftl中的示例层级(hierarchy)。

第一接口230可以改变将要传输到数据存储设备300的命令和/或数据的格式,并且可以将所述命令和/或数据以改变的格式通过接口110传输到数据存储设备300。第一接口230还可以改变从数据存储设备300接收的响应和/或数据的格式,并且可以将所述响应和/或数据以改变的格式通过总线架构210传输到cpu220。例如,第一接口230可以包括传输和接收命令和/或数据的收发器。第一接口230的结构和操作可以被配置为与这些接口110的结构和操作兼容。

图2中所示的管理模块310a可以包括:总线架构311、内部存储器(例如,sram)315、第二接口320、cpu330、缓冲器控制器340和第三接口350。管理模块310a的总线架构311可以被实现为amba、ahb、apb、axi、asb、ace或其组合,但是本发明构思不限于这些示例。

内部存储器315可以存储用于管理模块310a的操作的数据或者从由管理模块310a执行的数据处理操作(例如写入或读取操作)生成的数据。内部存储器315可以存储可以由cpu330运行的ftl的部分代码。ftl的部分功能(或用于执行部分功能的代码)可以在主机200中被实现,ftl的另一部分功能(或用于执行另一部分功能的代码)可以在数据存储设备300的管理模块310a中被实现。然而,在这里描述的各种实施例中,ftl没有完全在数据存储设备300上被实现。在一些情况下,ftl没有任何部分在数据存储设备300上被实现。

内部存储器315可以被实现为ram、动态ram(dram)、静态ram(sram)、缓冲器、缓冲存储器、高速缓冲存储器或紧凑耦合存储器(tcm),但不限于这些示例。

第二接口320可以改变将要传输到主机200a的响应和/或数据的格式,并且可以将所述响应和/或数据以改变的格式通过接口110传输到主机200a。第二接口320还可以从主机200a接收命令和/或数据,改变所述命令和/或数据的格式,并且将所述命令和/或数据以改变的格式发送到cpu330和/或缓冲器控制器340。第二接口320可以包括传输和接收信号和/或数据的收发器。

第二接口320的结构和操作可以被配置为与这些接口110的结构和操作兼容。第二接口320可以是,例如,sata接口、satae接口、sas、pcie接口、nvme接口、ahci、mmc接口、nand型闪速存储器接口或nor型闪速存储器接口,但不限于此。

cpu330可以通过总线架构311控制内部存储器315、第二接口320、缓冲器控制器340和第三接口350。cpu330可以包括至少一个内核。cpu330可以控制pmic370。

缓冲器控制器340可以根据cpu330的控制将数据写入缓冲器360或从缓冲器360读取数据。缓冲器控制器340可以被称为控制器或缓冲器管理器,其可以控制在缓冲器360上的写入和读取操作。

第三接口350可以根据cpu330的控制通过通道cha至chd来控制在存储器设备集群400a上的数据处理操作(例如,写入或读取操作)。第三接口350可以是,例如,sata接口、satae接口、sas、pcie接口、nvme接口、ahci、mmc接口、nand型闪速存储器接口或nor型闪速存储器接口,但不限于此。

缓冲器360可以写入从主机200接收的数据或读取根据缓冲器控制器340的控制已经存储的数据。缓冲器360可以被实现为易失性存储器,诸如缓冲存储器、ram、sram或dram,但是本公开不限于这些示例。

当管理模块310和缓冲器360分别形成在不同的半导体芯片中时,管理模块310和缓冲器360可以使用层叠封装(pop)、多芯片封装(mcp)或系统内封装(sip)在单个封装中实现,但是本公开不限于这些示例。包括缓冲器360的第一芯片可以例如使用诸如凸块(bump)或球(ball)的堆叠端子(stackingterminal)堆叠在包括管理模块310的第二芯片的上方。

pmic370可以控制施加到管理模块310、缓冲器360、和/或存储器设备集群400a的操作电压。施加到管理模块310的第一操作电压、施加到缓冲器360的第二操作电压和施加到存储器设备集群400a的第三操作电压可以彼此相同或不同。

图2中所示的存储器设备集群400a可以包括通过各自的通道cha至chd传输和接收数据的多个存储器设备410-1至410-m。如图3所示,存储器设备410-1至410-m可以分别包括多个存储器元件或存储器芯片ca0至ca2、cb0至cb2、cc0至cc2和cd0至cd2。虽然在图3中所示的实施例中三个存储器芯片连接到四个通道cha到chd中的每一个,但是当前的实施例仅仅是示例,并且通道的数量以及连接到每条通道上的存储器芯片的数量可以被改变。每个存储器芯片可以是,例如,非易失性存储器芯片,诸如nand存储器。如这里所述,半导体芯片是指从晶圆形成的晶片(die)并且其上包括集成电路。可以堆叠半导体芯片以形成诸如芯片堆叠和/或半导体封装的半导体设备。半导体芯片也可以被称为半导体设备。

存储器设备410-1、410-2、410-3或410-4中的存储器元件或存储器芯片ca0至ca2、cb0至cb2、cc0至cc2或cd0至cd2可以在单个封装中实现或安装在单个模块上。每个存储器芯片可以包括多个块;每个块可以包括多个页面。

第一存储器设备410-1可以连接到第一通道cha;第二存储器设备410-2可以连接到第二通道chb;第m存储器设备410-m可以连接到第m通道chd。可以根据不同的情况适当地确定存储器设备410-1至410-m的数量和通道的数量。存储器设备410-1至410-m中的每一个中的存储器芯片或存储器元件的数量也可以根据不同的情况适当地确定。

这里所使用的通道可以指代存在于管理模块310(例如,第三接口350)与存储器设备之间的独立数据通路。数据通路可以包括可以传递数据和/或控制信号的传输线。

图4是根据本发明构思的一些实施例的主机的层级结构240的示图。参考图4,层级结构240可以包括应用层250、ftl260和存储接口层270。ftl260可以执行地址映射261、垃圾收集(gc)263、损耗平衡(wear-leveling,wl)265和坏块管理(bbm)267。

例如,在一个实施例中,地址映射261包括将逻辑地址映射到与数据存储设备300中的物理位置相对应的物理地址。ftl260可以使用将逻辑地址链接到物理地址的地址转换映射表(未示出),将逻辑块地址转换为对应于数据存储设备300中的物理位置的物理块地址。地址映射方法可以是扇区映射、块映射或混合映射,但不限于这些示例。此外,地址映射可以将逻辑地址(例如,单个逻辑地址)映射到多个物理地址,诸如数据存储或存储器设备集群的两个不同的非易失性存储器设备的两个物理地址。

wl265是管理数据存储设备300的技术,使得写入操作不集中在数据存储设备300中的特定块上,例如,每个块具有统一的写入计数。ftl260可以记录并管理对于每个块或页的写入计数并且可以执行管理,使得基于写入计数执行写入操作。

gc263是均衡数据存储设备300中的块的擦除计数的技术。bbm267可以指代管理数据存储设备300的坏块信息的功能或代码。

ftl260可以是存储在主机200的存储器225中并在cpu220中运行的软件或固件代码。ftl260可以被实现为主机200的操作系统(os)的一部分。如上所述,在一些实施例中,ftl260可以部分地在主机200中实现并且部分地在数据存储设备300中实现。例如,地址映射261、gc263和wl265可以在主机200中实现以及bbm267可以在数据存储设备300中实现,但是本发明构思不限于该示例。

存储接口层270可以对应于图2中所示的第一接口230。

图5a和图5b是图1中所示的数据存储设备300的示例300b和300c的框图。图5a中所示的数据存储设备300b的结构和操作类似于图2中所示的数据存储设备300a的结构和操作。因此,描述将集中在数据存储设备300a和300b之间的差异以避免冗余。与图2中所示的数据存储设备300a的管理模块310a相比,图5a中所示的数据存储设备300b的管理模块310b还可以包括也被称为纠错码(ecc)电路的纠错码(ecc)引擎325和/或数据运算器335。

ecc引擎325可以纠正将要存储在存储器设备集群400b中的数据中的错误和/或从存储器设备集群400b输出的数据中的错误。ecc引擎325可以在管理模块310b内的任何地方实现。例如,ecc引擎325可以在第三接口350内实现。

数据运算器335或数据运算电路,可以压缩将要存储在存储器设备集群400b中的数据,并且可以解压缩从存储器设备集群400b输出的数据。数据运算器335还可以从将要存储在存储器设备集群400b中的数据生成奇偶校验数据。因此,数据运算器335也可以更具体地被称为数据压缩/解压缩电路。

图5b中所示的数据存储设备300c的结构和操作类似于图2中所示的数据存储设备300a的结构和操作。因此,描述将集中在数据存储设备300a和300c之间的差别以避免冗余。与图2中所示的数据存储设备300a的管理模块310a相比,图5b中所示的数据存储设备300c的管理模块310c不包括缓冲器控制器340。因此,数据存储设备300c不包括缓冲器360。

在主机200c和数据存储设备300c之间的接口110’可以与nvm接口(例如,nand接口)兼容。因此,主机200c可以根据与nvm接口兼容的接口110’向管理模块310c发送命令(例如,nand命令)和地址(或多个地址),并且可以将数据直接传输(130)到存储器设备集群400c。

管理模块310c可以从主机200c接收命令和地址(或多个地址),并将它们施加到存储器设备集群400c。管理模块310c可以将从主机200c接收的命令和地址(或多个地址)转换为适合于存储器设备集群400c。在本实施例中,来自主机200c的命令和地址(或多个地址)可以经由管理模块310c被施加到存储器设备集群400c,但是所述数据可以不经过管理模块310c而直接从主机200c传输到存储器设备集群400c。

图6是根据本发明构思的一些实施例的数据处理系统100的多访问方法的流程图。参考图1至图6,在操作s101中,主机200向数据存储设备300发送多访问命令(n-access),并且数据存储设备300接收n-access。

相对于数据存储设备300被称为外部多访问命令的n-access指定至少两个地址(例如,至少两个物理块地址),使得使用单个命令在所述至少两个物理块地址上执行访问操作。例如,所述至少两个物理块地址可以是同一芯片上的不同块、不同芯片上的不同块或不同封装上的不同块。为了在所述至少两个物理块地址上执行访问操作,通常需要至少两个单独的命令或至少两次命令。然而,根据本发明构思的各种实施例,使用最初在主机200和数据存储设备300之间定义的n-access,使得使用单个命令在所述至少两个不同的物理块地址上能够执行访问操作(例如,写入操作、读取操作或擦除操作)。

n-access可以包括n个地址(例如,物理地址)的地址列表add_list,其中n是至少为2的整数。根据命令的形式或类型,n-access可以包括或可以不包括数据。稍后将参照图8a和8b详细描述n-access。n-access命令可以源自于在所述主机处生成的包括单个逻辑地址的初始命令,所述单个逻辑地址可以是目的地址。例如,主机可以包括将与在主机处发起的命令(也称为请求)相关联的逻辑地址转换为包括两个物理地址的命令的闪存转换层。如上所述,所述两个物理地址可以基于所述单个逻辑地址和所述闪存转换层操作。

数据存储设备300的管理模块310可以将n-access存储在缓冲器360中。管理模块310可以将n-access转换为适合于nvm设备(例如,nand闪存存储器设备)的访问命令nvm_access。

当第一物理地址pba1和第二物理地址pba2被包括在n-access的地址列表add_list中时,管理模块310可以在操作s103中生成并向第一nvm设备发送包括第一物理地址pba1的第一访问命令nvm_access,并且可以在操作s105中生成并向第二nvm设备发送包括第二物理地址pba2的第二访问命令nvm_access。每个访问命令nvm_access可以是写入命令nvm_write、读取命令nvm_read或擦除命令nvm_erase,但不限于此。相对于数据存储设备300,每个访问命令nvm_access可以被称为内部访问命令。

在向第一nvm设备发送第一访问命令nvm_access以及向第二nvm设备发送第二访问命令nvm_access之后,在操作s107中,管理模块310可以向主机200发送n-access的确认ack。

以上述方式,数据存储设备300可以从数据存储设备(例如,主机200)外部的设备接收外部多访问命令,其中所述外部多访问命令包括第一地址和第二地址。基于所述外部多访问命令,将第一访问命令提供给第一非易失性存储器,第一访问命令包括第一地址,以及将第二访问命令提供给第二非易失性存储器,第二访问命令包括第二地址。然后,使用第一访问命令和第一地址在第一非易失性存储器设备上运行第一访问操作,以及使用第二访问命令和第二地址在第二非易失性存储器设备上运行第二访问操作。

图7是根据本发明构思的一些实施例的数据处理系统100的多写入方法的流程图。图8a是根据本发明构思的一些实施例的多访问命令(诸如图7中所示的n-write)的示图。图8b是根据本发明构思的其它实施例的多访问命令(诸如图7中所示的n-write)的示图。

参考图1至图8b,在操作s110中,主机200向数据存储设备300发送多访问命令(n-write),并且数据存储设备300的管理模块310从主机200接收n-write。多访问命令指定至少两个地址(例如,物理块地址),使得使用单个命令在所述至少两个物理块地址上执行操作。为了在至少两个物理块地址执行数据写入、读取或擦除操作,通常需要至少两个单独的命令或至少两次命令。然而,根据本发明构思的实施例,使用最初在主机200和数据存储设备300之间定义的多访问命令(例如,n-write),使得使用单个命令在至少两个不同的物理块地址上能够执行访问操作。例如,在主机200和数据存储设备300之间传输的写入命令可以包括与两个不同的各自存储器块相关联的至少两个不同的物理地址。

例如,主机200可以使得数据存储设备300能够使用单个命令(例如,n-write)在n个不同的物理块地址上执行访问操作。参考图8a,命令40a可以包括命令标识符41、操作码(opcode)42、数据指针43、复制/拆分标志47和地址列表。命令40a还可以包括可选的压缩标志(未示出)和/或芯片地址(例如,芯片使能,也未示出)。

命令标识符41可以是被唯一定义的数据,以识别命令。例如,每个命令可以用数字标识,使得它以后可以与相应的数据匹配。例如,来自主机的写入或擦除命令可以包括命令标识符,这样,当确认被返回到主机时,其具有相同的标识符,使得主机知道该确认是针对哪个命令/请求的响应。可替代地,来自主机的读取命令可以包括命令标识符,这样,当数据被返回到主机时,它具有相同的标识符,使得主机知道确认是针对哪个命令/请求的响应。

操作码42可指定对应于命令的操作。例如,操作可以是正常(例如,单个)读取操作、多读取操作、正常(例如,单个)写入操作、多写入操作等。操作码42可以指定命令的类型,使得管理模块310知道如何处理所述命令。例如,如果操作码用于正常读取(例如,使用单个地址),则管理模块310能够适当地转换用于单访问的命令、地址和任何数据。然而,如果操作码用于多读取,则管理模块310可以转换用于多访问的命令、地址和任何数据。操作码在本文中还可以被描述为命令类型指示符。

数据指针43可以是指示数据在主机200的存储器225中的位置的地址信息。数据指针43可以以链表结构连接,但是本发明构思不限于该实施例。数据存储设备300的管理模块310可以基于数据指针43从主机200的存储器225读取数据或向主机200的存储器225写入数据。

可以包括复制/拆分标志47,以便在多访问的情况下指示相关联的数据是重复数据还是拆分数据,或者指示两者都不是(例如,如果命令是单访问命令)。如下面进一步讨论的,在一些情况下,与写入命令相关联的数据将被复制并存储在两个不同的物理位置。或者,与写入命令相关联的数据可以被拆分,使得其一部分存储在第一物理位置,并且剩余部分存储在第二物理位置。尽管描述了两个位置,但是这仅是示例,并且可以使用更多位置(例如,三个或更多个)以将数据复制或拆分成三个或更多个位置。类似地,对于读取命令,能够读取的数据是存储在多个位置中的重复数据,或者可替代地,是存储在多个位置中的分割数据。基于复制/拆分标志47的值,管理模块310控制如何处理输入或输出的命令和/或数据。

地址列表可以包括至少两个,即,n个物理地址。例如,地址列表可以包括第一物理地址44和第二物理地址45。物理地址44和45中的每一个可以包括数据存储设备300中将被写入数据的物理块的起始地址(start_address)441或451和物理块的数量443或453。可替代地,每个物理地址44或45可以包括数据存储设备300中将被写入数据的物理块的start_address441或451以及结束地址(未示出)。因此,包括在地址列表中的每个物理地址可以以各种形式包括用于指定将被写入数据的物理块的位置的信息。

虽然未示出,但是命令中的附加字段可以指示芯片地址(例如,以芯片使能数据的形式)。因此,如果与外部多访问命令相关联的两个物理地址对应于第一芯片处的第一物理地址和第二芯片处的第二物理地址,则两个芯片地址可以包括在命令40a中。在一个实施例中,这样的芯片地址被包括在与start_addresses相同的字段中,例如作为附加到开始地址的附加位。然而,芯片地址不需要不同,并且在外部多访问命令中的不同的物理地址是用于同一芯片中的不同块的情况下,芯片地址可以是相同的芯片地址。在一些实施例中,不同的物理地址对应于两个不同芯片内的相同的相对(relative)物理地址,但是两个不同的芯片地址。

同样未示出,命令中的附加字段可以包括压缩/解压缩代码。例如,基于响应于多访问命令是否以及如何压缩或解压缩数据,能够使用数据压缩/解压缩代码。

参考图8b,n-write40b可以包括命令标识符41、操作码42、地址列表和数据46。尽管未示出,但其也可以包括诸如图8a中所示的多访问标志、以及芯片地址/多芯片地址,和/或压缩/解压缩标志。图8b中所示的n-write40b类似于图8a中所示的n-write40a,因此将描述它们之间的差异以避免冗余。

尽管图8a中所示的n-write40a包括数据指针43时,图8b中所示的n-write40b包括将要被写入数据存储设备300的数据46。n-write40a或40b可以具有数据包(packet)形式,但是本发明构思不限于这些实施例。

返回参考图7,数据存储设备300的管理模块310可以接收n-write,并且还可以接收并且将包括在n-write中的写入数据wdat存储在缓冲器360中。n-write可以是包括单个命令标识符的单个命令。可替代地,管理模块310可以从由图8a中所示的n-write中包括的数据指针43指定的主机200的存储器225中读取写入数据wdat,并且可以将写入数据wdat存储在缓冲器360中。

管理模块310将n-write(外部命令)转换为适合于nvm设备(例如,nand闪存设备)的写入命令nvm_write(例如,内部命令)。当第一和第二物理地址pba1和pba2包括在n-write的地址列表add_list中时,在操作s120中,管理模块310可以生成并向第一nvm设备发送包括第一物理地址pba1的第一写入命令nvm_write,并且可以在操作s130中生成并向第二nvm设备发送包括第二物理地址pba2的第二写入命令nvm_write。第一和第二nvm设备可以是分别连接到不同通道(例如,如图2中所示的cha和chb)的nvm设备,例如410-1和410-2。因此,操作s120和s130可以并行(例如,同时)执行。

写入第一nvm设备的第一数据dat1和写入第二nvm设备的第二数据dat2是基于从主机200接收的写入数据wdat。例如,第一数据dat1和第二数据dat2可以是存储在缓冲器360中的数据,并且可以从缓冲器360提供给各自的第一和第二非易失性存储器设备。第一和第二数据dat1和dat2中的每一个可以与写入数据wdat相同,可以是写入数据wdat的一部分,可以是写入数据wdat的压缩数据,或者可以是写数据wdat的奇偶校验数据,但是本发明构思不限于这些示例。写入数据wdat的压缩数据或奇偶校验数据可以由图5a中所示的数据运算器335生成。

更具体地,在一些实施例中,外部多访问命令是包括写入数据的多写入命令,并且所述写入数据的第一部分包括在第一内部访问命令中(例如,在由管理模块310转换并使用第一地址的第一命令中),并且所述写入数据的第二部分而不是所述写入数据的第一部分包括在第二内部访问命令中(例如,在由管理模块310转换并使用第二地址的第二命令中)。在这种情况下,复制/拆分标志47可以指示拆分数据。

在一些实施例中,外部多访问命令是包括写入数据的多写入命令,并且与所述多写入命令相关联的所有写入数据被包括在第一内部访问命令中,以及与所述多写入命令相关联的所有数据也被包括在第二内部访问命令中。在这种情况下,复制/拆分标志47可以指示复制数据。

根据上述描述,可以在主机200处发起并生成多访问请求,并且可以首先在主机200处(例如,在主机的闪存转换层处)处理所述多访问请求以形成多访问命令。例如,可以执行映射操作(例如,使用映射表和电路),其将诸如逻辑地址的第一地址转换为两个或更多个第二地址,例如物理地址。所述两个或更多个第二地址可以彼此不同,并且可以使用诸如结合图4所描述的闪存转换层控制来选择。之后,在数据存储设备处,多访问命令可以由,例如,管理模块310,转换成单独的第一和第二内部访问命令。以这种方式,主机200可以向数据存储设备300提供多访问命令,并且数据存储设备300可以经由管理模块310基于从主机200接收到的命令向数据存储设备300的多个分别的存储器设备(例如,向多个存储器设备的不同的物理地址)提供分别的内部多访问命令。

图9是用于说明根据本发明构思的一些实施例的数据处理系统的多写入操作的示图。这里,第一数据dat1和第二数据dat2中的每一个可以与从主机200接收到的写入数据wdat相同。

管理模块310可以根据多写命令(n-write)中的操作码42和复制/拆分标志47将与从主机200接收到的写入数据wdat相同的数据存储在不同的物理地址(即,第一物理地址和第二物理地址)中。在一些实施例中,操作码42和复制/拆分标志47可以是相同字段的一部分。由于相同的写入数据wdat存储在不同的物理地址中,因此可以执行所述写入数据wdat的复制或镜像。

可替代地,第一和第二数据dat1和dat2中的一个与所述写入数据wdat相同,另一个可以是所述写入数据wdat的压缩数据或奇偶校验数据。例如,压缩/解压缩标志和/或甚至另外的奇偶校验/错误纠正标志可以指示这些。此时,在操作s120中,管理模块310可以将从主机200接收到的写入数据wdat存储在第一物理地址中,并且在操作s130中可以将所述写入数据wdat的压缩数据或奇偶校验数据存储在第二物理地址中。应当注意,当由管理模块执行纠错或压缩时,可以在数据被复制/拆分之前执行,或者在数据被复制/拆分之后执行。通常,以远小于用于ssd的页面/块的大小为单位(例如,1k的单位)执行纠错(例如,使用纠错码,“ecc”)。因此,在这种情况下,可以在复制或拆分数据之前或之后以多个步骤执行ecc。

图10是用于解释根据本发明构思的其它实施例的数据处理系统的多写入操作的示图。管理模块310可以根据多写入命令(n-write)中的操作码42和复制/拆分标志47将从主机200接收到的写入数据wdat分为至少两段dat1’和dat2’,并且可以将段dat1’和dat2’分别存储在不同的物理地址中,即,第一物理地址和第二物理地址(在操作s120和s130中)。例如,复制/拆分标志47可以指示与多访问命令相关联的数据的第一部分应当被写入数据存储设备的第一存储器设备而不是数据存储设备的第二存储器设备,以及与所述多访问命令相关联的数据的第二部分应当被写入第二存储器设备而不是第一存储器设备。第一段dat1’可以是所述写入数据wdat的前半部分,第二段dat2’可以是所述写入数据wdat的后半部分。

在操作s120中将第一写入命令nvm_write发送到第一nvm设备并且在操作s130中将第二写入命令nvm_write发送到第二nvm设备之后,管理模块310可以将n_write的确认ack发送到主机200。

图11是根据本发明构思的一些实施例的数据处理系统的多读取方法的流程图。参考图1至图5b以及图11,在操作s210中,主机200向数据存储设备300发送多读取命令(n-read),并且数据存储设备300的管理模块310在操作s210中从主机200接收n-read。主机可以首先生成多读取请求,并且例如使用诸如上述的映射表和电路将所述多读取请求转换为包括两个地址的多读取命令。

n-read指定至少两个(例如,n个)物理块地址,使得使用单个命令在所述至少两个物理块地址上执行读取操作。根据本发明构思的实施例,使用最初在主机200和数据存储设备300之间定义的n-read,使得利用单个命令(例如,具有单个命令标识符)在至少两个不同的物理块地址上能够执行读取操作。

n-read可以类似于图8a或8b中所示的n-write。类似于图8a或8b中所示的n-write40a或40b,n-read可以包括命令标识符41、操作码42、复制/拆分标志47、压缩/解压缩标志以及地址列表44和45(以及可选的芯片地址字段)。然而,n-read可以不同于n-write,因为n-read不包括数据指针43以及将要被写入数据存储设备300的数据46。

数据存储设备300的管理模块310可以接收n-read并将其存储在缓冲器360中。管理模块310可以将n-read转换为适合于nvm设备(例如,nand闪存器件)的读取命令nvm_read。

当第一和第二物理地址pba1和pba2被包括在n-read的地址列表add_list中时,在操作s220中,管理模块310可以生成并向第一nvm设备发送包括第一物理地址pba1的第一读取命令nvm_read,并且在操作s240中可以生成并向第二nvm设备发送包括第二物理地址pba2的第二读取命令nvm_read。第一和第二nvm设备可以是分别连接到不同通道(例如,如图2所示的cha和chb)的nvm设备,例如410-1和410-2。因此,操作s220和s240可以并行(例如,同时)执行。

在操作s230中,第一nvm设备可以响应于第一读取命令nvm_read从第一物理地址pba1读取第一数据dat1,并且将第一数据dat1发送到管理模块310。在操作s250中,第二nvm装置可以响应于第二读取命令nvm_read从第二物理地址pba2读取第二数据dat2,并且将第二数据dat2发送到管理模块310。操作s230和s250可以并行执行。

管理模块310可以将分别从第一和第二nvm设备读取的第一和第二数据dat1和dat2临时存储在缓冲器360中。在操作s260中,管理模块310可以基于第一和第二数据dat1和dat2,将读取数据rdat传输到主机200。

传输到主机200的读取数据rdat可以是第一和第二数据dat1和dat2的组合。例如,当根据n-write和指示拆分数据的复制/拆分标志,从主机200接收到的写入数据wdat已经被分成第一和第二数据dat1和dat2,并且被分别存储在第一和第二物理地址pba1和pba2处时,主机200可以在将n-read发送到数据存储设备300之前将n-read中的操作码42设置为特定值。在操作s260中,根据n-read,数据存储设备300可以分别从第一和第二物理地址pba1和pba2读取第一和第二数据dat1和dat2,并且将通过组合第一和第二数据dat1和dat2而获得的读取数据rdat发送到主机200。

图12是根据本发明构思的其它实施例的数据处理系统的多读取方法的流程图。图12中所示的多读取方法类似于图11中所示的多读取方法;因此将主要描述它们之间的差异。

在图12中所示的实施例中,传输到主机200的读取数据rdat可以是第一数据dat1或第二数据dat2。在这种情况下,当相同的数据被存储在不同的物理地址用于数据复制或镜像(例如,复制/拆分标志指示复制)时,只有从所述不同的物理地址读取的数据之一被传输到主机200。同时,管理模块310可以将来自不同的物理地址的数据dat1和dat2中最早读取的数据(例如,具有更快的读取速度的数据)发送到主机200。以这种方式,管理电路被配置为基于第一非易失性存储器设备的数据读取速度和第二非易失性存储器设备的数据读取速度,在将从第一非易失性存储器设备读取的第一数据发送到主机以及将从第二非易失性存储器设备读取的第二数据发送到主机之间进行选择。

在一个实施例中,例如,在操作s255中,不使用复制/拆分标志,管理模块310可以比较从不同的物理地址读取的第一和第二数据dat1和dat2。当第一和第二数据dat1和dat2彼此相同时,在操作s260’中,可以仅将第一和第二数据dat1和dat2中的一个传输到主机200。当第一和第二数据dat1和dat2彼此不同时,两个数据可以作为重新组合、先前分割的数据被发送到主机200。

管理模块310可以使用图5a中所示的ecc引擎325来纠正将要存储在存储器设备集群400中的数据中的错误和/或从存储器设备集群400输出的数据中的错误。

管理模块310可以对第一数据dat1或第二数据dat2执行预定的数据处理。例如,当第二数据dat2是第一数据dat1的压缩数据时,管理模块310可以解压缩第二数据dat2以获得解压缩数据。当第二数据dat2是第一数据dat1的奇偶校验数据时,管理模块310可以将第一数据dat1的奇偶校验数据与已经被读取的第二数据dat2进行比较,并且当第一数据dat1的奇偶校验数据与第二数据dat2相同时,可以将第一数据dat1作为读取数据rdat传输到主机200。

图13是用于解释根据本发明构思的一些实施例的数据处理系统的多读取操作的示图。在图13所示的实施例中,n-read可以包括地址列表add_list,所述地址列表add_list包括三个不同物理地址。

响应于n-read,数据存储设备300的管理模块310可以从分别具有三个不同的物理地址的nvm设备410-1b、410-2b和410-3b中分别读取第一至第三数据dat1、dat2和dat3。三个nvm设备可以是不同类型的设备。例如,nvm设备410-1b可以是三级单元(tlc)nand;nvm设备410-2b可以是单级单元(slc)nand;nvm设备410-3b可以是多级单元(mlc)nand。

管理模块310可以将第一至第三数据dat1、dat2和dat3的组合传输到主机200。可替代地,管理模块310可以将第一至第三数据dat1、dat2和dat3中的一个发送到主机200。

在图7和图9至图13中所示的实施例中,数据经由管理模块310在主机200和nvm设备之间传递。然而,在其它实施例中,数据可以不通过管理模块310而直接在主机200和nvm设备之间直接传递。

图14是用于解释根据本发明构思的一些实施例的数据处理系统的多擦除方法的示图。参考图1至图14,在操作s310中,主机200向数据存储设备300发送多擦除命令(n-erase),并且数据存储设备300的管理模块310在操作s310中从主机200接收n-erase。n-erase指定至少两个物理块地址,使得使用单个命令在所述至少两个物理块地址上执行擦除操作。如上所述的类似的转换和标志可用于n-erase。根据本发明构思的实施例,使用最初在主机200和数据存储设备300之间定义的n-erase,使得使用单个命令在至少两个不同的物理块地址上能够执行擦除操作。

n-erase可以类似于图8a或8b中所示的n-write。类似于图8a或8b中所示的n-write40a或40b,n-erase可以包括命令标识符41、操作码42和地址列表44和45。然而,如同n-read,n-erase可以不包括数据指针43和将要被写入数据存储设备300的数据46,并且还可以不包括复制/拆分标志47和压缩/解压缩标志。

数据存储设备300的管理模块310可以接收n-erase并将其存储在缓冲器360中。管理模块310可以将n-erase转换为适合于nvm设备(例如,nand闪存器件)的擦除命令nvm_erase。

当第一和第二物理地址pba1和pba2包括在n-erase的地址列表add_list中时,在操作s320中,管理模块310可以生成并向第一nvm设备发送包括第一物理地址pba1的第一擦除命令nvm_erase,并且可以在操作s330中生成并向第二nvm设备发送包括第二物理地址pba2的第二擦除命令nvm_erase。第一和第二nvm设备可以是分别连接到不同通道(例如,如图2中所示的cha和chb)的nvm设备,例如410-1和410-2。因此,操作s320和s330可以并行(例如,同时)执行。

响应于第一擦除命令nvm_erase,第一nvm装置可以擦除对应于第一物理地址pba1的块。响应于第二擦除命令nvm_erase,第二nvm设备可以擦除对应于第二物理地址pba2的块。

在操作s320中将第一擦除命令nvm_erase发送到第一nvm设备以及在操作s330中将第二擦除命令nvm_erase发送到第二nvm设备之后,在操作s340中,管理模块310可以将n-erase的确认ack发送到主机200。

根据上述实施例,数据存储设备可以从数据存储设备外部的设备接收外部多访问命令。所述外部多访问命令可以包括第一地址和第二地址。可以基于所述外部多访问命令向数据存储设备的第一非易失性存储器提供第一访问命令(例如,由所述数据存储设备生成)。例如,第一访问命令可以包括第一地址。之后,使用第一访问命令和第一地址在第一非易失性存储器设备上运行第一访问操作。可以基于所述外部多访问命令向第二非易失性存储器提供第二访问命令(例如,由所述数据存储设备生成)。例如,第二访问命令可以包括第二地址。使用第二访问命令和第二地址在第二非易失性存储器设备上运行第二访问操作。所述多访问命令可以包括单个命令标识符。此外,可以同时运行第一访问操作和第二访问操作。

如上所述,可以利用从主机200发送到数据存储设备300的单个多访问命令将数据写入到至少两个存储区域、从其中读取数据或从其中擦除数据。因此,与通常需要至少两次命令传输的常规数据处理系统相比,根据本发明的一些实施例的数据处理系统能够有效地使用带宽,从而降低功耗。

图15是根据本发明构思的某些实施例的数据处理系统500的框图。参考图1至图15,数据处理系统500可以包括数据库520、数据库服务器530、第二网络540以及多个客户端计算机550和551。数据库520和数据库服务器530可以包括在数据中心510。数据中心510可以是因特网数据中心或云数据中心。

数据库520可以包括多个数据存储设备300。数据存储设备300可以安装在机架中。数据存储设备300的结构和操作基本上与上面结合图1至11所描述的数据存储设备300的结构和操作大体相同或类似。

数据库服务器530可以控制每个数据存储设备300的操作。数据库服务器530可以执行图1中所示的主机200的功能。数据库服务器530可以通过第一网络535,例如,局域网(lan),连接到第二网络540,例如,因特网或wi-fi。客户端计算机550和551可以经由第二网络540连接到数据库服务器530。

图16和图17是包括根据本发明构思的一些实施例的包括数据存储设备300的数据处理系统900和900’的框图。参考图16,数据处理系统900可以包括数据存储设备300、电源910、cpu920、ram930、用户接口940和系统总线950,所述系统总线与元件300、910、920、930和940彼此电连接。

cpu920控制数据处理系统900的整体操作。ram930存储数据处理系统900的操作所需的信息。用户接口940提供数据处理系统900和用户之间的接口。电源910向内部元件,即cpu920、ram930、用户接口940和数据存储设备300供电。

cpu920可以对应于主机200,数据存储设备300可以响应于来自主机200的多访问命令(n-access)而在不同的物理地址上执行访问操作。

图17中所示的数据处理系统900’类似于图16中所示的数据处理系统900;因此将主要描述其间的差异以避免冗余。与图16中所示的数据处理系统900相比,图17中所示的数据处理系统900’还包括独立冗余磁盘阵列(raid)控制卡960。多个数据存储设备300-1至300-k(其中“k”是至少为2的整数)可以不直接与主机(即cpu920)接口,但是它们可以安装在raid控制卡960上,并且可以经由raid控制卡960与主机920对接。

分别在图16和17中所分别示出的数据处理系统900和900’的每一个可以是计算机、pda、蜂窝电话、智能电话、mp3播放器、pmp、汽车导航系统或mid,但不限于这些示例。

如上所述,根据本发明构思的一些实施例,最初在主机和数据存储设备之间定义的多访问命令用于使用单个命令传输多个地址和数据,使得数据存储设备的数据处理效率增加,并且主机和数据存储设备之间的数据传输效率也提高。结果,降低了数据存储设备和包括数据存储设备的数据处理系统的功耗。

尽管已经参考本发明的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解,可以在形式和细节上进行各种改变,而不脱离附加的权利要求精神和范围。

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