进行存储空间管理的方法以及数据存储装置及其控制器与流程

文档序号:20874441发布日期:2020-05-26 16:17阅读:128来源:国知局
本发明关于闪存(flashmemory)的存取(access),尤指一种用来进行存储空间管理的方法以及相关的数据存储装置及其控制器。
背景技术
::闪存可广泛地应用于各种可携式或非可携式数据存储装置(例如:符合sd/mmc、cf、ms、xd或ufs标准的记忆卡;又例如:固态硬盘;又例如:符合ufs或emmc规格的嵌入式(embedded)存储装置)中。以常用的nand型闪存而言,最初有单阶细胞(singlelevelcell,slc)、多阶细胞(multiplelevelcell,mlc)等类型的闪存。由于存储器的技术不断地发展,较新的数据存储装置产品可采用三阶细胞(triplelevelcell,tlc)闪存,甚至四阶细胞(quadruplelevelcell,qlc)闪存。为了确保数据存储装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理其内部运作。依据现有技术,有了这些管理机制的数据存储装置还是有不足的处。举例来说,当存取所述数据存储装置时,主机(hostdevice)于传统模式中可能以某个大小的单位诸如0.5kb(kilobyte;千字节)来存取,而这些管理机制可能主要以另一个大小的单位诸如4kb来进行所述数据存储装置的内部管理,其中所述数据存储装置中的既有的设计可使所述数据存储装置兼容于所述传统模式中的主机。针对较新主机的4kb原生模式(4-kbnativemode),现有技术中缺乏立即可行的解决方案来使所述数据存储装置兼容于所述4kb原生模式。于是,所述数据存储装置的硬件架构被迫要被修改,换句话说,需要重新开发其新的集成电路,这可导致相关成本(诸如材料成本与人力成本)大幅地增加。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下实现兼容于所述4kb原生模式的数据存储装置。技术实现要素:本发明之一目的在于公开一种用来进行存储空间管理的方法以及相关的数据存储装置及其控制器,以解决上述问题。本发明的另一目的在于公开一种用来进行存储空间管理的方法以及相关的数据存储装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化(optimal)效能。本发明的至少一实施例公开一种用来进行存储空间管理的方法,其中所述方法是应用于一数据存储装置,所述数据存储装置包括一非挥发性存储器(non-volatilememory,nvmemory),且所述非挥发性存储器包括至少一非挥发性存储器组件(nvmemoryelement)。所述方法可包括:从一主机(hostdevice)接收一辨识控制器(identifycontroller)指令;因应所述辨识控制器指令,回传(return)一回复至所述主机,以指出支持多个逻辑区块地址格式(logicalblockaddressformat,lbaformat),其中所述多个逻辑区块地址格式是关于所述非挥发性存储器的存取(access),且所述多个逻辑区块地址格式包括一第一逻辑区块地址格式与一第二逻辑区块地址格式;从所述主机接收一第一命名空间管理(namespacemanagement,nsmanagement)指令;因应所述第一命名空间管理指令,建立(establish)采用所述第一逻辑区块地址格式的一第一命名空间;从所述主机接收一第二命名空间管理指令;以及因应所述第二命名空间管理指令,建立采用所述第二逻辑区块地址格式的一第二命名空间。本发明的至少一实施例公开一种数据存储装置,其可包括:一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括至少一非挥发性存储器组件;以及一控制器,耦接至所述非挥发性存储器,用来控制所述数据存储装置的运作。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令(hostcommand)控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器。例如:所述控制器从所述主机接收一辨识控制器指令;因应所述辨识控制器指令,所述控制器回传一回复至所述主机,以指出支持多个逻辑区块地址格式,其中所述多个逻辑区块地址格式是关于所述非挥发性存储器的存取,且所述多个逻辑区块地址格式包括一第一逻辑区块地址格式与一第二逻辑区块地址格式;所述控制器从所述主机接收一第一命名空间管理指令;因应所述第一命名空间管理指令,所述控制器建立采用所述第一逻辑区块地址格式的一第一命名空间;所述控制器从所述主机接收一第二命名空间管理指令;以及因应所述第二命名空间管理指令,所述控制器建立采用所述第二逻辑区块地址格式的一第二命名空间。本发明的至少一实施例公开一种数据存储装置的控制器,其中所述数据存储装置包括所述控制器与一非挥发性存储器,且所述非挥发性存储器包括至少一非挥发性存储器组件。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器。例如:所述控制器从所述主机接收一辨识控制器指令;因应所述辨识控制器指令,所述控制器回传一回复至所述主机,以指出支持多个逻辑区块地址格式,其中所述多个逻辑区块地址格式是关于所述非挥发性存储器的存取,且所述多个逻辑区块地址格式包括一第一逻辑区块地址格式与一第二逻辑区块地址格式;所述控制器从所述主机接收一第一命名空间管理指令;因应所述第一命名空间管理指令,所述控制器建立采用所述第一逻辑区块地址格式的一第一命名空间;所述控制器从所述主机接收一第二命名空间管理指令;以及因应所述第二命名空间管理指令,所述控制器建立采用所述第二逻辑区块地址格式的一第二命名空间。本发明的好处的一是,通过动态的存储空间管理,本发明能针对所述控制器的运作进行妥善的控制,尤其,能在使用相同的硬件架构的状况下因应用户的各种需求(例如上述传统模式或上述4kb原生模式)来存取非挥发性存储器。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,现有技术的问题可被解决,且整体成本不会增加太多。相较于现有技术,本发明能在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化效能。附图说明图1为依据本发明一实施例的一种数据存储装置与一主机(hostdevice)的示意图。图2为依据本发明一实施例的一种用来进行存储空间管理的方法的工作流程。图3绘示图2所示方法于一实施例中的管理方案。图4绘示图2所示方法于一实施例中的关于存取控制的工作流程。其中,附图标记说明如下:50主机100数据存储装置110存储器控制器112微处理器112c程序代码112m只读存储器114控制逻辑电路116缓冲存储器116t,120tl2p表118传输接口电路120非挥发性存储器122,122-1,122-2,…,122-n非挥发性存储器组件200,400工作流程s11,s12,s21,s22,s23,s24,s25,s31,s32,s33,s34,s35,s41,s42,s43步骤310存储容量311,312命名空间321,322l2p表330存储空间lba#0,lba#1,…,lba#(lbc2-1),…,lba#(lbc1-1)逻辑区块地址具体实施方式请参考图1,图1为依据本发明一第一实施例的一种数据存储装置100与一主机(hostdevice)50的示意图。例如:数据存储装置100可为固态硬盘(solidstatedrive,ssd)。另外,主机50的例子可包括(但不限于):多功能移动电话(multifunctionalmobilephone)、平板计算机(tablet)、以及个人计算机(personalcomputer)诸如桌面计算机与膝上型计算机。依据本实施例,数据存储装置100可包括一控制器诸如存储器控制器110,且可还包括一非挥发性存储器(non-volatilememory,nvmemory)120,其中所述控制器是用来存取(access)非挥发性存储器120,且非挥发性存储器120是用来存储信息。非挥发性存储器120可包括多个非挥发性存储器组件(nvmemoryelement)122-1、122-2、…与122-n,其中符号「n」可代表大于一的正整数。例如:非挥发性存储器120可为一闪存(flashmemory),而非挥发性存储器组件122-1、122-2、…与122-n可分别为多个闪存芯片(flashmemorychip;也可以称为快闪芯片)或多个闪存裸晶(flashmemorydie;也可以称为快闪裸晶),但本发明并不限于此。另外,数据存储装置100可更包括挥发性存储器组件以缓存数据,其中,所述挥发性存储器组件较佳为动态随机存取存储器(dynamicrandomaccessmemory,简称dram)。如图1所示,存储器控制器110可包括处理电路诸如微处理器112、存储器诸如一只读存储器(readonlymemory,rom)112m、控制逻辑电路114、缓冲存储器116、与传输接口电路118,其中这些组件可通过一总线彼此耦接。缓冲存储器116是以随机存取存储器(randomaccessmemory,ram)来实施,较佳为静态随机存取存储器(staticram,简称sram)。存储器控制器110可将缓冲存储器116作为第一外部快取(cache),并将所述挥发性存储器组件作为第二外部快取,所述挥发性存储器组件的数据存储量较佳大于缓冲存储器116的数据存储量,且所述挥发性存储器组件所缓存的数据较佳来自于缓冲存储器116。本实施例的只读存储器112m是用来存储一程序代码112c,而微处理器112则用来执行程序代码112c以控制对非挥发性存储器120的存取。请注意,程序代码112c也可存储在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114可包括一错误更正码电路(未显示),以保护数据、及/或进行错误更正,而传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(serialadvancedtechnologyattachment,sata)标准、快捷外设互联(peripheralcomponentinterconnectexpress,pcie)标准或非挥发性存储器快捷(non-volatilememoryexpress,nvme)标准)且可依据所述特定通信标准进行通信。于本实施例中,主机50可通过传送多个主机指令(hostcommand)与对应的逻辑地址予存储器控制器110来间接地存取数据存储装置100中的非挥发性存储器120。存储器控制器110接收所述多个主机指令与逻辑地址,并将所述多个主机指令分别转译成存储器操作指令(简称操作指令),再以操作指令控制非挥发性存储器120读取、写入(write)/编程(program)非挥发性存储器120当中特定实体地址的记忆单位(memoryunit)或数据页(page),其中实体地址对应于逻辑地址。另外,存储器控制器110可存储及更新至少一逻辑对实体地址映像表(logical-to-physicaladdressmappingtable,可简称为「l2p表」),诸如缓冲存储器116中的l2p表116t以及非挥发性存储器120中的l2p表120t,以管理所述实体地址与所述逻辑地址之间的多个映像关系,以供进行存取控制。例如,l2p表120t可包括所述多个映像关系的全部映像信息。另外,l2p表120t可分割成数个群组(group),而存储器控制器110可依缓冲存储器116的容量大小而将其中一个群组或全部群组加载于缓冲存储器116中作为l2p表116t,以供快速参考,但本发明不限于此。当用户数据更新时,存储器控制器110可依据用户数据的最新映像关系来更新l2p表116t及/或120t。为了便于理解,l2p表120t可存储在非挥发性存储器组件122-1中,但本发明不限于此。例如,存储器控制器110可将l2p表120t存储于非挥发性存储器120中的任何一个非挥发性存储器组件122-n(“n”可代表区间[1,n]中之任一整数),诸如非挥发性存储器组件122-1、122-2、…与122-n中的任一者,其中,l2p表120t的一个群组的大小较佳等于非挥发性存储器组件122-n的一个页面(page)的大小,例如16kb。又例如,l2p表120t的一个群组的大小亦可等于多个非挥发性存储器组件122的一个页面(page)的大小,例如在n=4的情况下,4个非挥发性存储器组件122的一个页面(page)的大小,即64kb,其中这4个非挥发性存储器组件122的页面(page)亦可称为超级页面(superpage)。此外,存储器控制器110可依据不同的组态来决定l2p表116t与120t的格式。例如,基于一第一组态,例如:逻辑区块大小等于0.5kb,存储器控制器110可产生对应于一第一逻辑区块地址格式的l2p表116t与120t。又例如,基于一第二组态,例如:逻辑区块大小等于4kb,存储器控制器110可产生对应于一第二逻辑区块地址格式的l2p表116t与120t。因此,本发明的记忆装置100(尤其,其内的存储器控制器110与微处理器112)能在使用相同的硬件架构的状况下因应各种组态的设定而正确地存取非挥发性存储器120。图2为依据本发明一实施例的一种用来进行存储空间管理的方法的工作流程200。例如:在所述处理电路诸如微处理器112的控制下,所述控制器诸如存储器控制器110可进行工作流程200的运作。为了便于理解,于工作流程200中的第一命名空间与第二命名空间分别描述为命名空间ns#1与ns#2,且对应的第一逻辑对实体地址映像表与第二逻辑对实体地址映像表分别描述为逻辑对实体地址映像表l2p#1与l2p#2。于步骤s11中,存储器控制器110从主机50接收一辨识指令,例如:符合nvme标准的辨识控制器指令。存储器控制器110与主机50可直接以符合nvme标准的指令彼此沟通。又例如,存储器控制器110与主机50可通过其它标准的指令来传送或接收符合nvme标准的指令以彼此沟通。于步骤s12中,因应所述辨识控制器指令,存储器控制器110回传一回复至主机50,以指出支持多个逻辑区块地址格式,其中所述多个逻辑区块地址格式中的每一逻辑区块地址格式可用来决定某一命名空间(例如命名空间ns#1与ns#2的其中的一)中的一逻辑区块(尤其,每一逻辑区块)所表示的数据量的大小。依据本实施例,所述多个逻辑区块地址格式可包括所述第一逻辑区块地址格式与所述第二逻辑区块地址格式,所述第一逻辑区块地址格式例如为0.5kb逻辑区块地址格式(其每一逻辑区块的大小为0.5kb),而所述第二逻辑区块地址格式例如为4kb逻辑区块地址格式(其每一逻辑区块的大小为4kb)。于步骤s21中,存储器控制器110从主机50接收一第一命名空间管理指令。于步骤s22中,因应所述第一命名空间管理指令,存储器控制器110建立采用所述第一逻辑区块地址格式的一命名空间ns#1。于步骤s23中,存储器控制器110从主机50接收一第一命名空间附加指令。于步骤s24中,因应所述第一命名空间附加指令,存储器控制器110建立一逻辑对实体地址映像表l2p#1(其可作为l2p表120t的一个例子),以供管理命名空间ns#1的存取。于步骤s25中,存储器控制器110进行一或多个存取运作,诸如写入运作与读取运作。依据本实施例,因应来自主机50的一第一写入指令,存储器控制器110可于命名空间ns#1(例如其内的一逻辑地址lba#(x1))写入第一数据,且对应地更新逻辑对实体地址映像表l2p#1,以指出至少一逻辑地址(例如逻辑地址lba#(x1))与所述第一数据之间的映像关系。因应来自主机50的一第一读取指令,存储器控制器110可依据逻辑对实体地址映像表l2p#1(例如其内的所述映像关系)从命名空间ns#1读取所述第一数据。步骤s25为非必要步骤。于步骤s31中,存储器控制器110从主机50接收一第二命名空间管理指令。于步骤s32中,因应所述第二命名空间管理指令,存储器控制器110建立采用所述第二逻辑区块地址格式的一命名空间ns#2。于步骤s33中,存储器控制器110从主机50接收一第二命名空间附加指令。于步骤s34中,因应所述第二命名空间附加指令,存储器控制器110建立一逻辑对实体地址映像表l2p#2(其可作为l2p表120t的另一个例子),以供管理命名空间ns#2的存取。于步骤s35中,存储器控制器110进行一或多个存取运作,诸如写入运作与读取运作。依据本实施例,因应来自主机50的一第二写入指令,存储器控制器110可于命名空间ns#2(例如其内的一逻辑地址lba#(x2))写入第二数据,且对应地更新逻辑对实体地址映像表l2p#2,以指出至少一逻辑地址(例如逻辑地址lba#(x2))与所述第二数据之间的映像关系。因应来自主机50的一第二读取指令,存储器控制器110可依据逻辑对实体地址映像表l2p#2(例如其内的所述映像关系)从命名空间ns#2读取所述第二数据。步骤s35为非必要步骤。另外,存储器控制器110可将逻辑对实体地址映像表l2p#1以及l2p#2整合至全球(global)逻辑对实体地址映像表gl2p,换句话说,以全球逻辑对实体地址映像表gl2p来包括逻辑对实体地址映像表l2p#1以及l2p#2的内容。为了更好地理解,所述方法可用图2所示工作流程200来说明,但本发明不限于此。依据某些实施例,一个或多个步骤可于工作流程200中增加、删除或修改。图3绘示图2所示方法于一实施例中的管理方案,其中命名空间311与312可分别作为命名空间ns#1与ns#2的例子,且l2p表321与322可分别作为逻辑对实体地址映像表l2p#1与l2p#2的例子。假设非挥发性存储器120的存储容量310为512gb(giga-byte;十亿字节),命名空间311与312具有相同的存储容量,各为256gb。命名空间311中的第一逻辑区块的数量lbc1等于一第一预定数量,例如512m(mega;百万),且所述多个第一逻辑区块中的每一第一逻辑区块的大小等于第一预定大小,例如0.5kb,第一预定大小与第一预定数量的乘积等于命名空间311的存储容量。另外,命名空间312中的第二逻辑区块的数量lbc2等于一第二预定数量,例如64m,且所述多个第二逻辑区块中的每一第二逻辑区块的大小等于第二预定大小,例如4kb,第二预定大小与第二预定数量的乘积等于命名空间312的存储容量。由上述中可知,在相同存储容量的条件下,逻辑区块的大小与逻辑区块的数量呈反比,例如,逻辑区块的大小由0.5kb变更成4kb,变大了8倍,则逻辑区块的数量由512m变更成64m,变为1/8。另外,存储器控制器110可以利用一预定数据量,例如0.5kb,作为数据存取量的默认值,并记录一个倍数值以表示每一组态的逻辑区块大小,例如,第一组态的逻辑区块大小为0.5kb,所以倍数值为1;第二组态的逻辑区块大小为4kb,所以倍数值为8。当存储器控制器110存取非挥发性存储器120,存储器控制器110可依据默认值以及倍数值来决定存取非挥发性存储器120的数据存取量。如图3所示,命名空间311与312具有相同的存储容量,且命名空间311与312中的每一命名空间占有非挥发性存储器120当中一半的存储空间330。在命名空间311被建立之后,逻辑地址lba#(x1)可为对应的逻辑地址{lba#0,lba#1,…,lba#(lbc1-1)}中的任一者。存储器控制器110可将主机50指定存储于逻辑地址lba#(x1)的数据存储于非挥发性存储器120中的某一实体地址,且将逻辑地址lba#(x1)以及这个实体地址之间的映像关系存储于l2p表321中。逻辑地址lba#0可作为逻辑地址lba#(x1)的例子。实体地址可存储等于或超过第一预定大小的数据量。另外,在命名空间312被建立之后,逻辑地址lba#(x2)可为对应的逻辑地址{lba#0,lba#1,…,lba#(lbc2-1)}中的任一者。存储器控制器110可将主机50指定存储于逻辑地址lba#(x2)的数据存储于非挥发性存储器120中的某一实体地址,且将逻辑地址lba#(x2)以及这个实体地址之间的映像关系存储于l2p表322中。逻辑地址lba#0可作为逻辑地址lba#(x2)的例子。实体地址可存储等于或超过第二预定大小的数据量。图4绘示图2所示方法于一实施例中的关于存取控制的工作流程400。例如:在所述处理电路诸如微处理器112的控制下,所述控制器诸如存储器控制器110可进行工作流程400的运作。于步骤s41中,存储器控制器110从主机50接收一存取指令。例如,所述存取指令可为存取命名空间311的第一写入指令或存取命名空间312的第二写入指令。又例如,所述存取指令可为存取命名空间311的第一读取指令或存取命名空间312的第二读取指令。于步骤s42中,存储器控制器110依据对应于命名空间标识符(nsidentifier)nsid的控制参数进行存取控制,且选择性地更新逻辑对实体地址映像表l2p#(y),诸如逻辑对实体地址映像表l2p#1或l2p#2。依据本实施例,在命名空间标识符nsid等于命名空间ns#1的标识符ns#1(以同名称的斜体字表示,以便于理解)的状况下,逻辑对实体地址映像表l2p#(y)代表逻辑对实体地址映像表l2p#1,而所述多个控制参数可分别等于一组第一预设参数。在命名空间标识符nsid等于命名空间ns#2的标识符ns#2(以同名称的斜体字表示,以便于理解)的状况下,逻辑对实体地址映像表l2p#(y)代表逻辑对实体地址映像表l2p#2,而所述多个控制参数可分别等于一组第二预设参数。另外,当所述存取指令是一写入指令(诸如所述第一写入指令或所述第二写入指令),在存储器控制器110将写入指令中的用户数据写入非挥发性存储器120以后,或将用户数据写入缓冲存储器116以后,存储器控制器110更新逻辑对实体地址映像表l2p#(y)。当所述存取指令是一读取指令(诸如所述第一读取指令或所述第二读取指令),存储器控制器110不需要更新逻辑对实体地址映像表l2p#(y)。于步骤s43中,存储器控制器110回传完成组件(completionelement)至主机50,其中所述完成组件可为符合nvme标准的完成信息。依据本实施例,所述写入指令(诸如所述第一写入指令或所述第二写入指令)可为符合nvme通信协议的数据写入指令,而所述读取指令(诸如所述第一读取指令或所述第二读取指令)可为符合nvme通信协议的数据读取指令写入指令。于执行完符合nvme通信协议的数据写入指令或数据读取指令以后,存储器控制器110可写入符合nvme通信协议的完成组件至主机50,但本发明并不限于此。为了更好地理解,所述方法中的存取控制的相关运作可用图4所示工作流程400来说明,但本发明不限于此。依据某些实施例,一个或多个步骤可于工作流程400中增加、删除或修改。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1