映射表更新方法

文档序号:1435294 发布日期:2020-03-20 浏览:19次 >En<

阅读说明:本技术 映射表更新方法 (Mapping table updating method ) 是由 许贵松 邹定衡 孙健玮 于 2019-05-06 设计创作,主要内容包括:一种映射表更新方法,执行于数据存储装置中,数据存储装置包括非易失性存储器与控制器,且所述映射表更新方法包括如下步骤。首先,令控制器处理自于主机所下达的命令,并且当命令为写入命令时,判断是否触发执行部分垃圾回收程序。如果是,控制器依照分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,并且以所复制的局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新数据存储装置的逻辑至物理地址映射表,然后返回执行令控制器处理自于主机所下达的命令。(A mapping table updating method is executed in a data storage device, the data storage device comprises a nonvolatile memory and a controller, and the mapping table updating method comprises the following steps. First, the controller processes the command issued by the host, and when the command is a write command, determines whether to trigger execution of a partial garbage collection program. If so, the controller copies the local valid data in at least one source block into a destination block according to the segmentation condition, updates the logical-to-physical address mapping table of the data storage device by the logical address of the copied local valid data and the physical address of the destination block where the local valid data is located, and then returns to execute the command for the controller to process the command issued by the host.)

映射表更新方法

技术领域

本发明涉及一种映射表更新方法,尤其涉及一种能够因应垃圾回收(GarbageCollection,GC)程序的逻辑至物理地址(Logical-to-Physical Address)映射表更新方法。

背景技术

一般来说,数据存储装置是由控制器与非易失性存储器,例如闪速存储器(FlashMemory)所构成,且非易失性存储器的使用情况又主要以映射表来作管理,例如逻辑至物理地址映射表即用来显示主机端的逻辑地址与非易失性存储器端的物理地址的映射关系。因此,如何来维护映射表为本领域的一项重要课题,尤其是当数据存储装置因应垃圾回收程序而复制来源区块(Source Block)内的有效数据到目的区块(Destination Block)时,本领域亟需一种能够准确更新逻辑至物理地址映射表的方法。

发明内容

为达上述目的,本发明实施例提供一种映射表更新方法,执行于数据存储装置中,数据存储装置包括非易失性存储器与控制器,且所述映射表更新方法包括如下步骤。首先,令控制器处理自于主机所下达的命令,并且当命令为写入命令时,判断是否触发执行部分垃圾回收程序。如果是,控制器依照分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,并且以所复制的局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新数据存储装置的逻辑至物理地址映射表,然后返回执行令控制器处理自于主机所下达的命令。

为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与所附图式仅是用来说明本发明,而非对本发明的权利范围作任何的限制。

附图说明

图1是本发明实施例所提供的数据存储装置的功能方块示意图。

图2是本发明实施例所提供的垃圾回收程序的运作示意图。

图3是本发明实施例所提供的映射表更新方法的流程示意图。

图4A~图4C是图3的映射表更新方法中步骤S320~步骤S330的运作示意图。

图5是本发明另一实施例所提供的映射表更新方法的流程示意图。

图6是图5的映射表更新方法中根据L2P备份表来回复L2P表的运作示意图。

具体实施方式

在下文中,将借由图式说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在图式中相同参考数字可用以表示类似的元件。

首先,请参阅图1,图1是本发明实施例所提供的数据存储装置的功能方块示意图。数据存储装置1包括非易失性存储器110与控制器120,且非易失性存储器110包括多个区块(未绘示),每一区块又包含多个页面(Pages),而每一页面则用来存储一笔主机数据或是多笔主机数据。在本实施例中,一笔主机数据较佳为4KB,但本发明并不以此为限制。总而言之,页面即为写入或读取数据时的最小单元,而区块则为数据擦除的最小单元。因此,区块依据其功能又可区分为闲置(Spare)区块、主动(Active)区块与数据区块,其中闲置区块为可被选取并写入数据的区块,主动区块为已被选取并正在写入数据的区块,数据区块则为完成数据写入且不再写入数据的区块。需要说明的是,本发明并不限制区块及页面的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。此外,在本实施例中,非易失性存储器110较佳是以闪速存储器来实现,但本发明亦不以此为限制。

