CN100382052C - 使用页信息的页替换方法 - Google Patents
使用页信息的页替换方法 Download PDFInfo
- Publication number
- CN100382052C CN100382052C CNB2005100873155A CN200510087315A CN100382052C CN 100382052 C CN100382052 C CN 100382052C CN B2005100873155 A CNB2005100873155 A CN B2005100873155A CN 200510087315 A CN200510087315 A CN 200510087315A CN 100382052 C CN100382052 C CN 100382052C
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- tabulation
- listed
- cflru
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种页替换方法。该页替换方法包括以下步骤:(a)建立第一页列表,在该页列表中,主存储器中的多个页以它们已经被使用的顺序被列出;(b)建立第二页列表,在该页列表中,其图像被存储在存储介质中的主存储器中的页以它们已经被使用的顺序被列出;和(c)将从存储介质下载的数据以与相应页在第二页列表中被列出的顺序相反的顺序存储在包括在第二页列表中的页中。
Description
技术领域
本发明涉及一种在使用闪速存储器作为存储介质的系统中被执行的页替换方法,更具体地讲,涉及一种能将对闪速存储器执行的写操作的数目最小化,并能提高存储器的命中率的页替换方法。
背景技术
图1是示出使用闪速存储器150作为存储介质的传统系统100的示意性方框图。
参考图1,系统100包括CPU 110、主存储器120和闪速存储器150。操作系统130被加载在主存储器120的部分中。主存储器120的存储容量由包括在操作系统130中的存储器管理模块140管理。换句话说,存储器管理模块140管理主存储器120的已使用的页和空闲页。这里,页是在其中数据被一次写入存储器的单元。
存储器管理模块140分配将仍被用于存储在闪速存储器150中的预定数据的主存储器120的页,并从闪速存储器150读取该预定数据以将该预定数据从闪速存储器150发送到主存储器120。
然而,如果在主存储器120中没有空闲页,那么选择主存储器120的已经被使用的页中的一个,并且将从闪速存储器150读取的预定数据写入主存储器120的选择的页。一种将已使用过的存储器的页作为新页再使用的算法被称为页替换算法。同时,如果主存储器120的选择的页已经被修改,那么存储在主存储器120的选择的页中的数据被写入闪速存储器150,并且新数据从闪速存储器150中被提取。这表示对闪速存储器150执行了写操作。
然而,如果主存储器120的选择的页没有被修改,那么闪速存储器150还具有主存储器120的选择的页的图像。因此,不需要对闪速存储器150执行写操作,并且将主存储器120的选择的页移除。这里,主存储器120的选择的页的图像是相对概念。在存储在主存储器120的任意页中数据也被存储在闪速存储器150中的情况下,闪速存储器150被认为具有主存储器120的所述的任意页的图像。同样地,在存储在闪速存储器150的任意页中数据也被存储在主存储器120中的情况下,主存储器120被认为具有闪速存储器150的所述的任意页的图像。
有多种传统的页替换算法。
传统的页替换算法的例子包括:先进先出(FIFO)算法,用于替换最先被使用的页;最近最少使用(LRU)算法,用于替换最近最少被使用的页;最近最不常用(LFU)算法,用于替换经常最少被使用的页;和最近没有使用(NRU)算法,用于替换最近没有被使用的页。
图2是示出选择最近没有被读取或被写入的图1的主存储器120的页作为将被替换的页的LRU算法的示意图。LRU算法也可应用于高速缓冲存储器。
LRU算法是基于时间局部性原理,该时间局部性原理意思为长时间没有被访问的页近期不可能被访问。
在LRU算法中,管理主存储器120的多个页的列表以使主存储器120的页中最近最多被访问的一个在相应页列表的顶部。
参考图2,因为PAGEa(210)最近最多地被访问,所以它被置于页列表的头部。当PAGEd(240)被访问时,它被发送到该页列表的头部以使PAGEa(210)跟在它之后。在页列表的尾部的页,即PAGEe(250),被用作将被替换的页。
图3是示出NRU算法的示意图。
参考图3,在页列表中,多个页即页PAGEa到PAGEe(310到350)的位置被固定,并且PAGEa到PAGEe(310到350)的每一页具有由2位即参考位360和修改位370表示的页信息。
参考位360最初被设置为值‘0’,并且当使用相应页时,被转换为值‘ 1’。修改位370最初被设置为值‘0’,并且当修改相应页时,被转换为值‘1’。因为随着时间的过去相应页被参考的可能性变得越来越小,所以参考位360会被周期地设置为值‘0’。
指针380指向将被替换的页。当指针380顺序地从PAGEa(310)移动到PAGEb(320),从PAGEb(320)移动到PAGEc(330),从PAGEc(330)移动到PAGEd(340)和从PAGEd(340)移动到PAGEe(350)时,指针380检查页PAGEa(310)、PAGEb(320)、PAGEc(330)、PAGEd(340)和PAGEe(350)的每个的参考位360和修改位370,然后基于检查的结果选择PAGEa到PAGEe(310到350)中的一个作为将被替换的页。当指针380达到该页列表的尾部时,它移回该页列表的头部,然后再次执行上述操作。
这里,指针380根据一组规则来选择页PAGEa到PAGEe(310到350)中的一个作为将被替换的页。具体地讲,若有的话,指针380选择其参考位360和修改位370都被设置为值‘0’的页作为将被替换的页。如果在该页列表中没有具有参考位360和修改位370都被设置为值‘0’的页,那么指针380选择即便其参考位360被设置为值‘1’并其修改位370被设置为值‘0’的页作为将被替换的页。如果在页列表中没有具有参考位360被设置为值‘1’和修改位370被设置为值‘0’的页,那么指针380选择在页列表中其参考位360和修改位370都被设置为值‘1’的页作为将被替换的页。
如果页PAGEa到PAGEe(310到350)中的一个被选择作为将被替换的页已经被修改,那么对闪速存储器150执行写操作。然而,对闪速存储器150执行写操作所需的延迟时间通常大于对闪速存储器150执行读操作所需的延迟时间。因此,对闪速存储器150执行写操作的数目越高,延迟时间就越长。
通过减少对闪速存储器执行写操作的数目来减少关于闪速存储器150的操作的延迟时间是可能的。LRU算法选择位于页列表尾部的主存储器120的页作为将被替换的页,不管该页是否已经被修改。因此,当LRU算法被应用于图1的传统系统100时,因为对闪速存储器150频繁执行写操作,所以可使图1的传统系统100的性能恶化。
另外,NRU算法没有考虑关于主存储器120的未修改的页的存储器点击率。这里,存储器点击率表示图1所示的CPU 110通过访问主存储器120从主存储器120成功获得的有意义数据的次数。换句话说,主存储器120的其参考位360具有相同值并且其修改位370具有值‘0’的页,不管存储器点击率,在页替换方面具有相同的优先级。
因此,需要开发在保证存储器点击率的同时使对闪速存储器执行的写操作的数目最小化的页替换算法。
发明内容
本发明提供一种页替换算法,该算法可减少关于输入/输出数据到/从闪速存储器的延迟时间,并能通过使对闪速存储器执行的写操作的数目最小化来提高存储器点击率。
回顾下面的描述,上面所述的对象以及本发明的其它对象对本领域的技术人员而言将变得清楚。
根据本发明的一方面,提供了一种页替换方法,包括:(a)产生第一页列表,在该页列表中,主存储器中的多个页以它们已经被使用的顺序被列出;(b)产生第二页列表,在该页列表中,在主存储器中其图像被存储在存储介质中的一些页以它们已经被使用的页序被列出;和(c)将从存储介质下载的数据以与相应页在第二页列表中被列出的顺序相反的顺序存储在包括在第二页列表中的页中。
根据本发明的另一方面,提供一种页替换方法,包括:(a)产生第一页列表,在该页列表中,主存储器中的多个页以它们已经被使用的顺序被列出;(b)产生第二页列表,在该页列表中,在主存储器中其图像被存储在存储介质中的页以它们已经被使用的顺序被列出;(c)产生第三页列表,在该页列表中,在主存储器中其图像没有被存储在存储介质中的一些页以它们已经被使用的顺序被列出;和(d)如果第二页列表不为空,将从存储介质下载的数据以与相应页在第二页列表中被列出的顺序相反的顺序存储在包括在第二页列表中的页中;如果第二页列表为空,将从存储介质下载的数据以与相应页在第三页列表中被列出的顺序相反的顺序存储在包括在第三页列表中的页中。
根据本发明的另一方面,提供一种页替换方法,包括:(a)产生第一页列表,在该页列表中,主存储器中的多个页以它们已经被使用的顺序被列出;(b)产生第二页列表,在该页列表中,在主存储器中其图像没有被存储在存储介质中的一些页以它们已经被使用的顺序被列出;和(c)将从存储介质下载的数据以与相应页在第二页列表中被列出的顺序相反的顺序存储在包括在第二页列表中的页中。
附图说明
通过参考附图来详细描述本发明示例性实施例,本发明以上和其它方面将会变得更清楚其中:
图1是示出使用闪速存储器作为存储介质的传统系统的示意性方框图;
图2是示出最近最少使用(LRU)算法的示意图;
图3是示出最近不使用(NRU)算法的示意图;
图4是示出根据本发明示例性实施例的干净的第一LRU(CFLRU)算法的结构示意图;
图5是示出根据本发明示例性实施例的使用CFLRU算法的页替换方法的流程图;
图6是示出根据本发明示例性实施例的关于(CFLRU-D)算法的CFLRU-D的示意图;
图7是示出包括在图6的CFLRU-D中的页的页信息的示意图;和
图8是示出根据本发明示例性实施例的使用CFLRU-D列表的页替换方法的流程图。
具体实施方式
通过参考下面的示例性实施例的详细描述和附图,本发明的各方面和实现本发明的方法可以更容易地被理解。然而,本发明可以以多种不同的形式被实施,但不应被解释为限定于在此提出的实施例。另外,提供这些示例性实施例以使本公开将是彻底和完全的并将本发明的构思充分地传达给本领域的技术人员,并且本发明将仅由所附权利要求限定。在整个说明书中同样的标号表示同样的元件。
以下参考根据本发明示例性实施例的页替换方法的流程图来描述本发明。可以理解可通过计算机程序指令来实现该流程图的每一块和流程图中的块组合。这些计算机程序指令可被提供给通用计算机、专用计算机或其它可编程的数据处理设备的处理器以产生机器,以使经计算机或其它数据处理设备的处理器执行的指令创造用于实现在该流程图的一个块或多个块中特定功能的方法。
这些计算机程序指令还可被存储在计算机可用的或计算机可读的存储器中,该存储器可命令计算机或其它可编程的数据处理设备以特殊的方式运行,以使存储在计算机可用的或计算机可读的存储器中的指令产生包括实现在流程图的一个块或多个块中指定的功能的指令方法的产品。
计算机程序指令还可被加载到计算机或其它可编程数据处理设备上以使得将对计算机或其它可编程设备执行一系列可操作步骤以产生计算机实现的过程,从而对计算机或其它可变成设备执行的指令提供用于实现在流程图的一个块或多个块中指定的功能的步骤。
流程图的每一块可代表模块、段或组成用于实现指定的逻辑功能的一个或多个可执行指令的代码部分。另外,应该注意:在一些可选择的实现中,在块中标记的功能可发生在本规则之外。例如,根据包括的功能,实际上可以充分地同时执行接连显示的两个块,或有时可以以相反的顺序执行所述块。
为了更好地理解本发明,现在将详细描述在本公开中使用的术语。
-干净页
干净页是其图像存在于闪速存储器中的主存储器的页,并且在附图中由‘C’表示。
-修改页(Dirty Page)
修改页是其图像不存在于闪速存储器中的主存储器的页,并且在附图中由‘D’表示。
-页高速缓冲存储器
页高速缓冲存储器是在操作系统中由存储器管理模块管理的存储器区。
-干净的第一最近最少使用(CFLRU)列表(Clean First Least RecentlyUsed(CFLRU)List)
CFLRU列表是干净页列表,在该干净页列表中,最近最多使用的干净页被首先列出,最近最少使用的干净页被最后列出。
-干净的第一最近最少使用的修改相关(CFLRU-D)列表(CFLRU-DirtyRelated List)
CFLRU-D列表是修改页列表,在该修改页列表中,最近最多使用的修改页被首先列出,最近最少使用的修改页被最后列出。
为了说明方便,假设现在将参考图1的传统系统100的结构来描述根据本发明示例性实施例的页替换方法,并且现在假设该方法将通过包括在图1的传统系统100中的存储器管理模块140被执行。
图4是示出根据本发明示例性实施例的CFLRU算法的示意图。
参考图1和图4,作为操作系统130的部分的存储器管理模块140在主存储器120的部分中存储预定数据,从而通过操作系统130或处理器使预定的数据能够被快速访问。如上所述,通过存储器管理模块140管理的主存储器120的部分作为页高速缓冲存储器400被参考。页高速缓冲存储器400包括在具有相同大小的多个页。
如果在页高速缓冲存储器400中没有空闲空间剩余,那么存储器管理模块140可通过将存储在页高速缓冲存储器400的部分中的数据发送到诸如磁盘的慢速存储装置,以在页高速缓冲存储器400中获得空闲空间。为此,存储器替换算法可以被用于选择高速缓冲存储器400的页中的一个,并将存储在该选择页的数据存储到慢速存储装置中。
在本实施例中提出的CFLRU算法可应用于NAND闪速存储器。另外,典型的LRU算法的修改版本也可应用于NAND闪速存储器。
页高速缓冲存储器400包括多个页即PAGEa(410)到PAGEe(450)。参考图4,用‘C’表示的页是干净页,用‘D’表示的页是修改页。
使用LRU列表460和CFLRU列表470管理页PAGEa到PAGEe(从410到450)。LRU列表460列出页高速缓冲存储器400的所有页,即页PAGEa到PAGEe(410到450),CFLRU列表470仅列出页高速缓冲存储器400的干净页,即页PAGEa(410)、PAGEb(420)和PAGEd(440)。
如上所述,不管页是干净页还是修改页,最近最多使用的页被放置于LRU列表460的头部,最近最少使用的页被放置于LRU列表460的尾部。最近最多使用的干净页被放置于CFLRU列表470的头部,最近最少使用的干净页被放置于CFLRU列表470的尾部。
如果通过存储器替换算法选择干净页作为将被替换的页,那么因为该干净页的图像存在于闪速存储器150中,所以存储在该干净页中的数据不需要被写入闪速存储器150中。然而,如果通过存储器替换算法选择修改页作为将被替换的页,那么因为该修改页的图像不存在于闪速存储器150中,所以存储在该修改页中的数据需要被写入闪速存储器150中。
图5是示出根据本发明的示例性实施例的使用CFLRU算法的页替换方法的流程图。
参考图1、4和5,在操作S510中,访问CFLRU列表470以确定主存储器120的哪一页将被替换。CFLRU列表470仅包括干净页,即PAGEa(410)、PAGEb(420)和PAGEd(440)。
在操作S530中,如果CFLRU列表470不为空,那么选择位于CFLRU列表470尾部的页,即PAGEd(440)作为将被替换的页。在操作S560中,从闪速存储器150下载的数据被存储在PAGEd(440)中。因为PAGEd(440)的图像被存储在闪速存储器150中,所以被写在PAGEd(440)上的数据不需要被写入闪速存储器150中。在操作S570中,因为PAGEd(440)被最近最多使用并且是干净页,所以指向LRU列表460和CFLRU列表470头部的指针指向PAGEd(440)。如果写在PAGEd(440)上的数据后来被修改,那么将PAGEd(440)从CFLRU列表470移除。
如果CFLRU列表470为空,那么出现主存储器120没有干净页的情况。因此,在操作S540中,存储器管理模块140访问LRU列表460。在操作S550中,存储器管理模块140选择位于LRU列表460尾部的修改页,即PAGEe(450)。在操作S560中,存储器管理模块140将从闪速存储器150下载的数据存储在PAGEe(450)中。因为PAGEe(450)的图像没有被存储在闪速存储器150中,所以存储在PAGEe(450)中的数据需要被写入闪速存储器150中。在操作S570中,指向LRU列表460和CFLRU列表470的头部的指针指向PAGEe(450)。如果存储PAGEe(450)中的数据后来被修改,那么将PAGEe(450)从CFLRU列表470中移除。
然而,如果不加选择地选择在CFLRU列表470尾部的干净图像作为将被替换的页,那么存储器点击率可相当大地减少。因此,在本发明中,还要考虑有多少位于CFLRU列表470尾部的干净图像远离LRU列表460的尾部。参考图4,四页,即PAGEe(450)、PAGEd(440)、PAGEc(430)和PAGEb(420),在距离480之内,在这种情况下,该距离480是4。
因此,在本实施例中,如果在距离480之内有干净页,那么选择该干净页作为将被替换的页。否则,选择位于LRU列表460尾部的修改页作为将被替换的页。
例如,在本实施例中,可以顺序地选择PAGEd(440)、PAGEb(420)、PAGEe(450)和PAGEc(430)作为将被替换的页,并且对于PAGEd(440)和PAGEb(420),不对闪速存储器150执行写操作。即使PAGEa(410)是包括在CFLRU列表470中的干净页,因为它不在距离480内,所以不选择它作为将被替换的页。
为了确定距离480,在预定时间量的间隔(例如,以几秒的间隔)或随时遇到的预定情况(例如,在每一过程刚开始之后或在每一过程刚完成之前)中测量诸如闪速存储器150的NAND闪速存储器已经被读取的次数NIN和闪速存储器150已经被写的次数NOUT。其后,通过将测量结果,即NIN和NOUT带入方程(1)中来计算预定变量TCFLRU:
TCFLRU=NOUT×TOUT+NIN×TIN ...(1)
其中,TOUT是表示关于从闪速存储器150读取数据的延迟时间量的常数,TIN是表示关于将来自页高速缓冲存储器的数据写入闪速存储器150的延迟时间量的常数。
然而,如果在当前迭代中获得的TCFLRU的值小于在先前迭代中获得的TCFLRU的值,并且在先前迭代中距离480已经增加,那么距离480还增加
例如,如果存储器大小为30并且N为6,那么距离480可以增加或减少5。
基于系统负载可改变测量NOUT或NIN的周期和阈值,然后这些值可由系统管理员设置。
在操作S530中,可以首先选择包括在CFLRU列表470中的干净页中的最近最少使用的一个作为将被替换的页。然而,本发明并不被限于此。换句话说,可以首先选择在最近最少使用的干净页之后的干净页作为将被替换的页。另外,可以以随机顺序顺序地选择包括在CFLRU列表470中的页作为将被替换的页,而不是以从CFLRU列表470的尾部的页到CFLRU列表470的头部的页的顺序。
图6是示出根据本发明示例性实施例的CFLRU-D算法的示意图。
参考图6,通过CFLRU-D算法管理的页高速缓冲存储器600的多个页具有图7的页信息700。
参考图1和7,页信息700的‘存储装置上的图像’指定闪速存储器150是否具有存储在主存储器120的相应页中的数据图像,即主存储器120的相应页是干净页还是修改页。
如果‘存储装置上的图像’被设置为‘C’,那么主存储器120的相应页为干净页。如果‘存储装置上的图像’被设置为‘D’,那么主存储器120的相应页为修改页。
‘存储器-选出的数目’(The Number of Memory-outs)表示通过CFLRU-D算法主存储器120的相应页作为将被替换的页已经被选择的次数。具体地讲,‘存储器-选出的数目’表示主存储器120的相应页作为干净页已经被丢弃的次数和存储在主存储器120的相应页中的数据作为修改页已经被写入闪速存储器150的次数的总和。
‘干净-选出的数目’表示主存储器120的相应页作为干净页通过页替换已经被丢弃的次数。
‘页数据’用作指定存储在主存储器120的相应页中的数据的地址或指针。
参考图6,在CFLRU-D算法中,使用LRU列表640、CFLRU列表650和CFLRU-D列表660管理页高速缓冲存储器600的页。LRU列表640和CFLRU列表650与图4它们各自对应部分相同。CFLRU-D列表660顺序地列出页高速缓冲存储器600的页,以使最近最多使用的修改页被首先列出,并且使最近最少使用的修改页被最后列出。CFLRU-D列表660仅列出一些包括在页高速缓冲存储器600中的满足预定情况的多个修改页。
具体地讲,其‘存储器-选出的数目’被设置为M或更高和其‘干净-选出的数目’被设置为N或更高的修改页可以在CFLRU-D列表660中被列出。换句话说,已经被替换M或更多次数的页和作为干净页已经被丢弃N或更多次数的页可以在CFLRU-D列表660中被列出。
距离670与图4的距离480相同。在CFLRU-D算法中,在页高速缓冲存储器600中的每一页的‘存储器-选出的数目’和‘干净-选出的数目’可以基于最初系统工作负载被提前设置,或可以如同距离670一样由存储器管理模块14动态设置。
图8是示出根据本发明示例性实施例的使用CFLRU-D列表的页替换方法的流程图。
参考图1、6和8,在操作805中,为了选择主存储器120的多个页中的一个作为将被替换的页,访问CFLRU列表650。CFLRU列表650包括三个干净页,即PAGEa(605)、PAGEc(615)和PAGEf(630)。
在操作S815中,如果CFLRU列表650不为空,那么选择位于CFLRU列表650尾部的PAGEf(630)作为将被替换的页。在操作S845中,将从闪速存储器150下载的数据存储在PAGEf(630)中。因为PAGEf(630)是干净页,该页的通信被存储在闪速存储器150中,所以存储在PAGEf(630)中的数据不需要被写入闪速存储器150中。
在操作S850中,指向LRU列表640和CFLRU列表650头部的指针现在指向PAGEf(630)。换句话说,因为PAGEf(630)是最近最多使用的页,并且PAGEf(630)的图像被存储在闪速存储器150中,所以PAGEf(630)被放置在LRU列表640的头部和CFLRU列表650的头部。如果PAGEf(630)后来被修改,那么它被从CFLRU列表650中移除,在这种情况下,如果在PAGEf(630)的页信息700中的‘存储器-选出的数目’和‘干净-选出的数目’满足预定条件,那么PAGEf(630)可以被包括在CFLRU-D列表(660)中,以使它被放置在CFLRU-D列表(660)的头部。
在操作S820中,如果CFLRU列表650为空,那么存储器管理模块140访问CFLRU-D列表(660)。
在操作S830中,如果CFLRU-D列表(660)不为空,那么包括在CFLRU-D列表(660)中的多个修改页中的一个,具体地讲,位于CFLRU-D列表(660)尾部的修改页作为将被替换的页被选择。在操作S845中,从闪速存储器150下载的数据被存储在在操作S830选择的修改页中。因为闪速存储器150不具有在操作S830中选择的修改页的图像,所以存储在在操作S830中选择的修改页中的数据需要被写入闪速存储器150。在操作S850中,指向LRU列表640和CFLRU列表650头部的指针现在指向在操作S830中选择的修改页。如果存储在在操作S830中选择的修改页中的数据后来被修改,那么在操作S830中选择的修改页被从CFLRU列表650中移除,在这种情况下,如果在在操作S830中选择的修改页的页信息700中的‘存储器-选出的数目’和‘干净-选出的数目’满足预定条件,那么在操作S830中选择的修改页可被包括在CFLRU-D列表(660)中,以使它被放置在CFLRU-D列表(660)的头部。
在操作S835中,如果CFLRU列表650和CFLRU-D列表660为空,那么存储器管理模块140访问LRU列表640。在操作S840中,选择位于LRU列表640的尾部的修改页作为将被替换的页。在操作S845中,从闪速存储器150下载的数据被存储在在操作S840中选择的修改页中。因为闪速存储器150不具有在操作S840中选择的修改页的图像,所以存储在在操作S840中选择的修改页中的数据需要被写入闪速存储器150中。在操作S850中,指向LRU列表640和CFLRU列表650的头部的指针现在指向在操作S840中选择的修改页。如果存储在在操作S840中选择的修改页中的数据后来被修改,那么在操作S840中选择的修改页被从CFLRU列表650移除,在这种情况下,如果在操作S840中选择的修改页的页信息700中的‘存储器-选出的数目’和‘干净-选出的数目’满足预定条件,那么在操作S840中选择的修改页可被包括在CFLRU-D列表(660)中,以使它被放置在CFLRU-D列表(660)的头部。
例如,参考图6,PAGEf(630)、PAGEc(615)、PAGEe(625)、PAGEd(620)和PAGEg(635)被顺序地替换,然后通过CFLRU-D算法被发送到闪速存储器150。在闪速存储器150上对于PAGEf(630)和PAGEc(615)对闪速存储器150不执行写操作。PAGEa(605)和PAGEb(610)不在距离670之内,因此甚至不考虑将其作为将被替换的页的候选。
在操作S830中,可首先选择包括在CFLRU-D列表660中的最近最少被使用的修改页之一可以首先作为将被替换的页。然而,本发明并不限于此。换句话说,可首先选择在最近最少使用的修改页之后的修改页作为将被替换的页。另外,可以以随机的顺序顺序地选择包括在CFLRU-D列表660中的修改页作为将被替换的页,而不是以从位于CFLRU-D列表660尾部的修改页到位于CFLRU-D列表660头部的修改页的顺序。
如上所述,根据本发明的页替换方法能减少数据输入或输出延迟,并能通过使对闪速存储器执行的写操作的数目最小化来提高存储器点击率。
另外,根据本发明示例性实施例的页替换方法,能通过减少对闪速存储器执行的读操作或写操作的数目,来减少包括闪速存储器的系统的功率消耗。
尽管结合本发明的示例性实施例已经描述了本发明,但是本领域的技术人员应该理解,在不脱离本发明的范围和精神的情况下,可以对其进行形式和细节的各种改变。因此,应该理解上面的示例性实施例不是限制,而是在所有方面的解释。
Claims (10)
1.一种页替换方法,包括:
(a)建立第一页列表,所述第一页列表顺序地列出在主存储器中的页,以使最近最多使用的页被首先列出,并使最近最少使用的页被最后列出;
(b)建立第二页列表,所述第二页列表顺序地列出其图像存储在存储介质中的页,以使最近最多使用的页被首先列出,并使最近最少使用的页被最后列出;和
(c)以在第二页列表中被列出的顺序的相反顺序从第二页列表选择页,用来存储从存储介质下载的数据。
2.根据权利要求1所述的页替换方法,其中,存储介质包括闪速存储器。
3.根据权利要求1所述的页替换方法,还包括:(d)在第二页列表中列出存储有从存储介质下载的数据的页。
4.根据权利要求1所述的页替换方法,其中,存储有从存储介质下载的数据的页在距第一页列表的尾部的预设距离之内。
5.一种页替换方法,包括:
(a)建立第一页列表,所述第一页列表顺序地列出在主存储器中的页,以使最近最多使用的页被首先列出,并使最近最少使用的页被最后列出;
(b)建立第二页列表,所述第二页列表顺序地列出其图像被存储在存储介质中的页,以使最近最多使用的页被首先列出,并使最近最少使用的页被最后列出;
(c)建立第三页列表,所述第三页列表根据预定条件顺序地列出其图像未被存储在存储介质中的页,以使最近最多使用的页被首先列出,并使最近最少使用的页被最后列出;
(d)如果第二页列表不为空,那么以在第二页列表中被列出的顺序的相反顺序从第二页列表选择页,用来存储从存储介质下载的数据;和
(e)如果第二页列表为空,那么以在第三页列表中被列出的顺序的相反顺序从第三页列表选择页,用来存储从存储介质下载的数据。
6.根据权利要求5所述的页替换方法,其中,存储介质包括闪速存储器。
7.根据权利要求5所述的页替换方法,还包括在第二页列表中列出存储有从存储介质下载的数据的页。
8.根据权利要求5所述的页替换方法,其中,存储有从存储介质下载的数据的页在距第一页列表的尾部的预设距离之内。
9.根据权利要求5所述的页替换方法,其中,第三页列表列出作为干净页被丢弃N或更多次的修改页。
10.根据权利要求5所述的页替换方法,其中,第三页列表列出被替换M或更多次的修改页。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040059384A KR100577384B1 (ko) | 2004-07-28 | 2004-07-28 | 페이지 정보를 이용한 페이지 대체 방법 |
KR1020040059384 | 2004-07-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1728114A CN1728114A (zh) | 2006-02-01 |
CN100382052C true CN100382052C (zh) | 2008-04-16 |
Family
ID=35733741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100873155A Active CN100382052C (zh) | 2004-07-28 | 2005-07-28 | 使用页信息的页替换方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7366855B2 (zh) |
KR (1) | KR100577384B1 (zh) |
CN (1) | CN100382052C (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118695A1 (en) * | 2005-11-18 | 2007-05-24 | International Business Machines Corporation | Decoupling storage controller cache read replacement from write retirement |
KR100787856B1 (ko) * | 2006-11-29 | 2007-12-27 | 한양대학교 산학협력단 | 플래시 메모리 저장장치의 페이지 교체 방법 |
JP5083757B2 (ja) * | 2007-04-19 | 2012-11-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データをキャッシュする技術 |
US20090063753A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Method for utilizing data access patterns to determine a data migration order |
US9274949B2 (en) * | 2007-08-27 | 2016-03-01 | International Business Machines Corporation | Tracking data updates during memory migration |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US20090063752A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Utilizing data access patterns to determine a data migration order |
US8661211B2 (en) * | 2007-08-27 | 2014-02-25 | International Business Machines Corporation | Method for migrating contents of a memory on a virtual machine |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
TW200917277A (en) * | 2007-10-15 | 2009-04-16 | A Data Technology Co Ltd | Adaptive hybrid density memory storage device and control method thereof |
KR100941382B1 (ko) * | 2008-07-10 | 2010-02-10 | 한양대학교 산학협력단 | 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법 |
KR101056460B1 (ko) * | 2009-06-05 | 2011-08-11 | 세종대학교산학협력단 | 캐쉬 제어기 및 캐쉬 블록 교체 방법 |
US8949579B2 (en) * | 2010-10-04 | 2015-02-03 | International Business Machines Corporation | Ineffective prefetch determination and latency optimization |
KR20120109197A (ko) * | 2011-03-28 | 2012-10-08 | 삼성전자주식회사 | 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치 |
CN102156753B (zh) * | 2011-04-29 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
US9092318B2 (en) * | 2012-02-06 | 2015-07-28 | Vmware, Inc. | Method of allocating referenced memory pages from a free list |
US8880806B2 (en) | 2012-07-27 | 2014-11-04 | International Business Machines Corporation | Randomized page weights for optimizing buffer pool page reuse |
KR101481633B1 (ko) * | 2013-07-03 | 2015-01-15 | 아주대학교산학협력단 | 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법 |
US9478274B1 (en) | 2014-05-28 | 2016-10-25 | Emc Corporation | Methods and apparatus for multiple memory maps and multiple page caches in tiered memory |
US9678670B2 (en) | 2014-06-29 | 2017-06-13 | Plexistor Ltd. | Method for compute element state replication |
US10140029B2 (en) * | 2014-12-10 | 2018-11-27 | Netapp, Inc. | Method and apparatus for adaptively managing data in a memory based file system |
US20160188490A1 (en) * | 2014-12-26 | 2016-06-30 | Intel Corporation | Cost-aware page swap and replacement in a memory |
US9851919B2 (en) * | 2014-12-31 | 2017-12-26 | Netapp, Inc. | Method for data placement in a memory based file system |
KR101653092B1 (ko) | 2015-02-06 | 2016-09-01 | 한국과학기술원 | 메시 네트워크 환경을 위한 생체 모방 알고리즘 기반 p2p 콘텐츠 캐싱 방법 및 시스템 |
US9952973B2 (en) * | 2015-10-29 | 2018-04-24 | Western Digital Technologies, Inc. | Reducing write-backs to memory by controlling the age of cache lines in lower level cache |
CN112988388A (zh) * | 2017-08-24 | 2021-06-18 | 华为技术有限公司 | 一种内存页管理方法及计算设备 |
US11093403B2 (en) | 2018-12-04 | 2021-08-17 | Vmware, Inc. | System and methods of a self-tuning cache sizing system in a cache partitioning system |
US11340822B2 (en) | 2019-04-30 | 2022-05-24 | EMC IP Holding Company LLC | Movement of stored data based on occurrences of one or more n-gram strings in the stored data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5125085A (en) * | 1989-09-01 | 1992-06-23 | Bull Hn Information Systems Inc. | Least recently used replacement level generating apparatus and method |
US6327643B1 (en) * | 1998-09-30 | 2001-12-04 | International Business Machines Corp. | System and method for cache line replacement |
CN1361887A (zh) * | 1999-05-18 | 2002-07-31 | 英特尔公司 | 具有保护的最近最少使用置换方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3104270B2 (ja) | 1991-02-12 | 2000-10-30 | 富士ゼロックス株式会社 | ページ置き換え制御装置 |
JP3437852B2 (ja) * | 1992-10-07 | 2003-08-18 | 富士通株式会社 | ページング機能を持つデータ処理装置 |
US5734861A (en) * | 1995-12-12 | 1998-03-31 | International Business Machines Corporation | Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity |
US6389513B1 (en) * | 1998-05-13 | 2002-05-14 | International Business Machines Corporation | Disk block cache management for a distributed shared memory computer system |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
GB2366014B (en) * | 2000-08-19 | 2004-10-13 | Ibm | Free space collection in information storage systems |
US20020152361A1 (en) * | 2001-02-05 | 2002-10-17 | International Business Machines Corporation | Directed least recently used cache replacement method |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6678785B2 (en) | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
JP2003131946A (ja) | 2001-10-19 | 2003-05-09 | Nec Corp | キャッシュメモリ制御装置及び方法 |
-
2004
- 2004-07-28 KR KR1020040059384A patent/KR100577384B1/ko active IP Right Grant
-
2005
- 2005-07-28 US US11/191,074 patent/US7366855B2/en active Active
- 2005-07-28 CN CNB2005100873155A patent/CN100382052C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5125085A (en) * | 1989-09-01 | 1992-06-23 | Bull Hn Information Systems Inc. | Least recently used replacement level generating apparatus and method |
US6327643B1 (en) * | 1998-09-30 | 2001-12-04 | International Business Machines Corp. | System and method for cache line replacement |
CN1361887A (zh) * | 1999-05-18 | 2002-07-31 | 英特尔公司 | 具有保护的最近最少使用置换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1728114A (zh) | 2006-02-01 |
KR20060010617A (ko) | 2006-02-02 |
US7366855B2 (en) | 2008-04-29 |
US20060026372A1 (en) | 2006-02-02 |
KR100577384B1 (ko) | 2006-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100382052C (zh) | 使用页信息的页替换方法 | |
CN108510313A (zh) | 一种信息转化率的预测、信息推荐方法和装置 | |
JP2017518584A (ja) | フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム | |
US9606746B2 (en) | Shiftable memory supporting in-memory data structures | |
US20100049935A1 (en) | Management of very large streaming data sets for efficient writes and reads to and from persistent storage | |
CN103914398B (zh) | 用以管理具有实体地址空间的存储器使用率的方法及装置 | |
CN107710201A (zh) | 存储数据和从位向量搜索索引取回数据 | |
EP3314465B1 (en) | Match fix-up to remove matching documents | |
US10540355B1 (en) | ACID database | |
CN107851108A (zh) | 使用位向量搜索索引的匹配文档 | |
CN104750432B (zh) | 一种数据存储方法及装置 | |
CN105930537A (zh) | 一种页面保存的方法及电子设备 | |
CN108875046A (zh) | 一种存储系统访问方法、装置及电子设备 | |
CN105512051B (zh) | 一种自学习型智能固态硬盘缓存管理方法和装置 | |
JP2019212171A (ja) | 学習装置および学習方法 | |
CN100472526C (zh) | 一种数据存储方法、数据读取方法以及数据检索方法 | |
CN105988719B (zh) | 存储装置及其处理数据的方法 | |
CN109597934A (zh) | 确定点击推荐词的方法、装置、存储介质及电子设备 | |
CN109710309A (zh) | 减少存储体冲突的方法 | |
US20080313166A1 (en) | Research progression summary | |
CN103049395A (zh) | 缓存存储设备数据的方法及其系统 | |
KR100878142B1 (ko) | 플래시 메모리 상에서의 효율적인 동작을 위한 수정된b-트리 인덱스 구성 방법 | |
CN101339490A (zh) | 闪存的驱动装置及方法 | |
CN107820612A (zh) | 位向量搜索索引 | |
CN106326146B (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 |