CN101901189A - 更新用户数据的方法以及恢复用户数据的方法 - Google Patents
更新用户数据的方法以及恢复用户数据的方法 Download PDFInfo
- Publication number
- CN101901189A CN101901189A CN2009101717082A CN200910171708A CN101901189A CN 101901189 A CN101901189 A CN 101901189A CN 2009101717082 A CN2009101717082 A CN 2009101717082A CN 200910171708 A CN200910171708 A CN 200910171708A CN 101901189 A CN101901189 A CN 101901189A
- Authority
- CN
- China
- Prior art keywords
- user data
- indication information
- pointer gauge
- memory array
- logical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
一种更新用户数据的方法以及恢复用户数据的方法,其中,该用户数据与非易失性存储器阵列的多个逻辑地址以及多个物理地址关联,指针表存储在该非易失性存储器阵列中,其中,该指针表记录该多个逻辑地址与该多个物理地址的映射关系,该更新用户数据的方法包含:当逻辑地址对应的原始用户数据更新至已更新用户数据时,写入该已更新用户数据至该非易失性存储器阵列的存储器位置,其中,该存储器位置由物理地址所标示;以及建立指示信息,该指示信息指示出该逻辑地址与该物理地址之间映射关系。本发明提供的更新用户数据的方法以及恢复用户数据的方法,可以减少闪存中的指针表的更新时间,节省存储器中用于存储指针表的空间,进而提高整个***的效能。
Description
技术领域
本发明有关非易失性(non-volatile)存储器阵列,更具体地,有关于一种更新用户数据的方法以及恢复用户数据的方法。
背景技术
闪存(flash memory)为具有低功耗以及小体积的优势的非易失性存储器阵列的一种。因此,闪存广泛地用在各种应用中,尤其是便携式(portable)电子装置中。
闪存不可覆写。一旦闪存的一部分写入数据,必须首先删除(即,擦除)现存数据,然后,该部分才可以重新写入新数据。闪存可由多个晶体管单元所组成。这些晶体管单元可以分为几个可擦除的区块(block)。一个区块中的多个单元可以同时擦除。也就是说,区块为闪存一次可擦除数据的计量单位。每个区块进一步可以分为多个页面(page)。页面为可程序化数据的计量单位。典型地,每个页面都可以用作存储用户数据的一个扇区(sector)。尽管如此,一个页面存储用户数据的一个扇区的一部分或者多个扇区都是可能的。扇区是传送数据的计量单位。
图1为闪存的页面100的数据结构的示意图。如图所示,页面100具有数据区域110以及备存区域(Spare area)120。数据区域110典型地可以存储用户数据。举例说明,备存区域120可以存储一些控制数据(例如逻辑地址,其中图中逻辑地址可以称之为LBA 122)以及时间戳124,其中,当数据写入数据区域110时,时间戳124可用作记录时间。备存区域120也可容纳其它信息,例如错误校正码(Error Correction Code,ECC)。
如上所述,页面为可程序化数据的计量单位,区块为一次可擦除数据的计量单位。当逻辑页面的数据(原始存储在一个物理页面)进行更新时,常用的方法就是查找另一个物理页面,然后将新数据(即已更新数据)写入新物理页面。而逻辑页面和物理页面之间的映射关系则记录于指针表中。图2为指针表(Pointer table)200的示意图,其中,指针表200记录计算机***中的逻辑地址和闪存所对应的物理地址之间的映射关系。逻辑地址为计算机操作***(例如,WINDOWS)用来寻址用户数据区的方式,物理地址代表闪存中的特定位置。举例说明,第一指针201指示出逻辑地址LBA1对应物理地址PA1,而第二指针202指示出逻辑地址LBA2对应物理地址PA2。也就是说,逻辑地址LBA1的数据存储在闪存的由物理地址PA1所标示的位置,逻辑地址LBA2的数据存储在闪存的由物理地址PA2所标示的位置。例如,当对应逻辑地址LBA1的物理地址PA1的数据更新时,新数据写入新物理地址PA3。然后,指示逻辑地址LBA1与其所对应的物理地址的第一指针201指针表则需要更新。可以理解的是,既然所有逻辑地址的映射关系都需要记录,所以指针表200具有较大的容量。
当使用闪存的储存***启动时,***自闪存中读取指针表200,并将指针表200复制一份至***中的易失性存储器(例如,动态随机存取存储器DRAM或者静态随机存取存储器SRAM)。通过扫描位于易失性存储器中的指针表,就可以知道闪存的哪一个位置存储特定逻辑地址对应的用户数据。当用户数据的片段(segment)更新时,指针表200也需要更新。如果闪存为大容量存储器阵列(例如,1T比特)时,指针表将很大。所以更新指针表200将需要很长时间。相应地,如果闪存中的指针表在任何数据区域段更新时均更新的话,那么整个***的效能将会降低。
为了提升***更新用户数据的效率,在更新用户数据时,可以仅更新位于易失性存储器中的指针表,并在***关闭前,依据储存于易失性存储器中的指针表,更新位于闪存中的旧版指针表200。如此,可以避免每次更新用户数据,都需要更新指针表200所花费的时间。
当***遭遇突然的断电时,由于位于易失性存储器内的指针表内容,尚未更新至指针表200,就已损毁。则储存***重新启动时,需要扫描闪存中所有页面的备存区域120,利用记录于备存区域的逻辑地址,还原断电前储存于易失性存储器的指针表。若有多于一个页面的备存区域记录了相同的逻辑地址,则再比较记录于各页面的时间戳124,以还原最接近断电前的指针表。
读取备存区域的内容导致***自断电状况还原时需要花费额外的时间。对于大容量的储存***,此额外时间甚至可能超过计算机***的开机时间规范。
发明内容
为了减少闪存中的指针表的更新时间,以及指针表有效率地自断电状态恢复用户数据,进而提高整个***的效能,本发明提供一种更新用户数据的方法以及恢复用户数据的方法。
本发明提供一种更新用户数据的方法,该用户数据与非易失性存储器阵列的多个逻辑地址以及多个物理地址关联,指针表存储在该非易失性存储器阵列中,其中,该指针表记录该多个逻辑地址与该多个物理地址之间的多个映射关系,该更新用户数据的方法包含:当逻辑地址对应的原始用户数据更新为已更新用户数据时,该逻辑地址对应的该已更新用户数据写入至该非易失性存储器阵列的存储器位置,其中,该存储器位置由物理地址所标示;以及建立指示信息,该指示信息指示出该逻辑地址与该物理地址之间映射关系。
本发明再提供一种更新用户数据的方法,该用户数据与多个逻辑地址关联,该多个逻辑地址的每一者对应的该用户数据存储在该非易失性存储器阵列的存储器位置中,该方法包含:建立指示信息,该指示信息与该非易失性存储器阵列的多个存储器位置关联,其中,该多个存储器位置定义为多个已指定存储器位置,而该指示信息指示出使用该多个已指定存储器位置的预设顺序;以及当逻辑地址对应的原始用户数据更新为已更新用户数据时,根据该指示信息,将该逻辑地址对应的该已更新用户数据写入该多个已指定存储器位置之一者。
本发明另提供一种恢复用户数据的方法,该用户数据与非易失性存储器阵列的多个逻辑地址以及多个物理地址关联,指针表记录该多个逻辑地址与该多个物理地址的多个映射关系,该指针表存储在该非易失性存储器阵列中,该方法包含:自该非易失性存储器阵列读取该指针表;读取指示信息,该指示信息记录逻辑地址的至少已修改映射关系,该逻辑地址对应的原始用户数据已经更新为用户数据,其中,该至少一已修改映射关系的每一已修改映射关系指示出该逻辑地址与物理地址的映射关系,其中,该物理地址标示存储该用户数据的该非易失性存储器阵列的存储器位置;根据该指示信息以及该指针表,优先考虑该指示信息,确定该多个逻辑地址与该物理地址的有效映射关系;以及根据该逻辑地址的该有效映射关系,自该物理地址标示的该存储器位置读取该已更新用户数据。
本发明又提供一种恢复用户数据的方法,该用户数据与多个逻辑地址关联,该多个逻辑地址的每一者对应的该用户数据存储在非易失性存储器阵列的存储器位置中,该方法包含:自该非易失性存储器阵列读取该指针表;读取指示信息,该指示信息指示出该非易失性存储器阵列的多个存储器位置,其中,该多个存储器位置定义为多个已指定存储器位置,以及该指示信息指示出使用该多个已指定存储器位置的预设顺序;根据该指示信息扫描该多个已指定存储器位置;以及读取逻辑地址对应的该已更新用户数据,其中,该已更新用户数据记录在该多个已指定存储器位置。
本发明提供的更新用户数据的方法以及恢复用户数据的方法,可以减少闪存中的指针表的更新时间,以及节省存储器中用于存储指针表的空间,进而提高整个***的效能。
附图说明
图1为闪存的页面100的数据结构的示意图。
图2为指针表200的示意图,其中,指针表200记录闪存的每个指针的逻辑地址和对应的物理地址。
图3为展示本发明第一实施例的概念的示意图,而图4为根据本发明第一实施例的更新方法的流程图。
图5为根据本发明的第一实施例的恢复方法的流程图。
图6以及图7为根据本发明的第二实施例,闪存配置的两个例子。
图8为根据本发明的第二实施例的更新方法的流程图。
图9为根据本发明的第二实施例的恢复方法流程图。
具体实施方式
在说明书及权利要求当中使用了某些词汇来指称特定组件。所属领域中一般技术人员应可理解,制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区域分组件的方式,而是以组件在功能上的差异来作为区域分的准则。在通篇说明书及权利要求当中所提及的“包括”和“包含”为开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。间接的电气连接手段包括通过其它装置进行连接。
闪存为具有低功耗以及小体积的优势的非易失性存储器阵列的一种,本发明仅以闪存为例,然本发明不以此为限。参考图3以及图4描述本发明第一实施例,其中,图3为展示本发明第一实施例的概念的示意图,而图4为根据本发明第一实施例的更新方法的流程图。步骤S410中,对应逻辑地址对应的用户数据存储在***(图未示)的第一闪存的多个位置中。第一闪存的多个位置(也称之为存储器位置)分别由物理地址(PA)而标示。每个逻辑地址(LBA)对应一个物理地址(PA)。在步骤S420中,建立第一闪存的指针表300,以记录逻辑地址与物理地址之间映射关系。一般说来,指针表存储在第一闪存,然后也可以写入易失性存储器(例如DRAM)(图未示)。为了描述方便,存储在第一闪存中的指针表可以称作第一指针表300,而写入DRAM的指针表可以称为第二指针表310。第二指针表310的副本可以回写入第一闪存,用于在***电源关闭时,更新第一指针表300。在第一指针表300与第二指针表310中,每个指针记录第一闪存的一个逻辑地址和一个物理地址之间的关系。如图所示,第一指针表300或者第二指针表310的第一指针都指示逻辑地址LBA1映射物理地址PA1。这就意味着,用户数据存储在由物理地址PA1所标示的闪存位置中,其中,该用户数据与逻辑地址LBA1关联。举例来说,物理地址可以包含区块号码以及页面号码。
当***电源开启时,第一闪存的第一指针表300装载到DRAM中,以产生第二指针表310。在***电源关闭之前,DRAM中的第二指针表310回写入第一闪存,以更新第一指针表300。
在此实施例中,当逻辑地址对应的原始用户数据更新为一新用户数据时,步骤S430中,***找到第一闪存中可用存储器位置,例如找到具有新物理地址的未使用或者已擦除存储器位置。在步骤S440中,***将新用户数据(已更新用户数据)存储到该可用存储器位置中。然后,DRAM中的第二指针表310更新,而第一闪存中的第一指针表300没有更新。此外,在步骤S450,建立修改表以记录逻辑地址与新物理地址之间的已修改映射关系,以及根据该修改表更新指针表,因为可以将修改表(例如,修改表311或者修改表312)称为指示(indication)信息,所以修改该修改表即为建立该指示信息。更优地,修改表就可以存储在一个小的存储器阵列而不是第一闪存阵列的一个特定区域,或者整个区域中。例如,如图3所示的修改表311以及修改表312就可以存储在第二闪存(图未示),也就是存储在额外非易失性存储器中。而且,修改表存储在第一闪存的特定区域也是可能的。用于存储修改表的区域可以称为本发明实施例的修改区域,所以修改表存储在该闪存的修改区域中,又可称之为该指示信息存储在该闪存的修改区域中。
修改表的建立意味着记录新指针,而新指针指示出逻辑地址和新对应物理地址之间的新映射关系。在此实施例中,首先,逻辑地址的新用户数据写入新物理地址标示的新存储器位置,然后,新指针写入修改表(即建立指示信息)。尽管如此,首先将新指针写入修改表是可能的(其中,新指针指示出逻辑地址和新物理地址之间的映射关系),然后将新用户数据写入由新物理地址所标示的新位置。进一步说,将新指针写入修改表与写入新用户数据也可并行进行。因此,在步骤S440以及步骤S450之间就不必存在特定的顺序。相似地,在步骤S410以及步骤S420之间就不必存在特定的顺序
如上所述,修改表记录每个逻辑地址与对应新物理地址之间的映射关系的修订。更优地,无论何时更新程序发生,那么就会建立一个新修改表。在更新程序中,更新一个或者多个逻辑地址对应的用户数据。假设逻辑地址LBA1开始映射到物理地址PA1。在第一更新程序中,逻辑地址LBA1就会变为映射到新物理地址PAx,然后在第二更新程序中,变为映射到新物理地址PAy。如图3所示,在第一更新程序中,建立第一修改表311。在第一修改表311中,逻辑地址LBA1映射到物理地址PAx。在第二更新程序中,建立第二修改表312,其中,逻辑地址LBA1映射到物理地址PAy。如果物理地址PA1标示闪存的特定物理区块的特定物理页面,那么物理地址PAx以及物理地址PAy的每一者均可为物理地址为PA1的同一区块的一个未使用页面或者已擦除页面,或者物理地址PAx以及物理地址PAy为与物理地址PA1的另一个区块中的页面。
在更新程序中,已更新逻辑地址的所有已更新关系都记录在同样的修改表中。如果逻辑地址,例如逻辑地址LBA2,没有在该更新程序中更新,即,逻辑地址LBA2的映射关系没有修订,那么逻辑地址LBA2在该更新程序的修改表中就没有记录。
请注意,修改表都是从逻辑上定义的。实作中,较优地,每次更新的分别的新指针按顺序记录。也就是说,每次更新的分别的修改表都按顺序存储。尽管如此,存储更新指针的任何其它安排均为可能,只要每个逻辑地址的更新指针中最后一者为已知。
在此实施例中,具有预设容量的修改表在第二闪存中分配,以存储修改表。第二闪存为小容量闪存。尽管如此,如上所述,修改表分配在第一闪存的特定区域的修改区域中也是可能的。
当修改区域已满,根据该指示信息(即存储在修改区域中的修改表311以及修改表312),修订第一指针表300,以成为新指针表。然后,现存修改表311以及修改表312可被无效。例如,清除(即,擦除)存储在修改区域中的修改表311以及修改表312,换言之,即为清除该修改区域。相应地,修改区域就可以用作存储新修改表(即,存储新指针)。可替换地,基于该指示信息,也可以周期性地修订第一指针表300,换言之,即第一指针表300可以周期性地修订以成为新指针表。举例说明,无论何时预设时间周期过去之后,修改表就会过期,根据现存修改表(例如,修改表311以及修改表312),将第一指针表300修改为新指针表,然后,修改表就无效了。如上所述,只要存在更新,就修订第二指针表310。因此,第二指针表310通常记录逻辑地址与物理地址之间的最新映射关系。
在此实施例中,因为修改表的存在,第一指针表300不需要经常修订。即,通过使用这样的方法,第一指针表300的更新次数可以显著降低。作为结果,更新第一指针表300的处理时间,与传统的方法相比,也会显著降低。另外,因为修改表的存在,当电源出错时,即使第一闪存的第一指针表300没有及时更新,那么数据也可以轻易恢复。如上所述,只要存在更新,就修订第二指针表310,而第一指针表300就不会修订如此频繁。尽管如此,更新时产生的逻辑地址与新物理地址之间的新映射关系,就记录在修改表中。当***重新启动电源时,***可以检查,是否有修改表。如果有修改表,那么第一闪存的旧第一指针表300就通过修改表而修订,然后写入DRAM,以产生DRAM中的第二指针表310。
图5为根据本发明的第一实施例的恢复方法的流程图。在此实施例中,首先自闪存读取第一指针表300,以及读取指示信息(即修改表),该指示信息记录逻辑地址的至少一已修改映射关系,该逻辑地址对应的原始用户数据已经更新为新用户数据,其中,每一已修改映射关系指示出该逻辑地址与新物理地址的映射关系,而该新物理地址标示存储该新用户数据的该非易失性存储器阵列的一个存储器位置。然后,根据该指示信息以及第一指针表310,并且优先考虑该指示信息,确定该多个逻辑地址与该物理地址的一个有效映射关系;以及根据该逻辑地址的该有效映射关系,自该新物理地址标示的该存储器位置读取该新用户数据。请注意,读取第一指针表310以及读取该指示信息的步骤不以上述描述为限,实作中,二者可以并行进行,或者先读取该指示信息,而后读取第一指针表310。如上所述,修改表311与修改表312存储在修改区域中。即,指示逻辑地址与对应新物理地址之间映射关系的新指针存储在修改区域中。当电源出错时,存储在DRAM中的第二指针表310将会丢失。如上所述,只要存在更新,就修订第二指针表310,而第一指针表300就不会修订如此频繁。尽管如此,逻辑地址与新物理地址之间的映射关系会记录在修改表311以及修改表312中。相应地,逻辑地址与物理地址之间的最新映射关系就可得知。
在步骤S510开始恢复过程。当***重新启动电源以恢复用户数据时,***可以检查是否有修改表。即,***确定是否修改区域为空(步骤S520)。如果修改区域为空,那么意味着在电源出错之前没有更新,然后转向步骤S530以处理正常的电源启动流程,也就是终止该更新数据的处理流程。也就是说,***独取第一指针表300,以存储在第二指针表310中。如果修改区域不为空,那么意味着在电源出错前至少出现一次更新。那么转向步骤S540。
在步骤S540,***确定每个逻辑地址在修改表中的最新指针。在图3所示的例子中,逻辑地址LBA1的最新指针指示最新对应物理地址为PAy。在步骤S550中,根据修改表修订指针表,也就是说第一指针表300写入DRAM以产生新指针表,即第二指针表310。根据存储在第二闪存的修改表311以及修改表312,修订指针表310,也就是确定该多个逻辑地址与该对应物理地址的有效映射关系(其中,逻辑地址的最后一笔记录的映射关系为该有效映射),而且优先考虑该指示信息(即修改表311以及修改表312),也就是说根据该修改表以及第一指针表310,并且优先考虑该修改表,确定该多个逻辑地址与该对应物理地址的有效映射关系。实作中,当***激活时,首先可以读取第一指针表300,然后写入DRAM以产生第二指针表310,然后***检查修改区域。根据每个逻辑地址在修改表311以及修改表312中的最新指针修订第二指针表310。如果新指针按顺序记录,那么,对于特定逻辑地址,最后存储在修改区域中的的指针就为最新指针。最后,可以根据已修订指针表恢复用户资料,然后按需求而读取(步骤S560)。
图6以及图7为根据本发明的第二实施例,闪存配置的两个例子。在此实施例中,第一闪存的已选一个区域或者多个区域指定为存储新用户数据(即已更新用户数据)。在一个例子中,连续的存储器物理区块可以作为整体而指定为更新区域,以存储已更新用户数据。如图6所示,包含第一区块610、......、第十二区块611到第二十区块619的第一闪存600,作为已指定存储器位置,以存储已更新用户数据,在此实施例中,存储已更新用户数据的已指定存储器位置亦可称之为更新区域。如果更新了任何逻辑地址的用户数据,逻辑地址对应的新用户数据通常存储在更新区域(例如,第一区块610到第二十区块619)的一个位置。经过多次更新的已更新用户数据以特定顺序存储在更新区域的多个位置中。在另一个例子中,第一闪存的不连续区域分配作为更新区域,以存储已更新用户数据。如图7所示,第一闪存700的第一区块711、第三区块713、第五区块715......指定为存储已更新数据的已指定存储器位置。除了上述两个例子,用于已指定位置的其它指定方式都是可以的。举例说明,区块的一部分页面也可以分配作为已指定存储器位置。总结来说,可以指定闪存的一些存储器位置。这些已指定存储器位置可用作在更新程序中存储已更新用户数据。
在此实施例中,建立用于指导***如何将已更新用户数据存储到更新区域的指示信息。该指示信息可以存储在第二闪存(图未示)。第二闪存可以专用作存储该指示信息。因此,第二闪存可以使用小容量闪存而实现。可替换地,该指示信息可以存储在第一闪存的修改区域中。而在前面一种情况下,全部第二闪存可作为修改区域。
图8为根据本发明的第二实施例的更新方法的流程图。如上所述,在闪存中指定至少一个更新区域。即,一些存储器位置定义为已指定存储器位置(步骤S810)。在步骤S820中,可以建立以及存储用于已指定存储器位置的指示信息。首先,建立以及存储该指示信息,然后根据该指示信息指定存储器位置都是可能的。可替换地,步骤S810与步骤S820可以并行处理。即,在步骤S810与步骤S820之间没有特定的顺序。当逻辑地址对应的用户数据更新时,根据该指示信息,新用户数据与逻辑地址均写入该已指定存储器位置(步骤S830)。可以注意到,逻辑地址也与新用户数据均需记录。相应地,可知用户数据属于该逻辑地址。
除了指示哪个闪存的存储器位置被指定用于存储已更新用户数据的知识之外,该指示信息也记录用于已指定存储器位置的预设顺序。举例说明,如果有二十个已指定存储器位置,那么顺序就可以为第一已更新用户数据存储在第一已更新存储器位置,第二已更新用户数据存储在第二已更新存储器位置。其余可以相应推知。顺序可以与逻辑地址无关。这样的顺序就可以根据闪存的条件,或者基于记录在***的固件(firmware)中的状态位而设置或者调整。该状态位指示闪存储器的运作,例如程序化运作的处理或者完成,或者通过触发(toggling)或者轮询(poling)位的擦除运作的处理或者完成,只要确保该预定的顺序可于断电后回复即可,然本发明不以此为限。
如果电源出错,那么参考该指示信息很容易恢复用户数据。逻辑地址的最新用户数据写入的位置就可以从该指示信息而找到。
在此实施例中,该指示信息设置一预设时间周期。当该指示过期时,就可以根据该指示信息而修订存储在该闪存的指针表,也就是当指示过期时,修改指针表(步骤S840)。***周期性地检查自该指示信息而得知的已指定存储器位置,如果***发现已指定存储器位置已经作用存储已更新用户数据,那么就修订该指针表。然后,提供一个新指示信息。
图9为根据本发明的第二实施例的恢复方法流程图。如果电源出错,那么在***重新启动电源之后,为了从第一闪存恢复用户数据,***自第一闪存读取指针表(步骤S910)。该指针表可以写入易失性存储器,例如DRAM中。在步骤S920***自修改区域读取该指示信息。首先读取该指示信息,然后将指针表写入到DRAM中也是可以的。可替换地,步骤S910与步骤S920可以并行进行。也就是说,步骤S910与步骤S920没有特定的顺序。在步骤S930,根据该指示信息,以扫描该已指定存储器位置,以读取该逻辑地址以及该已更新用户数据,也就是说***根据记录在该指示中的预设顺序而扫描更新区域(即,扫描已指定存储器位置),以读取逻辑地址以及存储在已指定存储器位置的已更新用户数据。在步骤S940中,***可以使用已经读取的逻辑地址以及已更新用户数据进行恢复运作,也就是说根据逻辑地址以及已更新用户数据,***读取闪存中的用户数据。
任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求所界定者为准。
Claims (23)
1.一种更新用户数据的方法,该用户数据与非易失性存储器阵列的多个逻辑地址以及多个物理地址关联,指针表存储在该非易失性存储器阵列中,其中,该指针表记录该多个逻辑地址与该多个物理地址之间的多个映射关系,该更新用户数据的方法包含:
当逻辑地址对应的原始用户数据更新为已更新用户数据时,该逻辑地址对应的该已更新用户数据写入至该非易失性存储器阵列的存储器位置,其中,该存储器位置由物理地址所标示;以及
建立指示信息,该指示信息用于指示出该逻辑地址与该物理地址之间映射关系。
2.如权利要求1所述的更新用户数据的方法,其特征在于,首先该逻辑地址对应的该已更新用户数据写入该物理地址所标示的该存储器位置,然后建立该指示信息。
3.如权利要求1所述的更新用户数据的方法,其特征在于,首先建立该指示信息,然后该逻辑地址对应的新用户数据写入到该逻辑地址所标示的该存储器位置。
4.如权利要求1所述的更新用户数据的方法,其特征在于,写入该逻辑地址对应的该已更新用户数据至该非易失性存储器阵列的该存储器位置与建立该指示信息为并行进行。
5.如权利要求1所述的更新用户数据的方法,其特征在于进一步包含基于该指示信息周期性修订该指针表。
6.如权利要求1所述的更新用户数据的方法,其特征在于,该指示信息存储在该非易失性存储器阵列的修改区域中或者存储在额外非易失性存储器阵列的修改区域中。
7.如权利要求6所述的更新用户数据的方法,其特征在于进一步包含:当存储该指示信息的该修改区域已满时,基于该指示信息修订该指针表。
8.如权利要求7所述的更新用户数据的方法,其特征在于进一步包含:修订该指针表后,清除该修改区域。
9.一种更新用户数据的方法,该用户数据与多个逻辑地址关联,该多个逻辑地址的每一者对应的该用户数据存储在该非易失性存储器阵列的存储器位置中,该方法包含:
建立指示信息,该指示信息与该非易失性存储器阵列的多个存储器位置关联,其中,该多个存储器位置定义为多个已指定存储器位置,而该指示信息指示出使用该多个已指定存储器位置的预设顺序;以及
当逻辑地址对应的原始用户数据更新为已更新用户数据时,根据该指示信息,将该逻辑地址对应的该已更新用户数据写入该多个已指定存储器位置之一者。
10.如权利要求9所述的更新用户数据的方法,其特征在于进一步包含:根据该非易失性存储器阵列的条件,调整该预设顺序。
11.如权利要求9所述的更新用户数据的方法,其特征在于进一步包含:根据指示该非易失性存储器阵列的运作的处理或完成的状态位,调整该预设顺序。
12.如权利要求9所述的更新用户数据的方法,其特征在于,建立该指示信息,以指示该已指定存储器位置在该非易失性存储器阵列中连续分布。
13.如权利要求9所述的更新用户数据的方法,建立该指示信息,以指示该已指定存储器位置在该非易失性存储器阵列中不连续分布。
14.一种恢复用户数据的方法,该用户数据与非易失性存储器阵列的多个逻辑地址以及多个物理地址关联,指针表记录该多个逻辑地址与该多个物理地址的多个映射关系,该指针表存储在该非易失性存储器阵列中,该方法包含:
自该非易失性存储器阵列读取该指针表;
读取指示信息,该指示信息记录逻辑地址的至少已修改映射关系,该逻辑地址对应的原始用户数据已经更新为用户数据,其中,该至少一已修改映射关系的每一已修改映射关系指示出该逻辑地址与物理地址的映射关系,其中,该物理地址标示存储该用户数据的该非易失性存储器阵列的存储器位置;
根据该指示信息以及该指针表,优先考虑该指示信息,确定该多个逻辑地址与该物理地址的有效映射关系;以及
根据该逻辑地址的该有效映射关系,自该物理地址标示的该存储器位置读取该已更新用户数据。
15.如权利要求14所述的恢复用户数据的方法,其特征在于进一步包含:在读取该指示信息之前检查修改区域是否为空,如果该修改区域为空,则终止该方法的执行,其中,该指示信息存储于该修改区域。
16.如权利要求14所述的恢复用户数据的方法,其特征在于,该逻辑地址的最后一笔记录的映射关系为该有效映射。
17.如权利要求14所述的恢复用户数据的方法,其特征在于,先读取该指针表,然后读取该指示信息。
18.如权利要求14所述的恢复用户数据的方法,其特征在于,先读取该指示信息,然后读取该指针表。
19.如权利要求14所述的恢复用户数据的方法,其特征在于,读取该指针表以及读取该指示信息为并行进行。
20.一种恢复用户数据的方法,该用户数据与多个逻辑地址关联,该多个逻辑地址的每一者对应的该用户数据存储在非易失性存储器阵列的存储器位置中,该方法包含:
自该非易失性存储器阵列读取该指针表;
读取指示信息,该指示信息指示出该非易失性存储器阵列的多个存储器位置,其中,该多个存储器位置定义为多个已指定存储器位置,以及该指示信息指示出使用该多个已指定存储器位置的预设顺序;
根据该指示信息扫描该多个已指定存储器位置;以及
读取逻辑地址对应的该已更新用户数据,其中,该已更新用户数据记录在该多个已指定存储器位置。
21.如权利要求20所述的恢复用户数据的方法,其特征在于,先读取该指针表,然后读取该指示信息。
22.如权利要求20所述的恢复用户数据的方法,其特征在于,先读取该指示信息,然后读取该指针表。
23.如权利要求20所述的恢复用户数据的方法,其特征在于,读取该指示信息以及读取该指针表为并行进行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/471,775 US8296503B2 (en) | 2009-05-26 | 2009-05-26 | Data updating and recovering methods for a non-volatile memory array |
US12/471,775 | 2009-05-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901189A true CN101901189A (zh) | 2010-12-01 |
CN101901189B CN101901189B (zh) | 2013-05-29 |
Family
ID=43221559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101717082A Active CN101901189B (zh) | 2009-05-26 | 2009-08-26 | 更新用户数据的方法以及恢复用户数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8296503B2 (zh) |
CN (1) | CN101901189B (zh) |
TW (1) | TWI406127B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929790A (zh) * | 2012-10-15 | 2013-02-13 | 株洲南车时代电气股份有限公司 | 一种数据存储***和方法 |
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN104932831A (zh) * | 2014-03-20 | 2015-09-23 | 华邦电子股份有限公司 | 串行与非式闪存存储器及其内建可变式坏区的管理方法 |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN111026676A (zh) * | 2019-12-27 | 2020-04-17 | 中煤科工集团重庆研究院有限公司 | 利用存储单元址携带时间信息的存储方法及存储*** |
CN111488292A (zh) * | 2019-01-29 | 2020-08-04 | 华邦电子股份有限公司 | 半导体存储装置 |
CN111897748A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种映射关系存储方法、读取方法、装置、设备及介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110289282A1 (en) * | 2010-05-18 | 2011-11-24 | Microsoft Corporation | Sessions for Direct Attached Storage Devices |
CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
CN104978280B (zh) * | 2015-06-04 | 2020-10-30 | 上海川源信息科技有限公司 | 数据储存***及其特定指令执行方法 |
JP6760813B2 (ja) * | 2016-10-14 | 2020-09-23 | 日立オートモティブシステムズ株式会社 | ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム |
US11580030B2 (en) * | 2019-08-18 | 2023-02-14 | Smart IOPS, Inc. | Devices, systems, and methods of logical-to-physical address mapping |
US11907114B2 (en) | 2019-08-18 | 2024-02-20 | Smart IOPS, Inc. | Devices, systems, and methods for dynamically remapping memory addresses |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043940A (en) * | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4772214B2 (ja) * | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
KR100449708B1 (ko) | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
CN101114255A (zh) * | 2002-08-29 | 2008-01-30 | 松下电器产业株式会社 | 用于将数据写入快闪存储设备的半导体存储器的装置和方法 |
JP4199519B2 (ja) * | 2002-11-05 | 2008-12-17 | パナソニック株式会社 | メモリ管理装置及びメモリ管理方法 |
US7321795B2 (en) * | 2003-03-24 | 2008-01-22 | Les Bogdanowicz | Compositions for electric stimulation of the eye |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US7818610B2 (en) * | 2007-09-27 | 2010-10-19 | Microsoft Corporation | Rapid crash recovery for flash storage |
US8397014B2 (en) * | 2008-02-04 | 2013-03-12 | Apple Inc. | Memory mapping restore and garbage collection operations |
KR101555022B1 (ko) * | 2008-12-02 | 2015-09-23 | 삼성전자주식회사 | 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법 |
US9063886B2 (en) * | 2009-09-18 | 2015-06-23 | Apple Inc. | Metadata redundancy schemes for non-volatile memories |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8250324B2 (en) * | 2009-11-30 | 2012-08-21 | International Business Machines Corporation | Method to efficiently locate meta-data structures on a flash-based storage device |
-
2009
- 2009-05-26 US US12/471,775 patent/US8296503B2/en active Active
- 2009-08-26 CN CN2009101717082A patent/CN101901189B/zh active Active
- 2009-08-26 TW TW098128685A patent/TWI406127B/zh active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN102929790A (zh) * | 2012-10-15 | 2013-02-13 | 株洲南车时代电气股份有限公司 | 一种数据存储***和方法 |
CN104932831A (zh) * | 2014-03-20 | 2015-09-23 | 华邦电子股份有限公司 | 串行与非式闪存存储器及其内建可变式坏区的管理方法 |
CN104932831B (zh) * | 2014-03-20 | 2018-03-30 | 华邦电子股份有限公司 | 串行与非式闪存存储器及其内建可变式坏区的管理方法 |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107025185B (zh) * | 2016-02-01 | 2020-09-11 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN111488292A (zh) * | 2019-01-29 | 2020-08-04 | 华邦电子股份有限公司 | 半导体存储装置 |
CN111488292B (zh) * | 2019-01-29 | 2023-03-10 | 华邦电子股份有限公司 | 半导体存储装置 |
CN111897748A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种映射关系存储方法、读取方法、装置、设备及介质 |
CN111026676A (zh) * | 2019-12-27 | 2020-04-17 | 中煤科工集团重庆研究院有限公司 | 利用存储单元址携带时间信息的存储方法及存储*** |
CN111026676B (zh) * | 2019-12-27 | 2023-08-01 | 中煤科工集团重庆研究院有限公司 | 利用存储单元地址携带时间信息的存储方法及存储*** |
Also Published As
Publication number | Publication date |
---|---|
TWI406127B (zh) | 2013-08-21 |
TW201042450A (en) | 2010-12-01 |
US20100306447A1 (en) | 2010-12-02 |
CN101901189B (zh) | 2013-05-29 |
US8296503B2 (en) | 2012-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101901189B (zh) | 更新用户数据的方法以及恢复用户数据的方法 | |
CN101169751B (zh) | 具有闪存设备的***及其数据恢复方法 | |
CN102693184B (zh) | 处理具有非易失性存储器的***的动态和静态数据 | |
CN102999431B (zh) | 用于非易失性存储器***的编织序列计数器 | |
CN101300554B (zh) | 非易失性存储器故障的恢复 | |
US8762661B2 (en) | System and method of managing metadata | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
US8819367B1 (en) | Accelerated translation power recovery | |
EP2570927B1 (en) | Handling unclean shutdowns for a system having non-volatile memory | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN103853582A (zh) | 闪存更新方法以及闪存控制器 | |
KR20150083264A (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
US7925821B2 (en) | Nonvolatile semiconductor storage device and method of managing the same | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
JP2009211215A (ja) | メモリシステム | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
US20150347292A1 (en) | Writing an address conversion table for nonvolatile memory wear leveling | |
JP2009205689A (ja) | フラッシュディスク装置 | |
TW201007740A (en) | Method for managing data and storage apparatus thereof and controller thereof | |
JP4794530B2 (ja) | 半導体装置および携帯電話 | |
CN108509295B (zh) | 存储器***的操作方法 | |
CN101676885B (zh) | 数据管理方法及其存储装置与其控制器 | |
US7996598B2 (en) | Memory management module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |