用于数据储存装置的磨损平均方法与流程

文档序号:13512945阅读:233来源:国知局
本发明是有关于一种用于数据储存装置的磨损平均方法(methodofwearleveling),尤其是有关于一种用于具有非挥发性存储器(non-volatilememory,nvm)的数据储存装置的磨损平均方法。
背景技术
::非挥发性存储器是一种电子存储器设备,具有一些特定能力,例如在断电后仍可在一定时间内维持数据、快速的数据存取以及防震功能。因此,非挥发性存储器广泛地用于记忆卡(memorycard)、固态硬盘(solidstatedrive,ssd)和可携式多媒体装置。非挥发性存储器包括用于储存数据的多个区块(block)。具体地,根据使用情况,区块可被命名为数据区块(datablock)或备用区块(spareblock)。数据区块指的是储存有(有效)数据的区块,而相对的备用区块指的是未储存有效数据的区块。通常备用区块与备用池(sparepool)或备用队列(sparequeue)有关,而数据区块与数据池(datapool)有关。备用区块是从备用池或备用队列中选取出来以保存从主机(host)所发送的数据,并且在此阶段备用区块被命名为临时区块(temporaryblock)。当临时区块被填满数据或不再保存数据时,临时区块则被命名为数据区块,而接下来的数据会被保存至下一个临时区块。上述的过程会不断地重复。多种磨损平均和垃圾收集(garbagecollection)程序已被揭露以平均地使用区块并且单独地再循环具有较少有效数据的数据区块。非挥发性存储器存在一项非常严重的缺陷,即具有擦写次数(erasetimes)的限制。不同非挥发性存储器产品的规格对不同类型的非挥发性存储器推荐了不同的擦写次数。以闪存(flashmemory)为例,三阶储存单元(triple-levelcell,tlc)类型的闪存的擦写次数约为一千次,而单阶储存单元(single-levelcell,slc)类型的闪存的擦写次数约为十万次。一旦达到了擦写次数,则意味着此区块将被假定为无法再正常工作且可能很快就会失效(outofwork)。如果非挥发性存储器没有平均地使用它的区块,则一些区块有可能在早期阶段就失效。在这种情况下,仅剩下少许的区块可用于保存数据,而这将导致数据储存装置的寿命短于预期。另一方面,如果通过磨损平均程序可以使区块平均地被使用的话,则理论上数据储存装置的寿命可明显地延长。因此,提供一种有效且迅速的磨损平均程序有其需要。技术实现要素:因此,本发明的其一目的是提供一种用于数据储存装置的磨损平均方法,所述方法能够平均地利用区块并且迅速地选择下一个临时区块。本发明提出一种用于数据储存装置的磨损平均方法包括以下步骤:维持管理表,其中,所述管理表记录数据储存装置的多个区块的多个物理区块号和多个区块状态;选择具有多个区块状态之一和最小物理区块号的第一备用区块作为当前临时区块;變更管理表的第一备用区块的区块状态;从主机接收写入命令;判断写入命令中的数据是否应被写入当前临时区块;当判断结果为否,则选择具有多个区块状态之一和最小物理区块号的第二备用区块作为下一个临时区块;以及将数据写入所述下一个临时区块。本发明另提出一种用于数据储存装置的磨损平均方法包括以下步骤:维持管理表,其中,管理表记录数据储存装置的多个备用区块的多个物理区块号;选择多个备用区块中具有最小物理区块号的第一备用区块作为当前临时区块;更新管理表;从主机接收写入命令;判断写入命令中的数据是否应被写入当前临时区块;当判断结果为否,则选择多个备用区块中具有最小物理区块号的第二备用区块作为下一个临时区块;以及将所述数据写入下一个临时区块。为让本发明之上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例并配合所附图式做详细说明如下。附图说明图1为依照本发明一实施例的数据储存装置的方块示意图。图2为依照本发明一实施例的动态磨损平均方法的流程图。图3是记录有数据储存装置的非挥发性存储器中每一区块的物理区块号和区块状态的示例性管理表。图4是根据图3所示的管理表修改后的管理表。图5为依照本发明第一实施例的磨损平均方法的流程图。图6为交换程序完成后所得的更新后的管理表。图7为依照本发明第二实施例的磨损平均方法的流程图。图8为更新后的管理表。具体实施方式图1为依照本发明一实施例的数据储存装置的方块示意图。如图所示,本实施例的数据储存装置10用以从外部主机20接收写入命令并将由写入命令所取得的数据保存到数据储存装置10中。主机20可以是诸如桌面计算机、平板计算机、手机或移动装置等电子设备。数据储存装置10包括控制器11以及非挥发性存储器12。非挥发性存储器12优选地为闪存。控制器11电性耦接至主机20和非挥发性存储器12。控制器11包括第一通讯接口111、第二通讯接口112和微处理器113。微处理器113电性耦接至第一通讯接口111以及第二通讯接口112。控制器11经由第一通讯接口111与主机20通讯以接收上述的写入命令。控制器11还经由第二通讯接口112与非挥发性存储器12通讯以存取非挥发性存储器12。第一通讯接口111可以是序列式ata(serialadvancedtechnologyattachment,sata)、通用串行总线(universalserialbus,usb)、高速外围组件互连(peripheralcomponentinterconnectexpress,pci-e)、通用闪存储存装置(universalflashstorage,ufs)、嵌入式多媒体记忆卡(embeddedmultimediacard,emmc)、安全数字输入/输出(securedigitalinput/output,sdio)、msata(mini-sata)或m.2(原称为nextgenerationformfactor,ngff)。在一实施例中,第二通讯接口112可以是开放式nand闪存接口(opennandflashinterface,onfi)或toggle。此外,数据储存装置10优选地包括诸如dram的挥发性存储器(volatilememory)13,用作数据缓冲器以加速写入命令的处理。图2为依照本发明一实施例的动态磨损平均方法的流程图。本发明的动态磨损平均方法优选地用于数据储存装置10。首先,在步骤s102中,维持记录有多个物理区块号(physicalblocknumber)和区块状态(blockstatus)的管理表(managementtable)。所述多个物理区块号指的是管理表中区块的条目(entry)或序列号(sequencenumber)。当数据储存装置10通电时,初始化程序(initializationprocedure)即开始并且向每个区块分配物理区块号和区块状态以产生管理表。管理表由控制器11产生和维护,并保存在非挥发性存储器12中。在操作期间,区块状态会根据区块的当前状态而改变。例如,区块状态可指出某区块当前是备用区块、临时区块或数据区块。控制器11将管理表复制到挥发性存储器13或控制器11中的数据缓冲器以便有效和快速地维护和更新管理表。当本发明的动态磨损平均方法开始时,记录有物理区块号和区块状态的管理表由控制器11维护。所述维护指的是控制器11保持着管理表的内容更新并周期性地或当异常事件发生时将管理表的备份复制到非挥发性存储器12。所述异常事件指的是意外或不正常事件的发生,例如,系统电源突然关闭。有时主机20会向控制器11传送中断信号(interrupt)以反映异常事件的发生。有时,是由控制器11直接侦测出异常事件。当侦测/接收到异常事件时,控制器11从正常模式(normalmode)离开而进入紧急模式(emergencymode)。图3是记录有数据储存装置10的非挥发性存储器12中每一区块的物理区块号和区块状态的示例性管理表。此外,图3所示的管理表还记录多个擦写次数(erasecount)、读取次数(readcount)和时间标记(timestamp)。图3的管理表仅仅示例性地记录非挥发性存储器12中的每个区块的物理区块号、区块状态、擦写次数、读取次数和时间标记。在非挥发性存储器12中实际上可以有数千个区块,而为了简化描述,在图3中仅示出了七个区块,但是本发明不以此为限。在图3中,第一和第二区块的物理区块号分别为1和2,是备用区块(区块状态标记为“s”),并且已经分别被擦写50和30次。因为没有数据保存于第一和第二区块,所以时间标记是空白的(void)或者可以被记录为00h或ffh(但不以此为限)。第三区块的物理区块号为3,曾被选取为临时区块(区块状态标记为“t”),并且来自主机20的数据被假定将写入到第三区块中。在2016/1/3保存第一笔数据之前,第三区块曾经是备用区块(图中未示出)。第四、第五和第六区块的物理区块号分别为4、5和6,是数据区块(区块状态标记为“d”),并且已经分别被擦写100、20和150次。第四、第五和第六区块的第一笔数据分别记录于2015/1/1、2016/1/1和2016/1/2。第七区块的物理区块号为7且是备用区块(区块状态标记为“s”)。值得注意的是,如果管理表未被重新排序(re-sorted)的话,则可以省略物理区块号的那一列。换句话说,管理表内容的重新排序并非基于任何列,而所有的更新是被插入到它们对应的位置/地址(location/address)中。在这种情况下,控制器11可以根据管理表中单元(cell)的位置/地址来确定物理区块号。例如,图4是根据图3所示的管理表修改后的管理表,其中,在图4里物理区块号的那一列被移除。在此修改后的管理表中,第一列记录的是区块的擦写次数。控制器11根据位置/地址0、1、2和3分别确定了第一区块的擦写次数、读取次数、区块状态和时间标记;根据位置/地址4、5、6和7分别确定了第二区块的擦写次数、读取次数、区块状态和时间标记;根据位置/地址8、9、10和11分别确定了第三区块的擦写次数、读取次数、区块状态和时间标记等。因此,物理区块号在管理表中可被明确地或隐含地揭露。换句话说,管理表可以以明确或隐含方式记录或揭露物理区块号。在步骤s104中,控制器11选择具有区块状态“s”和最小物理区块号的备用区块作为当前临时区块(currenttemporaryblock)。选择备用区块作为当前临时区块可根据几种不同的选择方法。例如,第一种可以是控制器11直接从备用池中选择具有最小物理区块号的备用区块作为下一临时区块(nexttemporaryblock)。第二种可以是控制器11从备用队列中选择具有最小物理区块号的备用区块作为下一临时区块。备用队列指的是在由候选的当前临时区块所形成的队列中的一些备用区块。例如,如果有300个备用区块,则300个备用区块中的30个可以被置于队列中而其余的备用区块则与备用池相关联。第三种可以是控制器11首先排除擦写次数高于阈值(例如200)的所有备用区块,然后再选择具有最小物理区块号的备用区块作为当前临时区块。第四种可以是控制器11选择具有前三个最小物理区块号的区块作为一组,并且从所述组中随机选择一个区块作为当前临时区块。在第一选择方法下,图3的第三区块被选取为当前临时区块,因具有备用区块状态(图中未示出)和最小物理区块号。在步骤s106中,控制器11从主机20接收写入命令。主机20符合第一通讯接口111的规格并向控制器11发送写入命令。写入命令包括(写入)数据和相应的地址。所述相应的地址优选地是逻辑区块地址(logicalblockaddress,lba)。写入命令还可以包括诸如创建时间(creationtime)或最后修改的时间等的元数据(metadata)。控制器11将接收此写入命令的日期或时间记录为写入时间(writetime),并将保存在管理表中的时间标记列中。由于数据管理的机制不同,数据可能不会立即写入当前临时区块中。例如,在数据管理的第一种机制中,数据直到数据量达到或超过阈值才会被写入临时区块。例如,控制器11首先判断写入命令中的数据的大小是否等于或大于当前临时区块的数据页(page)的大小(步骤s108)。在数据管理的第二种机制中,数据被立即写入当前临时区块中。由于所述两种机制都有优点和缺点并且在本领域是公知的,因此在此省略其详细描述。在步骤s110中,控制器11判断写入命令中的数据是否应被写入当前临时区块。如果步骤s110的判断结果为否,则执行步骤s112。如果步骤s110的判断结果为真,则执行步骤s116。当前临时区块应该连续地保存数据。但是在某些情况下,当前临时区块有可能无法再继续保存数据。例如,当当前临时区块已经被数据所填满而变成数据区块;或者当当前临时区块因为数据管理的目的而被关闭而不再保存任何数据。在所述的任一种情况下,控制器11将决定将数据写入另一临时区块。为了与当前临时区块区分,所述另一临时区块称为下一临时区块。在步骤s112中,控制器11选取具有区块状态“s”和另一最小物理区块号的另一备用区块作为下一临时区块。如图3所示,有三个备用区块可用,物理区块号分别是1、2和7。因为1是此三个物理区块号中最小的,所以第一区块将被选取为下一临时区块。当然在不同的机制中,有可能选择第二区块而非第一区块作为下一临时区块。在第一区块是当前临时区块但是不能再保存数据的情况下,在步骤s112中第二或第七区块将被选取为下一临时区块。因为管理表没有被重新排序,所以控制器11可以立即或快速地选取下一临时区块。由于不需要执行复杂的比较程序,例如比较擦写次数、读取次数、时间标记等之间的差异,因此相较于现有技术,本发明的动态磨损平均方法提供了更好的性能。在步骤s114中,控制器11将数据写入下一临时区块并且最终结束本发明的动态耗损平衡方法。在步骤s116中,控制器11将数据写入当前临时区块并且最终结束本发明的动态耗损平衡方法。为了平均地利用非挥发性存储器12中的区块,图5揭露了依照本发明第一实施例的磨损平均方法。请处值得注意的是,本实施例的磨损平均方法类似于本发明先前揭露的动态磨损平均方法。图5和图3所使用相同符号的步骤代表相同的步骤内容。在步骤s202中,产生记录有多个物理区块号、擦写次数和区块状态的管理表。类似于步骤s102,步骤202还记录区块的多个擦写次数。在步骤s204中,控制器11在后台模式(backgroundmode)下用热备用区块(hotspareblock)交换冷数据区块(colddatablock)。热区块(hotblock)指的是具有较大擦写次数的区块,而热备用区块指的是具有较大擦写次数的备用区块。热区块可以被定义为具有大于热阈值(hotthreshold,例如100)的擦写次数的单个区块或一组区块。因此,在随后的例子中,可以从区块组中随机选择一个区块或者直接选择一个具有极值(extreme)的区块作为热备用区块。类似地,冷区块(coldblock)指的是具有较小擦写次数的区块,而冷数据区块指的是具有较小擦写次数的数据区块。冷区块可以被定义为具有小于冷阈值(coldthreshold,例如30)的擦写次数的单个区块或一组区块。因此,在随后的例子中,可以从区块组中随机选择一个区块或者直接选择一个具有极值的区块作为冷数据区块。当控制器11从主机20接收到命令后,控制器11操作在前台模式(foregroundmode)。在前台模式中,控制器11可直接响应命令。当控制器11在一定时间(例如1秒)内没有从主机20接收到任何命令时,控制器11切换到后台模式。在后台模式中,控制器11不直接响应来自主机20的任何命令,而是为了数据管理的目的而执行某些任务,例如静态磨损平均(staticwearleveling)或垃圾收集。以图3中的管理表为例,在步骤s204中进入后台模式后,控制器11判定第五区块为冷数据区块,因为擦写次数小于冷阈值且区块状态标示为“d”。控制器11还判定第七区块是热备用区块,因为擦写次数大于热阈值且区块状态被标记为“s”。当冷数据区块和热备用区块被选取或判定后,控制器11对这两个区块执行交换程序(swapprocedure)。交换程序指的是将保存的数据从冷数据区块复制或搬移到热备用区块。如图6中更新后的管理表所示,当交换程序完成后,第五区块中的冷数据区块变成备用区块并且区块状态被重新标记为“s”。类似地,第七区块中的热备用区块变成数据区块并且区块状态被重新标记为“d”。此外在交换程序期间,诸如时间标记等与数据相关的信息也被交换而诸如读取次数等无关信息被重置。当然在交换程序中,仅仅有效数据会被复制或搬移。最后,新备用区块(即第五区块)的擦写次数被递增,亦即,在交换程序完成之后擦写次数立即加一。此外根据使用者的实际需要,擦写次数也可以在稍后的时间点被递增,但是必须在相应的区块被选取为临时区块之前。在一替代实施例中,控制器11在执行步骤s204之前计算最冷数据区块(coldestdatablock)和最热备用区块(hottestspareblock)之间的擦写次数差。所述最冷和最热区块分别是冷区块和热区块的极端。步骤s204仅在满足特定条件时才被执行。例如,仅当最冷数据区块(例如图3中的第五数据区块)和最热备用区块(例如图3中的第七数据区块)之间的擦写次数的差值大于次数阈值(countthreshold,例如100),则控制器11才将执行步骤s204。由于其余步骤与本发明的动态磨损平均方法中的步骤相同,因此省略描述。为了平均地利用非挥发性存储器12中的区块,图7揭露了依照本发明第二实施例的磨损平均方法。请处值得注意的是,本实施例的磨损平均方法类似于本发明先前揭露的动态磨损平均方法。图7和图3所使用相同符号的步骤代表相同的步骤内容。在步骤s302中,产生记录有多个物理区块号、擦写次数、区块状态和时间标记的管理表。类似于步骤s202,步骤302还记录区块的多个时间标记。在步骤s304中,控制器11在后台模式下用热备用区块交换旧数据区块(olddatablock)。旧数据区块指的是具有旧时间标记的数据区块。如果单个数据区块或一组数据区块的时间标记早于预定时间点(例如2016/1/1),则可将定义为旧数据区块。在后一种情况下(即一组数据区块的时间标记早于预定时间点),可以从区块组中随机选择一个区块或者直接选择一个具有极值的区块作为旧数据区块。以图3中的管理表为例,在进入后台模式之后,控制器11判定第四和第五区块都是旧数据区块,因时间标记皆早于预定时间点并且区块状态被标记为“d”。优选地,第四区块被选取为旧数据区块,因为它是两个区块(即第四和第五区块)中较旧的数据区块。另一方面,优选地,第七区块被选取为热备用区块。当一组区块被定义为旧数据区块或热备用区块时,控制器11可以随机地从区块组中选择任一个区块或者直接选择一个具有极值的区块作为旧数据区块或热备用区块。当旧数据区块和热备用区块被选取后,控制器11对这两个区块执行交换程序。图8示出了执行交换程序后所得的更新后管理表。在一替代实施例中,控制器11在执行步骤s304之前先计算最旧数据区块和最热备用区块之间的擦写次数差。步骤s304仅在满足特定条件时才被执行。例如,仅当最旧数据区块(例如图3中的第四区块)和最热备用区块(例如图3中的第七区块)之间的擦写次数的差值大于次数阈值(例如100),控制器11才将执行步骤s304。由于其余步骤与第一实施例相同,因此省略其描述。在一替代实施例中,管理表可由复数个子管理表所组成,每一子管理表记录一种区块状态下的每一区块的物理区块号,例如:备用区块子管理表、数据区块子管理表以及临时区块子管理表。如此一来,管理表的尺寸可以进一步简化,且,区块状态的记录可以省略。虽然本发明以前述的实施例揭露如上,然其并非用于限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1