用于在cmp中维持高速缓存相关性的协议的制作方法

文档序号:6501692阅读:247来源:国知局
专利名称:用于在cmp中维持高速缓存相关性的协议的制作方法
背景技术
高速缓存(cache)相关多处理器系统包括两个或多个独立的处理器核心。这些核心包括用于在靠近数据耗用位置处复制存储数据。高速缓存相关协议的一个功能是维持这些高速缓存相关,也就是说,确保存储的相关性。
高速缓存相关CMP是高速缓存相关多处理器系统的一种特殊情形。在CMP中,独立的处理器核心被集成到单个硅片上。当前,没有一种协议来确保CMP中的高速缓存相关性。因此,需要有一种芯片内高速缓存相关性协议,以维持芯片内处理器高速缓存之间的相关性。


如附图所示,本发明的各种特征将会在较佳实施例的描述中更加明显,在整个附图中,一样的标号一般指代相同的部分。附图并非是按照比例画出的,取而代之的是用具体示例来示出本发明的原理。
图1是环路互连状的CMP的框图。
具体实施例方式
在以下的描述中,出于解释而并非限制的目的,对诸如具体结构、构造、接口以及技术等的具体细节给出了陈述,以提供对本发明各方面的详细理解。但是,对于本领域一般技术人员来说,得益于本发明的揭示,在脱离这些特定细节的其它示例中可以实现本发明。在一些示例中,省略了众所周知的设备、电路和方法的描述,以免冗余的细节模糊了本发明的重点。
图1示出了包括多个处理器P0、P2和P6等的CMP设计图,同时在每一个核心上具有专用的高速缓存和单个的芯片内共享高速缓存10。共享高速缓存10包括多个独立高速缓存存储体(bank)(未示出)。共享高速缓存10的每一存储体负责系统5的物理地址空间的某些子集。即,每个共享高速缓存存储体是物理地址空间的非重叠部分的“原(home)”位置。处理器核心P0、P2等以及共享高速缓存10可以同步、非缓冲双向环路互连15的方式连接到一起。
图1所示的CMP包括核心高速缓冲,它们是直写(write thru),而非回写(writeback)。即,当核心写入数据时,不是将写入的数据放入到核心的高速缓存内,而核心直接将数据写入到共享高速缓存10。当核心写入片断数据时,不是将该数据存入到其专用高速缓存内,而是系统5使能数据直写入共享高速缓存10中。这是因为环路互连15的带宽可以支持该行为。
通常,在高速缓存相关多处理器系统中,需要一定的流量来提取无效数据,也就是通常所说的无用数据,并然后将无效数据直写入。但是这样的过程并不需要图1所示的系统5。由于该系统5,由于不再有无效的数据,则在专用高速缓存中无需差错核对代码。在共享高速缓存10中有另一个数据备份。如果数据出现损毁,则系统无需将其纠正,是因为在共享高速缓存10中存有备份。
此外,在每一个核心P0、P2和P6等中,具有结合写入缓冲器或合并缓冲器(未示出)。无效数据并非进入到核心的专用高速缓存中,而是被放入到该合并缓冲器中,这种缓冲器的结构要小得多。合并缓冲器连续地清除或清空到共享高速缓存10中的写入。所以系统5无需立即进行直写,而是将无效数据放入合并缓冲器中。无效数据被放入到合并缓冲器中,并且一旦合并缓冲器满了,则它以定时的方式将写入内容推入到共享高速缓存10中。由于具备CMP共享高速缓存设计,环路互连15上的其它处理器可以请求由核心之一写入内容并且被推出的这些数据。所以通过以定时的方式将这些数据推入到共享高速缓存10中,可以将数据放置在CMP的其它处理器可以访问该数据的普通地方。
在图1的系统中,高速缓存是基于块的,并且在核心中的存储是基于子块的。从而当存储出现时,它将存储1、2、4、8或16字节的数据。较好的是,合并缓冲器在执行直写之前将多个存储结合到同一块但是不同的字节中,从而可以节省带宽。
如前所述,图1示出非块环路互连15。在环路15中没有缓冲,所以过程总是围绕环路互连15进行。例如,如果系统5是在环路15上的处理器P0中,并且一消息传送给环路互连15上的处理器P6,同时在P0和P6之间具有处理器五个处理器。系统5已知如果消息是在周期X期间传送,则系统在X+5周期时获得该消息。这就意味着由于数据包(消息)不会在环路互连15中受到阻塞,则在系统5中具有固定的确定等待时间。
当前的相关性协议仅仅是被设计为在CMP内部维持相关性。假设标准的基于无效的协议具有用于维持芯片间相关性的常规4状态MESI,则共享高速缓存中的块可以处于四种状态中的之一。
1.不存在b.块X在共享高速缓存(或任意的核心高速缓存)中不存在。
存在且隶属于核心Cc.块X在共享高速缓存中并且核心C具有对块X的专有写入优先权。
存在且并不隶属,同时监管=Cd.块X在共享高速缓存中,同时单个核心具有副本e.属于块X的存在且并不隶属,也无监管f.块X在共享高速缓存中,但是多个核心具有块X的多个副本。
g.其中X=所请求的块的物理地址R=请求READ块X的核心W=初始化WRITE块X的核心H=X的原共享高速缓存存储体O=暂时拥有块X的核心上述的协议描述了在READS(载入)和WRITES(存储)期间由核心初始化的基本操作。首先将讨论READS流程,然后是WRITES流程。
在READ流程中,当核心R执行到地址X中的载入,同时地址X并没有包含在核心高速缓存中时,READ消息被发送至地址X的原共享高速缓存存储体H。原共享高速缓存存储体H可以执行三种可能的行动,具体取决于由H记录块X的状态。
首先,如果X的状态是不存在的,则在该情形中H不具备共享高速缓存中的X的副本。因此,H将请求发送至存储器缓冲器中以从存储器中获取块X。当H从存储器中接收到块X时,由于R是唯一具有块X副本的核心,则它将块传送至R,同时H将会记录下R是监管。
其次,如果X的状态是存在的,而非隶属的,监管=R,则在该示例中,假设H接收到另一READ请求,但是这一次是来自于R1的。H的确包含了所请求的块,并且没有专用的高速缓存具有块的专有副本,H从高速缓存中读取块,并且将其传送至R1。由于多个核心(R和R1)现在具有块X的多个副本,则H将块标记为没有监管。
最后,如果X的状态是存在的,并且隶属于核心O,则在该情形中,H的确包含所请求的块,但是核心O包括块的专有副本。因此H将EVICT消息送至核心O。随后H停止对X的请求,并等待来自O的响应。一旦O接收到EVICT消息,则它将块X的更新数据发送至H。在H接收到块X之后,它将块X发送至R。
在WRITE流程中,当核心W执行对地址X的存储时,并且地址X并非存在于结合写入缓冲器中,则WRITE消息被发送至环路上地址X的原共享高速缓存存储体H。原共享高速缓存存储体H可以执行四种可能的行动,具体要取决于块X的状态。
首先,如果X的状态不存在,则在该情形中,H的确没有共享高速缓存中X的副本。因此H将请求发送至存储缓冲器以从存储器获取块X。当H从存储器中接收到块X时,它将写入确认(WRITE ACKNOWLEDGEMENT)信号传送至核心W,同时将核心W记录为块X的监管。
其次,如果X的状态存在,不隶属,同时监管为R,则在该情形中,H的确包含所请求的块。H利用环路的属性,将“无效和确认”(INVALIDATEANDACKNO-WLEDGE)信号围绕环路互连发送,“无效”(INVALIDATE)部分仅仅是发送给核心R,也就是给监管,以使得高速缓存的副本无效。“写入确认”(WRITEACKNOWLEDGEMENT)部分仅仅是传送给核心W的。这样做的原因就是共享高速缓存仅仅发送一条消息以将核心R无效,同时对核心W确认。由于环路互连,则不再需要发送两条单独的消息。但是如果监管就是初始化WRITE的同一个核心时,将不会有无效信号发送。所有其它的步骤是相同的。随后H将W记录为块X的所有者,并且将监管变为W,因为当前没有其它的核心具有X的高速缓存副本。
其次,如果X的状态存在,而非隶属并且无监管,则在该示例中,块X存在,但是没有监管。这就意味着H的确不知道哪一个核心具有X的高速缓存副本。因此,H将单个的“无效核心以及写入确认”(INVALIDATEALLANDWRITEACKNO-WLEDGE)信号围绕环路发送。“无效”(INVALIDATE)部分发送至所有核心,以使得高速缓存副本无效。“写入确认”(WRITEACKNOWLEDGEMENT)部分仅仅发送给核心W,也就是请求写入的处理器。H将监管变为W,是因为当前没有其它的核心具有X的高速缓存副本。
最后,如果X的状态存在,隶属于核心O,则在该情形中,H的确包含所请求的块,但是核心O也包含块的专有副本。因此,H将EVICT消息发送至核心O。然后H停止对X的请求,并等待来自O的响应。当O接收到EVICT消息时,它将块X的更新信号发送至H。当H接收到块X时,它将“写入确认”(WRITEACKNOWLEDGEMENT)发送至核心W,并且将核心W记录为块X的监管。
在下述的描述中,为了解释而非限制的目的,对诸如具体结构、构造、接口以及技术等的具体细节给出了陈述,以提供对本发明各方面的详细理解。但是,对于本领域一般技术人员来说,得益于本发明的揭示,在脱离这些特定细节的其它示例中可以实现本发明。在一些示例中,省略了众所周知的设备、电路和方法的描述,以免冗余的细节模糊了本发明的重点。
权利要求
1.一种用于在CMP中维持高速缓存相关性的系统,包括一个或多个处理器核心;共享高速缓存;以及环路,其中所述环路连接所述一个或多个处理器和所述共享高速缓存;
2.如权利要求1所述的系统,其特征在于,所述一个或多个处理器核心的每一个都包括一个专用高速缓存。
3.如权利要求1所述的系统,其特征在于,共享高速缓存包括一个或多个高速缓存存储体。
4.如权利要求3所述的系统,其特征在于,所述一个或多个高速缓存存储体负责所述系统的物理地址空间的一个子集。
5.如权利要求1所述的系统,其特征在于,所述一个或多个处理器核心是直写的。
6.如权利要求5所述的系统,其特征在于,所述一个或多个处理器核心将数据直写入所述共享高速缓存中。
7.如权利要求1所述的系统,其特征在于,所述一个或多个处理器核心包括合并缓冲器。
8.如权利要求7所述的系统,其特征在于,数据被存储在所述合并缓冲器中。
9.如权利要求8所述的系统,其特征在于,所述合并缓冲器将数据清除至所述共享高速缓存中。
10.如权利要求1所述的系统,其特征在于,所述一个或多个处理器核心从所述共享高速缓存中访问数据。
11.如权利要求8所述的系统,其特征在于,所述合并缓冲器将多次存储接合至同一块中。
12.如权利要求1所述的系统,其特征在于,所述环路是同步的非缓冲双向环路互连。
13.如权利要求12所述的系统,其特征在于,消息环绕整个环路互连具有固定的确定等待时间。
全文摘要
本发明是用在CMP中维持高速缓存相关性的协议。CMP设计包括多个处理器核心,每一核心具有专用的高速缓存。且CMP具有单个的芯片内共享高速缓存。可以用同步、非缓冲双向环路互连以将处理器核心和共享高速缓冲连接在一起。在本协议中,单个的无效和确认(INVALIDATEANDACKNOWLEDGEMENT)消息发送至该环路,以使特定的核心无效,并且确认特定的核心。
文档编号G06F12/08GK1890646SQ200480036044
公开日2007年1月3日 申请日期2004年12月23日 优先权日2003年12月30日
发明者M·玛蒂纳, G·Z·查瑞索斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1