数据储存装置与数据储存方法

文档序号:6579571阅读:178来源:国知局

专利名称::数据储存装置与数据储存方法
技术领域
:本发明有关于一种数据储存装置以及所使用的数据储存方法。
背景技术
:除了硬盘、光盘等,存储器常被用来储存数据。以NAND快闪存储器(NANDFlash)为例,携带式电子装置常用其作为储存单元。例如,市面上常见的mp3随身听等,即常使用NAND快闪存储器储存数据。图1图解NAND快闪存储器的物理空间。一NAND快闪存储器具有多个区块(blocks,编号为block卜block2.....blockn),且所述区块各自包:l舌多个页(pages,例如,区块blocb即包括多个页page(l)、page(2).....page(m))。NAND快闪存储器的写入操作通常以"页"为单位,一页一页写入存储器中;待储存空间用尽,则通常以"区块"为单位释放存储器空间。该种不对称的写入/抹除规则使得逻辑地址与物理地址之间的映射(mapping)技术更显重要;其中,逻辑运算所使用的地址信息称为逻辑地址,而存储器的实体地址信息称为物理地址。不良的逻辑-物理地址映射将严重影响存储器的使用效率。
发明内容本发明公开一种数据储存装置以及所使用的数据储存方法。本发明所述的数据储存装置包括一第一存储器以及一存储器控制器。第一存储器为实际储存数据的元件,以物理地址划分其中空间。至于逻辑运算阶段所见的地址信息,则称为逻辑地址。存储器控制器于一写入操作下接收一逻辑地址与一写入数据且修正该逻辑地址的一写入频度标示,且根据修正后的该写入频度标示决定该逻辑地址于该第一存储器上所对应的一物理地址,据以将该写入数据写入该第一存储器的所述物理地址。本发明所述的数据储存方法,该数据储存方法的一写入操作包括接收一逻辑地址以及一写入数据;修正该逻辑地址的一写入频度标示;以及根据修正后的该写入频度标示决定该逻辑地址于一第一存储器上所对应的一物理地址,据以将该写入数据写入该第一存储器。本发明通过在系统运作的一段时间内,按照写入频度标示的不同,将存储器的逻辑地址归类为不同的等级,并写入不同等级的物理空间分区中,从而大大提高了系统运作效率,特别是释放区块时的效能。同时,本发明用较少的存储空间来表征逻辑地址被写入的频繁度,因此也大大节省了存储空间。图1图解NAND快闪存储器的物理空间;图2以方块解本发明数据储存装置的一种实施方式;图3以流程图说明本发明数据储存技术的写入操作;图4以NAND快闪存储器为例,图解第一存储器202采用图3技术后其中数据储存状况;图5以流程图说明本发明释放储存空间的一种方式;图6图解图5所述的备份动作;图7以流程图说明图3步骤S302修正写入频度标示的一种实施方式;图8以流程图说明图3步骤S302修正写入频度标示的另一种实施方式。图9以流程图说明图3步骤S302修正写入频度标示的又一种实施方式。具体实施例方式图2以方块解本发明数据储存装置的一种实施方式,其中特别说明一写入操作。数据储存装置200包括一第一存储器202、一第二存储器204以及一存储器控制器206。第一存储器202为实际储存数据的元件,以物理地址划分其中空间。数据储存装置200所接收到的写入操作指令和读取操作指令中所包括的地址信,t称为逻辑地址。逻辑地址与物理地址之间的映射关系呈一逻辑_物理地址映射表(mappingtable)208记录于第二存储器204中。此外,本发明还利用第二存储器204的空间,对每一逻辑地址提供一写入频度标示表征该逻辑地址被写入的频繁程度,逻辑地址与写入频度标示的对应关系呈一写入频度标示表210也记录于第二存储器204中。在本发明一实施方式中,该第一存储器202可以是一快闪存储器(flashmemory),该第二存储器204可以是一随机存储器(RAM),该第二存储器204在该数据储存装置200运作时从该第一存储器202中载入该逻辑-物理地址映射表(mappingtable)ZOS和该写入频度标示表"0,逻辑誦物206决定。在本发明一实施方式中,在写入操作下,存储器控制器206接收一逻辑地址与欲写入该逻辑地址的一写入数据,图中将两者整合标号为212;存储器控制器206修正该逻辑地址的写入频度标示;存储器控制器206再根据修正后的该写入频度标示决定该逻辑地址于该第一存储器202上所对应的一物理地址,再据以将该写入数据写入该第一存储器202的所述物理地址。其中,根据修正后的该写入频度标示决定该物理地址的原则是令第一存储器202中同一区块所储存的数据的逻辑地址具有同样的写入频度标示,举例而言,该第一存储器202是一快闪存储器(flashmemory),其包括多个区块(block),每个区块包括多个页(page),每个页的物理地址对应一逻辑地址,依据该逻辑地址的写入频度标示决定将该写入数据写到哪个物理地址的操作,度标示,即是说,在该第一存储器202中,每个区块的数据对应的逻辑地址具备同一写入频度标示,因此根据该修正后的写入频度标示,就可知将该写入数据写入哪个区块。在本发明一实施例中,具有同一写入频度标示的区块可以是多个,将写入数据写入同一写入频度标示的区块的哪一页可以采用顺序写入的方式,即按各个空白页的物理地址顺序写入;也可以加入其它算法的考量,例如考量损耗均衡(wear-leveling),将该写入数据写入损耗次数较少的区块的第一个空白页中。在本发明的一实施方式中,当存储器控制器206修正该逻辑地址的写入频度标示后,会以修正后的该写入频度标示更新该写入频度标示表210中该逻辑地址对应的记录。此外,当存储器控制器206根据修正后的该写入频度标示决定该逻辑地址对应的一物理;也址后,会依才居该物理地址更新该逻辑-物理;也址映射表208中该逻辑地址对应的记录。存储器控制器206的功能可以由硬件,固件或软件的方式实现。图3以流程图说明上述写入操作,上述写入操作不仅可由存储器控制器206实现,亦可以软件或其他方式实行;以下详述。写入操作开始后首先执行步骤S302:根据接收到的逻辑地址自第二存储器204读取该逻辑地址的写入频度标示并修正。接着进入步骤S304,根据修正后的写入频度标示决定该逻辑地址所映射的一物理地址。步骤S306随即4艮据该物理地址将该逻辑地址的写入数据写入该第一存储器202,并且将逻辑-物理地址的映射关系与步骤S302修正后的写入频度标示更新至第二存储器204中,具体而言,是将逻辑-物理地址的映射关系更新至该逻辑-物理地址映射表208中,并将修正后的写入频度标示更新至该写入频度标示表210中。图4以NAND快闪存储器为例,图解NAND快闪存储器(用来实现第一存储器202)采用图3所示的数据储存技术后其中数据储存状况。步骤S304令第一存储器202中同一区块所储存的数据的逻辑地址具有同样的写入频度标示。该实施例令第二存储器204对每一逻辑地址提供两位的空间储存上述写入频度标示。写入频度标示因而包括四种等级第三级频度(ll)、第二级频度(IO)、第一级频度(01)与第零级频度(00);愈高级数代表愈频繁的写入频度。在本发明其它实施例中,还以不同位数的空间储存该写入频度标示,例如用H立来储存,则写入频度标示包括高频度(1)和低频度(0)两种。位数不同,可以表征的写入频度标示的等级数量就不同。经过图3所示的写入操作,第一存储器202包括第三级频度的多个区块block(3,1)block(3,nO;第二级频度的多个区块block(2,1)~block(2,n2);第一级频度的多个区块block(l,l)~block(l,n3);以及第零级频度的多个区块block(O,l)~block(0,n4)。该实施方式将数据以"页,,为单位写入第一存储器202,其中,一逻辑地址所对应的物理地址为一物理页,且每次写入的数据量可为一页或小于一页。由于具有相同写入频度标示的区块可以是多个,例如在图4中,具有第三级频度的区块有block(3,1)~block(3,nJ,将写入数据写入block(3,1)~block(3,n。中哪一页,举例而言,可采用顺序写入的方式,即按各个空白页的物理地址顺序写入,图4中,物理地址402对应的页是第一个空白页,因此就将写入数据的逻辑地址映射至物理地址402;再举例而言,将写入数据写入block(3,1)~block(3,ih)中哪一页还可加入其它算法的考量,例如考量损耗均衡(wear-leveling),如果block(3,1)~block(3,n0中block(3,n0的损耗最小,则将该写入数据写入block(3,iM)的第一个空白页402中。关于同一逻辑地址,先前储存的数据会在新的写入操作后变成无效。举例说明,参阅图4,最新写入指令的逻辑地址被映射至物理地址402且该逻辑地址上一次写入动作:帔映射至物理地址404;由于该逻辑地址重新一皮指向物理地址402,物理地址404所储存的数据变成无效数据(dirty)。图中以斜线标示无效数据。参阅图4,可发现,同一级写入频度标示的所述区块以近似的比例拥有无效数据。第三级频度的区块block(3,1)~block(3,n!)具有最高比例的无效数据;其次为第二级频度的区块block(2,1)~block(2,n2);再其次为第一级频度的区块block(1,1)~block(1,n3)。而写入频度标示最低的第零级频度的区块block(O,l)~block(0,n4)仅具有极少数的无效数据。上述无效数据的分布极有利于储存空间释放(例如garbagecollection)的进行。图5以流程图说明释放储存空间的一种方式,其中以"区块"作为释放空间的单位。该方法可由图2的存储器控制器206或软件或其他方式实行。步骤S502首先选定要释出的区块。步骤S504将选定区块内的有效数据复制到其他区块中备份;接着,进行步骤S506,抹除选取的区块,令其空间为可写入。其中步骤S502"选定要释出的区块"一种实施方式是自最高级频度(第三级频度)的区块block(3,1)~block(3,n!)中选取欲释放的区块。由于最高级频度的区块block(3,1)~block(3,nJ通常具有最少的有效数据,故步骤S504所执行的备份工作可大大精简,显著地提升存储器的效能。以释放图4所示的第三级频度区块中的一区块block(3,l)为例,图6图解其备份动作。区块block(3,l)中尚存的有效数据包括页602、页604。区块606为备份空间,亦属于第三级频度的区块(例如,图4区块block(3,n,))。步骤S504将有效数据602、604等备份至区块606,相关的逻辑-物理地址映射也会随之修改,存储器控制器206根据修改后的逻辑-物理地址映射更新逻辑-物理地址映射表208的相应记录。由于本发明令数据在物理空间的储存是按照写入频度标示等级不同做了分区,本发明可以通过选择释放写入频度标示等级较高的区块,来减少释放时的备份工作,从而大大提升了系统效率。关于写入频度标示的修正(图3步骤S302),本发明一种实施例采用随机数技术,图7图解其流程图;该技术可由图2所示的存储器控制器206、软件或其他方式实现。步骤S702首先产生一随机数,其值可为'0,或'r。步骤S704判断该随机数的值。若随机数为'l',则执行步骤S706,提升需写入数据的该逻辑地址的写入频度标示。若随机数为'O,,则执行步骤S708,维持该写入频度标示。使用者可设定随机数产生'r的概率x,借以控制写入频度标示的跳升。举例说明,使用者设定一跳升事件期望一逻辑地址每被写入n次即跳升一级写入频度标示;此外,4吏用者设定该跳升事件发生的概率为P;根据式子l-(l-X)八i^P,随机数产生'1,的概率X需设定为X=l-(l-P)A(l/n)。以n为10,P为90VQ的状况为例(即是说,设定一跳升事件,期待该逻辑地址每被写入10次则跳升该逻辑地址的写入频度标示,且该跳升事件发生的概率可达到90%),则计算出X约为0.21。若n为911皆可接受,且P仍预期为90。/。,则计算出X约为0.2260.268皆可接受,为了工程计算方便,X可设为0.25。则关于步骤S702,当使用者设定该随机数产生'1,的概率X为0.25(即将一随机数产生器的生成概率设置为25%),则当一逻辑地址被写入时,该随机数产生器会以25%的概率生成随机数'1,;接下来在步骤S704的判断中,若该随机数的值为'l,,则代表该逻辑地址有90%的可能性被写入了IO次。从较大的样本空间上来看,一逻辑地址平均被写入io次出现一次为'r的随机数。图8以流程解修正写入频度标示(图3步骤S302)的另一种实施方式;该技术可由图2所示的存储器控制器206或软件或其他方式实现。步骤S802首先产生一随机,其值可为099。步骤S804比较该随机数与一临界值。若随机数小于该临界值,则执行步骤S806,提升需写入数据的该逻辑地址的写入频度标示。若随机数大于或等于该临界值,则执行步骤S808,维持该写入频度标示。使用者可以当前的系统时间、中央处理器的时间标记或硬件实现的随机数产生器作为一随机数种子,得到高斯白噪声随机数。通过对该高斯白噪声随机数取模数(除以IOO求余数),即可得范围为099的随机数。使用者可设定步骤S804所使用的临界值,借以控制写入频度标示的跳升机率。其中该临界值x的设定原理与前述实施方式中该随机数产生'1,的概率X的设定方法类似,即通过式子x/1004-(l-P)A(l/n)计算,其中n与一跳升事件相关,显示使用者期望一逻辑地址每被写入n次即跳升一级写入频度标示,P为该跳升事件发生的相克率。以n为911皆可接受,且P预期为90。/。,则计算出x约为22.626.8皆可接受,为了工程计算方便,例如可设该临界值x为25。则在图8所述的计数中,步骤S802产生一随机数后,步骤S804比较该随机数与临界值25。若该随机数小于临界值25,则执行步骤S806,提升需写入数据的该逻辑地址的写入频度标示;反之,则执行步骤S808,维持该写入频度标示。在其它实施方式中,亦可将临界值设定为75,且将步骤S804修正为比较随机数是否大于或等于该临界值75。若该随机数大于或等于75,则执行步骤S806提升需写入数据的该逻辑地址的写入频度标示;反之,则执行步骤S808,维持该写入频度标示。以上两种实施方式是以概率随机数的方式来反映一逻辑地址被写入的次数,只需用较少的位储存每个逻辑地址的写入频度标示即可,无须占用第二存储器204较多的存储空间来存放一逻辑地址被写入的次数,因此可以大大节省存储空间。在储存空间允许的前提下,本发明的另一实施例还可以直接为每个逻辑地址配置储存空间来存放该逻辑地址被写入的写入计数值,直接根据该写入计数值的多少来修正该写入频度标示。图9图解其流程图;该技术可由图2所示的存储器控制器206、软件或其他方式实现。步骤S902首先在一逻辑地址被写入时,将其写入计数值加1。步骤S904判断该写入计数值是否达到一预定计数值。若该写入计数值达到一预定计数值,则执行步骤S906,提升需写入数据的该逻辑地址的写入频度标示,举例而言,每当该逻辑地址被写入20次,就应将该逻辑地址的写入频度标示提升一级。若该写入计数值尚未达到该预定计数值,则执行步骤S908,维持该写入频度标示。本发明还公开一种写入频度标示重置技术,以避免所有逻辑地址的写入频度标示到最后皆为最高级。该重置技术可由图2存储器控制器206、软件或其他方式实现。各逻辑地址的访问通常有时间性。例如,开机时频繁使用的逻辑地址可能在之后的应用程序中就变成很少使用。本发明每隔一段时间即降低第一存储器202中同一级写入频度标示的区块中最早被使用的区块的写入频度标示级数。例如,每当对该第一存储器202执行10000次写入操作即执行一次重置动作,令第三级频度的多个区块中最早使用的区块降为第二级频度,令第二级频度的多个区块中最早使用的区块降为第一级频度,且令第一级频度的多个区块中最早使用的区块降为第零级频度。储存在第二存储器204中的写入频度标示表210亦随之调整。在本发明的一种实施方式中,可以使用先进先出存储器(FIFO)的方式来排序同一级写入频度标示的所述区块,最早被使用的区块排列在该先进先出存储器的最前端,因此在需要重置写入频度标示时,可通过访问该先进先出存储器就可以确定要重置写入频度标示的区块,并将其上所有物理位置所对应的逻辑地址的写入频度标示降低一级(可直接修正图2的写入频度标示表210)。本发明通过在系统运作的一段时间内,按照写入频度标示的不同,将存储器的逻辑地址归类为不同的等级,并写入不同等级的物理空间分区中,从而大大提高了系统运作效率,特别是释放区块时的效能。本发明的另一个优势是,用较少的存储空间来表征逻辑地址被写入的频繁度,因此也大大节省了存储空间。以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。附图中符号的简单说明如下200:数据储存装置202、204:第一存储器、第二存储器206:存储器控制器208:逻辑-物理地址映射表210:写入频度标示表212:逻辑地址与写入数据402、404:对应同一逻辑地址的两页602、604:区块block(3,1)内的有效数据606:备分用区块block}…blockn:区块block(O,l)~block(0,n4):第零级频度的多个区块block(1,1)block(l,n3):第一级频度的多个区块block(2,l)~block(2,n2):第二级频度的多个区块block(3,1)block(3,n0:第三级频度的多个区块page(l)…page(m):页。权利要求1.一种数据储存装置,其特征在于,包括一第一存储器;以及一存储器控制器,于一写入操作下接收一逻辑地址与一写入数据且修正该逻辑地址的一写入频度标示,且根据修正后的该写入频度标示决定该逻辑地址于该第一存储器上所对应的一物理地址,据以将该写入数据写入该第一存储器的所述物理地址。2.根据权利要求l所述的数据储存装置,其特征在于,还关系,且记录上述写入频度标示。3.根据权利要求l所述的数据储存装置,其特征在于,该第一存储器包括多个区块,其中上述存储器控制器决定该物理地址的步骤是令上述区块中的同一区块所包括的数据所对应的多个逻辑地址具有同样的写入频度标示,其中上述多个逻辑地址分别对应于所述同一区块所包括的数据所对应的多个物理地址。4.一种数据储存方法,其特征在于,该数据储存方法的一写入操作包括接收一逻辑地址以及一写入数据;{奮正该逻辑地址的一写入频度标示;以及根据修正后的该写入频度标示决定该逻辑地址于一第一存储器上所对应的一物理地址,据以将该写入数据写入该第一存储器。、5.根据权利要求4所述的数据储存方法,其特征在于,该第一存储器包括多个区块,其中上述根据修正后的该写入频度标示决定该逻辑地址于一第一存储器上所对应的一物理地址的步骤是令上述区块中的同一区块所包括的数据所对应的多个逻辑地址具有同样的写入频度标示,其中上述多个逻辑地址分别对应于所述同一区块所包括的数据所对应的多个物理地址。6.根据权利要求5所述的数据储存方法,其特征在于,还包括当需要释放该第一存储器的空间时,自对应最频繁写入频度标示的多个上述区块中选择其一用来释放空间。7.根据权利要求4所述的数据储存方法,其特征在于,上述修正该逻辑地址的一写入频度标示的步骤还包括产生一随^L数;以及于该随机数符合一特定条件时提升所接收的该逻辑地址的上述写入频度标示,且于该随机数不符合该特定条件时维持所接收的该逻辑地址的上述写入频度标示。8.根据权利要求7所述的数据储存方法,其特征在于,上述特定条件为当上述随机数以一预定概率值生成为一特定值时,提升所接收的该逻辑地址的上述写入频度标示。9.根据权利要求8所述的数据储存方法,其特征在于,上述预定概率值由式子X-l-(l-P)A(l/n)计算,其中X为上述预定概率值,n有关于一跳升事件期待同一逻辑地址每被写入n次即跳升一级写入频度标示,P设定该跳升事件发生的概率。10.根据权利要求7所述的数据储存方法,其特征在于,上述特定条件为当上述随机数小于一临界值时,提升所接收的该逻辑地址的上述写入频度标示。11.根据权利要求10所述的数据储存方法,其特征在于,上述临界值由式子x/100爿-(l-P)A(l/n)计算,其中x为上述临界值,n有关于一跳升事件期待同一逻辑地址每被写入n次即跳升一级写入频度标示,P设定该跳升事件发生的概率。12.据权利要求4所述的数据储存方法,其特征在于,上述修正该逻辑地址的一写入频度标示的步骤还包括将所接收的上述逻辑地址所对应的一写入计数值加一,且于该写入计数值达到一预定计数值时提升所接收的该逻辑地址的上述写入频度标示,且于该写入计数值未达到该预定计数值时维持所接收的该逻辑地址的该写入频度标示。13.根据权利要求5所述的数据储存方法,其特征在于,还包括每隔一特定时间调降至少一个特定区块所对应的多个上述逻辑地址的写入频度标示,其中上述特定区块为写入频度标示相同的多个区块中最先写入数据的区块。全文摘要本发明提供一种数据储存装置与数据储存方法,数据储存装置包括一第一存储器以及一存储器控制器。第一存储器为实际储存数据的元件,以物理地址划分其中空间。至于逻辑运算阶段所见的地址信息,则称为逻辑地址。存储器控制器于一写入操作下接收一逻辑地址与一写入数据且修正该逻辑地址的一写入频度标示,且根据修正后的该写入频度标示决定该逻辑地址于该第一存储器上所对应的一物理地址,据以将该写入数据写入该第一存储器的所述物理地址。本发明大大提高了系统运作效率,特别是释放区块时的效能,同时用较少的存储空间来表征逻辑地址被写入的频繁度,因此也大大节省了存储空间。文档编号G06F12/02GK101625660SQ20091016172公开日2010年1月13日申请日期2009年8月4日优先权日2009年8月4日发明者博张申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1