高效能垃圾收集方法以及数据存储装置及其控制器与流程

    专利查询2022-07-07  116

    高效能垃圾收集方法以及数据存储装置及其控制器1.原申请案的申请日、申请号和发明创造名称如下:2.申请日:2019/02/18;3.申请号:201910120853.1;以及4.发明创造名称:高效能垃圾收集方法以及数据存储装置及其控制器。
    技术领域
    :5.本发明关于闪存(flashmemory)的存取(access),尤指一种高效能垃圾收集方法以及相关的数据存储装置及其控制器。
    背景技术
    ::6.闪存可广泛地应用于各种可携式或非可携式数据存储装置(例如:符合sd/mmc、cf、ms、xd或ufs标准的记忆卡;又例如:固态硬盘;又例如:符合ufs或emmc规格的嵌入式(embedded)存储装置)中。以常用的nand型闪存而言,最初有单阶细胞(singlelevelcell,slc)、多阶细胞(multiplelevelcell,mlc)等类型的闪存。由于存储器的技术不断地发展,较新的数据存储装置产品可采用三阶细胞(triplelevelcell,tlc)闪存,甚至四阶细胞(quadruplelevelcell,qlc)闪存。为了确保数据存储装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理其内部运作。7.依据闪存的运作特性,数据存储装置可支持修剪(trim)指令,此修剪指令包括起始逻辑地址以及数量等信息以表示欲无效化的目标数据,接着,数据存储装置再依据修剪指令进行目标数据无效化的处理。然而,执行修剪指令不但花费许多时间,如果修剪指令所欲修剪的目标数据正巧已复制到垃圾收集(garbagecollection,gc)程序中的目的区块(destinationblock),这将造成数据管理的复杂度,在特定的情况下,甚至导致数据存储装置无法及时完成修剪指令而导致指令超时(commandtimeout)事件的发生。为了避免指令超时事件的发生,所述数据存储装置可能被迫立即执行一系列相关操作,这可造成所述数据存储装置的整体效能降低。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下实现具有优化效能的数据存储装置。技术实现要素:8.本发明的一目的在于公开一种高效能垃圾收集方法以及相关的数据存储装置及其控制器,以解决上述问题。9.本发明的另一目的在于公开一种高效能垃圾收集方法以及相关的数据存储装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到优化效能。10.本发明的至少一实施例公开一种高效能垃圾收集方法,其中所述方法应用于一数据存储装置,所述数据存储装置包括一非挥发性存储器(non-volatilememory,nvmemory),且所述非挥发性存储器包括至少一非挥发性存储器组件(nvmemoryelement)。所述方法可包括:启动并执行一垃圾收集程序;判断是否有收到来自一主机(hostdevice)的一修剪(trim)指令;因应收到所述修剪指令,判断所述修剪指令的目标数据是否存储在所述垃圾收集程序的一来源区块;因应所述目标数据存储在所述来源区块,判断存储在所述来源区块的所述目标数据是否已被复制至所述垃圾收集程序的一目的区块;以及因应存储在所述来源区块的所述目标数据已被复制至所述目的区块,于一逻辑对实体地址映射表(logical-to-physicaladdressmappingtable,简称「l2p表」)中将所述修剪指令的所述目标数据的至少一实体地址变更为一修剪标签(trimtag),其中所述修剪标签指出所述目标数据已被无效化。11.本发明的至少一实施例公开一种数据存储装置,其可包括:一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括至少一非挥发性存储器组件;以及一控制器,耦接至所述非挥发性存储器,用来控制所述数据存储装置的运作。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令(hostcommand)控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器。例如:所述控制器启动并执行一垃圾收集程序;所述控制器判断是否有收到来自所述主机的一修剪指令;因应收到所述修剪指令,所述控制器判断所述修剪指令的目标数据是否存储在所述垃圾收集程序的一来源区块;因应所述目标数据存储在所述来源区块,所述控制器判断存储在所述来源区块的所述目标数据是否已被复制至所述垃圾收集程序的一目的区块;以及因应存储在所述来源区块的所述目标数据已被复制至所述目的区块,所述控制器于一l2p表中将所述修剪指令的所述目标数据的至少一实体地址变更为一修剪标签,其中所述修剪标签指出所述目标数据已被无效化。12.本发明的至少一实施例公开一种数据存储装置的控制器,其中所述数据存储装置包括所述控制器与一非挥发性存储器,且所述非挥发性存储器包括至少一非挥发性存储器组件。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器。例如:所述控制器启动并执行一垃圾收集程序;所述控制器判断是否有收到来自所述主机的一修剪指令;因应收到所述修剪指令,所述控制器判断所述修剪指令的目标数据是否存储在所述垃圾收集程序的一来源区块;因应所述目标数据存储在所述来源区块,所述控制器判断存储在所述来源区块的所述目标数据是否已被复制至所述垃圾收集程序的一目的区块;以及因应存储在所述来源区块的所述目标数据已被复制至所述目的区块,所述控制器于一l2p表中将所述修剪指令的所述目标数据的至少一实体地址变更为一修剪标签,其中所述修剪标签指出所述目标数据已被无效化。13.本发明的一或多个好处是,通过于至少一管理表中插入一或多个修剪标签,本发明能针对所述控制器的运作进行妥善的控制,尤其,能在使用相同的硬件架构的状况下顺畅地执行各种管理机制(诸如垃圾收集机制、修剪机制等)的操作,且能确保所述数据存储装置于某一规范所定义的一最大容许时间(例如8秒)以内完成一存取操作,而不发生任何延迟。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,相关技术的问题可被解决,且整体成本不会增加太多。相较于相关技术,本发明能在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化效能。附图说明14.图1为依据本发明一实施例的一种数据存储装置与一主机(hostdevice)的示意图。15.图2绘示依据本发明一实施例的一l2p表。16.图3为依据本发明一实施例的一种高效能垃圾收集方法的工作流程。17.图4绘示图2所示的l2p表的一更新版本,其中所述更新版本包括一修剪标签。18.图5绘示依据本发明一实施例的一实体对逻辑地址映射表(physical-to-logicaladdressmappingtable,简称「p2l表」)。19.图6绘示图2所示的l2p表的另一更新版本。20.图7绘示图5所示的p2l表的一更新版本。21.其中,附图标记说明如下:22.50ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ主机23.100ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ数据存储装置24.110ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ存储器控制器25.112ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ微处理器26.112cꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ程序码27.112mꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ只读存储器28.114ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ控制逻辑电路29.116ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ缓冲存储器30.116gtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀl2p分组表31.118ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ传输接口电路32.120ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ非挥发性存储器33.122-1、122-2、…、122-nꢀꢀꢀꢀꢀꢀꢀꢀꢀ非挥发性存储器组件34.120t、200ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀl2p表35.lba#0、lba#1、lba#2、…、36.lba#100、lba#101、37.lba#102、…、lba#1022、38.lba#1023、…、lba#1047553、39.lba#1047554、lba#1047555、…、40.lba#1048000、lba#1048001、41.lba#1048002、…、42.lba#1048570、lba#1048571ꢀꢀꢀꢀꢀꢀꢀꢀ逻辑区块地址43.blk#0、blk#1、blk#2、…、44.blk#12、…ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ区块编号45.page#0、page#1、page#2、46.page#3、page#4、…、47.page#400、page#401、page#402、48.page#403、page#404、…、49.page#511ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ页面编号50.300ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ工作流程51.s302、s304、s306、s308、s310、52.s312、s314、s316ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ步骤具体实施方式53.请参考图1,图1为依据本发明一第一实施例的一种数据存储装置100与一主机(hostdevice)50的示意图。例如:数据存储装置100可为固态硬盘(solidstatedrive,ssd)。另外,主机50的例子可包括(但不限于):多功能移动电话(multifunctionalmobilephone)、平板计算机(tablet)、以及个人计算机(personalcomputer)诸如桌面计算机与膝上型计算机。依据本实施例,数据存储装置100可包括一控制器诸如存储器控制器110,且可还包括一非挥发性存储器(non-volatilememory,nvmemory)120,其中所述控制器是用来存取(access)非挥发性存储器120,且非挥发性存储器120是用来存储信息。54.非挥发性存储器120可包括多个非挥发性存储器组件(nvmemoryelement)122-1、122-2、…与122-n,其中符号「n」可代表大于一的正整数。例如:非挥发性存储器120可为一闪存(flashmemory),而非挥发性存储器组件122-1、122-2、…与122-n可分别为多个闪存芯片(flashmemorychip;可简称为快闪芯片)或多个闪存裸晶(flashmemorydie;可简称为快闪裸晶),但本发明并不限于此。此外,数据存储装置100可更包括一挥发性存储器组件以缓存数据,其中,所述挥发性存储器组件较佳为动态随机存取存储器(dynamicrandomaccessmemory,简称dram)。挥发性存储器组件可提供适当的数据暂存空间以缓存数据,或是仅提供小量的数据暂存空间以缓存数据。在下述中将以数据存储装置100并未配置挥发性存储器组件的架构进行说明,但不以此为限。55.存储器控制器110可包括处理电路诸如微处理器112、存储器诸如一只读存储器(readonlymemory,rom)112m、控制逻辑电路114、缓冲存储器116、与传输接口电路118,其中这些组件可通过一总线彼此耦接。缓冲存储器116是以随机存取存储器(randomaccessmemory,ram)来实施,较佳为静态随机存取存储器(staticram,简称sram)。存储器控制器110可利用缓冲存储器116作为第一外部快取(cache),并利用所述挥发性存储器组件作为第二外部快取。举例来说,所述挥发性存储器组件的数据存储量较佳大于缓冲存储器116的数据存储量,且所述挥发性存储器组件所缓存的数据较佳来自于缓冲存储器116。56.本实施例的只读存储器112m是用来存储一程序码112c,而微处理器112则用来执行程序码112c以控制对非挥发性存储器120的存取。请注意,程序码112c也可存储在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114可包括一错误更正码电路(未显示),以保护数据、及/或进行错误更正,而传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(serialadvancedtechnologyattachment,sata)标准、快捷外设互联(peripheralcomponentinterconnectexpress,pcie)标准或非挥发性存储器快捷(non-volatilememoryexpress,nvme)标准)且可依据所述特定通信标准进行通信。57.于本实施例中,主机50可通过传送多个主机指令(hostcommand)与对应的逻辑地址,例如:逻辑区块地址(logicalblockaddress,lba)予存储器控制器110来间接地存取数据存储装置100中的非挥发性存储器120。存储器控制器110接收所述多个主机指令与逻辑地址,并将所述多个主机指令分别转译成存储器操作指令(简称操作指令),再以操作指令控制非挥发性存储器120读取、写入(write)/编程(program)非挥发性存储器120当中特定实体地址的页面(page)。逻辑地址与实体地址的映射关系可记录于一映射表诸如逻辑对实体地址映射表(简称「l2p表」)120t。例如,存储器控制器110可记录指出这些映射关系的映射信息于l2p表120t中,且可于需要时记录其它信息于l2p表120t中。于某些实施例中,上述其它信息可包括一修剪标签(trimtag)。58.为了方便读取以及管理l2p表120t,较佳可将l2p表120t分割成多个l2p分组表,而所述多个l2p分组表中的每一l2p分组表较佳可存储至一个数据页或超级数据页(superpage)中。图2绘示依据本发明一实施例的一l2p表200。l2p表200可作为l2p表120t的一个例子。l2p表200可分割成1024个l2p分组表(诸如l2p分组表#0、…以及l2p分组表#1023),且这些l2p分组表中的每一个l2p分组表可记录1024个逻辑区块地址与实体地址(physicaladdress,pba)的映射关系,其中,实体地址可由通道(channel)编号、逻辑单元编号(logicalunitnumber,lun)、平面(plane)编号、区块编号、页面编号以及偏移量(offset)所组成。在下述中将以区块编号诸如blk#0、blk#1、blk#2、…等以及页面编号诸如page#0、page#1、page#2、…等来简化表示实体地址,其中区块编号blk#0、blk#1、blk#2、…等可分别代表区块#0、区块#1、区块#2、…等,而页面编号page#0、page#1、page#2、…等可分别代表页面#0、页面#1、页面#2、…等,但本发明不以此为限。例如,l2p分组表#0可包括分别对应于逻辑区块地址lba#0、lba#1、lba#2、…、lba#100、lba#101、lba#102、…、lba#1022与lba#1023的字段,以供存储实体地址。又例如,l2p分组表#1023可包括分别对应于逻辑区块地址lba#1047553、lba#1047554、lba#1047555、…、lba#1048000、lba#1048001、lba#1048002、…、lba#1048570、lba#1048571的字段,以供存储实体地址。此外,这些l2p分组表中的每一个l2p分组表的1024个字段中的每一字段的初始值可为一预设值或无效值,诸如0xffff-ffff(代表十六进制数的「0x」于图2及后续图示中予以省略,以求简明)。59.在数据存储装置100运作的期间,存储器控制器110可于需要时读取非挥发性存储器120所存储的l2p表120t(例如所述多个l2p分组表),尤其,可读取l2p表120t的一组l2p分组表,诸如所述多个l2p分组表中的一部分l2p分组表或全部的l2p分组表,并将所述组l2p分组表暂存至一存储器诸如缓冲存储器116,以执行数据管理相关操作。如图1所示的l2p分组表116gt可作为所述组l2p分组表的例子。当数据存储装置100中有用户数据需要被新增、修剪或更新时,存储器控制器110可依据用户数据的最新映射关系来更新l2p分组表116gt及/或l2p表120t。60.由于缓冲存储器116典型地仅具备有限的数据存储空间,例如,仅能暂存8个l2p分组表,因此,存储器控制器110会交换(swap)缓冲存储器116所储的l2p分组表116gt,例如,从非挥发性存储器120读取一个新l2p分组表,并以此l2p分组表替代缓冲存储器116所储的一个旧l2p分组表。另外,存储器控制器110较佳建立一个分组位置表以记录所述多个l2p分组表中的每一l2p分组表在非挥发性存储器120的实体地址。另外,存储器控制器110较佳建立一个分组暂存表以标记所述组l2p分组表中的每一l2p分组表在缓冲存储器116的实体地址。其中,所述分组位置表以及所述分组暂存表可整合至一分组管理表以简化表格的管理。61.一l2p分组表的大小较佳等于非挥发性存储器组件122-n的一个页面(page)的大小,例如16kb。又例如,存储器控制器110将4个不同区块的页面虚拟成一个超级页面(superpage),此时一l2p分组表的大小为64kb。另外,存储器控制器110较佳以一快速编程模式将所述多个l2p分组表编程至非挥发性存储器120,其中,所述快速编程模式例如是slc编程模式,而预设编程模式可为tlc编程模式或qlc编程模式。其中,此4个区块可分别置于不同的通道或由不同的芯片启用(chipenable,ce)信号所控制。62.存储器控制器110于执行一垃圾收集程序的期间,可将一来源区块(sourceblock)的有效页面(或有效数据)数据复制至一目的区块(destinationblock)中。例如,于所述目的区块被关闭(close)或不再需要写入有效页面数据至所述目的区块时,存储器控制器110产生一实体对逻辑地址映射表(physical-to-logicaladdressmappingtable,简称「p2l表」)并将所述p2l表存储至所述目的区块,接着,再以所述p2l表更新l2p分组表116gt,之后,依据l2p分组表116gt进一步更新l2p表120t。在所述垃圾收集程序中,来源区块的数量可大于一,且这些来源区块较佳为具有较少或最少有效页面数据的数据区块,或是具有较冷(例如编程时间最久)的有效页面数据的数据区块。此外,当l2p分组表116gt或l2p表120t更新完成后,所述垃圾收集程序所涉及的任何来源区块(例如所述来源区块或这些来源区块)可被重新定义为闲置区块以供重复利用。所述目的区块可选自于一闲置区块池或是多个队列(queued)的闲置区块。这些闲置区块较佳为闲置区块池中具有最小抺写次数(erasecount)的闲置区块。63.图3为依据本发明一实施例的一种高效能垃圾收集方法的工作流程300。例如:在所述处理电路诸如微处理器112的控制下,所述控制器诸如存储器控制器110可进行工作流程300的运作。工作流程300中的某些步骤可包括判断操作,而存储器控制器110可依据这些判断操作的各自的判断结果执行工作流程300中的后续步骤的操作,诸如对应于这些判断结果的后续操作,以达到数据存储装置的优化效能。64.于步骤s302中,存储器控制器110启动并执行垃圾收集程序,其中,启动垃圾收集程序后,垃圾收集程序可于前景或背景中执行。另外,垃圾收集程序可由存储器控制器110自主启动或依主机50的要求而启动。此外,垃圾收集程序可分段执行或整段执行。于分段执行时,存储器控制器110将来源区块(sourceblock)的有效页面(或有效数据)数据分段地复制至目的区块(destinationblock),并于分段中间执行来自主机50的主机指令。来源区块例如是区块#1的数据区块,并存储有20笔有效页面数据;目的区块例如是区块#12的闲置区块,可存储512笔页面数据。65.于步骤s304中,存储器控制器110判断是否有收到来自主机50的修剪指令,如果是则进入步骤s306,如果不是则可因应步骤s312的一判断结果进入步骤s302,以继续执行垃圾收集程序。修剪指令的起始逻辑地址例如是逻辑区块地址lba#100,数量例如是2,由上述信息可知修剪指令的二笔目标数据的逻辑地址为逻辑区块地址lba#100与lba#101,由l2p分组表#0可知,第一笔目标数据的实体地址为{blk#1,page#0},其代表区块#1的页面#0,第二笔目标数据的实体地址为{blk#2,page#0},其代表区块#2的页面#0,依此类推。66.于步骤s306中,存储器控制器110判断修剪指令的目标数据是否存储在垃圾收集程序的来源区块,如果是则进入步骤s308,如果不是则进入步骤s302,以继续执行垃圾收集程序。由以上说明可知,修剪指令的第一笔目标数据存储在来源区块,第二笔目标数据并未存储在来源区块。67.于步骤s308中,存储器控制器110判断存储在来源区块的目标数据是否已复制至目的区块,如果是则进入步骤s310,如果不是则进入步骤s302,以继续执行垃圾收集程序。68.于步骤s310中,存储器控制器110将l2p表200中修剪指令的目标数据的实体地址变更为一修剪标签(trimtag),之后,进入步骤s302,以继续执行垃圾收集程序,其中此修剪标签可指出此目标数据已被无效化。假设修剪指令的第一笔目标数据已由来源区块复制至目的区块,则存储器控制器110将l2p表200(更精确地说,l2p分组表#0)中lba#100所映射的实体地址变更为修剪标签,例如:0xffff-fffe,如图4所示。所述修剪标签可代表异于所述预设值的预定值(例如:0xffff-fffe),而所述预设值与所述预定值中的每一值可代表不存在任何一个实体地址与任何一个逻辑地址之间的映射关系。由于第二笔目标数据并未存储在来源区块,因此,存储器控制器110不变更逻辑区块地址lba#101在l2p表200中所映射的实体地址。69.于步骤s312中,存储器控制器110判断是否关闭垃圾收集程序的目的区块,如果是则进入步骤s314,如果不是,例如目的区块仍有空间可以写入有效页面(或有效数据)数据,则进入步骤s302,以继续执行垃圾收集程序。70.于步骤s314中,如果目的区块的有效页面数据在l2p表200的实体地址为修剪标签,则存储器控制器110将有效页面数据在l2p表200的实体地址变更为预设值。依据本实施例,存储器控制器110可检查是否所述目的区块的有效页面数据在l2p表200的实体地址为所述修剪标签,以决定是否将所述有效页面数据在l2p表200的所述实体地址变更为所述预设值。例如,在存储器控制器110建立l2p表200的一开始,l2p表200中的多个字段(field)中的每一字段的初始值等于所述预设值。71.于步骤s316中,存储器控制器110以其他有效页面数据在目的区块的实体地址更新l2p表200。关闭目的区块时,存储器控制器110依据目的区块的实体地址以及于这些实体地址所存储有效页面数据的逻辑地址产生一p2l表,诸如图5所示者,并以p2l表更新l2p表200。当欲以p2l表更新l2p表200时,存储器控制器110先判断l2p表200中欲更新的实体地址的值是否为修剪标签,如果是,则表示此有效页面数据在执行垃圾收集程序时已被修剪指令所修剪(无效化),因此,此有效页面数据已不再有效。在此情况下,针对此有效页面数据,存储器控制器110不以目的区块的实体地址来更新l2p表200,并将修剪标签(例如图4所示的ffff-fffe)变更为预设值或无效值,例如:0xffff-ffff,如图6所示。如此一来,即使页面数据已被复制至目的区块,此页面数据仍是无效的页面数据。如果l2p表200中欲更新的实体地址的值不是修剪标签,则表示此页面数据是有效页面数据。在此情况下,存储器控制器110以p2l表更新l2p表200,更新后的l2p表200如图6所示。最后,存储器控制器110将p2l表写入目的区块以关闭目的区块。72.需注意的是,如果处理修剪指令时,步骤s302或垃圾收集程序未被启动或执行时,存储器控制器110可依据预设的程序来处理修剪指令,例如,直接将目标数据在l2p表200的实体地址变更为预设值或无效值,或是分段地将l2p表200的这些实体地址变更为预设值或无效值。如果处理修剪指令时,步骤s302或垃圾收集程序已被启动或执行时,但是步骤s308的判断结果为否,即来源区块的目标数据尚未复制至目的区块,则存储器控制器110可依据预设的程序来处理修剪指令,例如,直接将目标数据在l2p表200的这些实体地址变更为预设值或无效值,由于对应于目标数据的这些个实体地址已变更为预设值,之后,存储器控制器110不会将来源区块的目标数据复制至目的区块。73.另外,由图5中可得知,虽然lba#100已为无效的页面数据,但是p2l表仍有记录。此时,如果主机50更新lba#100的用户数据,接着发生电力突然中断事件。虽然更新的lba#100已记录l2p表,存储器控制器110启动突然电力中断回复(suddenpoweroffrecovery,spor)程序时,有可能会以目的区块的p2l表来更新l2p表,造成数据管理的错误。因此,步骤s314可更包括:将p2l表中修剪指令的目标数据的逻辑地址变更为预设值或无效值,例如:0xffff-ffff,如图7所示。如此一来,即使发生电力突然中断事件,也不会造成数据管理的错误。74.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
    转载请注明原文地址:https://tc.8miu.com/read-1437.html

    最新回复(0)