CN1991791A - 使用非易失性存储器作为高速缓存的存储设备及运行方法 - Google Patents
使用非易失性存储器作为高速缓存的存储设备及运行方法 Download PDFInfo
- Publication number
- CN1991791A CN1991791A CNA2006101699663A CN200610169966A CN1991791A CN 1991791 A CN1991791 A CN 1991791A CN A2006101699663 A CNA2006101699663 A CN A2006101699663A CN 200610169966 A CN200610169966 A CN 200610169966A CN 1991791 A CN1991791 A CN 1991791A
- Authority
- CN
- China
- Prior art keywords
- piece
- fixed
- point
- fixed area
- block
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/7211—Wear leveling
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 Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种使用非易失性存储器作为高速缓存的存储设备及其运行方法,其中,使用非易失性存储器作为高速缓存以即使断电也能保存数据。使用非易失性存储器作为高速缓存的存储设备包括:主存储介质;非易失性存储器,用作主存储介质的高速缓存,所述非易失性存储器包括根据数据是否被固定而划分的固定区域和非固定区域;和块管理单元,管理非易失性存储器中分配的块。
Description
本申请要求于2005年12月27日在韩国知识产权局提交的第10-2005-0130822号韩国专利申请的优先权,该申请完全公开于此以资参考。
技术领域
根据本发明的设备和方法涉及使用非易失性存储器作为高速缓存及其运行方法,更具体地讲,涉及一种使用非易失性存储器作为高速缓存的存储设备及其运行方法,其中,使用非易失性存储器作为高速缓存以即使断电也能保存数据。
背景技术
如图1所示,一般的存储设备10包括主机11、数据缓冲器(高速缓存)12和主存储介质13。主机11根据用户指令将数据发送到主存储介质13和从主存储介质13接收数据。通常,使用比主存储介质13小且快的存储器作为数据缓冲器12,以缓冲主机11和主存储介质13之间的速度差别并增加存储设备的访问效率。数据没有被直接记录在处理速度慢的主存储介质13上,数据而是被记录在处理速度快的数据缓冲器12上。因此,可提高记录速度。此外,主存储介质13中的一些数据被预先移动到数据缓冲器12中,以提高读取速度。
即,将从主机11发送的数据存储在数据缓冲器12中,直到所述数据被记录在主存储介质13上,而在从存储介质13发送的数据被发送到主机11之前,所述数据被存储在数据缓冲器12中。在存储设备10中,非易失性存储器通常被用作数据缓冲器12。因此,当供给所述存储设备的电被中断时,存在于数据缓冲器12中的所有数据消失。如果增加数据缓冲器来提高访问效率,则由于断电而导致数据丢失的量也增加。此外,由于总向主存储介质13供电以减小数据丢失,所以难以降低电耗。
为了解决上面提到的问题,近来,在存储设备10中使用非易失性存储器作为高速缓存。因此,在主机11从非易失性存储器读取数据以及将数据写到非易失性存储器上的同时,供给主存储介质13的电被中断,从而可降低电耗。
然而,当使用非易失性存储器作为存储设备10的高速缓存时,需要有效地管理非易失性存储器的固定区域和非固定区域中的数据,以当突然断电时安全地保护数据,其中,预定数据总位于所述固定区域,在非固定区域中,数据被频繁地记录和擦除。此外,需要检索块,以减小向主存储介质13供电的时间并考虑非易失性存储器中的每个物理块的磨损程度来增加非易失性存储器的寿命。
第2003-256289号日本公开专利公布公开了能够分配地址的闪存系统。所述闪存系统具有在其中分区的块,并根据周期序列来周期性地分配和删除块(在物理扇区地址中的最低和最高地址处执行块分配和删除),从而保持其磨损程度的一致性。然而,上面提到的公布没有公开这样的方法:有效地管理固定和非固定区域中的数据,当突然断电时保护数据,检索块,并通过调整存储器系统的磨损程度来延长闪存系统的寿命。
发明内容
本发明提供了一种使用非易失性存储器作为高速缓存的存储设备及其运行方法,其中,所述存储设备和方法可将用作高速缓存的非易失性存储器中存储的数据分开并对其进行管理,并且当电源被突然断开时安全地恢复数据。
本发明还提供了一种使用非易失性存储器作为高速缓存的存储设备及其运行方法,所述存储设备及其运行方法可分配用作高速缓存的非易失性存储器中的块,检索所述块,并考虑非易失性存储器的磨损程度来增加非易失性存储器的寿命。
根据本发明的一方面,提供了一种使用非易失性存储器作为高速缓存的存储设备,所述设备包括:主存储介质;非易失性存储器,用作主存储介质的高速缓存,所述非易失性存储器包括根据数据是否被固定而划分的固定区域和非固定区域;和块管理单元,管理非易失性存储器中分配的块。
块管理单元将非易失性存储器的固定区域和非固定区域转换成圆形构造并对其进行管理,在所述圆形构造中,设置两点以相互区分固定区域和非固定区域。这里,所述两点包括:第一点,在该点,在固定区域和非固定区域中开始块分配;和第二点,在该点,块分配结束。
根据本发明的另一方面,提供了一种运行存储设备的方法,所述方法包括:根据数据是否被固定来将存储设备中的用作高速缓存的非易失性存储器划分成固定区域和非固定区域;和管理分配给固定区域和非固定区域的块。
附图说明
从下面结合附图对本发明示例性实施例的详细描述,本发明的以上和其他方面将更加清楚,其中:
图1是示出现有技术的存储设备的方框图;
图2是示出根据本发明示例性实施例的使用非易失性存储器作为高速缓存的存储设备的方框图;
图3是示出根据本发明示例性实施例的转换成圆形构造的非易失性存储器的区域的示图;
图4是示出根据本发明示例性实施例的以旋转块形状分配的非固定区域的示图;
图5A是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索固定区域中的块时,将第一A点移动到非固定区域;
图5B是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索固定区域中的块时,将激活数据从第一A点移动到第一B点;
图5C是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索固定区域中的块时,以块将激活数据顺序地移动到从第一B点开始到第一B结束点的点;
图5D是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索固定区域中的块时,将第一A点移动到第一B点,将第一A结束点移动到第一B结束点;
图6A是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索固定区域中的块时,将第二A开始点移动到固定区域中的第一B点;
图6B是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当检索非固定区域中的块时,从第二B开始点顺序地移动激活数据;
图7是示出根据本发明示例性实施例的非易失性存储器的区域的示图,其中,当断电被恢复时指示扫描方向;
图8是示出根据本发明示例性实施例的分配非易失性存储器的块的方法的流程图;
图9是示出根据本发明示例性实施例的关于非易失性存储器的固定区域检索块的方法的流程图;和
图10是示出根据本发明示例性实施例的关于非易失性存储器的非固定区域检索块的方法的流程图。
具体实施方式
现在将详细描述本发明的示例性实施例,其示例在附图中示出。
从以下结合附图描述的本发明的示例性实施例,本发明的多方面和实现本发明的方式将变得清楚。然而,本发明的范围将不限于这些示例性实施例,本发明可以以各种形式被实现。下面描述的示例性实施例仅为了完全公开本发明并帮助本领域的技术人员完全理解本发明。仅由权利要求的范围来限定本发明。在这个说明书中,使用相同的标号指示相同的部件。
以下,将参照附图中的方框图和流程图来描述根据本发明示例性实施例的使用非易失性存储器作为高速缓存的存储设备及其运行方法。应该理解,流程图的每一个方框和流程图的组合可由计算机程序指令实现,这些计算机程序指令可在通用计算机、专用计算机、或者其他可编程数据处理设备的处理器中被提供。由计算机或者其他可编程数据处理设备的处理器执行的指令创建用于实现在流程方框图中指定的功能的装置。这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式工作的计算机可用或计算机可读存储器中。存储在计算机可用或计算机可读存储器中的指令可生产包括执行在流程图方框中指定的功能的指令装置的产品。计算机程序指令也可被载入计算机或其他可编程数据处理设备以使得一系列操作步骤在计算机或其他可编程设备上被执行。在计算机或其他可编程设备上执行的计算机程序指令产生基于计算机的处理,从而提供用于执行在流程图的方框中指定的功能的步骤。
流程图中的每个方框可表示模块、代码段或代码的一部分,其包括一个或多个用于实现特定逻辑功能的可执行指令。还应该注意,在一些可选择的实施方式中,在方框中提到的功能可以以不同于所示的顺序出现。例如,根据所涉及的功能,连续显示的两个方框实际上可能基本上同时被执行,或者所述方框有时可能以相反的顺序被执行。
图2是示出根据本发明示例性实施例的使用非易失性存储器作为高速缓存的存储设备的方框图。
如图2所示,根据本发明示例性实施例的使用非易失性存储器作为高速缓存的存储设备100包括主存储介质110、非易失性存储器120、块管理单元130、地址转换表存储单元140和激活数据列表存储单元150。
主存储介质110表示诸如硬盘驱动器的大容量的存储介质,非易失性存储器120表示用作主存储介质110的闪存。
在本发明示例性实施例中,闪存将作为非易失性存储器120的示例被描述。此外,将描述具有固定区域和非固定区域的非易失性存储器120,在固定区域中,数据被永久存储,在非固定区域中,数据被临时存储。这里,如果必要,非易失性存储器120的固定区域和非固定区域的容量可根据使用该非易失性存储器120的情况而改变。
块管理单元130包括块分配单元131、块检索单元132、磨损程度控制单元133和存储器恢复单元134。
块分配单元131将块分配给固定和非固定区域。块分配单元131可将非易失性存储器120的区域转换成圆形构造,然后将块分配给所述区域。具体地讲,块分配单元131将非易失性存储器120的区域转换成如图3所示的圆形构造,并设置第一A点和第二A点,以在转换的圆形构造中相互区分固定区域和非固定区域。此时,第一A点表示每个区域开始的点,第二A点表示每个区域结束的点。块分配单元131可从第一A点顺序地分配块。因此,应该理解,基于第一A点以相反方向将块顺序地分配给固定区域和非固定区域。
此外,块分配单元131可控制块被最终分配给区域的位置。在本发明示例性实施例中,块被最终分配给固定区域和非固定区域的位置分别被称为第一A结束点和第二A结束点。此外,在固定区域和非固定区域中指示激活数据所位于的第一块的位置的指针分别被称为第一A开始点和第二A开始点。换句话讲,由于激活数据可能位于每个区域中的从特定点而非第一A点开始的位置,所以使用第一A开始点和第二A开始点以指示激活数据所位于的第一块的位置。
每当定期断电时,块分配单元131将第一A点、第二A点、第一A开始点、第二A开始点、第一A结束点和第二A结束点存储在非易失性存储器120中的期望区域中。自此以后,即使突然断电,块分配单元131也可恢复这些点。在本发明中,将非易失性存储器作为示例来描述,在所述非易失性存储器中,第一A点、第二A点、第一A开始点、第二A开始点、第一A结束点和第二A结束点被存储在特定块中。
考虑到与固定区域中的块的磨损程度相反的非固定区域中的块的高磨损程度,块分配单元131可以以旋转方式来将块分配给非固定区域。具体地讲,如图4所示,如果在非固定区域中第二A结束点与第二A点相邻或者一致,则块分配单元131将第二A结束点移动到第一A点,从而以旋转的方式分配块。此时,当激活数据位于非固定区域中的第一A点的块上时,块分配单元131将相应块的数据移动到主存储介质110,然后分配块。
在非易失性存储器中,由于在更新数据期间不对现有数据进行校正就将新数据添加到存储器中,所以块检索单元132将现有数据认为是未激活数据,并检索所述未激活数据所位于的块,以使用该块来分配新的块。
可对固定区域和非固定区域不同地执行块检索方法。首先,将详细描述与固定区域相关的示例性的块检索方法。
由于很少将位于固定区域中的数据移动到主存储介质110,所以必须检索与固定区域有关的块。
具体地讲,块检索单元132从地址转换表存储单元140创建激活数据列表,以检索与固定区域有关的块,并将创建的激活数据列表存储在激活数据列表存储单元150中。此时,如图5A所示,仅在位于固定区域中的第一A点的块中存在激活数据的情况下,块检索单元132才将第一A点移动期望多的块到非固定区域中的第一B点,并同时将非固定区域中的数据移动到主存储介质110。然后,如图5B所示,块检索单元132将位于第一A点的激活数据移动到第一B点的块。接着,块检索单元132基于激活数据列表顺序地移动其他激活数据。在移动激活数据的同时,块检索单元132忽略未激活数据。当激活数据的移动被完成时,如图5C所示,块检索单元132将最终移动的激活数据所位于的块设置为第一B结束点。此外,块检索单元132可将第一B点和第一B结束点分别设置为第一A点和第一A结束点,然后分配块。
应该理解,在本发明的示例性实施例中,第一A点和第一A结束点是管理数据的实际点,第一B点和第一B结束点是临时用于移动激活数据的点。另外,在本发明示例性实施例中,如图5D所示,当将第一A点移动到第一B点时,也可将第二A点移动到非固定区域。
如上所述,由块检索单元132将第一A点移动到第一B点是为了平衡固定区域的磨损和非固定区域的磨损。
接着,检索激活数据所位于的非固定区域的块,并重新进行分配,以减小将数据移动到主存储介质110的频率。当空块的数量小于特定数量时,或者激活数据所占据的块的数量大于特定数量时,可通过使用检索固定区域的块的方法来检索非固定区域的块。
具体地讲,在检索非固定区域的块的过程中,与上面有关检索固定区域的块所描述的那样,块检索单元132从地址转换表存储单元140创建激活数据列表,以检索非固定区域中的块,并将激活数据列表存储在激活数据列表存储单元150中。
此时,如图6A所示,仅在位于第二A开始点的块中存在激活数据的情况下,块检索单元132才将第二A开始点移动期望多的块以设置第一B点。根据本发明示例性实施例,上面提到的块分配单元131预先分配N个空块,然后另外分配块。因此,与第二A开始点相比,还可将第二B开始点移动到固定区域。此外,将根据本发明示例性实施例的与第二A开始点相比将第二B开始点移动一块到固定区域的情况作为示例进行描述。如果第一A点与第二A开始点一致,则将位于N块中的数据移动到主存储介质110。
此时,如图6B所示,块检索单元132根据激活数据列表的顺序将数据顺序地移动到从第二B开始点开始的点,并设置用于指示最终分配的块的位置的第二B结束点。然后,块检索单元132将第二B开始点和第二B结束点分别改变为第二A开始点和第二A结束点。此时,从激活数据列表删除关于激活数据的信息。
这里,应该理解,尽管从非固定区域检索块,但是实际上使用了第二A开始点和第二A结束点,并临时使用第二B开始点和第二B结束点来移动激活数据。
磨损程度控制单元133具有关于每块的磨损程度的信息,以当块检索单元132检索块时平衡块的磨损程度,块检索单元132考虑在磨损程度控制单元133中存储的每块的磨损程度来检索块。换句话讲,每当检索到块时,块检索单元132基于磨损程度控制单元133的信息将固定区域的第一A开始点移动期望数目的块到非固定区域,以执行块检索。因此,可使得非固定区域的磨损程度等于固定区域的磨损程度。
当突然断电时,存储器恢复单元134恢复非易失性存储器。使用每块的备用区域上记录的逻辑块地址(LBA)和第一A点、第二A点、第一A开始点、第一A结束点、第二A开始点、第二A结束点来恢复非易失性存储器。第一A点和第二A点被改变并被存储在非易失性存储器的特定块中,而每当块被分配时,第一A结束点和第二A结束点就将恢复标记记录在下一块中。此时,存储器恢复单元134从第一A点开始扫描固定区域和非固定区域,直到找到恢复标记。在相同LBA的情况下,后记录的数据作为激活数据被提取。当在非易失性存储器120中对块进行校正时,不对现有数据进行校正,而是另外将新的块分配给固定区域和非固定区域。在相同LBA的情况下,后写的数据是更新的数据。然后,存储器恢复单元134基于提取的数据来恢复地址转换表。
如图7所示,存储器恢复单元134将恢复标记记录在位于紧接着非固定区域中的第二A结束点的块上。此时,如果突然断电,则存储器恢复单元134从第一A点扫描固定区域和非固定区域,直到找到恢复标记,并再次通过在上面提到的备用区域上记录的LBA创建地址转换表。图7示出具有相同LBA的三个块211、212和213。存储器恢复单元134提取最后记录在块213上的LBA作为激活数据的地址。
图8是示出根据本发明示例性实施例的分配非易失性存储器的块的方法的流程图。
如图8所示,在根据本发明示例性实施例的分配非易失性存储器的块的方法中,首先,块分配单元131将非易失性存储器120的区域转换成圆形构造,并设置第一A点和第二A点以将非易失性存储器120的区域划分成永久记录数据的固定区域和临时记录数据的非固定区域(S110)。如果必要,由第一A点和第二A点划分的固定区域和非固定区域的容量可根据使用情况而改变。
然后,块分配单元131基于第一A点将块顺序地分配给固定区域和非固定区域(S120)。
块分配单元131确定是否完成了将块分配给固定区域和非固定区域(S130)。确定的结果是,如果完成了块分配,则块分配单元131设置用于指示最终分配的块的位置的点(S140)。换句话讲,如图3所示,块分配单元131设置用于指示最后分配的块的位置的第一A结束点和第二A结束点。此外,当突然断电时,块分配单元131将第一A点、第二A点、第一A结束点和第二A结束点等存储在非易失性存储器120的期望区域中。
图9是示出根据本发明示例性实施例的关于非易失性存储器的固定区域检索块的方法的流程图。从图5A到图5D的块检索方法中,图9中的检索固定区域的块的方法是清楚的。
如图9所示,在根据本发明示例性实施例的关于非易失性存储器的固定区域检索块的方法中,首先,块检索单元132从地址转换表存储单元140中存储的地址转换表来创建激活数据列表,然后将激活数据列表存储在激活数据列表存储单元150中(S210)。
然后,块检索单元132将固定区域和非固定区域相互区分。如果激活数据存在于开始分配块的第一A点的块中(S220),则块检索单元132基于第一A点将非固定区域中的预定数量的块移动到主存储介质110(S230)。
在将非固定区域的数据移动到主存储介质110之后,块检索单元132将第一A点移动到非固定区域中的第一B点(S240)。此外,如果在步骤S220在第一A点所位于的块中不存在激活数据,则块检索单元132使得第一A点与非固定区域中的第一B点一致。
块检索单元132根据激活数据列表的顺序将激活数据顺序地移动到从第一B点开始的点(S250),并从激活数据列表删除关于已移动的激活数据的信息(S260)。块检索单元132重复执行移动激活数据和从激活数据列表删除相应的数据的处理,直到激活数据为空(S270)。
当激活数据列表为空时,块检索单元132将最终移动的块设置为第一B结束点(S280),并最后将第一B点和第一B结束点分别改变为第一A点和第一A结束点(S290)。
图10是示出根据本发明示例性实施例的关于非易失性存储器的非固定区域检索块的方法的流程图。从图6A到图6D的块检索方法中,图10中的检索固定区域的块的方法是清楚的。
如图10所示,在根据本发明示例性实施例的关于非易失性存储器的固定区域检索块的方法中,首先,块检索单元132从地址转换表存储单元140中存储的地址转换表来创建激活数据列表,然后将激活数据列表存储在激活数据列表存储单元150中(S310)。
然后,块检索单元132确定包括激活数据的块是否存在于第二A开始点(S320)。
如果激活数据存在于第二A开始点,则块检索单元132确定第一A点与第二A开始点是否一致(S330)。
如果第一A点与第二A开始点不一致,则块检索单元132将第二A开始点移动期望数量的块到固定区域中的第二B开始点(S340)。然后,块检索单元132根据激活数据列表的顺序将激活数据顺序地移动到从第二B开始点开始的点(S350),并从激活数据列表删除关于已移动的激活数据的信息(S360)。块检索单元132重复执行移动激活数据和从激活数据列表删除相应数据的处理,直到激活数据列表为空(S370)。
当完成了激活数据的移动时,块检索单元132将最终移动的块的位置设置为第二B结束点(S380),并最终将第二B开始点和第二B结束点分别设置为第二A开始点和第二A结束点(S390)。
词“单元”表示软件或诸如现场可编程门阵列(FPGA)的结构硬件部件或执行特定功能的专用集成电路(ASIC)。然而,单元并不限于软件或硬件。单元可以在能够寻址的存储介质中排列,或者被构造实现一个或多个处理器。因此,作为示例,单元包括:诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和参数。在组件和单元中提供的功能可被组合为更少的组件和单元,或者被提供给另外的组件和单元。
如上所述的根据本发明示例性实施例的使用非易失性存储器作为高速缓存的存储设备及其运行方法具有如下所述的一个或多个方面:
可将在包括固定区域和非固定区域的非易失性存储器中存储的数据分开并对其进行管理,从而有效地管理用作高速缓存的非易失性存储器。
此外,考虑到固定区域和非固定区域中的块的磨损程度和数量,可增加非易失性存储器的寿命。
尽管为了示出的目的描述了本发明的示例性实施例,但是本领域的技术人员应该理解,在不脱离权利要求公开的本发明的范围和精神的情况下,可进行各种修改、添加和替换。
Claims (36)
1、一种存储设备,包括:
主存储介质;
非易失性存储器,用作主存储介质的高速缓存,所述非易失性存储器包括根据数据是否被固定而划分的固定区域和非固定区域;和
块管理单元,管理非易失性存储器中分配的块。
2、如权利要求1所述的存储设备,其中,块管理单元将非易失性存储器的固定区域和非固定区域转换成圆形构造并对其进行管理,在所述圆形构造中,设置两点以相互区分固定区域和非固定区域。
3、如权利要求2所述的存储设备,其中,所述两点包括:第一点,在该点,在固定区域和非固定区域中开始块分配;和第二点,在该点,块分配结束。
4、如权利要求3所述的存储设备,其中,第一点与指示激活数据首先位于的块的点或者指示固定区域和非固定区域在圆形构造上以相反方向开始的点一致。
5、如权利要求3所述的存储设备,其中,块管理单元包括:
块分配单元,将块分配给固定区域和非固定区域;
块检索单元,检索分配的块;
控制单元,控制非易失性存储器中块的磨损程度;和
存储器恢复单元,当断电时恢复非易失性存储器。
6、如权利要求5所述的存储设备,其中,块分配单元基于第一点以圆形构造的相反方向顺序地将块分配给固定区域和非固定区域。
7、如权利要求6所述的存储设备,其中,块分配单元将块分配给非固定区域,以便块在非固定区域中围着所述两点循环。
8、如权利要求6所述的存储设备,其中,块分配单元设置第二点,以便第二点指示当分配块时最后分配的块的位置。
9、如权利要求5所述的存储设备,其中,块检索单元将在固定区域中开始块分配的第一点移动几块到非固定区域,并当从固定区域检索块时顺序移动数据。
10、如权利要求9所述的存储设备,其中,块检索单元移动第二点,以便第二点指示最后分配到下述位置的块的位置,即当检索块时将块最终移动到的位置。
11、如权利要求10所述的存储设备,其中,仅当位于在固定区域中开始块分配的第一点的块中存在激活数据时,块检索单元移动在固定区域中开始块分配的第一点。
12、如权利要求5所述的存储设备,其中,块检索单元将第一点移动几块到固定区域,并当从非固定区域检索块时顺序移动数据,在所述第一点处,在非固定区域中开始块分配。
13、如权利要求12所述的存储设备,其中,块检索单元移动第二点,以便第二点指示最后分配到下述位置的块的位置,即当检索块时将块最终移动到的位置。
14、如权利要求13所述的存储设备,其中,仅当位于在非固定区域中开始块分配的第一点的块中存在激活数据时,块检索单元移动在非固定区域中开始块分配的第一点。
15、如权利要求5所述的存储设备,其中,存储器恢复单元在紧接着第二点记录恢复标记,所述第二点是在固定区域和非固定区域中最后将块分配到的点。
16、如权利要求15所述的存储设备,其中,存储器恢复单元从第一点顺序扫描固定区域和非固定区域,直到找到恢复标记。
17、如权利要求16所述的存储设备,其中,存储器恢复单元通过扫描产生期望的块,以通过与所述块相应的逻辑块地址来创建地址转换表。
18、如权利要求17所述的存储设备,其中,如果存在具有相同逻辑块地址的块,则存储器恢复单元确定在具有相同逻辑块地址的块中最后使用的块中的数据是激活数据。
19、一种运行存储设备的方法,所述方法包括:
根据数据是否被固定来将存储设备中的用作高速缓存的非易失性存储器划分成固定区域和非固定区域;和
管理分配给固定区域和非固定区域的块。
20、如权利要求19所述的方法,其中,管理块的步骤包括:
将非易失性存储器的固定区域和非固定区域转换成圆形构造;和
在所述圆形构造中设置两点以相互区分固定区域和非固定区域。
21、如权利要求20所述的方法,其中,所述两点包括:第一点,在该点,在固定区域和非固定区域中开始块分配;和第二点,在该点,块分配结束。
22、如权利要求21所述的方法,其中,第一点与指示激活数据首先位于的块的点或者指示固定区域和非固定区域在圆形构造上以相反方向开始的点一致。
23、如权利要求19所述的方法,其中,管理块的步骤包括:
将块分配给固定区域和非固定区域;
检索分配的块;
控制非易失性存储器中块的磨损程度;和
当断电时恢复非易失性存储器。
24、如权利要求23所述的方法,其中,分配块的步骤包括:基于第一点在圆形构造上以相反方向顺序地将块分配给固定区域和非固定区域。
25、如权利要求24所述的方法,其中,分配块的步骤包括:将块分配给非固定区域,以便块在非固定区域中围着所述两点循环。
26、如权利要求25所述的方法,其中,分配块的步骤包括:设置第二点,以便第二点指示当分配块时最后分配的块的位置。
27、如权利要求23所述的方法,其中,检索分配的块的步骤包括:将在固定区域中开始块分配的第一点移动几块到非固定区域,并当从固定区域检索块时顺序移动数据。
28、如权利要求27所述的方法,其中,检索分配的块的步骤包括:移动第二点,以便第二点指示最后分配到下述位置的块的位置,即当检索块时将块最终移动到的位置。
29、如权利要求28所述的方法,其中,仅当位于在固定区域中开始块分配的第一点的块中存在激活数据时,才移动第一点。
30、如权利要求28所述的方法,其中,检索分配的块的步骤包括:将第一点移动几块到固定区域,并当从非固定区域检索块时顺序移动数据,在所述第一点处,在非固定区域中开始块分配。
31、如权利要求30所述的方法,其中,检索分配的块的步骤包括:移动第二点,以便第二点指示最后分配到下述位置的块的位置,即当检索块时将块最终移动到的位置。
32、如权利要求31所述的方法,其中,仅当位于在固定区域中开始块分配的第一点的块中存在激活数据时,才移动第一点。
33、如权利要求23所述的方法,其中,恢复非易失性存储器的步骤包括:在紧接着在固定区域和非固定区域中块最后被分配到的第二点记录恢复标记。
34、如权利要求33所述的方法,其中,恢复非易失性存储器的步骤包括:从第一点顺序扫描固定区域和非固定区域,直到找到恢复标记。
35、如权利要求34所述的方法,其中,恢复非易失性存储器的步骤包括:通过扫描产生期望的块,以通过与所述块相应的逻辑块地址来创建地址转换表。
36、如权利要求35所述的方法,其中,如果存在具有相同逻辑块地址的块,则恢复非易失性存储器的步骤包括:确定在具有相同逻辑块地址的块中最后使用的块中的数据是激活数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050130822 | 2005-12-27 | ||
KR1020050130822A KR100755702B1 (ko) | 2005-12-27 | 2005-12-27 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991791A true CN1991791A (zh) | 2007-07-04 |
CN100552646C CN100552646C (zh) | 2009-10-21 |
Family
ID=37908265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101699663A Active CN100552646C (zh) | 2005-12-27 | 2006-12-25 | 使用非易失性存储器作为高速缓存的存储设备及运行方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7716422B2 (zh) |
EP (1) | EP1804169A1 (zh) |
JP (1) | JP4531742B2 (zh) |
KR (1) | KR100755702B1 (zh) |
CN (1) | CN100552646C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693184A (zh) * | 2011-01-03 | 2012-09-26 | 苹果公司 | 处理具有非易失性存储器的系统的动态和静态数据 |
CN102841761A (zh) * | 2007-08-09 | 2012-12-26 | 株式会社日立制作所 | 存储系统 |
CN103186436A (zh) * | 2013-03-28 | 2013-07-03 | 深圳市显控自动化技术有限公司 | 一种android系统掉电保护方法及装置 |
CN105405465A (zh) * | 2015-12-29 | 2016-03-16 | 中北大学 | 数据存储及处理电路 |
CN106557143A (zh) * | 2015-09-28 | 2017-04-05 | 伊姆西公司 | 用于数据存储设备的装置和方法 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100755700B1 (ko) * | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법 |
US8051249B2 (en) * | 2006-05-29 | 2011-11-01 | Sandisk Il Ltd. | Method for preloading data to improve data-retrieval times |
KR101406493B1 (ko) * | 2007-07-19 | 2014-06-12 | 엘지전자 주식회사 | 플래쉬 메모리를 구비한 컴퓨터 및 플래쉬 메모리의구동방법 |
WO2009100149A1 (en) * | 2008-02-10 | 2009-08-13 | Rambus, Inc. | Segmentation of flash memory for partial volatile storage |
KR101477047B1 (ko) | 2008-02-29 | 2014-12-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 블록 병합 방법 |
JP4558054B2 (ja) * | 2008-03-11 | 2010-10-06 | 株式会社東芝 | メモリシステム |
US8171205B2 (en) * | 2008-05-05 | 2012-05-01 | Intel Corporation | Wrap-around sequence numbers for recovering from power-fall in non-volatile memory |
KR100950937B1 (ko) | 2009-06-30 | 2010-04-08 | 주식회사 셀픽 | 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템 |
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 | 삼성전자주식회사 | 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법 |
EP2577470A4 (en) * | 2010-06-04 | 2013-12-25 | Sandisk Entpr Ip Llc | CACHE ADMINISTRATION AND ACCELERATION IN STORAGE MEDIA |
US8706983B2 (en) * | 2010-06-30 | 2014-04-22 | Sandisk Technologies Inc. | Garbage collection of memory blocks using volatile memory |
US8949506B2 (en) | 2010-07-30 | 2015-02-03 | Apple Inc. | Initiating wear leveling for a non-volatile memory |
KR101824295B1 (ko) | 2011-08-12 | 2018-01-31 | 샌디스크 테크놀로지스 엘엘씨 | 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리 |
US9158672B1 (en) | 2011-10-17 | 2015-10-13 | Rambus Inc. | Dynamic deterministic address translation for shuffled memory spaces |
US9697115B2 (en) | 2011-10-26 | 2017-07-04 | Hewlett-Packard Development Company, L.P. | Segmented caches |
KR101373613B1 (ko) * | 2012-01-26 | 2014-03-13 | 전자부품연구원 | 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치 |
KR101353968B1 (ko) * | 2012-01-26 | 2014-01-23 | 전자부품연구원 | 환형 구조의 비휘발성 메모리 캐쉬에 기록된 데이터를 교체 및 가비지 콜렉션하기 위한 데이터 처리방법 |
US9348743B2 (en) * | 2013-02-21 | 2016-05-24 | Qualcomm Incorporated | Inter-set wear-leveling for caches with limited write endurance |
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 |
CN105988950B (zh) * | 2015-02-03 | 2019-05-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
US10515016B2 (en) | 2015-12-03 | 2019-12-24 | Hitachi, Ltd. | Method and apparatus for caching in software-defined storage systems |
GB2559119B (en) * | 2017-01-20 | 2020-12-30 | Advanced Risc Mach Ltd | Apparatus and methods to prolong lifetime of memories |
US11016665B2 (en) | 2018-01-23 | 2021-05-25 | Seagate Technology Llc | Event-based dynamic memory allocation in a data storage device |
CN110688327B (zh) * | 2019-09-30 | 2020-12-01 | 百度在线网络技术(北京)有限公司 | 显存管理方法、装置、电子设备和计算机可读存储介质 |
US11334490B2 (en) * | 2020-01-07 | 2022-05-17 | Samsung Electronics Co., Ltd. | Multi-value mapping for object store |
Family Cites Families (36)
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 | ハードデイスクエミユレータ及びその固定キヤツシユエリア割付方法 |
JP2808358B2 (ja) * | 1990-10-17 | 1998-10-08 | 大日本印刷株式会社 | Icカード |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
JPH06236241A (ja) * | 1993-02-09 | 1994-08-23 | Sharp Corp | フラッシュメモリを用いたハードディスク装置 |
JPH06282702A (ja) * | 1993-03-24 | 1994-10-07 | Dainippon Printing Co Ltd | Cpuを内蔵した情報記録媒体 |
JPH07160590A (ja) * | 1993-12-07 | 1995-06-23 | Sansei Denshi Japan Kk | 記憶データアクセス方法とその装置 |
JPH0877074A (ja) | 1994-09-09 | 1996-03-22 | Hitachi Ltd | フラッシュメモリを用いた記憶装置システム |
JPH09231110A (ja) * | 1995-12-22 | 1997-09-05 | Dainippon Printing Co Ltd | Icカード |
JPH10154101A (ja) | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JPH1153261A (ja) | 1997-08-07 | 1999-02-26 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP4160139B2 (ja) * | 1997-12-12 | 2008-10-01 | オリンパス株式会社 | 情報記録再生装置 |
US6035347A (en) * | 1997-12-19 | 2000-03-07 | International Business Machines Corporation | Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer |
JPH11249968A (ja) | 1998-03-05 | 1999-09-17 | Sanyo Electric Co Ltd | ファイル記録方法及びファイルシステム |
JP2000227866A (ja) | 1998-12-04 | 2000-08-15 | Olympus Optical Co Ltd | 情報記録再生装置 |
JP3797649B2 (ja) * | 1999-05-31 | 2006-07-19 | シャープ株式会社 | 不揮発性半導体記憶装置 |
US6725342B1 (en) * | 2000-09-26 | 2004-04-20 | Intel Corporation | Non-volatile mass storage cache coherency apparatus |
JP2002175211A (ja) | 2000-12-07 | 2002-06-21 | Sharp Corp | データ管理システムおよびデータ管理方法 |
US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
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 |
US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US6745283B1 (en) * | 2002-04-16 | 2004-06-01 | Western Digital Technologies, Inc. | Disk drive for dynamically allocating memory accessed concurrently by a host interface and a disk interface to facilitate large host commands |
JP2004171411A (ja) * | 2002-11-21 | 2004-06-17 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びバッファメモリの管理方法 |
RU2319227C2 (ru) | 2002-12-24 | 2008-03-10 | Эл Джи Электроникс Инк. | Способ запоминания с двойным протоколированием и носитель данных для него |
KR101107288B1 (ko) * | 2003-12-17 | 2012-01-20 | 엘지전자 주식회사 | 다중 분할된 플래시 메모리 장치 및 분할된 메모리에데이터를 저장하기 위한 이중 저널링 저장방법 |
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 | 삼성전자주식회사 | 플래쉬 메모리를 파일 시스템으로 라이트하기 위한캐쉬처리 방법 |
US7136973B2 (en) * | 2004-02-04 | 2006-11-14 | Sandisk Corporation | Dual media storage device |
US7127549B2 (en) * | 2004-02-04 | 2006-10-24 | Sandisk Corporation | Disk acceleration using first and second storage devices |
JPWO2005103903A1 (ja) * | 2004-04-20 | 2007-08-30 | 松下電器産業株式会社 | 不揮発性記憶システム |
US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
JP4439385B2 (ja) * | 2004-12-03 | 2010-03-24 | 株式会社ソニー・コンピュータエンタテインメント | バッファリング装置およびバッファリング方法 |
US20070100852A1 (en) * | 2005-11-03 | 2007-05-03 | Jeffrey Wang | File system management for integrated NOR and NAND flash memory |
US7366842B1 (en) * | 2005-12-15 | 2008-04-29 | Nvidia Corporation | Creating permanent storage on the fly within existing buffers |
KR100755700B1 (ko) * | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법 |
-
2005
- 2005-12-27 KR KR1020050130822A patent/KR100755702B1/ko active IP Right Grant
-
2006
- 2006-11-20 US US11/601,820 patent/US7716422B2/en active Active
- 2006-12-20 JP JP2006342261A patent/JP4531742B2/ja active Active
- 2006-12-22 EP EP06127068A patent/EP1804169A1/en not_active Withdrawn
- 2006-12-25 CN CNB2006101699663A patent/CN100552646C/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841761A (zh) * | 2007-08-09 | 2012-12-26 | 株式会社日立制作所 | 存储系统 |
CN102841761B (zh) * | 2007-08-09 | 2015-12-02 | 株式会社日立制作所 | 存储系统 |
CN102693184A (zh) * | 2011-01-03 | 2012-09-26 | 苹果公司 | 处理具有非易失性存储器的系统的动态和静态数据 |
CN102693184B (zh) * | 2011-01-03 | 2015-06-03 | 苹果公司 | 处理具有非易失性存储器的系统的动态和静态数据 |
CN103186436A (zh) * | 2013-03-28 | 2013-07-03 | 深圳市显控自动化技术有限公司 | 一种android系统掉电保护方法及装置 |
CN103186436B (zh) * | 2013-03-28 | 2016-01-06 | 深圳市显控自动化技术有限公司 | 一种android系统掉电保护方法及装置 |
CN106557143A (zh) * | 2015-09-28 | 2017-04-05 | 伊姆西公司 | 用于数据存储设备的装置和方法 |
US10402104B2 (en) | 2015-09-28 | 2019-09-03 | EMC IP Holding Company LLC | Devices and methods for a data storage device |
CN106557143B (zh) * | 2015-09-28 | 2020-02-28 | 伊姆西Ip控股有限责任公司 | 用于数据存储设备的装置和方法 |
CN105405465A (zh) * | 2015-12-29 | 2016-03-16 | 中北大学 | 数据存储及处理电路 |
CN105405465B (zh) * | 2015-12-29 | 2019-07-23 | 中北大学 | 数据存储及处理电路 |
Also Published As
Publication number | Publication date |
---|---|
EP1804169A1 (en) | 2007-07-04 |
CN100552646C (zh) | 2009-10-21 |
JP2007179546A (ja) | 2007-07-12 |
JP4531742B2 (ja) | 2010-08-25 |
US20070150647A1 (en) | 2007-06-28 |
KR100755702B1 (ko) | 2007-09-05 |
US7716422B2 (en) | 2010-05-11 |
KR20070068807A (ko) | 2007-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1991791A (zh) | 使用非易失性存储器作为高速缓存的存储设备及运行方法 | |
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
US8537613B2 (en) | Multi-layer memory system | |
KR100772863B1 (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
CN1991790A (zh) | 使用非易失性存储器作为高速缓存器的存储设备及其方法 | |
CN101075211A (zh) | 基于sector访问的flash存储器的存储管理 | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
CN1147648A (zh) | 数据存储装置及存储方法 | |
CN1728114A (zh) | 使用页信息的页替换方法 | |
US20130227198A1 (en) | Flash memory device and electronic device employing thereof | |
CN1441440A (zh) | 在闪存设备中获得均匀的磨损调整的系统和方法 | |
CN1311366C (zh) | 快闪存储器的平行双轨使用方法 | |
CN101038532A (zh) | 数据存储装置及其方法 | |
TW201007451A (en) | Block management method for flash memory and storage system and controller using the same | |
CN1719422A (zh) | 一种存储器文件数据虚拟存取方法 | |
CN1637724A (zh) | 用于闪速存储器的数据管理装置和方法 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN1538456A (zh) | 闪存存取装置及方法 | |
JP2004272324A (ja) | ディスクアレイ装置 | |
CN1447242A (zh) | 可适用于快闪存储卡的控制装置及其建构方法 | |
JP2011186553A (ja) | メモリ管理装置 | |
US20150205538A1 (en) | Storage apparatus and method for selecting storage area where data is written | |
CN1617110A (zh) | 磁盘阵列结构中进行回写的方法 | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
CN1163834C (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 |