控制器120电性耦接于非易失性存储器110,并且用来控制非易失性存储器110内的数据存取。必须了解的是,数据存储装置1通常是会与主机2一起使用,并且根据主机2所下达的写入/读取命令,来将主机数据写入到非易失性存储器110中,或者从非易失性存储器110中读取主机数据。因此,在本实施例中,控制器120较佳相应为闪速存储器控制器(FlashController),且其包括接口逻辑122、微处理器124以及控制逻辑126。微处理器124电性耦接于接口逻辑122与控制逻辑126,并用以通过接口逻辑122来接收自于主机2所下达的写入/读取命令,以及通过控制逻辑126来存取非易失性存储器110中的主机数据。另外,在本实施例中,数据存储装置1更可包括动态随机存取存储器(Dynamic Random AccessMemory,DRAM)130,电性耦接于控制器120,并且用来作为数据缓冲器。又或者是,在其它实施例中,数据存储装置1的控制器120也可直接使用主机2的DRAM(未绘示)来作为数据缓冲器。

如同前面内容所述,为了进行数据的管理与存取,因此,数据存储装置1必须建立及存储至少一映射表,例如逻辑至物理地址映射表,在本实施例中将它简称为L2P表,并且于数据存储装置1运作时,微处理器124会从非易失性存储器110中读取L2P表,并且上传到DRAM 130或主机2的DRAM中,以增加数据管理与存取上的效率。但对于DRAM 130或主机2的DRAM的大小不足以存储一整个L2P表的数据存储装置1而言,亦即在DRAM 130或主机2的DRAM只能存储局部L2P表的情况下,微处理器124就必须频繁地去存取非易失性存储器110中的L2P表,以交换(Swap)或替代暂存在DRAM 130或主机2的DRAM中的局部L2P表。因此,为了有效管理L2P表,L2P表较佳可分割成多个子L2P表,例如1024个子L2P表,如此一来,控制器120便可依据DRAM 130或主机2的DRAM的大小,而上传全部或多个子L2P表到DRAM130或主机2的DRAM中。

另外,L2P表所显示的主机端的逻辑地址是能够以多种形式,例如逻辑区块地址(Logical Block Address,LBA)或全域主机页面(Global Host Page,GHP)来实现,且逻辑区块地址LBA及全域主机页面GHP较佳分别对应于不同大小的主机数据,例如512B及4KB的主机数据。此外,L2P表较佳可依照全域主机页面GHP的顺序而建立,也就是说全域主机页面GHP可为项目(索引)值,而非易失性存储器110的物理地址就为项目(索引)的内容值,如此一来,L2P表的大小亦可有效降低。然而,为了方便以下说明,本实施例的L2P表较佳是以全域主机页面GHP来作索引,并且记录各全域主机页面GHP的主机数据是被存储在非易失性存储器110的哪个物理地址,亦即哪个区块的哪个页面,但本发明并不以此为限制。

另一方面,非易失性存储器110有一种特殊的物理特性,那就是数据的更新并非会在同一物理地址上作复写,而是将更新的主机数据写入于闲置的物理地址中,并将全域主机页面GHP对应至新的物理地址,此时原物理地址的旧主机数据就可转为无效数据。如此一来,频繁的写入操作必会使得非易失性存储器110充斥着无效数据,所以垃圾回收程序才因应而发展出。在本实施例中,执行垃圾回收程序的触发条件可例如是非易失性存储器110的闲置区块的总数低于第一临界值,或者是任一数据区块的读取次数高于第二临界值,又或者是任一数据区块的建立时间长于第三临界值,但本发明均不以此为限制。总而言之,本发明并不限制执行垃圾回收程序的触发条件,本领域技术人员应可依据实际需求或应用来进行相关设计。接着,图2将用来解释本实施例的垃圾回收程序的运作原理,其中图2的斜线部分即用来表示无效数据。

如图2所示,假如当两数据区块,例如,区块Blk2与区块Blk3先后被选作为来源区块时,数据存储装置1就会连续地将来源区块Blk2与来源区块Blk3内的全部有效数据,例如全域主机页面GHP0~GHP5的主机数据复制到因应垃圾回收程序而选取的目的区块,例如区块Blk10中,以完成整个垃圾回收程序。可以理解的是,所述目的区块Blk10较佳选自于包含多个闲置区块的一闲置区块池(未绘示),但本发明并不以此为限制,并且在执行垃圾回收程序时,目的区块Blk10将可被重新定义为主动区块,所以其标号可同样表示为Act1,但本发明亦不以此为限制。另外,当来源区块Blk2或来源区块Blk3内的有效数据都已复制成功后,数据存储装置1还可来对来源区块Blk2或来源区块Blk3进行擦除动作,并将其重新定义为闲置区块,以释出存储空间。又或者是,在其它实施例中,数据存储装置1也可先将来源区块Blk2或来源区块Blk3重新定义为闲置区块,之后当区块Blk2或区块Blk3被选为主动区块时,才进行上述擦除动作,总而言之,本发明亦不限制擦除来源区块时的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。

