CN100474269C - 用于管理高速缓存数据的方法和数据处理系统 - Google Patents
用于管理高速缓存数据的方法和数据处理系统 Download PDFInfo
- Publication number
- CN100474269C CN100474269C CNB2006101154708A CN200610115470A CN100474269C CN 100474269 C CN100474269 C CN 100474269C CN B2006101154708 A CNB2006101154708 A CN B2006101154708A CN 200610115470 A CN200610115470 A CN 200610115470A CN 100474269 C CN100474269 C CN 100474269C
- Authority
- CN
- China
- Prior art keywords
- cache
- entries
- speed
- cache entries
- partition identifier
- 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/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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
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)
Abstract
一种用于管理高速缓存数据的用计算机实现的方法、设备和计算机可用代码。将分区标识符与高速缓存中的高速缓存条目相关联,其中该分区标识符标识访问该高速缓存条目的最后分区。响应于该高速缓存条目被移动到相对于该高速缓存的较低级别的高速缓存中,将与该高速缓存条目相关联的分区标识符与位于处理器寄存器中的前一分区标识符相比较。如果与该高速缓存条目相关联的分区标识符与位于处理器寄存器中的前一分区标识符相匹配,则对该高速缓存条目进行标记以形成有标记的高速缓存条目。其中该有标记的高速缓存条目以相对于无标记的高速缓存条目较慢的速率老化。
Description
技术领域
本发明一般地涉及一种改进的数据处理系统,并且特别地涉及一种用于管理数据的用计算机实现的方法和设备。更特别地,本发明涉及一种用于在多级高速缓存系统中管理数据的用计算机实现的方法和设备。
背景技术
高速缓存是一种在数据处理系统中用于加速数据传送的组件。高速缓存可以是临时性的或永久性的。关于处理器所使用的高速缓存,这些类型的高速缓存通常用于使得能够以与使用主存储器相比更高的速度执行指令并且读取和写入数据。指令和数据以块的形式从主存储器传送到高速缓存。通常使用预读(look-ahead)算法来执行这种传送。如果例程中的指令是连续的或者被读取或写入的数据是连续的,就很有可能出现下一个需要的项已经存在于高速缓存中的情形。这种情形可以在数据处理系统中得到较好的性能。
高速缓存的例子包括存储器高速缓存、硬件和软件磁盘高速缓存以及页面高速缓存(page cache)。关于由微处理器用于执行代码的高速缓存,建立了内部提供了一级高速缓存的多个系统,其中以处理器的速度来访问该一级高速缓存。这种一级高速缓存也称作L1高速缓存。此外,大多数系统还包括二级高速缓存,也称作L2高速缓存。这种L2高速缓存通常与处理器相集成。例如,放置在母板上的处理器通常实际包含两个芯片。一个芯片包含具有L1高速缓存的处理器电路。另一个芯片包含L2高速缓存。这些类型的系统还包括三级或L3高速缓存。这种L3高速缓存通常设计为位于母板上的专用存储器组,以提供比主存储器更快、但是比位于处理器本身上的L2高速缓存或L3高速缓存更慢的访问。
L2高速缓存中的条目是最新的,并且当在数据处理系统中切换虚拟分区时,L2高速缓存中的大多数条目需要重新加载。通过共享的处理器逻辑分区(SPLPAR)的活化(Vitalization)是一种使得多个操作系统实例可以共享单个的处理器的技术。在SPLPAR之前,单独的处理器是单个的操作系统的域。为了在单个的处理器上运行多个操作系统实例,定期地停止正在运行的分区,保存其状态,并且在同一处理器上启动另一分区。
当可以从L3高速缓存中获取虚拟分区的L2高速缓存的覆盖区(footprint),则将是所期望的。如果条目没有出现在L3高速缓存中,则要从另一高速缓存或存储器中取出地址。这种情形导致需要更多的时间来获取这种信息。
当在处理器中切换虚拟分区时,为了有利于新的虚拟分区的L2高速缓存覆盖区,L2高速缓存中的大多数条目将被逐出或移除。高速缓存的覆盖区是该高速缓存内的区域,其包含与当前执行分区的运行工作量相关的条目。
L3高速缓存通常用作牺牲性高速缓存(victim cache)。牺牲性高速缓存是一种保存已经从较高级别的高速缓存中逐出或移除的指令和数据的高速缓存。当从存储器中取出新的地址时,L3高速缓存使用最近最少使用(LRU)算法从L3高速缓存中逐出地址。由于来自先前的条目(其已被逐出)的L2条目将很快变得过期或老化,并且因此其将会被从L3高速缓存中逐出。出现这种情形是因为新的虚拟分区不使用由于先前的分区而存在的L2高速缓存中的条目。
因此,当切换回先前的虚拟分区发生时,由于该老化过程,L3高速缓存包含很少的与用于该先前分区的指令或数据有关的信息。较高级别的高速缓存(即L1和L2高速缓存)包含用于当前分区的信息。因此,当进行回到先前的分区的切换时,较高级别的高速缓存中存在很少的用于该分区的信息。因此,用于该分区的大量信息必须从主存储器或某些其他位置获取。这种情形导致在虚拟分区之间进行切换时性能会下降。
发明内容
本发明的各个方面提供了用于管理高速缓存数据的用计算机实现的方法、系统和计算机可用代码。
一方面,本发明提供一种用于管理高速缓存数据的用计算机实现的方法,所述用计算机实现的方法包括:将分区标识符与高速缓存中的高速缓存条目相关联,其中分区标识符标识访问该高速缓存条目的最后分区。响应于将该高速缓存条目移动到相对于该高速缓存的较低级别的高速缓存中,将与该高速缓存条目相关联的分区标识符与位于处理器寄存器中的前一分区标识符相比较。如果与该高速缓存条目相关联的分区标识符与位于处理器寄存器中的前一分区标识符相匹配,则对该高速缓存条目进行标记以形成有标记的高速缓存条目。该有标记的高速缓存条目以相对于无标记的高速缓存条目较慢的速率老化。
另一方面,本发明提供一种用于管理高速缓存数据的数据处理系统,包括:用于将分区标识符与高速缓存中的高速缓存条目相关联的装置,其中所述分区标识符标识访问所述高速缓存条目的最后分区;用于响应于所述高速缓存条目被移动到相对于所述高速缓存的较低级别的高速缓存中,将与所述高速缓存条目相关联的所述分区标识符与位于处理器寄存器中的前一分区标识符相比较的装置;用于如果与所述高速缓存条目相关联的所述分区标识符与位于所述处理器寄存器中的所述前一分区标识符相匹配,则对所述高速缓存条目进行标记以形成有标记的高速缓存条目的装置,其中所述有标记的高速缓存条目以相对于无标记的高速缓存条目较慢的速率老化。
附图说明
所附权利要求中阐明了所确信的本发明所特有的新颖特征。然而,通过参考结合附图阅读的以下对说明性实施例的详细描述,将最好地理解本发明本身以及其优选应用模式、其另外的目的和优点,其中:
图1是其中可以实现本发明的各个方面的数据处理系统的图示;
图2是其中可以实现本发明的各个方面的所示数据处理系统的框图;
图3是示出在根据本发明的说明性实施例管理多级高速缓存系统中的高速缓存条目时所用的各组件的示图;
图4是示出根据本发明的说明性实施例的示例性高速缓存条目的示图;
图5是根据本发明的说明性实施例用于设置处理器寄存器的处理的流程图;
图6是根据本发明的说明性实施例用于处理从L2高速缓存中移除的高速缓存条目的处理的流程图;以及
图7是根据本发明的说明性实施例用于从L3高速缓存中使条目老化并移除条目的处理的流程图。
具体实施方式
现在参考附图,并且特别参考图1,即其中可以实现本发明的各个方面的数据处理系统的图示。图中描述了计算机100,其包括系统单元102、视频显示终端104、键盘106、存储装置108(其可以包括软驱和其他类型的永久性可移动存储介质)以及鼠标110。个人计算机100还可以包括其他的输入装置,例如操纵杆、触摸板、触摸屏、轨迹球、麦克风等等。
计算机100可以使用任意适合的计算机来实现,这些计算机诸如IBMeSever计算机或IntelliStation计算机,其都是位于纽约州阿芒克市的IBM(国际商业机器)公司的产品。尽管所描述的图示只示出了一个计算机,但是本发明的其他实施例也可以以其他类型的数据处理系统(例如网络计算机)来实现。计算机100还优选地包括图形用户界面(GUI),其可以通过驻留于计算机可读介质中的系统软件来实现,其中该计算机可读介质在计算机100中工作。
现在参考图2,示出了其中可以实现本发明的各个方面的数据处理系统的框图。数据处理系统200是计算机的例子,诸如图1中的计算机100,实现本发明的处理的代码或指令可以位于其中。在所描述的例子中,数据处理系统200采用中心体系结构,该体系结构包括北桥和内存控制器中心(MCH)208以及南桥和输入/输出(I/O)控制器中心(ICH)210。处理器202、主存储器204和图形处理器218连接到MCH208。例如,图形处理器218可以通过加速图形端口(AGP)连接到MCH。
在所描述的例子中,局域网(LAN)适配器212、音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM(压缩光盘-只读存储器)驱动器230、通用串行总线(USB)端口和其他通信端口232以及PCI/PCIe(外围组件接口/高速外围组件接口)装置234连接到ICH 210。PCI/PCIe装置可以包括例如以太网适配器、插入卡(add-in card)和用于笔记本计算机的PC卡等。PCI使用卡总线(CardBus)控制器,而PCIe则不使用卡总线控制器。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可以采用例如集成设备电路(IDE)接口或串行高级技术附件(SATA)接口。超级I/O(SIO)装置236可以连接到ICH 210。
操作系统运行于处理器202上,并协调和提供对图2中的数据处理系统200内的各种组件的控制。操作系统可以是诸如高级交互执行体(Advanced Interactive Executive)()操作系统或LINUX操作系统(“eServer”、“pSeries”和“AIX”是国际商业机器公司在美国、其他国家或同时在美国和其他国家的商标,而“Linux”是LinusTorvalds公司在美国、其他国家或同时在美国和其他国家的商标)之类的市面上有售的操作系统。诸如编程系统之类的面向对象的编程系统可以结合操作系统而运行,并从在数据处理系统200上执行的程序或应用提供对操作系统的调用。“”是国际商业机器公司的商标(“Java”是Sun微系统有限公司在美国、其他国家或同时在美国和其他国家的商标)。
用于操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储装置中,并且可以加载到主存储器204中以便由处理器202执行。本发明的处理由处理器202使用用计算机实现的指令来执行,该用计算机实现的指令可以位于诸如主存储器204、只读存储器224之类的存储器中,或者位于一个或多个外围装置中。
本领域的普通技术人员应当意识到,图1-图2中的硬件可以根据实现方式而改变。诸如闪存、等效的非易失性存储器或光盘驱动器等其他的内部硬件或外围装置可以用于补充或替代图1-图2中所描述的硬件。同样,本发明的处理可以应用于多处理器数据处理系统。
在某些说明性例子中,数据处理系统200可以是个人数字助理(PDA),其配备有闪存,用以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,诸如系统总线、I/O总线和PCI总线。当然,总线系统可以采用任意类型的通信架构或体系结构来实现,该架构或体系结构规定了在连接到该架构或体系结构的不同组件或装置之间进行的数据传送。通信单元可以包括用于发送和接收数据的一个或多个装置,诸如调制解调器或网络适配器。存储器可以是例如主存储器204或诸如在MCH 208中见到的高速缓存。处理单元可以包括一个或多个处理器或CPU。在图1-图2中所描述的例子和上述例子并非意图暗示体系结构上的限制。例如,除采取PDA的形式之外,数据处理系统200还可以是写字板计算机(tablet computer)、膝上型计算机或电话装置。
本发明的各不同方面提供了一种用于管理多级高速缓存系统中的数据的用计算机实现的方法、设备和计算机可用程序代码。在这些例子中,多级高速缓存系统包括L1、L2和L3高速缓存。由于虚拟分区交换而从L2高速缓存移动或逐出到L3高速缓存中的条目以比L3高速缓存中的其他条目更慢的速率老化或被移除。通过以较慢的速率使L2高速缓存条目(其在虚拟分区交换期间被逐出)老化,增大了在交换回虚拟分区以在处理器中进行处理时L2高速缓存条目的热覆盖区(hot footprint)出现在L3高速缓存中的可能性。
该说明性实施例在处理器中使用了两个寄存器。第一寄存器包含当前运行分区的标识。该标识称作运行分区标识。第二寄存器包含在处理器中运行的前一分区的标识。该标识称作前一分区标识。
L2高速缓存中的每个条目标有标识最后访问该条目的分区的分区标识。当从L2高速缓存中逐出或移除条目时,如果访问该条目的最后分区与寄存器中的前一分区ID(标识)相匹配,则将该高速缓存条目标记为缓慢老化。通过向该高速缓存条目添加一组比特来执行L3高速缓存中的高速缓存条目的实际老化。在此说明性实施例中,在将高速缓存条目标记为缓慢老化时设置这些比特。在这些例子中,这一个或多个比特还称作一组比特。每当选择一个高速缓存条目以便从L3高速缓存中移除时,检查这组比特。如果这组比特为零,则从L3高速缓存中逐出或移除该条目。否则,则递减该组比特,并将该条目移回到列表的开头。在这些例子中,将条目移回到列表的开头表明该高速缓存条目是最近使用过的高速缓存条目。
现在转向图3,其中根据本发明的说明性实施例描述了示出管理多级高速缓存系统中的高速缓存条目时所用的组件的示图。在这些例子中,处理器300包含L1高速缓存302和L2高速缓存304。另外的高速缓存即L3高速缓存306位于存储器308中。存储器308可以是例如母板上的存储器。L3高速缓存306具有比L1高速缓存302或L2高速缓存304更慢的访问速率。然而,L3高速缓存306具有比系统存储器更快的访问。使用高速缓存控制器310来执行对这些高速缓存中信息的管理。
在这些例子中的高速缓存中的信息包括指令、将由指令来操作的数据或指令和数据的组合。
处理器300中的当前的分区寄存器312是增加的寄存器,其包含当前正在由处理器300运行的分区的当前分区标识。前一分区寄存器314也是在这些例子中所使用的附加的寄存器,并且其包含前一分区标识。该寄存器识别曾经由处理器300运行的前一分区。高速缓存条目316包含在执行一个分区期间处理器300可能使用的信息。在这些例子中,每个高速缓存条目是一个高速缓存行。高速缓存行是通过由高速缓存控制器310执行的高速缓存行填充或回写操作而在主存储器与高速缓存之间传送的大量数据。高速缓存条目316中的每个高速缓存条目与一个分区标识符相关联。该分区标识符标识访问该高速缓存条目的最后分区。
当将当前运行的分区交换出去以运行一个新的分区时,处理器300用该新的分区的标识来设置当前的分区寄存器312。将被交换出去的分区的分区标识符置入前一分区寄存器314中。在这些例子中,这些操作由高速缓存控制器310来执行。
当将新的分区交换进来以便由处理器300来执行时,由于从存储器取出用于该新的分区的新的地址,大多数条目和高速缓存条目316被从L2高速缓存304中移除或逐出,并被置入L3高速缓存306中。困此,在本例中L3高速缓存306用作牺牲性高速缓存。每当选择一个条目以便从L2高速缓存304中移除时,高速缓存控制器310将与该高速缓存条目相关联的分区标识符与位于前一分区寄存器314中的前一分区标识符相比较。如果在这两个标识符之间存在匹配,则当将该高速缓存条目置入高速缓存条目318以及L3高速缓存306中时为该高速缓存条目设置一组比特。
设置这组比特实现了与前一分区寄存器314中的前一分区标识符相关联的条目的更缓慢老化。通过使与前一分区相关联的高速缓存条目的老化变缓,这些高速缓存条目被保持较长的时间段,并且在交换回前一分区以便由处理器300执行时这些条目更有可能是可用的。
在这些说明性的例子中,当L3高速缓存306变得太满时,高速缓存控制器310从高速缓存条目318中移除条目。在这些例子中,当达到或超过某一门限时认为L3高速缓存太满。这一门限可以对应于当L3高速缓存完全充满或在L3高速缓存306中还有一些其他的使用量时。作为替代,可以根据特定的实现方式、响应于任意事件来执行对高速缓存条目的移除。这种事件可以是定期的或不定期的。高速缓存条目被移除是因为该位置是所需的。如果在同余类(congruenceclass)中存在8组比特,则对应于每个同余类只存在8个条目。因此,为了插入第9个条目,必须逐出一个当前的条目。本发明的各个方面以不同的速率使条目老化,以便某些条目在高速缓存中停留得更久。
在这些例子中,使用最近最少使用算法(LRU)来选择用于移除的高速缓存条目。每当选择移除高速缓存条目318中的一个高速缓存条目时,高速缓存控制器310就检查该组比特,并确定该组比特是否等于零。如果该组比特等于零,则从L3高速缓存306中逐出或移除该高速缓存条目。否则,则递减该组比特,并将该条目移回到列表的开头,且将其看作在此时最近使用的高速缓存条目。随着当前分区的执行,前一分区的L2条目很快变得过期。
接着转向图4,其中根据本发明的说明性实施例描述了示出示例性高速缓存条目的示图。高速缓存条目400是位于L2高速缓存(诸如图3中的L2高速缓存304)中的高速缓存条目的例子。高速缓存条目400包含高速缓存信息402以及分区标识符404。高速缓存信息402包含由处理器使用的数据或指令。分区标识符404是最后访问高速缓存条目400的分区的标识。
高速缓存条目406是L3高速缓存(诸如图3中的L3高速缓存306)中存储的高速缓存条目的例子。高速缓存条目406包含高速缓存信息408和比特410。比特410是用于使得L3高速缓存中的高速缓存条目老化的一组比特。当从L2高速缓存移除的高速缓存条目是由被交换出去的前一分区最后访问的,则设置比特410。比特410是一组比特,其根据特定的实现方式可以包括一个或多个比特。每当选择高速缓存条目406以便从L3高速缓存中移除时,递减比特410。如果比特410不等于零,则递减比特410。
否则,从L3高速缓存中移除高速缓存条目406。如果不从L3高速缓存中移除条目406,则在该特定例子中,将该高速缓存条目移动到列表的开头,并且此时将该条目看作是最近使用的高速缓存条目。当然,根据特定的实现方式,高速缓存条目406可以不移动到列表的开头。
现在转向图5,其中根据本发明的说明性实施例描述了用于设置处理器寄存器的处理的流程图。图5中示出的处理可以实现于诸如图3中的高速缓存控制器310之类的装置中。特别地,该处理进行对如图3所示的那些当前分区寄存器和前一分区寄存器的设置。
该处理开始于接收到分区交换的通知(步骤500)。在此之后,该处理识别将由处理器来运行的新的分区(步骤502)。将当前分区标识符的副本复制到前一分区寄存器中(步骤504)。然后,该处理将该新的分区的分区标识符写入当前分区标识符(步骤506),在此之后处理结束。
现在转向图6,其中根据本发明的说明性实施例描述了用于对从L2高速缓存中移除的高速缓存条目进行处理的处理的流程图。图6中示出的处理可以实现于诸如图3中的高速缓存控制器310之类的高速缓存控制器中。在这些例子中,当分区交换发生时发起该处理。
该处理开始于检测到从L2高速缓存中移除高速缓存条目以放置在L3高速缓存中(步骤600)。对访问该高速缓存条目的最后分区进行识别(步骤602)。通过检查与该高速缓存条目相关联的分区标识符而在步骤602中识别该最后的分区。使用来自处理器寄存器的前一分区标识符来标识处理器中的前一分区(步骤604)。在本例中,处理器寄存器是前一分区寄存器。
接着,对该最后分区与前一分区之间是否存在匹配进行确定(步骤600)。通过将与该高速缓存条目相关联的分区标识符与具有处理标识符的前一分区标识符相比较来进行该确定。如果存在匹配,则为该高速缓存条目设置比特(步骤608),在此之后该处理结束。如果不存在匹配,则同样在步骤606中该处理结束。
转向图7,其中根据本发明的说明性实施例描述了用于从L3高速缓存中使条目老化并移除条目的处理的流程图。图7示出的处理可以实现于诸如图3中的高速缓存控制器310之类的高速缓存控制器中。
该处理开始于选择一个高速缓存条目以便从L3高速缓存中移除(步骤700)。接着,对在该选定的高速缓存条目中的该组比特是否等于零进行确定(步骤702)。如果该选定的高速缓存条目中的该组比特不等于零,则递减该组比特(步骤704)。将该高速缓存条目移到列表的开头(步骤706)。将该高速缓存条目移到列表的开头使得该条目成为最近使用的高速缓存条目。接着,对是否要选择更多的高速缓存条目进行确定(步骤708)。如果不存在更多的待选择高速缓存条目,则在此之后处理结束。如果存在更多的待选择高速缓存条目,则处理返回到步骤700,以选择用于从L3高速缓存中移除的高速缓存条目。
返回到步骤702,如果在选定高速缓存条目中的该组比特等于零,则将该高速缓存条目从L3高速缓存中移除(步骤710),处理前进到步骤708。
本发明可以采取完全硬件实施例、完全软件实施例或者同时包含硬件单元和软件单元的实施例的形式。在优选的实施例中,本发明是以诸如高速缓存控制器之类的硬件实现的。在其他的实施例中,本发明是以软件实现的,该软件包括但不限于固件、驻留软件、微代码等。
此外,本发明可以采取可从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该计算机可用介质或计算机可读介质提供程序代码以供计算机或任何指令执行系统使用或结合计算机或任意指令执行系统而使用。出于本描述的目的,计算机可用介质或计算机可读介质可以是任意能够包含、存储、传送、传播或传输供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置而使用的程序的设备。
该介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或设备、装置)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可拆卸的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘以及光盘。目前的光盘例子包括压缩光盘-只读存储器(CD-ROM)、压缩光盘-读/写(CD-R/W)和DVD(数字视频光盘)。
适合于存储和/或执行程序代码的数据处理系统可以包括直接地或通过系统总线间接地连接到存储单元的至少一个处理器。这些存储单元可以包括在实际执行程序代码期间所使用的本地存储器,大容量存储器(bulk storage),以及为至少某些程序代码提供临时存储以便减少在执行期间必须从大容量存储器中获取代码的次数的高速缓存存储器。
输入/输出装置或I/O装置(包括但不限于键盘、显示器、指示装置等)可以直接地或通过中间I/O控制器连接到系统。
网络适配器同样可以连接到系统,以使得数据处理系统能够通过中间的专用的或公共的网络而连接到其他数据处理系统或者远端的打印机或存储装置。调制解调器、电缆调制解调器和以太网卡只是当前可用的几类网络适配器。
已经提出了对本发明的描述,目的是进行说明和描述,而不是旨在穷举或使本发明限于所公开的形式。各种修改和变更对于本领域的普通技术人员是明显的。选择和描述实施例是为了最好地说明发明的原理、实际应用,并使本领域的普通技术人员能够理解本发明的具有适合于预期的特定应用的各种修改的各种实施例。
Claims (12)
1.一种用于管理高速缓存数据的用计算机实现的方法,所述用计算机实现的方法包括:
将分区标识符与高速缓存中的高速缓存条目相关联,其中所述分区标识符标识访问所述高速缓存条目的最后分区;
响应于所述高速缓存条目被移动到相对于所述高速缓存的较低级别的高速缓存中,将与所述高速缓存条目相关联的所述分区标识符与位于处理器寄存器中的先前的分区标识符相比较;以及
如果与所述高速缓存条目相关联的所述分区标识符与位于所述处理器寄存器中的所述前一分区标识符相匹配,则对所述高速缓存条目进行标记以形成有标记的高速缓存条目,其中所述有标记的高速缓存条目以相对于无标记的高速缓存条目较慢的速率老化。
2.根据权利要求1所述的用计算机实现的方法,还包括:
当发生分区交换时,将所述高速缓存条目移动到所述较低级别的高速缓存中。
3.根据权利要求1所述的用计算机实现的方法,还包括:
设定用于所述有标记的高速缓存条目的一组比特。
4.根据权利要求3所述的用计算机实现的方法,还包括:
选择一个特定的高速缓存条目以便从所述较低级别的高速缓存中移除;
确定用于所述特定的高速缓存条目的一组比特是否等于零;
如果用于所述特定的高速缓存条目的所述一组比特等于零,则将所述特定的高速缓存条目从所述较低级别的高速缓存中移除;以及
如果用于所述特定的高速缓存条目的所述一组比特不等于零,则递减所述一组比特。
5.根据权利要求4所述的用计算机实现的方法,其中,
如果确定用于所述特定的高速缓存条目的一组比特是否等于零的结果是,所述一组比特不等于零,则还将所述特定的高速缓存条目移动到高速缓存条目列表的开头。
6.根据权利要求1所述的用计算机实现的方法,其中所述高速缓存是L2高速缓存,并且所述较低级别的高速缓存是L3高速缓存。
7.根据权利要求1所述的用计算机实现的方法,其中所述处理器寄存器是第二处理器寄存器,并且第一处理器寄存器包含当前分区的标识。
8.根据权利要求4所述的用计算机实现的方法,其中使用最近最少使用算法来执行所述选择步骤。
9.一种用于管理高速缓存数据的数据处理系统,包括:
用于将分区标识符与高速缓存中的高速缓存条目相关联的装置,其中所述分区标识符标识访问所述高速缓存条目的最后分区;
用于响应于所述高速缓存条目被移动到相对于所述高速缓存的较低级别的高速缓存中,将与所述高速缓存条目相关联的所述分区标识符与位于处理器寄存器中的前一分区标识符相比较的装置;以及
用于如果与所述高速缓存条目相关联的所述分区标识符与位于所述处理器寄存器中的所述前一分区标识符相匹配,则对所述高速缓存条目进行标记以形成有标记的高速缓存条目的装置,其中所述有标记的高速缓存条目以相对于无标记的高速缓存条目较慢的速率老化。
10.根据权利要求9所述的数据处理系统,还包括用于当发生分区交换时将所述高速缓存条目移动到所述较低级别的高速缓存中的装置。
11.根据权利要求9所述的数据处理系统,还包括用于设定用于所述有标记的高速缓存条目的一组比特以对所述有标记的高速缓存条目进行标记的装置。
12.根据权利要求11所述的数据处理系统,还包括:
用于选择一个特定的高速缓存条目以便从所述较低级别的高速缓存中移除的装置;
用于确定用于所述特定的高速缓存条目的一组比特是否等于零的装置;
用于如果用于所述特定的高速缓存条目的所述一组比特等于零,则将所述特定的高速缓存条目从所述较低级别的高速缓存中移除的装置;以及
用于如果用于所述特定的高速缓存条目的所述一组比特不等于零,则递减所述一组比特的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/201,642 US7337276B2 (en) | 2005-08-11 | 2005-08-11 | Method and apparatus for aging data in a cache |
US11/201,642 | 2005-08-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1912853A CN1912853A (zh) | 2007-02-14 |
CN100474269C true CN100474269C (zh) | 2009-04-01 |
Family
ID=37721793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101154708A Active CN100474269C (zh) | 2005-08-11 | 2006-08-10 | 用于管理高速缓存数据的方法和数据处理系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7337276B2 (zh) |
CN (1) | CN100474269C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711905B2 (en) | 2007-07-16 | 2010-05-04 | International Business Machines Corporation | Method and system for using upper cache history information to improve lower cache data replacement |
US8635380B2 (en) | 2007-12-20 | 2014-01-21 | Intel Corporation | Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning |
US8296522B2 (en) * | 2007-12-20 | 2012-10-23 | Intel Corporation | Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning |
US9465745B2 (en) | 2010-04-09 | 2016-10-11 | Seagate Technology, Llc | Managing access commands by multiple level caching |
US9021206B2 (en) | 2011-08-25 | 2015-04-28 | International Business Machines Corporation | Use of cache statistics to ration cache hierarchy access |
US20130254491A1 (en) * | 2011-12-22 | 2013-09-26 | James A. Coleman | Controlling a processor cache using a real-time attribute |
CN102609363B (zh) * | 2012-02-01 | 2015-08-26 | 蓝汛网络科技(北京)有限公司 | 一种缓存服务器内容的老化方法及缓存服务器 |
US9600417B2 (en) * | 2015-04-29 | 2017-03-21 | Google Inc. | Data caching |
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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594742B1 (en) * | 2001-05-07 | 2003-07-15 | Emc Corporation | Cache management via statistically adjusted slot aging |
US6857046B1 (en) * | 2002-03-28 | 2005-02-15 | Cisco Technology, Inc. | Caching for context switching applications |
US7073030B2 (en) | 2002-05-22 | 2006-07-04 | International Business Machines Corporation | Method and apparatus providing non level one information caching using prefetch to increase a hit ratio |
-
2005
- 2005-08-11 US US11/201,642 patent/US7337276B2/en active Active
-
2006
- 2006-08-10 CN CNB2006101154708A patent/CN100474269C/zh active Active
-
2008
- 2008-01-02 US US11/968,481 patent/US7475194B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US7475194B2 (en) | 2009-01-06 |
US7337276B2 (en) | 2008-02-26 |
US20080133837A1 (en) | 2008-06-05 |
CN1912853A (zh) | 2007-02-14 |
US20070038809A1 (en) | 2007-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100474269C (zh) | 用于管理高速缓存数据的方法和数据处理系统 | |
CN112272816B (zh) | 存储器系统或子系统中的预取信令 | |
TWI377472B (en) | Method and computer system of selecting a command to send to memory | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 | |
CN104050112A (zh) | 用于标记需要写回持久存储的非事务代码区的开头和结束的指令 | |
JP2013502647A (ja) | インサイチュでのメモリのアニール | |
US20080195798A1 (en) | Non-Volatile Memory Based Computer Systems and Methods Thereof | |
CN100589089C (zh) | 处理直接存储器访问请求的设备和方法 | |
EP3696680B1 (en) | Method and apparatus to efficiently track locations of dirty cache lines in a cache in a two level main memory | |
CN106294229A (zh) | 串行接口存储器中的同时读取与写入存储器操作 | |
CN103714015A (zh) | 减少来自侦听过滤器的后无效事务 | |
JP2007188499A (ja) | デマンドページング技法を適用したシステムでページ置換実行時間を短縮させる方法および装置 | |
US7711905B2 (en) | Method and system for using upper cache history information to improve lower cache data replacement | |
EP3005126B1 (en) | Storage systems and aliased memory | |
US20090006670A1 (en) | Cache for a host controller | |
TWI578163B (zh) | 周邊介面電路與周邊記憶體系統 | |
US11010091B2 (en) | Multi-tier storage | |
KR100304318B1 (ko) | 프로세서버스에대한캐시조작의요구에기초해서명령을발행하는방법및장치 | |
JP4566976B2 (ja) | メディアカードにインタフェースするためのシステム及び方法 | |
CN108733479B (zh) | 卸载固态硬盘卡的方法以及使用该方法的装置 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
JP2009054158A (ja) | ディレクトリ・ベースのキャッシュ・システムにおけるメモリ・ディレクトリ更新を少なくするシステムおよび方法ならびに設計構造情報記憶媒体 | |
KR20010006774A (ko) | 캐시 변수의 자동 갱신을 실행하는 방법 및 장치 | |
KR101569049B1 (ko) | 패스 스루 스토리지 디바이스들 | |
US9946656B2 (en) | Completion packet return based on eviction or flush |
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 |