CN1673981A - 用于平衡多个存储器缓冲区大小的系统及其方法 - Google Patents

用于平衡多个存储器缓冲区大小的系统及其方法 Download PDF

Info

Publication number
CN1673981A
CN1673981A CN200510004383.0A CN200510004383A CN1673981A CN 1673981 A CN1673981 A CN 1673981A CN 200510004383 A CN200510004383 A CN 200510004383A CN 1673981 A CN1673981 A CN 1673981A
Authority
CN
China
Prior art keywords
steal
buffer zone
buffer
storage
group
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
CN200510004383.0A
Other languages
English (en)
Other versions
CN100339837C (zh
Inventor
戴维·J.·克拉夫特
布赖恩·P.·狄克逊
尤里·L.·沃罗布维
詹姆斯·C.·威列
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1673981A publication Critical patent/CN1673981A/zh
Application granted granted Critical
Publication of CN100339837C publication Critical patent/CN100339837C/zh
Expired - Fee Related 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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Abstract

一种用于平衡多个存储器缓冲区大小的系统包括分区为多个子组的存储器,每一个子组都包含相似大小的缓冲区。该系统进一步包括存储器管理器,该存储器管理器通过存储和访问缓冲区窃用历史队列中的缓冲区窃用历史记录来管理对缓冲区空间的请求。

Description

用于平衡多个存储器缓冲区 大小的系统及其方法
技术领域
一般来说,本发明涉及计算机系统存储器管理系统的领域,具体来说,涉及可变大小存储器分区和分配。
背景技术
在过去的几十年中,计算机越来越普及,并显著地渗透到生活的主流中。随着消费者越来越多地使用,消费者的信赖程度越来越强,从而加强了对此信息门户提供多样化的功能的需求。随着消费者寻求更快的信息访问,对信息的满意度的周期时间不断地缩短。当今,在典型的实现方式中,信息以位和字节的形式存储在设备的存储器中,并用存储器管理技术进行检索。随着对信息的需求在较短的时间持续扩大,对存储器管理的需求在重要性方面越来越强。
在典型的现有存储器管理方案中,存储器被分区为叫做“缓冲区”的离散的区域,以供使用。所要求的信息从诸如硬盘、软盘、磁带及其他非易失性存储器之类的辅助存储器中检索。在检索数据之后,由于性能原因,在被覆盖之前的一段时间内,它存储或“缓存”在存储器缓冲区中。让最流行的数据缓存在常驻存储器中或存储器缓冲区中,可以使发出请求的应用程序持续地使用数据。此外,与更快的但是比较昂贵的高速缓存或常驻存储器相比,将数据保留在存储器缓冲区或常驻存储器中减少甚至消除了辅助存储器输入/输出(I/O)操作和涉及辅助存储器I/O的时间损失。存储器分区的一种方法是使用虚拟存储器管理器(VMM),它们将存储器分为叫做“页面”的基本块。在典型的VMM中,这些页面大小相同,单个的页面用缓冲区进行缓存。VMM选择了静态页面大小,以便于管理,这就导致大小对于文件系统或磁盘设备要求不一定是最佳。在典型的VMM实现方式中,多个页面可以存储在单一的缓冲区内。当被检索的数据的大小不能均匀地在一个或许多VMM页面之中分开和存储时,就会产生问题。这种情况可能导致奇数的只是部分地填充的利用整个静态页面存储器分配的页面。当奇数页要求使用更多的缓冲区时,或者如果页面的数量不能均匀地在缓冲区大小之中分开和存储,从而使存储器分配效率更加低时,问题变得更加严重。
缓冲区可以以各种大小进行管理,相似大小的缓冲区可以分到组和子组中。对特定大小的缓冲区的请求可以从该相同大小的一组缓冲区来得到满足。如果没有满足请求的大小的缓冲区,必须进行其他操作,以将较大的缓冲区分离或将较小的缓冲区加入到适当大小的缓冲区中。
分离或联合缓冲区的其他开销具有其自己的设计选择集。其中,破碎和联合和分离缓冲区的损失以及对组成用户的影响是最重要的事。由于这些原因,良好的设计选择试图确保,存储器缓冲区请求可以主要在与请求大小相同的缓冲区的子组内进行满足。
当发出请求的应用程序要求从辅助存储器中提供更多数据而所有缓冲区都在使用中时,就要作出关键的缓冲决策。对于需求的新数据,应该使用哪一个缓冲区,通常,哪一个缓冲区应该用新数据来覆盖?主流存储器管理理论将这种情况叫做更换策略。这种覆盖缓存或存储器缓冲区存储的数据的过程在当前技术中叫做“缓冲区窃用”。存在不同的决策算法,并从所使用的更换方法的类型中取它们的名称。例如,有多个常用的算法,如“最近最少使用的”(LRU)、“最不常用的”(LFU),以及“最近使用的”(MRU)。具体来说,请看LRU算法,如其名称所暗示的,当需求新的缓冲区时,为替换所选择的缓冲区是在最长的时段没有被访问的其中一个。
虽然LRU、LFU和MRU这些技术单独使用或组合起来使用对于判断窃用哪一个缓冲区很有用,以便最小化重新读取替换的数据的必要性,但是,这些技术不是没有缺点。一个缺点是,不管选择的标准是什么,缓冲区窃用的目标是将重新读取替换的数据的必要性降低到最低程度。例如,被窃用的并且其数据被写入到辅助存储器的缓冲区实际上可以立即由应用程序重新访问,这样就会产生新的缓冲区窃用并从辅助存储器中重新读取以前高速缓存数据。相应地,需要判断存储器缓冲区中的一些东西已经扔出了多长时间,以优化给定组中的缓冲区和缓冲区大小,以便最小化重新访问或从辅助存储器将数据重新读取回存储器缓冲区的次数。
此外,单独使用LRU、LFU、MRU不会有助于缓冲区大小判断和分配。例如,常常基于太少的信息丢弃或窃用页面,如LRU,其中,所使用的决策信息是从最后一次访问以来最大的时间间隔。系统不能在不消耗大量的有价值的系统资源的情况下区别具有很少的访问的缓冲区与没有访问的缓冲区而将使用的很少访问的缓冲区保留在存储器中。提供不同大小的缓冲区并将这些各种大小的缓冲区分到子组中的存储器管理系统必须平衡对一样大小的缓冲区的需求和对不同大小的缓冲区的需求。最佳平衡算法将只窃用在不久的将来不会再次使用的缓冲区。这可能意味着,可能需要在适当大小的缓冲区的子组内窃用就足够了,或从较大的缓冲区中窃用并分离,或从较小的缓冲区窃用并组合。
因此,有必要克服如上文所讨论的现有技术所存在的缺点,并提供优化窃用事件和分配各种大小的缓冲区存储器的系统和方法。
发明内容
根据本发明,提供了通过窃用历史平衡多个存储器缓冲区大小的系统和方法。系统包括分区为多个子组的存储器,每一个子组都包含一个或多个相似大小的缓冲区。系统进一步包括具有存储器管理器的控制器。
存储器管理器用于:响应接收对将接收到的数据存储在存储器中的请求,标识缓冲区;通过将标识的缓冲区的高速缓存数据存储在辅助存储器中来窃用标识的缓冲区;
创建缓冲区窃用历史记录。缓冲区窃用历史记录包括用于标识高速缓存数据的辅助存储器的唯一标识符,并响应接收到随后的对缓冲区的请求以存储第二个接收到的数据,使用缓冲区窃用历史记录来标识对高速缓存数据的任何重新访问。此外,第二个接收到的数据包括高速缓存数据,并使用缓冲区窃用历史记录以平衡缓冲区子组之间分区的存储器。
附图说明
附图(其中,相同的参考数字在各个单独的视图中表示完全相同或功能上相似的元素)与下面的详细描述一起,包括在说明书中并构成说明书的一部分,用于进一步显示各种实施例并说明根据本发明的各种原理和所有优点。
下面将通过附图中显示的示范性实施例(但不作出限制)来对本发明进行描述,其中,相同的参考符号表示相似的元素,其中:
图1是根据本发明的平衡多个存储器缓冲区大小的系统的电子方框图。
图2显示了根据本发明的图1的用于平衡多个存储器缓冲区大小的系统内使用的缓冲区窃用历史队列。
图3到5是显示根据本发明的图1的用于平衡多个存储器缓冲区大小的系统的操作的各种实施例的流程图。
图6是根据本发明的示范性实施例的使用图1的缓冲区的计算机处理节点的方框图。
具体实施方式
根据需要,这里说明了本发明的详细实施例;然而,应该理解,所说明的实施例只是本发明的示范,本发明可以以各种形式来实现。因此,这里所说明的特定结构和功能细节不应解释为限制性的,而是作为权利要求的基础,并作为告诉精通本技术的人员在任何适当详细的结构中应用本发明的典型的基础。此外,这里所使用的术语和句子不是限制性的;而是提供对本发明的可理解的说明。
这里所使用的术语“a”或“an”被定义为一个或多个。这里所使用的术语“多个”被定义为两个或更多。这里所使用的术语“另一个”被定义为至少第二个或更多。这里所使用的术语“包括和/或具有”被定义为包括(即,公开语言)。这里所使用的术语“耦合”,被定义为连接,虽然不一定是直接的,也不一定是机械的。这里所使用的术语“程序”、“软件应用程序”,被定义为计算机系统上执行而设计的指令序列。程序、计算机程序或软件应用程序可以包括子例程、功能、过程、对象方法、对象实现方式、可执行应用程序、小程序、servlet、源代码、目标代码、目标代码、共享库/动态负载库和/或为在计算机系统上执行而设计的其他指令序列。
本发明提供了在竞争的数据缓冲区大小之间平衡存储器分配的设备和方法。该方法利用历史队列提供了存储器管理决定清晰度的更大深度。那些精通相关技术的普通人员将知道,本发明特别适用于可变大小分区单元对于文件系统的管理。具体来说,文件系统可以为元数据和用户数据利用许多不同大小的单元,使用一样的大小可能需要缩小不同大小的的单元的数量。本发明主要涉及可变大小存储器分区,具体来说,涉及不同大小的文件系统存储器(也称为文件系统缓冲区)请求之间的存储器的平衡。
图1是根据本发明的用于平衡多个存储器缓冲区大小的系统100的电子方框图。如图1所示,优选情况下,用于平衡多个存储器缓冲区大小的系统100包括控制器105。控制器105接收信息并向这里所描述的系统100的各种操作组件发送命令。为执行示范性系统100的必需的功能,控制器105连接到存储器110。
控制器105包括存储器管理器115,用于提供存储器110的各个部分的管理。存储器管理器115执行各个程序步骤,并进一步利用存储器110内存储的数据。存储器管理器115可以在制造过程中硬编码或编程到控制器105中,可以在客户预订时在空中预定,或者,也可以是可下载的应用程序。那些精通相关技术的普通人员将知道,可以使用其他编程方法来对存储器管理器115进行编程。那些精通相关技术的普通人员将理解,根据本发明,存储器管理器115可以位内控制器105,也可以位于控制器105外部。
例如,存储器110可以包括随机存取存储器(RAM)、只读存储器(ROM),和/或电可擦可编程只读存储器(EEPROM)(未显示)、flash存储器或等效物。可以从任何机械、电的、光学、磁铁、有机和无机存储器结构或其任何组合建立其他存储器110。存储器110包括用于存储各种类型的数据的多个缓冲区120。优选情况下,多个缓冲区120被分区为离散的区域,以供使用。例如,如许多虚拟存储器管理器所进行的,多个缓冲区120可以被分区为诸如所显示的子组125和子组130之类的一个或多个子组。优选情况下,每一个子组(125、130)包括可变大小的分区单元。这些可变大小单元可以是存储器管理器分区的基本方面或从诸如VMM页面之类的较小的基本块的组构建。无论如何,可变的大小分区单元被当做关于其管理和它包含的数据的单一的实体。优选情况下,每一个子组都包括一个或多个相似大小的缓冲区(135、140)。
例如,子组125中的所有缓冲区135都是一个大小,子组130的所有缓冲区140都是另一个大小。通过对单独的子组内的相似大小的缓冲区进行分组,对特定大小的缓冲区的请求可以从该相同大小的一组缓冲区来得到满足。如果没有满足请求的大小的缓冲区,必须进行其他操作,以将较大的缓冲区分离或将较小的缓冲区加入到适当大小的缓冲区中。
分离或联合缓冲区的其他开销具有其自己的设计选择集。其中,破碎和联合和分离缓冲区的损失以及对组成用户的影响是最重要的事。由于这些原因,良好的设计选择应该试图确保,存储器缓冲区请求可以主要在与请求大小相同的缓冲区的子组内进行满足。
优选情况下,缓冲区窃用历史队列145存储在存储器110内。缓冲区窃用历史队列145提供了涉及对多个缓冲区120的各种操作的记录的存储。例如,当为替换选择了缓冲区并窃用之后,记录被插入到缓冲区窃用历史记录的循环队列中。
图2显示了在根据本发明的图1的用于平衡多个存储器缓冲区大小的系统100内使用的缓冲区窃用历史队列145。如图所述,每一个历史记录(200,205)都包括唯一标识符(210、215)、数据大小(220、225),以及记录在它从其中窃用的缓冲区大小子组中的当前序列号(230,235)。优选情况下,唯一标识符(210,215)作为其中写入了缓冲区的数据的辅助存储器的地址来计算。此辅助存储器可以是硬盘、软盘、磁带或其他非易失性计算机可读的介质。当前序列号(230,235)在每次从该子组中窃用缓冲区时每个子组序列号都会增大。
图3是显示根据本发明的图1的用于平衡多个存储器缓冲区大小的系统的操作的一个实施例的流程图。具体来说,图3显示了在处理对缓冲区的请求时存储器管理器115的操作。图3的操作以存储器管理器115将存储器110分区开始。接下来,在步骤305中,存储器管理器创建多个子组,每一个子组都具有在诸如子组(125,130)之类的组内的相似大小的缓冲区,如前面所描述的。接下来,在步骤310中,操作判断存储器管理器115是否接收到了对缓冲区的请求。当没有接收到请求时,操作返回,并定期检查这样的对缓冲区的请求。在另一个实施例中,缓冲区请求是中断驱动的。
当在步骤310中接收到对缓冲区的请求时,操作继续执行步骤315,其中,存储器管理器115重新使用已经包含高速缓存数据的缓冲区来判断是否满足对缓冲区的请求。换句话说,满足对缓冲区的请求可能需要替换当前驻留在某些其他缓冲区中的高速缓存数据。当在步骤315中检测到缓冲区重新使用时,操作继续执行步骤320,其中,所希望的缓冲区中的当前组成数据被写入到诸如磁盘驱动器之类的辅助存储器。概括起来说,这种对缓冲区的重新使用和将其以前高速缓存数据写入到辅助存储器中叫做“窃用缓冲区”。
有许多方法选择要窃用的缓冲区。其中包括“最近最少使用的”、“最不常用的”和“最近使用的”,仅举几个例子而已。不管选择的标准是什么,缓冲区窃用的目标是将重新读取替换的数据的必要性降低到最低程度。例如,被窃用的并且其数据被写入到辅助存储器的缓冲区实际上可以立即由应用程序重新访问,这样就会产生新的缓冲区窃用并从辅助存储器中重新读取以前高速缓存数据。
本发明提供了每一个缓冲区大小的子组中的缓冲区的最佳平衡,以便满足缓冲区请求的数量分离和连接的数量被最小化,窃用缓冲区最大限度地减少了重新读取以前高速缓存数据的次数。
允许不同大小的缓冲区并将它们分到各种子组中的存储器管理方案必须平衡对一样大小的缓冲区的需求和对不同大小的缓冲区的需求。最佳平衡算法将只窃用在不久的将来不会再次使用的缓冲区。这可能意味着,可能需要在适当大小的缓冲区的子组内窃用就足够了,或从较大的缓冲区中窃用并分离,或从较小的缓冲区窃用并组合。
这里是两个缓冲区子组的示例。子组A包含256千字节缓冲区,而子组B包含512个千字节缓冲区。子组A的当前序列号为20,而子组B的序列号为5。在此示例中,我们按照从最近最少使用的(LRU)到最近使用的(MRU)的顺序排列。
子组A(256K)                子组B(512K)
子组序列号#20              子组序列号#5
(LRU)缓冲区1<唯一id 100>   缓冲区7<唯一id 481>
缓冲区2<唯一id 333>        缓冲区8<唯一id 421>
(MRU)缓冲区3<唯一id 471>   缓冲区9<唯一id 472>
如果对256K缓冲区的新请求进入系统,那么,可以选择子组A中的某一个缓冲区以重新使用。这里我们选择了此队列中的最近最少使用的缓冲区,这是缓冲区1。如此从子组A中窃用缓冲区1,并重新使用,用于满足新的缓冲区请求。
返回到图3的操作,接下来,在步骤325中,创建新缓冲区窃用历史记录。接下来在步骤330中,新创建的缓冲区窃用历史记录被添加到缓冲区窃用历史队列145中。接下来,在步骤335中,其中窃用的缓冲区关联的子组的每个子组序列号增大并存储在新创建的缓冲区窃用历史记录内。接下来,在步骤340中,新数据存储在窃用的缓冲区内。那么,操作返回到步骤310,并等待对缓冲区的新请求。如此,创建了缓冲区窃用历史队列。
图4显示了根据本发明的图1的系统100的进一步操作。操作从步骤402开始。接下来,在步骤404中,发出了对数据的请求。例如,存储器管理器115可以接收请求以将数据存储在缓冲区中。接下来,在步骤406中,操作判断请求的数据是否被缓存。如果请求的数据被缓存,则过程继续,以在408中窃用高速缓存数据,并在404中请求数据。
当在步骤406中数据没有缓存时,操作继续执行步骤410,其中,判断缓存是否已满。当在步骤410中缓存没有满时,操作继续执行步骤409,其中,将数据存储在缓存中。例如,当有打开的缓冲区可用时,数据可以存储到打开的缓冲区中。然后,操作返回到步骤404。
当在步骤410中缓存已满时,操作继续执行步骤412,其中,缓冲区窃用通过查看缓冲区集的目标数量来启动。例如,缓冲区窃用可以如图3中所描述的那样进行,其中,步骤412、414、416对应于图3的步骤320、325、330和335。接下来,在步骤414中,存储器管理器115计算窃用的数据的唯一ID。接下来,在步骤416中,存储器管理器115在窃用的缓冲区的窃用历史队列附加新记录。接下来,在步骤418中,存储器管理器115从辅助存储器或辅助存储器读取数据,并将数据存储在缓存中。接下来,在步骤420中,存储器管理器计算唯一ID。接下来,在步骤422中,存储器管理器115基于计算出的唯一ID查询缓冲区窃用历史记录。
接下来,在步骤424中,存储器管理器115判断缓冲区窃用是否为重新访问。当缓冲区窃用不是重新访问时,操作返回到步骤404。当缓冲区窃用是重新访问时,操作继续执行步骤426,其中,存储器管理器计算顺序差值,以确定缓冲区队列中的最佳缓冲区数量。接下来,在步骤428中,如果在所有缓冲区队列中满足阈值,则存储器管理器重新计算缓冲区队列中的缓冲区的目标数量。
在我们的示例中,如果应用程序再次需要具有唯一id 100的缓冲区数据,如此进行了重新访问,我们将发现序列号为20的窃用历史队列中的对应的窃用历史记录。
窃用历史队列
-----------------------------
<唯一id 100><大小256K><序列 #20>
在我们的示例中,重新使用缓冲区1以窃用唯一标识符为123的数据,子组A的序列号增大1。缓冲区1在子组的最近使用的末尾重新进入子组A。
         子组A(256K)                         子组B(512K)
     -----------------------------        ---------------------------
         子组序列号 #21                      子组序列号 #5
(LRU)    缓冲区2<唯一id 333>                 缓冲区7<唯一id 481>
         缓冲区3<唯一id 471>                 缓冲区8<唯一id 421>
(MRU)    缓冲区1<唯一id 123>                 缓冲区9<唯一id 472>
继续看此示例,如果大小为256千字节的第二新缓冲区请求进入系统,那么,选择缓冲区2进行重新使用,并窃用。创建了缓冲区2的窃用历史记录,该历史记录记录了窃用缓冲区时的子组A的序列号,子组A的当前序列号增大1。
缓冲区2的新数据具有唯一标识符234,并且缓冲区再次进入子组的最近使用的末尾。
       子组A(256K)                       子组B(512K)
 ---------------------------      ---------------------------
      子组序列号 #22                    子组序列号 #5
(LRU) 缓冲区3<唯一id 471>               缓冲区7<唯一id 481>
      缓冲区1<唯一id 123>               缓冲区8<唯一id 421>
(MRU) 缓冲区2<唯一id 234>               缓冲区9<唯一id 472>
窃用历史队列
-------------------
<唯一id 100><大小256K><序列号 #20>
<唯一id 333><大小256K><序列号 #21>
取数量20并将子组A的序列号(22)减去该数得出差值2。如果子组A包含另外两个缓冲区,那么,通过从子组A的LRU的末尾窃用来满足我们的示例中的两个新缓冲区请求,不必窃用具有唯一id 100的缓冲区数据。如此,被重新访问的数据将仍处于缓存状态,不会被窃用,不必从辅助存储器中重新读取此数据。回想一下,当请求缓冲区以窃用数据时,使用本发明,可以通过计算其唯一id和检查窃用历史队列看是否发生,来判断这是否为对以前高速缓存数据的重新访问。如果发现窃用历史记录具有相同唯一id,那么,我们重新访问由于以前的缓冲区窃用而被写入到辅助存储器中的数据。然后,我们计算该窃用历史记录内的序列号和对应的缓冲区大小子组的当前序列号之间的差值。此差值<N>是在以前的缓冲区窃用和此随后的重新访问之间从该子组窃用的缓冲区的数量。差值<N>还告诉我们,如果此子组更大<N>缓冲区,那么,重新访问将会发现,缓冲区仍在子组中,缓冲区数据仍缓存在存储器中,重新访问将不会导致从辅助存储器中重新读取。
本发明的另一个特点是,使用每一个重新访问的缓冲区的差值<N>信息允许我们对每一个缓冲区大小子组就它是否应该相对于所有其他子组是增长还是削减来进行评估,如此,可以判断从哪一个子组中窃用下一个缓冲区。此差值<N>信息可以在一段时间内使用,以量化(平均起来),每一个子组应该有多少缓冲区,以最小化窃用的数据的重新读取。
图5是显示根据本发明的系统100的操作的流程图。具体来说,图5显示了存储器管理器115在图4的步骤428之后的根据适当的缓冲区数目确定子组的顺序的操作。这只是使用差值<N>信息的一个示例实现方式。每一个缓冲区大小子组都按增长优先级进行排序。对高优先级缓冲区大小子组中的缓冲区大小的请求被允许从较低优先级的子组中窃用和联合或窃用和分离缓冲区。
图5的操作以步骤500开始,其中,计数器被设置为N=1。接下来在步骤505中,存储器管理器115为窃用的并从第N个缓冲区大小子组重新访问的所有缓冲区累积平均差值<N>,名为<N_a>。例如,如果从子组A窃用两个缓冲区,并分别用5和15的差值<N>进行重新访问,那么,对于子组A,<N_a>将是10。
接下来,在步骤510中,存储器管理器115确定在第N个子组中进行重新访问相对于其他子组的重要性。例如,具有小<N_a>的窃用缓冲区的许多重新访问被视为比不同缓冲区大小子组的具有相同小<N_a>的几个重新访问更重要。如此,存储器管理器115产生特定子组的总窃用缓冲区重新访问次数对第N个子组的<N_a>的比率为<R>。
接下来,在步骤515中,计数器增大为N=N+1。接下来,在步骤520中,操作判断是否存在第N个子组。当在存储器110内存在第N个子组时,操作返回到步骤505。当不存在第N个子组时,操作继续执行步骤525,其中,所有子组都按增长优先级排序。例如,如果子组A具有20个其<N_a>为10的重新访问,子组B具有5个其<N_a>为8的重新访问,那么子组A具有较高的增长优先级。
(20/10)>(5/8)
具有最高的<R>的那些子组应该是缓冲区窃用的可能性最小的目标。相反,当尝试增长另一个缓冲区大小子组时,那些具有低<R>的子组没有看到相对于它们的<N_a>的许多重新访问,应该首先从其中窃用。
再看原来的示例,子组A比子组B优<R>,下一次窃用将导致将子组B中的缓冲区7分离为两个256K缓冲区号4和5(指派给子组A)。
子组A(256K)                 子组B(512K)
----------------            ----------------
子组序列号 #20               子组序列号 #6
(LRU)缓冲区1<唯一id 100>    缓冲区8<唯一id 421>
缓冲区2<唯一id 333>      缓冲区9<唯一id 472>
缓冲区3<唯一id 471>
缓冲区4<唯一id 123>
(MRU)缓冲区8<唯一id 234>
窃用历史队列
---------------------
<唯一id 481><大小512K><序列号 #5>
利用此发明,我们平衡了竞争的缓冲区大小的数量以缩小重新读取窃用缓冲区的频率以及根据使用的优先级优化分离或联合缓冲区。
非限制性的硬件和软件实现方式
图6是根据本发明的示范性实施例的使用图1的缓冲区的计算机处理节点的方框图。
图6中显示了描述组成员600的方框图,组成员600是本发明的示范性实施例所使用的计算机处理节点。任何配置适当的处理系统也都能够被本发明的实施例使用。计算机系统600具有连接到主存储器620的处理器610,用于辅助存储的大容量存储器接口630,终端接口640和网络接口650。系统总线660将这些系统组件互相连接在一起。大容量存储接口630用于将诸如DASD设备655之类的大容量存储设备连接到计算机系统600。DASD设备的一种特定类型是软盘驱动器、该驱动器可以用来将数据存储到软盘695中以及从其中读取数据。
主存储器620包含应用程序622、对象624、数据626以及操作系统映像628。虽然这里所显示的是同时驻留在主存储器620中,显然,应用程序622、对象624、数据626以及操作系统628不必都一直或同时完全驻留主存储器620中。计算机系统600利用常规的虚拟寻址机制以允许程序行为如同它们可以访问大型的单一的存储器实体(这里被称为计算机系统存储器),而不是访问多个较小的存储器实体,如主存储器620和DASD设备655。请注意,这里使用术语“计算机系统存储器”来指计算机系统600的整个虚拟存储器。
操作系统625是合适的多任务处理操作系统。操作系统628包括DASD管理用户界面程序,以管理通过大容量存储接口630进行的访问。本发明的实施例利用允许操作系统628的组件的指令在计算机600内的任何处理器上执行的诸如面向对象的框架机制之类的体系结构。
虽然计算机602只使用了一个CPU 602,但是,也可以同样有效地使用具有多个CPU的计算机系统。本发明的实施例包括各种接口,每一个接口都包括单独的完全编程的微处理器,这些微处理器用于减轻CPU 602的处理负载。终端接口608用于直接将一个或多个终端618连接计算机系统600。可以是非智能的或完全可编程的工作站的这些终端618,供系统管理员和用户与计算机系统600进行通信。
网络接口650用于将其他计算机系统或组成员(例如,站A 675和站B 685)连接到计算机系统600。本发明适用于包括目前的模拟和/或数字技术或通过将来的网络机制的任何数据通信连接。
虽然本发明的示范性实施例是在完全功能的计算机系统的上下文中进行描述的,但是,那些精通本技术的人将理解,实施例能够通过软盘(例如,软盘695)、CD-ROM或其他形式的可记录介质或通过任何类型的电子传输机制作为程序产品来分发。
本发明的实施例包括关系数据库管理系统(RDBMS)632。RDBMS 632是合适的关系数据库管理器,如处理结构化查询语言(SQL)的版本的关系数据库管理器。
本发明的实施例可以作为与计算机系统一起使用的程序产品(例如,磁盘695)来实现。程序产品的程序定义了实施例的功能(包括这里所描述的方法)并可以包含在各种各样的信号承载介质中。说明性的信号承载介质包括,但不仅限于:(i)永久地存储在非可写的存储介质(例如,计算机内只读存储器设备,如可由CD-ROM驱动器读取的CD-ROM光盘)中的信息;(ii)存储在可写的存储介质(例如,软盘驱动器内的软盘或硬盘驱动器)中的可变的信息;或(iii)可通过通信介质传递的信息,如,通过计算机或电话网络,包括无线通信。后一实施例包括从因特网及其他网络下载的信息。这样的信号承载介质,当携带了执行本发明的功能的计算机可读的指令时,代表了本发明的实施例。
一般而言,用于实现本发明的实施例的例程,不论是作为操作系统的一部分或特定的应用程序、组件、程序、模块、对象或指令序列来实现,这里都可以称为“程序”。计算机程序通常包括将由天然的计算机转换为机器可读的格式并转换为可执行的指令的多个指令。此外,程序还包括驻留在程序本地或在存储器或存储设备中找到的变量和数据结构。此外,这里所描述的各种程序可以基于在本发明的特定实施例中实现的应用程序来标识。然而,应该理解,随后的任何特定程序命名法只是为了方便,因此,本发明不应该只限于只在这样的命名法标识和/或暗示的任何特定的应用程序中使用。
还应该清楚地是,通常计算机程序可以用无数种方式组织成例程、过程、方法、模块、对象等等,以及程序功能可以用各种不同的方式在驻留在典型的计算机内的各种软件层(例如,操作系统、库、API、应用程序、小程序等等)之间分配。应该理解,本发明不仅限于这里所描述的特定组织和分配或程序功能。
本发明可以以硬件、软件或硬件和软件的组合实现。根据本发明的优选实施例的系统可以使用一个计算机系统以集中方式,或者以不同的元素跨多个互连的计算机系统的分布式方式来实现。任何类型的计算机系统或适于执行这里描述的方法的其他装置都适合。典型的硬件和软件的组合可以是具有这样的计算机程序的通用计算机系统,当加载并执行该计算机程序时,控制计算机系统以便它执行这里描述的方法。
每一个计算机系统都可以包括,其中,一个或多个计算机和允许计算机从信号承载介质中读取数据、指令、消息或消息数据包及其他信号承载信息的信号承载介质。信号承载介质可以包括非易失性存储器,如ROM、Flash存储器、磁盘驱动器存储器、CD-ROM及其他永久存储器。另外,计算机介质可以包括,例如,诸如RAM之类的易失性存储器、缓冲器、高速缓存和网络线路。此外,信号承载介质还可以包括允许计算机读取这样的信号承载信息的诸如网络链路和/或网络接口之类的暂时状态介质中的信号承载信息,包括有线网络或无线网络。
虽然说明了本发明的特定实施例,那些精通本技术的普通人员将理解,在不偏离本发明的精神和范围的情况下,可以对特定的实施例进行各种修改。因此,本发明的范围不仅限于特定的实施例,所附的权利要求涵盖在本发明范围内的一切这样的应用、修改和实施例。

Claims (29)

1.一种用于在多个存储器缓冲区大小管理可变大小存储器分区的方法,该方法包括:
接收对于给定大小的存储器缓冲区的第一请求以在其中存储接收到的数据;
通过以下操作窃用存储器缓冲区:
将在存储器缓冲区中高速缓存数据的至少一部分存储到辅助存储器中;以及
将接收到的数据存储在以前存储了高速缓存数据的存储器缓冲区中;
创建缓冲区窃用历史记录,其中,缓冲区窃用历史记录包括用于标识高速缓存数据在辅助存储器中的位置的唯一标识符,其中,缓冲区窃用历史记录用于判断随后的对窃用存储器缓冲区的请求是否为重新访问以前写入到辅助存储器中的高速缓存数据。
2.根据权利要求1所述的方法,其中,创建缓冲区窃用历史记录的过程包括创建具有与存储器缓冲区的窃用顺序关联的序列号的缓冲区窃用缓冲区。
3.根据权利要求1所述的方法,进一步包括:
接收对存储器缓冲区的第二请求以存储其他接收到的数据;以及
使用缓冲区窃用历史记录重新访问辅助存储器内的高速缓存数据的部分。
4.根据权利要求1所述的方法,进一步包括:
将存储器缓冲区分区为组内具有相似大小缓冲区的至少一个子组。
5.根据权利要求4所述的方法,其中,创建缓冲区窃用历史记录的过程包括创建具有与具有相似大小的缓冲区的子组中的存储器缓冲区的窃用顺序关联的序列号的缓冲区窃用缓冲区。
6.根据权利要求5所述的方法,其中,将存储器缓冲区分区为组内具有相似大小缓冲区的至少一个子组的过程包括基于缓冲区窃用历史将存储器缓冲区分区。
7.根据权利要求6所述的方法,其中,将存储器缓冲区分区的过程进一步包括,对于每一个子组,通过以下操作计算子组的优先级:
为窃用的并从子组重新访问的所有缓冲区累积平均差值;
判断子组中的重新访问的重要性;
通过比较每一个子组的优先级来标识存储器缓冲区,
其中,存储器缓冲区位于具有最小优先级的子组内。
8.根据权利要求1所述的方法,进一步包括:
将缓冲区窃用历史记录添加到缓冲区窃用历史队列中,其中,缓冲区窃用历史队列包括零个或多个缓冲区窃用历史记录。
9.一种平衡多个存储器缓冲区大小的方法,包括:
建立包括一个或多个缓冲区窃用历史记录的缓冲区窃用历史队列,其中,一个或多个缓冲区窃用历史记录中的每一个记录都包括标识辅助存储器位置中存储的一个或多个高速缓存数据的唯一标识符;
接收在缓冲区中存储数据的请求;
将接收到的请求与一个或多个缓冲区窃用历史记录中的每一个记录的每一个唯一标识符进行比较;以及
当请求中的数据匹配缓冲区窃用历史记录的其中一个唯一标识符时,从辅助存储器重新访问高速缓存数据。
10.根据权利要求9所述的方法,其中,缓冲区窃用历史记录进一步包括序列号,该方法进一步包括:
计算缓冲区窃用历史记录的序列号和对应的缓冲区大小子组的当前序列号之间的差值;
将差值与对应的缓冲区大小子组进行比较;以及
当对应的缓冲区大小子组至少等于差值时,重新访问高速缓存数据的对应的缓冲区大小子组。
11.根据权利要求10所述的方法,进一步包括:
当对应的缓冲区大小子组小于差值时,从辅助存储器重新读取高速缓存数据。
12.根据权利要求11所述的方法,其中,差值包括在以前的缓冲区窃用和当前请求的重新访问之间,从对应的缓冲区大小子组窃用的缓冲区数量。
13.根据权利要求11所述的方法,进一步包括:
对于多个子组中的每一个子组,其中,每一个子组都包括多个相似大小的缓冲区,通过以下操作计算子组的优先级:
为窃用的并从子组重新访问的所有缓冲区累积平均差值;
判断子组中的重新访问的重要性;以及
通过比较每一个子组的优先级,响应对缓冲区的请求,标识缓冲区窃用目标,其中,缓冲区窃用目标是具有最小优先级的缓冲区。
14.一种平衡多个存储器缓冲区大小的系统,包括:
多个子组内提供的多个缓冲区,其中,子组包含一个或多个相似大小的缓冲区,
缓冲区窃用历史队列包括多个缓冲区窃用历史记录;以及
控制器包括存储器管理器,其中,存储器管理器用于:
接收对于缓冲区的第一请求以在存储器中存储接收到的数据;
从多个缓冲区的一个中标识缓冲区,其中,缓冲区包含高速缓存数据;
通过以下操作窃用缓冲区:
将高速缓存数据存储到辅助存储位置;以及
将接收到的数据存储在缓冲区中;
创建缓冲区窃用历史记录,其中,缓冲区窃用历史记录包括用于标识高速缓存数据在辅助存储器中的位置的唯一标识符,其中,缓冲区窃用历史记录用于判断随后的对窃用存储器缓冲区的请求是否为重新访问以前写入到辅助存储器中的高速缓存数据。
15.根据权利要求14所述的系统,其中,存储器被分区为组内具有相似大小缓冲区的多个子组,其中缓冲区在多个子组之一中分组。
16.根据权利要求14所述的系统,其中,存储器管理器进一步用于:
对于多个子组中的每一个子组,通过以下操作计算优先级:
为窃用的并从子组重新访问的所有缓冲区累积平均差值;
判断子组中的重新访问的重要性;以及
通过比较每一个子组的优先级,标识缓冲区,其中,缓冲区位于具有最小优先级的子组内。
17.根据权利要求14所述的系统,其中,缓冲区窃用历史记录被添加到缓冲区窃用历史队列中。
18.一种平衡多个存储器缓冲区大小的系统,包括:
设置在多个子组内的多个缓冲区,其中,子组包含一个或多个相似大小的缓冲区,以及
缓冲区窃用历史队列包括多个缓冲区窃用历史记录,其中,一个或多个缓冲区窃用历史记录中的每一个记录都包括标识辅助存储器位置中存储的一个或多个高速缓存数据的唯一标识符;以及
控制器包括存储器管理器,其中,存储器管理器用于:
从多个缓冲区窃用历史记录中的一个记录中接收将数据存储在缓冲区中的请求;
将接收到的请求与一个或多个缓冲区窃用历史记录中的每一个记录的每一个唯一标识符进行比较;以及
当随后的请求中的数据匹配缓冲区窃用历史记录的唯一标识符时,从辅助存储器重新访问高速缓存数据。
19.根据权利要求18所述的系统,其中,缓冲区窃用历史记录进一步包括序列号,其中,存储器管理器进一步用于:
计算缓冲区窃用历史记录的序列号和对应的缓冲区大小子组的当前序列号之间的差值;
将差值与对应的缓冲区大小子组进行比较;以及
当对应的缓冲区大小子组至少等于差值的大小时,重新访问高速缓存数据的对应的缓冲区大小子组。
20.根据权利要求14所述的方法,对于平衡根据权利要求16所定义的多个存储器缓冲区大小,其中,存储器管理器进一步用于:
当对应的缓冲区大小子组小于差值的大小时,从辅助存储器重新读取高速缓存数据。
21.根据权利要求14所述的系统,其中,唯一标识符包括缓冲区的数据的磁盘地址。
22.一种用于在多个存储器缓冲区大小管理可变大小存储器分区的计算机程序产品,该计算机程序产品包括:
由处理电路可读的存储介质,以及存储由处理电路执行的用于执行该方法的计算机指令,包括:
接收对于给定大小的存储器缓冲区的第一请求以在其中存储接收到的数据;
通过以下操作窃用存储器缓冲区:
将存储器缓冲区中的高速缓存数据的至少一部分存储到辅助存储器中;以及
将接收到的数据存储在以前存储了高速缓存数据的存储器缓冲区中;
创建缓冲区窃用历史记录,其中,缓冲区窃用历史记录包括用于标识高速缓存数据在辅助存储器中的位置的唯一标识符,其中,缓冲区窃用历史记录用于判断随后的对窃用存储器缓冲区的请求是否为重新访问以前写入到辅助存储器中的高速缓存数据。
23.根据权利要求22所述的计算机程序产品,其中,创建缓冲区窃用历史记录的过程包括创建具有与存储器缓冲区的窃用顺序关联的序列号的缓冲区窃用缓冲区。
24.根据权利要求22所述的计算机程序产品,进一步包括:
接收对存储器缓冲区的第二请求以存储其他接收到的数据;以及
使用缓冲区窃用历史记录重新访问辅助存储器内的高速缓存数据的部分。
25.根据权利要求22所述的计算机程序产品,进一步包括:
将存储器缓冲区分区为组内具有相似大小缓冲区的至少一个子组。
26.根据权利要求25所述的计算机程序产品,其中,创建缓冲区窃用历史记录的过程包括创建具有与具有相似大小的缓冲区的子组中的存储器缓冲区的窃用顺序关联的序列号的缓冲区窃用缓冲区。
27.根据权利要求26所述的计算机程序产品,其中,将存储器缓冲区分区为组内具有相似大小缓冲区的至少一个子组的过程包括:基于缓冲区窃用历史将存储器缓冲区分区。
28.根据权利要求27所述的计算机程序产品,其中,将存储器缓冲区分区的过程进一步包括,对于每一个子组,通过以下操作计算子组的优先级:
为窃用的并从子组重新访问的所有缓冲区累积平均差值;
判断子组中的重新访问的重要性;
通过比较每一个子组的优先级来标识存储器缓冲区,
其中,存储器缓冲区位于具有最小优先级的子组内。
29.根据权利要求22所述的计算机程序产品,进一步包括:
将缓冲区窃用历史记录添加到缓冲区窃用历史队列中,其中,缓冲区窃用历史队列包括零个或多个缓冲区窃用历史记录。
CNB2005100043830A 2004-03-23 2005-01-20 用于平衡多个存储器缓冲区大小的系统及其方法 Expired - Fee Related CN100339837C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/807,552 2004-03-23
US10/807,552 US7146466B2 (en) 2004-03-23 2004-03-23 System for balancing multiple memory buffer sizes and method therefor

Publications (2)

Publication Number Publication Date
CN1673981A true CN1673981A (zh) 2005-09-28
CN100339837C CN100339837C (zh) 2007-09-26

Family

ID=34991532

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100043830A Expired - Fee Related CN100339837C (zh) 2004-03-23 2005-01-20 用于平衡多个存储器缓冲区大小的系统及其方法

Country Status (4)

Country Link
US (2) US7146466B2 (zh)
JP (1) JP4317531B2 (zh)
CN (1) CN100339837C (zh)
TW (1) TW200613974A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000184A1 (en) * 2007-06-28 2008-12-31 Memoright Memoritech (Shenzhen) Co., Ltd Self-adaptive control method for logical strips based on multi-channel solid-state non-volatile storage device
CN113268440A (zh) * 2021-05-26 2021-08-17 上海哔哩哔哩科技有限公司 缓存淘汰方法及系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438003B2 (en) * 2007-04-12 2013-05-07 Cadence Design Systems, Inc. Methods for improved simulation of integrated circuit designs
US8325795B1 (en) 2008-12-01 2012-12-04 Adobe Systems Incorporated Managing indexing of live multimedia streaming
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
US20110040761A1 (en) * 2009-08-12 2011-02-17 Globalspec, Inc. Estimation of postings list length in a search system using an approximation table
CN102354301B (zh) * 2011-09-23 2014-03-19 浙江大学 缓存分区方法
US8971097B2 (en) 2012-12-27 2015-03-03 Intel Corporation SRAM bit-line and write assist apparatus and method for lowering dynamic power and peak current, and a dual input level-shifter
KR102147993B1 (ko) 2013-11-14 2020-08-25 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10841235B2 (en) * 2017-07-20 2020-11-17 Vmware, Inc Methods and apparatus to optimize memory allocation in response to a storage rebalancing event
US11102063B2 (en) 2017-07-20 2021-08-24 Vmware, Inc. Methods and apparatus to cross configure network resources of software defined data centers
US10756967B2 (en) 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack
US10824369B2 (en) * 2018-07-31 2020-11-03 Nutanix, Inc. Elastic method of remote direct memory access memory advertisement
KR102049455B1 (ko) * 2019-05-31 2019-11-27 대한민국 디지털 포렌식 기반의 대용량 전자기록물 이관 시스템 및 방법
CN111897487B (zh) * 2020-06-15 2023-08-18 北京瀚诺半导体科技有限公司 管理数据的方法、装置、电子设备及介质
CN111897488B (zh) * 2020-06-15 2023-08-18 北京瀚诺半导体科技有限公司 管理数据的方法、装置、电子设备及介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
JPH0235544A (ja) * 1988-07-26 1990-02-06 Hitachi Ltd キヤツシユメモリ管理方式
US5150472A (en) * 1989-10-20 1992-09-22 International Business Machines Corp. Cache management method and apparatus for shared, sequentially-accessed, data
JP2822588B2 (ja) * 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
US5247687A (en) * 1990-08-31 1993-09-21 International Business Machines Corp. Method and apparatus for determining and using program paging characteristics to optimize system productive cpu time
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US5289470A (en) * 1992-12-14 1994-02-22 International Business Machines Corp. Flexible scheme for buffer space allocation in networking devices
JP2642576B2 (ja) * 1993-01-26 1997-08-20 日本電気株式会社 複数ページサイズシステムにおける自動ページ数管理方式
JPH0812643B2 (ja) * 1993-03-15 1996-02-07 日本電気株式会社 ページ退避/復元装置
JPH0784886A (ja) * 1993-09-13 1995-03-31 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法およびキャッシュメモリ制御装置
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5675797A (en) * 1994-05-24 1997-10-07 International Business Machines Corporation Goal-oriented resource allocation manager and performance index technique for servers
JPH0869399A (ja) * 1994-08-26 1996-03-12 Fuji Xerox Co Ltd ファイル管理装置
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
JPH10254778A (ja) * 1997-03-14 1998-09-25 Hitachi Ltd 磁気ディスクキャッシュ制御方式
US6070202A (en) * 1998-05-11 2000-05-30 Motorola, Inc. Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
JP2000148587A (ja) * 1998-11-17 2000-05-30 Nec Corp 記憶装置および記憶領域の決定方法
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6519684B1 (en) * 1999-11-23 2003-02-11 Motorola, Inc. Low overhead method for selecting and updating an entry in a cache memory
CN1282025A (zh) * 2000-08-31 2001-01-31 后健慈 动态随机存取内存的记忆页运作方法及其架构
JP3726701B2 (ja) * 2001-04-27 2005-12-14 日本電気株式会社 カーネル空間のデマンドページング・スワップアウト方式および方法
US6662272B2 (en) * 2001-09-29 2003-12-09 Hewlett-Packard Development Company, L.P. Dynamic cache partitioning
JP4266605B2 (ja) * 2002-01-25 2009-05-20 Okiセミコンダクタ株式会社 キャッシュ回路
JP3901002B2 (ja) * 2002-04-23 2007-04-04 日本電気株式会社 ページングシステム、ページング方法、および、ページングプログラム
JP4095840B2 (ja) * 2002-06-25 2008-06-04 株式会社日立製作所 キャッシュメモリ管理方法
US6901483B2 (en) * 2002-10-24 2005-05-31 International Business Machines Corporation Prioritizing and locking removed and subsequently reloaded cache lines

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000184A1 (en) * 2007-06-28 2008-12-31 Memoright Memoritech (Shenzhen) Co., Ltd Self-adaptive control method for logical strips based on multi-channel solid-state non-volatile storage device
US8244966B2 (en) 2007-06-28 2012-08-14 Memoright Memoritech (Wuhan) Co., Ltd. Self-adaptive control method for logical strips based on multi-channel solid-state non-volatile storage device
CN113268440A (zh) * 2021-05-26 2021-08-17 上海哔哩哔哩科技有限公司 缓存淘汰方法及系统

Also Published As

Publication number Publication date
US7146466B2 (en) 2006-12-05
TW200613974A (en) 2006-05-01
US20070067600A1 (en) 2007-03-22
US20050216693A1 (en) 2005-09-29
US7617362B2 (en) 2009-11-10
CN100339837C (zh) 2007-09-26
JP4317531B2 (ja) 2009-08-19
JP2005276198A (ja) 2005-10-06

Similar Documents

Publication Publication Date Title
CN100339837C (zh) 用于平衡多个存储器缓冲区大小的系统及其方法
US20190138221A1 (en) Method and Apparatus for SSD Storage Access
CN1311363C (zh) 生成内容地址的数据处理方法和可内容寻址的存储系统
US8738593B2 (en) Method and apparatus for reducing index sizes and increasing performance of non-relational databases
US7860865B2 (en) System of a hierarchy of servers for query processing of column chunks in a distributed column chunk data store
JP2724269B2 (ja) 要求されたサービス・クラスに基づいて記憶割り当てを行なうデータ記憶管理システムおよび方法
US7447839B2 (en) System for a distributed column chunk data store
US8055666B2 (en) Method and system for optimizing database performance
US7146479B2 (en) Method and apparatus of storage allocation/de-allocation in object-oriented programming environment
US7457935B2 (en) Method for a distributed column chunk data store
CN1664790A (zh) 增加数据存储容量的方法和装置
US20080065602A1 (en) Selecting advertisements for search results
CN1852318A (zh) 适用于对象网络存储的分布式多级缓存系统
CN1601532A (zh) 根据结构相关信息排序文档的改进的系统和方法
CN1975679A (zh) 用于优化分段资源分配的方法和设备
CN1627298A (zh) 描述用户简档、用户优选的方法和结构
CN1786927A (zh) 应用层高速缓存映像知晓和再分配的系统和方法
CN1202257A (zh) 用于定位万维网页以及计算机网络文件的系统和方法
CN1472963A (zh) 分布式视频点播系统及其实现数据存储和访问的方法
CN1147648A (zh) 数据存储装置及存储方法
CN1828556A (zh) 一种数据存储的方法、系统及设备
CN1484151A (zh) 用于将存储器压缩数据存储到存储器压缩磁盘上的方法和系统
CN1477518A (zh) 管理文件系统滤波器驱动器的文件名的系统和方法
US7447864B2 (en) Memory area allocation control device for allocating target information to free area of memory area, storage medium storing its program and its method
CN1499382A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070926

Termination date: 20120120