CN1258146C - 动态分配关联资源的系统和方法 - Google Patents
动态分配关联资源的系统和方法 Download PDFInfo
- Publication number
- CN1258146C CN1258146C CN03124973.6A CN03124973A CN1258146C CN 1258146 C CN1258146 C CN 1258146C CN 03124973 A CN03124973 A CN 03124973A CN 1258146 C CN1258146 C CN 1258146C
- Authority
- CN
- China
- Prior art keywords
- subregion
- impact damper
- distribution
- resource
- controller
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 239000000872 buffer Substances 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 45
- 230000002596 correlated effect Effects 0.000 claims description 21
- 238000005192 partition Methods 0.000 abstract description 13
- 239000003795 chemical substances by application Substances 0.000 abstract description 9
- 230000008569 process Effects 0.000 abstract description 8
- 238000005457 optimization Methods 0.000 abstract description 3
- 230000002688 persistence Effects 0.000 abstract description 2
- 230000007423 decrease Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了按负荷平衡对关联资源进行分配的方法和结构,其中所述资源根据其参考历史和需要分配/释放给请求过程或“代理”。迫使没能符合最少使用准则的用户代理将逻辑上分配到的资源释放给需求量高的代理。否则,一个代理在有其他需求量高的代理时维持对其资源的控制,从而使资源不会在代理之间来回颠簸。一个关联资源“池”在逻辑上分成m个分区。每个分区用一个小的“分区参考”计数器来记录其使用历史。一个全局“持续性参考”计数器以可编程速率擦除“集参考”计数器历史。低的“分区参考”计数器值意味着使用率低,从而必要时使分区资源可给高使用率的分区使用。可编程门限使准则可以“加权”以优化系统。
Description
技术领域
本发明与计算机系统内存储器资源管理技术有关,具体地说,与用于关联(associative)存储资源(例如高速缓存行和缓冲器)的分配(allocation)和替换(replacement)的改进方法和设备有关。
背景技术
一些传统的运用计算机和其他以“硬件”实现的数据处理系统的系统往往用存储缓冲器和寄存器的阵列,以便由一些过程或“代理(agent)”本地高速访问内容。由于这些资源在大小和数量上都是有限的,因此采用了一些不断重新分配这些资源的方法,以满足一些竞争的代理的不断改变的需求。最为经常的是这些资源为一个给定的代理将信息保留一段短暂的时间,然后资源再被重新分配以适应新的需求。
关联硬件资源管理技术和算法考虑了速度与成本和复杂性之间的折衷,起着尽可能高效率地利用可用资源的作用。一般用最近最少使用(LRU)算法来管理一个分区内的一个有限的关联资源集。这种算法建议将最少使用的资源重新分配给当前或待定的需求。然而,在有多个代理竞争同一个资源分区内的资源时,有可能其中一个或多个代理会独占这个资源集,从而使竞争的代理在它们充分利用一个资源前不断地相互重新分配资源。这种“颠簸”(thrashing)会显著地降低系统性能,因为一些代理相应浪费了不少时间等待一个资源。这种情况在管理“虚拟通道”SDRAM内一些完全关联的“打开页”时特别明显,其中一些地址范围或者“页”保留在SDRAM器件内的缓冲器内,以便高速参考。将一个资源分成多个分区可以将一些可能独占的代理相互分开。然而,这个方案在一个代理没能使用/不需要使用它的分区内的所有资源时会浪费资源。因此,有必要动态地将资源从未充分利用的分区重新分配给高度利用的分区。
发明内容
按照本发明的一个方面,提供了一种利用参考频率对照未命中率重新分配缓冲器资源的系统和方法,用来管理存储资源在存储资源的可变大小逻辑分区中的分布,以动态地适应多个竞争一个有限资源集的代理。本发明希望阻止一些代理独占一个缓冲器资源。此外,本发明希望必要时提供缓冲器的重新分配,而不需要重试请求或等待周期性的重新分配。
本发明的目的是提供为一个数据处理系统内的一些过程或“代理”分配关联硬件资源的可动态适应的对负荷敏感的装置。迫使没能符合最少使用准则的代理将逻辑上分配到的资源释放给需求量高的代理。否则,一个代理在有其他需求量高的代理的情况下可以保持对它的资源的控制,从而使资源不会在代理之间来回颠簸。
本发明的另一个目的是提供一种记录逻辑上分成m个分区的关联资源“池(pool)”的使用情况、提供所述使用情况记录的可编程持续性(programmable consistence)和根据这些记录的与可编程门限和需求量要求的关系分配资源的方法和装置。
一个关联资源“池”逻辑上分成m个各有标称资源集大小n的分区。每个分区用一个小的“分区参考”计数器来记录它的使用历史。一个全局“持续性参考”计数器用来以可编程速率擦除“集参考”计数器历史。低的“分区参考”计数器值意味着使用率低,从而必要时使集资源可给高使用率的集使用。可编程门限使准则可以“加权”,以优化系统。
在本发明中,处理系统与一些代理和一个具有一些资源的存储器连接。本发明具有一个在操作上与存储器连接的存储器控制器、一个与这些代理连接的目录和一个在操作上与目录连接的资源管理控制器。资源管理控制用来分配这些资源在一些分区内的分布。每个分区与至少一个代理关联。资源管理控制器包括一个与存储器控制器连接的替换控制器(replacement controller)和一个与替换控制器连接的用来记录每个分区的使用历史的计数器。替换控制器用来作为使用历史的函数重新分配资源在每个分区内的分布。此外,本发明包括一个用于每个分区的门限寄存器,用来存储一个门限,其中在每个使用历史超过这个门限的分区内保持关联资源的预定最少分配。
计数器用来为每个分区维持一个表示在这个分区内的资源受访问的频度的计数。替换控制器还用来不断重新分配资源的分布和通过将一些资源添加给使用程度较高的分区和从使用程度较低的分区卸下一些资源来重新分配资源的分布。本发明还包括一个在操作上与替换控制器连接的状态寄存器。状态寄存器用来标识每个资源所处的分区。状态寄存器针对每个资源具有一个单独的状态寄存器。状态寄存器包括一个标识每个资源所处的分区的标识符标签。
本发明还揭示了一种在多个代理之间分配关联资源的方法。本发明分配资源在一些分区内的分布,使得每个分区与至少一个代理关联。本发明为每个分区记录使用历史,作为使用历史的函数重新分配资源在每个分区内的分布。本发明重复记录和重新分配过程。重新分配过程将一些资源添加给使用程度较高的分区和从使用程度较低的分区卸下一些资源。记录使用历史为每个分区维持一个表示在这个分区内的资源受访问的频度的计数。
资源只可以在计数超过一个预定值时才在分区之间重新分配。分配过程给资源各附上一个标识符标签,并且标识符标签标识每个资源所处的分区。
附图说明
从以下结合附图对本发明的优选实施例的详细说明中可以更好地理解本发明的以上和其他一些目的、特征和优点,在这些附图中:
图1例示了一个虚拟通道存储器件的结构方框图;
图2例示了具有一个管理一个虚拟通道存储器阵列的关联目录的处理系统;
图3例示了具有一个管理一个虚拟通道存储器阵列的装置的处理系统;以及
图4例示了本发明的方法的状态图。
具体实施方式
现在来看这些附图,特别是图1,其中示出了按照本发明设计的方法和结构的优选实施例。SDRAM器件支持的“页模式(pagemode)”标准,缩短了与DRAM技术关联的固有高访问等待时间。这种特征含有一个内部短等待时间数据寄存器,其宽度足以容纳来自一个所关联的内部比特阵列或“存储体”(bank)的一整页或一整行的数据比特。这个器件接口协议为系统应用存储器控制器提供了“打开”一行(将寄存器加载)、“关闭”一行(将寄存器内容写回存储体)或在“打开”时以短等待时间访问行寄存器的措施。系统应用存储器控制器的作用是维持与系统内存在的一样多的“打开”行,以使访问存储器阵列的平均等待时间最短。然而,由于与一大块存储器关联的只有一个行寄存器,因此在多个过程请求访问涉及一个给定存储体的一些独立行的分开存储器时会出现明显的颠簸。这种状况可能完全取消维持一些打开行的任何优点,在有些情况下还导致比不维持打开行(SDRAM自动预充电模式)更差的性能。
来看图1,所示的是一个采用称为“虚拟通道存储器(VCM)”(引用于此,作为参考,见“Virtual Channel PerformanceAnalysis”,NEC Electronics inc.,1999)的高级体系结构的SDRAM器件的方框图100,与标准的四个直接映射行寄存器相比,它采用了16个完全关联行段寄存器101。这种技术使得在系统应用SDRAM控制器内可以采用高级技巧有效地管理SDRAM行段寄存器以达到最短的平均SDRAM读取等待时间,从而获得最高的系统性能。
本发明的目的是提供可动态适应的对参考负荷敏感的装置,用来将一些关联硬件资源分配给一个数据处理系统内的一些过程或“代理”。一个实施例包括一种通过将关联行段寄存器(缓冲器)划分成为特定处理器保留的一些分区以高效地运用VCM器件内的这些缓冲器的硬件装置和方法,其中存储器控制器硬件调整在一个多处理器系统内处理器通过各自的分区对存储器的访问。然而,熟悉该技术领域的人员可以理解,本发明很容易适用于高效率动态管理一个数据处理系统内的其他关联资源。
来看图2,所示的是一个处理系统200,具有一个或多个处理器201,通过存储器控制器器件202与由VCM组成的主存储器203连接。所有的存储器动作由传统的VCM存储器控制器211施加在地址/控制信号209(通常有SDRAM RAS,CAS,Address,WE,CKE)的状态控制。VCM器件可以在主存储器203内互连成这样一种形式,即其中各有j个器件的一些组协调工作,得到一个可通过一个大小为jk的给定缓冲器组访问的聚合存储块,其中k为通过一个器件缓冲器可访问的存储器量。无论缓冲器是单独运用或成组运用,它们作为一个单元予以管理,其中每个单元可以分别用一个缓冲器号码(B#)独立标识。由于完全关联的缓冲器存在于VCM 203器件内,在控制芯片202外部,因此在控制芯片内需要一个完全关联目录212,以跟踪远程的缓冲器的使用情况。为n个关联的缓冲器中的每个维护一个目录条目(entry)213,每个条目由一个寄存器214和一个比较器215组成。寄存器含有至少一个块标签地址字段和一个有效比特,块标签地址指出通过所关联的缓冲器可访问可能存储块中哪个存储块,而有效比特指出这个缓冲器是否有效。
比较器213在一个存储器请求块地址标签等于目录条目块标签地址而且所关联的有效比特有效时,向存储器控制器发出“命中”信号。在一个存储器请求“命中”一个与一个SDRAM行关联的目录条目时,存储器控制器211就向存储器阵列203发出一个读或写请求。在一个存储器请求未命中一个目录条目时,存储器控制器必须给出一个“激活”命令,打开存储器阵列203内的行。然而,如果需要目录条目替换,存储器控制器211必须首先发出一个“预充电”命令,针对所替换的目录条目标签地址关闭该行,再打开新的行。
来看图3,所示的是一个处理系统300,具有一个缓冲器管理控制逻辑320和与之关联的支援硬件,用来管理缓冲器的使用和向存储器控制器320指出向存储器控制器311请求的是什么类型的存储器动作。还为n个关联缓冲器各配有一个状态寄存器(SR)322,每个寄存器由一个分区ID(PID)段323和一个缓冲器号码(B#)段324组成。每个寄存器将一个给定的缓冲器与m个分区中的一个分区关联。这个寄存器集被配置和管理成一个最近最少使用的(LRU)堆栈,使得最近使用的缓冲器位于堆栈的顶部而LRU缓冲器位于堆栈的底部。每当一个存储器参考命中一个有效缓冲器时,相应的SR(或所关联的指针)从它在堆栈内的当前位置移到堆栈的顶部。如果一个存储器参考未命中一个缓冲器,缓冲器替换控制321就负责选择一个缓冲器予以分配,并在不可得到一个无效缓冲器时从堆栈的底部替换LRU缓冲器。不是以分区为目标、但在分区中命中的来自代理的存储器访问被看作好象这些访问属于这个分区。这防止了一个缓冲器地址在一些分区之间重复或迁移,并确保每个地址在所有分区间是唯一的。
一个能够计数到n或更大的持续性计数器(persistencecounter)325提供用于建立一个对各分区的参考率归一化的参考率份额的装置。对于每个有效的存储器请求,计数器递减。一个可编程计数器门限寄存器326提供用于建立参考率份额的大小的装置,这个大小可以加以改变,以适应性能优化或者将各较大分区的一个较小集内的分区聚合。持续性计数器325在下溢(即递减并为零)时用门限寄存器326的值加载。为m个分区的每个分区各提供一个分区参考计数器327以及一个所关联的分区使用门限328,用于建立可以计量特定分区使用情况的门限。
虽然这个实施例采用四个固定的同样大小的分区,相应于一个最大4处理器系统内每个处理器一个分区,但另一个实施例可以采用可编程的分区大小和数量。此外,另一个实施例也可以为每个分区采用一个可编程的劣势寄存器,以便具有建立与这个综合结构内其他分区相比的劣势或优势。所述优势可以是一个较高的分区计数起点或者是一个使计数以比每个访问计1大的速度进展的加权。
来看图4A-4C,所示的是持续性计数器、分区计数器和按使用情况管理缓冲器的分配控制的并行工作状态示意图。从持续性计数器空闲状态400,一个硬件复位或任何有效存储器访问条件,导致在硬件复位时或者在计数器325为零时用一个最大值326初始化持续计数器325,并在步骤401出现一个有效存储器访问。否则,从步骤401,计数器减1。与这个动作平行,每个分区计数器也相互独立地进行操作,使得m个分区的每个分区各维持一个通过相应的缓冲器集的存储器访问的计数。在一个分区计数器状态机处于空闲状态410的情况下,响应硬件复位条件,在步骤416,分区计数器327初始化为最大分区计数。没有复位条件而在任何分区受到访问时,在步骤411如果持续性计数器为零或者访问的不是分区(i),而且分区计数器(i)为零或者访问的是分区(i)或者说访问命中分区(i),那么控制从步骤414返回到空闲状态。否则从步骤414,分区计数器(i)减1,寄存不活动度直到为零。否则从步骤411进入步骤412,在步骤412,分区计数(i)不小于最大分区计数,控制就返回空闲状态,因为分区计数达到了最大值。否则从步骤412,分区计数器(i)加1,指出活动度增加,然后控制返回到空闲状态。
分配控制对在所有分区内的一个缓冲器没命中作出响应,并用来分配一个缓冲器用于新请求,大多数是置换一个有效缓冲器。在步骤420的这样一个条件后,进入步骤421,如果有任何无效目录条目可得到,在步骤422就将一个所关联的缓冲器分配给与这个请求关联的分区。如有任何替换的情况那样,目录条目用存储器地址块标签更新,并将有效比特置位。相应的状态寄存器(SR)装以分区ID和缓冲器号码,而且移到LRU堆栈内最近使用的位置。否则,从步骤421,所有的目录条目都有效,然后进入步骤423,如果有分区计数器指示活动不够(分区计数(i)为零),就在步骤424选择分区计数等于零的最近最少使用的分区内的最近最少使用的缓冲器以进行替换。否则从步骤423进入步骤425,没有分区利用不足,并且如果当前分区分配不足(即,具有比基本分配少的缓冲器),就在步骤426选择带有缓冲器过分配的最近最少使用的分区内的最近最少使用的缓冲器以进行替换。否则从步骤425,选择当前分区内最近最少使用的缓冲器以进行替换。
因此,如上所述,本发明将各个缓冲器分配入不同的分区,而且用以上所示的表322跟踪这样的分配。一旦一个资源(缓冲器)分配给一个分区,这个资源就只对拥有或控制这个分区的代理可用(严格地说由该代理专用)。本发明根据每个代理或分区的活动程度进行这些分配。也就是说,一些代理将需要较多的缓冲器,而其他一些代理将需要较少的缓冲器,而且这随时间改变。本发明使需要较多缓冲器的代理可以分配到具有较多缓冲器的分区。相反,如果一个给定的代理需要较少的缓冲器,那末所关联的分区将含有较少的缓冲器。
本发明将所有的缓冲器最初平均地分配给不同的代理。这种最初分配称为基本分配。基本分配可以将所有缓冲器平均分配给这些分区,也可以为每个分区提供最少数量的缓冲器,而留下一些缓冲器作为未用并可得到的缓冲器。然后,如需要更多的缓冲器,各个分区首先用这些未用和未分区的缓冲器。此后,这些分区根据使用历史不断地在不同的缓冲器之间得到重新分配。
随着这些缓存的使用,本发明跟踪每个分区内缓冲器使用情况,以确定这些分区是处在缓冲器分配不足还是缓冲器分配过分状态。具体地说,本发明通过用分区计数器(par count)提供哪些分区经常使用它们的缓冲器和哪些分区并不经常使用它们的缓冲器的历史,跟踪缓冲器使用情况。本发明最初将这些分区计数器都设置为一个特定值416。在本发明的一种形式中,对于每个存储器访问,一个给定的分区在存储器访问是对本分区内的一个缓冲器作出时使分区计数器递增(413),而剩下的没有被访问的分区使它们的分区计数器递减(415)。这样,较少使用它们的缓冲器的分区在它们的分区计数器内将具有较低的值,而经常使用它们的缓冲器的分区将具有较高的分区计数值。于是,在一个分区需要一个附加的缓冲器而没有未用的缓冲器可得到时,将对其他分区的分区计数器进行检验,并且分区计数低于一个门限的分区就会失去一个缓冲器,以配给需要该缓冲器的分区。
在一个较复杂的实施例中,本发明利用持续性计数器325来限制分区计数器递减的次数。具体地说,图4A和4B所示的处理只允许与没有受访问的分区关联的分区计数器在持续性计数器已经达到零时可以递减(414,415),此时,持续性计数器立即预置到最大持续性计数326,如步骤401、402所示。因此,本发明由于使用持续性计数器325减慢了分区计数器递减的速率。如上面所提到的,这样的减慢速率可以通过改变最大持续性计数326予以调整。
在代理之间重新分配资源时,本发明采用了若干不同的准则,以确定哪些分区将失去一些缓冲器、哪些缓冲器将卸下和哪些分区将允许得到一些缓冲器。例如,本发明可以只允许一个分区在该分区计数成为低于一个特定值(或者达到零)时失去缓冲器。类似,可以只允许一个分区在该分区计数超过一个特定数(或者为最大值)时增加缓冲器。因此,在一个非常简化的例子中,一个分区只有在它的分区计数器为0时可以列为分配过分的分区。类似,在这个简化的例子中,一个分区只有在它的分区计数器等于最大分区计数时可以列为分配不足的分区。
此外,在从一个分区取得一个缓冲器时,可以使用不同的方法。在一个例子中,用最近最少使用方法从一个分配过分的分区取得缓冲器。本发明还可以设置一些最小量,使每分区可以始终保持至少最少的缓冲器数量。此外,本发明也可以允许分区没有缓冲器。以类似的方式,本发明可以设置一个每个分区可以保持的缓冲器的最大量。这些变量可以由设计人员改变,以使一个具体系统的性能达到最佳。
因此,本发明动态地在不同的分区之间分配缓冲器,为与各分区关联的不同的代理提供适当数量的缓冲器。此外,本发明根据使用情况不断地调整每个分区内的缓冲器的数量。通过动态地控制不同的代理可得到的缓冲器的数量,本发明使系统更为高效,并可以根据代理的需要和使用历史允许所有的代理能等同地访问可获得的尽可能多的缓冲器。
虽然本发明就优选实施例作了说明,但熟悉该技术领域的人员可以理解,本发明可以用在所附权利要求书给出的本发明的精神和专利保护范围内的变型实现。
Claims (26)
1.一种与代理和关联资源连接的系统,所述系统包括:
一个与所述关联资源关联的第一控制器;
一个与所述代理关联的目录部件;以及
一个与所述目录部件关联的资源管理控制器,其中所述资源管理控制用来分配所述关联资源在分区内的分布,其中每个所述分区与至少一个所述代理关联;
其中所述资源管理控制器包括:
一个与所述第一控制器关联的替换控制器;以及
一个与所述替换控制器关联的计数器,用来记录每个所述分区的使用历史,其中所述替换控制器用来作为所述使用历史的函数重新分配所述关联资源在每个所述分区内的所述分布,以及
用于每个所述分区的一个门限寄存器,用来存储一个门限,其中在每个使用历史超过所述门限的所述分区内保持所述关联资源的预定最少分配。
2.在权利要求1中所述的系统,其中所述计数器用来为每个分区维持一个表示在所述分区内的关联资源受访问的频度的计数。
3.在权利要求1中所述的系统,其中所述替换控制器还用来不断重新分配所述关联资源的所述分布。
4.在权利要求3中所述的系统,其中所述替换控制器用来通过将关联资源添加给使用程度较高的分区和从使用程度较低的分区卸下关联资源来重新分配所述关联资源的所述分布。
5.在权利要求1中所述的系统,所述系统还包括一个与所述替换控制器关联的状态寄存器,其中所述状态寄存器用来标识每个关联资源所处的分区。
6.在权利要求1中所述的系统,其中所述状态寄存器包括用于每个所述关联资源的一个单独状态寄存器。
7.在权利要求6中所述的系统,其中每个所述状态寄存器包括一个标识每个关联资源所处的分区的标识符标签。
8.一种与处理器和一个含有缓冲器的存储器连接的处理系统,所述处理系统包括:
一个在操作上与所述存储器连接的存储器控制器;
一个在操作上与所述处理器连接的目录部件;以及
一个在操作上与所述目录部件连接的缓冲器管理控制器,其中所述缓冲器管理控制用来分配所述缓冲器在分区内的分布,其中每个所述分区与至少一个所述处理器关联;
其中所述缓冲器管理控制包括:
一个在操作上与所述存储器控制器连接的替换控制器;以及
一个在操作上与所述替换控制器连接的计数器,用来记录每个所述分区的使用历史,其中所述替换控制器用来作为所述使用历史的函数重新分配所述缓冲器在每个所述分区内的所述分布,以及
用于每个所述分区的一个门限寄存器,用来存储一个门限,其中在每个使用历史超过所述门限的所述分区内保持所述缓冲器的预定最少分配。
9.在权利要求8中所述的系统,其中所述计数器用来为每个分区维持一个表示在所述分区内的缓冲器受访问的频度的计数。
10.在权利要求8中所述的系统,其中所述替换控制器还用来不断重新分配所述缓冲器的所述分布。
11.在权利要求10中所述的系统,其中所述替换控制器用来通过将缓冲器添加给使用程度较高的分区和从使用程度较低的分区卸下缓冲器来重新分配所述缓冲器的分布。
12.在权利要求8中所述的系统,所述系统还包括一个在操作上与所述替换控制器连接的状态寄存器,其中所述状态寄存器用来标识每个缓冲器所处的分区。
13.在权利要求8中所述的系统,其中所述状态寄存器包括用于每个所述缓冲器的一个单独状态寄存器。
14.在权利要求13中所述的系统,其中每个所述状态寄存器包括一个标识每个缓冲器所处的分区的标识符标签。
15.一种在多个代理之间分配关联资源的方法,所述方法包括下列步骤:
分配所述资源在分区内的分布,其中每个所述分区与至少一个所述代理关联;
记录每个所述分区的使用历史;
作为所述使用历史的函数重新分配所述资源在每个所述分区内的所述分布;以及
为使用历史超过一个预定门限的每个所述分区保持所述关联资源的预定最少分配。
16.在权利要求15中所述的方法,所述方法还包括重复所述记录和重新分配的步骤。
17.在权利要求15中所述的方法,其中所述重新分配的步骤包括将资源添加给使用程度较高的分区和从使用程度较低的分区卸下资源。
18.在权利要求15中所述的方法,其中所述记录所述使用历史的步骤包括为每个分区维持一个表示所述分区内的资源受访问的频度的计数。
19.在权利要求18中所述的方法,其中所述资源只可以在所述计数超过一个预定值时在所述分区之间重新分配。
20.在权利要求15中所述的方法,其中所述分配的步骤包括为所述资源附加一个标识符标签,其中所述标识符标签标识每个资源所处的分区。
21.一种在多个处理器之间分配缓冲器的方法,所述方法包括下列步骤:
分配所述缓冲器在分区内的分布,其中每个所述分区与至少一个所述处理器关联;
记录每个所述分区的使用历史;
作为所述使用历史的函数重新分配所述缓冲器在每个所述分区内的所述分布;以及
为使用历史超过一个预定门限的每个所述分区保持所述缓冲器的预定最少分配。
22.在权利要求21中所述的方法,所述方法还包括重复所述记录和重新分配的步骤。
23.在权利要求21中所述的方法,其中所述重新分配的步骤包括将缓冲器添加给使用程度较高的分区和从使用程度较低的分区卸下缓冲器。
24.在权利要求21中所述的方法,其中所述记录所述使用历史的步骤包括为每个分区维持一个表示所述分区内的缓冲器受访问的频度的计数。
25.在权利要求24中所述的方法,其中所述缓冲器只可以在所述计数超过一个预定值时在所述分区之间重新分配。
26.在权利要求21中所述的方法,其中所述分配的步骤包括为所述缓冲器附加一个标识符标签,其中所述标识符标签标识每个缓存所处的分区。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/271,577 | 2002-10-16 | ||
US10/271,577 US6851030B2 (en) | 2002-10-16 | 2002-10-16 | System and method for dynamically allocating associative resources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1490728A CN1490728A (zh) | 2004-04-21 |
CN1258146C true CN1258146C (zh) | 2006-05-31 |
Family
ID=32092498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03124973.6A Expired - Fee Related CN1258146C (zh) | 2002-10-16 | 2003-09-23 | 动态分配关联资源的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6851030B2 (zh) |
JP (1) | JP3962368B2 (zh) |
CN (1) | CN1258146C (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308474B2 (en) * | 2002-11-06 | 2007-12-11 | Oracle International Corporation | Techniques for scalably accessing data in an arbitrarily large document by a device with limited resources |
US7420983B2 (en) * | 2003-03-13 | 2008-09-02 | Alcatel Lucent | Dynamic assignment of re-assembly queues |
US7093149B2 (en) * | 2003-06-09 | 2006-08-15 | Intel Corporation | Tiered secondary memory architecture to reduce power consumption in a portable computer system |
US7107403B2 (en) * | 2003-09-30 | 2006-09-12 | International Business Machines Corporation | System and method for dynamically allocating cache space among different workload classes that can have different quality of service (QoS) requirements where the system and method may maintain a history of recently evicted pages for each class and may determine a future cache size for the class based on the history and the QoS requirements |
US7356648B2 (en) * | 2003-10-02 | 2008-04-08 | International Business Machines Corporation | Shared buffer having hardware controlled buffer regions |
US8515923B2 (en) * | 2003-11-17 | 2013-08-20 | Xerox Corporation | Organizational usage document management system |
JP4435588B2 (ja) * | 2004-01-30 | 2010-03-17 | 株式会社日立製作所 | ストレージシステム |
EP1769352B1 (en) * | 2004-05-21 | 2013-03-20 | Computer Associates Think, Inc. | Method and apparatus for dynamic cpu resource management |
WO2005116828A2 (en) * | 2004-05-21 | 2005-12-08 | Computer Associates Think, Inc. | Method and apparatus for dynamic memory resource management |
JP4233492B2 (ja) * | 2004-06-02 | 2009-03-04 | 富士通マイクロエレクトロニクス株式会社 | アドレス変換装置 |
US8954584B1 (en) * | 2004-08-18 | 2015-02-10 | Oracle America, Inc. | Policy engine for automating management of scalable distributed persistent applications in a grid |
US20060123217A1 (en) * | 2004-12-07 | 2006-06-08 | International Business Machines Corporation | Utilization zones for automated resource management |
US20070043738A1 (en) * | 2005-02-07 | 2007-02-22 | Metavize, Inc. | Methods and systems for reputation based resource allocation for networking |
US8336054B2 (en) * | 2006-07-20 | 2012-12-18 | Hewlett-Packard Development Company, L. P. | System and method for allocating capacity of shared resources to a workload |
US7587521B2 (en) * | 2005-06-23 | 2009-09-08 | Intel Corporation | Mechanism for assembling memory access requests while speculatively returning data |
US7765366B2 (en) * | 2005-06-23 | 2010-07-27 | Intel Corporation | Memory micro-tiling |
US8332598B2 (en) * | 2005-06-23 | 2012-12-11 | Intel Corporation | Memory micro-tiling request reordering |
US7457910B2 (en) * | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US8253751B2 (en) * | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
US7558941B2 (en) * | 2005-06-30 | 2009-07-07 | Intel Corporation | Automatic detection of micro-tile enabled memory |
US8104033B2 (en) | 2005-09-30 | 2012-01-24 | Computer Associates Think, Inc. | Managing virtual machines based on business priorty |
US8225313B2 (en) | 2005-10-19 | 2012-07-17 | Ca, Inc. | Object-based virtual infrastructure management |
US8122450B2 (en) * | 2006-03-30 | 2012-02-21 | International Business Machines Corporation | Method and apparatus for distributing memory in a data processing system |
US20080005494A1 (en) * | 2006-06-07 | 2008-01-03 | Zimmer Vincent J | Supporting flash access in a partitioned platform |
US8024738B2 (en) * | 2006-08-25 | 2011-09-20 | International Business Machines Corporation | Method and system for distributing unused processor cycles within a dispatch window |
GB0618894D0 (en) * | 2006-09-26 | 2006-11-01 | Ibm | An entitlement management system |
US20080144803A1 (en) * | 2006-12-15 | 2008-06-19 | Peeyush Jaiswal | Dynamic agent skill balancing |
US8878860B2 (en) * | 2006-12-28 | 2014-11-04 | Intel Corporation | Accessing memory using multi-tiling |
US8782772B2 (en) * | 2007-09-28 | 2014-07-15 | Microsoft Corporation | Multi-session secure tunnel |
US8006193B2 (en) * | 2007-10-03 | 2011-08-23 | Microsoft Corporation | Web service user experience without upfront storage expense |
JP5217432B2 (ja) * | 2007-12-28 | 2013-06-19 | 富士通株式会社 | セクタ機能付きキャッシュメモリ |
US8291245B2 (en) * | 2008-04-17 | 2012-10-16 | International Business Machines Corporation | Method, apparatus and system for reducing power consumption based on storage device data migration |
US8417842B2 (en) * | 2008-05-16 | 2013-04-09 | Freescale Semiconductor Inc. | Virtual direct memory access (DMA) channel technique with multiple engines for DMA controller |
US8145871B2 (en) * | 2008-06-09 | 2012-03-27 | International Business Machines Corporation | Dynamic allocation of virtual real memory for applications based on monitored usage |
US8516106B2 (en) * | 2009-05-18 | 2013-08-20 | International Business Machines Corporation | Use tag clouds to visualize components related to an event |
US8359421B2 (en) * | 2009-08-06 | 2013-01-22 | Qualcomm Incorporated | Partitioning a crossbar interconnect in a multi-channel memory system |
US20120066444A1 (en) * | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
US8688825B1 (en) * | 2010-09-22 | 2014-04-01 | Amdocs Software Systems Limited | System, method, and computer program for managing distribution of a finite amount of resources |
US8694728B2 (en) * | 2010-11-09 | 2014-04-08 | Vmware, Inc. | Efficient online construction of miss rate curves |
US20120263191A1 (en) * | 2011-04-12 | 2012-10-18 | Red Hat Israel, Inc. | Mechanism For Managing Quotas In a Distributed Virtualization Environment |
US8832687B2 (en) * | 2011-04-20 | 2014-09-09 | Red Hat Israel, Ltd. | Managing quotas in a distributed virtualization environment |
US9817700B2 (en) | 2011-04-26 | 2017-11-14 | International Business Machines Corporation | Dynamic data partitioning for optimal resource utilization in a parallel data processing system |
US20130042238A1 (en) | 2011-08-12 | 2013-02-14 | International Business Machines Corporation | Optimized Virtual Function Translation Entry Memory Caching |
US8954704B2 (en) * | 2011-08-12 | 2015-02-10 | International Business Machines Corporation | Dynamic network adapter memory resizing and bounding for virtual function translation entry storage |
US20130275683A1 (en) * | 2011-08-29 | 2013-10-17 | Intel Corporation | Programmably Partitioning Caches |
CN102681792B (zh) * | 2012-04-16 | 2015-03-04 | 华中科技大学 | 一种固态盘内存分区方法 |
US9734090B2 (en) | 2012-06-21 | 2017-08-15 | Microsoft Technology Licensing, Llc. | Partitioned reference counter |
JP5974720B2 (ja) | 2012-08-09 | 2016-08-23 | 富士通株式会社 | 演算処理装置、情報処理装置および情報処理装置の制御方法 |
US9201896B2 (en) | 2012-11-26 | 2015-12-01 | Red Hat, Inc. | Managing distributed storage quotas |
US9081623B1 (en) | 2012-12-05 | 2015-07-14 | Amazon Technologies, Inc. | Service resource allocation |
JP2014182488A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | 演算処理装置、及び演算処理装置の制御方法 |
US9753526B2 (en) * | 2014-12-23 | 2017-09-05 | Intel Corporation | Systems and methods for synergistic software-hardware power budget management |
US20170052866A1 (en) * | 2015-08-21 | 2017-02-23 | International Business Machines Corporation | Managing a shared pool of configurable computing resources which uses a set of dynamically-assigned resources |
JP6380320B2 (ja) * | 2015-09-29 | 2018-08-29 | 京セラドキュメントソリューションズ株式会社 | 電子機器、情報処理方法及びプログラム |
US10649678B2 (en) * | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
US10218359B2 (en) * | 2017-06-29 | 2019-02-26 | Intel Corporation | Regional partial reconfiguration of a programmable device |
JP7011156B2 (ja) | 2017-11-20 | 2022-01-26 | 富士通株式会社 | ストレージ制御装置およびプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4035778A (en) * | 1975-11-17 | 1977-07-12 | International Business Machines Corporation | Apparatus for assigning space in a working memory as a function of the history of usage |
USRE36989E (en) * | 1979-10-18 | 2000-12-12 | Storage Technology Corporation | Virtual storage system and method |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
-
2002
- 2002-10-16 US US10/271,577 patent/US6851030B2/en not_active Expired - Fee Related
-
2003
- 2003-09-17 JP JP2003325295A patent/JP3962368B2/ja not_active Expired - Fee Related
- 2003-09-23 CN CN03124973.6A patent/CN1258146C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040078532A1 (en) | 2004-04-22 |
JP3962368B2 (ja) | 2007-08-22 |
CN1490728A (zh) | 2004-04-21 |
JP2004164607A (ja) | 2004-06-10 |
US6851030B2 (en) | 2005-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1258146C (zh) | 动态分配关联资源的系统和方法 | |
US11507516B2 (en) | Adaptive cache partitioning | |
JP2675967B2 (ja) | キヤツシユの動的分割方法及びその手段 | |
US7707379B2 (en) | Dynamic latency map for memory optimization | |
US7574556B2 (en) | Wise ordering for writes—combining spatial and temporal locality in write caches | |
US5499354A (en) | Method and means for dynamic cache management by variable space and time binding and rebinding of cache extents to DASD cylinders | |
US8966204B2 (en) | Data migration between memory locations | |
US7500050B2 (en) | Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage | |
US9098417B2 (en) | Partitioning caches for sub-entities in computing devices | |
US20110246742A1 (en) | Memory pooling in segmented memory architecture | |
US9971698B2 (en) | Using access-frequency hierarchy for selection of eviction destination | |
WO2017069907A1 (en) | System and method for a shared cache with adaptive partitioning | |
EP2823403A1 (en) | Hybrid storage aggregate block tracking | |
CN108959113B (zh) | 用于闪存感知堆存储器管理的方法和系统 | |
US8793434B2 (en) | Spatial locality monitor for thread accesses of a memory resource | |
US7107400B2 (en) | System, apparatus, and process for evaluating projected cache sizes | |
CN102063386B (zh) | 一种单载体多目标的缓存系统的缓存管理方法 | |
US20180292988A1 (en) | System and method for data access in a multicore processing system to reduce accesses to external memory | |
US20130031327A1 (en) | System and method for allocating cache memory | |
KR20220110225A (ko) | 액세스 유형 우선 순위에 따른 캐시 관리 | |
US6016529A (en) | Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure | |
CN115421924A (zh) | 一种内存分配方法、装置及设备 | |
US7035980B2 (en) | Effects of prefetching on I/O requests in an information processing system | |
US8065485B2 (en) | Method and apparatus for determining cache storage locations based on latency requirements | |
US20240028202A1 (en) | Optimizing Backend Workload Processing in a Storage System |
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: 20060531 Termination date: 20100923 |