然而,为了简化垃圾回收程序的复杂度,习知的映射表更新方法是在目的区块Blk10已写满数据并被重新定义为数据区块后,亦即来源区块Blk2与来源区块Blk3内的全部有效数据都已复制成功,并使目的区块Blk10写满数据后,数据存储装置1才“一次性地”将目的区块Blk10中的逻辑地址及物理地址更新至L2P表。但因为在更新L2P表的期间内,数据存储装置1无法处理/回应自于主机2所下达的写入/读取命令,以致于造成数据存储装置1的整体效能明显下降,而此下降的幅度在仅配置小量数据缓冲器的数据存储装置1中更为显著,这是因为在更新L2P表的过程中,微处理器124还必须频繁地去对非易失性存储器110作存取,即读取适当的子L2P表,并将更新后的子L2P表写回至非易失性存储器110,所以就会有更长的时间而没有办法处理/回应来自主机2所下达的写入/读取命令。

图3是本发明实施例所提供的映射表更新方法的流程示意图,需要说明的是,图3的映射表更新方法是可执行于图1的数据存储装置1中,但本发明并不限制图3的映射表更新方法仅能够执行于图1的数据存储装置1中。另外,如同前面内容所述,本发明并不限制执行垃圾回收程序的触发条件,但为了及时处理来自主机2所下达的写入/读取命令,所以本实施例的垃圾回收程序乃分段执行,而每段垃圾回收程序又称为部分垃圾回收程序,并且于执行每段的部分垃圾回收程序间控制器120亦可处理来自主机2所下达的写入/读取命令。首先,在步骤S300中,本实施例令控制器120处理自于主机2所下达的命令,并且当所述命令为写入命令时,本实施例则接续执行步骤S310,如果不是,即返回执行步骤S300。在步骤S310中,控制器120判断是否触发执行部分垃圾回收程序。如果是,即接续执行步骤S320,如果不是,则返回执行步骤S300。

在步骤S320中,控制器120依照一分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,例如请一并参阅图2,当第一次执行到步骤S320时,控制器120可先复制来源区块Blk2与来源区块Blk3内的2笔有效数据到目的区块Blk10中,之后当第二次执行到步骤S320时,控制器120可再复制来源区块Blk2与来源区块Blk3内的另2笔有效数据到目的区块Blk10中;或者当第一次执行到步骤S320时,控制器120可先复制来源区块Blk2与来源区块Blk3内的64个页面中的有效数据到目的区块中,而此时的这64个页面中可能全部或仅部分存储有有效数据,但本发明均不以此为限制,之后当第二次执行到步骤S320时,控制器120可再复制来源区块Blk2与来源区块Blk3内的另64个页面中的有效数据到目的区块中。总而言之,本发明并不限制所述分段条件的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。另外,来源区块内的有效数据所复制到目的区块的位置则较佳可由控制器120所决定。

另一方面,在步骤S320中,控制器120更可建立一逻辑至物理地址备份表,在本实施例中将它简称为L2P备份表,以用来记录所复制的所述局部有效数据的逻辑地址,及所述局部有效数据所在来源区块的物理地址,并且为了有效管理L2P备份表,控制器120较佳可将L2P备份表存储于一表格区块(未绘示)中,而所述表格区块则同样选自于包含多个闲置区块的闲置区块池,但本发明亦不以此为限制。接着,在步骤S330中,控制器120以所复制的所述局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新L2P表,并且返回执行步骤S300。可以理解的是,当某一主机数据存储至某一主动区块的页面时,控制器120较佳可将所述主机数据的逻辑地址记录至所述主动区块的闲置区域(SpareArea),或者记录至所述主动区块的区块关闭资讯(End of Block,EOB)中。接着,在所述主动区块被重新定义为数据区块以及被选取为来源区块后,当所述主机数据被视为有效数据而复制到目的区块时,控制器120就较佳可自前述闲置区域或区块关闭资讯中,取得所述主机数据的逻辑地址,并且配合所述主机数据所被复制在目的区块的物理地址来直接更新L2P表。

