一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电子装置、快闪存储器控制器及模块进行垃圾收集操作的方法与流程

2022-02-19 04:27:07 来源:中国专利 TAG:
1.本发明有关于快闪存储器,尤指一种快闪存储器的垃圾收集操作。
背景技术
::2.在快闪存储器模块的操作中,由于所储存的数据并无法透过覆写的方式来进行更新,因此,用来取代旧数据的更新数据会在旧数据仍然存在于快闪存储器模块的情形下,直接被写入至快闪存储器中,因而造成快闪存储器模块中会包含许多旧数据(无效数据)及更新数据(有效数据),浪费了储存空间。因此,为了被免这些无效数据占用快闪存储器模块的储存空间,快闪存储器控制器会根据快闪存储器模块内备用区块(spareblock)的数量来决定是否进行一垃圾收集操作(garbagecollection)。举例来说,当快闪存储器模块内备用区块的数量低于一临界值时,快闪存储器控制器会控制快闪存储器模块将多个来源区块(数据区块)内的有效数据搬移到一个备用区块中,之后再将该多个来源区块内的数据全部抹除来作为新的备用区块,以释放出快闪存储器模块的储存空间。然而,考量到快闪存储器模块的利用率,且由于垃圾收集操作会影响到快闪存储器模块的正常存取,因此上述的临界值一般不会设定的太高,例如临界值可以是快闪存储器模块内全部区块数量的十分之一。3.如上所述,由于上述的临界值不会设定的太高,因此,快闪存储器控制器会在快闪存储器模块内仅具有较少备用区块的情形下才会开始进行垃圾收集操作,然而,在垃圾收集操作的过程中,若是在多个来源区块内的有效数据搬移到一个备用区块的过程中发生了不正常断电,则为了确保数据无误,则在重新上电开机之后,上述备用区块会被直接放弃(亦即,停止使用并标记无效),而垃圾收集操作会重新开启以将该多个来源区块内的有效数据重新搬移到另一个备用区块。如上所述,当快闪存储器模块在垃圾收集操作的过程中发生断电时会白白浪费一个备用区块,因此,若是快闪存储器模块在备用区块数量不足时频频发生断电而使得垃圾收集操作一直无法完成,则很有可能会使得快闪存储器模块内的备用区块急速减少,甚至会造成快闪存储器模块无法进行数据写入而只能进行数据读取的情形。4.此外,在某些设计上,快闪存储器模块中的每一个区块会具有很多的数据页,亦即每一个区块具有较大的尺寸(例如,16百万位元组(mb)),但快闪存储器模块内整体的区块数量会很少,在这种情形下,由于较大尺寸的区块会需要较长的时间来完成垃圾收集操作,因此遭受到不正常断电的机会比较高;此外,整体区块数量会很少也代表着快闪存储器模块会在备用区块数量很低的情形下才会进行垃圾收集操作,如此一来也使得上述快闪存储器模块在备用区块数量不足时频频发生断电所造成的备用区块急速减少的问题变得更严重。技术实现要素:5.因此,本发明的目的之一在于提出一种控制快闪存储器模块的方法,其可以对垃圾收集操作的相关参数进行特殊的设定,以解决先前技术中所述的问题。6.在本发明的一个实施例中,揭示了一种快闪存储器控制器,其用来存取一快闪存储器模块,且该快闪存储器控制器包含有一只读存储器以及一微处理器。当该快闪存储器控制器上电并进行一初始化操作时,该微处理器在该初始化操作的一预设时间范围内,判断该快闪存储器模块内的备用区块的数量是否低于一第一临界值,以决定是否要进行一垃圾收集操作;以及当该快闪存储器控制器上电后的时间超出该预设时间范围,该微处理器判断该快闪存储器模块内的备用区块的数量是否低于一第二临界值,以决定是否要进行另一垃圾收集操作,其中该第二临界值低于该第一临界值。7.在本发明的另一个实施例中,揭示了一种电子装置,其包含有一快闪存储器模块以及一快闪存储器控制器。当该快闪存储器控制器上电并进行一初始化操作时,该快闪存储器控制器在该初始化操作的一预设时间范围内,判断该快闪存储器模块内的备用区块的数量是否低于一第一临界值,以决定是否要进行一垃圾收集操作;以及当该快闪存储器控制器上电后的时间超出该预设时间范围,该快闪存储器控制器判断该快闪存储器模块内的备用区块的数量是否低于一第二临界值,以决定是否要进行另一垃圾收集操作,其中该第二临界值低于该第一临界值。8.在本发明的另一个实施例中,揭示了一种对一快闪存储器模块进行垃圾收集操作的方法,其包含有以下步骤:当用来存取该快闪存储器模块的一快闪存储器控制器上电并进行一初始化操作时,在该初始化操作的一预设时间范围内,判断该快闪存储器模块内的备用区块的数量是否低于一第一临界值,以决定是否要进行一垃圾收集操作;以及当该快闪存储器控制器上电后的时间超出该预设时间范围,判断该快闪存储器模块内的备用区块的数量是否低于一第二临界值,以决定是否要进行另一垃圾收集操作,其中该第二临界值低于该第一临界值。附图说明9.图1为依据本发明一实施例的一种电子装置的示意图。10.图2为依据本发明一实施例的快闪存储器模块中一区块的示意图。11.图3为根据本发明一第一实施例的快闪存储器控制器控制快闪存储器模块进行垃圾收集操作的流程图。12.图4为垃圾收集操作的示意图。13.图5为根据本发明一第二实施例的快闪存储器控制器控制快闪存储器模块进行垃圾收集操作的流程图。14.符号说明15.100:电子装置16.110:快闪存储器控制器17.112:微处理器18.112c:程序码19.112m:只读存储器20.114:控制逻辑21.116:缓冲存储器22.118:接口逻辑23.120:快闪存储器模块24.130:主装置25.132:编码器26.134:解码器27.142:读取重试表28.144:读取成功纪录表29.200:区块30.202:浮闸晶体管31.300~316:步骤32.410_1,410_2,410_3:数据区块33.420_1,420_2,420_n:备用区块34.500~516:步骤35.bl1,bl2,bl3:位元线36.wl0~wl2,wl4~wl6:字元线具体实施方式37.图1为依据本发明一实施例的一种电子装置100的示意图。电子装置100包含有一快闪存储器(flashmemory)模块120以及一快闪存储器控制器110,且快闪存储器控制器110用来存取快闪存储器模块120。依据本实施例,快闪存储器控制器110包含一微处理器112、一只读存储器(readonlymemory,rom)112m、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112m是用来储存一程序码112c,而微处理器112则用来执行程序码112c以控制对快闪存储器模块120的存取(access)。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到快闪存储器模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(errorcorrectioncode),ecc),而解码器134用来将从快闪存储器模块120所读出的数据进行解码。38.在典型状况下,快闪存储器模块120包含了多个快闪存储器晶片,而每一个快闪存储器晶片包含多个区块(block),而快闪存储器控制器110对快闪存储器模块120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中快闪存储器控制器110对快闪存储器模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,快闪存储器模块120为一立体nand型快闪存储器(3dnand-typeflash)模块。39.实作上,透过微处理器112执行程序码112c的快闪存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制快闪存储器模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(hostdevice)130沟通。缓冲存储器116是以随机存取存储器(randomaccessmemory,ram)来实施。例如,缓冲存储器116可以是静态随机存取存储器(staticram,sram),但本发明不限于此。40.在一实施例中,电子装置100可以是可携式记忆装置(例如:符合sd/mmc、cf、ms、xd标准的记忆卡),且主装置130为一可与电子装置100连接的另一电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,电子装置100可以是固态硬碟或符合通用快闪存储器储存(universalflashstorage,ufs)或嵌入式多媒体记忆卡(embeddedmultimediacard,emmc)规格的嵌入式储存装置,且可以设置在手机、笔记型电脑、桌上型电脑之中,而此时主装置130可以是手机、笔记型电脑、桌上型电脑的一处理器。41.图2为依据本发明一实施例的快闪存储器模块120中一区块200的示意图,其中快闪存储器模块120为立体nand型快闪存储器。如图2所示,区块200包含了多个记忆单元(例如图示的浮闸晶体管202或是其他的电荷捕捉(chargetrap)元件),其透过多条位元线(图示仅绘示了bl1~bl3)及多条字元线(例如图示wl0~wl2、wl4~wl6)来构成立体nand型快闪存储器架构。在图2中,以最上面的一个平面为例,字元线wl0上的所有浮闸晶体管构成了至少一数据页,字元线wl1上的所有浮闸晶体管构成了另至少一数据页,而字元线wl2的所有浮闸晶体管构成了再另至少一数据页…以此类堆。此外,根据快闪存储器写入方式的不同,字元线wl0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式储存(single-levelcell,slc)的方式写入时,字元线wl0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用双层式储存(multi-levelcell,mlc)的方式写入时,字元线wl0上的所有浮闸晶体管对应到两个逻辑数据页;当使用三层式储存(triple-levelcell,tlc)的方式写入时,字元线wl0上的所有浮闸晶体管对应到三个逻辑数据页;以及当使用四层式储存(quad-levelcell,qlc)的方式写入时,字元线wl0上的所有浮闸晶体管对应到四个逻辑数据页。由于本
技术领域
:中具有通常知识者应能了解立体nand型快闪存储器的结构以及字元线及数据页之间的关系,故相关的细节在此不予赘述。42.图3为根据本发明一第一实施例的快闪存储器控制器110控制快闪存储器模块120进行垃圾收集操作的流程图。在步骤300中,流程开始,且快闪存储器控制器110与快闪存储器模块120由上电,亦即由关机或断电状态进入启动阶段。在步骤302中,快闪存储器控制器110与快闪存储器模块120进行初始化操作,亦即快闪存储器控制器110开始建立系统操作所需的对照表(look-uptable),例如可以自快闪存储器模块120中读取相关的数据以建立出所需的对照表,并暂存在缓冲存储器116中。需注意的是,为了避免初始化时间太久而影响到使用者的感受,快闪存储器控制器110的进行初始化操作有一个预设时间范围的限制,亦即所有的初始化操作需要在一预设时间范围内完成,而这个预设时间范围通常很短,例如1秒或2秒左右。此外,由于快闪存储器控制器110的初始化操作一般来说会设计的可以在1秒内完成,因此,本实施例提出了一种在初始化操作完成后,且快闪存储器控制器110上电后的时间尚未超出上述预设时间范围的情形下,快闪存储器控制器110在这段期间内对快闪存储器模块120进行一特殊的垃圾收集操作,以解决先前技术中所提到的备用区块不足的问题。43.在步骤304中,快闪存储器控制器110中的微处理器112判断目前快闪存储器模块120内的备用区块的数量是否低于一第一临界值,若是,则流程进入到步骤306;若否,则流程进入到步骤314。具体来说,微处理器112可以透过缓冲存储器116内所储存的一些对照表来判断出目前快闪存储器模块120内备用区块的数量,其中备用区块也可称为空白区块,亦即尚未进行数据写入的区块,或者仅包含无效数据的区块。在本实例中,第一临界值可以是一个较高的数值,例如快闪存储器模块120内区块总数的20%或30%。举例来说,参考图4,快闪存储器模块120包含了多个有数据写入的数据区块410_1、410_2、410_3、…以及多个备用区块420_1~420_n,假设快闪存储器模块120的容量为8十亿位元组(gb)、每一个区块的容量为16mb、且区块总数为500,则当个备用区块420_1~420_n的数量低于100或150时,流程便进入到步骤306。需注意的是,上述第一临界值的范例仅供说明使用,而非作为本发明的限制。44.在步骤306,微处理器112控制快闪存储器模块120开始进行垃圾收集操作。详细来说,微处理器112可以根据一些内部的判断标准来选择可以进行垃圾收集操作的区块,例如选择无效数据页最多的区块、数据品质最差的区块、读取次数最多的区块、抹除次数最多的区块、…、及/或其他任何判断标准,并将这些所选择的区块内的有效数据依序搬移至一个备用区块中。以图4为例来说明,微处理器112可以先将数据区块410_1内的有效数据页的内容依序搬移至备用区块420_1,并等待数据区块410_1的有效数据页全部搬移后再开始将数据区块410_2内的有效数据页的内容依序搬移至备用区块420_1、之后等待数据区块410_2的有效数据页全部搬移后再开始将数据区块410_3内的有效数据页的内容依序搬移至备用区块420_1…以此类推。45.在进行垃圾收集操作的期间,于步骤308,微处理器112持续地判断快闪存储器控制器110上电后的时间是否超出一预设时间范围,例如1秒或2秒,若超出预设时间范围,流程进入步骤314;若尚未超出预设时间范围,则流程进入到步骤310以继续进行未完成的垃圾收集操作。46.在步骤312,微处理器112判断目前所进行的垃圾收集操作是否已经完成,若是,则流程回到步骤304;若否,则流程回到步骤308。详细来说,微处理器112可以根据备用区块420_1的所有数据页是否都已经写满以判断垃圾收集操作是否已经完成,亦即当备用区块420_1的最后一个数据页完成数据写入时,这一次的垃圾收集操作便结束,且微处理器112开始更新相关的逻辑地址与实体地址的映射表,并将数据区块410_1、410_2、410_3内的数据抹除后来作为备用区块。在一例子中,若是在数据区块410_3的有效数据尚未全部搬移的情形下备用区块420_1的所有数据页就都已经写满了,则此时垃圾收集操作结束,但数据区块410_3的内容则全部保留,并等待下一次的垃圾收集操作再进行处理。47.在以上步骤304~312的操作中,主要描述了在快闪存储器控制器110在进行初始化的预设时间范围内,利用初始化完成后的剩余时间来进行垃圾收集操作,且此时所进行的垃圾收集操作具有较高的第一临界值,亦即在备用区块的数量尚称足够的情形下便进行垃圾收集操作。此外,在步骤304中,若是微处理器112判断目前快闪存储器模块120内的备用区块的数量高于第一临界值,则代表目前备用区块的数量很足够,因此,微处理器112在进行初始化的预设时间范围内不会主动进行任何的垃圾收集操作,而流程直接进入到步骤314;另外,在步骤308中,若是快闪存储器控制器110上电后的时间是超出预设时间范围,则此时微处理器112会暂时停止垃圾收集操作并进入到步骤314,例如暂时停止将数据区块410_1~410_3的有效数据搬移至备用区块420_1,且保留数据区块410_1~410_3的内容。48.在步骤314中,微处理器112将用来决定是否进行垃圾收集操作的标准由第一临界值修改为第二临界值,其中第二临界值可以是低于第一临界值的任意数值,例如第二临界值可以是快闪存储器模块120内区块总数的10%。49.在步骤316中,快闪存储器控制器110与快闪存储器模块120一般存取操作,例如读取、写入及数据管理。此外,微处理器112开启一背景操作,其中该背景操作是用来在快闪存储器控制器110与快闪存储器模块120处于闲置状态时开始进行垃圾处理操作,例如当接收到来自主装置130的一个写入/读取命令后,若是在一段时间内(例如10毫秒或100毫秒内)没有接收到另外的写入/读取命令,则可以开始继续完成之前尚未完成的垃圾收集操作,或是开启一个新的垃圾收集操作。举例来说,假设在步骤306所开始进行的垃圾收集操作因为超出步骤308所述的预设时间范围而暂停,则此时微处理器112可以利用快闪存储器控制器110处于闲置状态时开始逐步地将数据区块410_1~410_3的有效数据搬移至备用区块420_1,直到备用区块420_1的所有数据页就都写满为止,以结束这一次的垃圾收集操作。而在备用区块420_1完成垃圾收集操作并做为数据区块之后,后续微处理器112只有在快闪存储器模块120内的备用区块的数量低于第二临界值时才会开始垃圾收集操作,以避免频繁的垃圾收集操作影响到快闪存储器控制器110的正常存取。50.如以上图3的实施例所述,透过在初始化操作的预设时间范围内使用较高的第一临界值来做为垃圾收集操作的判断基准,可以充分利用上述预设时间范围的剩余时间尽可能来额外产生一些备用区块,以避免备用区块数量不足的问题。此外,在初始化完成后的一般操作中,透过使用较低的第二临界值来做为垃圾收集操作的判断基准,可以避免频繁的垃圾收集操作影响到快闪存储器控制器110的正常存取。51.图5为根据本发明一第二实施例的快闪存储器控制器110控制快闪存储器模块120进行垃圾收集操作的流程图。在步骤500中,流程开始,且快闪存储器控制器110与快闪存储器模块120由上电,亦即由关机或断电状态进入启动阶段。在步骤502中,快闪存储器控制器110与快闪存储器模块120进行初始化操作。在步骤504中,快闪存储器控制器110中的微处理器112判断目前快闪存储器模块120内的备用区块的数量是否低于一第一临界值,若是,则流程进入到步骤506;若否,则流程进入到步骤314。举例来说,第一临界值可以是一个较高的数值,例如快闪存储器模块120内区块总数的20%或30%。在步骤506,微处理器112控制快闪存储器模块120开始进行垃圾收集操作。详细来说,微处理器112可以根据一些内部的判断标准来选择可以进行垃圾收集操作的区块,并将这些所选择的区块内的有效数据依序搬移至一个备用区块中。以图4为例来说明,微处理器112可以依序数据区块410_1、420_2、420_3内的有效数据页的内容依序搬移至备用区块420_1。在进行垃圾收集操作的期间,于步骤508,微处理器112持续地判断快闪存储器控制器110上电后的时间是否超出一预设时间范围,例如1秒或2秒,若超出预设时间范围,流程进入步骤514;若尚未超出预设时间范围,则流程进入到步骤510以继续进行未完成的垃圾收集操作。52.需注意的是,以上步骤500~510的操作内容与图3的步骤300~310的操作内容类似,因此细节部分在此忽略不赘述。53.在步骤512,微处理器112判断目前已经将有效数据全部复制到备用区块的数据区块的数量是否到达一特定数量,若是,则流程进入步骤514;若否,则流程回到步骤508。详细来说,该特定数量可以是"2",亦即只要数据区块410_1、420_2的所有有效数据都复制到备用区块420_1之后,微处理器112便结束这一次的垃圾收集操作,且微处理器112可以将备用区块420_1的剩余数据页写入冗余数据(dummydata)且开始更新相关的逻辑地址与实体地址的映射表,并将数据区块410_1、410_2内的数据抹除后来作为备用区块。因此,由于这次垃圾收集操作中备用区块420_1转为数据区块,但有两个数据区块410_1、410_2转为备用区块,因此整体来说快闪存储器模块120内的备用区块的数量增加了。54.在步骤514中,微处理器112将用来决定是否进行垃圾收集操作的标准由第一临界值修改为第二临界值,其中第二临界值可以是低于第一临界值的任意数值,例如第二临界值可以是快闪存储器模块120内区块总数的10%。55.在步骤516中,微处理器112开启一背景操作,其中该背景操作是用来在快闪存储器控制器110与快闪存储器模块120处于闲置状态时进行垃圾处理操作,例如当接收到来自主装置130的一个写入/读取命令后,若是在一段时间内(例如10毫秒或100毫秒内)没有接收到另外的写入/读取命令,则可以开始继续完成之前尚未完成的垃圾收集操作,或是开启一个新的垃圾收集操作。举例来说,假设在步骤506所开始进行的垃圾收集操作因为超出步骤508所述的预设时间范围而暂停,则此时微处理器112可以利用快闪存储器控制器110处于闲置状态时逐步地将数据区块410_1~410_3的有效数据搬移至备用区块420_1,直到备用区块420_1的所有数据页就都写满为止,以结束这一次的垃圾收集操作。在另一例子中,微处理器112可以利用快闪存储器控制器110处于闲置状态时逐步地将数据区块410_1、410_2的有效数据搬移至备用区块420_1,直到数据区块410_2的所有有效数据均复制到备用区块420_1,之后便结束这一次的垃圾收集操作,将备用区块420_1的剩余数据页写入冗余数据(dummydata)且开始更新相关的逻辑地址与实体地址的映射表,并将数据区块410_1、410_2内的数据抹除后来作为备用区块。此外,在备用区块420_1完成垃圾收集操作并做为数据区块之后,后续微处理器112只有在快闪存储器模块120内的备用区块的数量低于第二临界值时才会开始垃圾收集操作,以避免频繁的垃圾收集操作影响到快闪存储器控制器110的正常存取。56.如以上图5的实施例所述,透过在初始化操作的预设时间范围内使用较高的第一临界值来做为垃圾收集操作的判断基准,可以充分利用上述预设时间范围的剩余时间尽可能来额外产生一些备用区块,以避免备用区块数量不足的问题。而在一实施例中,由于在上述预设时间范围的剩余时间所进行的垃圾收集操作在额外多产生一个备用区块的情形下便停止(亦即,两个数据区块410_1、410_2完成所有有效数据的搬移并转为备用区块),因此可以避免这次的垃圾收集操作过度影响到后续快闪存储器控制器110的正常存取,且也可以降低因为遭遇到不正常断电而导致垃圾收集操作一直无法完成的机率。57.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献