CN1991790A - 使用非易失性存储器作为高速缓存器的存储设备及其方法 - Google Patents

使用非易失性存储器作为高速缓存器的存储设备及其方法 Download PDF

Info

Publication number
CN1991790A
CN1991790A CNA2006101682319A CN200610168231A CN1991790A CN 1991790 A CN1991790 A CN 1991790A CN A2006101682319 A CNA2006101682319 A CN A2006101682319A CN 200610168231 A CN200610168231 A CN 200610168231A CN 1991790 A CN1991790 A CN 1991790A
Authority
CN
China
Prior art keywords
piece
block
physical block
tabulation
allocation
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
Application number
CNA2006101682319A
Other languages
English (en)
Other versions
CN100524249C (zh
Inventor
申东君
李时润
金莊焕
宋东显
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1991790A publication Critical patent/CN1991790A/zh
Application granted granted Critical
Publication of CN100524249C publication Critical patent/CN100524249C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

提供一种使用即使在电源中断之后也保持数据的非易失性存储器作为其高速缓存器的存储设备以及管理所述设备的方法。所述存储设备包括:主存储介质;用作主存储介质的高速缓存器的非易失性存储器,根据数据是否固定将非易失性存储器的区域分成固定区域和非固定区域;以及块管理单元,通过虚拟地址来管理物理块,所述物理块被分配给非易失性存储器。

Description

使用非易失性存储器作为高速缓存器的存储设备及其方法
本申请要求于2005年12月27日在韩国知识产权局提交的第10-2005-0130795号韩国专利申请的优先权,该申请全部公开于此以资参考。
                         技术领域
本发明的各个方面涉及使用非易失性存储器作为高速缓存器的存储设备和管理所述设备的方法。更具体地说,本发明的各个方面涉及使用即使在电源中断之后也保持数据的非易失性存储器作为高速缓存器的存储设备和管理所述设备的方法。
                         背景技术
参照图1,传统的存储设备10包括:主机11、数据缓冲器12和主存储介质13。主机11根据用户的命令将数据发送到主存储介质13或从主存储介质13接收数据。数据缓冲器12缓冲主机11和主存储介质13之间的速率的差异。
具体地说,从主机11发送的数据临时存储在数据缓冲器12中直到所述数据被记录在主存储介质13中,反之亦然。存储设备10的数据缓冲器12通常包括易失性存储器。也就是说,当中断对主存储装置10的供电时,在数据缓冲器12中存在的所有数据都丢失。
为了增加访问效率,存储设备10使用高速缓存器,存储将被存储在主存储介质13中的部分数据。当主机11读取存储在高速缓存器中的数据时,没有必要访问主存储介质13。这样增加了访问效率。
然而,因为当中断供电时数据缓冲器12丢失所有数据,所以即使当增加数据缓冲器12的大小时,数据缓冲器12也不能用作高速缓存器。另外,必须一直向主存储介质13供电是减少功耗的障碍。
因此,近来已经提出使用非易失性存储器作为存储设备10的高速缓存器,从而,当主机11从非易失性存储器读取数据或向非易失性存储器写入数据时,中断对主存储介质13的供电,以减少功耗。
然而,使用非易失性存储器作为存储设备10的高速缓存器具有以下问题:必须根据数据是否固定来有效管理数据。具体地说,非易失性存储器具有固定区域和非固定区域,其中,在所述固定区域中数据位置一直固定,在所述非固定区域中数据位置频繁改变。必须有效管理这些区域。另外,需要一种保护数据免受意外的电源中断的影响的方法。也需要一种收集块以最小化对主存储介质13的供电的时间的方法,以及在考虑非易失性存储器中各个物理块的使用程度(wear level)的情况下增加非易失性存储器的寿命的方法。
早期公开的第2003-256289号日本专利公开了一种系统,所述系统根据环形序列(在物理扇区地址的底部和顶部发生记录和删除)通过周期性地删除对在闪存中已经被分组的块的指定来保持闪存系统的使用程度的一致性,可按照期望指定所述闪存系统的地址。然而,第2003-256289号日本专利中公开的系统没有提出有效地管理固定区域和非固定区域中的数据的方法,也没有建议保护数据免受意外的电源中断的影响,或者基于块收集和使用程度调整来增加寿命。
                         发明内容
本发明的示例性实施例克服发生在现有技术中的上述缺点以及上面没有描述的其它缺点。另外,没有要求本发明克服上述缺点,本发明的示例性实施例可以不克服上面描述的任何问题。本发明的一方面提供一种以这样一种方式使用非易失性存储器作为其高速缓存器的存储设备和管理所述设备的方法,在所述方式中,通过根据数据在区域中是否固定将非易失性存储器分为固定区域和非固定区域来分别管理非易失性存储器,并且收集块以统一块的使用程度。
本发明的另一方面提供一种使用非易失性存储器作为其高速缓存器以容易地从意外电源中断中恢复的存储设备以及管理所述设备的方法。
为了实现上述目的和其它,提供一种使用非易失性存储器作为高速缓存器的存储设备,所述设备包括:主存储介质;用作主存储介质的高速缓存器的非易失性存储器,根据数据是否固定将非易失性存储器的区域分成固定区域和非固定区域;以及块管理单元,通过虚拟地址来管理物理块,所述物理块被分配给非易失性存储器。
根据本发明的另一方面,提供一种管理使用非易失性存储器作为高速缓存器的存储设备的方法,所述方法包括:根据数据是否固定将用作主存储介质的高速缓存器的非易失性存储器的区域分成固定区域和非固定区域;以及通过分配给物理块的虚拟地址分别管理分配给固定区域和非固定区域的物理块。
                         附图说明
通过下面结合附图进行的详细描述,本发明的上述方面和其它将会变得更加清楚,其中:
图1显示传统的存储设备;
图2显示根据本发明的示例性实施例的使用非易失性存储器作为其高速缓存器的存储设备;
图3显示根据本发明的示例性实施例的虚拟块地址空间;
图4显示根据本发明的示例性实施例的分配块列表和自由块列表;
图5显示根据本发明的示例性实施例的块映射表;
图6显示根据本发明的示例性实施例的收集块之前的分配块列表、自由块列表和块映射表;
图7显示根据本发明的示例性实施例的收集块之后的分配块列表、自由块列表和块映射表;
图8显示根据本发明的示例性实施例的处理坏块之前的分配块列表、自由块列表和块映射表;
图9显示根据本发明的示例性实施例的处理坏块之后的分配块列表、自由块列表和块映射表;
图10显示根据本发明的示例性实施例的分配块的方法;
图11显示根据本发明的示例性实施例的收集块的方法;
图12显示根据本发明的示例性实施例的处理坏块的方法;以及
图13显示根据本发明的示例性实施例的从电源中断中恢复的方法。
                        具体实施方式
以下,将参照附图来描述本发明的示例性实施例。提供例如详细的结构和部件的在说明书中定义的内容仅是示例性的,以帮助全面理解本发明。因此,明显的是,在没有那些定义的内容的情况下也可实施本发明。在本发明的示例性实施例的下面的描述中,即使出现在不同的附图中,相同的附图标号被用于相同的部件。另外,当合并于此的公知功能和结构可能使本发明的主题模糊时,将省略对其的详细描述。
以下参照流程图描述本发明的示例性实施例,所述流程图涉及根据本发明的示例性实施例的使用非易失性存储器作为高速缓存器的存储设备以及管理所述设备的方法。应该理解,流程图的每一个块以及流程图中的块的组合可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器以产生设备,从而经计算机或者其他可编程数据处理设备的处理器执行的指令创建用于实现在一个流程图块或多个流程图块中指定的功能的装置。
这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式运行的计算机可用或计算机可读存储器中,从而存储在计算机可用或计算机可读存储器中的指令产生包括实现在一个流程图块或多个流程图块中指定的功能的指令装置的产品。
计算机程序指令也可被载入计算机或其他可编程数据处理设备,以使得一系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图块或多个流程图块中指定的功能的步骤。
流程图的每块可代表模块、程序段或代码的一部分,其包括一个或更多用于实现特定的逻辑功能的可执行指令。应注意的是,在一些可选择的实现中,在这些块中标注的功能可不按所示顺序发生。例如,连续显示的两个块事实上可基本同时地被执行,或者有时所述块可以以相反的顺序被执行,这取决于涉及的功能。
图2显示根据本发明的示例性实施例的使用非易失性存储器作为其高速缓存器的存储设备。
如图所述,根据本发明的示例性实施例的使用非易失性存储器作为其高速缓存器的存储设备100可包括:主存储介质110、用作主存储介质110的高速缓存器的非易失性存储器120、和通过虚拟地址的方式管理非易失性存储器120的物理块(PB)的块管理单元130。
本领域的技术人员应该理解,根据本示例性实施例,主存储介质110是大容量存储介质,诸如硬盘驱动器,非易失性存储器120是例如即使在电源中断的情况下也能够保持数据的闪存。根据本示例性实施例的使用非易失性存储器作为其高速缓存器的存储设备100可连接到主机140,所述主机140根据用户的命令将数据发送到主存储介质110或从主存储介质110接收数据。依次,主机140可连接到块管理单元130。
可将非易失性存储器120分为数据固定的固定区域和数据频繁改变的非固定区域。所述固定区域存储应该永久驻留在非易失性存储器120中的数据,并且所述固定区域被用作主存储介质110的高速缓存器。在非固定区域中,数据频繁地移动到主存储介质110中或从主存储介质110移出。
块管理单元130可包括:块分配单元131,用于将PB分配给非易失性存储器120;块收集单元132,用于收集分配的PB;坏块管理单元133,用于管理坏块;电源中断恢复单元134,用于从电源中断中恢复;块映射表管理单元135,用于管理非易失性存储器120的物理块号(PBN)和虚拟块号(VBN)之间的映射关系;以及列表存储单元136,用于存储分配块列表和自由块列表。
块分配单元131适合于根据存储在列表存储单元136中的自由块列表将PB分配给非易失性存储器120的固定区域和非固定区域。自由块列表包含不存在数据的空的PB。可将自由块列表中的PB按PBN的顺序存储,所述PBN基于PB的使用程度(wear level)。具体地说,使用最少的PB的PBN位于自由块列表的第一位置,并且使用最多的PB的PBN位于自由块列表的末尾位置。自由块列表通常被存储在非易失性存储器120的备用区域中。电源中断恢复单元134适合于在意外电源中断和重新启动的情况下通过使用存储在备用区域中的值来重建自由块列表,如下面将进行的详细描述。
图3显示根据本发明的示例性实施例的虚拟块地址空间。
为了将PB分配给非易失性存储器120的固定区域和非固定区域,如图3所示,块分配单元131可将虚拟块地址空间的VBN分配给相应的PBN。虚拟块地址空间的VBN可按相反方向连续映射到非易失性存储器120的PBN,以将固定区域和非固定区域彼此区分。虚拟块地址空间的各个VBN可包括多个页,并且虚拟块地址空间可比物理地址空间大。
然后,块分配单元131将位于自由块列表上的第一PB分配给固定区域或非固定区域。记录分配的PB的PBN和VBN之间的映射关系的块映射表可被存储在块映射表管理单元135中。如在虚拟块地址空间的情况中一样,类似地,块映射表可基于固定区域和非固定区域具有沿相反方向的连续的分配。在将自由块列表上的一些PB分配给固定区域或非固定区域之后,块分配单元131更新存储在列表存储单元136中的分配块列表和自由块列表。具体地说,块分配单元131从自由块列表中去除已经分配给固定区域或非固定区域的PB,并将所述分配的PB添加到分配块列表的最后部分。
图4显示根据本发明的示例性实施例的分配块列表和自由块列表。
从图中可以清楚的看到,根据本示例性实施例,分配块列表210按照使用程度231增加的顺序列举分配的PB 230的PBN,并且自由块列表220按照相同顺序列举未分配的PB 230的PBN。
图5显示块映射表,其中,分别将图4中显示的分配块列表上的PBN映射到VBN。
从图中可以清楚的看到,在根据本示例性实施例的块映射表240中,基于固定区域和非固定区域,以相反方向将PBN连续映射到VBN。
当将数据记录在非易失性存储器120中时,可将各种类型的元数据和数据一起存储在备用区域中。根据本示例性实施例,可将元数据存储在非易失性存储器120的元数据存储单元121中。存储在元数据存储单元121中的元数据可包括:例如,逻辑块地址(LBA)、固定区域和非固定区域数据指示符、块的使用程度和恢复标记。
当LBA映射到分配块列表的各个PB时,所述LBA可被用于意外电源中断之后的恢复。固定区域和非固定区域数据指示符被用于区分固定区域和非固定区域以及电源中断之后的恢复。使用程度提供创建自由块列表的标准。恢复标记用于电源中断之后的恢复。具体地说,当连接分配块列表和自由块列表,并将其一起存储在非易失性存储器120中时,可在自由块列表的起始位置设置恢复标记,以与分配块列表区分。本领域的技术人员可以理解,当连接分配块列表和自由块列表,并将其一起存储时,它们实际上构成了单个列表,所述单个列表具有在自由块列表的起始位置设置的恢复标记,所述恢复标记用于区分分配块列表和自由块列表。
块收集单元132计算分配块列表上的各个PB的有效页。块收集单元132可执行从具有最少有效页的PB的块收集。当PB具有最少有效页时,可以认为PB具有最少有效数据。这样,块收集从具有最少有效页的PB开始。
块收集单元132分配处于自由块列表上第一位置的PB,以使所述PB被定位在分配块列表的末端。块收集单元132将由块收集得到的PB中的有效页移动到分配块列表的末尾位置上的块。在将所有有效页都移动到分配块列表的最后位置上的PB之后,块收集单元132按照使用程度的顺序将已经经受块收集的PB添加到自由块列表。
为了块收集,块分配单元131将虚拟块地址空间的VBN分配给分配块列表的末尾位置上的PB的PBN,从而更新虚拟块地址空间。
图6显示根据本发明的示例性实施例的块收集之前的PB。
从附图可清楚地看到,分配块列表310列举PBN 5、PBN 0、PBN 7和PBN 2,其有效页的数量311分别为5、4、6和4。自由块列表320列举PBN3、PBN 6、PBN 1和PBN 4。在块映射表330中,基于固定区域和非固定区域,分配块列表310的PBN沿相反方向映射到各个VBN。
图7显示根据本发明的示例性实施例的块收集之后的PB。在参照图7的下面的描述中将假设:为了块收集,将图6所示的PBN 0的有效页移动到PBN 6,并将PBN 2和PBN 5的有效页移动到PBN 3。
从图7可以清楚地看到,作为块收集的结果,已经从分配块列表310中去除PBN 0、PBN 2和PBN 5(图6所示),并且按照使用程度的顺序将其添加到自由块列表320。
如图7所示,在块映射表330中,因为PBN 7没有经受块收集。所以,PBN 7保持其位置。相反,已经经受块收集并从自由块列表320移动到分配块列表310的PBN 3和PBN 6映射到新的VBN。
当分配块列表上的PB中出现坏块时,坏块管理单元133从分配块列表中去除那个特定的PB,并将已经记录在去除的PB中的数据移动到从自由块列表320新分配的PB。为了移动已经记录在坏块中的数据,坏块管理单元133将从自由块列表新分配的PB插入到去除的坏块的位置。
图8显示根据本发明的示例性实施例的坏块的出现。
如图8所示,当在分配块列表410的PBN 5中出现坏块时,坏块管理单元133接收从自由块列表420新分配的PB,并且将已经记录在所述坏块中的数据移动到新分配的PB。在去除坏块之前,在块映射列表430中PBN 5映射到VBN 7。在去除坏块之后,新分配的PB映射到VBN 7。
图9显示根据本发明的示例性实施例的坏块的去除。
如图9所示,坏块管理单元133将记录在如图8所示的具有坏块的PBN5中的数据移动到从自由块列表420新分配的PBN 6,并将PBN 6插入PBN 5的位置,其中,没有将PBN 5添加到自由块列表420,也没有分配PBN 5。在块映射列表430中,新分配的PBN 6映射到先前映射到具有坏块的PBN 5的VBN 7。
电源中断恢复单元134适合于通过分配块列表和自由块列表从意外电源中断中恢复。为此,当由于对主存储介质110进行块收集或数据的移动而使分配块列表和自由块列表改变它们的顺序时,电源中断恢复单元134将分配块列表和自由块列表存储在非易失性存储器120的备用区域中。具体地说,一旦存储了分配块列表和自由块列表,则即使在意外电源中断的情况下,分配块列表和自由块列表也保持它们的顺序。结果,PB的分配顺序保持完整,并且基于备用区域中的LBA,可提取最新数据。这样,仅在进行对主存储介质110进行块收集或数据移动的情况下,存储分配块列表和自由块列表,以使在电源中断之后容易恢复。在块收集期间设置恢复标记,并且在重新分配期间删除恢复标记,从而可区分分配块列表和自由块列表。也可通过使用分配块列表恢复块映射表。
图10显示根据本发明的示例性实施例的分配块的方法。
参照附图,在操作S110,块分配单元131首先从自由块列表中选择将新分配给固定区域或非固定区域的PB。块分配单元131新分配位于自由块列表上的第一位置的PB。这是因为自由块列表以使用程度增加的顺序列举PB,第一PB具有最低的使用程度。
在操作S120,块分配单元131将VBN分配给选择的PBN。具体地说,基于固定区域和非固定区域,以相反方向在虚拟块地址空间中连续分配VBN。
在操作S130,块分配单元131更新表示PBN和VBN之间的映射关系的块映射表。
在操作S140,块分配单元131将选择的PBN添加到分配块列表的最后,在操作S150,从自由块列表中去除选择的PBN。将新分配的PBN添加到分配块列表的最后的原因是,当在非易失性存储器120中更新数据的情况下,在不修改先前写入的数据的条件下新分配并添加PB。当每次分配新PB时以这样的方式将PBN添加到分配块列表的最后时,后写入的数据可证明是有效数据。如上所述,电源中断恢复单元134可使用这样的方法从电源中断中恢复。
图11显示根据本发明的示例性实施例的收集块的方法。
在操作S210,参照附图,块收集单元132首先计算包括在分配块列表上的各个PB中的有效页。这是为了收集包含至少预定数量的无效页的PB,并重新分配所述PB。
在操作S220,块收集单元132根据有效页的数量确定PB的块收集顺序,在本示例性实施例的下面的描述中假设块收集从具有最少有效页的PB开始。另外,对具有少于预定数量的有效页或空白页的PB执行块收集。
在操作S230,为了以确定的顺序收集具有最少有效页的PB,块收集单元132将自由块列表上的第一PBN定位在分配块列表的最后。
在操作S240,块收集单元132将由块收集得到的PB的有效页移动到分配块列表上的最后PB。在操作S250,块收集单元132基于使用程度将PB添加到自由块列表中,所述PB在其有效页被移出之后为空。在操作S260,块收集单元132将VBN分配给已经新添加到分配块列表中的PBN,从而更新了块映射表。
在操作S270,块收集单元132确定是否已经收集了由块收集得到的所有PB。如果没有,则块收集单元132执行操作S280,接着重复上述操作S240、S250和S260,直到收集了由块收集得到的所有PB。具体地说,在操作S280,为了下一PB的块收集,块收集单元1 32将自由块列表上的第一PBN定位在分配块列表的最后。接着,块收集单元132将由块收集得到的PB的有效页移动到分配块列表上的最后PB;基于使用程度将PB添加到自由块列表中,所述PB在其有效页被移出之后为空;将VBN分配给已经新添加到分配块列表中的PBN,从而更新了块映射表。
图12显示根据本发明的示例性实施例的处理坏块的方法。
参照图12,在操作S310,坏块管理单元133首先确定分配块列表上的任何PB中是否存在坏块。
如果是,则在操作S320中,坏块管理单元133接收由块分配单元131从自由块列表新分配的PB。具体地说,在考虑PB的使用程度的情况下新分配自由块列表上的第一PB。本领域的技术人员可以很容易地理解,尽管在本发明的本示例性实施例中分配自由块列表上的第一PB,但是为了避免第一PB的频繁改变,可分配第一PB的下一PB,在所述第一PB上设置了如上所述的恢复标记。
在分配新PB之后,在操作S330,坏块管理单元133将具有坏块的PB的数据移动到新分配的PB。
在数据移动之后,在操作S340,坏块管理单元133将数据已经移动到其中的PB插入到具有坏块的PB的位置。
在操作S350,坏块管理单元133将已经被分配给具有坏块的PBN的VBN分配给已插入到具有坏块的PB的位置上的PBN。
图13显示根据本发明的示例性实施例的从电源中断中恢复的方法。
参照图13,在操作S410,当意外地发生电源中断时,电源中断恢复单元134提取分配块列表和自由块列表,所述分配块列表和自由块列表都已经存储在非易失性存储器120的备用区域中。
在操作S420,电源中断恢复单元134基于分配块列表恢复PB分配的顺序。当存在多于一个具有相同LBA的PB时,电源中断恢复单元134确定最后写入的PB有效。
在操作S430,电源中断恢复单元134基于分配块列表恢复块映射表。
这里使用的术语“单元”的意思是,但不限于,软件或硬件组件,诸如执行特定任务的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。单元可以方便地被配置以驻留在可寻址的存储介质上,并且可被配置以在一个或多个处理器上执行。因此,举例来说,单元可以包括:诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。在组件和单元中提供的功能可被组合为更少的组件和单元,或者可进一步被分离成另外的组件和单元。
如上所述,与本发明的示例性实施例一致的使用非易失性存储器作为高速缓存器的存储设备和管理所述设备的方法具有下面的示例性优点。
通过根据数据是否固定将非易失性存储器分为固定区域和非固定区域来有效地管理非易失性存储器。
通过非易失性存储器中的块收集使各个块的使用程度统一。这样增加了存储器的寿命。另外,主存储介质的使用程度的减少降低了其运行期间的功耗。
即使在意外电源中断的情况下,也能够从分配块列表中恢复块映射表,这样保证了安全的数据恢复。
尽管上面为了示意性的目的描述了本发明的示例性实施例,但是本领域的技术人员应该理解,在不脱离权利要求公开的本发明的精神和范围的情况下,可以对其进行各种修改、添加和置换。

Claims (24)

1、一种存储设备,包括:
主存储介质;
用作主存储介质的高速缓存器的非易失性存储器,其中,根据数据是否固定将非易失性存储器的区域分成固定区域和非固定区域;以及
块管理单元,使用虚拟地址来管理物理块,其中,所述物理块被分配给非易失性存储器。
2、如权利要求1所述的存储设备,其中,所述块管理单元包括:
块分配单元,将物理块分配给非易失性存储器;
块收集单元,收集分配给非易失性存储器的物理块;
坏块管理单元,管理坏块;
电源中断恢复单元,在电源中断的情况下恢复存储设备;
块映射表管理单元,管理表示物理块号和分配给物理块号的虚拟块号之间的映射关系的块映射表;以及
列表存储单元,存储列举分配的物理块的分配块列表和列举空物理块的自由块列表。
3、如权利要求2所述的存储设备,其中,所述块分配单元适合于将自由块列表上的第一物理块分配给固定区域或非固定区域。
4、如权利要求3所述的存储设备,其中,所述自由快列表按照使用程度增加的顺序列举空物理块。
5、如权利要求3所述的存储设备,其中,所述块分配单元适合于将物理块定位在分配块列表的末尾。
6、如权利要求5所述的存储设备,其中,所述块映射表管理单元适合于存储具有虚拟块号的块映射表,所述虚拟块号被分配给在分配块列表中列举的物理块号,以及
其中,所述块映射表管理单元将虚拟块号分配给分配块列表上的末尾的物理块号,从而更新块映射表。
7、如权利要求2所述的存储设备,其中,所述块收集单元适合于计算分配块列表上的各个物理块的有效页,以及
其中,所述块收集单元执行从具有最少有效页的物理块开始的块收集。
8、如权利要求7所述的存储设备,其中,所述块收集单元适合于将物理块定位在分配块列表的末尾,以及
其中,块收集单元将由块收集得到的物理块中的有效页移动到分配块列表的末尾的物理块。
9、如权利要求8所述的存储设备,其中,所述块收集单元适合于当在有效页被移出之后由块收集得到的物理块为空时,根据使用程度将所述物理块添加到自由块列表中。
10、如权利要求2所述的存储设备,其中,所述坏块管理单元适合于当分配块列表上的物理块包括坏块时,将所述物理块的数据移出到从自由块列表新分配的物理块,以及
其中,所述包括坏块的物理块从分配中被免除。
11、如权利要求10所述的存储设备,其中,所述坏块管理单元适合于将从自由块列表新分配的物理块插入到所述包括坏块的物理块的先前位置,以及
其中,所述块映射单元适合于将虚拟块号分配给被插入的物理块的物理块号,
其中,分配的虚拟块号先前被分配给所述包括坏块的物理块。
12、如权利要求2所述的存储设备,其中,电源中断恢复单元适合于提取分配块列表,并在电源中断的情况下恢复块映射表。
13、一种管理存储设备的方法,所述方法包括:
根据数据是固定的还是非固定的来将用作主存储介质的高速缓存器的非易失性存储器的区域分成固定区域和非固定区域;以及
通过分配给物理块的虚拟地址分别管理分配给固定区域和非固定区域的物理块。
14、如权利要求13所述的方法,其中,管理物理块的步骤包括:
将物理块分配给非易失性存储器;
收集分配给非易失性存储器的物理块;
管理坏块;
从电源中断中恢复;
管理表示物理块号和分配给物理块号的虚拟块号之间的映射关系的块映射表;
存储列举分配的物理块的分配块列表;以及
存储列举空物理块的自由块列表。
15、如权利要求14所述的方法,其中,分配物理块的步骤包括:将自由块列表上的第一物理块分配给固定区域或非固定区域。
16、如权利要求15所述的方法,其中,所述自由快列表按照使用程度增加的顺序列举空物理块。
17、如权利要求15所述的方法,其中,分配物理块的步骤包括:将物理块定位在分配块列表的末尾。
18、如权利要求17所述的方法,其中,管理块映射表的步骤包括:
存储具有虚拟块号的块映射表,所述虚拟块号被分配给在分配块列表中列举的物理块号;以及
将虚拟块号分配给分配块列表上的末尾物理块号,从而更新块映射表。
19、如权利要求14所述的方法,其中,收集物理块的步骤包括:
计算分配块列表上的各个物理块的有效页;以及
执行从具有最少有效页的物理块开始的块收集。
20、如权利要求19所述的方法,其中,收集物理块的步骤包括:
将物理块定位在分配块列表的末尾;以及
将由块收集得到的物理块中的有效页移动到分配块列表的末尾的物理块。
21、如权利要求20所述的方法,其中,收集物理块的步骤包括:当在有效页被移出之后由块收集得到的物理块为空时,根据使用程度将所述物理块添加到自由块列表中。
22、如权利要求14所述的方法,其中,管理坏块的步骤包括:
当分配块列表上的物理块包括坏块时,将所述物理块的数据移出到从自由块列表新分配的物理块;以及
将所述包括坏块的物理块从分配中免除。
23、如权利要求22所述的方法,其中,管理坏块的步骤包括:
将从自由块列表新分配的物理块插入到所述包括坏块的物理块的位置;以及
将虚拟块号分配给被插入的物理块的物理块号,
其中,分配的虚拟块号先前被分配给所述包括坏块的物理块。
24、如权利要求14所述的方法,其中,从电源中断中恢复的步骤包括:
提取分配块列表;以及
在电源中断的情况下恢复块映射表。
CNB2006101682319A 2005-12-27 2006-12-26 使用非易失性存储器作为高速缓存器的存储设备及其方法 Active CN100524249C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050130795 2005-12-27
KR1020050130795A KR100755700B1 (ko) 2005-12-27 2005-12-27 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법

Publications (2)

Publication Number Publication Date
CN1991790A true CN1991790A (zh) 2007-07-04
CN100524249C CN100524249C (zh) 2009-08-05

Family

ID=37890869

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101682319A Active CN100524249C (zh) 2005-12-27 2006-12-26 使用非易失性存储器作为高速缓存器的存储设备及其方法

Country Status (5)

Country Link
US (1) US7774541B2 (zh)
EP (1) EP1804168A1 (zh)
JP (1) JP2007179545A (zh)
KR (1) KR100755700B1 (zh)
CN (1) CN100524249C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770809A (zh) * 2008-12-31 2010-07-07 J·埃金顿 非易失性存储器掉电后的恢复
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN103186471A (zh) * 2011-12-30 2013-07-03 深圳市共进电子股份有限公司 存储设备中坏块的管理方法及系统
CN104851457A (zh) * 2014-02-18 2015-08-19 华邦电子股份有限公司 半导体存储装置
CN107688442A (zh) * 2017-09-04 2018-02-13 郑州云海信息技术有限公司 一种用于固态硬盘的虚拟块管理方法
CN108874695A (zh) * 2017-05-11 2018-11-23 西部数据技术公司 在电力关闭时保存数据

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
KR100908637B1 (ko) * 2007-10-10 2009-07-21 한양대학교 산학협력단 플래시 메모리의 데이터 관리방법
JP4961319B2 (ja) * 2007-10-11 2012-06-27 株式会社日立製作所 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
US8074145B2 (en) * 2007-11-12 2011-12-06 Harris Corporation Memory system and related method using software-defined radio with write-protected, non-volatile memory
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
KR100950937B1 (ko) * 2009-06-30 2010-04-08 주식회사 셀픽 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템
JP4930556B2 (ja) * 2009-07-09 2012-05-16 富士通株式会社 退避処理装置、退避処理方法およびストレージシステム
KR101615659B1 (ko) * 2009-07-16 2016-05-12 삼성전자주식회사 스크래치 패드 메모리 관리 장치 및 방법
US8402242B2 (en) 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8301838B2 (en) * 2009-11-04 2012-10-30 Nokia Corporation Method and apparatus for providing an application-level cache with a locked region and a floating region
KR101627322B1 (ko) 2009-11-18 2016-06-03 삼성전자주식회사 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법
WO2011081232A1 (ko) * 2009-12-29 2011-07-07 주식회사 프롬나이 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US8417878B2 (en) * 2010-09-20 2013-04-09 Seagate Technology Llc Selection of units for garbage collection in flash memory
JP2012203881A (ja) * 2011-03-28 2012-10-22 Fujitsu Ltd ストレージ装置及びストレージ制御装置
KR101756228B1 (ko) 2011-07-19 2017-07-11 삼성전자 주식회사 메모리 장치
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
KR101993704B1 (ko) 2012-08-24 2019-06-27 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법
JP5990430B2 (ja) * 2012-08-29 2016-09-14 株式会社バッファローメモリ Ssd(ソリッドステートドライブ)装置
US9032244B2 (en) * 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
KR102002921B1 (ko) * 2012-12-05 2019-07-23 삼성전자주식회사 버퍼 운영 방법 및 그에 따른 반도체 저장 장치
JP5714681B2 (ja) * 2013-10-25 2015-05-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR101573375B1 (ko) 2013-10-31 2015-12-03 전자부품연구원 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈
US9342419B2 (en) 2013-11-11 2016-05-17 Globalfoundries Inc. Persistent messaging mechanism
US9164856B2 (en) 2013-11-11 2015-10-20 International Business Machines Corporation Persistent messaging mechanism
US9734081B2 (en) * 2014-12-10 2017-08-15 Advanced Micro Devices, Inc. Thin provisioning architecture for high seek-time devices
WO2016122491A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Page cache in a non-volatile memory
CN105404597B (zh) * 2015-10-21 2018-10-12 华为技术有限公司 数据传输的方法、设备及系统
CN110058964B (zh) * 2018-01-18 2023-05-02 伊姆西Ip控股有限责任公司 数据恢复方法、数据恢复系统和计算机可读介质
KR20200126531A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 커맨드 수행 방법

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414826A (en) 1990-01-31 1995-05-09 Hewlett-Packard Company System and method for memory management in microcomputer
JPH0511933A (ja) 1991-07-08 1993-01-22 Kawasaki Steel Corp ハードデイスクエミユレータ及びその固定キヤツシユエリア割付方法
DE69219433T2 (de) 1991-11-04 1997-12-11 Sun Microsystems Inc Virtueller Durchschreibcachespeicher Synonym-Adressierung und Cache-Ungültigkeitserklärungen
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
JP3070453B2 (ja) 1995-09-20 2000-07-31 日本電気株式会社 計算機システムのメモリ障害回復方法および回復システム
JPH09128302A (ja) 1995-11-01 1997-05-16 Fujitsu Ltd 不揮発性メモリへのデータアクセス方法
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
JP3868585B2 (ja) 1996-07-30 2007-01-17 シャープ株式会社 メモリ管理装置及びコンピュータ読み取り可能な記録媒体
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JPH1153261A (ja) 1997-08-07 1999-02-26 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
US7356641B2 (en) * 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US20030163633A1 (en) 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6948041B2 (en) * 2002-10-24 2005-09-20 Micron Technology, Inc. Permanent memory block protection in a flash memory device
JP4415356B2 (ja) 2002-12-24 2010-02-17 エルジー エレクトロニクス インコーポレイティド 二重ジャーナリングの保存方法及びその記憶媒体
EP1450261A1 (en) * 2003-02-18 2004-08-25 STMicroelectronics S.r.l. Semiconductor memory with access protection scheme
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
US7363420B2 (en) * 2003-12-15 2008-04-22 Nortel Networks Limited Method and file structures for managing data on a flash disk
KR100514756B1 (ko) * 2003-12-23 2005-09-14 삼성전자주식회사 플래쉬 메모리를 파일 시스템으로 라이트하기 위한캐쉬처리 방법
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
JP4688584B2 (ja) * 2005-06-21 2011-05-25 株式会社日立製作所 ストレージ装置
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770809A (zh) * 2008-12-31 2010-07-07 J·埃金顿 非易失性存储器掉电后的恢复
US10552311B2 (en) 2008-12-31 2020-02-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
CN101770809B (zh) * 2008-12-31 2014-03-26 J·埃金顿 用于非易失性存储器掉电后的恢复的方法和系统
US9612954B2 (en) 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN102576333B (zh) * 2009-10-05 2016-01-13 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN103186471B (zh) * 2011-12-30 2016-10-12 深圳市共进电子股份有限公司 存储设备中坏块的管理方法及系统
CN103186471A (zh) * 2011-12-30 2013-07-03 深圳市共进电子股份有限公司 存储设备中坏块的管理方法及系统
CN104851457A (zh) * 2014-02-18 2015-08-19 华邦电子股份有限公司 半导体存储装置
CN104851457B (zh) * 2014-02-18 2019-01-08 华邦电子股份有限公司 半导体存储装置
CN108874695A (zh) * 2017-05-11 2018-11-23 西部数据技术公司 在电力关闭时保存数据
CN108874695B (zh) * 2017-05-11 2019-09-17 西部数据技术公司 在电力关闭时保存数据
CN107688442A (zh) * 2017-09-04 2018-02-13 郑州云海信息技术有限公司 一种用于固态硬盘的虚拟块管理方法

Also Published As

Publication number Publication date
US7774541B2 (en) 2010-08-10
US20070150654A1 (en) 2007-06-28
CN100524249C (zh) 2009-08-05
KR20070068796A (ko) 2007-07-02
JP2007179545A (ja) 2007-07-12
KR100755700B1 (ko) 2007-09-05
EP1804168A1 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
CN1991790A (zh) 使用非易失性存储器作为高速缓存器的存储设备及其方法
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
JP5530012B2 (ja) 記憶装置のためのストレージアドレス再マッピングのための方法およびシステム
TWI446345B (zh) 用來進行區塊管理之方法以及記憶裝置及控制器
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US7774390B2 (en) Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same
CN106598878B (zh) 一种固态硬盘冷热数据分离方法
CN1303498C (zh) 闪存控制器以及使用闪存介质来存储数据的处理设备
US8966156B2 (en) Memory device, memory system and mapping information recovering method
CN1991791A (zh) 使用非易失性存储器作为高速缓存的存储设备及运行方法
CN1512353A (zh) 性能改善的数据存储和方法
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
US20120254574A1 (en) Multi-layer memory system
CN104424103B (zh) 固态储存装置中高速缓存的管理方法
CN105589811A (zh) 数据储存装置与操作方法
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
Agarwal et al. A closed-form expression for write amplification in nand flash
CN1499530A (zh) 非易失性存储器系统内有效允许失序写处理的方法和装置
CN1504896A (zh) 在非易失性存储器系统中执行块高速缓冲存储的方法和装置
CN1795437A (zh) 用于块内页面分组的方法及设备
CN1445787A (zh) 大容量快速可电擦写可编程只读存储器系统中的数据处理方法
CN1719422A (zh) 一种存储器文件数据虚拟存取方法
CN1910557A (zh) 信息记录介质
CN1763729A (zh) 用于闪速存储器的数据处理设备和方法
CN1538456A (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