CN1991793B - 用于在多核系统中进行邻近高速缓存的方法及系统 - Google Patents
用于在多核系统中进行邻近高速缓存的方法及系统 Download PDFInfo
- Publication number
- CN1991793B CN1991793B CN2006100641576A CN200610064157A CN1991793B CN 1991793 B CN1991793 B CN 1991793B CN 2006100641576 A CN2006100641576 A CN 2006100641576A CN 200610064157 A CN200610064157 A CN 200610064157A CN 1991793 B CN1991793 B CN 1991793B
- Authority
- CN
- China
- Prior art keywords
- data
- nuclear
- cache
- shared cache
- asked
- 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
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
背景技术
在多核处理器或处理系统中,每个核都对应于仅由自身能存取的一个高速缓存器。此外,为扩展高速缓存器的容量可以提供能被所有核存取的共享高速缓存器。
高速缓存器存取时间可能受到从逻辑电路-诸如核(core)到或从该核的互连的电容而导致的传播延迟的影响。总体上,高速缓存器存取时间会按照诸如高速缓存器和存取逻辑(logic)间的距离、互连的宽度等这样的物理属性成比例增大。因此,一些现有技术处理器可以将共享高速缓存器组织成多个组块(chunk),并且把所述组块安排成使得频繁存取的数据项靠近使用它们的处理器(或处理核)。
然而,现有技术中把频繁存取的项目移动到靠近存取逻辑(如:处理器核)的高速缓存方案在功耗和/或管芯面积上代价会很高。
发明内容
在本发明的第一方面,提供了一种用于邻近高速缓存的方法,包括:
将数据分类为第一类型;
基于分类,将所述数据存储于多核系统的共享高速缓存器内;和
使用多个漫游数据指针来定位数据。
在本发明的第二方面,提供了一种处理器,包括:
多个核;
可由所述核中的两个或更多使用的共享高速缓存器;
多个漫游数据指针;和
用于将数据存储于共享高速缓存器中基于对数据的分类的地址处的逻辑。
在本发明的第三方面,提供了一种用于邻近高速缓存的系统,包括:
存储器;
多个处理器,耦合到所述存储器,所述处理器的至少两个包括多个核;
可由每个所述核使用的共享高速缓存器;
多个漫游数据指针;和
根据数据是预定类型的分类来将数据存储于共享高速缓存器中最靠近使用所述数据的核的共享高速缓存器的区域中的逻辑。
在本发明的第四方面,提供了一种用于邻近高速缓存的设备,包括:
核;
专用高速缓存器,与所述核相关联;
共享高速缓存器;
多个漫游数据指针;和
根据数据是预定类型之一的分类而将数据存储于共享高速缓存器中最靠近所述核的共享高速缓存器的区域内的逻辑。
附图说明
图1示出根据本发明的实施例的系统体系结构。
图2和图3图示可用于执行本发明至少一个实施例的操作;和
图4示出一种多处理器系统,其中可以使用本发明中一个或多个实施例。
具体实施方式
本发明的实施例涉及一种在具有共享高速缓存器的多核系统中高速缓存数据的技术。根据一些实施例,所述核所使用的数据可被分类为多种类型之一。在一个实施例中,这种分类使得能够根据数据类型来使数据处理被更加高效地完成。例如,在一个实施例中,分类为第一类型的数据可以被存储在共享高速缓存器中,且存储在最靠近使用该数据的核的共享高速缓存器的区域中。如果第一类型的数据被存取逻辑-诸如核顺序地检索以供使用,那么通过把第一类型的数据存储在最靠近该存取逻辑,存取时间和功耗就会被降低。相反,分类为第二类型的数据可以仅仅被存储在核的专用高速缓存器(private cache)中并在所述核的专用高速缓存器中处理。通过不将所述第二类型的数据存储于共享高速缓存器,就可以降低高速缓存器的使用率和功耗。
在本发明的实施例中,数据可被分类为三种类型中的一种:(a)可能被再次使用和可能每次被一个核使用的数据,(b)不可能被再次使用而可能每次被一个核使用的数据,(c)可能每次被不止一个核使用的数据。预测再次使用的频率的阈值可以被确立作为把数据分类为类型(a)或者类型(b)的基础。该阈值可以随着应用的变化而变化。然而,总体说来,当类型(a)的数据没有装在专用高速缓存器中之时,可以通过将所述数据移动到最靠近使用所述数据的核的共享高速缓存器的区域中来实现大幅度的节约,因为类型(a)的数据在被另一核存取和移走前可能会被使用所述数据的核存取多次。相似的,通过特殊处理类型(b)的数据也能够得到许多益处。分类为类型(b)的数据可能根本就没有被存储在共享高速缓存器中,而是可能仅仅被存储于专用高速缓存器中。因为类型(b)的数据在被逐出前可能根本不会在共享高速缓存器中被存取,所以不把类型(b)的数据移动到共享高速缓存器就可以降低功耗,并且减少对共享高速缓存器空间的争用。
类型(c)的数据可以像在具有每个核一个专用存储器和具有核之间共享的另一级高速缓存器的常规存储器系统里那样来处理。
图1示出了根据本发明的实施例的系统100。该系统可包括多个核101.1,101.2,……,101.n。每个核可具有各自的专用L1(一级)高速缓存器102.1,102.2,……,102.n。虽然仅仅示出了单一级专用高速缓存器,但在各实施例中,可以有多级专用高速缓存器。这些核及其相关联的专用高速缓存器可通过互连103耦合到共享高速缓存器(即,“最低级别的高速缓存器”或LLC)存储体104.1,104.2,……,104.m(这些核与共享高速缓存器存储体之间的对应关系不必是一对一)。该系统可进一步包括多个漫游数据指针(roaming datapointer RDP)105.1,105.2,……,105.p(这些RDP与共享高速缓存器存储体和核之间的对应关系不必是一对一)。RDP可以指向核。专用和共享的高速缓存器以及相关联的硬件可被统称为“高速缓存器子系统”。
按照常规,在诸如系统100之类的多核系统中的处理发生时,一个地址哈希函数被执行以确定在共享高速缓存器104.1,104.2,……,104.m中把高速缓存线分配在哪里,在它们中把数据存储在哪里,和在哪里查找该数据。所述地址哈希函数可以设计为在所有的存储体之间均匀分布数据。类型(a)数据和类型(b)数据被认为是“漫游数据”,因为它们未必处于通过该常规地址哈希函数所规定的位置中。RDP可以指向已经处理了漫游数据的核,由此使得漫游数据能够按照在以下更详细地描述的方式定位。
在图1的配置中,每个核都在共享高速缓存器中有一个最靠近的存储体。根据本发明的实施例,数据可被分类为类型(a)数据,并且可以根据该分类把该数据存储在最靠近使用该数据的核的专用高速缓存器中和/或存储在该共享高速缓存器中最靠近该核的存储体中。按照常规,取而代之,该数据会存储在由前述的常规地址哈希函数所确定的共享高速缓存器中的位置内,也可能会存储在该核的专用高速缓存器中。与常规模式相比较而言,通过将类型(a)的数据存储于最靠近的存储体中,该数据就可以由同一核后续地以降低的功耗和存取时间获取。
例如,将数据分类为预先确定的类型的这种分类可至少部分依据对所述数据操作的软件程序的逻辑,该逻辑基于程序员的观点知道所述数据。这种程序逻辑可将类型信息传递到高速缓存器子系统。例如,程序中的指令可能包含指示它们最经常接触的数据的类别的位。
该软件提供的初始分类可作为在对数据进行的某些硬件操作后的数据处理的基础,该分类可揭示对程序员而言无需透明的数据属性或处理环境。这些硬件操作可包括,例如,从专用高速缓存器逐出数据,因为超出了专用高速缓存器的容量或关联性。这种操作表明该数据可能是没有置于专用高速缓存器的一个重要数据集合的一部分。因此,如果从专用高速缓存器中逐出的数据为类型(a),那么该逐出的数据就可以被存储于如上所述的共享高速缓存器中最靠近的一个存储体内。附图1示出了该过程。高速缓存线102.1i正被从专用高速缓存器102.1中逐出,并且被置于最靠近的共享高速缓存器存储体104.1,作为高速缓存线104.1i。如果被逐出的数据为类型(b)且脏的(即,已经被写过),那么该数据可被送回外部存储器;否则,该数据就可以被丢弃。在本发明的实施例中,相干性逐出可以不触发上述事件。
类型(c)的数据可像在具有每个核一个专用高速缓存器和具有核之间共享的另一级高速缓存器的常规存储器系统里那样处理。例如,一个可能的相干性协议会按照如下操作。当有一个专用高速缓存器未命中,数据将被引入到请求核的专用高速缓存器中,并且还引入与共享高速缓存器的地址哈希函数相对应的共享高速缓存器存储体内。当有专用高速缓存器逐出,如果数据为脏的,那么它将被写回到共享高速缓存器,否则,该数据被丢弃。
在初始分类后之后的事件可表明数据重分类是有序的。因此,本发明的实施例将进一步涉及重新分类数据,例如,从类型(a)或(b)到类型(c),或从类型(c)到类型(a)或(b)。
前面已经讨论了基于数据的分类就共享高速缓存器而言如何分类和处理数据的方面。现在将转向讨论在该高速缓存器子系统内如何追踪和定位漫游数据(类型(a)和类型(b))。根据本发明的实施例,当漫游数据在专用高速缓存器内发生未命中,该数据可以被引入请求核的专用高速缓存器中。数据源可以是外部存储器或者在该高速缓存器子系统中的某处,这取决于较早的事件。当数据被引入请求核的专用高速缓存器时,可以在一个RDP中为该漫游数据分配一个条目(entry)。更特别地,该漫游数据的地址可用作为RDP地址哈希函数的输入,其输出标识一个特别的在其中产生条目的RDP指针。该RDP条目可存储请求核的位置。因此,该RDP条目指明上次存取该数据的核,从而该数据能在另一个不同的核请求该数据时被找到。此外,当该数据被引入专用高速缓存器,它进一步可以拥有一个指示器来存储它的类型,指示器例如是一个写入到高速缓存线的字段内的一个标志。该信息在接下来的高速缓存器子系统操作中有利于识别和可能地重新分类数据类型。
对于类型(b)的数据,假如该数据在高速缓存器子系统中且一个核需要存取该数据,该数据被保留直到逐出后,相应的RDP条目可在专用高速缓存器逐出后无效。
当对一漫游数据发生专用高速缓存器未命中时,在从外部存储器提取该数据前,相应于RDP地址哈希函数的RDP可被查询以确定是否该数据还在高速缓存器子系统中。执行该操作可能因为虽然对于漫游数据而言,可能一个核在某时使用该数据,但是这并不能得到确保。另一个不同的核可能需要存取该相同的漫游数据。存取该数据的上个核也可能已经完成它了并且在一段时间内可能没有其他核存取该数据。后两种情况中的任何一个都可能意味着所需要的数据还在高速缓存器子系统中,因此从外部存储器获取该数据是不必要的。如果该数据确实有一个RDP条目,那么该RDP条目将指明上次存取该数据的核。如果该数据是漫游的,那么在该RDP条目中的信息可用于确定哪个核或哪个共享高速缓存器存储体可能拥有该数据。
鉴于所述,图2示出根据本发明的实施例的数据获取方法。如块201所示,对于一个请求核,在专用高速缓存器中未命中时,可以确定未命中的数据是否为漫游数据。在本发明的实施例中,一条请求指令,如加载,可以规定数据的类型,以致于使对该数据是否为漫游数据的确定能够做出。可选地,硬件可以预测或确定数据的类型。在任何事件中,如果数据是漫游的,那么最靠近在其专用高速缓存器中有未命中的请求核的共享高速缓存器中的存储体可以被存取,如块202所示。如果在那里找到了所需要的数据(块203),那么它可以被提供给该请求核,如块204所示。随着时间这一结果会在互连带宽,平均存储器等待时间和功耗上产生显著的节约。
另一方面,如果该数据是漫游的且在最靠近该请求核的存储体中没有找到,那么该数据可能被不同核所存取且因此被移动到该核的专用高速缓存器或到最靠近的共享高速缓存器存储体内。相应地,对应该数据的RDP可通过RDP地址哈希函数来确定,如块205所示。可搜索该RDP以查找所关注的数据的条目,如块206所示。如果找到一个条目,那可以向相应于该RDP条目(该数据当前的可能位置)的该共享高速缓存器体和核发送消息,且可以把该RDP条目改变成指向该请求核。该消息可以导致数据被从专用高速缓存器和/或共享高速缓存器体(它们中的至少一个当前存储该数据)逐出,并送往请求该数据的核。该请求核可将该数据置于它的专用高速缓存器中。
如块207和208所示,如果数据不是漫游的,那么该未命中的数据可用常规方法被定位。也就是,对应于共享高速缓存器地址哈希函数的共享高速缓存器块可被搜索,且所采取的该动作依据相关性协议。
图3示出依据本发明实施例的另外一种方法。如块301所示,该方法可包括:对第一个请求核而言,在其专用存储区中未命中漫游数据。该漫游数据而后可从外部存储器或高速缓存器子系统中某处被带入该第一请求核的专用高速缓存器内,如块302所示。如块303所示,可以形成指向第一请求核的指针,例如通过在RDP中创建一个条目来形成。
如块304所示,该漫游数据接下来可从第一请求核中的专用高速缓存器中被逐出。该逐出例如可以是容量或关联性逐出。如果该被逐出数据为类型(a)数据,那么它可被存储于共享高速缓存器中,存储在该共享高速缓存器中最靠近该第一请求核的一个区域中。该数据随后可能被第一请求核在该共享高速缓存器中存取多次,因而该数据可以正好处于该共享高速缓存器中也可以处于第一请求核的专用高速缓存器和该共享高速缓存器这二者内。
接下来可能出现第二请求核在其专用高速缓存器内对数据未命中。该第二请求核可因此确定未命中的数据是否为漫游数据,如块305所示。假定该未命中的数据为由第一请求核上次存取的漫游数据。因为该未命中数据为漫游数据,所以最靠近该第二请求核的共享高速缓存器的区域将被检查,如块306所示。因为该数据不在那里,该指针(如,相应于未命中数据的RDP)就可以被引用,如块307-308所示。
该指针将指向第一请求核。因此,该数据可以被从该第一请求核的专用高速缓存器和相应于该第一请求核的共享高速缓存器存储体的任一个中或者这二者中逐出,且送往第二请求核,如块309所示。该指针可被更新来指向该第二请求核,如块310所示。
如前所述,本发明的实施例将涉及基于初始分类之后的事件的数据重分类。根据这些实施例,如果例如没有为未命中的漫游数据找到任何RDP条目,那么就可以搜索在数据为类型(c)数据的情况下类型(c)数据会存储在其中的共享高速缓存器存储体(即,对应于共享高速缓存器地址哈希函数的共享高速缓存器存储体)。如果通过该搜索找到了该数据,该数据可以视情况被重新分类为类型(a)或类型(b),并从共享高速缓存器存储体内逐出,送往该请求核,并复制到该核的专用高速缓存器中。在各实施例中,RDP查找可以与共享高速缓存器查找并行执行。虽然可能在功耗和互连业务量上代价更大,但这种并行搜索可比串行搜索更快地找到所需要的数据。
在另一个重分类的操作中,类型(a)或类型(b)数据可重分类为类型(c)数据。例如,可能出现数据相对于某些指令(如,程序中的某一部分)为类型(a)或类型(b)数据,但相对于其他指令(如,程序中的不同部分)则为类型(c)。后一种指令可能因此将该数据作为非漫游数据处理。然而,因为该数据曾经为漫游数据,所以可能存在一个相应的RDP条目。因此,根据本发明的实施例,如果非漫游数据被未命中,并且该数据也在相应于共享高速缓存器地址哈希函数的共享高速缓存器存储体中没有被找到,那么就可以搜索在相应于RDP地址哈希函数的RDP中的该数据的RDP条目。如果条目被找到,那么可以给相应于该RDP条目(该数据当前可能的位置)的该共享高速缓存器块和核发送一信息。该信息可使得该数据被改变为类型(c),并从专用高速缓存器中和/或共享高速缓存器块(它们中至少一个当前存储该数据)逐出并被送往相应于共享高速缓存器地址哈希函数的共享高速缓存器存储体以及请求该数据的核。该请求核将数据置于其专用高速缓存器内。该RDP条目可以被无效。上述操作允许数据从类型(a)或类型(b)改变成类型(c)并且仍能被找到。
图4是按照本发明实施例的计算机系统400的框图,计算机系统400包含至少两个处理器(也即,“处理器芯片”或“处理器封装”)402,407和供使用的存储器。根据本发明的实施例,每个处理器402,407可包括多个核101.1-101.n。每个核101.1-101.n可以是例如一个处理器核,处理器核包括ALU(算术/逻辑单元)和FPU(浮点单元)执行单元。处理器402、407可通过各自本地MCH(存储器控制器集线器)403,409耦合到各自的存储器401、412。
该处理器402、407可进一步通过点到点(也可是,CSI或“可配置的系统互连”)接口405、414和411、416耦合到芯片组415。该处理器402、407可进一步通过点到点接口406、410相互耦合。该系统400可进一步包括高性能图形逻辑419,该逻辑可通过接口417耦合到芯片组415。芯片组415可通过接口418耦合到其他的系统组件,其他的系统组件包括总线桥422,输入/输出设备423,音频输入/输出逻辑424,键盘/鼠标逻辑单元425,诸如网络接口的通信逻辑426,和数据存储器427(如硬盘之类的大容量存储器)。该数据存储器427可存储计算机可执行的代码428。系统组件可通过例如总线421,429的总线互连。
至少两个处理器402,407中的每一个可包括实现本发明的逻辑。然而,实现本发明的逻辑不需要驻留在这两个处理器中。例如,该逻辑单元可驻留在包括系统400的主板上的其他位置。
在此特别地举例说明和/或描述了本发明的几个实施例。然而,值得注意的是,在不偏离本发明的主旨和所希望的保护范围内,本发明的修改和变化都由上述教导所涵盖并且落在所附权利要求的范围内。
Claims (29)
1.一种用于邻近高速缓存的方法,包括:
将数据确定为是可能每次被一个核使用的类型;
基于所述确定,将所述数据存储于多核系统中最靠近使用所述数据的核的共享高速缓存器内或者存储于使用所述数据的核的专用高速缓存器内;和
在指向所述核的数据指针内存储条目,所述条目被用于将来基于所指向的所述核来定位所述数据。
2.如权利要求1中所述的方法,还包括:
对于请求核所请求的数据,确定所请求的数据是否是所述可能每次被一个核使用的类型,如果是,则在最靠近所述请求核的共享高速缓存器的区域中搜索所述数据。
3.如权利要求1所述的方法,其中所述确定标识可能被再次使用的数据。
4.如权利要求2所述的方法,还包括:
如果在最靠近所述请求核的共享高速缓存器的区域中没有找到所请求的数据,则在数据指针中确定指向前次存取所述数据的核的相应条目;
向前次存取所述数据的核发送消息;
从前次存取所述数据的该核的该专用高速缓存器和最靠近前次存取所述数据的核的共享高速缓存器的区域这两者之一中来获取所请求的数据;以及
将所述相应条目更新为指向所述请求核。
5.如权利要求1所述的方法,其中所述确定至少部分地基于操作所述数据的软件。
6.如权利要求1所述的方法,其中通过地址哈希函数来确定所述数据指针的条目。
7.一种处理器,包括:
多个核;
可由所述核中的两个或更多使用的共享高速缓存器;
多个数据指针,其中所述多个数据指针的每个条目是用于存储与核相对应的条目;和
在确定数据可能每次被一个核使用时存储所述数据的逻辑,其中所述数据被存储到最靠近使用所述数据的第一核的共享高速缓存器的区域或者存储于使用所述数据的第一核的专用高速缓存器,并且所述多个数据指针中的相应条目被存储为指向使用所述数据的所述第一核,以使得请求所述数据的第二核使用所述相应条目来定位所述数据。
8.如权利要求7所述的处理器,其中通过地址哈希函数来确定所述数据指针的所述相应条目。
9.如权利要求7所述的处理器,其中所述确定标识可能被再次使用的数据。
10.如权利要求7所述的处理器,其中所述逻辑在由于专用高速缓存器的容量所导致的逐出之后在确定所述数据可能被再次使用时把所述数据存储在最靠近所述第一核的共享高速缓存器中。
11.如权利要求7所述的处理器,所述逻辑还在请求核的专用高速缓存器中未命中所述数据后,在最靠近所述请求核的共享高速缓存器的区域搜索所述数据。
12.如权利要求11所述的处理器,所述逻辑还在所述数据在最靠近所述请求核的共享高速缓存器的区域没有找到的情况下参考所述相应条目来确定哪个核是上次存取所述数据的核。
13.如权利要求12所述的处理器,所述逻辑还:
向上次存取所述数据的核发送消息;
从上次存取所述数据的该核的该专用高速缓存器和最靠近上次存取所述数据的核的共享高速缓存器的区域这两者之一中获取所述数据;以及
将所述相应条目更新为指向所述请求核。
14.一种用于邻近高速缓存的系统,包括:
存储器;
多个处理器,耦合到所述存储器,所述处理器的至少两个包括多个核;
可由每个所述核使用的共享高速缓存器;
多个数据指针;和
在确定数据可能每次被一个核使用时存储所述数据的逻辑,其中所述数据被存储到最靠近使用所述数据的第一核的共享高速缓存器的区域或存储到使用所述数据的第一核的专用高速缓存器,并且所述多个数据指针中的相应条目被存储为指向使用所述数据的所述第一核,以使得请求所述数据的第二核使用所述相应条目来定位所述数据。
15.如权利要求14所述的系统,其中通过地址哈希函数来确定所述相应条目。
16.如权利要求14所述的系统,对于请求核所需的数据,所述逻辑还确定所请求的数据是否是可能每次被一个核使用的类型,如果是,则在最靠近所述请求核的共享高速缓存器的区域内搜索所述数据。
17.如权利要求16所述的系统,所述逻辑还在所请求的数据在最靠近所述请求核的共享高速缓存器的区域内没有被找到并且用于所请求的数据的数据指针中的条目存在的情况下,从前次存取所述数据的核的专用高速缓存器和最靠近前次存取所述数据的核的共享高速缓存器的区域这两者之一中获取所请求的数据。
18.如权利要求17所述的系统,所述逻辑还在所请求的数据在最靠近所述请求核的共享高速缓存器的区域内没有找到并且用于所请求的数据的数据指针中的条目不存在情况下,将所请求的数据从所述存储器带入到所述请求核的专用高速缓存器中,并且产生指向所述请求核的数据指针中的条目。
19.如权利要求18所述的系统,所述逻辑还从所述请求核的专用高速缓存器逐出所请求的数据并在确定所请求的数据可能被再次使用时将所请求的数据存储于最靠近所述请求核的共享高速缓存器的区域中。
20.如权利要求14所述的系统,其中所述确定标识可能被再次使用的数据。
21.一种用于邻近高速缓存的设备,包括:
核;
专用高速缓存器,与所述核相关联;
共享高速缓存器;
多个数据指针;和
在确定数据可能每次被一个核使用时存储所述数据的逻辑,其中所述数据被存储到最靠近使用所述数据的第一核的共享高速缓存器的区域或者存储于与使用所述数据的第一核相关联的专用存储器,并且所述多个数据指针中的相应条目被存储为指向使用所述数据的所述第一核,以使得请求所述数据的第二核使用所述相应条目来定位所述数据。
22.如权利要求21所述的设备,其中所述确定将所述数据标识为可能被再次使用。
23.如权利要求21所述的设备,其中所述确定将所述数据标识为不可能被再次使用;并且
所述逻辑还根据所述确定将所述数据存储于所述第一核的专用高速缓存器中。
24.如权利要求21所述的设备,其中通过地址哈希函数来确定所述相应条目。
25.如权利要求21所述的设备,所述逻辑还在请求核的专用高速缓存器内未命中所请求的数据之后确定所请求的数据是否是所述可能每次被一个核使用的类型,如果是,则在最靠近所述请求核的共享高速缓存器的区域中搜索所请求的数据。
26.如权利要求23所述的设备,所述逻辑还根据初始确定后的事件确定从可能被再次使用变为不可能被再次使用或者从不可能被再次使用变为可能被再次使用的数据。
27.如权利要求25所述的设备,所述逻辑还在所请求的数据在最靠近所述请求核的共享高速缓存器的区域内没有找到并且用于所请求的数据的数据指针中的条目存在情况下,从前次存取所述数据的核的专用高速缓存器和最靠近前次存取所述数据的核的共享高速缓存器的区域这两者之一中获取所请求的数据。
28.如权利要求27所述的设备,所述逻辑还在所请求的数据在最靠近所述请求核的共享高速缓存器的区域内没有找到并且用于所请求的数据的数据指针内的条目不存在情况下,将所请求的数据从所述存储器带入到所述请求核的专用高速缓存器中,并且产生指向所述请求核的数据指针中的条目。
29.如权利要求27所述的设备,所述逻辑还从所述请求核的专用高速缓存器中逐出所请求的数据,并在确定所述数据可能被再次使用时将所述被逐出的数据存储于最靠近所述请求核的共享高速缓存器的区域内。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/320788 | 2005-12-30 | ||
US11/320,788 US7584327B2 (en) | 2005-12-30 | 2005-12-30 | Method and system for proximity caching in a multiple-core system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991793A CN1991793A (zh) | 2007-07-04 |
CN1991793B true CN1991793B (zh) | 2011-08-31 |
Family
ID=38214059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100641576A Expired - Fee Related CN1991793B (zh) | 2005-12-30 | 2006-12-30 | 用于在多核系统中进行邻近高速缓存的方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7584327B2 (zh) |
CN (1) | CN1991793B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007096979A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | 情報処理装置およびデータ転送方法 |
US7461210B1 (en) * | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
US8131937B2 (en) * | 2007-06-22 | 2012-03-06 | International Business Machines Corporation | Apparatus and method for improved data persistence within a multi-node system |
US8527709B2 (en) * | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US7890700B2 (en) * | 2008-03-19 | 2011-02-15 | International Business Machines Corporation | Method, system, and computer program product for cross-invalidation handling in a multi-level private cache |
US7512837B1 (en) * | 2008-04-04 | 2009-03-31 | International Business Machines Corporation | System and method for the recovery of lost cache capacity due to defective cores in a multi-core chip |
US8621184B1 (en) | 2008-10-31 | 2013-12-31 | Netapp, Inc. | Effective scheduling of producer-consumer processes in a multi-processor system |
US9158579B1 (en) | 2008-11-10 | 2015-10-13 | Netapp, Inc. | System having operation queues corresponding to operation execution time |
US8171223B2 (en) * | 2008-12-03 | 2012-05-01 | Intel Corporation | Method and system to increase concurrency and control replication in a multi-core cache hierarchy |
US8769206B2 (en) * | 2009-01-20 | 2014-07-01 | Oracle International Corporation | Methods and systems for implementing transcendent page caching |
US8769205B2 (en) * | 2009-01-20 | 2014-07-01 | Oracle International Corporation | Methods and systems for implementing transcendent page caching |
US8775755B2 (en) | 2011-02-25 | 2014-07-08 | Oracle International Corporation | Peer-to-peer transcendent memory |
US8473723B2 (en) * | 2009-12-10 | 2013-06-25 | International Business Machines Corporation | Computer program product for managing processing resources |
US8990506B2 (en) * | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
US8341353B2 (en) * | 2010-01-14 | 2012-12-25 | Qualcomm Incorporated | System and method to access a portion of a level two memory and a level one memory |
AU2011265444B2 (en) * | 2011-06-15 | 2015-12-10 | Tata Consultancy Services Limited | Low latency FIFO messaging system |
US10235220B2 (en) * | 2012-01-23 | 2019-03-19 | Advanced Micro Devices, Inc. | Multithreaded computing |
KR20130131789A (ko) * | 2012-05-24 | 2013-12-04 | 삼성전자주식회사 | 미니코어 기반의 재구성 가능 프로세서 및 그 재구성 가능 프로세서를 이용한 유연한 다중 데이터 처리 방법 |
US8838915B2 (en) * | 2012-06-29 | 2014-09-16 | Intel Corporation | Cache collaboration in tiled processor systems |
EP3005125A4 (en) * | 2013-05-31 | 2017-02-15 | Intel Corporation | Scatter/gather capable system coherent cache |
US9252131B2 (en) | 2013-10-10 | 2016-02-02 | Globalfoundries Inc. | Chip stack cache extension with coherency |
US10204056B2 (en) * | 2014-01-27 | 2019-02-12 | Via Alliance Semiconductor Co., Ltd | Dynamic cache enlarging by counting evictions |
US9892803B2 (en) * | 2014-09-18 | 2018-02-13 | Via Alliance Semiconductor Co., Ltd | Cache management request fusing |
CN111343107B (zh) * | 2020-01-22 | 2022-03-04 | 苏州盛科通信股份有限公司 | 信息处理方法、以太网交换芯片以及存储介质 |
US11113191B1 (en) * | 2020-06-21 | 2021-09-07 | Tyson York Winarski | Direct and indirect addressing pointers for big data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738870B2 (en) * | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
US6976131B2 (en) * | 2002-08-23 | 2005-12-13 | Intel Corporation | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system |
-
2005
- 2005-12-30 US US11/320,788 patent/US7584327B2/en not_active Expired - Fee Related
-
2006
- 2006-12-30 CN CN2006100641576A patent/CN1991793B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1991793A (zh) | 2007-07-04 |
US20070156963A1 (en) | 2007-07-05 |
US7584327B2 (en) | 2009-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1991793B (zh) | 用于在多核系统中进行邻近高速缓存的方法及系统 | |
US7571285B2 (en) | Data classification in shared cache of multiple-core processor | |
US8935478B2 (en) | Variable cache line size management | |
CN102640124B (zh) | 用于数据流的储存感知预取的计算系统、方法以及预取单元 | |
US4774654A (en) | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
CN108496160A (zh) | 用于增强系统性能的自适应值范围剖析 | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US20190087344A1 (en) | Reducing Clean Evictions In An Exclusive Cache Memory Hierarchy | |
US20170277636A1 (en) | Method and device for controlling memory | |
US8473687B2 (en) | Computer cache system with stratified replacement | |
Fevgas et al. | LB-Grid: An SSD efficient grid file | |
CN100514311C (zh) | 用于实现组合式数据/相关性高速缓存的方法和装置 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
CN113656212B (zh) | 用于缓存目录tcam错误检测和纠正的系统和方法 | |
US20170046278A1 (en) | Method and apparatus for updating replacement policy information for a fully associative buffer cache | |
KR100304318B1 (ko) | 프로세서버스에대한캐시조작의요구에기초해서명령을발행하는방법및장치 | |
CN117561504A (zh) | 高速缓存探测事务过滤 | |
CN117120989A (zh) | 用于dram高速缓存标签预取器的方法和装置 | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US20210182262A1 (en) | System and method using hash table with a set of frequently-accessed buckets and a set of less frequently-accessed buckets | |
US20080282059A1 (en) | Method and apparatus for determining membership in a set of items in a computer system | |
CN102053946B (zh) | 多核系统中处理请求的数据处理方法、设备和系统 | |
US8484423B2 (en) | Method and apparatus for controlling cache using transaction flags | |
Kee et al. | An Integrated Solution to Improve Performance of In-Memory Data Caching with an Efficient Item Retrieving Mechanism and a Near-Memory Accelerator |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110831 Termination date: 20181230 |