数据储存装置以及其操作方法与流程

文档序号:15686129发布日期:2018-10-16 21:04阅读:189来源:国知局

本发明有关于数据储存装置,特别有关于数据储存装置映射表重建技术。



背景技术:

数据储存装置所采用的非挥发性存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式随机存取存储器(resistiveram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)…等,用于长时间数据保存。

非挥发式存储器的使用状况需要以映射表管理。映射表显示主机端逻辑地址以及非挥发式存储器端物理空间的映射关系。如何维护映射表为本技术领域一项重要课题。特别是,因应映射表毁坏甚至掉失的状况,本领域需要一种准确重建映射表的技术。



技术实现要素:

根据本发明一种实施方式提供的一数据储存装置包括一非挥发式存储器以及一微控制器。该非挥发式存储器包括多个物理区块。该微控制器在扫瞄该非挥发式存储器以重建一主机至该非挥发式存储器的一映射表时,根据一第一物理区块内的一有效性列表区分该第一物理区块的一第一数据以及一第二物理区块的一第二数据何者为较新版本。该第一物理区块前身为垃圾回收的目的区块。该第二物理区块前身为供该主机写入数据的主动区块。该有效性列表标示该第一物理区块各储存单元有效与否。上述第一数据以及第二数据皆关于同一逻辑地址。

根据本发明一种实施方式提供的一数据储存装置操作方法包括:令一数据储存装置的一非挥发式存储器的空间划分为多个物理区块;且在扫瞄该非挥发式存储器以重建一主机至该非挥发式存储器的一映射表时,根据一第一物理区块内的一有效性列表区分该第一物理区块的一第一数据以及一第二物理区块的一第二数据何者为较新版本。该第一物理区块前身为垃圾回收的目的区块。该第二物理区块前身为供该主机写入数据的主动区块。该有效性列表标示该第一物理区块各储存单元有效与否。上述第一数据以及第二数据皆关于同一逻辑地址。

以上技术正确地完成映射表重建。

还有一种实施方式揭露一种垃圾回收方法,可用于一数据储存装置。所述垃圾回收方法包括:选取一来源区块;选取一目的区块;将该来源区块的多个数据复制至该目的区块;以及当该些有效数据复制完成后,储存一关闭资讯eob至该目的区块,并将该该目的区块记录至一时序列表linklist。该关闭资讯eob还包括一有效性列表bitmap,该有效性列表bitmap记录该目的区块所储存的每一数据的有效性。

根据本发明另一种实施方式所揭示的一种重建映射表h2f方法用于一数据储存装置,且包括:依据一时序列表linklist依序选取该数据储存装置的多个物理区块;读取该些物理区块所储存的多个关闭资讯eob;取得该些关闭资讯eob的多个有效性列表bitmap,并依据该些有效性列表bitmap来判断该些物理区块所储的多个数据的有效性;以及记录该些数据中多个有效数据的多个映射资讯至该映射表h2f。

下文特举实施例,并配合附图,详细说明本发明内容。

附图说明

图1a以及图1b根据本发明一种实施方式图解一快闪存储器100的物理空间规划;

图2图解了垃圾回收的概念;

图3以方块图图解根据本发明一种实施方式实现的一数据储存装置300;

图4示意重建映射表h2f之时序列表linklist扫描所可能遭遇的意外状况;

图5对应图4的状况,图解本发明一种实施方式的解决方案;

图6为流程图,根据本发明一种实施方式图解如何扫描数据区块以重建映射表h2f,是对应图5实施例;

图7对应图4的状况,图解本发明另一种实施方式的解决方案;且

图8为流程图,根据本发明一种实施方式图解如何扫描数据区块以重建映射表h2f,对应图7实施例。

符号说明

100~快闪存储器;

102~数据区域;

104~闲置区域;

300~数据储存装置;

302~控制单元;

304~主机;

306~动态随机存取存储器;

310~在系统编程区块池;

