数据储存装置及映射表重建方法与流程

文档序号:15829010发布日期:2018-11-03 00:15阅读:192来源:国知局
本发明有关于数据重建技术,特别有关于一种适用于数据储存装置的逻辑到实体地址映射表(logical-to-physicaladdressmappingtable)重建方法。
背景技术
:随着电脑科技的演进,逐渐发展出各式的密集储存装置,其中又以存储器为最广受使用的储存媒介,一般来说,依据储存特性之别,存储器又可区分为挥发性(volatile)存储器与非挥发性(non-volatile)存储器,其中挥发性存储器所储存的数据会在电源供应中断后消失,而非挥发性存储器所储存的数据即使在断电时依旧能够被保存下来,只要重新供电就能够读取内存数据。以非挥发性存储器为例,其于近年来被大量使用于电子产品中,特别是可携式电子产品(如:行动电话、数位相机、以及小型游戏机等),用以长时间保存数据。目前市面上有许多种不同类型的非挥发性存储器,包括:快闪存储器(flashmemory)、磁阻式随机存取存储器(magneto-resistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式随机存取存储器(resistiveram)、以及自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)等。在非挥发性存储器的使用过程中,需要以映射表来管理主机端的逻辑地址以及非挥发性存储器端的实体地址之间的映射关系,以实现正确的数据存取操作。然而,在使用上若发生不当断电或突然断电,将可能造成内存数据的毁损,例如:映射表毁损。因此,亟需有一种映射表重建方法,能够有效解决映射表毁损的问题。技术实现要素:为了解决上述问题,本发明提出一种数据储存装置及映射表重建方法,特别将逻辑到实体地址映射表中的不可修复错误(uncorrectableerror,uncerror)位元备份到实体到逻辑地址映射表(physical-to-logicaladdressmappingtable)、以及/或数据页备用区(datapagesparearea),使得于重建逻辑到实体地址映射表时也能够快速重建不可修复错误位元。本发明的一实施例提供了一种数据储存装置,包括一非挥发性存储器以及一微控制器。上述非挥发性存储器包括多个数据区块。上述微控制器自上述数据区块中选取一来源区块以及一目地区块并将上述来源区块的多个有效数据复制至上述目地区块,当上述有效数据之一者毁损且无法修复时,将上述有效数据之上述一者所对应的一不可修复错误位元记录至上述目地区块。较佳的情况是,上述不可修复错误位元是记录于上述目地区块的一区块终端,或者,上述不可修复错误位元记录于上述目地区块的一备用区域。本发明的另一实施例提供了一种数据储存装置,包括一非挥发性存储器以及一微控制器。上述非挥发性存储器包括多个数据区块。上述微控制器读取每一上述数据区块中的一实体到逻辑地址映射表,每一上述实体到逻辑地址映射表包括一不可修复错误位元,以及依据上述实体到逻辑地址映射表的先后顺序建立一逻辑到实体地址映射表,其中上述逻辑到实体地址映射表包括上述不可修复错误位元。较佳的情况是,上述实体到逻辑地址映射表储存于上述数据区块的区块终端。上述数据区块的先后顺序记录于一时序列表中,或者,上述数据区块的先后顺序参照每一上述数据区块的一时间戳记而决定。本发明的另一实施例提供了一种映射表重建方法,适用于一数据储存装置,上述映射表重建方法包括以下步骤:令上述数据储存装置的一非挥发性存储器的空间划分为至少一系统资讯区块以及至少一数据区块;以及在上述系统资讯区块中的一逻辑到实体地址映射表毁损时,从上述数据区块中的一实体到逻辑地址映射表或一数据页备用区域读取一不可修复错误位元,以重建上述逻辑到实体地址映射表。较佳的情况是,映射表重建方法还包括以下步骤:在写入数据至上述数据区块时,从上述逻辑到实体地址映射表读取上述不可修复错误位元并写入至上述实体到逻辑地址映射表或上述数据页备用区域;在从上述数据区块读取数据却发生错误时,执行一数据修复程序;以及在上述数据修复程序失败时,将上述逻辑到实体地址映射表中的上述不可修复错误位元设为"真"。上述逻辑到实体地址映射表用以指示一主机至上述非挥发性存储器的映射资讯,上次实体到逻辑地址映射表还用以指示上述非挥发性存储器至上述主机的映射资讯。上述实体到逻辑地址映射表储存于上述数据区块的一区块终端。上述数据页备用区域还用以储存上述数据区块中每一数据页的元数据。关于本发明其他附加的特征与优点,此领域的熟悉本
技术领域
:者,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭示的数据储存装置以及映射表重建方法做些许的更动与润饰而得到。附图说明图1a以及图1b是显示一范例快闪存储器的物理空间配置的示意图。图2是根据本发明一实施例所述的数据储存装置的示意图。图3是显示以逻辑地址为索引的h2f映射表的示意图。图4是根据本发明一实施例所述的h2f映射表重建方法的流程图。符号说明100快闪存储器;102数据区域;104备用区域;200数据储存装置;210快闪存储器;211线上编程区块池;212系统资讯区块池;213闲置区块池;214数据区块池;220控制单元;221微控制器;222随机存取存储器;223只读存储器;300主机;s401~s405步骤编号;blk#1、blk#2、blk#z物理区块;u#i、u#(i+1)、u#(i+2)、u#(i+3)储存单元;blk#物理区块编号;u#储存单元编号;h2f_h#1、h2f_h#2主机区块映射表;h2fh2f映射表;f2hf2h映射表;eob区块终端。具体实施方式本章节所叙述的是实施本发明的最佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。非挥发性存储器包括:快闪存储器、磁阻式随机存取存储器、铁电随机存取存储器、电阻式存储器、自旋转移力矩随机存取存储器等,其具有长时间保存数据的特性。以下特别以快闪存储器为例进行说明。现今数据储存装置常以快闪存储器为储存媒介,常用来实现记忆卡(memorycard)、通用序列汇流排闪存装置(usbflashdevice)、以及固态硬碟(solidstatedrive,ssd)等产品。其中一种应用是采多晶片封装,将快闪存储器与其控制器包装在一起,称为嵌入式快闪存储器模组(如:嵌入式多媒体卡(embeddedmultimediacard,emmc))。以快闪存储器为储存媒介的数据储存装置可应用于多种电子装置中,包括:智慧型手机、穿戴装置、平板电脑、以及虚拟实境设备等,而一般来说,这般电子装置中的中央处理单元(centralprocessingunit,cpu)可被视为操作所述数据储存装置的一主机。图1a以及图1b是显示一范例快闪存储器的物理空间配置的示意图。如图1a所示,快闪存储器100的数据储存空间可被划分为多个区块(或称物理区块(physicalblock))blk#1、blk#2、…blk#z,其中z为正整数。各物理区块包括多个物理页(physicalpage),或可称为数据页(datapage),例如:256个数据页。如图1b所示,每一数据页包括数据区域(dataarea)102、以及备用区域(sparearea)104。数据区域102可进一步划分为多个储存单元u#i、u#(i+1)、u#(i+2)、u#(i+3),经配置后,对应主机端的逻辑地址储存数据。主机端的逻辑地址有多种形式,例如,以逻辑区块地址(logicalblockaddress,lba)、或全域主机页(globalhostpage,ghp)进行编号。在一实施例,数据区域102的大小为16kb(kilo-byte,千位元组),储存单元u#i、u#(i+1)、u#(i+2)、u#(i+3)的大小各为4kb,每个储存单元可对应到8个逻辑区块地址(如:lba#0~lba#7)、或对应到1个全域主机页。备用区域104用来储存所属数据页的元数据(metadata),包括映射资讯、以及区块识别码。区块识别码用以记录所属物理区块的区块识别码。映射资讯用以指示储存单元u#i、u#(i+1)、u#(i+2)、u#(i+3)所储存的内容对应到的主机端的逻辑地址。举例来说,映射资讯可记录4段逻辑区块地址(各段包括8个逻辑区块地址的编号)、或4个全域主机页的编号。以下以全域主机页为例进行说明,但不以此为限。图2是根据本发明一实施例所述的数据储存装置的示意图。数据储存装置200包括快闪存储器210以及控制单元220,其中控制单元220耦接于主机300与快闪存储器210之间,并根据主机300所下达的指令(如:读取、写入、或重置等)操作快闪存储器210。控制单元220包括微控制器221、随机存取存储器222、以及只读存储器223,其中,随机存取存储器222与微控制器221可设置于同一个晶粒(die),或是分开制作,且可能空间有限(相较于大尺寸dram)。举例来说,一安全数位(securedigital,sd)卡可使用512kb的静态随机存取存储器(staticrandomaccessmemory,sram)来实现随机存取存储器222。只读存储器223用以储存只读程序码(如,romcode)。微控制器221可载入并执行只读存储器223所储存的只读程序码、以及/或快闪存储器210的线上编程(in-systemprogramming,isp)区块池211所储存的线上编程程序,以进行运作,且运作中可利用随机存取存储器222作动态资讯储存。微控制器221的运作内容还特别包括:动态整理快闪存储器210的逻辑地址(主机300的视角)与物理地址(快闪存储器210的视角)之间的映射资讯,包括主机至快取存储器(hosttoflash,h2f)映射表(文后简称为h2f映射表)、以及数据区块各自的快取存储器至主机(flashtohost,f2h)映射表(文后简称为f2h映射表)。快闪存储器210的空间配置包括:线上编程区块池211、系统资讯区块池212、闲置区块池213、以及数据区块池214。系统资讯区块池212中的区块是用以储存系统资讯,包括h2f映射表的非挥发式存储,h2f映射表的范例将于文后图3做进一步说明。闲置区块池213中的区块可由微控制器221配置来储存数据(例如,作为主动区块接收主机300写入数据、或作为垃圾回收的目标区块),并待数据储存完成(写满、或中断不再利用)即推入数据区块池214定义为数据区块。数据区块池214中的区块又可被称为数据区块,是由实体地址所定义出来的数据储存空间,也就是主机300要读取的数据的真实所在位置。f2h映射表是储存于对应区块的区块终端(endofblock,eob)中,而区块终端较佳是储存于对应区块的最末数据页。一般运作下,数据储存装置200的控制单元220会动态整理映射表,包括:h2f映射表、以及f2h映射表。h2f映射表可以全域主机页为索引,记录各全域主机页的数据(有效数据)是被储存至快闪存储器210的哪个物理地址,也就是哪一物理区块中的哪一数据页或哪一储存单元。f2h映射表则可记录所描述的物理区块中,数据页或储存单元所储存的内容所对应到的全域主机页为何。由此可知,映射表是数据储存装置200运作所需重要依据。图3是显示以逻辑地址为索引的h2f映射表的示意图。h2f映射表中的每个项目(entry)记录不同逻辑地址(如,逻辑区块地址、或全域主机页)的数据是被储存至快闪存储器100中哪一物理区块(图中标示为blk#)的哪一储存单元(图中标示为u#),即物理物址。在一实施例中,逻辑地址与物理物址的数据长度为32位元,其中,blk#的数据长度为16位元,u#的数据长度也为16位元。而为了因应庞大的储存空间,h2f映射表还可以主机区块(hostblock)为单位,细分为主机区块映射表h2f_h#0、h2f_h#1…等。在一实施例,每个主机区块映射表的大小为64kb。该些主机区块映射表h2f_h#0、h2f_h#1…可以一指标列表管理。在本发明中,h2f映射表中的每个项目除了记录全域主机页与实体地址的对应关系之外,还记录一不可修复错误(uncorrectableerror,uncerror)位元(图中标示为unc位元),用以指示所属的全域主机页是否曾经在被读取时发生不可修复的错误。在一实施例,不可修复错误位元可以是每个项目中的任何一个未使用的位元,较佳为每个项目中的逻辑地址的第31个位元或物理物址的第31个位元或第15个位元。一开始在h2f映射表中每个有效数据(逻辑地址或物理地址)所对应的不可修复错误位元的预设值皆为"假(false)"。当数据储存装置200执行垃圾收集(garbagecollection)或其他数据搬移机制时,会选取一来源区块以及一目的区块,其中,来源区块较佳为数据区块池214中具有最大抹写次数(erasecount)或抹写次数超过一预设值的数据区块,或是具有最大错误位元数(errorbitcount)或错误位元数超过一预设值的数据区块,例如物理区块blk#1;目的区块较佳为闲置区块池213中具有最小抹写次数的闲置区块、任一或伫列中的闲置区块,例如物理区块blk#2。其中,垃圾收集或其他数据搬移机制较佳于背景模式下执行,亦可于前景模式下执行。当有效数据由来源区块搬移(或复制)至目的区块时,如果来源区块的一物理物址的有效数据毁损时,数据储存装置200会先执行数据修复程序试图修复毁损的有效数据,而当数据修复程序失败时,则认定是不可修复的错误并将h2f映射表中此有效数据所对应的不可修复错误位元设为"真"。最后,数据储存装置200可停止搬移(或复制)此有效数据,并更新此h2f映射表中此有效数据所对应的不可修复错误位元;或直接将此毁损的有效数据搬移(或复制)至目的区块,并更新h2f映射表中此有效数据所对应的不可修复错误位元及储存此有效数据所对应的不可修复错误位元至备用区域104,并于目的区块写入eob资讯时,将此有效数据所对应的不可修复错误位元写入至f2h映射表。在一实施例,数据修复程序可使用错误修复码(errorcorrectioncode,ecc)的机制来实现错误侦测及修复,关于错误修复码的运作机制将于后续进一步说明。于此之后,当主机300欲读取此有效数据时,数据储存装置200根据此有效数据在h2f映射表中的不可修复错误位元来直接回应主机300的数据读取要求。一旦不可修复错误位元被设为"真",则数据储存装置200可直接省略数据读取作业,即省略对快闪存储器210的操作,直接回传不可修复错误、或读取错误至主机300,如此一来,有效提升数据储存装置200的整体系统效能。另外,本发明提出一映射表重建方法能够连同不可修复错误位元一并快速重建。在本发明中,除了h2f映射表有记录有效数据的不可修复错误位元,f2h映射表以及每个数据页的备用区域也有记录此有效数据的不可修复错误位元。因此,当h2f映射表毁损时,微控制器221可于重建h2f映射表的过程中,根据f2h映射表或备用区域中的不可修复错误位元,快速重建h2f映射表中的不可修复错误位元。图4是根据本发明一实施例所述的h2f映射表重建方法的流程图。在此实施例,h2f映射表重建方法适用于一数据储存装置,如数据储存装置200,特别是,在该数据储存装置中,除了h2f映射表有记录不可修复错误位元,f2h映射表以及数据页的备用区域也有记录不可修复错误位元。首先,当数据储存装置侦测到h2f映射表毁损时(步骤s401),会执行第一修复程序试图从h2f映射表中所含的错误修复码(errorcorrectioncode,ecc)直接修复h2f映射表(步骤s402),其中,h2f映射表乃储存于系统资讯区块池212中的区块的数据区域102,错误修复码乃储存于系统资讯区块池212中的区块的备用区域104。造成h2f映射表毁损的原因有很多,例如:在数据读取或写入的过程中发生传输线松脱、或数据储存装置的不当断电或突然断电、或储存媒介的实体磨损。在一实施例,h2f映射表可于每个字节(word)(例如:32位元)中嵌入一核对码(checksum)及错误修复码,其中核对码于数据写入至该字节时根据数据内容所计算出来的,之后,在读取数据时,会再次根据数据内容重新计算出新的核对码,若新的核对码与先前写入的核对码不同,则表示数据毁损,接着使用错误修复码尝试修复数据,然而,错误修复码对于修复毁损数据有其极限,仅能修复有限位元数的毁损数据,若毁损的数据超过可修复的位元数,则修复失败。接续步骤s402,若修复成功,则流程结束;反之,若修复失败,则执行第二修复程序试图根据f2h映射表来重建h2f映射表(步骤s403)。明确来说,第二修复程序包括:根据数据区块的f2h映射表,例如,物理区块blk#2的区块终端所储存的f2h映射表,所记录的物理地址到全域主机页的对应关系,反向回推出全域主机页到物理地址的对应关系,即可重建h2f映射表中的映射资讯;以及将f2h映射表所记录的不可修复错误位元复制到重建的h2f映射表中的不可修复错误位元。由于数据区块池214中数据区块的数目可能超过1,因此,当读取数据区块的f2h映射表时,较佳是依据时序列表(linklist)或依据数据区块建立时所记录的时间戳记(timestamp)来决定数据区块的f2h映射表的读取顺序。接续步骤s403,若重建成功,则流程结束;反之,若重建失败,则执行第三修复程序试图根据数据区块的备用区域,例如:物理区块blk#2的备用区域104,来重建h2f映射表(步骤s404)。明确来说,第三修复程序包括:根据每个备用区域所记录的映射资讯(指示了物理地址到全域主机页的对应关系),反向回推出全域主机页到物理地址的对应关系,即可重建h2f映射表中的映射资讯;以及将每个备用区域所记录的不可修复错误位元复制到重建的h2f映射表中的不可修复错误位元。接续步骤s404,若重建成功,则流程结束;反之,若重建失败,则产生错误讯息,指示数据储存装置发生数据毁损(步骤s405),然后流程结束。在一实施例,如果第一到第三修复程序都无法修复/重建h2f映射表,那么连接到数据储存装置的主机,例如:主机300,在接收到错误讯息时,可选择重置(如:重新初始化)数据储存装置。本发明虽以各种实施例揭示如上,然而其仅为范例参考而非用以限定本发明的范围,任何熟悉本
技术领域
:者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰。因此上述实施例并非用以限定本发明的范围,本发明的保护范围当由权利要求书界定为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1