CN101025712B - 使用非易失性存储器的存储设备及其映射信息恢复方法 - Google Patents
使用非易失性存储器的存储设备及其映射信息恢复方法 Download PDFInfo
- Publication number
- CN101025712B CN101025712B CN2007100791879A CN200710079187A CN101025712B CN 101025712 B CN101025712 B CN 101025712B CN 2007100791879 A CN2007100791879 A CN 2007100791879A CN 200710079187 A CN200710079187 A CN 200710079187A CN 101025712 B CN101025712 B CN 101025712B
- Authority
- CN
- China
- Prior art keywords
- map information
- physical block
- block address
- memory
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/0202—Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
- H04M1/0206—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
- H04M1/0208—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
- H04M1/0235—Slidable or telescopic telephones, i.e. with a relative translation movement of the body parts; Telephones using a combination of translation and other relative motions of the body parts
- H04M1/0237—Sliding mechanism with one degree of freedom
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种使用非易失性存储器作为高速缓存器的存储设备以及用于该存储设备的映射信息恢复方法。所述存储设备包括:映射信息存储模块,存储非易失性存储器的非易失性存储器映射信息和当存储映射信息时分配的第一物理块地址;扫描模块,通过当前分配的第二物理块地址扫描第一物理块地址;以及映射信息恢复模块,基于扫描模块的扫描结果恢复在第一物理块地址和第二物理块地址之间的映射信息。
Description
本申请要求于2006年2月24日在韩国知识产权局提交的第10-2006-0018286号韩国专利申请的优先权,该申请全部公开于此以资参考。
技术领域
与本发明一致的设备和方法涉及在存储设备中使用非易失性存储器作为高速缓存器并且恢复映射信息,更具体地说,涉及一种使用非易失性存储器作为高速缓存器并且能够安全地恢复映射信息的存储设备,以及用于该存储设备的映射信息恢复方法。
背景技术
通常,非易失性存储器广泛用于诸如家电装置、通信装置和机顶盒的嵌入式系统中作为用于存储和处理数据的存储介质。
作为广泛使用的非易失性存储器之一的闪存是电可擦除或重写数据的非易失性存储装置。闪存比基于磁盘存储器的存储介质耗电量低,并且访问时间与硬盘一样快。另外,因为闪存小,所以它们是适合于手持装置。
近来,非易失性存储器已经用于存储介质的高速缓冲器,诸如硬盘驱动器,从而使用非易失性存储器作为高速缓存器减少了硬盘驱动器的功耗和启动系统花费的时间。如果非易失性存储器用作高速缓存器,当主机期望在硬盘驱动器中存储数据时,数据首先被存储在非易失性存储器中。接着,当在非易失性存储器中没有剩余存储空间时,将存储在非易失性存储器中的数据移动到硬盘驱动器。因为在从非易失性存储器读取数据或向非易失性存储器写入数据的同时,可切断硬盘驱动器的供电,所以可减少功耗。
使用非易失性存储器作为高速缓存器的存储设备需要将逻辑块地址转换为物理块地址的映射信息,从而主机能够通过逻辑块地址访问非易失性存储器的物理块地址。
当操作硬盘驱动器时通常在易失性存储器中存储映射信息,当硬盘驱动器被关闭时在非易失性存储器中存储映射信息。然后,当再次开启硬盘驱动 器时,将存储在非易失性存储器中的映射信息再次加载到易失性存储器中,从而主机可基于映射信息访问数据。
特别地,可能意外地关闭使用非易失性存储器作为高速缓存器的存储设备。在这种情况下,因为存储在易失性存储器中的映射信息不能存储在非易失性存储器中,所以需要恢复映射信息的处理。
现有技术中处理恢复映射信息的方法包括:扫描整个非易失性存储器的方法和周期性地在非易失性存储器中存储映射信息的方法。
根据扫描整个非易失性存储器的方法,如图1所示,扫描整个非易失性存储器以寻找存储在最后分配的物理块地址的下一物理块地址中的检测数据。这里,将数据分类为有效数据和无效数据,并且如图2所示恢复映射信息。
在这个方法中,在最坏的情况下整个非易失性存储器可被扫描两次,也就是说,一次用于寻找检测数据,一次用于恢复映射信息。在这种情况下,因为增加了扫描非易失性存储器需要的时间,所以需要较长的时间启动使用非易失性存储器的系统。
根据周期性地在非易失性存储器中存储映射信息的方法,周期性地将映射信息存储在非易失性存储器中以避免如上所述扫描整个非易失性存储器。
因此,当下次启动使用非易失性存储器作为高速缓存器的存储设备时,主机可基于存储在非易失性存储器中的映射信息访问存储在非易失性存储器中的数据。
然而,在这个方法中,映射信息被频繁且不必要地存储在非易失性存储器中。换句话说,不仅当使用非易失性存储器作为高速缓存器的存储设备被关闭时,而且当操作该存储设备时,映射信息被存储在非易失性存储器中,这样引起的主要问题是存储设备的性能恶化。
第1998-0063018号韩国公开的专利申请公开了一种当启动或重置计算机时通过允许用户故意用数据充满高速缓存器存储器装置可减少初始行获取时间的高速缓存器存储器装置。通常,当启动或重置计算机时,通过行获取操作将数据从高速缓存器存储器装置传送到主存储器装置需要大量时间。此外,因为任意确定用于行获取操作的起始地址,所以在最坏的情况下行获取操作可能不得不执行几次。设计上述现有技术以解决这些问题。然而,没有提出在意外的供电失败的情况下快速恢复映射信息并最小化恢复映射信息所 需的存储空间的方法。
发明内容
本发明提供一种使用非易失性存储器作为高速缓存器的存储设备,所述存储设备能够最小化为了在意外的供电失败的情况下恢复映射信息而存储的映射信息并且快速恢复映射信息,以及用于存储设备的映射信息恢复方法。
根据本发明的一方面,提供一种使用非易失性存储器作为高速缓存器的存储设备。所述存储设备包括:映射信息存储模块,存储非易失性存储器的非易失性存储器映射信息和当存储映射信息时分配的第一物理块地址;扫描模块,通过当前分配的第二物理块地址扫描第一物理块地址;以及映射信息恢复模块,基于扫描模块的扫描结果恢复在第一物理块地址和第二物理块地址之间的映射信息。
根据本发明的另一方面,提供一种用于使用非易失性存储器作为高速缓存器的存储设备的映射信息恢复方法。所述方法包括:存储非易失性存储器的非易失性存储器映射信息和当存储映射信息时分配的第一物理块地址;通过当前分配的第二物理块地址扫描第一物理块地址;以及基于扫描结果恢复在第一物理块地址和第二物理块地址之间的映射信息。
根据本发明的另一方面,提供一种存储用于执行映射信息恢复方法的计算机程序的计算机可读记录介质。
附图说明
通过参照附图对本发明的示例性实施例进行的详细描述,本发明的上述和其它方面将会变得更加清楚,其中:
图1是解释通过扫描整个非易失性存储器恢复映射信息的现有技术方法的示图;
图2示出使用图1的恢复映射信息的方法恢复的映射信息;
图3是根据本发明的示例性实施例的使用非易失性存储器作为高速缓存器的存储设备的框图;
图4是根据本发明的示例性实施例的非易失性存储器的框图;
图5示出根据本发明的示例性实施例的映射信息的结构;
图6是示出根据本发明的示例性实施例的存储映射信息的方法的流程 图;
图7是示出根据本发明的示例性实施例的存储映射信息的间隔的示图;
图8是根据本发明的示例性实施例的恢复映射信息的方法的流程图;以及
图9是示出根据本发明的实施例的恢复映射信息的间隔的示图。
具体实施方式
现将通过参照显示本发明的示例性实施例的附图更加全面地描述本发明。然而,本发明可以以许多不同的形式被实施并且不应被解释为局限于在此阐述的示例性实施例;更恰当地,提供这些实施例从而本公开将会彻底和完整,并完全地将本发明的构思传达给本领域的技术人员。在附图中,相同的标号是指相同的部件,因此将省略对它们的描述。
将参照框图和流程说明描述根据本发明的示例性实施例的使用非易失性存储器作为高速缓存器的存储设备以及用于存储设备的映射信息恢复方法。应该理解,流程图的每一个块和在流程图中的块的组合可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机的处理器、或者其他可编程数据处理设备,从而经由计算机的处理器或者其他可编程数据处理设备执行的指令,创建用于实现在一个流程图块或多个流程图块中描述的功能的装置。
这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式运行的计算机可用或计算机可读存储器中,从而存储在计算机可用或计算机可读存储器中的指令生成包括执行在一个流程图块或多个流程图块中指定的功能的指令装置的产品。
计算机程序指令也可被载入计算机或其他可编程数据处理设备,以使得一系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图块或多个流程图块中描述的功能的步骤。
流程图的每个块可代表模块,段或代码的一部分,其包括一个或更多用于实现特定的逻辑功能的可执行指令。应注意的是,在一些替换的实现中,在这些块中标注的功能可不按顺序执行。例如,连续示出的两个块事实上可基本同时地被执行,或者有时块以相反的顺序执行,这取决于涉及的功能。
图3是根据本发明的示例性实施例的使用非易失性存储器作为高速缓存器的存储设备的框图。
参照图3,存储设备100包括:非易失性存储器110、映射信息存储模块120、扫描模块130、映射信息恢复模块140和高速缓存器管理模块150。
尽管没有在图3中示出,但是存储设备100可包括诸如硬盘驱动器的大容量存储介质,非易失性存储器110可以用作大容量存储介质的高速缓存器。因此,当主机期望将数据写入大容量存储介质时,首先将数据存储在非易失性存储器110中。然后,当在非易失性存储器110中没有剩余的存储空间时,可将存储在非易失性存储器110中的数据移动到大容量存储介质。
如图4所示,非易失性存储器110可包括映射信息存储区111和数据存储区112。映射信息存储区111存储用于将逻辑块地址转换为物理块地址的映射信息,从而主机可通过逻辑块地址访问存储在非易失性存储器110中的数据。数据存储区112存储数据。
当操作存储设备100时在易失性存储器中存储映射信息,当关闭存储设备100时在非易失性存储器110中存储映射信息。然后,当存储设备100再次开启时,将存储在非易失性存储器110中的映射信息再次存储在易失性存储器中,并且可基于映射信息访问存储在非易失性存储器110的数据存储区112中的数据。
映射信息存储模块120以预定间隔在非易失性存储器110的映射信息存储区111中存储映射信息,并且还可存储当存储映射信息时最后分配的物理块地址(以下称为第一物理块地址)。特别地,使用非易失性存储器110的系统可能被意外地关闭。在这种情况下,需要恢复映射信息的处理。稍后将描述的映射信息恢复模块140可使用通过映射信息存储模块120存储在非易失性存储器110的映射信息存储区111中的映射信息和第一物理块地址来恢复映射信息。
图5示出根据本发明的示例性实施例的映射信息的结构。
参照图5,映射信息包括:逻辑块地址字段210、物理块地址字段220和更新字段230。逻辑块地址字段210指示与预定物理块地址相应的逻辑块地址。物理块地址字段220指示与预定逻辑块地址相应的物理块地址。更新字段230指示更新与预定物理块地址相应的逻辑块地址还是与预定逻辑块地址相应的物理块地址。
映射信息存储模块120可初始地存储整个非易失性存储器110的映射信息,但是,其后,仅基于更新字段230在非易失性存储器110的映射信息存储区111中存储更新的映射信息。以下,整个非易失性存储器110的映射信息将被称为第一映射信息,更新的映射信息将被称为第二映射信息。上面参照图5描述的映射信息可被理解为第一映射信息。
映射信息存储模块120每当分配预定数量的物理决地址时可存储映射信息。当映射信息存储区111中没有剩余的存储空间时,映射信息存储模块120可擦除映射信息存储区111,再次存储第一映射信息,并且接着在映射信息存储区111中存储第二映射信息。映射信息存储模块120可重复这个处理。另外,在存储第二映射信息之后,初始化上面参照图5描述的更新字段230。
如果映射信息存储模块120每当分配预定数量的物理块地址时存储映射信息,也就是说,如果映射信息存储模块120存储映射信息太频繁,则数据量变得极大。因此,映射信息存储模块120可在存储设备100的启动时间内存储将通过扫描模块130扫描的每个物理块地址的映射信息,稍后将对扫描模块进行描述。这是因为扫描模块130扫描物理块地址所花费的时间可被理解为恢复映射信息所花费的时间。
当存储设备100的供电被意外地切断时,扫描模块130通过当出现供电失败时分配的物理块地址(以下称为第二物理块地址),扫描通过映射信息存储模块120存储在非易失性存储器110的映射信息存储区111中的第一物理块地址。并且扫描模块130扫描与在第一物理块地址和第二物理块地址之间的物理块地址相应的逻辑块地址。当分配物理块地址时,在下一物理块地址中存储检测数据,从而可基于检测数据检测下一物理块地址。因此,扫描模块130可确定在存储设备100的供电失败时分配的第二物理块地址。
另外,当分配物理块地址时,扫描模块130存储映射到分配的物理块地址的预定区(例如,备用区)的逻辑块地址。因此,扫描模块130可扫描映射到分配的物理块地址的逻辑块地址。
通过扫描模块130扫描的第一物理块地址和第二物理块地址之间的物理块地址的数量可被理解为在第一物理块地址之后分配的物理块地址的数量,即,映射信息存储模块120存储映射信息的间隔。例如,如果映射信息存储模块120每当分配N个物理块地址时存储映射信息,通过扫描模块130扫描的物理块地址的最大数量为N。这里,如果在分配N个物理块地址之前切断 对存储设备100的供电,则通过扫描模块130扫描的物理块地址的数量可小于N。
映射信息恢复模块140可基于扫描模块130的扫描结果在第一物理块地址和第二物理块地址之间恢复映射信息,其中,第二物理块地址是在存储设备100的供电失败时分配的。
特别地,当在供电失败之后再现向存储设备100供电时,映射信息恢复模块140可基于扫描模块130的扫描结果使用在第一物理块地址和第二物理块地址之间分配的物理块地址和与分配的物理块地址相应的逻辑块地址来恢复映射信息。
因为根据本发明的示例性实施例,映射信息恢复模块140仅恢复在第一物理块地址和第二物理块地址之间的映射信息,所以与确定最后分配的物理块地址、基于确定的物理块地址扫描全部物理块地址并恢复映射信息的现有技术方法相比,可减少恢复映射信息所花费的时间。
高速缓存器管理模块150在非易失性存储器110的数据存储区112中存储被存储在易失性存储器中的数据。另外,当在非易失性存储器110的物理块地址中存储数据时,高速缓存器管理模块150还可存储与物理块地址相应的逻辑块地址。这样使上述扫描模块130能够在扫描物理块地址时也确定逻辑块地址,以恢复映射信息。
图6是示出根据本发明的示例性实施例的存储映射信息的方法的流程图。将使用这样的情况作为示例来描述该方法:映射信息存储模块120在非易失性存储器110的映射信息存储区111中存储作为整个非易失性存储器110的映射信息的第一映射信息。另外,将描述将当存储第一映射信息时分配的第一物理块地址与第一映射信息一起存储的情况。
参照图6,映射信息存储模块120确定在第一物理块地址之后到目前为止是否已经分配了预定数量的物理块地址(操作S110)。将基于假设由映射信息存储模块120确定的分配的物理块地址的数量是N来描述所述方法。在第一物理块地址之后分配的N个物理块地址指示通过扫描模块130扫描的物理块地址的数量,并且可被理解为在存储设备100的启动时间内可被扫描的物理块地址的最大数量。
如果确定在第一物理块地址之后分配的物理块地址的数量大于N(操作S120),则映射信息存储模块120确定在非易失性存储器110的映射信息存储 区111中是否存在剩余的存储空间(S130)。
如果在映射信息存储区111中存在剩余的存储空间,则映射信息存储模块120基于第一映射信息的更新字段230在映射信息存储区111中存储作为更新的映射信息的第二映射信息(操作S140)。
然后,映射信息存储模块120将当存储第二映射信息时最后分配的物理块地址改变为第一物理块地址(操作S150),并且在映射信息存储区111中存储第一物理块地址(操作S160)。
如果在操作S130确定在映射信息存储区111中不存在剩余的存储空间,则映射信息存储模块120擦除映射信息存储区111(操作S170),并且在映射信息存储区111中存储作为整个非易失性存储器110的映射信息的第一映射信息(操作S180)。在这种情况下,在操作S180存储的第一映射信息可被理解为更新的映射信息。
接下来,如在操作S150和操作S160中,将目前为止最后分配的物理块地址改变为第一物理块地址,并且将第一物理块地址存储在映射信息存储区111中。
换句话说,如图7所示,当在第一物理块地址之后分配了N个物理块地址时,映射信息存储模块120可将目前为止分配的物理块地址改变为第一物理块地址,并且在映射信息存储区111中存储更新的第二映射信息和第一物理块地址,所述第一物理块地址是当存储第一映射信息时最后分配的。
图8是根据本发明的示例性实施例的恢复映射信息的方法的流程图。
参照图8,映射信息恢复模块140基于映射信息存储区111确定映射信息和第一物理块地址(操作S120)。在此确定的映射信息可包括第一映射信息和第二映射信息中的至少一个。
映射信息恢复模块140设置预定变量i,并将1输入给设置的变量i(操作S220)。然后,映射信息恢复模块140使用扫描模块130扫描与提取的第一物理块地址+预定变量i相应的物理块地址(操作S230),并且基于扫描结果确定在相应的物理块地址中是否存储检测数据(操作S240)。
如果确定在相应的物理块地址中没有存储检测数据,则映射信息恢复模块140更新映射信息(操作S250),并且将预定变量i加1(操作S260)。
其后,映射信息恢复模块140可通过将预定变量i增加1重复更新映射信息的操作(操作S230至操作S260),直到找到具有检测数据的第二物理块 地址。
换句话说,如图9所示,映射信息恢复模块140可基于从第一物理块地址顺序扫描物理块地址的结果更新映射信息,所述第一物理块地址是从非易失性存储器110的映射信息存储区111中提取的。另外,映射信息恢复模块140可通过确定存储检测数据的物理块地址并更新第一物理块地址和第二物理块地址之间的映射信息来恢复映射信息,所述第二物理块地址是确定的物理块地址的先前物理块地址。在这种情况下,映射信息恢复模块140可使用当扫描物理块地址时确定的物理块地址和与物理块地址相应的逻辑块地址来恢复映射信息。
如上所述,按照根据本发明的示例性实施例的使用非易失性存储器作为高速缓存器的存储设备以及映射信息恢复方法,可减少存储映射信息的频率,从而防止存储设备的寿命的减小和性能的恶化。
在此使用的术语“模块”的意思是,但不限于,软件和硬件组件,诸如可执行特定任务的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。模块可以方便地被配置以驻留在可寻址的存储介质上,并且可被配置以在一个或多个处理器上执行。因此,举例来说,模块可以包括:诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。在组件和模块中提供的功能可被组合为更少的组件和模块,或者可进一步被分离成另外的组件和模块。
尽管已经参照其示例性实施例具体显示和描述了本发明,但本领域的普通技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种改变。
Claims (12)
1.一种使用非易失性存储器作为高速缓存器的存储设备,所述存储设备包括:
映射信息存储模块,每当分配预定数量的物理块地址时将映射信息存储在非易失性存储器的映射信息存储区中,并且将当存储映射信息时最后分配的第一物理块地址存储在非易失性存储器的映射信息存储区中;
扫描模块,基于存储在位于分配的物理块地址之后的物理块地址中的检测数据确定第二物理块地址,并且通过确定的第二物理块地址扫描第一物理块地址,所述第二物理块地址是当出现供电失败时分配的物理块地址;
映射信息恢复模块,基于扫描模块的扫描结果恢复位于第一物理块地址和第二物理块地址之间的物理块的物理块地址与逻辑快地址的映射信息;以及
高速缓存器管理模块,在物理块地址中存储与物理块地址相应的逻辑块地址。
2.如权利要求1所述的存储设备,其中,映射信息包括:
作为整个非易失性存储器的映射信息的第一映射信息;以及
作为更新的地址的映射信息的第二映射信息。
3.如权利要求2所述的存储设备,其中,第一映射信息包括:逻辑块地址字段、物理块地址字段和指示地址是否更新的更新字段。
4.如权利要求3所述的存储设备,其中,映射信息存储模块在映射信息存储区中存储第一映射信息,并且基于更新字段的值在映射信息存储区中附加地存储第二映射信息。
5.如权利要求3所述的存储设备,其中,如果在映射信息存储区中不存在剩余的存储空间,则映射信息存储模块擦除映射信息存储区,并在映射信息存储区中存储第一映射信息。
6.如权利要求1所述的存储设备,其中,映射信息恢复模块基于扫描的物理块地址和与扫描的物理块地址相应的逻辑块地址来恢复映射信息。
7.一种用于使用非易失性存储器作为高速缓存器的存储设备的映射信息恢复方法,所述方法包括:
每当分配预定数量的物理块地址时将映射信息存储在非易失性存储器的映射信息存储区中,并且将当存储映射信息时最后分配的第一物理块地址存储在非易失性存储器的映射信息存储区中;
基于存储在位于分配的物理块地址之后的物理块地址中的检测数据确定第二物理块地址,并且通过确定的第二物理块地址扫描第一物理块地址,所述第二物理块地址是当出现供电失败时分配的物理块地址;
基于扫描结果恢复位于第一物理块地址和第二物理块地址之间的物理块的物理块地址与逻辑快地址的映射信息;以及
在物理块地址中存储与物理块地址相应的逻辑块地址。
8.如权利要求7所述的方法,其中,映射信息包括:
作为整个非易失性存储器的映射信息的第一映射信息;以及
作为更新的地址的映射信息的第二映射信息。
9.如权利要求8所述的方法,其中,第一映射信息包括:逻辑块地址字段、物理块地址字段和指示地址是否更新的更新字段。
10.如权利要求9所述的方法,其中,存储映射信息的步骤包括:
在映射信息存储区中存储第一映射信息;以及
基于更新字段的值在映射信息存储区中附加地存储第二映射信息。
11.如权利要求9所述的方法,其中,存储映射信息的步骤包括:如果在映射信息存储区中不存在剩余的存储空间,则擦除映射信息存储区,并在映射信息存储区中存储第一映射信息。
12.如权利要求7所述的方法,其中,恢复映射信息的步骤包括:基于扫描的物理块地址和与扫描的物理块地址相应的逻辑块地址来恢复映射信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060018286A KR100781520B1 (ko) | 2006-02-24 | 2006-02-24 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법 |
KR1020060018286 | 2006-02-24 | ||
KR10-2006-0018286 | 2006-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101025712A CN101025712A (zh) | 2007-08-29 |
CN101025712B true CN101025712B (zh) | 2011-01-12 |
Family
ID=38090869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100791879A Active CN101025712B (zh) | 2006-02-24 | 2007-02-15 | 使用非易失性存储器的存储设备及其映射信息恢复方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7636807B2 (zh) |
EP (1) | EP1826675A3 (zh) |
JP (1) | JP4597153B2 (zh) |
KR (1) | KR100781520B1 (zh) |
CN (1) | CN101025712B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074011B2 (en) | 2006-12-06 | 2011-12-06 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery after reaching a read count limit |
KR101490327B1 (ko) | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
JP4961319B2 (ja) * | 2007-10-11 | 2012-06-27 | 株式会社日立製作所 | 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム |
US8195912B2 (en) | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
CN101470645B (zh) * | 2007-12-29 | 2012-04-25 | 华为技术有限公司 | 一种高速缓存数据恢复的方法和装置 |
KR101477047B1 (ko) | 2008-02-29 | 2014-12-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 블록 병합 방법 |
JP5999645B2 (ja) * | 2009-09-08 | 2016-10-05 | ロンギチュード エンタープライズ フラッシュ エスエイアールエル | ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法 |
US9110594B2 (en) | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8194340B1 (en) | 2010-03-18 | 2012-06-05 | Western Digital Technologies, Inc. | Disk drive framing write data with in-line mapping data during write operations |
US8693133B1 (en) | 2010-03-22 | 2014-04-08 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format |
US9330715B1 (en) | 2010-03-22 | 2016-05-03 | Western Digital Technologies, Inc. | Mapping of shingled magnetic recording media |
US8687306B1 (en) | 2010-03-22 | 2014-04-01 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones |
US8699185B1 (en) | 2012-12-10 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks |
US8856438B1 (en) | 2011-12-09 | 2014-10-07 | Western Digital Technologies, Inc. | Disk drive with reduced-size translation table |
US8667248B1 (en) | 2010-08-31 | 2014-03-04 | Western Digital Technologies, Inc. | Data storage device using metadata and mapping table to identify valid user data on non-volatile media |
US8954664B1 (en) | 2010-10-01 | 2015-02-10 | Western Digital Technologies, Inc. | Writing metadata files on a disk |
US8756361B1 (en) | 2010-10-01 | 2014-06-17 | Western Digital Technologies, Inc. | Disk drive modifying metadata cached in a circular buffer when a write operation is aborted |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8756382B1 (en) | 2011-06-30 | 2014-06-17 | Western Digital Technologies, Inc. | Method for file based shingled data storage utilizing multiple media types |
KR101890767B1 (ko) * | 2011-07-01 | 2018-09-28 | 시게이트 테크놀로지 인터내셔날 | 주소 사상 정보 관리 방법 이를 적용한 저장 장치 |
US9213493B1 (en) | 2011-12-16 | 2015-12-15 | Western Digital Technologies, Inc. | Sorted serpentine mapping for storage drives |
US8819367B1 (en) | 2011-12-19 | 2014-08-26 | Western Digital Technologies, Inc. | Accelerated translation power recovery |
CN102567490B (zh) * | 2011-12-21 | 2013-12-04 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
US8612706B1 (en) | 2011-12-21 | 2013-12-17 | Western Digital Technologies, Inc. | Metadata recovery in a disk drive |
US8953269B1 (en) | 2014-07-18 | 2015-02-10 | Western Digital Technologies, Inc. | Management of data objects in a data object zone |
US9875055B1 (en) | 2014-08-04 | 2018-01-23 | Western Digital Technologies, Inc. | Check-pointing of metadata |
CN104765656A (zh) * | 2015-04-23 | 2015-07-08 | 浪潮电子信息产业股份有限公司 | 一种冷数据的备份方法及装置 |
US10754792B2 (en) | 2016-01-29 | 2020-08-25 | Hewlett Packard Enterprise Development Lp | Persistent virtual address spaces |
US9971645B2 (en) | 2016-08-23 | 2018-05-15 | Seagate Technology Llc | Auto-recovery of media cache master table data |
US10318417B2 (en) * | 2017-03-31 | 2019-06-11 | Intel Corporation | Persistent caching of memory-side cache content |
US10223272B2 (en) | 2017-04-25 | 2019-03-05 | Seagate Technology Llc | Latency sensitive metadata object persistence operation for storage device |
KR102566635B1 (ko) | 2017-12-18 | 2023-08-14 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 그 동작 방법 |
US11076441B2 (en) * | 2018-05-21 | 2021-07-27 | Nxp Usa, Inc. | Unreachable node recovery in wireless mesh networks |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05225062A (ja) | 1992-02-13 | 1993-09-03 | Matsushita Electric Ind Co Ltd | ディスク・キャッシュ装置 |
JPH0628261A (ja) | 1992-04-17 | 1994-02-04 | Hitachi Ltd | データ転送方法及び装置 |
JPH0877074A (ja) * | 1994-09-09 | 1996-03-22 | Hitachi Ltd | フラッシュメモリを用いた記憶装置システム |
JPH08249217A (ja) * | 1995-03-15 | 1996-09-27 | Toshiba Corp | キャッシュ管理装置 |
US5838614A (en) | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
KR0174711B1 (ko) * | 1996-04-24 | 1999-04-15 | 김광호 | 하드디스크 캐시의 제어방법 |
KR19980063018A (ko) | 1996-12-31 | 1998-10-07 | 문정환 | 캐시 기억장치 |
US6105103A (en) * | 1997-12-19 | 2000-08-15 | Lsi Logic Corporation | Method for mapping in dynamically addressed storage subsystems |
WO1999032977A1 (fr) * | 1997-12-22 | 1999-07-01 | Tdk Corporation | Systeme de memoire flash |
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 |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US20030163633A1 (en) * | 2002-02-27 | 2003-08-28 | Aasheim Jered Donald | System and method for achieving uniform wear levels in a flash memory device |
US7174440B2 (en) | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
US8041878B2 (en) * | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
JP2005222202A (ja) * | 2004-02-04 | 2005-08-18 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置のデータ保護方法 |
JP2009529172A (ja) * | 2006-03-07 | 2009-08-13 | エヌエックスピー ビー ヴィ | エクストラデータを含むページを記憶するメモリーマトリックスを有する電子回路 |
-
2006
- 2006-02-24 KR KR1020060018286A patent/KR100781520B1/ko active IP Right Grant
-
2007
- 2007-01-23 US US11/656,536 patent/US7636807B2/en active Active
- 2007-02-15 CN CN2007100791879A patent/CN101025712B/zh active Active
- 2007-02-19 EP EP07102661A patent/EP1826675A3/en not_active Withdrawn
- 2007-02-22 JP JP2007042015A patent/JP4597153B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP1826675A3 (en) | 2008-08-13 |
KR100781520B1 (ko) | 2007-12-03 |
JP4597153B2 (ja) | 2010-12-15 |
JP2007226806A (ja) | 2007-09-06 |
EP1826675A2 (en) | 2007-08-29 |
CN101025712A (zh) | 2007-08-29 |
US20070204100A1 (en) | 2007-08-30 |
KR20070088102A (ko) | 2007-08-29 |
US7636807B2 (en) | 2009-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101025712B (zh) | 使用非易失性存储器的存储设备及其映射信息恢复方法 | |
US10552311B2 (en) | Recovery for non-volatile memory after power loss | |
CN101154189B (zh) | 支持不同存储单元类型的非易失性存储器的设备和方法 | |
US9213627B2 (en) | Non-volatile memory with block erasable locations | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
CN102999430B (zh) | 处理具有非易失性存储器的系统的未完全关闭 | |
US8275928B2 (en) | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables | |
US8381018B2 (en) | Method for data recovery for flash devices | |
US20080276036A1 (en) | Memory with Block-Erasable Location | |
US20100299494A1 (en) | Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information | |
CN102999431A (zh) | 用于非易失性存储器系统的编织序列计数器 | |
CN101901189B (zh) | 更新用户数据的方法以及恢复用户数据的方法 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
US20180189144A1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
CN103617101A (zh) | 一种掉电保护方法及装置 | |
KR100781517B1 (ko) | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 | |
JP2009048557A (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
WO2007096844A2 (en) | Memory with block-erasable locations | |
CN101676885B (zh) | 数据管理方法及其存储装置与其控制器 | |
US7996598B2 (en) | Memory management module | |
CN117762328A (zh) | 固态硬盘的数据存储方法及其装置、计算机设备 |
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 |