CN101192198A - 在多处理器系统中高速缓存数据的方法和多处理器系统 - Google Patents
在多处理器系统中高速缓存数据的方法和多处理器系统 Download PDFInfo
- Publication number
- CN101192198A CN101192198A CNA2007101698877A CN200710169887A CN101192198A CN 101192198 A CN101192198 A CN 101192198A CN A2007101698877 A CNA2007101698877 A CN A2007101698877A CN 200710169887 A CN200710169887 A CN 200710169887A CN 101192198 A CN101192198 A CN 101192198A
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- speed cache
- cache
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims abstract description 77
- 230000004044 response Effects 0.000 claims description 7
- 230000010387 memory retrieval Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching 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
技术领域
本发明一般涉及处理系统和电路,而且更具体地,涉及在多处理器系统中高速缓存数据。
背景技术
处理器系统通常包括高速缓存以减少与存储器存取相关联的等待时间。高速缓存一般是较小、较快的存储器(相对于主存储器),其用于存储来自最频繁使用的主存储器位置的数据的副本。在操作中,一旦高速缓存变满(或者在组相关高速缓存的情况下,一旦组变满),则对可高速缓存数据(主存储器中的)的随后的引用通常将导致之前存储在缓存(或组)中的数据被清出,以为在缓存(或组)中存储新引用的数据腾出空间。传统处理器系统中,即使新引用的数据并不重要(例如,新引用的数据将不会在随后的处理器操作中被再次引用),通常也发生之前存储的数据被从高速缓存清出。因而,在这样的处理器系统中,如果在随后的处理器操作中引用了被清出的数据,则将发生高速缓存失准,这通常导致处理器系统的性能下降。
对在处理器操作中仅使用一次的数据的频繁引用导致高速缓存污染,其中将重要数据清出以为暂时数据腾出空间。应对高速缓存污染的一种办法是增大高速缓存的尺寸。但是,该办法导致处理器系统的成本、功率、以及设计复杂度的增加。对高速缓存污染的另一种解决办法是将暂时数据标记(或标注)为不可高速缓存的。然而,这样的技术需要预先识别主存储器中存储暂时(或非频繁使用的)数据的区域。而且,对数据的这样的严格划分不是在所有情况下都可能的。
发明内容
一般而言,在一个方面,本说明书描述一种用于在包含第一处理器和第二处理器的多处理器系统中高速缓存数据的方法。所述方法包括产生对数据的存储器存取请求,其中所述数据是与第一处理器相关联的处理器操作所需的。所述方法进一步包括,响应于所述数据未高速缓存在与第一处理器相关联的第一高速缓存中,监听与第二处理器相关联的第二高速缓存以确定所述数据是否之前已作为从第一处理器对该数据的存取的结果高速缓存在第二高速缓存中。响应于所述数据高速缓存在与第二处理器相关联的第二高速缓存中,所述方法进一步包括将所述数据从第二高速缓存传递到第一处理器。
一般而言,在一个方面,本说明书描述一种多处理器系统,包括:第一处理器,包含与其相关联的第一高速缓存;第二处理器,包含与其相关联的第二高速缓存;以及主存储器,用于存储第一处理器和第二处理器所需的数据。主存储器由通过总线与第一处理器和第二处理器中的每一个存储器通信的存储器控制器控制,而且与第二处理器相关联的第二高速缓存可以操作以高速缓存与第一处理器的存储器存取请求对应的来自主存储器的数据。
一般而言,在一个方面,本说明书描述一种计算机程序产品,有形地存储在计算机可读介质上,用于在多处理器系统中高速缓存数据,其中所述多处理器系统包括第一处理器和第二处理器。所述计算机程序产品包括用于促使可编程处理器监视第一处理器的高速缓存失准率、并响应于第一处理器的高速缓存失准率低而在与第一处理器相关联的第一高速缓存中高速缓存由第二处理器请求的数据的指令。
实施例可以提供一个或更多以下优点。用于在多处理器系统中高速缓存数据的技术提供一条扩展其中可以存储数据(由多处理器系统中的给定处理器所需的)的可用高速缓存的途径。例如,在一个实施例中,使用与第一处理器(所述多处理器系统中的)相关联的高速缓存的未使用部分来存储由第二处理器请求的数据。此外,这里描述的技术允许更积极的软件和硬件预取,其中可以将与猜测地执行的路径对应的数据高速缓存在相邻的处理器的高速缓存中,以减少因错误预测的分支而预测的路径造成的高速缓存污染。作为其中可以使预取更积极的另一个示例,可以增强硬件预取器以识别稍后使用的高速缓存行的清出。这些情况下,硬件预取器可以指示应当将预取数据存储在与另外的处理器相关联的高速缓存中。类似地,当有高速缓存污染的可能性时,由编译器放置的软件预取可以通过特殊指令字段来指示应当将预取的数据放置在与另外的处理器相关联的高速缓存中。此外,所述技术根据多处理器系统中处理器的数量而可伸缩。所述技术同样可以与诸如Victim高速缓存和高速缓存snarfing的传统技术结合使用以提高多处理器系统的性能。所述实施例可以由操作系统控制从而对用户应用透明。
在附图和下面说明中阐述一个或更多实施例的细节。其它特征和优点从说明和附图将是显而易见的。
附图说明
图1是根据一个实施例的多处理器系统的框图;
图2示出根据一个实施例的用于在高速缓存中存储数据的方法的流程图;
图3A-3B示出根据一个实施例的多处理器系统的框图。
各附图中类似的引用符号指示类似的元素。
具体实施方式
本发明一般涉及处理系统和电路,而且更具体地,涉及在多处理器系统中高速缓存数据。给出下面说明以使得本领域普通技术人员能够实现和运用本发明,而且其在专利申请及其必要条件的背景下提供。本发明不打算限于所示的实施例,而是符合与这里描述的原理和特征相一致的最宽泛的范围。
图1示出根据一个实施例的多处理器系统100。多处理器系统100包括处理器102和处理器104,其均与总线106通信。虽然示出多处理器系统100包含两个处理器,但是多处理器系统100也可以包含任何数量的处理器。另外,处理器102和处理器104可以是紧密耦合的(如图1中所示),或者处理器102和处理器104可以是松散耦合的。而且,处理器102和处理器104可以实现在同一芯片上,或者可以实现在单独的芯片上。
多处理器系统100还包括存储处理器102和处理器104所需的数据的主存储器108。处理器102包括高速缓存110,而处理器104包括高速缓存112。在一个实施例中,高速缓存110可以操作以高速缓存将由处理器102处理的数据(来自主存储器108),以及将由处理器104处理的数据。类似地,(在一个实施例中)高速缓存112可以操作以高速缓存将由处理器104处理的数据,以及将由处理器102处理的数据。高速缓存110和/或高速缓存112可以是L1(1级)高速缓存、L2(2级)高速缓存、或分级的高速缓存等级。在一个实施例中,在高速缓存110还是高速缓存112中高速缓存来自主存储器108的数据的决策由控制器114确定。在一个实施例中,控制器114是可操作以在高速缓存110、112以及主存储器108之间管理冲突并维持一致性的高速缓存一致性控制器(例如,在北桥中)。
图2示出根据一个实施例的用于在多处理器系统(例如,多处理器系统100)中存储数据的方法200。由第一处理器(例如,处理器102)产生对数据的存储器存取请求(步骤202)。对数据的存储器存取请求可以是例如由与第一处理器相关联的装入/存储执行单元产生的装入存储器操作。确定由第一处理器请求的数据是否高速缓存(或存储)在与第一处理器相关(或主要用于其)的高速缓存(例如,高速缓存110)中(步骤204)。如果由第一处理器请求的数据高速缓存在与第一处理器相关联的高速缓存中(即,发生高速缓存命中),则满足存储器存取请求(步骤206)。可以通过高速缓存将所请求的数据转发到第一处理器的流水线和/或寄存器堆来满足存储器存取请求。
但是,如果由第一处理器请求的数据未高速缓存在与第一处理器相关联的高速缓存中(即,发生高速缓存失准),则使用传统监听机制来确定由第一处理器请求的数据是否高速缓存在与第二处理器(例如,处理器104)相关联的高速缓存(例如,高速缓存112)中(步骤208)。如果由第一处理器请求的数据高速缓存在与第二处理器相关联的高速缓存中,则满足存储器存取请求(步骤210)。与传统技术的差异在于,与第二处理器相关联的高速缓存可能在其中有第二处理器未使用装入指令请求或预取来请求的数据。可以通过高速缓存(与第二处理器相关联的)将数据转发到第一处理器的流水线和/或寄存器堆来满足存储器存取请求。在一个实施例中,将存储在与第二处理器相关联的高速缓存中的数据移动或复制到与第一处理器相关联的高速缓存中。在这样的实施例中,可以设置(例如,通过控制器114)指示在将数据从与第二处理器相关联的高速缓存移动到与第一处理器相关联的高速缓存之前所需的数据的存取次数的存取阈值。例如,如果将存取阈值设为“ 1”,则对与第二处理器相关联的高速缓存中的数据的第一次存取就将提示控制器将数据移动到与第一处理器相关联的高速缓存。如果在步骤208中由第一处理器请求的数据未高速缓存在与第二处理器(或多处理器系统中的任何其它处理器)相关联的高速缓存中,则从主存储器108检索数据(步骤212)。
基于存储器存取请求的类型(或分类)将从主存储器检索的数据动态地存储在与第一处理器或第二处理器相关联的高速缓存中(步骤214)。在一个实施例中,基于与存储器存取请求相关联的优先级的类型将从主存储器检索的数据存储在给定处理器的高速缓存中。例如,(在一个实施例中)将对第一处理器的数据的低优先级请求存储在与第二处理器相关联的高速缓存中。从而,在该实施例中,避免了第一处理器的高速缓存污染。可以通过多种适当的技术将来自给定处理器的存储器存取请求设置为低优先级请求。更一般地,可以根据任何预先确定的准则将存储器存取请求(来自给定处理器的)分类(或指定类型)。
在一个实施例中,(软件)编译器检查代码和/或执行简档,以确定软件预取(高速缓存或stream touch)指令会通过将特定预取请求指定为低优先级请求而获益,例如,如果返回的数据不太可能在随后的处理器操作中由处理器再次使用,或者如果返回的数据很可能将导致高速缓存污染,则编译器可以将预取请求指定为低优先级请求。在一个实施例中,编译器在软件预取指令中设置位,其指示应当将返回的数据(或行)放置在与另一处理器相关联的高速缓存(例如,相邻处理器的L2高速缓存)中。可以由控制器114将返回的数据导向与另一处理器相关联的高速缓存(图1)。因而,在一个实施例中,处理器可以在与该处理器相关联的高速缓存中高速缓存数据,即便该处理器并未请求所述数据。
在一个实施例中,将与给定处理器相关联的硬件预取逻辑设计为识别何时从主存储器返回的数据(与预取请求相关联的)从高速缓存清出重要数据。对重要数据的清出的识别可以用作硬件预取逻辑的触发器,以设置将随后的预取请求指定为低优先级请求的位。于是,将与随后的预取请求相关联的返回的数据放置在与另一处理器相关联的高速缓存中。在一个实施例中,将猜测地执行的预取和存储器存取(例如,作为分支预测的结果)指定为低优先级请求。这样的指定避免了在将数据从主存储器返回之前未取消的错误猜测的执行的情况下的高速缓存污染。因而,可以高速缓存(在第二处理器的高速缓存中)与替换路径(即,最终确定为已错误预测的路径)对应的数据。这样的对与替换路径对应的数据的高速缓存可以在某些情况下(如果当时选择了该替换路径)减少随后访问分支的数据存取时间。
图3A-3B示出用于在多处理器系统300中处理存储器存取请求的操作的序列。图3A-3B中所示的实施例中,多处理器系统300包括处理器302和处理器304,其均通过总线308与主存储器子系统306通信。处理器302包括L1高速缓存310和L2高速缓存312,而处理器304包括L1高速缓存314和L2高速缓存316。主存储器子系统306包括用于控制对主存储器306中数据的存取的存储器控制器318(作为北桥的部分或在芯片上),而且多处理器系统300还包括用于在L1高速缓存310、L2高速缓存312、L1高速缓存314、L2高速缓存316、以及主存储器316之间管理冲突和维持一致性的高速缓存一致性控制器320(可能在北桥中)。虽然示出多处理器系统300包含两个处理器,但是多处理器系统300也可以包含任何数量的处理器。此外,处理器302、304既包含L1高速缓存又包含L2高速缓存以用于例示的目的。一般来说,可以使处理器302、304适合于其它高速缓存分级方案。
首先参照图3A,示出第一种类型的存储器存取请求,其与传统技术一致。也即,如果由处理器请求的数据(例如,行)未存储(或高速缓存)在本地L1或L2高速缓存中,而且没有其它高速缓存有该数据(如它们的监听响应所指示),则处理器将存储器存取请求发送到主存储器的存储器控制器,其将数据返回到请求处理器。可以在请求处理器的本地L1或L2高速缓存中高速缓存从主存储器返回的数据,而且如果另一处理器请求同样的数据,则使用诸如四状态MESI(已修改、独占的、共享的、无效的)协议的传统高速缓存一致性协议可以指示是否可以从该处理器的高速缓存提供数据。因而,例如,如图3A中所示,L2高速缓存312(处理器302的)发出对数据的存储器存取请求(其意指由处理器302所需的数据未被高速缓存在L1高速缓存310或L2高速缓存312中)(步骤1)。存储器存取请求通过存储器控制器318到达主存储器306(步骤2)。主存储器306将所请求的数据(或行)返回到总线(步骤3)。可替换地,可以将数据高速缓存在L1高速缓存310中(步骤5),或直接传递到处理器302的流水线而不高速缓存在L1高速缓存310或L2高速缓存312中。
参照图3B,示出用于处理第二种类型的存储器存取请求(即,低优先级请求)的过程。具体地,L2高速缓存312发出对数据的低优先级请求(步骤6)。低优先级请求可以是例如猜测的预取请求、或指定为低优先级请求的其它存储器存取请求。监听与处理器304相关联的L2高速缓存316以确定数据是否高速缓存在L2高速缓存316中(步骤7)。如果所请求的数据高速缓存在L2高速缓存316中,则L2高速缓存316满足低优先级请求(步骤8),而且不需要主存储器306中的存储器存取。从而,当将数据从L2高速缓存传递时,可以将数据高速缓存在L2高速缓存312中(步骤9)、高速缓存在L1高速缓存310中、或高速缓存在L2高速缓存312和L1高速缓存310二者中。可替换地,可以将来自L2高速缓存316的数据直接传递到处理器302的流水线和/或寄存器堆(其可以基于应用需要而减轻高速缓存污染)。
在一个实施例中,高速缓存一致性控制器320设置与存储在L2高速缓存316中的数据相关联的位,其指示该数据已经由处理器302存取的次数。此外,在该实施例中,用户可以设置预先确定的存取阈值,其指示在将数据从L2高速缓存316复制到与处理器302相关联的高速缓存(即,L1高速缓存310或L2高速缓存312)之前所需的对数据的存取次数(处理器302的)。于是,例如,如果为存储在L2高速缓存316中的给定的一行数据将存取阈值设置为1,则对L2高速缓存316中该行数据的第一次存取就将提示高速缓存一致性控制器320将该行数据从L2高速缓存316移动到与处理器302相关联的高速缓存。类似地,如果将存取阈值设置为2,则对L2高速缓存316中该行数据的第二次存取将提示高速缓存一致性控制器320将该行数据从L2高速缓存316移动到与处理器302相关联的高速缓存。该实施例中,用户可以通过调节存取阈值来控制高速缓存污染的量。用户在为高速缓存的数据建立存取阈值时可以考虑包括高速缓存一致性、包含性、以及将高速缓存污染保持为最低的期望在内的因素。
在一个实施例中,可以使用操作系统来监视多处理器系统中单个的处理器上的负荷以及它们相应的高速缓存使用和高速缓存失准率,以控制是否高速缓存一致性控制器应当使能将与第一处理器的低优先级请求对应的数据存储在与第二处理器相关联的高速缓存中。例如,如果操作系统一操作系统检测到与第二处理器相关联的高速缓存未被充分利用(或该高速缓存的高速缓存失准率低),则操作系统可以指挥高速缓存一致性控制器以在与第二处理器相关联的高速缓存中存储由第一处理器请求的数据。在一个实施例中,操作系统在操作期间可以动态地使能或禁止将与第一处理器的低优先级请求对应的数据存储在与第二处理器相关联的高速缓存中。
可以利用一个或多个可编程处理器运行计算机程序以通过对输入数据操作并产生输出来执行功能而完成上述一个或多个方法步骤。一般地,上述技术可以采取完全硬件实现、或既包含硬件又包含软件元素的实现的形式。软件元素包括,但并不限于,固件、驻留程序、微代码等等。此外,上述某些技术可以采取从提供用于、或有关于计算机或任何指令执行系统的程序代码的计算机可用或计算机可读介质可存取的计算机程序产品的形式。
对于本说明书,计算机可用或计算机可读介质可以是能够包含、存储、通信、传播、或传输用于、或有关于指令执行系统、装置、或设备的程序的任何装置。所述介质可以是电子、磁、光学、电磁、红外、或半导体系统(或装置或设备)或者传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光盘。光盘的当前示例包括只读光盘(CD-ROM)、读/写光盘(CD-R/W)以及DVD。
已经描述了用于在多处理器系统中高速缓存数据的多种实施例。然而,可以对上述实施例做出各种修改,这些修改将在本发明的范围之内。例如,可以以不同的次序执行上述方法步骤而仍达到期望的结果。而且,一般而言,可以通过硬件逻辑、或软件与硬件逻辑的组合来实现上述方法步骤。上述技术可以应用于包括例如按序执行处理器、乱序执行处理器、可编程以及不可编程处理器、具有片上或片外存储器控制器的处理器等等的多处理器系统。从而,可以做出许多修改而不背离本发明的范围。
Claims (17)
1.一种用于在包含第一处理器和第二处理器的多处理器系统中高速缓存数据的方法,该方法包括:
产生对数据的存储器存取请求,所述数据是与第一处理器相关联的处理器操作所需的;
响应于所述数据未被高速缓存在与第一处理器相关联的第一高速缓存中,监听与第二处理器相关联的第二高速缓存以确定所述数据是否之前已作为从第一处理器对该数据的存取的结果高速缓存在第二高速缓存中;以及
响应于所述数据被高速缓存在与第二处理器相关联的第二高速缓存中,将所述数据从第二高速缓存传递到第一处理器。
2.如权利要求1所述的方法,其中响应于所述数据也未被高速缓存在第二处理器的第二高速缓存中,
从与所述多处理器系统相关联的主存储器检索所述数据;以及
基于所述存储器存取请求的类型动态地在与第一处理器相关联的第一高速缓存或与第二处理器相关联的第二高速缓存中高速缓存从所述主存储器检索的数据。
3.如权利要求2所述的方法,其中产生对数据的存储器存取请求包括基于预先定义的准则指定所述存储器存取请求的类型。
4.如权利要求3所述的方法,其中指定所述存储器存取请求的类型包括指定所述存储器存取请求的类型为低优先级请求。
5.如权利要求4所述的方法,其中动态地高速缓存从所述主存储器检索的数据包括在与第二处理器相关联的第二高速缓存中高速缓存与低优先级相关联的数据。
6.如权利要求4所述的方法,其中所述低优先级请求包括硬件预取请求或软件预取请求。
7.如权利要求1所述的方法,进一步包括为在第二高速缓存中高速缓存的数据设置存取阈值,所述存取阈值指示在将数据从与第二处理器相关联的第二高速缓存复制到与第一处理器相关联的第一高速缓存之前所需的数据存取次数。
8.如权利要求1所述的方法,其中将所述数据从第二高速缓存传递到第一处理器包括将所述数据从第二高速缓存直接传递到与第一处理器相关联的寄存器堆或流水线。
9.如权利要求1所述的方法,进一步包括:
监视第二处理器的高速缓存失准率;以及
响应于第二处理器的高速缓存失准率低而在与第二处理器相关联的第二高速缓存中高速缓存由第一处理器请求的数据。
10.如权利要求1所述的方法,其中第一处理器和第二处理器实现在同一芯片上或不同芯片上。
11.一种多处理器系统,包括:
第一处理器,包含与其相关联的第一高速缓存;
第二处理器,包含与其相关联的第二高速缓存;以及
主存储器,用于存储第一处理器和第二处理器所需的数据,主存储器由通过总线与第一处理器和第二处理器中的每一个存储器通信的存储器控制器控制,
其中与第二处理器相关联的第二高速缓存可以操作以高速缓存与第一处理器的存储器存取请求对应的、来自所述主存储器的数据。
12.如权利要求11所述的多处理器系统,其中第一处理器的存储器存取请求是低优先级请求。
13.如权利要求12所述的多处理器系统,其中所述低优先级请求包括硬件预取请求或软件预取请求。
14.如权利要求12所述的多处理器系统,进一步包括控制器,用于将与所述低优先级请求对应的数据从所述主存储器导向第二高速缓存以高速缓存所述数据。
15.如权利要求14所述的多处理器系统,其中所述控制器是可操作以在第一高速缓存、第二高速缓存以及所述主存储器之间管理数据的冲突并维持数据的一致性的高速缓存一致性控制器。
16.如权利要求11所述的多处理器系统,其中第一处理器和第二处理器是紧密耦合的而且实现在同一芯片上或不同芯片上。
17.如权利要求11所述的多处理器系统,其中第一处理器和第二处理器是松散耦合的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/566,187 | 2006-12-01 | ||
US11/566,187 US20080133844A1 (en) | 2006-12-01 | 2006-12-01 | Method and apparatus for extending local caches in a multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101192198A true CN101192198A (zh) | 2008-06-04 |
Family
ID=39494320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101698877A Pending CN101192198A (zh) | 2006-12-01 | 2007-11-14 | 在多处理器系统中高速缓存数据的方法和多处理器系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080133844A1 (zh) |
CN (1) | CN101192198A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197956A (zh) * | 2012-01-10 | 2013-07-10 | 国际商业机器公司 | 包括硬件及软件预取的方法和信息处理系统 |
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
CN103907100A (zh) * | 2011-10-31 | 2014-07-02 | 国际商业机器公司 | 用于次级高速缓冲存储器的填充的动态调整阈值 |
CN104077249A (zh) * | 2013-03-25 | 2014-10-01 | 富士通株式会社 | 运算处理设备、信息处理设备及控制信息处理设备的方法 |
CN104298471A (zh) * | 2014-09-16 | 2015-01-21 | 青岛海信信芯科技有限公司 | 一种高速缓存的数据写入方法及装置 |
CN108463808A (zh) * | 2015-11-16 | 2018-08-28 | Arm有限公司 | 事件触发的可编程预取器 |
CN109240191A (zh) * | 2018-04-25 | 2019-01-18 | 上海福赛特控制技术有限公司 | 集成运动控制和电机控制的控制器和控制系统 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263279A1 (en) * | 2006-12-01 | 2008-10-23 | Srinivasan Ramani | Design structure for extending local caches in a multiprocessor system |
US8327071B1 (en) * | 2007-11-13 | 2012-12-04 | Nvidia Corporation | Interprocessor direct cache writes |
US8996812B2 (en) * | 2009-06-19 | 2015-03-31 | International Business Machines Corporation | Write-back coherency data cache for resolving read/write conflicts |
CN101872299B (zh) * | 2010-07-06 | 2013-05-01 | 浙江大学 | 冲突预测实现方法及所用冲突预测处理装置事务存储器 |
CN102866923B (zh) * | 2012-09-07 | 2015-01-28 | 杭州中天微系统有限公司 | 对称多核的高效一致性侦听过滤装置 |
US9547553B1 (en) | 2014-03-10 | 2017-01-17 | Parallel Machines Ltd. | Data resiliency in a shared memory pool |
US9781027B1 (en) | 2014-04-06 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods to communicate with external destinations via a memory network |
US9690713B1 (en) | 2014-04-22 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for effectively interacting with a flash memory |
US9594688B1 (en) | 2014-12-09 | 2017-03-14 | Parallel Machines Ltd. | Systems and methods for executing actions using cached data |
US9690705B1 (en) | 2014-12-09 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for processing data sets according to an instructed order |
US9639473B1 (en) | 2014-12-09 | 2017-05-02 | Parallel Machines Ltd. | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location |
US9639407B1 (en) | 2014-12-09 | 2017-05-02 | Parallel Machines Ltd. | Systems and methods for efficiently implementing functional commands in a data processing system |
US9753873B1 (en) | 2014-12-09 | 2017-09-05 | Parallel Machines Ltd. | Systems and methods for key-value transactions |
US9781225B1 (en) | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
CN106713348B (zh) * | 2017-01-17 | 2019-12-31 | 无锡雷华网络技术有限公司 | Olt组播上行协议报文转发方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839739B2 (en) * | 1999-02-09 | 2005-01-04 | Hewlett-Packard Development Company, L.P. | Computer architecture with caching of history counters for dynamic page placement |
US7844801B2 (en) * | 2003-07-31 | 2010-11-30 | Intel Corporation | Method and apparatus for affinity-guided speculative helper threads in chip multiprocessors |
US7340565B2 (en) * | 2004-01-13 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Source request arbitration |
-
2006
- 2006-12-01 US US11/566,187 patent/US20080133844A1/en not_active Abandoned
-
2007
- 2007-11-14 CN CNA2007101698877A patent/CN101192198A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103907100A (zh) * | 2011-10-31 | 2014-07-02 | 国际商业机器公司 | 用于次级高速缓冲存储器的填充的动态调整阈值 |
CN103907100B (zh) * | 2011-10-31 | 2016-05-25 | 国际商业机器公司 | 高速缓冲存储器数据存储系统及向其存储填充数据的方法 |
CN103197956A (zh) * | 2012-01-10 | 2013-07-10 | 国际商业机器公司 | 包括硬件及软件预取的方法和信息处理系统 |
US9411587B2 (en) | 2012-01-10 | 2016-08-09 | International Business Machines Corporation | Method of prefetch optimizing by measuring execution time of instruction sequence cycling through each selectable hardware prefetch depth and cycling through disabling each software prefetch instruction |
CN103197956B (zh) * | 2012-01-10 | 2016-10-05 | 国际商业机器公司 | 包括硬件及软件预取的方法和信息处理系统 |
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
CN103870394B (zh) * | 2012-12-13 | 2018-12-14 | Arm 有限公司 | 基于保留优先级的缓存替换策略 |
CN104077249A (zh) * | 2013-03-25 | 2014-10-01 | 富士通株式会社 | 运算处理设备、信息处理设备及控制信息处理设备的方法 |
CN104298471A (zh) * | 2014-09-16 | 2015-01-21 | 青岛海信信芯科技有限公司 | 一种高速缓存的数据写入方法及装置 |
CN108463808A (zh) * | 2015-11-16 | 2018-08-28 | Arm有限公司 | 事件触发的可编程预取器 |
CN109240191A (zh) * | 2018-04-25 | 2019-01-18 | 上海福赛特控制技术有限公司 | 集成运动控制和电机控制的控制器和控制系统 |
CN109240191B (zh) * | 2018-04-25 | 2020-04-03 | 实时侠智能控制技术有限公司 | 集成运动控制和电机控制的控制器和控制系统 |
Also Published As
Publication number | Publication date |
---|---|
US20080133844A1 (en) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192198A (zh) | 在多处理器系统中高速缓存数据的方法和多处理器系统 | |
US8719508B2 (en) | Near neighbor data cache sharing | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US7669009B2 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
CN111263934B (zh) | 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 | |
US20140317356A1 (en) | Merging demand load requests with prefetch load requests | |
JP6630449B2 (ja) | 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換 | |
JP2007257631A (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
US8949569B2 (en) | Enhanced direct memory access | |
KR20190002473A (ko) | 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용 | |
US8560803B2 (en) | Dynamic cache queue allocation based on destination availability | |
EP4026005B1 (en) | Producer-to-consumer active direct cache transfers | |
US20180336136A1 (en) | Input/output-coherent Look-ahead Cache Access | |
US6922753B2 (en) | Cache prefetching | |
JP2023507292A (ja) | ゼロ値メモリ圧縮 | |
US7058767B2 (en) | Adaptive memory access speculation | |
US20080263279A1 (en) | Design structure for extending local caches in a multiprocessor system | |
US9146870B2 (en) | Performance of accesses from multiple processors to a same memory location | |
JP2023504622A (ja) | ある要求に対してコヒーレンス保護を拡張するキャッシュ・スヌーピング・モード | |
GB2550048A (en) | Read discards in a processor system with write-back caches | |
US20160217076A1 (en) | Speculative cache reading using shared buffer | |
US11687460B2 (en) | Network cache injection for coherent GPUs | |
CN109690501A (zh) | 混合输入/输出相关写入 | |
JP2023509333A (ja) | 特定の要求のコヒーレンス保護を延長するキャッシュ・スヌーピング・モード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080604 |