CN101088076B - 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 - Google Patents

共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 Download PDF

Info

Publication number
CN101088076B
CN101088076B CN2005800448943A CN200580044894A CN101088076B CN 101088076 B CN101088076 B CN 101088076B CN 2005800448943 A CN2005800448943 A CN 2005800448943A CN 200580044894 A CN200580044894 A CN 200580044894A CN 101088076 B CN101088076 B CN 101088076B
Authority
CN
China
Prior art keywords
processor
piece
asked
impact damper
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.)
Expired - Fee Related
Application number
CN2005800448943A
Other languages
English (en)
Other versions
CN101088076A (zh
Inventor
G·克里索斯
M·马蒂纳
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN101088076A publication Critical patent/CN101088076A/zh
Application granted granted Critical
Publication of CN101088076B publication Critical patent/CN101088076B/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/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0815Cache consistency protocols

Abstract

一种在共享存储器计算机系统中预测自有高速缓存块的早写回的方法。本发明使系统能够预测哪些写入块更有可能被另一个CPU所请求,以及在块中更新数据后,拥有的CPU尽可能快地将这些块写回至存储器中。如果另一个处理器在请求数据,这将缩减获得数据的延时,减少同步开销,并提高并行程序的吞吐量。

Description

共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 
技术领域
本发明涉及共享存储器计算机系统,特别是,本发明涉及共享存储器计算机系统中的自有高速缓存块。
背景技术
多处理器数据处理系统管理大量处理器的集合计算能力。存储器系统是多处理器系统的中心,其必须可扩展,以在多处理器之间共享数据时提供足够的带宽给每一处理器。对于某些应用,共享内存的高效方法对于运行在多处理器上的线程之间的有效协作是至关重要的。
大多数由CPU写下的数据块不期望在刚获得所有权后就被其他代理/处理器读写。但是,在短时间内某些块可能被极大地共享,如果这些块被用于同步多线程的执行的话。通信或同步延时开销可以是确定多处理器系统(例如芯片多处理器)上多线程负载的扩展性的一个因素。
发明内容
为了解决上述问题,本发明提供了共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统。
根据本发明的一方面,提供一种用于预测高速缓存块的早写回的方法,包括:由第一处理器请求块;使用耦合到所述第一处理器和第二处理器的共享高速缓存来确定所述第二处理器是否拥有所请求的块;如果所述第二处理器拥有所请求的块,则向所述第二处理器发送收回消息;所述第二处理器使用其最近存储的数据来更新所请求的块并从所述第二处理器的合并缓冲器中提取所请求的块;所述第二处理器向所述共享高速缓存写入所请求的块;向所述第一处理器传输所请 求的块;在向所述第一处理器传输所请求的块之后将所请求的块更新为已更新的块;如果所述第二处理器拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及如果所述第二处理器不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器。
根据本发明的另一方面,提供一种用于预测高速缓存块的早写回的装置,包括:包括第一合并缓冲器的第一处理器内核,其中所述第一合并缓冲器向共享高速缓存聚集最近存储的数据;包括第二合并缓冲器的第二处理器内核,其中所述第二合并缓冲器向所述共享高速缓存聚集最近存储的数据;以及耦合到所述第一处理器内核和所述第二处理器内核的所述共享高速缓存;其中,所述第一处理器内核请求与所述共享高速缓存相关的数据块的所有权,并且其中使用耦合到所述第一处理器内核和所述第二处理器内核的所述共享高速缓存来确定所述第二处理器内核是否拥有所请求的块;如果所述第二处理器内核拥有所请求的块,则向所述第二处理器内核发送收回消息;所述第二处理器内核使用其最近存储的数据来更新所请求的块并从所述第二处理器内核的所述合并缓冲器中提取所请求的块;所述第二处理器内核向所述共享高速缓存写入所请求的块;向所述第一处理器内核传输所请求的块;在向所述第一处理器内核传输所请求的块之后将所请求的块更新为已更新的块;如果所述第二处理器内核拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及如果所述第二处理器内核不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器内核。
根据本发明的再一方面,提供一种多处理器计算机系统,包括:耦合到第一处理器和第二处理器的共享高速缓存,其中所述共享高速缓存确定数据块的所有权;所述第一处理器,所述第一处理器包括第一缓冲器;所述第二处理器,所述第二处理器包括第二缓冲器;以及耦合到所述第一处理器和所述第二处理器以与输入/输出设备通信的第一接口,其中所述第一缓冲器和所述第二缓冲器能够向同一高速缓存块聚集最近存储的数据,并且其中所述第一处理器请求与所述共享高速缓存相关的数据块的所有权,使用耦合到所述第一处理器和所述 第二处理器的所述共享高速缓存来确定所述第二处理器是否拥有所请求的块;如果所述第二处理器拥有所请求的块,则向所述第二处理器发送收回消息;所述第二处理器使用其最近存储的数据来更新所请求的块并从所述第二处理器的合并缓冲器中提取所请求的块;所述第二处理器向所述共享高速缓存写入所请求的块;向所述第一处理器传输所请求的块;在向所述第一处理器传输所请求的块之后将所请求的块更新为已更新的块;如果所述第二处理器拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及如果所述第二处理器不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器。
附图说明
从下列如附图所示的优选实施例的描述中,本发明的各种各样的特征将显而易见,在所述附图中,相同的参考数字表示相同的附件。附图未必是按比例绘制的,重点放在说明本发明的原理。
图1为多处理器系统的框图;
图2为图1的多处理器系统中的处理器的框图;
图3为由图1的多处理器系统执行的示例方法的自有高速缓存块(cache block)的预测早写回的流程图;
图4为可以提供多线程处理器环境的系统的框图。
具体实施方式
下面的描述是说明性而非限制性的,阐述的诸如具体结构、体系、接口和技术之类的特定描述是为了实现对本发明各个方面的彻底了解。但是,对了解本发明的本领域技术人员显而易见的是,本发明的各个方面也可以使用不同于这些特定细节的其他示例来实现。在具体示例中,省略了公知的装置、电路和方法的描述,以避免因非必要的细节而对本发明的描述造成模糊。
本发明涉及由芯片多处理器节点构成的可扩展共享存储器系统的自有高速缓存块的写回。本发明的实施例可以提供的半导体芯片包括处理器,以及用于连接处理器和共享地址空间的双向环互连。根据 本发明的一个实施例,每一处理器可以包括多个CPU,且地址空间可以包括大的共享高速缓存。每一CPU可以具有其自己的私有指令和数据高速缓存(第一级高速缓存),所有CPU共享单个第二级高速缓存。可以被包括于系统每一节点中的协议引擎和高速缓存控制器在芯片中所有高速缓存之间以及跨节点的所有高速缓存之间维持高速缓存一致性(cache coherence)。
本文中披露的所有的特定的量(例如处理器数量、节点数量和接口数量)仅用于解释一个特定实施例的操作。通常,这些量会因本发明实施的不同而变化(有时变化还会很大)。
参照图1,所示的多处理器系统100包括多个处理器节点102。每一处理器节点102优选被实现为单个的芯片多处理器。在优选实施例中,每一处理器节点102可以具有8个处理器内核104;但是,在其他实施例中,也可以具有2至6个处理器内核104。可以包括中央处理单元的处理器内核104为处理器内核,因为它们的高速缓存和其他支持电路被独立显示(如图2所示)。
每一内核104连接到逻辑共享的支援高速缓存(backing cache)106。共享的支援高速缓存106连接到存储器108。所述存储器108可以表示用于存储处理器所用的数据和指令的任何类型的存储装置。
通常,尽管本发明不限于此,但存储器108可以包括动态随机存取存储器(DRAM)。在另一个实施例中,存储器108可以包括半导体存储器。在又一个实施例中,存储器108可以包括诸如磁盘驱动器之类的磁存储装置。但是,本发明并不限于本文所述的存储器的示例。
多个节点102可以通过包括路由器109和互连装置110的子系统进行连接。子系统还可以包括输入队列、输出队列和分组交换机(均未示出)。路由器109可以经由互联装置110从其他节点接收分组或向其他节点发送分组。互连装置110可以物理连接多节点102。系统控制模块111负责各种与维护相关的功能(例如,系统配置、初始化和中断分布)。
虽然本发明是结合多处理器和共享存储器系统进行描述的,但本发明也适用于单处理器计算机系统。
图1所示的计算系统的实施例可以包括多个处理器和多个高速缓存。这些存储器和高速缓存包括多处理器系统,其中,高速缓存通过高速缓存一致性机制在相互间保持一致性。可以在处理器高速缓存和存储器互连装置中实施高速缓存一致性协议,以保持高速缓存一致性。
在具有共享存储器的多处理器系统中必须实现高速缓存一致性。高速缓存一致性协议解决以下问题:确保系统中没有处理器使用本地高速缓存中的稳定数据。通常,通过使除了最近更新的高速缓存数据之外的高速缓存数据无效,或者通过使用最近数据更新高速缓存,可以删除稳定高速缓存项。在使用无效协议的系统中,从高速缓存尝试访问无效存储器位置会导致处理器从其他高速缓存或主存储器读取最近数据的副本。在更新协议中,在写操作之后,使用最近数据对具有数据高速缓存版本的所有高速缓存进行更新。因此,在高速缓存中大部分最近数据是可用的。
图2为图1的多处理器系统中的处理器的框图,其预测自有高速缓存块的早写回。每一内核104包括私有高速缓存112,所述私有高速缓存112是共享高速缓存106的子集。所述高速缓存112可以是直写式高速缓存。
当CPU必需向存储器地址写入或存储时,CPU需要从块的高速缓存体系的较低级别请求所有权,并且在获得所有权之前无法对块进行写入。这是为了维持正确的高速缓存一致性。当CPU x发送所有权请求后,无效的信号被传送给潜在的共享者,即具有该块副本的其他CPU。一致性协议将向请求所有权的CPU x发送确认消息,向其告知其对该块的所有权。在确认消息被发送后,现在可以发生写入动作。
为了最小化直写高速缓存112所生成的存储带宽,每一CPU 104均可以具有结合的合并缓冲器114,以向同一高速缓存块聚集最近存储的数据。合并缓冲器114可以总共包括16个高速缓存块。通常,合并缓冲器114可以试图将自有的块保持尽可能长的时间,以最大化所存储的数据的结合,并最小化返回高速缓存的直写流量。
写回可以由在初始的写请求被发送给的合并缓冲器114项中设置“purgeMe(清除我)”比特造成。合并缓冲器114中的每一项均存在purgeMe比特。在每一周期中,与合并缓冲器114相关的控制逻辑试图选择具有purgeMe比特设置的项,并将块写回至共享的高速缓存106中。如果没有项具有已设置的purgeMe比特,则不选择任何项。
可以由于各种原因设置purgeMe比特。一个原因是,合并缓冲器114中填满了有效项,并跨越了“清除门限”。如果合并缓冲器114跨越了清除门限,则与合并缓冲器114相关的控制逻辑可以随后为一个或多个项设置purgeMe比特。通过为项设置purgeMe比特,所述项可以被写回至共享的高速缓存106,以为新到达的提交存储(committed store)腾出空间。对于系统100,如果预测对应的数据将被另一个CPU或高速缓存一致性代理所使用的话,则可以为该项设置purgeMe比特。
图3为由图1的多处理器系统执行的预测自有高速缓存块的早写回的示例方法的流程图。响应于发起CPU的所有权请求,对写回块的预测是基于高速缓存一致性协议中的消息的。
如果所有权请求是从CPU x发送给共享高速缓存的(305),则共享高速缓存必须首先确定所请求的块是否由另一个CPU所拥有(310)。如果所请求的块不被另一个CPU所拥有,则系统判定所请求的块是否被另一个CPU或其他CPU所共享(311)。如果该块不具有其他共享者,则发送AckNonShared消息以授予对该块的所有权,并宣布没有其他CPU具有该块的副本(315)。但是,如果该块不被自有而是被共享,则发送AckShared消息,所有权被传送给CPU x(312)。
如果该块被诸如CPU y之类的另一CPU所拥有,则向CPUy发送收回消息(320)。如果接收到收回消息,CPU y使用其最近存储数据更新该块,并设置purgeMe比特,以从其合并缓冲器中提取块(325)。一旦从合并缓冲器中提取了块,CPU y将块写回至共享高速缓存,放弃其所有权(330)。
现在将更新块发送给正在请求的CPUx(335)。CPUx可以使用 当前数据来更新块(340),并随后立即将块发送给共享高速缓存(345)。将更新的块随后立即发送给共享高速缓存是因为该块数据之前由另一个CPU(即CPUy)所拥有。
现在假设CPU x需要再次写入块,另一个所有权请求将被发送给共享高速缓存305。此时,如果在此期间没有其他CPU读取该块,表示块不被拥有(310)也不被共享(311),则将AckNonShared消息发送给CPU x(315)。CPU x现在可以保持该块,直到其因容量原因(或被另一个CPU请求)而被收回为止。
但是,如果另一个CPU在此期间读取了该块,表示块不被拥有(310)但被共享(311),则将AckWasShared消息发送给CPUx(312),该块被再次早写回。
如果CPU y现在请求该块,其可能已经被请求该块的上一CPU写回至共享高速缓存中,否则,其可能正在传输中。如果该块已经被写回至共享高速缓存,这将把4-跳事务缩减为2-跳事务,潜在地将同步延时缩减了一半。
因此,当请求的CPU作出所有权请求时,如果其他CPU具有(或可能具有)块的副本,则将该块尽快写回。如果其他CPU具有该块的副本,但不再访问该块,则对其的第一次写入会导致该块的临时(expedient)写回,但随后的写入则不会。
在此之前,处理器并不区别共享的块和不共享的块的确认。使用上述方法,处理器现在可以确定多长时间其应该将块送回至共享的支援高速缓存。这使得系统可以预测何时需要快速共享。
有利地,该方法使系统能够预测哪些写入块更有可能被另一个CPU所请求,在更新块中的数据后,拥有的CPU将这些块尽快写回至存储器。如果另一个处理器请求该数据,这将缩减获得数据的延时,减少同步开销,并提高并行程序的吞吐量。
参照图4,系统400包括支持自有高速缓存块的预测早写回的处理器。系统400一般性地示出了处理器、存储器以及输入/输出装置由多个点到点接口来相互连接的系统。系统400还可以具有几个处理器,为清晰起见,在图中只示出了处理器405、410这两个处理器。 每个处理器405、410可以分别包括处理器内核407、412。处理器405、410可以分别包括与存储器425、430连接的本地存储控制器中心(MCH)415、420。处理器405、410可以使用点到点接口电路440、445经由点到点接口435来交换数据。处理器405、410可以使用点到点接口电路465、470、475和480经由单独的点到点接口455、460来与芯片组450交换数据。芯片组450也可以经由高性能图形接口490来与高性能图形电路485交换数据。
芯片组450可以经由总线接口495与总线416交换数据。在任一系统中,在总线416上可能存在各种输入/输出I/O装置414,在某些实施例中包括低性能图形控制器、视频控制器和网络控制器。在某些实施例中,另一个总线桥418可用于使数据能够在总线416和总线420之间进行交换。在某些实施例中,总线420可以是小型计算机系统接口(SCSI)总线、集成驱动电路(IDE)总线或通用串行总线(USB)。附加的I/O装置可以与总线420连接。这可以包括:键盘和包括鼠标的光标控制装置422,音频I/O 424,包括调制解调器和网络接口的通信装置426,以及数据存储装置428。软件代码430可以存储于数据存储装置428中。在某些实施例中,数据存储装置428可以是固定的磁盘、软盘驱动器、光盘驱动器、磁-光盘驱动器、磁带或包括闪速存储器的非易失性存储器。
在以上描述中,出于解释而非限定的目的,阐述了诸如具体结构、构造、接口和技术等之类的特定细节,以实现对本发明各个方面的彻底理解。但是,对于了解本发明特点的本领域技术人员来说显而易见的是,使用不同于这些特定细节的其他示例,也可以实现本发明的各个方面。在某些实例中,省略了对公知的装置、电路和方法的描述,以避免因非必要的细节而对本发明的描述造成模糊。

Claims (15)

1.一种用于预测高速缓存块的早写回的方法,包括:
由第一处理器请求块;
使用耦合到所述第一处理器和第二处理器的共享高速缓存来确定所述第二处理器是否拥有所请求的块;
如果所述第二处理器拥有所请求的块,则向所述第二处理器发送收回消息;
所述第二处理器使用其最近存储的数据来更新所请求的块并从所述第二处理器的合并缓冲器中提取所请求的块;
所述第二处理器向所述共享高速缓存写入所请求的块;
向所述第一处理器传输所请求的块;
在向所述第一处理器传输所请求的块之后将所请求的块更新为已更新的块;
如果所述第二处理器拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及
如果所述第二处理器不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器。
2.如权利要求1所述的方法,其中,所述向所述第一处理器传输所述块还包括,向所述第一处理器发送第一信号。
3.如权利要求1所述的方法,还包括,确定所请求的块是否由所述第二处理器共享,其中确定所请求的块是否由所述第二处理器共享的步骤包括发送AckShared消息以表明所请求的块不被自有而是被共享。
4.如权利要求1所述的方法,还包括,设置位于所述第二处理器中的合并缓冲器中用于与所请求的块相关的项的比特。
5.如权利要求1所述的方法,还包括:
所述第一处理器再次请求写入块;
如果所述块没有被其它处理器拥有和共享,则向所述第一处理器发送AckNonShared消息;以及
所述第一处理器保持所述块,直到因容量原因而被收回为止。
6.一种用于预测高速缓存块的早写回的装置,包括:
包括第一合并缓冲器的第一处理器内核,其中所述第一合并缓冲器向共享高速缓存聚集最近存储的数据;
包括第二合并缓冲器的第二处理器内核,其中所述第二合并缓冲器向所述共享高速缓存聚集最近存储的数据;以及
耦合到所述第一处理器内核和所述第二处理器内核的所述共享高速缓存;
其中,所述第一处理器内核请求与所述共享高速缓存相关的数据块的所有权,并且其中
使用耦合到所述第一处理器内核和所述第二处理器内核的所述共享高速缓存来确定所述第二处理器内核是否拥有所请求的块;
如果所述第二处理器内核拥有所请求的块,则向所述第二处理器内核发送收回消息;
所述第二处理器内核使用其最近存储的数据来更新所请求的块并从所述第二处理器内核的所述合并缓冲器中提取所请求的块;
所述第二处理器内核向所述共享高速缓存写入所请求的块;
向所述第一处理器内核传输所请求的块;
在向所述第一处理器内核传输所请求的块之后将所请求的块更新为已更新的块;
如果所述第二处理器内核拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及
如果所述第二处理器内核不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器内核。
7.如权利要求6所述的装置,其中,
所述第一处理器内核再次请求写入块;
如果所述块没有被其它处理器内核拥有和共享,则向所述第一处理器内核发送AckNonShared消息;以及
所述第一处理器内核保持所述块,直到因容量原因而被收回为止。
8.如权利要求7所述的装置,其中,所述第二合并缓冲器包括位于所述第二合并缓冲器中用于每一个数据块的清除比特,并且其中响应于在所述第一处理器内核获取所述数据块的所有权之前所述第二处理器内核拥有所述数据块,通过设置所述清除比特而从所述第二合并缓冲器提取所述数据块。
9.如权利要求7所述的装置,其中,所述第一处理器内核包括第一私有高速缓存并且所述第二处理器内核包括第二私有高速缓存,并且其中所述共享高速缓存确定所述数据块和所述已更新的数据块的所有权。
10.如权利要求9所述的装置,其中所述共享高速缓存确定数据块的所有权包括一致性协议发送确认消息,向所述第一处理器内核告知所有权。
11.一种多处理器计算机系统,包括:
耦合到第一处理器和第二处理器的共享高速缓存,其中所述共享高速缓存确定数据块的所有权,
所述第一处理器,所述第一处理器包括第一缓冲器,
所述第二处理器,所述第二处理器包括第二缓冲器,以及
耦合到所述第一处理器和所述第二处理器以与输入/输出设备通信的第一接口,
其中所述第一缓冲器和所述第二缓冲器能够向同一高速缓存块聚集最近存储的数据,
并且其中所述第一处理器请求与所述共享高速缓存相关的数据块的所有权,
使用耦合到所述第一处理器和所述第二处理器的所述共享高速缓存来确定所述第二处理器是否拥有所请求的块;
如果所述第二处理器拥有所请求的块,则向所述第二处理器发送收回消息;
所述第二处理器使用其最近存储的数据来更新所请求的块并从所述第二处理器的合并缓冲器中提取所请求的块;
所述第二处理器向所述共享高速缓存写入所请求的块;
向所述第一处理器传输所请求的块;
在向所述第一处理器传输所请求的块之后将所请求的块更新为已更新的块;
如果所述第二处理器拥有所请求的块,则立即将已更新的块发送给所述共享高速缓存;以及
如果所述第二处理器不拥有和不共享所请求的块,则将所请求的块发送给所述第一处理器。
12.如权利要求11所述的多处理器系统,其中,所述第一处理器和所述第二处理器中的所述缓冲器包括用于所述缓冲器内每一个块的比特。
13.如权利要求12所述的多处理器系统,其中,当所述比特被设置后,提取所述缓冲器内的所述块。
14.如权利要求11所述的多处理器系统,其中响应于所述第一处理器和所述第二处理器共享所述块,所述第一处理器获取所述块的步骤包括:所述共享高速缓存发送AckShared消息以表明所请求的块不被自有而是被共享。
15.如权利要求11所述的多处理器系统,其中,所述第一接口是点到点接口。
CN2005800448943A 2004-12-27 2005-12-27 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 Expired - Fee Related CN101088076B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/023,882 2004-12-27
US11/023,882 US7624236B2 (en) 2004-12-27 2004-12-27 Predictive early write-back of owned cache blocks in a shared memory computer system
PCT/US2005/047589 WO2006072058A1 (en) 2004-12-27 2005-12-27 Predictive early write-back of owned cache blocks in a shared memory computer system

Publications (2)

Publication Number Publication Date
CN101088076A CN101088076A (zh) 2007-12-12
CN101088076B true CN101088076B (zh) 2011-06-08

Family

ID=36177973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800448943A Expired - Fee Related CN101088076B (zh) 2004-12-27 2005-12-27 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统

Country Status (5)

Country Link
US (1) US7624236B2 (zh)
JP (1) JP4966205B2 (zh)
CN (1) CN101088076B (zh)
TW (1) TWI318737B (zh)
WO (1) WO2006072058A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8279886B2 (en) * 2004-12-30 2012-10-02 Intel Corporation Dataport and methods thereof
US20060174067A1 (en) * 2005-02-03 2006-08-03 Craig Soules Method of caching data
US8019947B2 (en) * 2005-10-19 2011-09-13 Intel Corporation Technique for thread communication and synchronization
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
US9164910B2 (en) * 2008-02-21 2015-10-20 Arm Limited Managing the storage of data in coherent data stores
US8250336B2 (en) * 2008-02-25 2012-08-21 International Business Machines Corporation Method, system and computer program product for storing external device result data
US8489820B1 (en) * 2008-03-18 2013-07-16 Netapp, Inc Speculative copying of data from main buffer cache to solid-state secondary cache of a storage server
US8412889B2 (en) * 2008-10-16 2013-04-02 Microsoft Corporation Low-level conditional synchronization support
US20100153612A1 (en) * 2008-12-15 2010-06-17 Lsi Corporation Transport agnostic scsi i/o referrals
US8195887B2 (en) * 2009-01-21 2012-06-05 Globalfoundries Inc. Processor power management and method
US20140208031A1 (en) * 2011-12-21 2014-07-24 Shlomo Raikin Apparatus and method for memory-hierarchy aware producer-consumer instructions
WO2013095475A1 (en) 2011-12-21 2013-06-27 Intel Corporation Apparatus and method for memory-hierarchy aware producer-consumer instruction
US10025711B2 (en) * 2012-01-16 2018-07-17 Qualcomm Incorporated Hybrid write-through/write-back cache policy managers, and related systems and methods
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
CN104321750B (zh) * 2012-04-25 2019-03-08 英特尔公司 在共享存储器编程中保持释放一致性的方法和系统
CN102970350A (zh) * 2012-11-05 2013-03-13 曙光信息产业(北京)有限公司 在存储系统中维护副本一致性的方法
US9244841B2 (en) * 2012-12-31 2016-01-26 Advanced Micro Devices, Inc. Merging eviction and fill buffers for cache line transactions
CN103345451B (zh) * 2013-07-18 2015-05-13 四川九成信息技术有限公司 一种在多核处理器中缓冲数据的方法
WO2015126414A1 (en) 2014-02-21 2015-08-27 Hewlett-Packard Development Company L. P. Performing write operations on main memory
US9933980B2 (en) * 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
JP6558009B2 (ja) * 2015-03-23 2019-08-14 富士ゼロックス株式会社 転送装置、転送システムおよびプログラム
KR101842764B1 (ko) * 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US11210263B1 (en) * 2017-09-27 2021-12-28 EMC IP Holding Company LLC Using persistent memory technology as a host-side storage tier for clustered/distributed file systems, managed by cluster file system
US10452544B1 (en) * 2017-09-27 2019-10-22 EMC IP Holding Company LLC Using persistent memory technology as a host-side storage tier for clustered/distributed file systems, managed by host-side tier
US10452543B1 (en) * 2017-09-27 2019-10-22 EMC IP Holding Company LLC Using persistent memory technology as a host-side storage tier for clustered/distributed file systems, managed by storage appliance
JP7140972B2 (ja) * 2018-12-21 2022-09-22 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
US11010067B2 (en) * 2018-12-28 2021-05-18 Intel Corporation Defense against speculative side-channel analysis of a computer system
US20230143181A1 (en) * 2019-08-27 2023-05-11 Micron Technology, Inc. Write buffer control in managed memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926829A (en) * 1995-12-22 1999-07-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US20020124144A1 (en) * 2000-06-10 2002-09-05 Kourosh Gharachorloo Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector
CN1474969A (zh) * 2000-09-29 2004-02-11 英特尔公司 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
CN1495618A (zh) * 2002-09-20 2004-05-12 英特尔公司 芯片多处理器或多处理系统的高速缓存共享

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521874A (en) * 1982-09-28 1985-06-04 Trw Inc. Random access memory device
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
JPH04174042A (ja) * 1990-06-07 1992-06-22 Fujitsu Ltd マルチプロセッサシステム
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
CA2051209C (en) * 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6151658A (en) * 1998-01-16 2000-11-21 Advanced Micro Devices, Inc. Write-buffer FIFO architecture with random access snooping capability
JP2001236221A (ja) * 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6633960B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Scalable directory based cache coherence protocol
US6901450B1 (en) * 2000-09-22 2005-05-31 Hitachi, Ltd. Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
US20030131201A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system
US6865646B2 (en) * 2001-12-31 2005-03-08 Intel Corporation Segmented distributed memory module cache
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926829A (en) * 1995-12-22 1999-07-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US20020124144A1 (en) * 2000-06-10 2002-09-05 Kourosh Gharachorloo Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector
CN1474969A (zh) * 2000-09-29 2004-02-11 英特尔公司 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
CN1495618A (zh) * 2002-09-20 2004-05-12 英特尔公司 芯片多处理器或多处理系统的高速缓存共享

Also Published As

Publication number Publication date
JP4966205B2 (ja) 2012-07-04
WO2006072058A1 (en) 2006-07-06
US20060143406A1 (en) 2006-06-29
US7624236B2 (en) 2009-11-24
CN101088076A (zh) 2007-12-12
JP2008525901A (ja) 2008-07-17
TW200636482A (en) 2006-10-16
TWI318737B (en) 2009-12-21

Similar Documents

Publication Publication Date Title
CN101088076B (zh) 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统
CN100495361C (zh) 维护存储器一致性的方法和系统
CN1575455B (zh) 优化输入/输出应用的分布式读写高速缓存实现方案
JP4960989B2 (ja) インバリデーショントランザクションのスヌープフィルタからの削除
KR0163231B1 (ko) 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US10303602B2 (en) Preemptive cache management policies for processing units
US20110004729A1 (en) Block Caching for Cache-Coherent Distributed Shared Memory
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US20120221812A1 (en) Method for preserving memory affinity in a non-uniform memory access data processing system
US20070005899A1 (en) Processing multicore evictions in a CMP multiprocessor
KR19990072598A (ko) 최적화된캐시동작을독립적으로구현하는캐시일관성프로토콜
US8176261B2 (en) Information processing apparatus and data transfer method
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
CN109582223A (zh) 一种内存数据迁移的方法及装置
CN116134475A (zh) 计算机存储器扩展设备及其操作方法
US5987544A (en) System interface protocol with optional module cache
US7107410B2 (en) Exclusive status tags
KR20140038075A (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
US6678800B1 (en) Cache apparatus and control method having writable modified state
KR20090053837A (ko) 자기 조화형 데이터를 이용하여 멀티프로세서 시스템의 캐시 코히어런스 오버헤드를 저감시키는 메카니즘 및 방법
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
CN115203071A (zh) 默认共享状态缓存一致性协议的应用
US6546469B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers

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: 20110608

Termination date: 20141227

EXPY Termination of patent right or utility model