312~系统资讯区块池;

314~闲置区块池;

316~数据区块池;

320~微控制器;

322~随机存取存储空间;

324~只读存储器;

a1、a2~数据;

active_blk~主动区块;bitmap~列表

blk#1、blk#2、blk#z~物理区块;

blk#x、blk#y、blk#v、blk#w~当数据区块的物理区块;

eob~关闭资讯;

gc_d、gc_s~目的区块、来源区块;

h2f~映射表;

id~栏位,填写区块识别码;

linklist~时序列表;

map~映射资讯;

s602…s616、s802…s814~步骤;

u#1…u#n~储存单元。

具体实施方式

以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照申请专利范围界定。

非挥发性存储器可以是快闪存储器(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式存储器(resistiveram,rram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)等具有长时间数据保存的存储器装置。以下特别以快闪存储器(flashmemory)为例进行讨论。

现今数据储存装置常以快闪存储器为储存媒体,常用来实现记忆卡(memorycard)、通用串行总线闪存装置(usbflashdevice)、固态硬碟(ssd)…等产品。有一种应用是采多芯片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如emmc)。以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的中央处理单元(cpu)可视为操作所述数据储存装置的一主机。

图1a以及图1b根据本发明一种实施方式图解一快闪存储器100的物理空间规划。

如图1a所示,快闪存储器100的储存空间划分为多个区块(或称物理区块,physicalblocks)blk#1、blk#2…blk#z等,z为正整数。各物理区块包括多个物理页(physicalpages),例如:256个物理页。

图1b详解物理页内容。每一物理页包括一数据区域(dataarea)102、以及一备用区域(sparearea)104。数据区域102可划分为多个储存单元u#1…u#n,经配置后,对应主机端逻辑地址储存数据。主机端逻辑地址有多种形式,例如,以逻辑区块地址(logicalblockaddress,简称lba)、或全域主机页(globalhostpage,简称ghp)编号。一种实施方式中,数据区域102尺寸为16kb,划分为4kb的4个储存单元。各4kb储存单元对应8个逻辑区块地址(如lba#0~lba#7之类)、或一个全域主机页。备用区域104是用来储存元数据(metadata),包括映射资讯map。映射资讯map显示储存单元u#1…u#n所储存的内容所对应的主机端逻辑地址。例如,映射资讯map纪录4段lba(各段包括8个lba编号)或4个ghp编号。以下以gph为例进行说明,但不以此为限。此外,在特定物理页上,闲置区域104可更记录所属物理区块的区块识别码id,其详细内容将于后续说明。

一般运作下,快闪存储器100的映射资讯需动态整理成映射表(如h2f、f2h)随时调整。映射表h2f可以全域主机页ghp为索引,记录各全域主机页ghp的数据是被储存至快闪存储器100何物理地址,即哪一物理区块的哪一数据页或哪一储存单元。映射表f2h则可记录所描述的物理区块中,数据页或储存单元所储存的内容所对应的全域主机页ghp为何。映射表是主机操控快闪存储器100的重要依据,即需重建的管理资讯。

特别是,快闪存储器100有一种特殊的物理特性:其中数据的更新并非对同样储存空间作复写,而是将更新数据储存在闲置空间,且原储存空间的储存内容将转为无效。频繁的写入操作容易致使快闪存储器100充斥无效的内容,垃圾回收(garbagecollection)机制因应发展而出。

图2图解垃圾回收的概念。斜线标示无效数据。来源区块(sourceblocks)的有效数据将被复制至目的区块(destinationblock)。当复制完成后,来源区块可被抹除(erase)并将变更为闲置区块(spareblock),其空间释出。另一种实施方式则是将抹除动作延后至已无有效数据的物理区块再次被配置使用时才进行。如此垃圾回收机制使得前述映射表维护难度提高。本发明即提出相应的解决方案。

