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

文档序号:6421072阅读:152来源:国知局
专利名称:用于维持共享高速缓存一致性的方法和设备的制作方法
技术领域
本公开内容涉及处理系统及其相关联的高速缓存装置的领域。
背景技术
改善计算机或其他处理系统的性能,通常是改善整体吞吐量和/或提供更好的用户体验。用于改善在系统中处理的指令总量的一种技术是增加系统中处理器的数量。然而,实现多处理(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共享高速缓存协议状态

将能够理解的是,可将高速缓存线以不同的方式维持或标记为特定的状态。例如,可以使用标记位来表示不同的状态。这种标记或状态位可与每个高速缓存线一道被存储。所述状态位还可被单独存储在单独的存储器阵列中。此外,协议状态位可与关于高速缓存线的其他信息组合在一起,并且以编码或其他形式被存储。高速缓存线的最终处理还可受到其他位或设置的影响,所述其他位或设置诸如存储器键入寄存器(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高速缓存器的探听周期是不需要的。此外,其他类型的探听(除无效探听之外)可如上述那样相似地处理。
表2M-状态概述

图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高速缓存器来提供数据。
各种传统的读和写策略可以在各种实施例中使用。例如,在某些例子中可使用在写策略上的分配,以便当发生对线的写操作时,将高速缓存线写入高速缓存器。此外,从低级高速缓存器的读取操作可以或不会引起更高级的高速缓存器被填充(即,在某些实施例中可以或可以不包含更高级的高速缓存器)。
此外,设计可经历各种阶段,从创建到仿真到制造。表示设计过程的数据可以以多种方式来表示所述设计过程。首先,由于在仿真中十分有用,硬件可以使用硬件描述语言或其他功能描述语言来表示。此外,具有逻辑和/或晶体管门电路的电路级模块,可在设计过程的某些阶段产生。此外,多数设计在某些阶段达到了表示在硬件模块中各种设备的物理设置的数据级别。在使用常规的半导体制造工艺的情况中,表示硬件模块的数据可以是指定在不同掩模层上的各个特征的出现或缺乏的数据,所述掩模层是用于制造集成电路的掩模的掩模层。在设计过程的任意表示中,数据可存储在任意形式的机器可读介质中。被调制或另外生成的用于发送这种信息的光波或电波,存储器或者诸如磁盘的磁或光的存储器,都是机器可读介质。这些介质中的任意一种都可“携带”所述设计信息。
由此,已经公开了用于芯片多处理器或多处理器系统的共享高速缓存一致性的方法和设备的技术。虽然已经描述并且在附图中示出了特定的示例性实施例,但是应该理解的是,这种实施例仅仅是对具有广泛范围的本发明的举例说明,而非对本发明的限制,并且此发明不限于所示出的以及所描述的具体结构和布置,这是由于本领域技术人员在学习了此公开内容的基础上,能够作出各种其他的修改。
权利要求
1.一种设备,包括多个处理器核心,每个处理器核心包含专用高速缓存器;一共享高速缓存器;与每个专用高速缓存器和所述共享高速缓存器相耦合的内部探听总线,用于将数据从每个专用高速缓存器传送到其他专用高速缓存器和所述共享高速缓存器。
2.如权利要求1所述的设备,其特征在于每个专用高速缓存器执行多状态高速缓存协议,所述多状态高速缓存协议允许修改的数据被保留在专用高速缓存器内,直到探听周期命中与所述修改的数据相关联的地址为止。
3.如权利要求2所述的设备,其特征在于所述共享高速缓存器能够执行与所述多状态高速缓存协议不同的共享高速缓存器多状态高速缓存协议,所述共享高速缓存器多状态高速缓存协议执行多个状态,所述多个状态包括第一修改状态,在该状态下,高速缓存器具有修改的线的过时拷贝;第二修改状态,在该状态下,高速缓存器具有修改的线的最近拷贝。
4.如权利要求3所述的设备,其特征在于所述多个状态进一步包括共享状态,在该状态下,所述高速缓存器存储也由其他高速缓存器存储的线;无效状态,其中,每个高速缓存线是在第一修改状态、第二修改状态、共享状态或无效状态中的一个状态下被存储的。
5.如权利要求3所述的设备,其特征在于由所述多个处理器核心的第一处理器向对应于第一地址的高速缓存线进行的写操作,能够在与所述第一处理器相关联的第一专用高速缓存器中将所述高速缓存线设置为修改状态,并且能够将对应于所述第一地址的共享高速缓存线设置为所述共享高速缓存器多状态高速缓存协议的第一修改状态。
6.如权利要求3所述的设备,其特征在于由所述多个处理器核心的第一处理器对与第一地址相对应于的高速缓存线的逐出,能够将所述高速缓存线回写到所述共享高速缓存器,能够将所述高速缓存线设置为无效状态,并且能够将对应于第一地址的共享高速缓存线设置为共享高速缓存器多状态高速缓存协议的第二修改状态。
7.如权利要求4所述的设备,其特征在于所述多状态高速缓存协议是MESI协议,并且其中所述多个状态由第一修改状态、第二修改状态、共享状态和无效状态组成。
8.如权利要求3所述的设备,其特征在于每个专用高速缓存器进一步包括清除线共享逻辑,用于响应探听周期将高速缓存线提供给其他的专用高速缓存器。
9.如权利要求1所述的设备,其特征在于所述设备包括在机器可读介质上携带的机器可读数据。
10.一种设备,包括多个处理器核心;多个高速缓存器,所述多个高速缓存器中的第一高速缓存器用于将多个高速缓存线维持在多个状态中一个状态中,所述多个状态包括第一修改状态,用于表明修改的线的最近拷贝;第二修改状态,用于表明修改的线的过时拷贝。
11.如权利要求10所述的设备,其特征在于所述多个状态进一步包括共享状态和无效状态,其中每个高速缓存线具有相关联的高速缓存器状态条目,所述高速缓存器状态条目用于表明第一修改状态、第二修改状态、共享状态或无效状态中的一个状态。
12.如权利要求10所述的设备,进一步包括内部一致性总线,它与所述多个高速缓存器中的每个高速缓存器相耦合,用于在所述多个高速缓存器之间进行通信。
13.如权利要求11所述的设备,其特征在于所述多个高速缓存器的其他高速缓存器依照第二协议来维持高速缓存线,所述第二种协议包括第二多个状态。
14.如权利要求13所述的设备,其特征在于所述多个高速缓存器的其他高速缓存器是多个专用N级高速缓存器,并且其中所述多个高速缓存器中的第一高速缓存器是共享N+1级高速缓存器。
15.如权利要求14所述的设备,其特征在于所述第二协议包括MESI协议。
16.一种方法,包括在内部探听总线上驱动对多个内部专用高速缓存器和共享高速缓存器的探听周期;经由外部总线驱动对存储器的高速缓存器未命中周期。
17.如权利要求16所述的方法,进一步包括为所述的共享高速缓存器维持四个状态的第一高速缓存协议,其中所述四个状态的第一高速缓存协议包括修改最近拷贝状态、修改过时状态、共享状态以及无效状态。
18.如权利要求17所述的方法,进一步包括为所述多个内部专用高速缓存器维持四个状态的第二高速缓存协议,其中所述四个状态的第二高速缓存协议包括修改状态、独占状态、共享状态和无效状态。
19.如权利要求16所述的方法,进一步包括将第一高速缓存线转变到第一修改状态,在该状态下,第一高速缓存线包含高速缓存线的过时拷贝,而另一个高速缓存器包含与所述第一高速缓存线相关联的信息的修改拷贝。
20.如权利要求19所述的方法,进一步包括将第二高速缓存线转变到第二修改状态,在该状态下,所述第二高速缓存线包含与所述高速缓存线相关联的信息的最近拷贝。
21.如权利要求16所述的方法,进一步包括在所述多个内部专用高速缓存器之间的共享线。
22.一种系统,包括多核心处理器,所述多核心处理器包括多个处理器;多个相关联高速缓存器;共享高速缓存器;一致性逻辑,用于将多个高速缓存线维持在多个状态中的一个状态中,所述多个状态包括最近拷贝修改状态以及过时修改状态,所述一致性逻辑用于将具有对应于第一地址的第一数据条目维持在所述过时修改状态中,并且将具有对应于第二地址的第二数据条目维持在所述最近拷贝修改状态中;与多核心处理器相耦合的存储器,所述存储器用于存储所述第一地址处的第三数据条目和第二地址处的第四数据条目,所述存储器可选择地进行更新以便将所述第一数据条目复制到所述第一地址。
23.如权利要求22所述的系统,其特征在于所述多核心处理器进一步包括与所述多个高速缓存器相耦合的内部探听总线,以允许响应在内部探听总线上的探听周期而进行所述多个高速缓存器间的数据传送。
24.如权利要求22所述的系统,其特征在于所述系统是服务器计算机系统。
25.如权利要求23所述的系统,进一步包括用于响应内部探听总线上的探听周期而共享所述多个相关联高速缓存器间的线的逻辑。
全文摘要
用于芯片多处理器或多处理器系统的共享高速缓存一致性的方法和设备。在一个实施例中,多核心处理器包括多个处理器核心,每个核心都具有专用高速缓存器和共享高速缓存器。将内部探听总线耦合到每个专用高速缓存器和共享高速缓存器,以便将数据从每个专用高速缓存器传送到其他专用高速缓存器和所述共享高速缓存器。在另一个的实施例中,设备包括多个处理器核心和多个高速缓存器。多个高速缓存器之一将高速缓存线维持在两个不同的修改状态中。第一修改状态表明修改的高速缓存线的最近拷贝,而第二修改状态表明修改的高速缓存线的过时拷贝。
文档编号G06F12/08GK1609823SQ20031011983
公开日2005年4月27日 申请日期2003年10月23日 优先权日2003年10月23日
发明者V·彭特科夫斯基, V·加格, N·S·伊耶尔, J·克沙瓦 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1