CN101010670A - 解决高速缓存冲突 - Google Patents

解决高速缓存冲突 Download PDF

Info

Publication number
CN101010670A
CN101010670A CNA2005800297873A CN200580029787A CN101010670A CN 101010670 A CN101010670 A CN 101010670A CN A2005800297873 A CNA2005800297873 A CN A2005800297873A CN 200580029787 A CN200580029787 A CN 200580029787A CN 101010670 A CN101010670 A CN 101010670A
Authority
CN
China
Prior art keywords
processor
cache
cache line
nuclear
read access
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
CNA2005800297873A
Other languages
English (en)
Other versions
CN100498739C (zh
Inventor
J·吉尔伯特
Z-N·蔡
Y-C·刘
K·西斯特拉
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 CN101010670A publication Critical patent/CN101010670A/zh
Application granted granted Critical
Publication of CN100498739C publication Critical patent/CN100498739C/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/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

防止微处理器和/或计算机系统内的高速缓存冲突。更具体地,本发明的实施例涉及用于管理在其中可对特定的一个或一组高速缓存做出多个访问的处理器和/或计算机系统内的高速缓存冲突的技术。

Description

解决高速缓存冲突
领域
本发明的实施例涉及微处理器和微处理器系统。本发明的实施例尤其涉及解决在其中发生对同一个或同一组高速缓存的多个访问的处理器或计算机系统内的高速缓存访问冲突。
背景
现有技术的处理器和计算机系统对能被并发地管理的特定一个或一组高速缓存的访问个数有限。用于对抗该问题的一种现有技术是使用其高速缓存条目与一个或多个处理器核专用的高速缓存(诸如1级(L1)高速缓存)的高速缓存条目相对应的相容(inclusive)高速缓存结构。换言之,现有技术的多核处理器和/或多处理器计算机系统已经试图通过简单地将高速缓存访问中的某一些定向到共享的相容高速缓存结构,诸如末级高速缓存(LLC),来降低核高速缓存内的高速缓存访问冲突,其中上述共享的相容高速缓存结构含有该相容高速缓存结构相对应的处理器核或代理的全部高速缓存条目。然而,在高速缓存访问来自于多核处理器内的某核的情况下,该核通常会首先试图访问它自己的高速缓存内的数据,然后再求助于共享的高速缓存。共享的相容高速缓存结构有时会被称为“高速缓存过滤器”,这是因为它保护核高速缓存不受过多的高速缓存访问,并因此通过从相容高速缓存而非核的高速缓存中为这些代理提供所请求的数据来保护总线通信量不受代理影响。
使用诸如LLC等高速缓存结构以服务于来自各代理的高速缓存请求的现有技术有助于允许请求代理在例如数据并非由一特定的处理器核专有或修改的情况下无需求助于处理器核的高速缓存就能获取它们需要的数据。就诸如处理器或处理器核心等代理拥有请求代理企图访问的其自高速缓存的高速缓存行而言,例如LLC等高速缓存结构能够允许该请求代理获取其正在请求的数据,而非等待拥有数据代理与其共享数据。
尽管如此,当使用LLC来服务高速缓存请求时仍会发生其他冲突。例如,图1示出了在从LLC中收回(eviction)被访问的行期间试图访问同一高速缓存行的两个核。更具体地,核0在与核1的高速缓存内的某行被从LLC中收回的基本同时(经由LLC监听)发起对该行的核高速缓存请求,而与此同时核1则正启动新数据的写回。在此情况下,如果核0的请求是在来自核1的写回已发生之前做出的,则核0可能会从LLC中检索到错误的数据。在某些情况下,LLC为履行核0的核请求而需要对核1的高速缓存做出监听(“交叉监听”),而这会导致在核0的请求、LLC对核1的交叉监听、LLC收回以及核1向LLC写回更新数据之间的四向高速缓存冲突。
在图1中描绘的现有技术问题会随着系统中处理器核或其他总线代理数目的增加而恶化。例如,在图1中描绘的冲突在含有4核而非图1所示的2核的多核处理器中为两倍。类似地,随着计算机系统中处理器数目的增加,对任何特定核高速缓存的访问数也会增加,由此在LLC收回期间发生的冲突个数也会增加。
诸如在图1中描绘的高速缓存冲突会因为请求代理等待LLC收回及相应的写回完成,或者检测由冲突引起的不正确检索数据并从中恢复而对处理器性能产生不利影响。因此,在现有技术的处理器和/或计算机系统中可以访问特定高速缓存结构的代理数目是有限的。
附图简述
在其中相同的标号指示类似元素的附图中,以示例性而非限制性的方式示出了本发明的实施例,在附图中:
图1示出了现有技术处理器或计算机系统中对同一高速缓存行的多个访问之间的冲突。
图2示出了根据本发明一个实施例的高速缓存桥架构。
图3示出了结合本发明的一实施例使用的用于处理器的交叉监听状态机。
图4是示出结合本发明的至少一个实施例使用的操作的流程图。
图5示出了在其中可以使用本发明的至少一个实施例的前端总线计算机系统。
图6示出了在其中可以使用本发明的至少一个实施例的点对点计算机系统。
详细描述
本发明的实施例涉及微处理器和/或计算机系统内的高速缓存架构。本发明的实施例尤其涉及用于管理在其中对特定的一个或一组高速缓存做出多个访问的处理器和/或计算机系统内的高速缓存冲突的技术。
本公开描述了用于解决与现有技术的多处理器和/或多核计算机系统中的高速缓存技术相关联的问题的各个本发明实施例,其中包括当多个请求代理试图访问同一高速缓存行时冲突的解决和避免。在本发明的至少一个实施例中,诸如末级高速缓存(LLC)等相容高速缓存结构可以与具有诸如1级(L1)高速缓存的相关联高速缓存的多个处理器或处理器核结合使用。诸如LLC等相容高速缓存结构包括那些至少含有与该相容高速缓存结构所对应的其他高速缓存所含数据相同的结构。通过维持相容高速缓存结构与相对应的核和/或处理器高速缓存之间的一致性,可由该相容高速缓存来服务对相应的核/处理器高速缓存的访问,由此降低对相应的核/处理器的总线通信量并允许该核/处理器。
其中使用相容高速缓存结构的本发明实施例还能够降低甚至减轻当多个处理器和/或处理器核试图访问该相容高速缓存结构内的同一高速缓存行时可能发生的冲突个数和/或类型。例如,本发明的至少一个实施例减轻了由多处理器系统内的处理器和/或从多核处理器内的核对相容高速缓存结构(诸如LLC)内正被收回的某行的高速缓存请求以及从与该行所对应的被收回的核的写回所引起的高速缓存冲突,其中所述行被收回是因为核高速缓存被收回并导致对LLC相同组的又一次填充。此外,至少一个实施例能够减轻由多处理器系统内的处理器和/或多核处理器内的核对共享的相容高速缓存(诸如LLC)内的正被填充的行的高速缓存请求以及所导致的对该共享的相容高速缓存行的收回所引起的冲突。其他实施例可以解决各请求代理对被收回的相容高速缓存行的多个访问所引起的其他冲突。
图2示出了根据本发明一个实施例的解决对被收回的相容高速缓存行的多个访问之间的冲突的高速缓存桥架构。更具体地,图2的高速缓存桥架构示出了可由外部代理经由诸如前端总线接口和/或点对点接口之类的计算机系统互连接口205访问的LLC201。此外,LLC可由核0210和/或核1215分别经由核互连接口213和217来访问。高速缓存桥调度与排序(CBSO)逻辑220在本发明的至少一个实施例中分别使用内部和外部请求队列225和230来管理外部与核代理对LLC的访问,这些请求队列可用于存储与外部和/或核逻辑对LLC做出的访问相对应的命令、地址和/或数据。
在本发明的至少一个实施例中,CBSO逻辑可用于管理并解决由包括LLC查找、LLC高速缓存收回、LLC行填充和交叉监听事务在内的多项事务所引起的冲突。
LLC查找通常涉及对访问LLC的核的读取及读取所有权事务以读取或得到期望的高速缓存行的所有权。如果该LLC查找未命中,则可将该请求分配给与计算机系统互连接口相对应的外部请求队列。但如果该LLC查找命中,并且相应的LLC行不为另一核或处理器所专有,则随后就能够完成该请求并将数据返回给请求核。通过维持另一核是否对LLC的所请求的行具有专有权的记录就能减少请求代理对特定核的访问。该记录可以是寄存器内与处理器内核的个数相对应的多个位,其中每一位都指示它所对应的核/处理器对所请求的LLC行是否具有所有权。尽管如此,该记录也可由其他方式实现。
LLC收回可能需要对一个或多个核或处理器的监听(“后监听”)来重新填充该LLC高速缓存行。如果将后监听发送给多个核或处理器,则可能会出现一个或多个核/处理器不接收该后监听的情况。因此就导致冲突。
对LLC的填充通常在原始请求未命中该LLC的情况下由核或处理器对LLC写数据产生。可以从是管芯上存储器控制器或管芯外存储器控制器的存储器代理中获取新数据和一致性状态。该行然后在新数据和一致性状态被返回给请求核之后填充LLC。如果正发生填充的高速缓存组全满,则引起从该LLC的收回,该收回因为是由LLC内容量限制引起的所以有时可被称为“容量收回”。填充可以取决于待填充的LLC行所对应的核而起源于多核处理器内的核。此外,在本发明的一个实施例中,LLC的被填充的行可以具有多种所有权状态,例如共享、专有或修改。在某些多核处理器中,LLC一致性状态可以包括指示该高速缓存行对核的状态相对于该高速缓存行对多核处理器外部的代理的状态的扩展状态。例如,在某些实施例中,LLC一致性状态ES可以向多核处理器外部的代理指示该被填充的LLC行为一特定核所专有,同时向其他核指示该被填充的LLC行可被共享。类似地,MS一致性状态可向外部代理指示该LLC行可被修改,同时向其他核指示该LLC行可被共享。
对LLC的交叉监听事务通常在来自核或其他代理的所有权请求确定该LLC行为另一核或代理所有时引起。在此情况下,该核/代理请求所有权会对拥有该行的核/代理执行监听(“交叉监听”),而这会导致该行的状态取决于使用的特定一致性协议从“专有的”变为“无效的”或“共享的”。
如果上述事务(后监听、交叉监听、读取和收回)中有任何事务基本同时发生,则会引发会对处理器和/或系统性能产生不利影响的冲突。因此,本发明的一个实施例能够防止,或者至少管理这些事务中的两个事务之间的冲突(“双向冲突”管理)。此外,本发明的另一实施例能够防止,或者至少管理这些事务中的三个事务之间的冲突(“三向冲突”管理)。
在本发明的一个实施例中,CBSO逻辑管理或防止由从核或外部总线代理对正从该LLC中被收回的行的LLC写回所导致的冲突。在正被收回的同一LLC行发生写回的情况下,如果后监听正在从与正在执行写回的核或代理不同的另一核或代理中检索数据,则会在由该收回所引起的后监听和该写回操作之间发生冲突。该冲突会导致将不正确数据写入被收回的LLC行。
在另一实施例中,CBSO逻辑管理或防止由对来自图2计算机系统接口上的代理的LLC行的监听、对来自核的LLC行的写回以及为填充该行而进行的LLC后监听所引起的冲突。在对发生了后监听和写回的同一LLC行进行外部监听的情况下,因为LLC行由于后监听会被来自核的写回或来自核的数据所填满,所以外部代理会检索到不正确的数据。
图3示出了根据本发明一实施例的与典型交叉监听事务相关联的操作的状态图。从空闲状态301开始,诸如从多核处理器内的某核的对LLC的读取事务会导致状态图转换至挂起状态303,直到该行能被授予该请求代理,而这时状态就变为查找状态305。在查找状态期间,LLC将所请求的行的一致性状态返回给请求核,而这能指明另一核当前正拥有该被请求的行。在另一核拥有该LLC内的所请求的行的情况下,就在状态308处发起从该LLC到其他核或代理的交叉监听。在从要对其发起交叉监听的核发送了确认之后,就在状态310处发出该交叉监听。在从该核中检索出交叉监听数据之后,就在状态313处完成该交叉监听,并在状态315处将该交叉监听数据传送给请求核。在状态320处用该交叉监听数据更新该LLC并返回到空闲状态。
在状态308到状态320期间,交叉监听会与由对该请求所对应的LLC的收回所引起的操作发生冲突。由LLC收回引起的会与该交叉监听发生冲突的一个操作是从被收回的LLC行所对应的核中的写回。另一个冲突会在读请求引起对从中向被从LLC中收回的行做出写回的核的交叉监听的情况下发生。如果写回发生在交叉监听之前,则会将错误的数据返回给请求核或代理。此外,冲突会在与涉及与收回、交叉监听和写回相同的LLC地址的基本同时对LLC做出外部监听的情况下发生。
在本发明的一个实施例中,通过将在LLC内做出请求的行的一致性信息复制到临时存储位置并使相对应的LLC行无效,使该行看起来像是对后续事务无效(“原子的”),由此避免可能会导致事务与由请求引起的交叉监听间的冲突的LLC行的收回,而能够避免上述冲突。通过在接收读请求之后存储该LLC行的一致性信息,就能确保所得的交叉监听将最新近的数据传送给请求者。此外,通过原子地无效LLC行,就可由后续事务避免对LLC的收回,因此就不会发生对LLC行的冲突性LLC收回。
在将所请求的数据传送给请求者之后,就可以将数据和一致性信息存储到被无效的LLC行以维持相容性。在一可选实施例中,可以使用一机制来取消可防止对LLC的访问导致交叉监听的任何事务。这一情形例如会在对LLC的写回在读取LLC行之后发生时产生。
图4是示出了本发明的一个实施例中涉及的操作的流程图。在操作401处,检测到对核高速缓存行的读请求,并且如果由对相应的核高速缓存的读请求导致“未命中”,就响应于该未命中访问相对应的LLC行。在操作405处,保存该LLC行的一致性状态信息。在一实施例中,可以将该一致性状态数据保存到图2的CBSO逻辑中的一寄存器内。在另一实施例中,可以将该一致性信息保存到存储器或某些其他的存储结构内。在一致性状态信息被保存之后,就在操作410处原子地无效LLC内的相应行,以使得在该请求将导致交叉监听并且CBSO逻辑未检测到取消信号的情况下后续事务会将该LLC行视为无效。在操作415处,由LLC对适当核或处理器进行的交叉监听会把所请求的数据从核或处理器返回给请求代理。
在本发明的一个实施例中,在图4中示出的至少部分操作可由图2的CBSO逻辑执行。在其它实施例中,该操作可通过其他手段来执行,诸如软件或图2高速缓存桥架构内的其他逻辑。
图5示出了在其中可以使用本发明一个实施例的前端总线(FSB)计算机系统。处理器505访问一级(L1)高速缓冲存储器510和主存储器515中的数据。在本发明的其它实施例中,高速缓冲存储器可以是二级(L2)高速缓存或计算机系统存储器层级内的其他存储器。此外,在某些实施例中,图5的计算机系统可以同时含有L1高速缓存和L2高速缓存两者,并含有一致性数据可以在L1和L2高速缓存之间被共享的相容高速缓存层级。
在图5处理器中示出的是本发明的一个实施例506。在某些实施例中,图5中的处理器是多核处理器。
主存储器可由各种存储器源实现,诸如动态随机存取存储器(DRAM)、硬盘驱动器(HDD)520或者经由含有各种存储设备和技术的网络接口530而位于远离该计算机系统处的存储器源。高速缓冲存储器既可以位于处理器内也可接近处理器放置,例如可位于处理器的局部总线507上。此外,高速缓冲存储器可以含有相对较快的存储器单元,诸如六晶体管(6T)单元,或者访问速度大致相等或更快的其他存储器单元。
图5的计算机系统可以是总线代理(诸如,微处理器)的点对点(PtP)网络,该网络经由专用于该PtP网络上的每个总线代理的总线信号进行通信。在每个总线代理内部,或者至少与每个总线代理相关联的是本发明的至少一个实施例506,从而能够在总线代理之间便捷快速地进行存储操作。
图6示出了以点对点(PtP)配置排列的计算机系统。更具体地,图6示出了在其中处理器、存储器与输入/输出设备通过多个点对点接口互连的系统。
图6的系统还可以包括多个处理器,为明晰起见仅示出了其中的两个处理器670与680。处理器670和680各自包括连接至存储器62与64的局部存储器控制器集线器(MCH)672与682。处理器670和680可以经由使用点对点(PtP)接口电路678和688的PtP接口650来交换数据。处理器670和680可以各自经由使用点对点接口电路676、694、686与698的独立PtP接口652和654与芯片组690交换数据。芯片组690还可以经由高性能图形接口639与高性能图形电路638交换数据。
本发明的至少一个实施例可以位于处理器670和680内。然而,本发明的其它实施例则可存在于图6的系统内的其他电路、逻辑单元或设备中。此外,本发明的其他实施例也可分布于图6中示出的各个电路、逻辑单元或设备中。
在此描述的本发明实施例可以用使用互补金属氧化物半导体器件的电路,即“硬件”,或者使用一组被存储在介质内并且当由诸如处理器等机器执行时可执行与本发明的实施例相关联操作的指令,即“软件”来实现。另外,本发明的实施例还可使用硬件与软件的组合来实现。
虽然业已参考了说明性实施例对本发明进行了描述,但是该描述并不应该被解释为限制性的。可以认为对本领域普通技术人员显而易见的对说明性实施例的各种修改及其他实施例都落入本发明的精神和范围之内。

Claims (29)

1.一种装置,包括:
排序逻辑,用于防止对第一高速缓存行的读访问与对所述第一高速缓存行的写回访问之间的高速缓存访问冲突。
2.如权利要求1所述的装置,其特征在于,所述高速缓存行位于共享的相容高速缓冲存储器内。
3.如权利要求1所述的装置,其特征在于,对所述第一高速缓存行的读访问是从共享的相容高速缓冲存储器对核高速缓冲存储器的交叉监听访问。
4.如权利要求1所述的装置,其特征在于,对所述第一高速缓存行的高速缓存行填充导致对共享的相容高速缓冲存储器内的一高速缓存行的收回。
5.如权利要求1所述的装置,其特征在于,所述读访问来自多核处理器中的第一核,而所述写回访问来自所述多核处理器中的第二核。
6.如权利要求1所述的装置,其特征在于,所述读访问来自多处理器系统中的第一处理器,而所述写回访问来自多核处理器中的第一核。
7.如权利要求1所述的装置,其特征在于,还包括用于响应于所述读访问临时存储与所述第一高速缓存行有关的一致性状态信息的存储单元。
8.如权利要求7所述的装置,其特征在于,所述一致性状态信息包括指示所述第一高速缓存行作为所述读访问的结果而被原子地无效的至少一个位。
9.一种系统,包括:
含有共享的相容高速缓存的第一处理器,所述共享的相容高速缓存包括第一高速缓存行,所述第一高速缓存行响应于来自所述第一处理器内另一核的监听而具有无效状态,所述无效状态向所述读访问之后但在所述读访问完成之前的所有事务指明所述第一高速缓存行是无效的。
10.如权利要求9所述的系统,其特征在于,包括用于响应于所述监听存储所述第一高速缓存行的一致性信息的存储单元。
11.如权利要求10所述的系统,其特征在于,包括多个处理器核,每个处理器核都具有至少一个相应的核高速缓存。
12.如权利要求11所述的系统,其特征在于,所述共享的相容高速缓存是存储所述至少一个相应的核高速缓存内所存储的同一数据的末级高速缓存。
13.如权利要求12所述的系统,其特征在于,所述第一处理器包括响应于所述监听设置所述无效状态并存储所述一致性信息的逻辑。
14.如权利要求13所述的系统,其特征在于,所述第一处理器包括分别存储来自和对所述多个存储器核与第二处理器的访问的内部和外部请求队列。
15.如权利要求14所述的系统,其特征在于,所述第一和第二处理器经由点对点互连耦合在一起。
16.如权利要求14所述的系统,其特征在于,所述第一和第二处理器经由前端总线互连耦合在一起。
17.一种方法,包括:
对相容高速缓存结构的同一行执行多个访问;
防止来自多个处理器核对所述行的所述多个访问之间的冲突,所述多个访问是由如下组中的任何两个事务导致的:所述行的外部监听、所述行的收回、来自所述相容高速缓存的交叉监听以及对所述行的写回。
18.如权利要求17所述的方法,其特征在于,所述防止包括响应于所述多个访问之一存储所述行的一致性信息。
19.如权利要求18所述的方法,其特征在于,所述防止还包括响应于所述多个访问之一原子地无效所述行。
20.如权利要求19所述的方法,其特征在于,还包括响应于完成所述多个访问之一存储所述行的一致性信息。
21.如权利要求20所述的方法,其特征在于,还包括响应于完成所述多个访问之一将所述行设置为有效状态。
22.一种处理器,包括:
用于防止对第一高速缓存行的读访问与对所述第一高速缓存行的写回访问之间的高速缓存访问冲突的装置。
23.如权利要求22所述的处理器,其特征在于,所述高速缓存行位于共享的相容高速缓冲存储器内。
24.如权利要求22所述的处理器,其特征在于,对所述第一高速缓存行的读访问是从共享的相容高速缓冲存储器对核高速缓冲存储器的交叉监听访问。
25.如权利要求22所述的处理器,其特征在于,对所述第一高速缓存行的高速缓存行填充导致共享的相容高速缓冲存储器内一高速缓存行被收回。
26.如权利要求22所述的处理器,其特征在于,所述读访问来自多核处理器中的第一核,而所述写回访问来自所述多核处理器中的第二核。
27.如权利要求22所述的处理器,其特征在于,所述读访问来自多处理器系统中的第一处理器,而所述写回访问来自多核处理器中的第一核。
28.如权利要求22所述的处理器,其特征在于,还包括用于响应于所述读访问临时存储与所述第一高速缓存行有关的一致性状态信息的存储单元。
29.如权利要求28所述的处理器,其特征在于,所述一致性状态信息包括指示所述第一高速缓存行作为所述读访问的结果而被原子地无效的至少一个位。
CNB2005800297873A 2004-09-09 2005-08-26 解决高速缓存冲突 Expired - Fee Related CN100498739C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93797304A 2004-09-09 2004-09-09
US10/937,973 2004-09-09

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN2008101761358A Division CN101425042B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突
CN2008101761362A Division CN101425043B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突

Publications (2)

Publication Number Publication Date
CN101010670A true CN101010670A (zh) 2007-08-01
CN100498739C CN100498739C (zh) 2009-06-10

Family

ID=35478629

Family Applications (3)

Application Number Title Priority Date Filing Date
CN2008101761362A Expired - Fee Related CN101425043B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突
CNB2005800297873A Expired - Fee Related CN100498739C (zh) 2004-09-09 2005-08-26 解决高速缓存冲突
CN2008101761358A Expired - Fee Related CN101425042B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2008101761362A Expired - Fee Related CN101425043B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2008101761358A Expired - Fee Related CN101425042B (zh) 2004-09-09 2005-08-26 解决高速缓存冲突

Country Status (5)

Country Link
US (2) US9727468B2 (zh)
JP (3) JP2008512772A (zh)
CN (3) CN101425043B (zh)
DE (1) DE112005002180T5 (zh)
WO (1) WO2006031414A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625663B (zh) * 2008-07-07 2013-07-10 英特尔公司 满足部分读取和非监听访问之间的访存顺序要求
CN101739298B (zh) * 2008-11-27 2013-07-31 国际商业机器公司 共享缓存管理方法和系统
CN103714015B (zh) * 2008-05-30 2017-01-18 英特尔公司 减少来自侦听过滤器的后无效事务的方法、装置和系统
CN109240945A (zh) * 2014-03-26 2019-01-18 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
CN112965668A (zh) * 2021-03-30 2021-06-15 上海芷锐电子科技有限公司 一种缓存数字电路处理请求冲突的方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031848B2 (en) * 2005-06-14 2018-07-24 Intel Corporation Method and apparatus for improving snooping performance in a multi-core multi-processor
US7962694B2 (en) * 2006-03-31 2011-06-14 Intel Corporation Partial way hint line replacement algorithm for a snoop filter
US7721050B2 (en) * 2006-06-30 2010-05-18 Intel Corporation Re-snoop for conflict resolution in a cache coherency protocol
US7536515B2 (en) 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US7827357B2 (en) 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US7844779B2 (en) * 2007-12-13 2010-11-30 International Business Machines Corporation Method and system for intelligent and dynamic cache replacement management based on efficient use of cache for individual processor core
US7917699B2 (en) * 2007-12-21 2011-03-29 Mips Technologies, Inc. Apparatus and method for controlling the exclusivity mode of a level-two cache
US20090300291A1 (en) * 2008-06-03 2009-12-03 Gerald Keith Bartley Implementing Cache Coherency and Reduced Latency Using Multiple Controllers for Memory System
CN104380269B (zh) * 2012-10-22 2018-01-30 英特尔公司 高性能互连相干协议
US10268583B2 (en) 2012-10-22 2019-04-23 Intel Corporation High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier
US9563425B2 (en) 2012-11-28 2017-02-07 Intel Corporation Instruction and logic to provide pushing buffer copy and store functionality
CN104035888B (zh) * 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备
US9911508B2 (en) 2014-09-18 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory diagnostic writeback
US10133670B2 (en) * 2014-12-27 2018-11-20 Intel Corporation Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
CN107870848B (zh) * 2016-09-23 2020-08-28 腾讯科技(深圳)有限公司 Cpu性能冲突的检测方法、装置和系统
GB2554442B (en) * 2016-09-28 2020-11-11 Advanced Risc Mach Ltd Apparatus and method for providing an atomic set of data accesses
US12079516B2 (en) * 2022-08-30 2024-09-03 Micron Technology, Inc. Host-preferred memory operation

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
JP3013631B2 (ja) * 1992-09-28 2000-02-28 日本電気株式会社 キャッシュメモリ同期方法
JPH06187239A (ja) 1992-12-18 1994-07-08 Nippon Telegr & Teleph Corp <Ntt> 多階層キャッシュメモリにおけるデータ一致制御方式
US5682516A (en) * 1994-03-01 1997-10-28 Intel Corporation Computer system that maintains system wide cache coherency during deferred communication transactions
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system
WO1997004392A1 (en) 1995-07-19 1997-02-06 International Business Machines Corporation Shared cache memory device
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US5802571A (en) * 1996-10-21 1998-09-01 International Business Machines Corporation Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH1165929A (ja) * 1997-08-26 1999-03-09 Kofu Nippon Denki Kk バスブリッジ回路
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
US6263407B1 (en) * 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
JP2001034533A (ja) 1999-07-21 2001-02-09 Nec Kofu Ltd キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
KR100329969B1 (ko) * 1999-12-23 2002-03-27 오길록 캐시 동일성 유지 메모리 시스템에서 캐시 충돌 방지 장치및 그 방법
US6516393B1 (en) * 2000-09-29 2003-02-04 International Business Machines Corporation Dynamic serialization of memory access in a multi-processor system
US20020169935A1 (en) 2001-05-10 2002-11-14 Krick Robert F. System of and method for memory arbitration using multiple queues
US6725337B1 (en) * 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
EP1399823B1 (en) * 2001-06-26 2011-02-16 Oracle America, Inc. Using an l2 directory to facilitate speculative loads in a multiprocessor system
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US6954829B2 (en) 2002-12-19 2005-10-11 Intel Corporation Non-speculative distributed conflict resolution for a cache coherency protocol
US7284097B2 (en) * 2003-09-30 2007-10-16 International Business Machines Corporation Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714015B (zh) * 2008-05-30 2017-01-18 英特尔公司 减少来自侦听过滤器的后无效事务的方法、装置和系统
CN101625663B (zh) * 2008-07-07 2013-07-10 英特尔公司 满足部分读取和非监听访问之间的访存顺序要求
CN101739298B (zh) * 2008-11-27 2013-07-31 国际商业机器公司 共享缓存管理方法和系统
CN109240945A (zh) * 2014-03-26 2019-01-18 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
CN109240945B (zh) * 2014-03-26 2023-06-06 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
CN112965668A (zh) * 2021-03-30 2021-06-15 上海芷锐电子科技有限公司 一种缓存数字电路处理请求冲突的方法

Also Published As

Publication number Publication date
US10078592B2 (en) 2018-09-18
CN101425043A (zh) 2009-05-06
US9727468B2 (en) 2017-08-08
JP2011227921A (ja) 2011-11-10
CN101425042B (zh) 2011-07-06
US20170337131A1 (en) 2017-11-23
JP2014089760A (ja) 2014-05-15
US20060053257A1 (en) 2006-03-09
JP2008512772A (ja) 2008-04-24
JP5535991B2 (ja) 2014-07-02
JP5714733B2 (ja) 2015-05-07
CN100498739C (zh) 2009-06-10
CN101425042A (zh) 2009-05-06
WO2006031414A2 (en) 2006-03-23
WO2006031414A3 (en) 2007-01-25
DE112005002180T5 (de) 2007-07-05
CN101425043B (zh) 2012-06-20

Similar Documents

Publication Publication Date Title
CN100498739C (zh) 解决高速缓存冲突
US7827354B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
CN100511185C (zh) 使用核心指示符的高速缓存过滤
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US7698508B2 (en) System and method for reducing unnecessary cache operations
CN101593161B (zh) 确保微处理器的快取存储器层级数据一致性的装置与方法
US8185695B2 (en) Snoop filtering mechanism
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US20050144390A1 (en) Protocol for maintaining cache coherency in a CMP
US5987544A (en) System interface protocol with optional module cache
TWI746593B (zh) 用於快取保留資料管理的設備及方法
JP2000267935A (ja) キヤッシュメモリ装置
US11847062B2 (en) Re-fetching data for L3 cache data evictions into a last-level cache
US20240220418A1 (en) Selective distribution of translation entry invalidation requests in a multithreaded data processing system
CN114238173A (zh) L2中CRQ和CWQ快速deallocate实现方法及系统

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

Termination date: 20100826