图3以方块图图解根据本发明一种实施方式实现的一数据储存装置300,其中包括快闪存储器100以及一控制单元302。控制单元302耦接于一主机304与该快闪存储器100之间,包括根据主机304所下达的指令操作该快闪存储器100。数据储存装置300还可选择性地设置一个动态随机存取存储器(dram)306,作为数据缓冲器。

控制单元302包括一微控制器320、一随机存取存储空间322以及一只读存储器324。随机存取存储空间322较佳可由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。随机存取存储空间322较佳与微控制器320置于同一个晶粒(die),而动态随机存取存储器306则可不与微控制器320置于同一个晶粒。只读存储器324存有只读程序码(如,romcode)。微控制器320执行该只读存储器324所载的只读程序码或/以及该快闪存储器100该在系统编程(in-systemprogramming,简称isp)区块池310所载的在系统编程(isp)程序,以进行运作。微控制器320可以该随机存取存储空间322(或该动态随机存取存储器306)动态整理主机304端逻辑地址(lba或ghp)以及快闪存储器100之间的映射资讯,包括映射表h2f与主动区块active_blk以及目的区块gc_d各自的映射表f2h,再载入该快闪存储器100做非挥发性储存。映射表h2f可存于系统资讯区块池312。映射表f2h可储存于对应区块的关闭资讯(endofblock,eob)中,较佳系储存于对应区块的最末物理页。

图3还显示快闪存储器100的物理区块被逻辑地配置成包括:在系统编程(isp)区块池310、系统资讯区块池312、闲置区块池314、数据区块池316、主动区块active_blk以及因应垃圾回收而产生的目的区块gc_d。在系统编程(isp)区块池310的区块储存在系统编程(isp)的程序。系统资讯区块池312的区块储存系统资讯,除用作前述映射表h2f的非挥发式存储外,更储存一时序列表linklist。主动区块active_blk系由闲置区块池314供应,负责接收来自于主机304的数据,待完成数据储存后即推入数据区块池316(即重新定义为数据区块)。垃圾回收程序的目的区块gc_d也可以由闲置区块池314供应。数据区块池316的区块可以被选作来源区块(标号gc_s),在执行垃圾回收程序时,来源区块gc_s的有效内容将复制至该目的区块gc_d,在完成复制有效内容后,来源区块gc_s即推入闲置区块池314(即重新定义为闲置区块)。该目的区块gc_d可于写满时推入该数据区块池316(重新定义为数据区块)。数据区块被推入该数据区块池316的先后顺序则是以上述时序列表linklist记载。无论主动区块active_blk或目的区块gc_d,在推入数据区块池316之前,皆会储存关闭资讯(endofblock,eob),之后,记载至时序列表linklist,成为时序列表linklist的最新(最末或最晚)一笔记录。较早做eob储存的数据区块会较早记载至该时序列表linklist,较晚的做eob储存的数据区块会较晚记载至该时序列表linklist。当两数据区块储存的内容对应到相同ghp时,较早做eob储存的数据区块的内容会被视为无效,即无效数据。

如果发生不正常断电并造成映射表h2f遗失,数据储存装置300会重建映射表h2f。映射表h2f的重建包括根据各数据区块登录至时序列表linklist的顺序扫描各数据区块取得映射资讯。所取得的映射资讯可为各物理页的备用区域104储存的映射资讯map或各数据区块的关闭资讯eob所储存的映射表f2h。前述扫描意在得知不同逻辑地址(lba或ghp)对应的物理空间。如果多个区块所储存内容皆对应至相同逻辑地址时,则数据有效性的判断原则为较末扫描的内容为有效。当然,相较前述扫描顺序,映射表h2f的重建可采反向的扫描顺序;数据有效性的判断是以较早扫描到的内容为有效。

