CN101063957A - 管理锁定的高速缓冲存储器中的组替换的系统和方法 - Google Patents

管理锁定的高速缓冲存储器中的组替换的系统和方法 Download PDF

Info

Publication number
CN101063957A
CN101063957A CNA2007100922220A CN200710092222A CN101063957A CN 101063957 A CN101063957 A CN 101063957A CN A2007100922220 A CNA2007100922220 A CN A2007100922220A CN 200710092222 A CN200710092222 A CN 200710092222A CN 101063957 A CN101063957 A CN 101063957A
Authority
CN
China
Prior art keywords
cache
lru
array
identifies
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
CNA2007100922220A
Other languages
English (en)
Other versions
CN100573477C (zh
Inventor
R·霍尔
B·P·汉利
J·J·德门特
K·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 CN101063957A publication Critical patent/CN101063957A/zh
Application granted granted Critical
Publication of CN100573477C publication Critical patent/CN100573477C/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • 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
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

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

管理锁定的高速缓冲存储器中的组替换的系统和方法
技术领域
本申请一般地涉及一种改良的数据处理系统,以及特别地涉及一种处理数据的方法和设备。更特别地,本发明涉及一种管理高速缓冲存储器中的数据的计算机实现方法、设备、以及计算机可用程序代码。
背景技术
高速缓冲存储器是用于存储数据的存储器的一部分,这些数据比那些在需要更长时间才能访问的存储位置中的数据用得更频繁。处理器典型地使用高速缓冲存储器减少访问存储器所需要的平均时间。当处理器想要对主存储器中的一个位置进行读或写时,处理器首先查看该存储器位置是否处在高速缓冲存储器中。如果处理器发现该存储器位置处在高速缓冲存储器中,则发生高速缓冲存储器命中。否则,出现高速缓冲存储器失误。作为高速缓冲存储器失误的结果,处理器立即对该高速缓存线中的数据进行读或写。高速缓存线是高速缓冲存储器中一个具有标签的位置,该标签包含对主存储器中数据的索引,其存储在该高速缓冲存储器中。这个高速缓存线也称为高速缓存块。
处理器发展当前面临的一个设计问题是存储器的等待时间。在许多处理器设计中,从主存储器传送数据到执行单元所需要的循环时间可能超过400个循环。为了帮助解决这个问题,使用本地一级(L1)高速缓冲存储器和本地二级(L2)高速缓冲存储器。本地级别的高速缓冲存储器是用于帮助解决数据的时间定位和空间定位这两个普遍的体系结构问题的存储器的子集。
当操作系统采用环境技术如多任务以及多线程时,引入了本地存储器争用和伪共享(false sharing)的问题。这些应用可能引起高速缓冲存储器抖动(thrash)。这种不确定的存储器再分配将降低诸如预取(prefetch)和逐出(castout)之类的数据定位技术的效率。
可以将应用分成三种数据模式类型:流式、锁定以及随机。流式数据是顺序访问的数据,其可能会被修改,并且然后决不再次引用。锁定数据是关联性特别强的数据,其可能被多次引用或在很长的空闲时间段后引用。通常通过一些随机算法、循环(round robin)算法或最近最少使用(LRU)算法处理分配和替换。软件可以检测其正在使用的数据模式的类型,并应当使用资源管理算法概念来帮助硬件最小化存储器等待时间。组关联高速缓冲存储器(set associative cache)中的由软件控制的组分配和替换方法将针对每种应用创建“虚拟的”操作空间。在一些情况下,软件能将8路组关联高速缓冲存储器划分为5路和3路的组合、6路和2路的组合、7路和1路的组合。将高速缓冲存储器结构划分为条目(如行)和路(如列)。每个条目可以具有多路。在一个8路组关联的高速缓冲存储器中,每个条目中有8路。因此,可以将数据存储在一个条目的8路中的1路中。一路也称为一组。随机数据模式描述随机数据访问。
伪LRU(p-LRU)是一种近似替换策略,用于找到访问高速缓冲存储器同余类内的线的次序,以便在出现高速缓冲存储器失误时,只用新数据替换最近最少访问的线。对每次高速缓冲存储器访问,更新p-LRU以便最后访问的项目是现在最近最多使用的项目以及第二最近最少使用的数据现在变成最近最少使用的数据。
实现完全的LRU是非常昂贵的。对一个N路组关联高速缓冲存储器,每同余类至少需要log2(N!)个位(例如,对一个4路的高速缓冲存储器,每同余类至少需要5个位)。普遍使用的折衷方法是伪LRU。传统上,以二叉树算法实现伪LRU,只使用N-1个位,或对一个8路组关联高速缓冲存储器使用7个位。每个位代表二叉树的一个内部节点,该二叉树的叶片代表N个组。
伪LRU替换的目的是在性能上与完全LRU处理尽可能保持相近,同时节省需要的空间量。然而,在伪LRU处理以一种不平衡方式将8路组关联高速缓冲存储器划分为5路和3路的组合或6路和2路的组合的情况下,在连续高速缓冲存储器失误时,伪PRU处理相对于完全LRU只达到大约百分之四十的性能。另外,在结合了高速缓冲存储器失误和高速缓冲存储器命中的高速缓冲存储器访问中,当前处理只达到完全LRU处理性能的大约百分之四十。
发明内容
本发明提供了一种用于管理锁定的高速缓冲存储器中的组替换的计算机实现方法、设备、以及计算机可用程序代码。响应于程序对高速缓冲存储器的访问,识别基叶(base leaf)所指向的二叉树一侧。确定对识别出的二叉树一侧的访问次数是否等于在该识别出的一侧上与该程序相关联的组数量。如果对识别出的一侧的访问次数等于在该识别出的一侧上与该程序相关联的组数量,则使基叶变为指向二叉树的相反一侧。
附图说明
所附权利要求中给出了被认为可体现说明性实施例特点的新颖特征。然而,通过参考以下可结合附图阅读的对说明性实施例的具体描述,说明性实施例本身和优选使用模式以及其它目的和优势可以得到最好的理解,其中:
图1是其中可以实现说明性实施例的数据处理系统的框图;
图2是说明根据说明性实施例的处理器系统的示图;
图3是说明在根据说明性实施例管理高速缓冲存储器时所使用的组件的示图;
图4是说明根据说明性实施例的二叉树的示图;
图5是说明根据说明性实施例的用于高速缓冲存储器失误情况的等式的示图;
图6是说明根据说明性实施例的用于高速缓冲存储器命中情况的等式的示图;
图7是说明根据说明性实施例描绘LRU位定义的示图;
图8是说明根据说明性实施例的基于图5和图6中所述等式更新LRU位的示图;
图9是说明根据说明性实施例的使用虚拟计数器来替换组的表格;
图10是根据说明性实施例的管理LRU阵列的处理的流程图;以及
图11是根据说明性实施例的用虚拟计数器选择二叉树各侧的处理的流程图。
具体实施方式
现在参考图1,示出了一个其中可能实现本发明的多个方面的数据处理系统的框图。数据处理系统100是本发明的处理和设备可以位于其中的计算机的示例。在所示示例中,数据处理系统100采用集线器体系结构,包括:北桥和存储控制器集线器(MCH)102、南桥和输入/输出(I/O)控制器集线器(ICH)104。处理器单元106、主存储器108、图形处理器110连接到北桥和存储控制器集线器102。
例如,经由一个加速图形端口(AGP)将图形处理器110连接到MCH。处理器单元106包含具有一个或多个处理器的集合。当存在多个处理器时,这些处理器可能是单独封装中的单独处理器。作为选择,处理器可能是一个封装中的多个内核。处理器还可能是多个多内核单元。
这种类型的处理器的一个示例是Cell Broadband EngineTM处理器,它是一种异构处理器。这种处理器具有一种导向(directed toward)分布式处理的处理器体系结构。为了最优地满足许多不同系统和应用的需求,这种结构使得能够实现范围广泛的单处理器或多处理器配置以及存储器配置。依据使用的技术和想要实现的成本/性能特点,这种类型的处理器可包括一个单独的芯片、一个或多个多芯片模块、或一个主板或其他二级封装上的多个单芯片模块。Cell Broadband EngineTM具有一个PowerPC处理器单元(PPE)和多个协处理器单元(SPU)。PPE是通用处理单元,它能执行系统管理功能,如对存储器保护表进行寻址。SPU是复杂性较低的计算单元,它不具有系统管理功能。作为替代,SPU对应用提供计算处理,并且由PPE管理。
在所示示例中,局域网(LAN)适配器112连接到南桥和I/O控制器集线器104,并且音频适配器116、键盘和鼠标适配器120、调制解调器122、只读存储器(ROM)124、硬盘驱动器(HDD)126、CD-ROM驱动器130、通用串行总线(USB)端口和其它通信端口132、以及PCI/PCIe装置134经由总线138和140连接到南桥和I/O控制器集线器104。PCI/PCIe装置可能包括:例如,以太网适配器、插入卡、以及笔记本计算机的PC卡。PCI使用卡总线控制器,然而PCIe不用。例如,ROM124可能是闪速二进制输入/输出系统(BIOS)。例如,硬盘驱动器126和CD-ROM驱动器130可能使用集成驱动电子元件(IDE)或串行高级技术附件(SATA)接口。可将超级I/O(SIO)装置136连接到南桥和I/O控制器集线器104。
图1中,操作系统在处理器单元106上运行,调整并且提供对数据处理系统100内的多种组件的控制。操作系统可能是一个商业可得的操作系统,例如MicrosoftWindowsXP(“Microsoft”和“Windows”是微软公司在美国、其它国家或同时在美国和其它国家的商标)。面向对象的编程系统,例如JaveTM编程系统,可能结合操作系统运行并且提供从在数据处理系统100上执行的Java程序或应用对操作系统的调用(“Java”是Sun Microsystem公司在美国、其它国家或同时在美国和其它国家的商标)。
用于操作系统的指令,面向对象的编程系统,以及应用或程序都位于诸如硬盘驱动器126的存储装置上,并且可以载入主存储器108供处理器单元106处理。处理器单元106通过使用计算机实现指令来执行本发明的处理,计算机实现指令位于存储器中,例如位于主存储器108、只读存储器124中,或位于一个或多个外围装置中。
本领域普通技术人员将意识到硬件可能依据实现而变化。作为对硬件的补充和替代,可以使用其它内部硬件或外围装置,例如闪存、等效的非易失性存储器,或光盘驱动器等。同样,本发明的处理也适用于多处理器数据处理系统。
在一些说明性示例中,数据处理系统100可能是配备了闪存以便为存储操作系统文件和/或用户产生的数据提供非易失性存储的个人数字助理(PDA)。总线系统可能包括一个或多个总线,例如,系统总线、I/O总线以及PCI总线。当然,可以使用在附在架构或体系结构上的不同组件或装置间提供数据传输的任何类型的通信架构或体系结构来实现总线系统。通信单元可能包括一个或多个用于发送和接收数据的装置,例如,调制解调器或网络适配器。存储器例如可能是主存储器108或例如位于北桥和存储控制器集线器102中的高速缓冲存储器。处理单元可能包括一个或多个处理器或CPU。不能将图1中所示示例和上述示例理解为暗示体系结构上的限制。例如,除采取PDA形式之外,数据处理系统100也可能是写字板计算机、膝上计算机或电话装置。
现在转到图2,根据说明性实施例描绘了说明一个处理器系统的示图。处理器系统200是可以位于图1的处理器单元106中的处理器的示例。在这个示例中,处理器系统200包含提取单元202、解码单元204、发布单元206、分支单元208、执行单元210、以及完成单元212。处理器单元200还包含存储器子系统214。存储器子系统214包含高速缓冲存储器阵列216、最近最少使用(LRU)阵列218、LRU控制220、L2载入和存储队列控制222、目录阵列224,以及替换管理表(RMT)226。处理器系统200连接到主机总线228。另外,主存储器单元230、总线控制单元232,以及更多处理器和外部装置234也连接到主机总线228。
在这些示例中,提取单元202从存储器子系统214或主存储器230中提取指令以加快程序的执行。为了避免使处理器必须等待存储器,例如存储器子系统214或主存储器230答复对指令的请求,在需要该指令前,提取单元202从存储器中获取该指令。解码单元204解码指令以供执行。换种说法,解码单元204识别要执行的命令,以及要在其上应用该命令的操作数。发布单元206发送已解码的指令给用于执行的单元,例如,执行单元210。执行单元210是一个执行从发布单元206中接收到的指令的单元的示例。执行单元210执行指令所调用的操作和计算。例如,执行单元210可能包括内部单元,例如浮点单元、算术逻辑单元(ALU),或一些其它单元。完成单元212针对可能由执行单元210不按顺序而执行的指令以程序顺序来确认操作。分支单元208处理指令中的分支。
高速缓冲存储器阵列216包含处理器系统200所需的数据组。也将这些组称为路,这些组也类似于阵列中的列。在这些示例中,高速缓冲存储器阵列216是一个L2高速缓冲存储器。LRU阵列218保持用于N路组关联高速缓冲存储器的位。组关联高速缓冲存储器是一种在次级存储器中具有能映射到同一高速缓冲存储器条目的不同数据的高速缓冲存储器。在8路组关联高速缓冲存储器中,每个条目有8个不同的支路或组。因此,可能有8个不同的数据映射到同一条目。这种系统用于改善高速缓冲存储器命中率性能。这个阵列中每个位代表多叶二叉树的一个内部节点,叶片代表对应的高速缓冲存储器条目的每条支路或每组的最近最少使用信息。LRU控制220包含用于管理高速缓冲存储器阵列216中所存储数据的说明性实施例的处理。替换管理表(RMT)226定义了组关联高速缓冲存储器中哪些组用于替换。在一个8路组关联高速缓冲存储器中,RMT 226是一个8位宽、8条目深的表。一个条目中的每个位可以存储高速缓冲存储器的一条支路的锁定信息。如果值是“1”,则支路可以自由替换。如果值是“0”,则支路锁定为不能替换。为不同程序或存储器空间指派RMT 226中的每个条目。通过例如操作软件的特许模式软件编写RMT程序。L2载入和存储队列控制222控制L2高速缓冲存储器即高速缓冲存储器阵列216中的高速缓冲存储器组的存储和滞留。
目录阵列224存储高速缓冲存储器阵列216中相应高速缓冲存储器条目内的数据的高速缓冲存储器一致性信息、真实地址,以及有效位。该阵列也具有与高速缓冲存储器阵列216相同的组关联结构。例如,在8路组关联高速缓冲存储器中,目录阵列224也具有8条支路。一路也称为一组。目录是一对一匹配的。每次访问高速缓冲存储器阵列216,将同时访问目录阵列224以确定是发生高速缓冲存储器命中还是发生高速缓冲存储器失误以及该条目是否有效。
主存储器单元230包含可通过处理器系统200提取或获取以便执行的指令和数据。在尚未将数据提取到高速缓冲存储器阵列216的情况下,总线控制单元232执行为总线的业务控制器,对来自附在总线上的装置的请求和响应进行仲裁。在这个示例中,当失误发生在执行单元210的L1数据高速缓冲存储器(没有示出)中时,执行单元210发送一个请求和一个地址给存储器子系统214。作为结果,执行单元210使L2载入和存储队列控制222访问LRU阵列218、目录阵列224以及高速缓冲存储器阵列216。通过L1高速缓冲存储器中的高速缓冲存储器失误,可以获得目录阵列224中的数据。目录阵列224返回数据以表明L1高速缓冲存储器中的失误中所请求的数据是否位于高速缓冲存储器阵列216中,这个示例中高速缓冲存储器阵列216用作L2高速缓冲存储器。从目录阵列224返回的数据包括:命中或失误;高速缓冲存储器条目的支路中的数据是有效还是无效;以及条目的存储器一致性状态如何,例如,共享、独享、修改。LRU阵列218将LRU数据返回LRU控制220。LRU控制220还从RMT 226获得该组的锁定信息。RMT 226为高速缓冲存储器阵列216中不同的请求存储器地址范围提供多种替换管理策略。
在这些说明性示例中,高速缓冲存储器系统使用一种“锁定”策略来形成锁定高速缓冲存储器。锁定高速缓冲存储器是其中阻止一个或多个高速缓冲存储器组被替换的高速缓冲存储器。那些高速缓冲存储器组被认为是“已锁定的”。一个例子是第一级中断处理器,操作系统选择该中断处理器来锁定高速缓冲存储器阵列216中的给定组。利用这种信息,LRU控制220计算对高速缓冲存储器阵列216而言最新的最近最少使用的和最近最多使用的高速缓冲存储器组。
如果对数据的请求导致在目录阵列224中的命中,则LRU控制220更新存储在LRU阵列218中的LRU数据。在这种情况下,高速缓冲存储器阵列216包含数据并且没有其它信息。目录阵列224可以被看做是持有高速缓冲存储器阵列中所有其它信息的阵列,这些信息例如地址、有效性、以及高速缓冲存储器一致性状态。当出现一个具有地址的访问目录和高速缓冲存储器阵列的L1高速缓冲存储器失误请求时,如果该地址与存储在目录阵列224的对应条目中的地址匹配,那意味着命中出现在L2高速缓冲存储器阵列中。否则,发生失误。LRU数据的这次更新是在L2高速缓冲存储器即高速缓冲存储器阵列216中的最近最多使用和最近最少使用的组。LRU控制220通过将LRU数据回写到LRU阵列218,根据在此所述的二叉树方案更新LRU数据。响应于在目录阵列224上的命中,高速缓冲存储器阵列216将数据返回执行单元210。
在目录阵列中224的失误导致执行单元210将请求置入L2载入和存储控制222。请求保留在这个组件中直到L2载入和存储控制222从主机总线228获取数据。响应于这个失误,LRU控制220通过将LRU数据回写到LRU阵列218,根据二叉树方案更新LRU数据。LRU数据的这次更新包含在高速缓冲存储器阵列216中的最近最多使用和最近最少使用的高速缓冲存储器组。一旦失误数据从主机总线228返回L2高速缓冲存储器,LRU控制220也将这个数据转发回L1高速缓冲存储器和执行单元210。
现在参考图3,根据说明性实施例描绘了说明在管理高速缓冲存储器中使用的组件的示图。在这个示例中,这些组件包括高速缓冲存储器阵列300、目录阵列302、LRU阵列304、以及伪LRU(p-LRU)控制306。高速缓冲存储器阵列300与图2中的高速缓冲存储器阵列216类似。目录阵列302可以实现为图2中的目录阵列224。LRU阵列304可以实现为图2中的LRU阵列218。p-LRU控制306可以实现为图2中的LRU控制220或其一部分。
该示出出了p-LRU控制306与高速缓冲存储器阵列300、目录阵列302、以及LRU阵列304是如何交互的。只要p-LRU控制306接收到来自执行单元或L2载入和存储队列(没有示出)的载入/存储请求以及地址,p-LRU 306就检查LRU阵列304内的数据。特别地,p-LRU控制306从LRU阵列304获取LRU位。相同数量的条目存在于L2高速缓冲存储器阵列、目录阵列302以及LRU阵列304中。当将一个L1高速缓冲存储器失误请求向下发送到p-LRU控制306时,这个请求还包括地址。p-LRU控制306在对所有三个阵列的查找中使用这个地址,这三个阵列为高速缓冲存储器阵列300、目录阵列302、以及LRU阵列304。在目录阵列中的命中使得在L2高速缓冲存储器阵列中的对应条目返回高速缓冲存储器数据。LRU阵列304中的对应条目将返回LRU位给p-LRU控制306以便更新和替换。如果发生目录阵列302中的失误,则忽略来自高速缓冲存储器阵列300中对应L2高速缓冲存储器阵列条目的数据。当失误数据返回时,将来自对应LRU阵列条目的LRU数据用于替换。
对应LRU条目中所有位将用于计算一次替换。p-LRU控制306检查这些位以选定或选择高速缓冲存储器阵列300中最近最少使用的组以在高速缓冲存储器失误的情况下进行替换。使用如以下参考图4所述的选择处理,选择高速缓冲存储器中的组。对于高速缓冲存储器命中或失误,将新LRU位更新为指向下一个最近最少使用的组。然后p-LRU控制306将新的LRU位和它们的阵列写使能信号发送回LRU阵列304。
现在转到图4,根据说明性实施例描绘了说明二叉树的示图。二叉树或根形树400包含叶片402-414。二叉树400是可以在LRU阵列如图3中的LRU阵列304中实现的二叉树的图形表示。在这些示例中,使用该树来确定将替换高速缓冲存储器中的哪些组。叶片402是基叶并对应位0;叶片404对应位1;叶片406对应位2;叶片408对应位3;叶片410对应位4;叶片412对应位5;以及叶片414对应位6。
在这些示例中,终点叶(final leaf),即叶片408-414,指向组A-H。当然,根据特定实施例可能实现不同数量的组。如果将叶片402中的位0设为等于0,处理向左前行到叶片404。如果将叶片402中的位0设为等于1,处理向右前行到叶片406。只要访问过二叉树中所代表的一个组,p-LRU控制如图3中的p-LRU控制306就将对应的LRU位设置为指向离开该组的方向。
在这些示例中,作为p-LRU中的二叉树算法,实现二叉树400以供使用。当在高速缓冲存储器中存在锁定时,一种不平衡的组替换可能发生,因为,当二叉树400的组被锁定为由应用使用时,二叉树400的一侧可能有更多的访问。二叉树400有两侧。一侧,即左侧,包括叶片404、408、以及410,而另一侧,即右侧,包括叶片406、412、以及414,并且是左侧的相反一侧。重侧(heavy side)是具有更多锁定组的二叉树一侧。
当前的伪LRU系统将一个高速缓冲存储器如图3中的高速缓冲存储器阵列300划分为不平衡的组合。例如,将8路组关联高速缓冲存储器划分为5条支路和3条支路或划分为6条支路和2条支路。例如,组A、B、C、D和E锁定为由程序X使用,组F、G和H锁定为由程序Y使用。因为程序X只能替换组A、B、C、D以及E,因此通过p-LRU只能更新LRU位(0,1,3,4)以便替换。忽略LRU位(2,5,6)。作为结果,在这个示例中每隔一次高速缓冲存储器失误选择组E用于替换。如果发生高速缓冲存储器失误,则选择组D。p-LRU使得通向组D的各个位反转为相反的值,导致位0变成逻辑1。
在这个示例中,因为存在锁定,因此当位0是逻辑1时,通过p-LRU只选择组E用于替换。在下一次失误时,p-LRU控制将位0设回为逻辑0并且选择组B。下一次失误引起位0变成逻辑1,导致再一次选择组E。当发生失误时,p-LRU控制选择位0设置为等于逻辑0的一侧上的不同的组,然而在位0设置为等于逻辑1时p-LRU控制总是选择组E。
对同一同余类的连续10次高速缓冲存储器失误,在完全LRU中每组应当只被选择两次用于替换。在这个示例中,p-LRU五次选择了组E。因此,在连续高速缓冲存储器失误的情况下,只达到完全LRU的性能的大约百分之四十。这种最差的情况可适用于在二叉树的左侧或右侧上有4组被预留或锁定并且在二叉树的另一侧上只预留或锁定一组的任何情况。
说明性实施例使用虚拟计数器416减少了在存在组锁定的高速缓冲存储器中的这种不平衡的组替换。在这些示例中虚拟计数器416位于图3的LRU阵列304中。在这些示例中,对图3的LRU阵列304中的每个条目,使用位0、1、以及4形成虚拟计数器416。这个计数器是一个不以与正常计数器相同方式计数的虚拟计数器。例如,除非位0、1、4=“011”,LRU阵列每个条目的位0才将变成“1”。虚拟计数器416用于强制在叶片402中的位0不在每次对同一同余类进行高速缓冲存储器访问时进行更新。在这些示例中,同余类是高速缓冲存储器阵列的条目或行。
此外,对于具有相同更低组地址的数据,将映射到相同的高速缓冲存储器条目。在8路组关联高速缓冲存储器中,同一高速缓冲存储器条目中可能有8个不同的数据存储。在这些示例中,如果发生对于一组的一次高速缓冲存储器命中或替换,那么就会发生一次高速缓冲存储器访问。
在这些说明性示例中,当虚拟计数器416表明重侧比轻侧发生更多次访问时叶片402中的位0更新。具体而言,在这一示例中,在重侧发生4次命中之后,虚拟计数器416将叶片402中的位0变成逻辑1。在所示示例中,在LRU位0的一侧上有4组锁定并且在另一侧上有1组锁定。以与正常LRU方案相同的方式切换剩下的位,如LRU位1、3和4。在这些说明性示例中只有位0受到虚拟计数器的强制。
说明性实施例在不附加额外LRU位的情况下改善了这种伪LRU系统的性能。在这些说明性实例中,现有的位被用作如虚拟计数器416所示的虚拟计数器。在这些示例中,用于二叉树400的虚拟计数器确保在p-LRU控制四次选择LRU位0的重侧以后,p-LRU控制中的逻辑选择LRU位0的位大小。在这个示例中,当将具有叶片402中的LRU位0、叶片404中的LRU位1、以及位4的虚拟计数器416设置为等于“011”时,p-LRU控制将叶片402中的LRU位0切换成逻辑1以选择组E作为下一个最近使用的组用于替换。作为结果,在这些示例中,在p-LRU控制四次选择叶片402中的位0以后,p-LRU控制选择组E作为下一个最近使用的组替换,而不是重复选择组A-D中的数据。
下面转到图5,根据说明性实施例描绘了说明用于高速缓冲存储器失误情况的等式的示图。等式500是可以在LRU控制如图3中的p-LRU控制306中实现的等式的示例。在部分500中建立计算新LRU位的等式,同时在部分502中建立写入脉冲等式。在部分500中的等式示出了在高速缓冲存储器失误情况下,p-LRU控制计算新的LRU位0、1、3、和4所使用的等式。用于LRU位1、3和4的等式与正常p-LRU控制所使用的等式相同。
每当发生高速缓冲存储器失误或高速缓冲存储器命中,就使用LRU数据计算替换。该数据还需要更新以便对相同高速缓冲存储器条目进行下一次访问。这些等式示出了通过p-LRU控制如何产生更新后的LRU位。对于LRU位0,当旧的LRU位0、1、和4的值=“011”时,只将p-LRU控制变成1。只要因为发生对该高速缓冲存储器阵列的访问而存在更新LRU阵列的需要,就使用写入脉冲等式。
部分502的写入脉冲等式用于节省能量,以便只将那些需要更新的LRU位回写到LRU阵列。那些不需要更新的LRU位将不被写回到LRU阵列。只要发生对L2高速缓冲存储器的访问,写入脉冲等式就产生针对每个更新后的LRU位的能量标记。这些标记用于确定通过p-LRU将什么位控制回写到LRU阵列。所以,当没有发生对L2高速缓冲存储器的访问时,不存在更新LRU阵列的需要。
现在转到图6,根据说明性实施例描绘了说明用于高速缓冲存储器命中情况的等式的示图。等式600是在实现LRU位中使用的说明性等式的示例。可以在LRU控制如图3中的p-LRU控制306中实现这些等式。在部分600中建立计算新LRU位的等式,同时在部分602中建立写入脉冲等式。图6中部分600中的等式示出了在高速缓冲存储器命中情况下p-LRU控制计算新的LRU位0、1、3、和4所使用的等式。
例如,LRU位0包含的LRU位0的值不是“0”就是“1”。LRU位1、3、和4的等式和一个正常p-LRU控制所使用的等式相同。因此,不论是什么LRU位并且只要在组A、B、或C中出现高速缓冲存储器命中,都将更新p-LRU控制的LRU位1、3、和4。当命中组D并且LRU位0、1、和4等于“011”时,将只更新LRU位0。只要因为发生对该高速缓冲存储器阵列的访问而存在更新LRU阵列的需要,就使用部分602的写入脉冲等式。例如,LRU0_WR_EN是LRU_BIT0的能量标记。
现在转到图7,根据说明性实施例描绘了说明LRU位定义的示图。在这个示例中,表700示出了一个LRU阵列中针对不同组名称的LRU位。在这个示例中,这些组名称对应图4的二叉树400中的组A-H。在这个示例中,条目702-716各自对应组A-H。在这些条目中的LRU位值对应到达图4的二叉树中的组所需的值。
现在转到图8,根据说明性实施例描绘了基于图5和图6中所述等式更新LRU位的示图。在表800中,条目802-810分别包含针对组B、C、A、D以及E的更新后的LRU位。这些位是位于图3的LRU阵列304中的位的示例。在这些示例中,p-LRU控制使用具有LRU位0、位1、和位4的虚拟计数器进行这些更新。以这种方式,针对实际的LRU实现达到了增强的性能,实际的LRU实现通常需要芯片上的附加空间。
在高速缓冲存储器命中情况下,仅当在组D处出现高速缓冲存储器命中并且组D是最近最少使用的组时,p-LRU控制才将LRU位0设置为1。这个示例中,组D在参考前面图4所述示例的二叉树的重侧上。根据那个示例,组A、B、C、D以及E锁定为由程序X使用,而组F、G以及H锁定为由程序Y使用。较轻的一侧是二叉树具有较少的针对特定程序锁定的组的一侧。一旦p-LRU控制将LRU位0设置为等于逻辑1,这个位就保持设置为等于1直到将更轻一侧的该组选择用于替换。
现在转到图9,根据说明性实施例描绘了说明使用虚拟计数器来替换组的表格。在这个示例中,表900显示了具有LRU位0、位1、位4的虚拟计数器的用法。在这个示例中,存在条目902-914。每个条目包含动作、当前LRU位、要替换的组以及更新LRU位。p-LRU控制使用虚拟计数器更新LRU位。和在该特定示例中看到的一样,p-LRU控制两次选择组E用于替换,而不是如采用当前使用的处理所发生的一样四次选择组E。因此,虚拟计数器方案提供了相对于典型的伪LRU实现的百分之五十的改进。
现在转到图10,根据说明性实施例描绘了用于管理LRU阵列的处理的流程图。图10中示出的处理可以实现在LRU单元如图3的p-LRU控制306中。特别地,这个处理示出了LRU控制与LRU阵列以及替换管理表之间进行交互的时间安排。
处理开始于从请求器接收一个载入/存储请求和地址(步骤1000)。在这些示例中,例如,请求器是执行单元或L2载入和存储单元队列控制。处理访问LRU阵列和RMT表(步骤1002)。这个访问发生在第一次处理器循环中。处理获得LRU数据和RMT数据并检查LRU数据和RMT数据以识别高速缓冲存储器阵列中的最近最少使用的组(步骤1004)。这一步骤发生在第二次处理器循环中。
其后,处理使用LRU数据和RMT数据以识别下一个最近最少使用的组以及与该组相关联的LRU数据(步骤1006)。在这些示例中,这个特定步骤发生在处理器的第三循环上。下一步,处理器以新数据更新LRU阵列(步骤1008),随后处理结束。新数据是在每次高速缓冲存储器访问时由图5和图6中所示等式生成的新的LRU数据。图5中生成的数据用于高速缓冲存储器失误,而图6中生成的数据用于高速缓冲存储器命中。
现在参考图11,根据说明性实施例描绘了用虚拟计数器选择二叉树一侧的处理的流程图。图11所示的处理可以在如图3的p-LRU控制306的组件中实现。
响应于当在高速缓冲存储器中组被锁定时对组的高速缓冲存储器访问,启动处理。在这些示例中,访问是在组上的高速缓冲存储器命中或对组的替换。处理开始于等待对组的高速缓冲存储器访问发生(步骤1100)。在这些示例中,高速缓冲存储器访问用于一个正在执行的程序。当发生高速缓冲存储器访问时,处理识别二叉树基叶所指向的一侧(步骤1102)。基叶是包含位0的二叉树叶片。其后,处理递增虚拟计数器(步骤1104)。虚拟计数器例如是图4中的虚拟计数器416,并且其保持在LRU阵列如图3的LRU阵列304中。每当发生对组的访问,处理就递增计数器。确定虚拟计数器是否等于识别出的一侧的组数量(步骤1106)。
如果虚拟计数器等于组的数量,则处理改变基叶的值以使其指向二叉树的相反一侧(步骤1108)。其后,处理将虚拟计数器重置为等于零(步骤1110)并且处理结束。回到在步骤1106所进行的确定,如果虚拟计数器不等于组的数量,则处理结束。
说明性实施例可以采取完全硬件实施例、完全软件实施例,或包含硬件和软件单元的实施例的形式。说明性实施例是以软件实现的,该软件包括但不限于固件、驻留软件、微代码等等。
此外,说明性实施例可以采用可从一个计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供可由计算机或任意指令执行系统使用或者结合计算机或任意指令执行系统使用的程序代码。出于描述的目的,计算机可用或计算机可读介质可以是,任何包含、存储、传送、传播、或传输程序的有形设备,其中该程序可供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用。
该介质可以是电子的、磁性的、光的、电磁的、红外线的、或半导体的系统(或设备或装置)或一种传播媒介。计算机可读介质的示例,包括:半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬盘以及光盘。光盘的当前示例,包括压缩光盘-只读存储器(CD-ROM)、可读/写压缩光盘(CD-R/W)以及DVD。
适于存储和/或执行程序代码的数据处理系统将包括至少一个直接或经由系统总线间接连接到存储器元件的处理器。存储器元件可以包括在程序代码的实际执行中所采用的本地存储器、大容量存储器、以及为了在执行中减少必须从大容量存储器获取代码的次数为至少一些程序代码提供临时存储的高速缓冲存储器。
输入/输出或I/O装置(包括但不限于键盘、显示器、指示装置、等等)可以直接或经由插入的I/O控制器连接到系统。
为了使数据处理系统变成能经由插入的专用的或公共的网络连接到其它数据处理系统或远端打印机或存储装置,还可以将网络适配器连接到系统。调制解调器、电缆调制解调器和以太网卡只是当前的可用类型的网络适配器的一小部分。
已提出的对说明性实施例的描述是以说明和描述为目的的,并不旨在表示穷尽或限于所公开形式的说明性实施例。许多修改和变化对本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地说明说明性实施例的原理、实际应用以及使其它本领域普通技术人员能明白针对各种实施例的具有适合于所期望的特定使用的各种修改的说明性实施例。

Claims (13)

1.一种用于管理锁定的高速缓冲存储器中的组替换的计算机实现方法,该计算机实现方法包括:
响应于程序对高速缓冲存储器的访问,识别出基叶所指向的二叉树一侧以形成识别出的一侧;
确定对识别出的一侧的访问数量是否等于在该识别出的一侧上与该程序相关联的组数量;以及
如果对识别出的一侧的访问数量等于在该识别出的一侧上与该程序相关联的组数量,则使基叶变为指向二叉树的相反一侧。
2.根据权利要求1所述的计算机实现方法,还包括:
使用该基叶的值更新最近最少使用阵列。
3.根据权利要求1所述的计算机实现方法,其中虚拟计数器跟踪对识别出的一侧的访问数量。
4.根据权利要求1所述的计算机实现方法,其中该访问是在锁定高速缓冲存储器中的高速缓冲存储器命中或组替换。
5.根据权利要求1所述的计算机实现方法,其中高速缓冲存储器被锁定为使二叉树不平衡。
6.根据权利要求1所述的计算机实现方法,其中高速缓冲存储器具有八个组。
7.根据权利要求1所述的计算机实现方法,其中通过最近最少使用控制执行识别步骤、确定步骤、以及改变步骤。
8.一种高速缓存系统,包括:
高速缓冲存储器阵列,其中各组数据存储在该高速缓冲存储器阵列中并且其中该高速缓冲存储器是锁定的高速缓冲存储器;
最近最少使用阵列,其中该最近最少使用阵列包含二叉树;以及
控制单元,其中该控制单元响应于程序对高速缓冲存储器的访问,识别基叶所指向的二叉树一侧以形成识别出的一侧;确定对识别出的一侧的访问数量是否等于在该识别出的一侧上与该程序相关联的组数量;以及如果对识别出的一侧的访问数量等于在该识别出的一侧上与该程序相关联的组数量,则使基叶变为指向二叉树的相反一侧。
9.根据权利要求8所述的高速缓存系统,其中该控制单元使用该基叶的值更新最近最少使用阵列。
10.根据权利要求8所述的高速缓存系统,其中虚拟计数器跟踪对识别出的一侧的访问数量。
11.根据权利要求8所述的高速缓存系统,其中该访问是在锁定高速缓冲存储器中的高速缓冲存储器命中或组替换。
12.一种处理器,包括:
执行单元;以及
连接到该执行单元的存储器子系统,其中该存储器子系统包括:
高速缓冲存储器阵列;以及
连接到该高速缓冲存储器阵列的控制器,其中该控制器响应于该执行单元对该高速缓冲存储器阵列的高速缓冲存储器访问,识别基叶所指向的二叉树一侧以形成识别出的一侧;确定对识别出的一侧的访问数量是否等于在该识别出的一侧上与该程序相关联的组数量;以及如果对识别出的一侧的访问数量等于在该识别出的一侧上与该程序相关联的组数量,则使基叶变为指向二叉树的相反一侧。
13.根据权利要求12所述的处理器,其中该存储器子系统还包括:
连接到该高速缓冲存储器阵列的载入和存储队列控制,其中该载入和存储队列控制响应于从该执行单元接收到的请求而访问该高速缓冲存储器阵列。
CNB2007100922220A 2006-04-25 2007-04-02 管理锁定的高速缓冲存储器中的组替换的系统和方法 Expired - Fee Related CN100573477C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/380,140 US7516275B2 (en) 2006-04-25 2006-04-25 Pseudo-LRU virtual counter for a locking cache
US11/380,140 2006-04-25

Publications (2)

Publication Number Publication Date
CN101063957A true CN101063957A (zh) 2007-10-31
CN100573477C CN100573477C (zh) 2009-12-23

Family

ID=38620810

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100922220A Expired - Fee Related CN100573477C (zh) 2006-04-25 2007-04-02 管理锁定的高速缓冲存储器中的组替换的系统和方法

Country Status (4)

Country Link
US (1) US7516275B2 (zh)
JP (1) JP5090047B2 (zh)
CN (1) CN100573477C (zh)
TW (1) TW200817897A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104364776A (zh) * 2012-06-15 2015-02-18 华为技术有限公司 使用缓存缺失请求提供缓存替换通知
CN104850508A (zh) * 2015-04-09 2015-08-19 深圳大学 基于数据局部性的访存方法
CN113196247A (zh) * 2018-12-21 2021-07-30 美光科技公司 存储器装置中的信号开发高速缓冲存储

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101107599B (zh) * 2005-03-22 2011-09-21 松下电器产业株式会社 高速缓冲存储器控制方法和高速缓冲存储器控制装置
US7512739B2 (en) * 2006-07-05 2009-03-31 International Business Machines Corporation Updating a node-based cache LRU tree
US8296320B1 (en) * 2007-04-30 2012-10-23 Network Appliance, Inc. Method and system for storing clients' access permissions in a cache
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US8566529B2 (en) * 2008-02-13 2013-10-22 International Business Machines Corporation Method, system and computer program product for generalized LRU in cache and memory performance analysis and modeling
US8195881B2 (en) * 2008-02-26 2012-06-05 International Business Machines Corporation System, method and processor for accessing data after a translation lookaside buffer miss
US8660234B2 (en) 2008-07-31 2014-02-25 International Business Machines Corporation RAM based implementation for scalable, reliable high speed event counters
US8140767B2 (en) * 2009-06-04 2012-03-20 International Business Machines Corporation Cache management through delayed writeback
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
US9164928B2 (en) * 2013-05-22 2015-10-20 Globalfoundries U.S. 2 Llc Validation of cache locking using instruction fetch and execution
GB2528071B (en) * 2014-07-08 2021-04-07 Advanced Risc Mach Ltd Arbitrating and multiplexing circuitry
US11106599B2 (en) * 2016-09-30 2021-08-31 Intel Corporation System and method for replacement in associative memories using weighted PLRU trees
US10528482B2 (en) 2018-06-04 2020-01-07 International Business Machines Corporation Cache management
CN110704541A (zh) * 2019-10-15 2020-01-17 浪潮云信息技术有限公司 一种Redis集群多数据中心高可用的分布式方法及架构
CN112948283B (zh) * 2021-01-25 2024-03-08 中国人民解放军军事科学院国防科技创新研究院 一种Cache替换方法
US11893254B2 (en) * 2021-06-04 2024-02-06 International Business Machines Corporation Dynamic permission management of storage blocks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124238A (ja) * 1992-10-13 1994-05-06 Toshiba Corp 書換え対象エントリ選択方法および装置
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
TW374873B (en) * 1997-06-30 1999-11-21 Hyundai Electronics Ind A high-performance LRU memory capable of supporting multiple ports
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
JP3988485B2 (ja) * 2002-02-25 2007-10-10 セイコーエプソン株式会社 キャッシュ回路、情報処理装置及び電子機器
US7020748B2 (en) * 2003-01-21 2006-03-28 Sun Microsystems, Inc. Cache replacement policy to mitigate pollution in multicore processors
US7055004B2 (en) * 2003-09-04 2006-05-30 International Business Machines Corporation Pseudo-LRU for a locking cache
US20070028055A1 (en) * 2003-09-19 2007-02-01 Matsushita Electric Industrial Co., Ltd Cache memory and cache memory control method
CN1879092B (zh) * 2003-11-12 2010-05-12 松下电器产业株式会社 高速缓冲存储器及其控制方法
US7558921B2 (en) * 2005-08-16 2009-07-07 International Business Machines Corporation Method for data set replacement in 4-way or greater locking cache
US7716423B2 (en) * 2006-02-07 2010-05-11 International Business Machines Corporation Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104364776A (zh) * 2012-06-15 2015-02-18 华为技术有限公司 使用缓存缺失请求提供缓存替换通知
CN104364776B (zh) * 2012-06-15 2018-07-03 华为技术有限公司 使用缓存缺失请求提供缓存替换通知
CN104850508A (zh) * 2015-04-09 2015-08-19 深圳大学 基于数据局部性的访存方法
CN113196247A (zh) * 2018-12-21 2021-07-30 美光科技公司 存储器装置中的信号开发高速缓冲存储
US11934703B2 (en) 2018-12-21 2024-03-19 Micron Technology, Inc. Read broadcast operations associated with a memory device
CN113196247B (zh) * 2018-12-21 2024-04-23 美光科技公司 存储器装置中的信号开发高速缓冲存储
US11989450B2 (en) 2018-12-21 2024-05-21 Micron Technology, Inc. Signal development caching in a memory device

Also Published As

Publication number Publication date
US7516275B2 (en) 2009-04-07
CN100573477C (zh) 2009-12-23
US20070250667A1 (en) 2007-10-25
TW200817897A (en) 2008-04-16
JP2007293839A (ja) 2007-11-08
JP5090047B2 (ja) 2012-12-05

Similar Documents

Publication Publication Date Title
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
CN113508368B (zh) 存储器子系统及其操作方法
CN1240000C (zh) 用于改进超高速缓存性能的输入/输出页面删除确定
EP2542973B1 (en) Gpu support for garbage collection
US20170235681A1 (en) Memory system and control method of the same
CN1262942C (zh) 利用无数据事务获得全局促进工具的方法、设备和系统
US20170109279A1 (en) Partitioning shared caches
CN1272714C (zh) 数据处理系统内分配和访问存储映像工具的方法、设备和系统
US9612975B2 (en) Page cache device and method for efficient mapping
CN1369808A (zh) 储存存储器型式数据的转译旁视缓冲器
EP2430551A2 (en) Cache coherent support for flash in a memory hierarchy
CN1820257A (zh) 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器
TWI489273B (zh) 地址範圍的優先機制
US9489203B2 (en) Pre-fetching instructions using predicted branch target addresses
CN101030215A (zh) 利用流预取历史来改进数据预取性能的方法和系统
US8145870B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
GB2507759A (en) Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache
CN102289409A (zh) 分层可伸缩的存储器分配器
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
WO2020176828A1 (en) Priority scheduling in queues to access cache data in a memory sub-system
CN118020064A (zh) 具有伪lru补充年龄信息的重新引用区间预测(rrip)
CN116795736A (zh) 数据预读取方法、装置、电子设备和存储介质
CN1286006C (zh) 高速缓存系统与管理高速缓存的方法
TWI723069B (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091223

CF01 Termination of patent right due to non-payment of annual fee