CN1320464C - 用于维持共享高速缓存一致性的方法和设备 - Google Patents

用于维持共享高速缓存一致性的方法和设备 Download PDF

Info

Publication number
CN1320464C
CN1320464C CNB2003101198312A CN200310119831A CN1320464C CN 1320464 C CN1320464 C CN 1320464C CN B2003101198312 A CNB2003101198312 A CN B2003101198312A CN 200310119831 A CN200310119831 A CN 200310119831A CN 1320464 C CN1320464 C CN 1320464C
Authority
CN
China
Prior art keywords
cache
state
modification
shared
line
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
CNB2003101198312A
Other languages
English (en)
Other versions
CN1609823A (zh
Inventor
V·彭特科夫斯基
V·加格
N·S·伊耶尔
J·克沙瓦
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
Priority to CNB2003101198312A priority Critical patent/CN1320464C/zh
Publication of CN1609823A publication Critical patent/CN1609823A/zh
Application granted granted Critical
Publication of CN1320464C publication Critical patent/CN1320464C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

用于芯片多处理器或多处理器***的共享高速缓存一致性的方法和设备。在一个实施例中,多核心处理器包括多个处理器核心,每个核心都具有专用高速缓存器和共享高速缓存器。将内部探听总线耦合到每个专用高速缓存器和共享高速缓存器,以便将数据从每个专用高速缓存器传送到其他专用高速缓存器和所述共享高速缓存器。在另一个的实施例中,设备包括多个处理器核心和多个高速缓存器。多个高速缓存器之一将高速缓存线维持在两个不同的修改状态中。第一修改状态表明修改的高速缓存线的最近拷贝,而第二修改状态表明修改的高速缓存线的过时拷贝。

Description

用于维持共享高速缓存一致性的方法和设备
技术领域
本公开内容涉及处理***及其相关联的高速缓存装置的领域。
背景技术
改善计算机或其他处理***的性能,通常是改善整体吞吐量和/或提供更好的用户体验。用于改善在***中处理的指令总量的一种技术是增加***中处理器的数量。然而,实现多处理(MP)***通常不仅仅是要求将处理器并行互连。而是例如,需要将任务或程序分开,以便它们能够跨越并行处理资源而执行,也需要存储器一致性***等。
随着逻辑元件因制造技术的进步而缩小,将多个处理器集成在单个组件上变得更加切实可行,并且事实上,许多当前的设计已经在单个组件上实现了多个处理器(“多核心处理器”)。除了集成与每个处理器核心(processor core)紧密相关联的任意高速缓存器外,多核心处理器还通常集成某个附加的高速缓冲存储器,并且使用多种技术来维持跨越多核心处理器设备内的层级的一致性。
例如,在一个作为现有技术的处理器中,与每个处理器核心相关联的一级(L1)高速缓存器作为写直通(write through)高速缓存器来实现,如此使得共享二级(L2)高速缓存器通过每个L1来接收所有的修改。从每个L1的写操作被记入到L2高速缓存器的队列中。当结构操作命中有效的L2目录条目时,指定探听处理器仅使用L2内容(包括潜在的任意排队的条目)来响应探听。虽然使用写直通协议是已知的,与使用回写协议和/或众所周知的4状态MESI(修改(Modified)、独占(Exclusive)、共享(Shared)、无效(Invalid))协议相比,在某些环境下在性能上处于劣势,但是使用写直通协议可消除对作为现有技术的多核心处理器中的L1高速缓存器的交叉询问的需要。在没有L1高速缓存器间的交叉询问的情况下,在L1高速缓存器间可不提供探听总线,并且不会出现L1到L1的传递。
作为现有技术的处理器也为其L2高速缓存器而执行修改的MESI协议,所述修改的MESI协议具有三个“修改”状态,以及两个“共享”状态和新的“标记”状态。修改后的状态M、Me和Mu对应于修改状态,修改后的独占状态和修改后的非请求(unsolicited)状态。修改后的独占和非请求状态两者都表明数据有效。此外,修改后的独占和非请求状态两者都由处理器经由专门的指令来请求保留数据而产生。
在另一种作为现有技术的多核心处理器中,两个L1高速缓存器也由L2高速缓存器分离。在所述现有技术的处理器中,核心逻辑与L2高速缓存器控制逻辑直接链接,并且与专用L1直接链接。由此,L1和L2中的一致性查找可同时开始;然而,L2控制逻辑将与第一核心相关联的L1和与第二核心相关联的L1相分离。因此,每个处理器专用的并且相关联的L1高速缓存器不再互相链接。由此,在L1高速缓存器之间不存在直接的交叉询问,并且没有直接的L1到L1的数据传送。
发明内容
在本发明的一个方面,提供了一种设备,包括:
多个处理器核心,每个处理器核心包含专用高速缓存器,用以实现第一个多状态高速缓存协议;和
共享高速缓存器,用以实现第二个多状态高速缓存协议,该第二个多状态高速缓存协议不同于所述第一个多状态高速缓存协议。
在本发明的另一个方面,提供了一种设备,包括:
多个处理器核心;
多个高速缓存器,所述多个高速缓存器中的第一高速缓存器用于将多个高速缓存线维持在多个状态中一个状态中,所述多个状态包括:
第一修改状态,用于表明在所述多个高速缓存器的第二个高速缓存器中的修改的线的最近拷贝;
第二修改状态,用于表明修改的线的过时拷贝。
在本发明的又一个方面,提供了一种方法,包括:
在内部探听总线上驱动对多个内部专用高速缓存器和共享高速缓存器的探听周期,所述共享高速缓存器被依照第一个四状态高速缓存协议加以维持,其中所述第一个四状态高速缓存协议包括修改的最近拷贝状态、修改的过时状态、共享状态和无效状态;
经由外部总线驱动对存储器的高速缓存器未命中周期。
在本发明的再一个方面,提供了一种***,包括:
多核心处理器,所述多核心处理器包括:
多个处理器;
多个相关联的高速缓存器;
共享高速缓存器;
与所述多个高速缓存器相耦合的内部探听总线,用以允许响应于在内部探听总线上的探听周期而在所述多个高速缓存器之间进行数据转移;
一致性逻辑,用于将多个高速缓存线维持在多个状态中的一个状态中,所述多个状态包括最近拷贝修改状态以及过时修改状态,所述一致性逻辑用于将具有对应的第一地址的第一数据项维持在所述过时修改状态中,并且将具有对应的第二地址的第二数据项维持在所述最近拷贝修改状态中;
与多核心处理器相耦合的存储器,所述存储器用于存储所述第一地址处的第三数据项和第二地址处的第四数据项,所述存储器可选择地被更新以便将所述第一数据项复制到所述第一地址。
附图说明
通过举例的方式来举例说明本发明,但是本发明不由附图中的图中的实现方式来限定。
图1举例说明包括有探听总线的处理***的一个实施例,所述探听总线使核心高速缓存器彼此耦合并且使核心高速缓存器耦合到共享高速缓存器。
图2举例说明包括有芯片多处理器的***的一个实施例,所述芯片多处理器具有探听总线并且执行共享高速缓存一致性协议。
图3a-3f举例说明了依照一个实施例的共享和专用高速缓存器的各种状态转变。
图4举例说明包括有芯片多处理器的***的另一个实施例,所述芯片多处理器以多状态协议执行多个专用高速缓存器,并且以多状态共享高速缓存协议来执行共享高速缓存器。
图5举例说明包括清除线共享逻辑的一个实施例。
具体实施方式
随后的描述将说明用于芯片多处理器或多处理器***的共享高速缓存一致性的方法和设备的实施例。在随后的描述中,众多的具体细节是为了提供对本发明的更彻底的理解而提出的。然而,本领域技术人员将理解的是,在没有这些具体细节的情况下也可实施本发明。
所公开的某些实施例使用了专用的并且在某些例子中的内部探听接口,以便允许在多个内部专用高速缓存器和共享高速缓存器之间的探听操作以及数据交换。某些实施例执行具有两个不同修改状态的高速缓存协议。这些和其他实施例可用于具有多个处理器核心和相关联的专用高速缓存器、连同共享高速缓存器的芯片多处理器中。某些实施例提供了数据不一致的快速解决方案,减少了从共享高速缓存器读取数据到核心的等待时间,和/或减少了在专用高速缓存器到专用高速缓存器的传递情况中存储器访问的等待时间。
图1举例说明包括探听总线130的处理***的一个实施例。在某些实施例中,图1中的处理***可以是芯片多处理器。芯片多处理器是包含多个处理核心的单个集成电路或单个模块。每个处理核心是能够执行指令的处理器。图1的实施例包括N个处理核心,即核心100-1至100-N。每个处理核心100-1至100-N都分别包括与之相关联并耦合到其上的专用高速缓存器,即核心高速缓存器110-1至110-N。
“专用”高速缓存器是与一个或多个处理器核心相关联的高速缓存器,其中处理器核心通常将可高速缓存的存储器的存储器事务提供给专用高速缓存器,并且不只是在探听或询问周期的环境下,然而其他非相关联的处理器或处理器核心通常将周期作为询问或监听周期提供给专用高速缓存器。通常,如图1所示的实施例中的情况那样,单个专用高速缓存器可与单个核心相关联。然而,在某些实施例中,高速缓存器可被多个核心所专用。
如图1所示,核心高速缓存器可以是M级高速缓存器,这意味着这些高速缓存器无需是一级高速缓存器,而更可以是一级高速缓存器或是在高速缓存器层级中更高级别的高速缓存器,诸如二级高速缓存器、三级高速缓存器等。此外,核心高速缓存器可以是使指令高速缓存器和数据高速缓存器一致的高速缓存器,或者可使指令高速缓存器或数据高速缓存器一致的高速缓存器。另外,两个分离的高速缓存器(例如,指令和数据高速缓存器)能够被相同地处理。由此,术语数据、数据元件、信息或信息元件可互换地使用以用来表示指令或数据。
每个高速缓存器110-1至110-N都耦合到探听总线130上。此外,共享高速缓存器120(M+1级高速缓存器)耦合到探听总线130上。共享高速缓存器120还耦合到互连(interconnect)140上。互连140可以是多点总线或者可以是点到点接口,以便与其他处理器、存储器、存储器接口或其他代理相连接。同样地,点到点互连或多点总线类型互连可在不同的实施例中用于探听总线130。
在一个实施例中,高速缓存器110-1至110-N以及共享高速缓存器120执行交叉询问或探听操作,以便在探听总线130上维持数据一致。这种用于探听的专用总线或接口可减轻在互连140上的信息拥塞。在一个实施例中,探听总线130是制作在芯片多处理器所在芯片上的总线(on-die bus)。因此,交叉询问可以以高频执行,所述频率在某些情况下可以和核心操作频率一样高。此外,外部访问可限于在所述芯片上的多个核心和所述共享高速缓存器间的无法满足的请求。在一个实施例中,高速缓存器可利用传统的MESI(修改、独占、共享、无效)协议或其他已知的或其他可用的协议。在其他实施例中,如下文进一步讨论的那样,不同的多状态协议可用于共享高速缓存器。
图2举例说明包括芯片多处理器的***的实施例,所述芯片多处理器具有探听总线,并执行共享高速缓存一致性协议。在图2所示的实施例中,处理器200通过接口逻辑230与存储器控制器240耦合。存储器控制器240与存储器250耦合。存储器250能够存储将由处理器200使用的数据以及将其缓存到不同高速缓存器中。
处理器200包括接口逻辑230,以便将信息传送到存储器控制器240(或某个其他总线代理)。多种已知的或其他可用类型的接口逻辑和互连都可用于将不同的组件耦合到一起。处理器200进一步包括第一核心205-1以及第二核心205-2。第一核心具有相关联的核心高速缓存器210-1,且第二核心具有相关联的核心高速缓存器210-2。在本实施例中,核心高速缓存器依照MESI协议进行操作,不过在其他实施例中,可以使用其他协议来操作。核心高速缓存器210-1和210-2分别具有控制逻辑215-1和215-2,以便维持一致性并且处理常规的高速缓存器控制和通信任务。高速缓存器210-1和210-2两者都耦合到共享高速缓存器220,所述共享高速缓存器220还包括其自身的控制逻辑225。高速缓存器210-1、210-2和220都耦合到探听总线227,以便如根据图1在前描述的那样执行交叉询问和数据交换。
在本实施例中,共享高速缓存器220根据共享高速缓存协议来操作。根据共享高速缓存协议,可使用两个修改状态来描述高速缓存线(cache line)。可使用修改过时(modified stale,MStale)状态来表示当共享高速缓存器220具有高速缓存线的过时拷贝时的情况。当处理器高速缓存器210-1或210-2中的一个修改高速缓存线时,共享高速缓存器常会有修改的线的过时拷贝。可使用修改最近拷贝(modified most recent copy,MMRC)状态来表示当共享高速缓存器包含修改的线的最近拷贝时的情况。可使用共享状态来表明当多个高速缓存器具有在它们的任何一个中都没有被修改的数据时的情况,而无效状态仅表明数据不是有效的。由此,与传统的MESI协议相比,在本实施例中已经消除了独占(E)状态,并且已经将M状态分成了两个不同的M状态。
                    表1:共享高速缓存协议状态
  状态   缩写   含义
  修改过时   Mstale   高速缓存线已经被修改并且共享高速缓存器具有所述线的过时拷贝。另外的L1高速缓存器具有最近的拷贝。
  修改最近拷贝   MMRC   高速缓存线已经被修改并且共享高速缓存器具有最近的拷贝,所述拷贝反映所述修改
  共享   S   高速缓存线可被存储在多个高速缓存器中,但是所述线在它们的任何一个中都不被修改。还意味该存储器是最新近的。
  无效   I   高速缓存线不包含有效数据
将能够理解的是,可将高速缓存线以不同的方式维持或标记为特定的状态。例如,可以使用标记位来表示不同的状态。这种标记或状态位可与每个高速缓存线一道被存储。所述状态位还可被单独存储在单独的存储器阵列中。此外,协议状态位可与关于高速缓存线的其他信息组合在一起,并且以编码或其他形式被存储。高速缓存线的最终处理还可受到其他位或设置的影响,所述其他位或设置诸如存储器键入寄存器(memory typing register)等等。
图3a举例说明了依照一个实施例在共享和专用高速缓存器的第一组条件下第一组状态的转变。在图3a中描述的情形中,在第一种情况中,L1高速缓存器中的高速缓存线以无效状态开始,并且在L2高速缓存器中对应于同一存储单元的高速缓存线以修改最近拷贝状态开始,如框300所示。在第二种情况中,L1中的高速缓存线以无效或修改状态开始,且L2中的对应于同一存储单元的高速缓存线以修改过时状态开始,如框301所示。如框302中所示,在这两种情况下,核心都对高速缓存线进行写操作。
如框305所示,在第一种情况中,在L1中发生未命中,并且在一个实施例中使用了写分配政策,从而使得L1获得高速缓存线(来自于L2)并且将该高速缓存线维持在修改状态中。由于在该情况下,所述高速缓存线以修改最近拷贝状态被存储在L2中,故而L2发生命中,并且L2中的线的状态被改变为修改过时状态。例如,对L2的所有权周期的读操作可以向L1提供数据,并在L2中触发从修改最近拷贝状态到修改过时状态的转变。如框322所示,该情形导致L1高速缓存器使其高速缓存线一直处于修改状态,且L2高速缓存器使其高速缓存线一直处于修改过时状态,这是由于L1具有最近修改过的数据。根据由L1遵守的回写协议,L1可不向L2或其余存储器层级传送已修改的数据,直到其被逐出(evict)或探听命中该高速缓存线为止。
在第二种情况下,在框302中核心对L1执行写操作将导致L1如框310中所示那样修改数据,而L2将高速缓存线维持在修改过时状态。如果L1中的高速缓存线处于无效状态,那么它转变到修改状态,而如果L1中的高速缓存线处于修改状态,那么它维持在修改状态,如框310中所示。在某些实施例中,可不通知L2在L1中发生了对高速缓存线的写操作,并因此L2完全不作任何处理,结果导致了高速缓存线维持在修改过时状态。由此,L1和L2的作为结果的高速缓存线的状态分别为修改状态和修改过时状态,如框322所示。
图3b依照一个实施例举例说明了在第二组条件下的第二组状态的转变。如框330所示,L1高速缓存器中的高速缓存线以修改(脏,dirty)状态开始,并且在L2高速缓存器中对应于同一存储单元的高速缓存线以修改过时状态开始。在本实施例中,当L1逐出(框332)时,将发生L2命中(框334),并且最后的高速缓存器状态将如框336中所示。特别的是,该情形是由L1高速缓存线逐出以及L2从L1获得最近拷贝而产生的。由此,将L1中的高速缓存线设置为无效状态,而L2中的高速缓存线转变到修改最近拷贝状态。
图3c依照一个实施例举例说明了在第三组条件下的第三组状态的转变。如框340所示,在L1高速缓存器的一个高速缓存器中的高速缓存线以修改状态开始,而所有其他L1高速缓存器中的高速缓存线以无效状态开始,并且在L2高速缓存器中对应于同一存储单元的高速缓存线以修改过时状态开始。接下来,如框342所示,发生L2替换。L2替换导致了来自于L2的数据的逐出并导致将该数据回写到存储器250。作为这一回写的结果,L2高速缓存器条目被无效。当然,如果所述条目正在被逐出以便为新线腾出空位,则所述新线可稍后变为有效。如框340中所示,由于L2的数据处于修改过时状态,因而断定根据L1 MESI协议,其中一个L1高速缓存器包含处于修改状态的高速缓存线。因此,如框344中所示,执行L1高速缓存器的探听以便提取修改的数据,并且如果所述修改的数据存在于任一L1高速缓存器中,则无效所述高速缓存线。曾经具有处于修改状态的高速缓存线的L1中的所述高速缓存线被无效。由此,如框344所示,在L1和L2高速缓存器两者中的高速缓存线的状态都变为无效,并且通过L1高速缓存器的探听而接收到的数据可进行被回写,如框345所示。
图3d举例说明了与图3c相似的情形,除了L2高速缓存器中的高速缓存线的状态最初是修改最近拷贝状态,如框346中所示(由于L2具有最近拷贝状态故而L1高速缓存器中的状态是无效的)。如参考图3c中框342所论述的那样,如框348中所示,发生L2替换。作为在框348中L2替换的结果,再次如框349中所示,L1和L2高速缓存器两者中的高速缓存线的状态都变为无效。然而,在该情况下,由于L2高速缓存器中的高速缓存线的状态最初是修改最近拷贝状态,因而L2包含最近拷贝,并且不必对L1高速缓存器做任何询问。由此,如框349所示,不执行对L1高速缓存器的探听,并且如框350所示,将来自L2的数据回写到存储器。
在图3c所示的情况中,因为在其中一个L1高速缓存器中出现修改的线,故而执行了探听。在图3d中所示的情况中,因为共享L2高速缓存器包含了数据的最近拷贝,故而没有执行对L1高速缓存器的探听。在某些实施例中,在图3d所示的环境(即L1状态为无效,L2状态为修改最近拷贝)下,人们可能希望对与除了提出请求的处理器以外的处理器相关联的L1高速缓存器运行无效周期。例如,如果处理器核心能够执行推测性(speculative)装入并维持装入缓冲区,那么可将数据以修改的形成保存在装入缓冲区中。此外,该数据可以是从L1高速缓存器逐出的数据。接下来,如果不同的处理器试图写高速缓存线,那么它会经历未命中(L1中的线是无效的,L2的状态是修改最近拷贝状态),并且试图获得高速缓存线的所有权以执行所请求的写操作。尽管具有L2高速缓存器包含了处于修改最近状态的数据这样的事实,也不能够确保所述数据不再出现在推测性装入缓冲区或其他缓冲结构中。因此,在某些实施例中,为其他L1高速缓存器生成无效探听周期可能是十分有益的。
图3e依照一个实施例举例说明了L2包含处于修改过时状态的隐含高速缓存线的情况时,对外部无效探听的处理。在某些实施例中,其他探听操作可相似地被处理,而无效探听的例子是作为状态改变探听操作的广泛分类的代表而给出的。外部无效探听可通过接口逻辑240来接收,并且可来源于其他总线代理(未示出),诸如其他处理器、输入/输出(I/O)代理、直接存储器存取代理等。外部无效探听指示地址,且该探听的隐含的线是对应于该地址的线。如框351中所示,在L1高速缓存器中,高速缓存线的状态在一个L1高速缓存器中是修改状态而在其他L1高速缓存器中是无效状态,且L2高速缓存线的状态是修改过时状态。在框352中,外部无效探听由L2接收。作为外部无效探听的结果,将L1和L2高速缓存器中的高速缓存线的状态都设置为无效状态,如框354中所示。由于L2仅包含过时数据,故而依照L1高速缓存器的MESI协议,其中一个L1高速缓存器包含修改的数据。因此,还如框354所示,执行对L1高速缓存器的探听周期。如框356所示,修改的数据由其中一个L1高速缓存器提供以满足外部探听。
对于其他类型的探听操作来说,作为探听的结果,可将高速缓存线的状态设置为其他状态。例如,探听操作可指示高速缓存器将高速缓存线的状态改变为共享(S)状态,有效地发送命令到该高速缓存器以便将所述线中的数据维持在共享状态。如框354中所示,响应强制转变到共享状态的探听,发生这种到共享状态的转变而不是发生到无效状态的转变。
此外,其他的实施例可实现集中的高速缓存器目录,以减少对探听个别L1高速缓存器的需要。例如,用于共享高速缓存器的高速缓存器目录还可跟踪在其他L1高速缓存器中的高速缓存线的状态。在其他实施例中,高速缓存器目录可为不同的L1高速缓存器而被维持。使用这种高速缓存器目录将消除对所有L1高速缓存器发送单个探听周期的需要。代替地,高速缓存器目录将表明哪些L1高速缓存器应该接收该无效探听。
图3f举例说明了与图3e相似的情况的外部无效探听的处理,除了L2包含处于修改最近拷贝状态的隐含高速缓存线。如框360中所示,在L1高速缓存器中的高速缓存线的状态是无效,且L2高速缓存器中的高速缓存线的状态是修改最近拷贝状态。在框362中,外部无效探听由L2接收。作为外部无效探听的结果,将L1和L2高速缓存器中的高速缓存线的状态设置为无效,如框364中所示。由于L2包含最近数据,故而响应内部无效探听请求,通过从L2高速缓存器返回最近和修改的数据来满足外部探听,如框366所示。因此,在返回数据以满足外部探听周期之前,提供给L1高速缓存器的探听周期是不需要的。此外,其他类型的探听(除无效探听之外)可如上述那样相似地处理。
                             表2:M-状态概述
  图   写事件   初始状态   最终状态   含义/动作
  L1   L2   L1   L2
  3a   L1命中,或L1从I到M转变并且L2命中   I或M   MMRC或MStale   M   MStale   L1中具有MRC
  3b   L1替换且L2命中   M   MStale   I   MMRC   L2中具有MRC
  3c   L2替换且回写   I或M   MStale   I   I   其中一个L1具有MRC。逻辑对所有L1执行向后查询
  3d   L2替换且回写   I   MMRC   I   I   没有一个L1具有MRC。不需
 要向后查询
  3e   外部无效探听   I或M   MStale   I   I  其中一个L1具有MRC。逻辑向所有L1(或目录)发送探听
  3f   外部无效探听   I   MMRC   I   I   L2具有MRC;不需要探听L1
图4举例说明了包括芯片多处理器的***的另一个实施例,所述芯片多处理器依照多状态协议来执行多个专用高速缓存器,并且依照多状态共享高速缓存协议执行共享高速缓存器。图4的实施例举例说明了处理器400-1在某些实施例中可以不包括内部探听总线。此外,图4的实施例还举例说明了多个芯片多处理器400-1至400-4可耦合到一起以形成多芯片多处理器***。在一个实施例中,4个处理器400-1至400-4可以是相同的。4个处理器400-1至400-4如由多点总线401耦合那样来示出;然而,点到点或其他互连技术也可使用。此外,诸如存储器和I/O设备的附加组件通常也出现在***中。
处理器400-1包括接口逻辑430,以便经由所提供的互连(在示例性的实施例中如多点总线401)进行通信。处理器400-1包括N个核心405-1至405-N,所述N个核心的每一个都具有它们自己的专用高速缓存器,分别为410-1至410-N,所述专用高速缓存器与接口逻辑430相耦合。还提供了更高级的共享高速缓存器420,并且该共享高速缓存器420与接口逻辑430耦合。各种高速缓存器都可支持如前述的高速缓存协议。在本实施例中,处理器间的接口逻辑和互连参与一致性检查,要多于采用内部探听总线的实施例。在本实施例中,高速缓存器间的所有探听循环都经过接口逻辑430来加以处理,并且返回到多点总线401或其他适合的(例如,点到点)互连。
图5举例说明在某些实施例中使用的一个附加特征。在图5所示的实施例中,芯片多处理器的核心500-N可包括清除线共享逻辑517。如图示的那样,核心500-N可包括高速缓存器510(例如,如前述的MESI协议的高速缓存器)。高速缓存器510包括控制逻辑515,所述控制逻辑515的一部分是清除线共享逻辑517。高速缓存器510可通过探听互连522与其他高速缓存器和更高级的共享高速缓存器相耦合。此外,所述高速缓存器可通过第二互连524与外部接口耦合。
清除线共享逻辑517可通过将正确的信息发送到其他高速缓存器来提供性能改善。可专门用来处理探听通信量和数据交换的内部探听互连522的存在,为这种高速缓存器到高速缓存器的传递提供了更多带宽,所述高速缓存器到高速缓存器的传递会可能会不是很理想地占用***带宽,所述***为两个探听目的使用一条总线或互连,以便从存储器层级中的更高级别中检索数据。清除线共享逻辑517引起控制逻辑515在不同于只是逐出的情况下将来自L1高速缓存器的高速缓存线写回到其他高速缓存器。也就是说,清除线共享逻辑517将提供高速缓存线到其他高速缓存器中,其中所述高速缓存线随后至少被临时维持在共享高速缓存器内(而不是刚被逐出的线)。
在一个实施例中,清除线共享逻辑517提供数据以满足在探听互连522上的探听周期。也就是说,如果高速缓存器检测一探听周期,其中能够给所述探听周期提供有效数据,那么该高速缓存器响应所述探听周期以提供该数据(与等待存储器层级中更高的级别来提供该数据相对)。在另外的实施例中,L1高速缓存器仅作为写直通高速缓存器来操作。在另一个的实施例中,当带宽允许时,清除线共享逻辑517有机会将数据回写到其他高速缓存器。在又一个实施例中,在各种条件下和/或响应探听总线拥塞,清除线共享逻辑可被配置以用于将线回写到其他高速缓存器和/或存储器的各种组合。在一个实施例中,每个专用高速缓存器都包括清除线共享逻辑517。
数据在核心间的主动传递在某些情况下有益于减少存储器访问的等待时间以及带宽的消耗。例如,一个核心试图访问它的专用高速缓存器和共享L2高速缓存器并且在两种情况下都未命中将是可能的,而不管不同核心包含所需要的数据这样的事实。人们所希望的是,在核心间传递数据,以避免必须通过给外部接口生成周期或者通过访问L2高速缓存器来提供数据。
各种传统的读和写策略可以在各种实施例中使用。例如,在某些例子中可使用在写策略上的分配,以便当发生对线的写操作时,将高速缓存线写入高速缓存器。此外,从低级高速缓存器的读取操作可以或不会引起更高级的高速缓存器被填充(即,在某些实施例中可以或可以不包含更高级的高速缓存器)。
此外,设计可经历各种阶段,从创建到仿真到制造。表示设计过程的数据可以以多种方式来表示所述设计过程。首先,由于在仿真中十分有用,硬件可以使用硬件描述语言或其他功能描述语言来表示。此外,具有逻辑和/或晶体管门电路的电路级模块,可在设计过程的某些阶段产生。此外,多数设计在某些阶段达到了表示在硬件模块中各种设备的物理设置的数据级别。在使用常规的半导体制造工艺的情况中,表示硬件模块的数据可以是指定在不同掩模层上的各个特征的出现或缺乏的数据,所述掩模层是用于制造集成电路的掩模的掩模层。在设计过程的任意表示中,数据可存储在任意形式的机器可读介质中。被调制或另外生成的用于发送这种信息的光波或电波,存储器或者诸如磁盘的磁或光的存储器,都是机器可读介质。这些介质中的任意一种都可“携带”所述设计信息。
由此,已经公开了用于芯片多处理器或多处理器***的共享高速缓存一致性的方法和设备的技术。虽然已经描述并且在附图中示出了特定的示例性实施例,但是应该理解的是,这种实施例仅仅是对具有广泛范围的本发明的举例说明,而非对本发明的限制,并且此发明不限于所示出的以及所描述的具体结构和布置,这是由于本领域技术人员在学习了此公开内容的基础上,能够作出各种其他的修改。

Claims (22)

1.一种设备,包括:
多个处理器核心,每个处理器核心包含专用高速缓存器,用以实现第一个多状态高速缓存协议;和
共享高速缓存器,用以实现第二个多状态高速缓存协议,该第二个多状态高速缓存协议不同于所述第一个多状态高速缓存协议。
2.如权利要求1所述的设备,其特征在于:每个专用高速缓存器用以实现第一多状态高速缓存协议,用以允许修改的数据被保留在专用高速缓存器内,直到探听周期命中与所述修改的数据相关联的地址为止。
3.如权利要求1所述的设备,其特征在于:所述第二个多状态高速缓存协议包括多个状态,所述多个状态包括:
第一修改状态,在该状态下,所述共享高速缓存器具有在所述多个处理器核心中的一个处理器核心的专用高速缓存器中的修改的线的过时拷贝;
第二修改状态,在该状态下,所述共享高速缓存器具有修改的线的最近拷贝。
4.如权利要求3所述的设备,其特征在于:所述多个状态进一步包括:
共享状态,在该状态下,所述共享高速缓存器存储还由其他高速缓存器存储的线;
无效状态,其中,在所述高速缓存器中的每个高速缓存线是在第一修改状态、第二修改状态、共享状态或无效状态中的一个状态下被存储的。
5.如权利要求3所述的设备,其特征在于:由所述多个处理器核心的第一处理器向对应于第一地址的高速缓存线进行的写操作,用以在与所述第一处理器相关联的第一专用高速缓存器中将所述高速缓存线设置为修改状态,并且用以将对应于所述第一地址的共享高速缓存线设置为所述共享高速缓存器多状态高速缓存协议的第一修改状态。
6.如权利要求3所述的设备,其特征在于:由所述多个处理器核心的第一处理器对与第一地址相对应于的高速缓存线的逐出,用以将所述高速缓存线回写到所述共享高速缓存器,用以将所述高速缓存线设置为无效状态,并且用以将对应于第一地址的共享高速缓存线设置为共享高速缓存器多状态高速缓存协议的第二修改状态。
7.如权利要求4所述的设备,其特征在于:所述第二个多状态高速缓存协议是MESI协议,并且其中所述多个状态由第一修改状态、第二修改状态、共享状态和无效状态组成。
8.如权利要求3所述的设备,其特征在于:每个专用高速缓存器进一步包括:
清除线共享逻辑,用于响应探听周期将高速缓存线提供给其他的专用高速缓存器。
9.如权利要求1所述的设备,其特征在于:所述设备包括在机器可读介质上携带的机器可读数据。
10.一种设备,包括:
多个处理器核心;
多个高速缓存器,所述多个高速缓存器中的第一高速缓存器用于将多个高速缓存线维持在多个状态中一个状态中,所述多个状态包括:
第一修改状态,用于表明在所述多个高速缓存器的第二个高速缓存器中的修改的线的最近拷贝;
第二修改状态,用于表明修改的线的过时拷贝。
11.如权利要求10所述的设备,其特征在于:所述多个状态进一步包括共享状态和无效状态,其中每个高速缓存线具有相关联的高速缓存器状态条目,所述高速缓存器状态条目用于表明第一修改状态、第二修改状态、共享状态或无效状态中的一个状态。
12.如权利要求10所述的设备,进一步包括:
内部一致性总线,它与所述多个高速缓存器中的每个高速缓存器相耦合,用于在所述多个高速缓存器之间进行通信。
13.如权利要求11所述的设备,其特征在于:所述多个高速缓存器的多个专用高速缓存器依照第二个协议来维持高速缓存线,所述第二个协议包括第二多个状态,所述第二个协议包括MESI协议。
14.如权利要求13所述的设备,其特征在于:所述多个高速缓存器中的所述第一高速缓存器是共享N+1级高速缓存器。
15.一种方法,包括:
在内部探听总线上驱动对多个内部专用高速缓存器和共享高速缓存器的探听周期,所述共享高速缓存器被依照第一个四状态高速缓存协议加以维持,其中所述第一个四状态高速缓存协议包括修改的最近拷贝状态、修改的过时状态、共享状态和无效状态;
经由外部总线驱动对存储器的高速缓存器未命中周期。
16.如权利要求15所述的方法,进一步包括:
为所述多个内部专用高速缓存器维持第二个四状态高速缓存协议,其中所述第二个四状态高速缓存协议包括修改状态、独占状态、共享状态和无效状态。
17.如权利要求15所述的方法,进一步包括:
将第一高速缓存线转变到第一修改状态,在该状态下,第一高速缓存线包含高速缓存线的过时拷贝,而另一个高速缓存器包含与所述第一高速缓存线相关联的信息的修改拷贝。
18.如权利要求17所述的方法,进一步包括:
将第二高速缓存线转变到第二修改状态,在该状态下,所述第二高速缓存线包含与所述高速缓存线相关联的信息的最近拷贝。
19.如权利要求15所述的方法,进一步包括:在所述多个内部专用高速缓存器之间共享线。
20.一种***,包括:
多核心处理器,所述多核心处理器包括:
多个处理器;
多个相关联的高速缓存器;
共享高速缓存器;
与所述多个高速缓存器相耦合的内部探听总线,用以允许响应于在内部探听总线上的探听周期而在所述多个高速缓存器之间进行数据转移;
一致性逻辑,用于将多个高速缓存线维持在多个状态中的一个状态中,所述多个状态包括最近拷贝修改状态以及过时修改状态,所述一致性逻辑用于将具有对应的第一地址的第一数据项维持在所述过时修改状态中,并且将具有对应的第二地址的第二数据项维持在所述最近拷贝修改状态中;
与多核心处理器相耦合的存储器,所述存储器用于存储所述第一地址处的第三数据项和第二地址处的第四数据项,所述存储器可选择地被更新以便将所述第一数据项复制到所述第一地址。
21.如权利要求20所述的***,其特征在于:所述***是服务器计算机***。
22.如权利要求20所述的***,进一步包括:用于响应内部探听总线上的探听周期而共享所述多个相关联的高速缓存器之间的线的逻辑。
CNB2003101198312A 2003-10-23 2003-10-23 用于维持共享高速缓存一致性的方法和设备 Expired - Fee Related CN1320464C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101198312A CN1320464C (zh) 2003-10-23 2003-10-23 用于维持共享高速缓存一致性的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101198312A CN1320464C (zh) 2003-10-23 2003-10-23 用于维持共享高速缓存一致性的方法和设备

Publications (2)

Publication Number Publication Date
CN1609823A CN1609823A (zh) 2005-04-27
CN1320464C true CN1320464C (zh) 2007-06-06

Family

ID=34761429

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101198312A Expired - Fee Related CN1320464C (zh) 2003-10-23 2003-10-23 用于维持共享高速缓存一致性的方法和设备

Country Status (1)

Country Link
CN (1) CN1320464C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101677384B (zh) * 2008-09-19 2011-03-23 鸿富锦精密工业(深圳)有限公司 数据存储管理***及方法
EP4006734A1 (en) * 2020-11-25 2022-06-01 ARM Limited Methods and apparatus for transferring data within hierarchical cache circuitry

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458757C (zh) * 2005-07-28 2009-02-04 大唐移动通信设备有限公司 嵌入式实时操作***中多核处理器的核间通信方法及装置
US20070143550A1 (en) * 2005-12-19 2007-06-21 Intel Corporation Per-set relaxation of cache inclusion
US7757045B2 (en) 2006-03-13 2010-07-13 Intel Corporation Synchronizing recency information in an inclusive cache hierarchy
CN100452757C (zh) * 2006-10-12 2009-01-14 杭州华三通信技术有限公司 报文转发方法和装置
US7568073B2 (en) * 2006-11-06 2009-07-28 International Business Machines Corporation Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection
US20110208916A1 (en) * 2007-12-10 2011-08-25 Masahiko Saito Shared cache controller, shared cache control method and integrated circuit
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
WO2012077400A1 (ja) * 2010-12-09 2012-06-14 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチコアシステム、及びそのコアのデータ読み出し方法
DE112013007751B3 (de) * 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
CN105493052B (zh) * 2013-09-27 2019-05-03 英特尔公司 用于存储器管理的高速缓存操作
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
WO2016042354A1 (en) * 2014-09-18 2016-03-24 Via Alliance Semiconductor Co., Ltd. Cache memory diagnostic writeback
US10073776B2 (en) * 2016-06-23 2018-09-11 Advanced Micro Device, Inc. Shadow tag memory to monitor state of cachelines at different cache level
US10769068B2 (en) * 2017-11-10 2020-09-08 International Business Machines Corporation Concurrent modification of shared cache line by multiple processors
CN110232030B (zh) * 2019-06-12 2021-08-10 上海兆芯集成电路有限公司 多芯片***及缓存处理方法
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278625A (zh) * 1999-06-18 2001-01-03 国际商业机器公司 保持高速缓冲存储器一致性的方法和***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278625A (zh) * 1999-06-18 2001-01-03 国际商业机器公司 保持高速缓冲存储器一致性的方法和***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101677384B (zh) * 2008-09-19 2011-03-23 鸿富锦精密工业(深圳)有限公司 数据存储管理***及方法
EP4006734A1 (en) * 2020-11-25 2022-06-01 ARM Limited Methods and apparatus for transferring data within hierarchical cache circuitry
WO2022112099A1 (en) * 2020-11-25 2022-06-02 Arm Limited Methods and apparatus for transferring data within hierarchical cache circuitry

Also Published As

Publication number Publication date
CN1609823A (zh) 2005-04-27

Similar Documents

Publication Publication Date Title
US11908546B2 (en) In-memory lightweight memory coherence protocol
CN1320464C (zh) 用于维持共享高速缓存一致性的方法和设备
US6976131B2 (en) Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
KR102442079B1 (ko) 메모리에서의 처리를 위한 캐시 일관성
US6725334B2 (en) Method and system for exclusive two-level caching in a chip-multiprocessor
JP5005631B2 (ja) 複数のコアキャッシュ・クラスタ間の包括的共有キャッシュの提供
KR102068101B1 (ko) 하이브리드 메모리 큐브 시스템 상호 접속 디렉토리-기반 캐시 일관성 방법론
US6651145B1 (en) Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US5749095A (en) Multiprocessing system configured to perform efficient write operations
JP4082612B2 (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
US7774551B2 (en) Hierarchical cache coherence directory structure
CN1940892A (zh) 逐出高速缓存的行的电路布置、数据处理***和方法
US8397030B2 (en) Efficient region coherence protocol for clustered shared-memory multiprocessor systems
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
CN101042679A (zh) 维护存储器一致性的方法和***
US7308538B2 (en) Scope-based cache coherence
US7174430B1 (en) Bandwidth reduction technique using cache-to-cache transfer prediction in a snooping-based cache-coherent cluster of multiprocessing nodes
CN1679006A (zh) 处理器预取以匹配存储器总线协议特性
JPH10301850A (ja) データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム
CN116795767A (zh) 一种基于CHI协议的多核Cache共享一致性协议构建方法
US7315919B1 (en) Bandwidth reduction technique in a snooping-based cache-coherent cluster of multiprocessing nodes
US20230100746A1 (en) Multi-level partitioned snoop filter
US6636948B2 (en) Method and system for a processor to gain assured ownership of an up-to-date copy of data

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

Termination date: 20211023