然而,在图4所示特殊状况下,前述扫描方式可能无法反应实际数据更新状况。为方便理解,图4将较晚登录时序列表linklist的数据区块绘制于较右侧。曾经登录在时序列表linklist的区块blk#x经垃圾回收后徒留无效数据。垃圾回收的目的区块gc_d(区块blk#v)做关闭资讯eob储存、且登录至时序列表linklist后,区块blk#x自时序列表linklist移除。所述垃圾回收将数据a1自区块blk#x搬移到区块blk#v。至于区块blk#y,其原本是做主动区块active_blk使用,早于区块blk#v储存关闭资讯eob,故早于区块blk#v登录至时序列表linklist。区块blk#y上的数据a2是数据a1的更新版本,是在区块blk#y做主动区块active_blk使用时写入。关于图4所示状况,若非预期断电发生,复电的映射表h2f重建依照时序列表linklist扫描数据区块后,会误将区块blk#v上的数据a1视为最新版本,而将区块blk#y上的数据a2视为较旧版本─数据管理发生错误。

为了清楚区别出区块blk#y上的数据a2较区块blk#v上的数据a1新,本发明提出相应解决方案。回到图3,根据所示实施方式,目的区块gc_d进行关闭资讯eob储存时,更逐4kb储存单元经扫描,建立一有效性列表bitmap,标注目的区块gc_d各4kb储存单元储存的是有效还是无效内容。以图示例子而言,有效性列表bitmap会显示该目的区块gc_d上的数据a1是无效数据(最新版本为数据a2)。如此一来,即使主动区块active_blk早于该目的区块gc_d推入该数据区块池316,在时序列表linklist排序较前面,藉由有效性列表bitmap,目的区块gc_d较旧的数据a1不会被错误解读为有效数据,数据a2会被正确辨识为有效。关于非预期断电事件,本发明微控制器320于复电后进行包括有效性列表bitmap检索的映射表h2f重建。

图3实施例包括以各区块中一物理页的备用区域(104)的区块识别码id来区别一数据区块推入数据区块池316之前是主动区块(active_blk)还是目的区块(gc_d)。有效性列表bitmap检索可以是针对目的区块(gc_d)设计。区块识别码id显示映射表h2f重建所扫描的数据区块之前为目的区块gc_d时,判定该有效性列表bitmap存在,并将之应用于该数据区块的数据有效性确认。更有其他实施方式不规划栏位填写区块识别码id,而是无论主动区块(active_blk)还是目的区块(gc_d),都于储存其关闭资讯(eob)时建立相应的有效性列表bitmap,供复电重建映射表h2f时使用。

图5对应图4的状况,图解本发明一种实施方式的解决方案。各数据区块的首物理页的备用区域(104)标有区块识别码id。一种实施例中,为0的区块识别码id表示此数据区块之前是主动区块active_blk,为1的区块识别码id表示此数据区块之前是目的区块gc_d。区块blk#y的区块识别码id注明区块blk#y原本是主动区块active_blk。区块blk#v的区块识别码id注明区块blk#v原本是目的区块gc_d。映射表h2f重建时,所述技术根据时序列表linklist进行各数据区块各物理页的闲置区域(104)扫描,从闲置区域(104)取出各物理页中各储存单元所对应的逻辑资讯map(lba或ghp)。如图所示,扫描进行到区块blk#y时,是视一逻辑地址(以下标号ghp_a)映射至区块blk#y的数据a2。扫描进行到区块blk#v时,由于区块识别码id注明区块blk#v前身是目的区块gc_d,扫描动作将更考量有效性列表bitmap内容。由于有效性列表bitmap显示区块blk#v上的数据a1为无效,故不会改动逻辑地址ghp_a的映射。逻辑地址ghp_a维持指到区块blk#y的数据a2。区块blk#y的数据a2正确地被辨识出乃最新版本。

