数据储存装置及快闪存储器零散数据收集方法

文档序号:9200165阅读:347来源:国知局
数据储存装置及快闪存储器零散数据收集方法
【技术领域】
[0001]本发明系有关于快闪存储器,特别是有关于具有快闪存储器的数据储存装置及快闪存储器零散数据收集方法。
【背景技术】
[0002]快闪存储器为一种普遍的非挥发性数据储存装置,系以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作存储卡(memory card)、通用序列总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模块(eMMC)…等使用。
[0003]快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks)。各区块包括多个页(pages)。若欲释放使用过的区块为备用区块(spare block),整个区块的所有页都必须一次性抹除。零散数据收集(garbage collect1n)用于将分散于多个区块中的有效数据移动到一备用空间,使得这些多个区块仅遗留下无效数据,因而得以被抹除且释放作备用区块。
[0004]然而,传统的零散数据收集方法通常耗费大量资源以及运算,而且往往无法有效地进行快闪存储器的耗损平衡。

【发明内容】

[0005]本发明系提供一种数据储存装置,耦接至一主机,该数据储存装置包括:一快闪存储器,包括一备用区块池以及一数据区块池,其中该备用区块池包括多个备用区块,且该数据区块池包括多个数据区块;以及一控制器,接收来自该主机的一目标数据,将该目标数据写至这些数据区块的一目前数据区块中,其中当该控制器判断需执行一耗损平衡程序以写入该目标数据时,该控制器将各数据区块的一抹除次数进行排序;其中当该控制器判断这些数据区块中的任意两个区块未同时具有一最小抹除次数时,该控制器更判断这些数据区块中的至少一第一区块所相应的该抹除次数与该最小抹除次数的差值是否小于一第一临界值,其中当这些数据区块中的至少一第一区块所相应的该抹除次数与该最小抹除次数的差值小于一第一临界值,该控制器由该至少一第一区块中选择具有一最小有效分页数量的一第二区块以执行一数据清除程序,借以将该第二区块中的有效分页写入这些备用区块中的一者。
[0006]本发明更提供一种快闪存储器数据清除方法,用于耦接至一主机的一快闪存储器,其中该快闪存储器包括一备用区块池以及一数据区块池,其中该备用区块池包括多个备用区块,且该数据区块池包括多个数据区块,该方法包括:接收来自该主机的一目标数据,将该目标数据写至这些数据区块的一目前数据区块;当执行一耗损平衡程序以写入该目标数据时,将各数据区块的一抹除次数进行排序;当这些数据区块中的任意两个区块未同时具有该最小抹除次数时,判断这些数据区块中的至少一第一区块所相应的该抹除次数与该最小抹除次数的差值是否小于一第一临界值;以及当这些数据区块中的至少一第一区块所相应的该抹除次数与该最小抹除次数的差值小于一第一临界值,由该至少一第一区块中选择具有一最小有效分页数量的一第二区块,并将该第二区块中的有效分页写入这些备用区块中的一者以执行一数据清除程序。
[0007]本发明更提供一种数据储存装置,耦接至一主机,该数据储存装置包括:一快闪存储器,包括一备用区块池以及一数据区块池,其中该备用区块池包括多个备用区块,且该数据区块池包括多个数据区块;以及一控制器,接收来自该主机的一目标数据,将该目标数据写至这些数据区块的一目前数据区块中,其中当该控制器判断需执行一耗损平衡程序以写入该目标数据时,该控制器将各数据区块的一抹除次数进行排序;其中当该控制器判断这些数据区块中的至少两个第一区块同时具有一最小抹除次数时,该控制器对各第一区块的一有效分页数量进行排序,由这些第一区块中选择具有一最小有效分页数量的一第二区块,并将该第二区块中的有效分页写入这些备用区块中的一者以执行一数据清除程序。
[0008]本发明更提供一种快闪存储器数据清除方法,用于耦接至一主机的一快闪存储器,其中该快闪存储器包括一备用区块池以及一数据区块池,其中该备用区块池包括多个备用区块,且该数据区块池包括多个数据区块,该方法包括:接收来自该主机的一目标数据,将该目标数据写至这些数据区块的一目前数据区块;当执行一耗损平衡程序以写入该目标数据时,将各数据区块的一抹除次数进行排序;当这些数据区块中的至少两个第一区块同时具有一最小抹除次数时,对各第一区块的一有效分页数量进行排序;以及由这些第一区块中选择具有一最小有效分页数量的一第二区块,并将该第二区块中的有效分页写入这些备用区块中的一者以执行一数据清除程序。
【附图说明】
[0009]图1是本发明的一种实施例的电子系统的方块图。
[0010]图2A — 2B是显示依据本发明一实施例中的快闪存储器零散数据收集方法的流程图。
[0011]【附图标记说明】
[0012]100?电子系统;
[0013]110 ?主机;
[0014]120?数据储存装置;
[0015]130?快闪存储器;
[0016]140?控制器;
[0017]142?运算单元;
[0018]144?存储器单元;
[0019]150?备用区块池;
[0020]160?数据区块池;
[0021]151 — 15η?备用区块;
[0022]161 - 16m?数据区块;
[0023]S202 — S230 ?步骤。
【具体实施方式】
[0024]为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合所附附图,作详细说明如下。
[0025]图1是本发明的一种实施例的电子系统的方块图。电子系统100包括一主机110以及一数据储存装置120。数据储存装置120包括一快闪存储器130以及一控制器140,且可根据主机110所下达的命令操作。控制器140包括一运算单元142以及一存储器单元(如,只读存储器ROM) 144。存储器单元144与所载的程序码、数据组成固件(firmware),由运算单元142执行,使控制器140基于该固件控制该快闪存储器130。快闪存储器130包括多个区块(block),并且每一区块包括多个分页(page)。
[0026]在一实施例中,快闪存储器130包括备用区块池(spare block pool) 150以及数据区块池(data block pool) 160o备用区块池150包括用以储存无效数据的多个备用区块151?15η。数据区块池130包括用以储存数据的多个数据区块161?16m。在一实施例中,控制器140根据主机110所送出的指令管理快闪存储器130内的区块。快闪存储器130是根据一实体地址指定一区块,而主机110是根据一逻辑地址指定一区块。因此,控制器140必须将主机110所送出的逻辑地址转换成一实体地址。在一实施例中,控制器140将区块的逻辑地址及实体地址间的对应关系记录在一地址链结表内。
[0027]每一个数据区块161?16m包括多个分页。当数据储存在数据区块的一分页时,该分页被称为一数据分页。当该分页具有一对应的逻辑地址时,该分页称为有效分页。在一实施例中,控制器140个别地计算数据区块161?16m中每一数据区块的有效分页的总数用以获得一有效分页数量,并且将数据区块161?16m的有效分页数量记录到一有效数量表中。另外,区块被抹除的次数被称为该区块的抹除次数。在一实施例中,控制器140亦将快闪存储器130中所有区块的抹除次数记录在一抹除次数表中。在一实施例中,快闪存储器130更包括该有效数量表及该抹除次数表(图1未绘示)。
[0028]在一实施例中,当主机(host) 110连续写入数据至数据储存装置120,在快闪存储器130的备用区块池150中的有效备用区块(spare block)的数量可能剩余不多。接着,主机110再对数据储存装置120反复不断地读取几个分页长度的数据后,并强制对数据储存装置120断电再上电(意即电源间歇中断(power cycling))。在处理每次的电源间歇中断时,控制器140会判断备用区块的数量是否低于一临界值(critical threshold)。当备用区块的数量低于该临界值时,控制器140启动零散数据收集(garbage collect1n)的动作。
[0029]更进一步而言,在开始进行零散数据收集的动作之前,控制器140需先由数据区块中决定一清除来源区块(clean source block),并由备用区块中决定一清除目的区块(clean destinat1n block)。控制器140在决定清除来源区块时,是先将各区块的抹除次数(erase count)进行排序,选择具有最小抹除次数的区块以做为该清除来源区块。若有多个区块同时具有最小抹除次数,则控制器140选择在排序中具有最小抹除次数的第一个区块。然而,若被选择的该清除来源区块中有太多有效分页(valid page),则表示该次执行的零散数据收集动作所能清出的备用区块就愈少。在最差的情况下,控制器140需要执行多次的零散数据收集动作才能清出一个完整的备用区块,而使得数据储存装置140的效能降低。
[0030]在另一实施例中,控制器140在决定清除来源区块时,同样是先将各区块的抹除次数(e
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1