CN101088076A - 共享存储器计算机系统中自有高速缓存块的预测早写回 - Google Patents

共享存储器计算机系统中自有高速缓存块的预测早写回 Download PDF

Info

Publication number
CN101088076A
CN101088076A CNA2005800448943A CN200580044894A CN101088076A CN 101088076 A CN101088076 A CN 101088076A CN A2005800448943 A CNA2005800448943 A CN A2005800448943A CN 200580044894 A CN200580044894 A CN 200580044894A CN 101088076 A CN101088076 A CN 101088076A
Authority
CN
China
Prior art keywords
processor
piece
upgraded
processors
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800448943A
Other languages
English (en)
Other versions
CN101088076B (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

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

一种在共享存储器计算机系统中预测自有高速缓存块的早写回的方法。本发明使系统能够预测哪些写入块更有可能被另一个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所生成的存储带宽,每一CPU104均可以具有结合的合并缓冲器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所拥有,则向CPU y发送收回消息(320)。如果接收到收回消息,CPU y使用其最近存储数据更新该块,并设置purgeMe比特,以从其合并缓冲器中提取块(325)。一旦从合并缓冲器中提取了块,CPU y将块写回至存储器,放弃其所有权(330)。
现在将更新块发送给正在请求的CPU x(335)。CPU x可以使用当前数据来更新块(340),并随后立即将块发送给共享高速缓存(345)。将更新的块随后立即发送给共享高速缓存是因为该块数据之前由另一个CPU(即CPU y)所拥有。
现在假设CPU x需要再次写入块,另一个所有权请求将被发送给共享高速缓存305。此时,如果在此期间没有其他CPU读取该块,表示块不被拥有(310)也不被共享(311),则将AckNonShared消息发送给CPU x(315)。CPU x现在可以保持该块,直到其因容量原因(或被另一个CPU请求)而被收回为止。
但是,如果另一个CPU在此期间读取了该块,表示块不被拥有(310)但被共享(311),则将AckWasShared消息发送给CPU x(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 (27)

1、一种方法,包括:
由第一处理器请求块;
判定第二处理器是否具有所请求的块;
如果所述第二处理器不具有所请求的块,则向所述第一处理器传输块;以及
所述第一处理器立即向存储器写入已更新的块。
2、如权利要求1所述的方法,其中,所述向所述第一处理器传输块还包括,向所述第一处理器发送第一信号。
3、如权利要求1所述的方法,其中,所述判定所述第二处理器是否具有所请求的块还包括:
判定所述块是否由所述第二处理器所拥有;以及
如果所述块不是由所述第二处理器所拥有,则判定所述块是否由所述第二处理器所共享。
4、如权利要求3所述的方法,其中,所述确定所述块是否由所述第二处理器所共享还包括,向所述第一处理器发送第二信号。
5、如权利要求3所述的方法,其中,所述确定所述块是否由所述第二处理器所拥有还包括,向所述第二处理器发送收回信号。
6、如权利要求5所述的方法,还包括,由所述第二处理器使用最近存储的数据来更新块。
7、如权利要求6所述的方法,还包括:
在缓冲器中为所述块的项设置比特;以及
从所述缓冲器提取所述已更新的块。
8、如权利要求7所述的方法,还包括,由所述第二处理器向存储器写入所述已更新的块。
9、如权利要求8所述的方法,还包括:
由所述存储器向所述第一处理器发送所述已更新的块;以及
由所述第一处理器更新所述已更新的块。
10、如权利要求9所述的方法,还包括:
由所述第一处理器再次请求所述已更新的块;
判定从所述第一处理器向所述存储器发送所述已更新的块之后所述第二处理器是否请求过所述已更新的块;以及
向所述第一处理器传输已更新的块。
11、如权利要求10所述的方法,还包括,如果从所述第一处理器向所述存储器发送所述已更新的块之后,所述第二处理器未请求所述已更新的块,则向所述第一处理器发送所述第一信号。
12、如权利要求11所述的方法,还包括:
由所述第一处理器更新所请求的已更新的块;以及
由所述第一处理器保持所述新的已更新的块。
13、如权利要求10所述的方法,还包括,如果从所述已更新的块被发送给所述存储器之后,所述第二处理器请求过所述已更新的块,则向所述第一处理器发送第三信号。
14、如权利要求13所述的方法,还包括:
由所述第一处理器更新所请求的已更新的块;以及
立即向所述存储器写入所述新的已更新的块。
15、第一和第二处理器,包括:
连接到所述第一和第二处理器的共享高速缓存,其中,所述共享高速缓存确定数据块的所有权;
位于所述第一和第二处理器的每一个中的缓冲器,其中,所述缓冲器存储针对所述块的最近数据;且
其中,所述第一处理器请求所述块,如果所述块由所述第二处理器共享,则所述第一处理器获取所述块,更新所述块,并立即向所述共享的高速缓存写入所述已更新的块。
16、如权利要求15所述的第一和第二处理器,其中,所述缓冲器包括用于所述缓冲器内每一个块的比特。
17、如权利要求16所述的第一和第二处理器,其中,当所述比特被设置后,提取所述缓冲器内的所述块。
18、如权利要求15所述的第一和第二处理器,其中,如果由所述第一处理器所请求的块被所述第二处理器共享,则所述共享的高速缓存向所述第一处理器发送所述第二信号。
19、如权利要求15所述的第一和第二处理器,其中,如果由所述第一处理器所请求的块不被所述第二处理器共享,则所述共享的高速缓存向所述第一处理器发送所述第一信号。
20、如权利要求19所述的第一和第二处理器,还包括,由所述第一处理器保持所述已更新的块。
21、一种多处理器计算机系统,其包括多个节点,所述多个节点中的每一节点包括:
路由器,与所述多处理器系统中的所述多个节点进行通信;
至少第一和第二处理器,其中,所述第一和第二处理器包括:
连接到所述第一和第二处理器的共享高速缓存,其中,所述共享的高速缓存确定数据块的所有权,
位于所述第一和第二处理器的每一个中的缓冲器,其中,所述缓冲器存储针对所述块的最近数据,且
其中,所述第一处理器请求所述块,如果所述块由所述第二处理器共享,则所述第一处理器获取所述块,更新所述块,并立即向所述共享的高速缓存写入所述已更新的块,
与输入/输出装置之间的第一接口;以及
连接到所述第一接口的音频输入/输出装置。
22、如权利要求21所述的多处理器系统,其中,所述第一和第二处理器中的所述缓冲器包括用于所述缓冲器内每一个块的比特。
23、如权利要求22所述的多处理器系统,其中,当所述比特被设置后,提取所述缓冲器内的所述块。
24、如权利要求21所述的多处理器系统,其中,如果由所述第一处理器所请求的块被所述第二处理器共享,则所述共享的高速缓存向所述第一处理器发送所述第二信号。
25、如权利要求21所述的多处理器系统,其中,如果由所述第一处理器所请求的块不被所述第二处理器共享,则所述共享的高速缓存向所述第一处理器发送所述第一信号。
26、如权利要求25所述的多处理器系统,还包括,由所述第一处理器保持所述已更新的块。
27、如权利要求21所述的多处理器系统,其中,所述第一接口是点到点接口。
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 true CN101088076A (zh) 2007-12-12
CN101088076B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345451A (zh) * 2013-07-18 2013-10-09 四川九成信息技术有限公司 一种在多核处理器中缓冲数据的方法
WO2013159288A1 (en) * 2012-04-25 2013-10-31 Intel Corporation Method and system for maintaining release consistency in shared memory programming
CN104067243A (zh) * 2012-01-16 2014-09-24 高通股份有限公司 混合直写式/回写式高速缓冲存储策略管理器和相关系统和方法
CN105991756A (zh) * 2015-03-23 2016-10-05 富士施乐株式会社 传输装置、传输系统以及传输方法

Families Citing this family (27)

* 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
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
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
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
KR101842764B1 (ko) * 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
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
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
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
DE112019007666T5 (de) * 2019-08-27 2022-06-15 Micron Technology, Inc. Schreibpuffersteuerung in einem verwalteten Speichersystem
TWI820883B (zh) * 2022-08-30 2023-11-01 新唐科技股份有限公司 積體電路及其快取記憶體有效位元清除方法
US20240143512A1 (en) * 2022-11-01 2024-05-02 Western Digital Technologies, Inc. Write buffer linking for easy cache reads

Family Cites Families (20)

* 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
US5710907A (en) * 1995-12-22 1998-01-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
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
US6748498B2 (en) * 2000-06-10 2004-06-08 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector
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
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
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
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067243A (zh) * 2012-01-16 2014-09-24 高通股份有限公司 混合直写式/回写式高速缓冲存储策略管理器和相关系统和方法
CN104067243B (zh) * 2012-01-16 2017-09-12 高通股份有限公司 混合直写式/回写式高速缓冲存储策略管理器和相关系统和方法
US10025711B2 (en) 2012-01-16 2018-07-17 Qualcomm Incorporated Hybrid write-through/write-back cache policy managers, and related systems and methods
WO2013159288A1 (en) * 2012-04-25 2013-10-31 Intel Corporation Method and system for maintaining release consistency in shared memory programming
CN104321750A (zh) * 2012-04-25 2015-01-28 英特尔公司 在共享存储器编程中保持释放一致性的方法和系统
US9405477B2 (en) 2012-04-25 2016-08-02 Intel Corporation Method and system for maintaining release consistency in shared memory programming
US9552303B2 (en) 2012-04-25 2017-01-24 Intel Corporation Method and system for maintaining release consistency in shared memory programming
CN104321750B (zh) * 2012-04-25 2019-03-08 英特尔公司 在共享存储器编程中保持释放一致性的方法和系统
CN103345451A (zh) * 2013-07-18 2013-10-09 四川九成信息技术有限公司 一种在多核处理器中缓冲数据的方法
CN105991756A (zh) * 2015-03-23 2016-10-05 富士施乐株式会社 传输装置、传输系统以及传输方法
CN105991756B (zh) * 2015-03-23 2019-04-05 富士施乐株式会社 传输装置、传输系统以及传输方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101088076B (zh) 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统
CN100495361C (zh) 维护存储器一致性的方法和系统
JP4960989B2 (ja) インバリデーショントランザクションのスヌープフィルタからの削除
US10303602B2 (en) Preemptive cache management policies for processing units
CN1575455B (zh) 优化输入/输出应用的分布式读写高速缓存实现方案
KR0163231B1 (ko) 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
KR100745478B1 (ko) 복수의 코히어런시 영역을 갖는 멀티프로세서 컴퓨터 시스템 및 캐시 삭제가 없는 코히어런시 영역들 간의 소프트웨어 프로세스 이동
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US20110004729A1 (en) Block Caching for Cache-Coherent Distributed Shared Memory
US20070005899A1 (en) Processing multicore evictions in a CMP multiprocessor
KR19990072598A (ko) 최적화된캐시동작을독립적으로구현하는캐시일관성프로토콜
US8176261B2 (en) Information processing apparatus and data transfer method
CN109582223A (zh) 一种内存数据迁移的方法及装置
US6418514B1 (en) Removal of posted operations from cache operations queue
US5987544A (en) System interface protocol with optional module cache
CN115686769A (zh) 根据cxl协议处理一致存储器事务的系统、装置和方法
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US7107410B2 (en) Exclusive status tags
US6345340B1 (en) Cache coherency protocol with ambiguous state for posted operations
US6347361B1 (en) Cache coherency protocols with posted operations
US20080082756A1 (en) Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems
JPH09128346A (ja) 階層バスシステム
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
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