图6为流程图,根据本发明一种实施方式图解如何扫描数据区块以重建映射表h2f;对应图5实施例。步骤s602初始化扫描点。例如,设定扫描点指向时序列表linklist所指的最早数据区块的第一物理页的闲置区域104,其中包括设定一索引i(对应该数据区块上的4kb储存单元的编号)为0。步骤s604检查区块识别码id。若所扫描的数据区块前身是目的区块gc_d,流程进入步骤s606核对有效性列表bitmap[i]。若有效性列表bitmap[i]显示储存单元i的数据有效,流程进行步骤s608,以扫描所得的映射资讯覆盖旧有映射资讯。例如,令相关的逻辑地址改指向该数据区块的储存单元i。若有效性列表bitmap[i]显示储存单元i的的数据无效,流程略过步骤s608。步骤s610则递增索引i。步骤s612检查是否要切换数据区块。若否,流程回到步骤s606,进行下一个储存单元的有效性列表bitmap[i]检索。若是,流程进行步骤s614查询时序列表linklist。若已无其他数据区块在时序列表linklist,则流程结束。若尚有数据区块待扫描,根据时序列表linklist,步骤s616指引扫描点到下一个数据区块的第一个物理页的闲置空间104,索引i对应该数据区块的第一个储存单元设定为0。接着,流程再次进行步骤s604。

倘若步骤s604所辨识栏位id显示扫描的数据区块前身为主动区块active_blk,流程跳过步骤s606进行步骤s608,无须核对有效性列表bitmap[i]即更新映射资讯。整理之,本发明对于前身为目的区块gc_d的数据区块更提供一种复核机制,以免目的区块gc_d中早已无效的内容被误认为有效。第6图流程设计使得映射表h2f得以正确重建。

图7对应图4的状况,图解本发明另一种实施方式的解决方案。此实施方式没有规划区块识别码id,但每做关闭资讯eob储存即建立有效性列表bitmap。区块blk#y的关闭资讯eob中的有效性列表bitmap显示区块blk#y的数据a2有效。区块blk#v的关闭资讯eob中的有效性列表bitmap显示区块blk#v之数据a1无效。映射表h2f重建时,所述技术根据时序列表linklist进行各数据区块各物理页的闲置区域(104)扫描,从闲置区域(104)取出各物理页中各储存单元所对应的逻辑资讯map(lba或ghp)。如图所示,扫描进行到区块blk#y时,更检索其有效性列表bitmap,确定逻辑地址ghp_a映射至区块blk#y的数据a2。扫描进行到区块blk#v时,由于其有效性列表bitmap显示区块blk#v上的数据a1为无效,故不会改动逻辑地址ghp_a的映射。逻辑地址ghp_a维持指到区块blk#y的数据a2。区块blk#y的数据a2正确地被辨识出乃最新版本。

图8为流程图,根据本发明一种实施方式图解如何扫描数据区块以重建映射表h2f;对应图7实施例。步骤s802初始化扫描点。例如,设定扫描点指向时序列表linklist所指的最早数据区块的第一物理页的闲置区域104,其中包括设定一索引i(对应该数据区块上的4kb储存单元的编号)为0。步骤s804核对有效性列表bitmap[i]。若有效性列表bitmap[i]显示储存单元i的数据有效,流程进行步骤s806,以扫描所得的映射资讯覆盖旧有映射资讯。例如,令相关的逻辑地址改指向该数据区块的储存单元i。若有效性列表bitmap[i]显示储存单元i的的数据无效,流程略过步骤s806。步骤s808则递增索引i。步骤s810检查是否要切换数据区块。若否,流程回到步骤s804,进行下一个储存单元的有效性列表bitmap[i]检索。若是,流程进行步骤s812查询时序列表linklist。若已无其他数据区块在时序列表linklist,则流程结束。若尚有数据区块待扫描,根据时序列表linklist,步骤s814指引扫描点到下一个数据区块的第一个物理页的闲置空间104,索引i对应该数据区块的第一个储存单元设定为0。接着,流程再次进行步骤s804。

其他采用上述概念重建数据储存装置映射表h2f的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及数据储存装置操作方法。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1