仔细地说,如果步骤S300的命令为非写入命令的话,本实施例就不会接续执行步骤S310,也就是返回执行步骤S300,直到当控制器120处理到主机2的写入命令时,本实施例才接续执行步骤S310。另外,为了方便以下说明,本实施例将先探讨步骤S320的分段条件是指每次仅复制2笔有效数据到目的区块中,但其并非用以限制本发明。因此,请一并参阅图4A~图4C,图4A~图4C是图3的映射表更新方法中步骤S320~步骤S330的运作示意图,其中图4A~图4C又采用如同图2的来源区块的例子来作说明,但其亦非用以限制本发明。如图4A所示,在控制器120判断触发执行第一段的部分垃圾回收程序后,控制器120可将来源区块Blk2与来源区块Blk3内的2笔有效数据,例如来源区块Blk2内的全域主机页面GHP0~GHP1的主机数据,复制到目的区块Blk10的页面P#0~P#1中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表。也就是说,此时的L2P表即记录逻辑地址为全域主机页面GHP0~GHP1的主机数据是存储在目的区块Blk10的页面P#0~P#1中,但L2P备份表(未绘示)则依旧记录逻辑地址为全域主机页面GHP0~GHP1的主机数据是存储在来源区块Blk2的页面P#0及P#2中。

然而,为了避免数据存储装置1一直处于执行垃圾回收程序而无法回应自于主机2所下达的命令,因此,在图4A的更新L2P表后,控制器120就可转而用来处理自于主机2所下达的其他命令,例如读取命令。接着,如果控制器120又再处理到(下个)写入命令的话,控制器120就会判断是否触发执行第二段的部分垃圾回收程序。在本实施例中,控制器120较佳可于执行每段的部分垃圾回收程序前穿插处理预设数量的主机命令,但本发明并不以此为限制。也就是说,在本实施例中,执行部分垃圾回收程序的触发条件还可例如是已处理过的主机命令超过所述预设数量,或者是当步骤S300的执行时间超过预设时间长度时,控制器120就可再度执行步骤S320,亦即执行下一段的部分垃圾回收程序。总而言之,本发明并不限制控制器120处理主机命令,以及判断是否触发执行(每段的)部分垃圾回收程序时的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。

接着,如图4B所示,在控制器120再度执行步骤S320时,即执行第二段的部分垃圾回收程序,控制器120则将来源区块Blk2与来源区块Blk3内的另2笔有效数据,例如来源区块Blk2内的全域主机页面GHP2~GHP3的主机数据,复制到目的区块Blk10的页面P#2~P#3中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表,所以此时的L2P表即记录逻辑地址为全域主机页面GHP2~GHP3的主机数据是存储在目的区块Blk10的页面P#2~P#3中,但L2P备份表则依旧记录逻辑地址为全域主机页面GHP2~GHP3的主机数据是存储在来源区块Blk2的页面P#4及P#5中。

类似地,如图4C所示,在控制器120又再度执行步骤S320时,即执行第三段的部分垃圾回收程序,控制器120则将来源区块Blk2与来源区块Blk3内的另2笔有效数据,例如来源区块Blk3内的全域主机页面GHP4~GHP5的主机数据,复制到目的区块Blk10的页面P#4~P#5中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表,所以此时的L2P表即记录逻辑地址为全域主机页面GHP4~GHP5的主机数据是存储在目的区块Blk10的页面P#4~P#5中,但L2P备份表则依旧记录逻辑地址为全域主机页面GHP4~GHP5的主机数据是存储在来源区块Blk3的页面P#1及P#4中。

综上所述,本实施例采用部分垃圾回收程序来将来源区块Blk2与来源区块Blk3内的有效数据,例如全域主机页面GHP0~GHP3以及全域主机页面GHP4~GHP5的主机数据,分段地复制到目的区块Blk10中,并且根据所复制的局部有效数据来直接更新数据存储装置1的L2P表,而非等到目的区块Blk10写满主机数据后,例如全域主机页面GHP0~GHP5的主机数据都已复制成功后,才一次性地更新L2P表。另外,在执行每段的部分垃圾回收程序前(或称执行复制/更新前),控制器120更可穿插处理自于主机2所下达的命令,以藉此达到改善整体效能低落的目的。

在其它实施例中,执行部分垃圾回收程序所复制的主机数据也可来自于不同来源区块,例如若同样以图2的来源区块Blk2与来源区块Blk3作说明,并且假设分段条件是改指每次复制3笔有效数据到目的区块Blk10的话,因此,在执行第一段的部分垃圾回收程序时,控制器120可复制来源区块Blk2的全域主机页面GHP0~GHP2的主机数据到目的区块Blk10中,但在执行第二段的部分垃圾回收程序时,控制器120则复制来源区块Blk2的全域主机页面GHP3的主机数据,以及来源区块Blk3的全域主机页面GHP4~GHP5的主机数据到目的区块Blk10中。总而言之,如同前面内容所述,本发明并不限制所述分段条件的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。

