CN1728112A - 用于对芯片多处理器的共享高速缓存器分区的设备和方法 - Google Patents
用于对芯片多处理器的共享高速缓存器分区的设备和方法 Download PDFInfo
- Publication number
- CN1728112A CN1728112A CNA2005100980710A CN200510098071A CN1728112A CN 1728112 A CN1728112 A CN 1728112A CN A2005100980710 A CNA2005100980710 A CN A2005100980710A CN 200510098071 A CN200510098071 A CN 200510098071A CN 1728112 A CN1728112 A CN 1728112A
- Authority
- CN
- China
- Prior art keywords
- cache
- request
- path
- processor
- shared cache
- 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
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
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
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
技术领域
本发明的一个或多个实施例通常涉及集成电路和计算机系统设计的领域,更具体地说,本发明的一个或多个实施例涉及用于对芯片多处理器的共享高速缓存器分区的方法和设备。
背景技术
芯片多处理器(CMP)包括相同管芯(die)上的几个处理器。在共享高速缓存器CMP中,高速缓存器的某一级由芯片上的一些或全部处理器共享和访问。通常,这种共享是有益的,因为处理器运行多线程软件应用,其中这些线程共享数据和指令。通过共享高速缓存器,由不止一个处理器访问的数据的字占用高速缓存器中一个位置。而且,如果其它处理器需要和允许,任何处理器可以使用所有高速缓存器。共享高速缓存器的不利之处在于,如果这些处理器共同请求的容量多于可利用的容量,它们会经历比具有较小的专用高速缓存器的情况多的总高速缓存器未命中。
在成组相联的高速缓冲存储器中,请求在高速缓冲存储器内数据的高速缓存器未命中请求从高速缓存器逐出块,在此被称为“牺牲块”,来为被请求的块腾出空位。依照高速缓存器请求的索引执行成组相联的高速缓存器的访问,该请求用于选择高速缓冲存储器内的一个集合。一旦选择了该集合,就使用高速缓存器请求的标记值来识别包含所请求高速缓存器块的所选择集合内的路径。当高速缓存器请求的标记值的比较未能识别所选择集合内的相应路径时,检测高速缓存器未命中。在共享高速缓存器中,选择要逐出的牺牲块以响应高速缓存器未命中,这随着共享高速缓存器的处理器数目而可能成问题。
附图说明
在附图的图形中,通过举例的方式而不是限定的方式来描述本发明的各种实施例,其中:
图1是依照一个实施例描述芯片多处理器(CMP)的框图,该芯片多处理器包括用来提供共享高速缓存器的分区的控制器。
图2是依照一个实施例进一步描述共享高速缓存器和图1的控制器的框图,其提供共享高速缓存器的高速缓存器分区。
图3是依照一个实施例进一步描述图2中候选牺牲块逻辑的框图。
图4是依照一个实施例描述根据共享高速缓存器分区来选择共享高速缓存器内牺牲块的方法的流程图。
图5是依照一个实施例描述用于对芯片多处理器(CMP)的共享高速缓存器分区的方法的流程图。
图6是依照一个实施例描述用于根据共享高速缓存器的高速缓存器分区方案来选择牺牲块的方法的流程图。
图7是描述使用公知技术的用于设计的仿真、模拟和制造的多种设计表示或格式的框图。
具体实施方式
描述用于对芯片多处理器(CMP)的共享高速缓存器分区的方法和设备。在一个实施例中,如果依照从处理器接收的请求检测共享高速缓存器内的高速缓存器未命中,那么该方法包括来自系统存储器的高速缓存器块的请求。一旦请求高速缓存器块,就依照处理器标识符和接收的请求的请求类型来选择共享高速缓存器内的牺牲块。在一个实施例中,依照处理器标识符和请求类型的牺牲块的选择是基于成组相联的共享高速缓存器的分区来限定根据高速缓存器的分区从可利用高速缓存路径的子集中牺牲块的选择。在一个实施例中,每个置换算法可以使用的高速缓存路径的子集可以因存储器请求的不同类型而不同,比如,需要和预取请求。
在下面的描述中,使用某个术语来描述本发明的特征。例如,术语“逻辑”代表配置为执行一个或多个功能的硬件和/或软件。例如,“硬件”的例子包括,但是不限于或约束为,集成电路、有限状态机或甚至组合逻辑。该集成电路可以采取诸如微处理器、专用集成电路、数字信号处理器、微控制器等处理器的形式。
“软件”的例子包括应用程序、小应用程序、例程或甚至一系列指令的形式的可执行代码。在一个实施例中,制造的产品可以包括带有在其中存储的软件的机器或计算机可读取介质,可以利用该软件来编程计算机(或者其他的电子设备)以依照一个实施例来执行处理。计算机或者机器可读取介质包括但不限于:可编程电子电路、包括易失存储器(例如,随机存取存储器等)和/或非易失存储器(例如,任何类型的只读存储器“ROM”、闪存)的半导体存储器件、软盘、光盘(例如,压缩光盘或者数字视盘“DVD”)、硬盘驱动盘、磁带等。
系统
图1是说明依照一个实施例的芯片多处理器(CMP)100的框图,该芯片多处理器(CMP)包括共享高速缓存器150,它带有高速缓存器分区逻辑200,用来对共享高速缓存器150分区以限制从可利用的高速缓存器路径的子集中选择牺牲块。典型地,CMP 100包含多个处理器核心110(110-1,…,110-N),其制造在相同的管芯上。如图所示,处理器核心(CPU)110连接互连网络130以访问共享高速缓存器150。在一个实施例中,每个CPU 110包括专用核心高速缓存器层次112,该层次可以用于数据的临时存储或者数据的高速缓存。
在一个实施例中,多个CPU 110通过连接到互连网络130的系统存储器互连192访问系统存储器190。在一个实施例中,系统存储器190可以包括,但是不限于包括存储模块的双面存储器封装,每个存储模块中包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态随机存取存储器(SDRAM)、双数据速率(DDR)SDRAM(DDR-SDRAM)、Rambus DRAM(RDRAM)或者任何可支持数据的高速缓冲的器件。
典型地,共享高速缓存器150被CMP 100的多个CPU 110共享。通常,这种共享是有益的,因为CPU 110执行多线程的软件应用,其中这些线程共享数据和指令,因此减少了存储需求,也依照编程需求允许单个CPU 110访问整个共享高速缓存器。不幸地是,共享高速缓存器150的不利之处在于,如果多个CPU 110共同请求的容量大于共享高速缓存器150的可利用容量,那么多个CPU 110可能经历比他们具有较小专用高速缓存器的情况更多的总高速缓存器未命中。
因此,在一个实施例中,共享高速缓存器150通过限制哪些处理器能够分配到哪些路径中来分区。在一个实施例中,共享高速缓存器150是成组相联的共享高速缓存器,依照存储器请求的高速缓存器索引访问该成组相联的共享高速缓存器,该索引标识共享高速缓存器150内的集合。基于高速缓存器索引,在选择的集合中使用请求的标记值来识别包含被请求数据块的路径。可是,如果请求数据块没有包含在集合中(高速缓存器未命中),选择数据块用于逐出共享高速缓存器150来为请求块腾出空间,该数据块在这里被称为“牺牲块”。
在一个实施例中,允许每个CPU 110在共享高速缓存器150的任何和全部路径中找到(使用)数据,无论所述CPU最初是否实际地把数据带入高速缓存器。可是,当高速缓存器控制器(未示出)检测高速缓存器未命中和需要从共享高速缓存器150中逐出牺牲块来为请求块腾出空间时,在一个实施例中,依照从其接收存储器请求的CPU 110,高速缓存器分区逻辑200限制牺牲块从可利用的高速缓存器路径的子集中的选择。在一个实施例中,如图2中所示的一样,在共享高速缓存器150的高速缓存器控制器中实现高速缓存器分区逻辑200。
如图2所示,在一个实施例中,高速缓存器分区逻辑包括置换逻辑220、连同高速缓存器控制器210和侯选牺牲块逻辑230,依照共享高速缓存器150的分区将牺牲块选择限制到可利用高速缓存器路径的子集。在一个实施例中,为不同类型的存储器请求(例如需要和预取请求)改变可以被置换逻辑220使用的高速缓存路径的子集。典型地,共享高速缓存器150可以包括M个路径(W1152-1,W2152-2,…,WM152-M)。因此,当CPU 110检测到各自专用核心高速缓存器112内的高速缓存器未命中时,CPU 110可以将高速缓存器请求发送到共享高速缓存器150的高速缓存器控制器210。
在一个实施例中,向解码器160提供与高速缓存器请求关联的索引值204来识别共享高速缓存器150内的集合。一旦识别了该集合,将与高速缓存器请求关联的标记值202与共享高速缓存器150的M个路径152(152-1,…,152-M)中每一个相比较,来识别包含被请求高速缓存器块的路径。然而,在一个实施例中,如果检测到高速缓存器未命中,候选牺牲块逻辑230和置换逻辑220限制高速缓存器控制器210在通过索引204识别的集合内选择牺牲块。
典型地,N个处理器(CPU 110-1,…,110-N)共享共享的高速缓存器150的M个路径152。在一个实施例中,高速缓存器分区逻辑200可以依照N个CPU 110和CPU 110发出的T种存储器请求对共享高速缓存器150分区。在一个实施例中,N乘T个M位的寄存器(路径寄存器)标记为D[i][j](其中i位于[0…N-1]范围内和j位于[0…T-1]范围内)。在一个实施例中,路径寄存器(用d[i][j][b]表示,b位于[0…M-1]范围内)中每位表示无论是(1)或者是(0)CPUi能够分配到路径b中用于j型高速缓存器请求的高速缓存器未命中。
在一个实施例中,变量“i”表示发出高速缓存器请求的CPU的处理器标识符。如在此所述,处理器标识符定义成通过它能够区分一个处理器与CMP 100的其他处理器的任何信号、数据序列或者其他机制。在一个实施例中,硬件标识符分配给CMP 100的每个处理器或者CPU 110作为处理器标识符(CPU-D)。在可选择的实施例中,处理器标识符或者CPU-ID是序号或者其他的数字器件识别手段,以将各自处理器与CMP 100内的另一个处理器区分。
如在此所述,术语“处理器标识符”还可选择地称为请求者标识符,当请求者为CMP 100的处理器时,请求者标识符等于处理器标识符。但是,所属领域的技术人员会认识到,在此描述的高速缓存器分区方案不限于由处理器发出的高速缓存器请求,以及可以包括CMP 100的其他装置发出的高速缓存器请求,比如,存储器控制器向共享高速缓存器150发出的高速缓存器请求,同样属于权利要求主题范围内。
在一个实施例中,如参照图3的描述,提供了路径寄存器的实现。典型地,依照处理器标识符(CPU ID)206和请求类型(REQ-TYPE)208为查阅表(d)240编索引。基于这两个值,查阅表240识别标识路径寄存器250的位置242,在此也称为“M位屏蔽”。在一个实施例中,M位屏蔽直接对应于共享高速缓存器150的M个路径152中的每一个。
因此,再次参看图2,在一个实施例中,向逻辑门170(170-1,…170-M)提供M位路径屏蔽250,逻辑门接收来自共享高速缓存器150的有效性位154(154-1,…154-M)。一旦收到,置换逻辑220可以依照设置的M位路径屏蔽250的相应位252(252-1,…,252-M)在高速缓存器索引204选择牺牲块。因此,当CPU i在地址a上专用核心高速缓存器112中未命中时,CPU 110-i发送对块a的请求给共享高速缓存器150。在一个实施例中,共享高速缓存器控制器210检测块a是否在共享高速缓存器150中存在。
如果块a存在,该共享高速缓存器将块a返回到处理器i。可是,如果块a不存在,共享高速缓存器将发送对块a的请求到系统存储器190。在一个实施例中,需要高速缓存器控制器210驱逐在高速缓存器索引204的M-1个块其中之一来为被请求块a腾出空间。在一个实施例中,通过共享高速缓存器150的高速缓存器分区逻辑200的置换逻辑220实现牺牲块的选择。
在一个实施例中,置换逻辑通过使用路径寄存器250(d[i][k])选择牺牲块用于CPU 110-i的类型k的存储器请求。如果寄存器d[i][k]中位b被设置(d[i][k][b]=1),那么路径b是要逐出的候选者。在一个实施例中,当设置了寄存器d[i][k]中多个位时,对于逐出的牺牲块有多个选择。在一个实施例中,当存在多个候选的牺牲块时,置换逻辑220选择最近最少使用的路径用于逐出。现在提供用于实现一个或多个上面描述的实施例的程序方法。
操作
例如,依照一个实施例,如图2中描述的一样,图4是描述从分区的共享高速缓存器中选择牺牲块的方法300的流程图。在步骤块326,确定是否检测到共享高速缓存器内的高速缓存器未命中。如果没有检测到高速缓存器未命中(“高速缓存器命中”),那么在步骤块328,为请求者提供被请求块,请求者是例如处理器核心或者芯片多处理器(CMP)的CPU。否则,在步骤块330,依照接收的请求给系统存储器发出一个对于所请求块的请求。
在一个实施例中,在步骤块340,依照请求者ID和接收请求的请求类型从共享高速缓存器中为逐出选择一个牺牲块。在一个实施例中,如图2中所示,由置换逻辑220执行牺牲块的选择。在步骤块360,例如,由高速缓存器控制器从共享高速缓存器中逐出被选择的牺牲块。在步骤块370,为请求者提供所请求的高速缓存器块。在步骤块380,将所请求的高速缓存器块存储在共享高速缓存器的一部分内,牺牲块从该部分中被逐出。
图5是依照一个实施例描述用于对共享高速缓存器分区来限制牺牲块选择的方法310的流程图。在步骤块312,从共享一个高速缓存器的多个请求者中选择诸如CMP的CPU的请求者。在步骤块314,为所选择的请求者选择存储器请求类型。一旦选择了,在步骤块316,为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或一个以上路径。在一个实施例中,存储器请求类型可以包括,但是不限于,下载请求、存储请求、数据预取、数据推测、需要请求等。
在一个实施例中,在步骤块318,依照步骤块316指定的路径产生M位屏蔽。例如,与图3中描述的一样,M位路径屏蔽或者路径寄存器250包括位字段,该位字段对应于共享高速缓存器150内的每种路径。因此,当在高速缓存器索引204指示的集合中选择要逐出的牺牲块时,M位路径屏蔽250内的每个设置位标识潜在的牺牲块,可以逐出该牺牲块来为所请求的数据块腾出空间。
一旦产生M位路径屏蔽或者路径寄存器,在步骤块320,依照选择的请求者的请求者标识符(例如,CPU_ID)和请求类型在表内产生条目来标识M位路径屏蔽。在一个实施例中,例如,形成与图3中一样的一个表,该表按照CPU_ID 206和REQ_TYPE编索引。在步骤块322,为每种存储器请求类型重复步骤块314-320。在步骤块324,为每个请求者重复步骤块312-322,所述请求者是诸如芯片多处理器的每个处理器核心,其共享一个共享高速缓存器。
依照例如与图3中描述的一样的一个实施例,图6是描述共享高速缓存器内响应请求块的高速缓存器未命中从共享高速缓存器中选择牺牲块的方法350的流程图。在步骤块352,依照请求者和请求类型查询表以识别M位路径屏蔽,该M位路径屏蔽可以在寄存器或者其他的数据存储设备中实现。在步骤块354,依照接收请求的高速缓存器索引来访问共享高速缓存器的一个集合,例如,与图2描述的一样。在步骤块356,依照M位路径屏蔽的至少一个设置位识别用于该集合的至少一个牺牲块。
换句话说,与上面描述的一样,在接收请求的索引所标识的共享高速缓存器的一个集合中M位路径屏蔽内的每个设置位识别候选牺牲块。在一个实施例中,当从逻辑230收到的M位屏蔽250包括多个设置位时,图2的置换逻辑220将选择一个最近最少使用的路径152。与在此描述的一样,各种信号可以代表高态有效信号或者低态有效信号。因此,与这里描述的一样,术语“断言”、“正断言”、“已断言”、“设置”、“正设置”、“取消断言”“已取消断言”、“正取消断言”或者其他类似的术语可以指数据信号,该数据信号是高态有效信号或者是低态有效信号。因此,可交换地使用与信号有关的这种术语来要求或者暗示高态有效信号或者低态有效信号。
尽管根据芯片多处理器的共享高速缓存器描述了上述的一个或多个实施例,但是本领域的技术人员会意识到在此描述的实施例可以用于其他系统配置,在该配置中一个或多个处理器共享一个高速缓存器。此外,提供依照存储器请求和处理器ID的高速缓存器的分区,作为实现上面描述的多个实施例的一个实例。但是,共享高速缓存器的附加分区方案限制牺牲块的选择也是可能的,同样保持在上面描述的实施例的范围内。
图7是描述使用公开技术的设计的仿真、模拟和制造的各种表示或者格式的框图。表示设计的数据可以代表许多方式的设计。首先,在仿真中使用硬件描述语言或者另一种功能描述语言可以表示硬件是有用的,该功能描述语言实质上提供期望所设计硬件如何执行的计算机化模型。硬件模型410可以存储在诸如计算机存储器的存储介质400中,因此可以使用仿真软件420来仿真该模型,该仿真软件将特定的一套检验程序430应用于硬件模型,以确定它是否的确是按照预期的设计来工作。在许多实施例中,介质中没有记录、保存或者包括仿真软件。
在设计的任何表示中,数据可以以机器可读介质的任何方式存储。调制或者其它方式产生以传输这种信息的光或电波460、存储器450或者诸如盘的磁或光存储器440可以是机器可读介质。任何这些介质可以携带设计信息。术语“携带”(例如,机器可读介质携带信息)由此涵盖存储在存储设备上的信息或者编码或者调制到载波中或载波上的信息。描述设计的位组或者设计的物品是(当嵌入诸如载体或者存储介质的机器可读介质中时)可以密封在自己内、外的或者其他人用于进一步设计或制造的产品。
可选择的实施例
会意识到,对于其他实施例可以使用不同的系统配置。例如,当系统100包括芯片多处理器系统时,包括至少一个CPU的计算机系统可能受益于各种实施例的高速缓存器分区和牺牲块选择方案。而且不同类型的系统或者不同类型的计算机系统,例如,诸如服务器、工作站、台式计算机系统、游戏系统、嵌入式计算机系统、叶片服务器等,可以用于其他实施例。
已经公开了实施例和最佳模式,在保持在由下面权利要求定义的本发明实施例范围内的同时,可以对公开的实施例进行修改和变形。
Claims (30)
1、一种方法,包括:
如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求所请求的高速缓存器块;和
依照处理器标识符和所接收请求的请求类型从共享高速缓存器中选择牺牲块来逐出。
2、权利要求1的方法,还包括:
从共享高速缓存器中逐出所选择的牺牲块;
将所请求的高速缓存器块提供给处理器;和
在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
3、权利要求1的方法,其中在请求前,该方法还包括:
(a)依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区;以及
(b)依照(a)的分区,牺牲块的处理器选择被限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
4、权利要求1的方法,其中限制牺牲块的处理器选择包括:
(a)选择一个处理器;
(b)为所选择的处理器选择一种存储器请求类型;
(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;
(d)依照(c)的指定路径产生M位屏蔽;
(e)依照所选择的处理器的处理器ID和请求类型在表内产生条目来标识M位屏蔽;
(f)为T个存储器请求类型中每一个重复(b)-(e);和
(g)为N个处理器中每一个重复(a)-(f)。
5、权利要求1的方法,其中选择还包括:
依照处理器标识符和请求类型来查询表以识别M位路径屏蔽;
依照接收请求的高速缓存器索引来访问共享高速缓存器的一个集合;
依照M位路径屏蔽中的至少一个设置位从该集合中识别至少一个牺牲块;
逐出所识别的牺牲块。
6、一种制造的产品,包括上面存储了指令的机器可读介质,可以使用所述指令对系统编程以执行一个方法,包括:
如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器中请求所请求的高速缓存器块;和
依照处理器标识符和所接收请求的请求类型从共享高速缓存器中选择牺牲块来逐出。
7、权利要求6的制造的产品,还包括:
从共享高速缓存器中逐出所选择的牺牲块;
向处理器提供所请求的高速缓存器块;和
在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
8、权利要求6的制造的产品,其中在请求之前,该方法还包括:
(a)依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区;和
(b)依照(a)的分区,牺牲块的处理器选择被限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
9、权利要求6的制造的产品,其中限制牺牲块的处理器选择包括:
(a)选择一个处理器;
(b)为所选择的处理器选择一种存储器请求类型;
(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;
(d)依照(c)的指定路径产生M位屏蔽;
(e)依照所选择的处理器的处理器标识符和请求类型在表内产生条目以标识M位屏蔽;
(f)为T个存储器请求类型中每一个重复(b)-(e);和
(g)为N个处理器中每一个重复(a)-(f)。
10、权利要求6的制造的产品,其中选择还包括:
依照处理器标识符和请求类型查询表以识别M位路径屏蔽;
依照所接收请求的索引来访问共享高速缓存器的一个集合;
依照M位路径屏蔽中的至少一个设置位从该集合中识别至少一个牺牲块;
逐出所识别的牺牲块。
11、一种方法,包括:
依照所接收的请求检查共享高速缓存器以确定其中是否存储了所请求的高速缓存器块;
如果检测到所请求的高速缓存器块的高速缓存器未命中,则依照请求者标识符和所接收请求的请求类型从共享高速缓存器中逐出所选择的牺牲块。
12、权利要求11的方法,其中在检查共享高速缓存器之前,该方法还包括:
(a)选择请求者;
(b)为所选择的请求者选择一种存储器请求类型;
(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;
(d)依照(c)的指定路径产生M位屏蔽;
(e)依照所选择的请求者的请求者标识符和请求类型在表内产生条目以标识M位屏蔽;
(f)为T个存储器请求类型中每一个重复(b)-(e);和
(g)为N个请求者中每一个重复(a)-(f)。
13、权利要求11的方法,其中逐出所选择的牺牲块包括:
依照处理器标识符和请求类型查询表以识别M位路径屏蔽;其中所述M位路径屏蔽内的每个设置位在所接收请求的索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
14、权利要求13的方法,其中查询还包括:
如果设置了所述M位屏蔽的至少两个位,则选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
15、权利要求11的方法,还包括:
如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求高速缓存器块;
向处理器提供所请求的高速缓存器块;
在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
16、一种制造的产品,包括上面存储了指令的机器可读介质,可以使用所述指令对系统编程以执行一个方法,包括:
依照所接收的请求检查共享高速缓存器以确定其中是否存储了所请求的高速缓存器块;以及
如果检测到所请求的高速缓存器块的高速缓存器未命中,则依照请求者标识符和所接收请求的请求类型从共享高速缓存器中逐出所选择的牺牲块。
17、权利要求16的制造的产品,其中在检查共享高速缓存器之前,该方法还包括:
(a)选择请求者;
(b)为所选择的请求者选择一种存储器请求类型;
(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;
(d)依照(c)的指定路径产生M位屏蔽;
(e)依照所选择的请求者的请求者标识符和请求类型在表内产生条目以标识M位屏蔽;
(f)为T个存储器请求类型中每一个重复(b)-(e);和
(g)为N个请求者中每一个重复(a)-(f)。
18、权利要求16的制造的产品,其中逐出所选择的牺牲块包括:
依照处理器标识符和请求类型查询表以识别M位路径屏蔽,其中所述M位路径屏蔽内每个设置位在所接收请求的索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
19、权利要求18的制造的产品,其中查询还包括:
如果设置了M位屏蔽的至少两个位,则选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
20、权利要求16的制造的产品,还包括:
如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求高速缓存器块;
向处理器提供所请求的高速缓存器块;
在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
21、一种设备,包括:
控制器,用来在检测到所请求块的高速缓存器未命中的情况下从系统存储器请求所请求块,以及依照请求者标识符和所接收请求的请求类型选择牺牲块来逐出以存储所请求块。
22、权利要求21的设备,其中控制器还包括:
牺牲块侯选逻辑,用来依照请求者标识符和请求类型查询表以识别M位路径屏蔽;其中M位路径屏蔽内的每个设置位在所接收请求的高速缓存器索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
23、权利要求21的设备,其中控制器还包括:
高速缓存器分区逻辑,用来依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区,以及把牺牲块的选择限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
24、权利要求21的设备,其中控制器还包括:
置换逻辑,用来依照所接收请求的高速缓存器索引访问共享高速缓存器的一个集合,依照M位路径屏蔽的至少一个设置位从所述集合中识别至少一个牺牲块,并且逐出所识别的牺牲块。
25、权利要求24的设备,其中如果设置了M位屏蔽的至少两个位,则所述置换逻辑还要选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
26、一种系统,包括:
连接互连网络的系统存储器;
包括连接互连网络的多个处理器核心的芯片多处理器;以及
连接互连网络的共享高速缓存器,所述共享高速缓存器包括高速缓存器分区逻辑,所述高速缓存器分区逻辑指示高速缓存器控制器在响应从多个处理器中的处理器核心接收的请求、检测到共享高速缓存器内的高速缓存器块的高速缓存器未命中的情况下,从系统存储器请求高速缓存器块,以及依照处理器标识符和所接收请求的请求类型来选择牺牲块以从共享高速缓存器中逐出。
27、权利要求26的系统,其中系统存储器包括RDRAM。
28、权利要求26的系统,其中高速缓存器分区逻辑还包括:
牺牲块侯选逻辑,用来依照处理器标识符和请求类型查询表以识别M位路径屏蔽,其中M位路径屏蔽内的每个设置位在所接收请求的高速缓存器索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
29、权利要求26的系统,其中共享分区逻辑还包括:
置换逻辑,用来依照所接收请求的高速缓存器索引访问共享高速缓存器的一个集合,依照M位路径屏蔽的至少一个设置位从所述集合中识别至少一个牺牲块,并且逐出所识别的牺牲块。
30、权利要求29的系统,其中置换逻辑还在设置了M位屏蔽的至少两个位的情况下,选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/882048 | 2004-06-30 | ||
US10/882,048 US7558920B2 (en) | 2004-06-30 | 2004-06-30 | Apparatus and method for partitioning a shared cache of a chip multi-processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1728112A true CN1728112A (zh) | 2006-02-01 |
CN100511184C CN100511184C (zh) | 2009-07-08 |
Family
ID=35464043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100980710A Expired - Fee Related CN100511184C (zh) | 2004-06-30 | 2005-06-30 | 用于对芯片多处理器的共享高速缓存器分区的设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7558920B2 (zh) |
EP (1) | EP1612683A3 (zh) |
KR (1) | KR20060049710A (zh) |
CN (1) | CN100511184C (zh) |
TW (1) | TWI285810B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470670B (zh) * | 2007-12-28 | 2011-12-14 | 富士通株式会社 | 具有扇区功能的高速缓冲存储器 |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN106649138A (zh) * | 2015-10-13 | 2017-05-10 | 株式会社艾库塞尔 | 信息处理装置以及信息处理方法 |
CN107506315A (zh) * | 2016-06-14 | 2017-12-22 | 阿姆有限公司 | 存储控制器 |
CN109815168A (zh) * | 2017-11-20 | 2019-05-28 | 三星电子株式会社 | 用于少标记缓冲器实现的系统和方法 |
CN110178124A (zh) * | 2017-01-13 | 2019-08-27 | Arm有限公司 | 划分tlb或缓存分配 |
CN110362507A (zh) * | 2018-04-11 | 2019-10-22 | 忆锐公司 | 存储器控制设备和包括该设备的存储器系统 |
CN111651376A (zh) * | 2020-07-06 | 2020-09-11 | Oppo广东移动通信有限公司 | 数据读写方法、处理器芯片及计算机设备 |
WO2023165543A1 (zh) * | 2022-03-02 | 2023-09-07 | 华为技术有限公司 | 共享缓存的管理方法、装置及存储介质 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1703404A1 (fr) * | 2005-03-16 | 2006-09-20 | Amadeus s.a.s | Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants |
US20070033371A1 (en) * | 2005-08-04 | 2007-02-08 | Andrew Dunshea | Method and apparatus for establishing a cache footprint for shared processor logical partitions |
US20070073974A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Eviction algorithm for inclusive lower level cache based upon state of higher level cache |
US20070094664A1 (en) * | 2005-10-21 | 2007-04-26 | Kimming So | Programmable priority for concurrent multi-threaded processors |
US7415575B1 (en) * | 2005-12-08 | 2008-08-19 | Nvidia, Corporation | Shared cache with client-specific replacement policy |
US7730261B1 (en) | 2005-12-20 | 2010-06-01 | Marvell International Ltd. | Multicore memory management system |
US8984256B2 (en) * | 2006-02-03 | 2015-03-17 | Russell Fish | Thread optimized multiprocessor architecture |
US7962694B2 (en) * | 2006-03-31 | 2011-06-14 | Intel Corporation | Partial way hint line replacement algorithm for a snoop filter |
US8244980B2 (en) * | 2006-06-21 | 2012-08-14 | Intel Corporation | Shared cache performance |
US7434001B2 (en) * | 2006-08-23 | 2008-10-07 | Shi-Wu Lo | Method of accessing cache memory for parallel processing processors |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US7627718B2 (en) * | 2006-12-13 | 2009-12-01 | Intel Corporation | Frozen ring cache |
US8055851B2 (en) * | 2006-12-14 | 2011-11-08 | Intel Corporation | Line swapping scheme to reduce back invalidations in a snoop filter |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US20090037678A1 (en) * | 2007-07-31 | 2009-02-05 | Giles Chris M | Protected portion of partition memory for computer code |
US20090254712A1 (en) * | 2008-04-02 | 2009-10-08 | Naveen Cherukuri | Adaptive cache organization for chip multiprocessors |
US8223650B2 (en) * | 2008-04-02 | 2012-07-17 | Intel Corporation | Express virtual channels in a packet switched on-chip interconnection network |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8140767B2 (en) * | 2009-06-04 | 2012-03-20 | International Business Machines Corporation | Cache management through delayed writeback |
US8543769B2 (en) * | 2009-07-27 | 2013-09-24 | International Business Machines Corporation | Fine grained cache allocation |
US9311245B2 (en) * | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US8661200B2 (en) * | 2010-02-05 | 2014-02-25 | Nokia Corporation | Channel controller for multi-channel cache |
US20110197031A1 (en) * | 2010-02-05 | 2011-08-11 | Nokia Corporation | Update Handler For Multi-Channel Cache |
TWI420311B (zh) * | 2010-03-18 | 2013-12-21 | Univ Nat Sun Yat Sen | 基於集合分模組之快取記憶體之分割方法 |
WO2012015430A1 (en) * | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
JP5683205B2 (ja) | 2010-10-18 | 2015-03-11 | キヤノン株式会社 | 情報処理装置、情報処理装置を制御する制御方法、およびそのプログラム |
US20120096295A1 (en) * | 2010-10-18 | 2012-04-19 | Robert Krick | Method and apparatus for dynamic power control of cache memory |
US9021206B2 (en) | 2011-08-25 | 2015-04-28 | International Business Machines Corporation | Use of cache statistics to ration cache hierarchy access |
US20130097387A1 (en) * | 2011-10-14 | 2013-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Memory-based apparatus and method |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US8984368B2 (en) | 2012-10-11 | 2015-03-17 | Advanced Micro Devices, Inc. | High reliability memory controller |
US10140219B2 (en) * | 2012-11-02 | 2018-11-27 | Blackberry Limited | Multi-port shared cache apparatus |
GB2509755B (en) | 2013-01-14 | 2015-07-08 | Imagination Tech Ltd | Partitioning a shared cache using masks associated with threads to avoiding thrashing |
US9213644B2 (en) | 2013-03-07 | 2015-12-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating enclosure cache in a computing system |
US9195606B2 (en) | 2013-03-15 | 2015-11-24 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
WO2014143036A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Method for pinning data in large cache in multi-level memory system |
US10089238B2 (en) | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
US9612970B2 (en) | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
KR102354848B1 (ko) | 2014-11-28 | 2022-01-21 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
WO2016097806A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
EP3055775B1 (en) * | 2014-12-14 | 2019-08-21 | VIA Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
EP3066571B1 (en) | 2014-12-14 | 2018-06-13 | VIA Alliance Semiconductor Co., Ltd. | Cache memory budgeted by ways on memory access type |
US9811468B2 (en) * | 2014-12-14 | 2017-11-07 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
KR101639943B1 (ko) * | 2015-03-12 | 2016-07-15 | 성균관대학교산학협력단 | 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서 |
KR101627456B1 (ko) * | 2015-03-16 | 2016-06-07 | 성균관대학교산학협력단 | 그래픽 사용자 인터페이스 품질 개선방법 및 그 방법을 수행하는 프로그램이 저장된 기록매체 |
US9563564B2 (en) * | 2015-04-07 | 2017-02-07 | Intel Corporation | Cache allocation with code and data prioritization |
US9971693B2 (en) | 2015-05-13 | 2018-05-15 | Ampere Computing Llc | Prefetch tag for eviction promotion |
US10180908B2 (en) | 2015-05-13 | 2019-01-15 | Qualcomm Incorporated | Method and apparatus for virtualized control of a shared system cache |
US9928176B2 (en) * | 2016-07-20 | 2018-03-27 | Advanced Micro Devices, Inc. | Selecting cache transfer policy for prefetched data based on cache test regions |
US11080810B2 (en) * | 2017-04-21 | 2021-08-03 | Intel Corporation | Dynamically reconfigurable memory subsystem for graphics processors |
US10635590B2 (en) * | 2017-09-29 | 2020-04-28 | Intel Corporation | Software-transparent hardware predictor for core-to-core data transfer optimization |
US10482017B2 (en) * | 2017-09-29 | 2019-11-19 | Intel Corporation | Processor, method, and system for cache partitioning and control for accurate performance monitoring and optimization |
US10761988B2 (en) * | 2018-07-25 | 2020-09-01 | Arm Limited | Methods and apparatus of cache access to a data array with locality-dependent latency characteristics |
US10802973B1 (en) | 2019-07-01 | 2020-10-13 | Bank Of America Corporation | Data access tool |
TWI760702B (zh) * | 2020-03-03 | 2022-04-11 | 瑞昱半導體股份有限公司 | 資料寫入系統與方法 |
US10949352B1 (en) * | 2020-03-05 | 2021-03-16 | Nxp Usa, Inc. | Data processing system having a shared cache |
US12008041B2 (en) | 2021-09-15 | 2024-06-11 | International Business Machines Corporation | Shared cache for multiple index services in nonrelational databases |
WO2024196368A1 (en) * | 2023-03-22 | 2024-09-26 | Google Llc | Dynamic control of cache mode |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
JP3348367B2 (ja) * | 1995-12-06 | 2002-11-20 | 富士通株式会社 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
US6745292B1 (en) * | 1995-12-08 | 2004-06-01 | Ncr Corporation | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors |
US20010029574A1 (en) * | 1998-06-18 | 2001-10-11 | Rahul Razdan | Method and apparatus for developing multiprocessore cache control protocols using a memory management system generating an external acknowledgement signal to set a cache to a dirty coherence state |
US6421762B1 (en) * | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Cache allocation policy based on speculative request history |
DE60042640D1 (de) * | 1999-12-17 | 2009-09-10 | Nxp Bv | Datenprozessor mit cachespeicher |
US6757793B1 (en) * | 2000-03-29 | 2004-06-29 | Advanced Micro Devices, Inc. | Reducing probe traffic in multiprocessor systems using a victim record table |
US6889291B1 (en) * | 2000-06-30 | 2005-05-03 | Intel Corporation | Method and apparatus for cache replacement for a multiple variable-way associative cache |
US6745293B2 (en) * | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
US6668307B1 (en) * | 2000-09-29 | 2003-12-23 | Sun Microsystems, Inc. | System and method for a software controlled cache |
JP3620473B2 (ja) * | 2001-06-14 | 2005-02-16 | 日本電気株式会社 | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 |
US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
-
2004
- 2004-06-30 US US10/882,048 patent/US7558920B2/en not_active Expired - Fee Related
-
2005
- 2005-06-27 TW TW094121498A patent/TWI285810B/zh not_active IP Right Cessation
- 2005-06-30 EP EP05254137A patent/EP1612683A3/en not_active Ceased
- 2005-06-30 KR KR1020050058252A patent/KR20060049710A/ko active Search and Examination
- 2005-06-30 CN CNB2005100980710A patent/CN100511184C/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470670B (zh) * | 2007-12-28 | 2011-12-14 | 富士通株式会社 | 具有扇区功能的高速缓冲存储器 |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
US8739159B2 (en) | 2009-08-25 | 2014-05-27 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of shared cache to virtual machines in virtualized environments |
US8745618B2 (en) | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
CN102483718B (zh) * | 2009-08-25 | 2014-12-24 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN106649138B (zh) * | 2015-10-13 | 2022-04-15 | 株式会社艾库塞尔 | 信息处理装置以及信息处理方法 |
CN106649138A (zh) * | 2015-10-13 | 2017-05-10 | 株式会社艾库塞尔 | 信息处理装置以及信息处理方法 |
CN107506315A (zh) * | 2016-06-14 | 2017-12-22 | 阿姆有限公司 | 存储控制器 |
CN110178124A (zh) * | 2017-01-13 | 2019-08-27 | Arm有限公司 | 划分tlb或缓存分配 |
CN110178124B (zh) * | 2017-01-13 | 2023-08-04 | Arm有限公司 | 用于划分tlb或缓存分配的方法和装置 |
CN109815168A (zh) * | 2017-11-20 | 2019-05-28 | 三星电子株式会社 | 用于少标记缓冲器实现的系统和方法 |
CN110362507A (zh) * | 2018-04-11 | 2019-10-22 | 忆锐公司 | 存储器控制设备和包括该设备的存储器系统 |
CN111651376A (zh) * | 2020-07-06 | 2020-09-11 | Oppo广东移动通信有限公司 | 数据读写方法、处理器芯片及计算机设备 |
CN111651376B (zh) * | 2020-07-06 | 2023-09-19 | Oppo广东移动通信有限公司 | 数据读写方法、处理器芯片及计算机设备 |
WO2023165543A1 (zh) * | 2022-03-02 | 2023-09-07 | 华为技术有限公司 | 共享缓存的管理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20060049710A (ko) | 2006-05-19 |
EP1612683A2 (en) | 2006-01-04 |
CN100511184C (zh) | 2009-07-08 |
TW200615755A (en) | 2006-05-16 |
US7558920B2 (en) | 2009-07-07 |
TWI285810B (en) | 2007-08-21 |
US20060004963A1 (en) | 2006-01-05 |
EP1612683A3 (en) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100511184C (zh) | 用于对芯片多处理器的共享高速缓存器分区的设备和方法 | |
US7711901B2 (en) | Method, system, and apparatus for an hierarchical cache line replacement | |
US9390018B2 (en) | Data cache prefetch hints | |
US10223278B2 (en) | Selective bypassing of allocation in a cache | |
US8028129B2 (en) | Dynamically re-classifying data in a shared cache | |
US5778434A (en) | System and method for processing multiple requests and out of order returns | |
US7584327B2 (en) | Method and system for proximity caching in a multiple-core system | |
CN114077553A (zh) | 自适应性高速缓存分区 | |
US20070073974A1 (en) | Eviction algorithm for inclusive lower level cache based upon state of higher level cache | |
US8024513B2 (en) | Method and system for implementing dynamic refresh protocols for DRAM based cache | |
US20090106494A1 (en) | Allocating space in dedicated cache ways | |
US7386679B2 (en) | System, method and storage medium for memory management | |
US20060041722A1 (en) | System, apparatus and method for performing look-ahead lookup on predictive information in a cache memory | |
US8793434B2 (en) | Spatial locality monitor for thread accesses of a memory resource | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
CN114175001B (zh) | 存储器感知预取和高速缓存旁路系统和方法 | |
US8589627B2 (en) | Partially sectored cache | |
WO2014085002A1 (en) | Memory management using dynamically allocated dirty mask space | |
US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
US7293141B1 (en) | Cache word of interest latency organization | |
US11354246B2 (en) | Memory-side transaction context memory interface systems and methods based on clock cycles and wires | |
US10877889B2 (en) | Processor-side transaction context memory interface systems and methods | |
CN114691541B (zh) | 一种基于动态访问的dram-nvm混合内存预测器 | |
CN115119520A (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: 20090708 Termination date: 20100630 |