另一方面,考量到目的区块Blk10可能因为异常事件,例如断电事件,或者写入/读回失败,而必需予以丢弃。为了避免上述问题,本发明的映射表更新方法可再进一步改良,请参阅图5,图5是本发明另一实施例所提供的映射表更新方法的流程示意图。需要说明的是,图5的映射表更新方法是可同样执行于图1的数据存储装置1中,但本发明亦不限制图5的映射表更新方法仅能够执行于图1的数据存储装置1中。另外,图5中部分与图3相同的流程步骤以相同的图号标示,故于此便不再多加详述其细节。相较于图3的步骤S310,在控制器120判断触发执行部分垃圾回收程序后,图5的映射表更新方法更可包括步骤S312及步骤S314。

在步骤S312中,控制器120判断目的区块是否曾发生异常事件。如果是,则先执行步骤S314,然后再接续执行步骤S320与步骤S330;如果不是,则直接执行步骤S320与步骤S330。在步骤S314中,控制器120根据L2P备份表来回复(Roll Back)数据存储装置1的L2P表,也就是说回复L2P表乃以L2P备份表所记录的逻辑地址为准,将L2P备份表内的逻辑地址所对应的物理地址(来源区块)替代掉L2P表内的逻辑地址所对应的物理地址(目的区块)。

图6是图5的映射表更新方法中根据L2P备份表来回复L2P表的运作示意图。例如,在控制器120执行部分垃圾回收程序后,来源区块Blk2与来源区块Blk3内的全域主机页面GHP0~GHP5的主机数据被分段地复制到目的区块Blk10中,并且分段地来直接更新L2P表,但如果此时发生了异常事件,造成控制器120必需得丢弃目的区块Blk10的话,控制器120则根据L2P备份表来回复数据存储装置1的L2P表,使得L2P表回复成记录来源区块Blk2与来源区块Blk3的主机数据的逻辑地址与非易失性存储器110的物理地址的映射关系。由于逻辑地址与物理地址的映射关被正确地回复(或替代),因此,丢弃目的区块Blk10并不会造成主机数据的遗失或者数据管理上的困扰。

当然地,由于目的区块Blk10已被丢弃,为了执行部分垃圾回收程序,控制器120较佳会从闲置区块池中选择另一闲置区块,例如区块Blk12(未绘示)来作为新的目的区块,而且在接续的步骤S320中,控制器120较佳也会选择由第一段的部分垃圾回收程序来从头执行,亦即依照分段条件将区块Blk2内的全域主机页面GHP0~GHP1的主机数据再复制到(新的)目的区块Blk12中,并且直接更新L2P表,然后返回执行令控制器120处理自于主机2所下达的命令,直到控制器120再度执行步骤S320,控制器120则将区块Blk2内的全域主机页面GHP2~GHP3的主机数据再复制到目的区块Blk12中,以此类推。总而言之,在每次执行步骤S330前,控制器120更利用L2P备份表来备份L2P表中所记录有关本次复制的有效数据的映射关系。

必须了解的是,建立L2P备份表所需的资源或成本虽然很小,但却可以有效克服异常事件所产生的技术课题,以256GB大小的数据存储装置1为例,L2P表的大小为256MB,但L2P备份表的大小却可能只要小于4MB。另外,本发明并不限制异常事件的种类,异常事件可能是指断电事件,或者写入/读回失败等等,总而言之,本领域技术人员应可依据实际需求或应用来进行相关设计。

综上所述,本发明实施例所提供的映射表更新方法是会采用部分垃圾回收程序来将至少一来源区块内的有效数据分段地复制到目的区块中,并且根据所复制的局部有效数据来直接更新数据存储装置的L2P表,而非等到来源区块内的全部有效数据都已复制成功后才一次性地更新L2P表,并且在执行每次复制/更新前穿插处理自于主机所下达的命令,以达到改善整体效能低落的现象。除此之外,在执行每次复制前(或称执行每段的部分垃圾回收程序前),本实施例更会去检查是否须根据所建立的L2P备份表来回复L2P表,以避免更新后的L2P表指向曾因发生突发的断电事件,或者写入/读回失败而中止的目的区块,并且在执行每次更新前,本实施例都利用L2P备份表来备份L2P表中所记录有关本次复制的有效数据的映射关系。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:内存缓存管理方法、多媒体服务器及计算机存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类