CN103440223B - 一种实现高速缓存一致性协议的分层系统及其方法 - Google Patents
一种实现高速缓存一致性协议的分层系统及其方法 Download PDFInfo
- Publication number
- CN103440223B CN103440223B CN201310385812.8A CN201310385812A CN103440223B CN 103440223 B CN103440223 B CN 103440223B CN 201310385812 A CN201310385812 A CN 201310385812A CN 103440223 B CN103440223 B CN 103440223B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- node
- bus
- kernel
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种实现高速缓存一致性协议的分层系统及其方法,其方案是:分层系统的第一层采用总线监听协议以适应其共享总线架构,第二层则采用基于目录的高速缓存一致性协议以适应其NoC片上互联网络架构,两种架构通过每个节点的节点控制器来转发两种协议发出的一致性维护信号,使得两种协议之间可以相互通信,进而使得混合一致性协议可以维护整个系统的高速缓存一致性。本方法具有性能高、实时性好、可扩展性强、设计复杂度小,既解决了共享总线架构的总线带宽问题,又解决了基于目录的一致性协议中目录所占存储空间过大的问题,使其能够更好的适应更大规模的多内核处理器。
Description
技术领域
本发明涉及集成电路技术领域,具体涉及分层架构的多内核处理器高速缓存混合一致性架构,用于解决多内核处理器访问共享数据时引起的数据冲突问题。
背景技术
随着集成电路技术的不断发展,传统的单核微处理器越来越难以满足应用需求,由于多内核处理器相对于单核处理器在功耗、速度等方面的优势,近年来得到了极大地发展。
多内核处理器就是将多个计算内核集成在一个处理器中,采用并行处理技术,将任务分配到多个计算内核,充分利用处理器资源,提高处理器性能。但随着多内核处理器结构复杂度的增加,高速缓存的设计难度也相应增加。如何保证多内核处理器设计的正确性,尤其是多内核处理器高速缓存一致性的正确性成为多内核处理器发展的难点之一。
高速缓存是存在于主存与CPU之间的一级存储器,主要为了缓和CPU与存储器之间的速度差距,由静态随机存储器SRAM实现。在多内核处理器中,由于多个内核可能对同一数据块进行读写操作,当某个内核对共享的数据块进行写操作时,在其它内核的高速缓存中该数据块的副本将成为过时的数据,这时系统中高速缓存的数据块就会出现不一致,也就是常说的高速缓存不一致问题。对于这一问题,目前的解决方法有两种:总线监听协议和基于目录的高速缓存一致性协议。其中:
1、总线监听协议,是通过总线监听的方式来维护高速缓存的一致性。它允许系统中各个处理器能够监测对存储器进行的所有操作,如果这些操作破坏了本地高速缓存中数据的一致性状态,本地内核就会向总线发送控制信号,其它内核监听到控制信号后会做出相应的一致性动作。每个高速缓存都有自己的状态标识来表明当前高速缓存行数据是否有效。当本地内核要进行读写操作时,先查找对应高速缓存行数据是否有效,如果有效则进行读写操作,同时在总线上广播一个无效信号,当其它内核监听到该无效信号时,将相应的高速缓存行数据无效掉。反之当本地内核要进行读写操作时,对应的高速缓存行数据无效,则要向总线广播一个数据请求信号,当其它内核监听到该信号,并且对应地址的高速缓存行有效,则发送相应的数据到请求数据的本地内核。
总线监听协议实现简单、目录存储空间小,但是总线监听协议存在一定的局限性,它一般只用于共享总线型多内核处理器。随着多内核处理器内核数量的增加,总线带宽将会快速增加。由于总线监听协议效率比较低,所以共享总线架构以及其对应的总线监听协议所支持的内核数量不能太多,一般在10个左右。此外,由于总线监听协议需要不断地向总线发送信号,对总线的带宽和仲裁有很高的要求。
2、基于目录的高速缓存一致性协议,是将高速缓存一致性维护命令只发给存放相同数据块复本的那些高速缓存。在基于目录的高速缓存一致性协议中的目录用来存放系统中所有内核对该高速缓存块的占有情况,并且通过目录保证所有内核对同一数据访问的请求串行执行。当本地内核向本地高速缓存读写数据时,如果在本地高速缓存中没有对应的数据副本,则发送请求信号到目录,目录控制器将会通过查找目录,确定系统中的哪个高速缓存拥有该数据副本,并将请求信号转发到该高速缓存。当拥有该数据副本的高速缓存接收到此数据请求信号时,它将通过数据传输网络将最新数据传送到请求数据的本地高速缓存。基于目录的高速缓存一致性协议适用于采用片上互联网络NoC架构的多内核处理器。
在片上互联网络架构及其对应的基于目录的高速缓存一致性协议中各个节点之间采用分组路由的方式进行互联通信,为系统提供了良好的可扩展性和并行通信的能力,从而使得带宽增加了几个数量级,很好地解决了总线架构带宽限制的问题。而且片上互联网络将总线架构中的长互联线换成了交换开关之间的短互联线,使得功耗降低。但是当内核数量再次增加时目录存储将会占据很大的存储空间,而且实现较为复杂。
通过以上对比可以看出在处理器内核较少的情况下一般采用共享总线架构并且采用总线监听协议来维护高速缓存一致性。随着内核数量的增长则采用片上互联网络架构并且采用基于目录的高速缓存一致性协议。但是当内核数量再次增加的时候两种高速缓存一致性协议都受到了限制。
发明内容
本发明的目的是针对上述已有协议的不足,结合共享总线架构、片上互联网络架构及其高速缓存一致性协议各自的优缺点,提出一种多内核处理器高速缓存一致性方法,以解决总线监听协议支持的内核数量少、对总线的带宽要求高、维护效率低的问题。
本发明的技术方案是这样实现的:所有内核分为若干组,每组称为一个节点,节点内部的内核之间采用共享总线架构,为系统的第一层,节点之间采用片上互连网络架构,为系统的第二层。通过分层的结构实现了将一致性协议进行有效的结合,既实现简单、实时性好,而且更好的适应更大规模的多内核处理器。
为了实现上述目的,本发明采用的技术方案如下:
一种实现高速缓存一致性协议的分层系统,所述系统中具有多个内核,将所述多个内核划分为若干组,每个组作为一个节点,为系统的第一层;所述节点与节点之间为系统的第二层;所述节点中设有节点控制器,所述节点控制器一端与所述home节点控制器连接,所述home节点控制器的另一端分别与节点目录存储器和二级高速缓存连接。
需要进一步说明的是,所述home节点控制器是基于目录的一致性协议控制电路的核心,用于接收各个节点发送过来的请求信号,通过查找目录确定目的节点,将请求信号定向地发送到目的节点。
需要说明的是,所述节点中的每个内核还连接有高速缓存控制器;
高速缓存存储模块,一端与所述内核连接,另一端与所述高速缓存控制器连接;
高速缓存目录存储器,与所述高速缓存控制器连接;
总线,与所述节点中的各个高速缓存控制器连接;
所述节点控制器的另一端与所述总线连接。
需要说明的是,所述节点控制器包括请求信号处理模块,数据写回模块,片上网络数据接口以及home节点数据接口。
需要说明的是,所述home节点控制器设有请求信号处理模块,数据写回模块以及二级高速缓存读取模块。
需要进一步说明的是,所述第一层采用共享总线架构,所述第二层采用片上互联网络架构;所述两种架构通过每个节点的节点控制器转发两种协议发出的一致性维护信号,使得两种协议之间可以相互通信,进而维护整个系统的高速缓存一致性。
一种使用分层系统实现高速缓存一致的方法,所述每个内核通过其高速缓存控制器连接到总线上,而高速缓存之间的数据交换以及维护高速缓存一致性所需要的命令都是通过总线实现传递,每个节点中都设有与所述总线连接的节点控制器,其与片上互联网络以及home节点控制器相连,用于进行节点内部与片上互联网络之间的通信,所述方法包括以下步骤:
(1)当内核向高速缓存中发出读数据请求时,高速缓存内没有内核所需要读取的数据时,就会出现读缺失的情况。此时高速缓存控制器会向总线广播读缺失信号,用来请求数据,总线上其它内核监听到此信号后,查找本地私有高速缓存确定是否拥有最新数据,如果拥有最新数据则将数据发送给请求该数据的高速缓存,所述内核再从高速缓存中读取数据。
(2)当所述内核对本地高速缓存进行读操作,本地高速缓存内没有内核所需要读取的数据,而所请求的数据副本只存在于二级的高速缓存中时,此时本地节点控制器会将请求信号转发给home节点控制器,由home节点控制器通过目录查找的方式寻找具有有效数据块的二级高速缓存,然后从该二级高速缓存中读取相应的数据,将数据打包,并根据数据请求信号的不同修改目录存储器,再由片上互联网络结点根据路由算法,将数据包发送到请求节点,所述请求节点的节点控制器接收并将数据解包后,通过所述总线发送到请求数据的高速缓存,当本地高速缓存收到最新数据后,修改数据块状态,所述内核再从高速缓存中读取数据。
(3)当所述内核对本地高速缓存进行读操作,如果所述本地高速缓存中没有对应的数据副本,而所述内核所在节点内的其它高速缓存也不具有有效的数据副本时,所述节点控制器会将请求信号通过home节点控制器转发到节点目录存储器,所述节点目录存储器将通过查找目录,确定系统中哪个节点中的内核所连接的高速缓存拥有所请求的数据副本,并通过home节点控制器将请求信号转发到所述拥有数据副本的节点中,由所述的节点控制器广播到节点内部总线上,当拥有该数据副本的高速缓存接收到此数据请求信号时,将数据通过总线发送至其所在的节点控制器,同时根据请求信号的不同修改该数据块状态,再由其所在的节点控制器将数据打包,然后经片上互联网络并根据路由算法,决定路由的方向,将数据包发送到请求节点,所述请求节点的节点控制器接收并将数据解包后,通过所述总线发送到请求数据的高速缓存,当本地高速缓存收到最新数据后,修改数据块状态,所述内核再从高速缓存中读取数据。
需要说明的是,所述节点目录存储器用于存放系统中所有内核处理器对某一数据副本的占有情况。
需要说明的是,所述节点控制器用于将其所在的节点内部总线上发出的控制信号传输至所述home节点控制器以及将home节点控制器发出的高速缓存一致性控制信号传输到其所在的节点内部总线上;同时用于将总线上的数据传输到片上互联网络以及将片上互联网络上的数据传输到其所在的节点内部总线上。
需要说明的是,当任务的执行内核与其它内核不存在数据交换以及数据共享时,只维护任务执行内核之间的高速缓存一致性。
需要说明的是,所述的共享总线架构采用总线监听一致性协议,所述的片上互联网络架构采用基于目录的一致性协议。
需要进一步说明的是,所述系统中的第一层采用传统的MESI(M:modified;E:exclusive;S:share;I:invalid)总线监听协议,并在其基础上增加了对来自节点外部一致性维护信号的处理,当内核对高速缓存进行读写操作时,根据数据副本的MESI四种状态,即M:modified;E:exclusive;S:share;I:invalid以及命中情况(包括读命中、写命中),高速缓存控制器要向总线广播不同的控制信号,同时总线上的其它内核要时刻监听总线上的控制信号以便更改本地高速缓存内数据副本的状态,同时将有效的数据副本发送到总线上,再传递至目的高速缓存,最后内核再从高速缓存中读取数据;如果有来自节点外部的请求信号时,节点控制器会将请求信号发送到总线上,而该节点内其它高速缓存监听到有效的数据副本后,会将数据副本传递给节点控制器,并反馈给请求数据的高速缓存。
本发明与现有技术相比具有以下优点:
1、本发明将两种传统一致性协议进行有效的结合,并采用了分层架构,在第一层共享总线的架构上采用总线监听一致性协议,实现简单、实时性好;第二层互联网络架构上采用基于目录的一致性协议,可扩展性强。该协议既解决了共享总线架构的总线带宽问题,又解决了基于目录的一致性协议中目录所占存储空间过大的问题,使其能够更好的适应更大规模的多内核处理器;
2、本发明在基于分层系统的混合一致性协议上采用局部高速缓存一致性,简化了读写过程,降低了对home节点的使用频率和占用时间,减少了一致性维护所需要的开销,提高了高速缓存一致性的维护效率。
附图说明
图1为本发明的混合一致性实现结构图;
图2为本发明的分层系统结构图;
图3为本发明第一层共享总线架构图;
图4为本发明第二层NoC架构图;
图5为MESI状态跳转图;
图6为本发明的数据请求信号在混合一致性读写过程示意图;
图7为本发明的数据写回过程示意图;
图8为本发明在局部高速缓存一致性模式下的读写过程示意图;
图9为本发明在混合一致性协议下目录空间减少情况;
图10为本发明在单任务和多任务下局部一致性模式性能改善情况。
具体实施方式
下面将结合附图对本发明作进一步的描述。
如图1~4所示,本发明为一种实现高速缓存一致性协议的分层系统,所述系统中具有多个内核,将所述多个内核划分为若干组,每个组作为一个节点,为系统的第一层;所述节点与节点之间为系统的第二层;所述节点中设有节点控制器,所述节点控制器一端与所述home节点控制器连接,所述home节点控制器的另一端分别与节点目录存储器和二级高速缓存连接。
需要说明的是,所述节点中的每个内核还连接有高速缓存控制器;
高速缓存存储模块,一端与所述内核连接,另一端与所述高速缓存控制器连接;
高速缓存目录存储器,与所述高速缓存控制器连接;
总线,与所述节点中的各个高速缓存控制器连接;
所述节点控制器的另一端与所述总线连接。
需要说明的是,所述节点控制器包括请求信号处理模块,数据写回模块,片上网络数据接口以及home节点数据接口。
需要说明的是,所述home节点控制器设有请求信号处理模块,数据写回模块以及二级高速缓存读取模块。
需要进一步说明的是,所述第一层采用共享总线架构,所述第二层采用片上互联网络架构;所述两种架构通过每个节点的节点控制器转发两种协议发出的一致性维护信号,使得两种协议之间可以相互通信,进而维护整个系统的高速缓存一致性。
其中图4所示,节点之间采用片上互联网络进行连接,片上互联网络结点是片上互联网络的控制核心,主要功能是根据路由算法决定数据流向,以及当有多个方向上有数据传输请求时进行传输仲裁。
如图5所示,本发明的共享总线架构采用的是MESI(M:modified;E:exclusive;S:share;I:invalid)监听协议,图中实线箭头表示内核的访存操作引起的高速缓存状态变化。
从图中可以看出,当内核向高速缓存中发出读数据请求时,高速缓存内没有内核所需要读取的数据时,就会出现读缺失的情况。此时高速缓存控制器会向总线广播读缺失信号,用来请求数据,总线上其它内核监听到此信号后,查找本地私有高速缓存确定是否拥有最新数据,如果拥有最新数据则将数据发送给请求该数据的高速缓存,并且将该数据块的状态改为S。如果所有本地高速缓存都没有该数据块的最新副本,则此请求信号将被转到下一级高速缓存或者主存当中。当本地高速缓存更新了数据副本时,如果该数据来自内核中的高速缓存,则该数据块状态为S,如果来自主存则该数据块状态为E,然后内核就可从本地高速缓存中读取相应数据。
为了更好的理解本发明,下面是状态转移的具体情况:
读命中且为M状态:M状态表明该数据块是系统中唯一正确的数据块,本地高速缓存对该数据块处于独占状态,当出现这种情况时,内核可以从本地高速缓存中直接读取数据,数据块状态不变;
读命中且为E状态:E状态表明本地高速缓存和主存中都有最新数据,当出现这种情况时,不会改变数据块的状态,内核可以从本地高速缓存中读取想要的数据;
读命中且为S状态:S状态表明在本地高速缓存以及系统其它私有高速缓存中有一个或者一个以上的私有高速缓存拥有该数据块,此时读操作并不会改变数据块的状态,内核可以直接从高速缓存中读取相应数据;
读命中且为I状态:I状态表明该数据块无效,当出现这种情况时,首先本地高速缓存控制器要向总线广播一个读命中无效信号,当系统内其它内核监听到该信号并且通过对比,查找到拥有该数据块的最新数据,则发送最新数据给请求数据的高速缓存,将数据块的状态改为S,当发出数据请求的高速缓存收到该数据块后,更新本地高速缓存对应数据块,并将数据块状态改为S;
写命中且为M状态:内核可以直接将数据写入高速缓存中对应位置,数据块状态保持不变;
写命中且为E状态:先将该数据块状态改为M,然后内核就可以将数据写入高速缓存中对应位置;
写命中且为S状态:本地高速缓存需要无效掉其它高速缓存中对应的数据块,然后高速缓存控制器向总线广播一个无效信号,无效其它高速缓存中对应的数据块,当系统内某个高速缓存监听到此信号,并且拥有有效的数据块,则首先将本地的高速缓存状态改为I,并反馈应答信号给发出请求的高速缓存,当发出无效请求的高速缓存接收到无效反馈信号后,将对应数据块的状态由S改为M,独占该数据块,然后内核就可以将数据写入本地高速缓存中对应位置;
写命中且为I状态:需要从其它高速缓存中取得最新的数据,然后才能往对应的位置写入数据,本地高速缓存控制器向总线广播写命中无效信号,当系统中其它内核监听到此信号,并且拥有有效的数据块,则将数据发送到数据请求高速缓存,将该数据块的状态改为I,当请求该数据的高速缓存收到该数据块后,更新其中对应数据块,并将该数据块的状态改为M,独占该数据块,然后内核就可以将数据写入高速缓存。
需要进一步说明的是,当节点内某一内核向高速缓存中读写数据时,高速缓存控制器中的请求发出模块根据内核的读写请求以及数据地址向高速缓存目录存储器发出查找信号,并根据高速缓存目录存储器的反馈信息来发出五种不同的请求信号:无效请求信号、读未命中请求信号、读命中但数据无效请求信号、写未命中请求信号、写命中但数据无效请求信号。当本地高速缓存对应数据块无效或读写缺失时,要向其它高速缓存请求数据,此时高速缓存控制器会将请求信号发送到总线上。
如图6所示,图中(1)表示如果请求的数据在节点内部的某个高速缓存中,节点内其它内核对应的高速缓存控制器中的请求响应模块会实时监听总线上的数据请求信号,并根据请求数据的地址查找信号,确定本地私有高速缓存是否拥有最新的数据,如果拥有最新的数据副本,则将该数据发送到共享总线上,并修改数据块的状态。
图中(2)表示内核对高速缓存读写未命中时,所请求的数据块只存在于二级的高速缓存当中,此时本地节点控制器会将请求信号转发给home节点控制器,其中的请求信号处理模块负责将总线上的请求信号转发给home节点控制器,由home节点控制器通过目录查找的方式寻找具有有效数据块的二级高速缓存。
在上述的情况下,home节点控制器从二级高速缓存中读取相应的数据,将数据打包,发送到与节点相连的缓存,并根据数据请求信号的不同修改该节点目录存储器,再由片上互联网络结点根据路由算法,传递给下一个片上互联网络结点的节点缓存,当数据包到达节点后,由目的节点控制器中的片上网络接口模块将接收到的数据包进行解包,并将包身中的数据发送到节点内部的总线上,请求数据的高速缓存中的请求接收模块会将数据写入高速缓存的存储模块,再根据MESI监听协议发出目录修改命令到高速缓存目录存储器修改数据块的状态,接下来内核再从高速缓存中读取或写入数据。
图中(3)表示当内核对高速缓存读写未命中时,所请求的最新数据存在于系统中的其它节点,此时高速缓存控制器会通过请求发出模块发出数据请求信号,这些请求信号会通过节点控制器,传输到片上互联网络架构,由home节点控制器接收节点发送过来的请求信号,通过查找节点目录存储器确定目的节点,将请求信号定向地发送到目的节点,并根据表1的情况改写目录。
表1不同请求信号下目录的改写情况
目的节点的节点控制器接收到请求信号,并将其广播到总线上,目的节点内所有高速缓存中的请求响应模块会实时监听总线上的数据请求信号,当拥有该数据块的高速缓存监听到此数据请求信号后,将数据发送到总线上,同时根据请求信号的不同修改该数据块的状态,再由节点控制器中的片上互联网络数据接口读取总线上的数据,并且根据请求节点在片上互联网络上的地址加上包头(包含了源结点、目的结点数据地址等信号),将数据打包并经片上互联网络发送到数据请求节点,该节点的节点控制器会对数据包进行解包,将数据发送到节点内部的总线上,数据请求高速缓存中的请求接收模块再将数据写入高速缓存存储模块,并根据MESI监听协议发出目录修改命令到高速缓存目录存储器修改数据块的状态,最后内核直接从高速缓存中读取或者写入数据。
在局部高速缓存一致性模式下,高速缓存一致性的维护只在节点内部各个内核以及二级高速缓存之间,由节点内部高速缓存发出的数据请求信号将不会转发到系统当中的其它节点。在该模式下,内核向本地高速缓存读写数据,当本地高速缓存中对应的数据无效时,本地高速缓存向总线发送数据请求信号,如图8所示,如果有效数据在节点内部其它高速缓存时,拥有有效数据的高速缓存监听到此数据请求后,通过节点内部总线将数据发送到请求数据的高速缓存;如果最新数据在二级高速缓存中时,数据请求信号通过节点控制器被转发到home节点控制器,home节点控制器从二级高速缓存中读取相应的数据到节点控制器,再由节点控制器通过总线发送到请求数据的高速缓存。
根据MESI监听协议,如果最新的数据块为M态,则将该高速缓存中的数据块状态改为S态;如果最新的数据块为S态,则该高速缓存中的数据块状态不变;如果最新的数据块为E态,则将该高数缓存中的数据块状态改为S态。本地高速缓存所请求的数据通过总线传递过来时,数据接收模块负责接收数据并将数据交给替换处理模块,然后高速缓存控制器中的替换处理模块会根据高速缓存器中被替换的数据块的状态来决定是否将被替换的数据块进行写回操作,如果该数据块的状态为M态,是系统中的唯一正确的数据,则需要进行写回操作。
进一步的,如图7所示,需要写回的数据由高速缓存通过总线发送到节点控制器,再由节点控制器发送到home节点控制器,由home节点控制器写入二级高速缓存,同时修改目录存储为只有二级高速缓存中拥有该数据块,最后将得到的最新数据写入高速缓存的存储模块。
本发明的效果通过以下理论分析和仿真结果进一步说明:
1、理论分析
在混合一致性协议中,节点目录所存储的信息是每个节点对数据块的占有情况,而传统的基于目录的一致性协议当中目录所存储的信息是每个内核对数据块的占有情况。设总的内核数量为M,每个节点拥有的内核数量为N,每个高速缓存块的大小为S,主存大小为A,则在传统的基于目录的高速缓存一致性协议中目录所占空间为:
A/S·(M+1)
在混合一致性协议中节点目录所占空间为:
A/S·(M/N+1)
混合一致性协议中目录所占空间与传统协议中目录所占空间的比例为:
A/S·(M/N+1)A/S·(M+1)≈1N]]>
因此在采用混合一致性协议后,节点目录所占的空间将会降为原来的。如图9所示,可以看出随着节点内部内核数量的增加,节点目录所占空间的比例有了大幅的下降,当处理器核心的数量非常大时,每个节点内部就可以拥有相对较多的内核,这种情况下节点目录所占空间的比例将会有极大的降低。以本设计中的16核架构为例,共拥有4个节点,每个节点包含4个内核,节点目录存储所占空间的比例将会减少为原来的25%。混合一致性协议很好的解决了基于目录的一致性协议中目录所占空间过大的问题。节点目录所占空间的减少将会降低处理器中存储所占的面积,使得多内核处理器所能承担的内核数量得到增加。
2、仿真实验
本发明在对采用混合一致性协议的高速缓存电路进行测试时,采用的是16核架构,并且使用的是Altera公司的嵌入式内核Nios II。在16核测试电路中,将16个Nios II内核分为4个节点,每个节点内包含4个内核,内核之间采用总线相连接。各个节点之间的数据通过片上互联网络来进行传输,每个节点通过节点控制器与home节点控制器相连接。
为了测试高速缓存性能,将所设计电路烧写到FPGA(现场可编程门阵列)中进行验证测试,并编写FFT(快速傅立叶变换,一种数字信号处理快速算法)以及LU(LU是矩阵分解的一种,可以将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积)并行算法程序进行测试。当系统只运行单个任务的情况下,测试采用局部一致性模式时高速缓存性能的改善情况,在测试中采用的是1024点的FFT算法以及512阶矩阵的LU分解算法。如图10所示,其中图10中的(a)说明了当使用系统中12个内核(即3个节点的资源)、8个内核(即2个节点的资源)以及4个内核(即一个节点的资源)来完成两种算法时,使用局部一致性模式相对于全局一致性模式在执行时间上的改善情况。随着使用的内核数量的降低,局部一致性模式对高速缓存性能的改善情况不断提高,尤其是当在采用一个节点资源来执行任务的情况下这种改善将会达到10%以上。这充分说明:当系统处于相对空闲的状态下,采用局部一致性模式,可以大大的减小系统维护高速缓存一致性所带来的开销。
为了测试在采用局部高速缓存一致性模式下,高速缓存系统在执行并行任务时高速缓存性能的改善情况,将1024点FFT算法与512阶矩阵的LU分解算法同时在系统中运行。图10中的(b)说明了两种并行模式下,采用局部一致性模式相比于全局一致性模式的改善情况。第一种并行模式采用的是16核架构中的8个内核(即两个节点的资源)执行FFT算法,另外8个内核执行LU分解算法。第二种并行模式采用的是4个内核(即一个节点的资源)执行FFT算法,4个内核执行LU分解算法,另外8个内核处于空闲状态。从图中可以看出在采用了局部一致性模式以后算法的执行时间缩短,高速缓存的性能得到了提高。这是由于局部一致性模式的使用减少了两个任务之间的干扰,降低了home节点的使用频率,从而提高了高速缓存一致性的维护效率,降低算法执行时间。
于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。
Claims (9)
1.一种实现高速缓存一致性协议的分层系统,所述系统中具有多个内核,其特征在于,将所述多个内核划分为若干组,每个组作为一个节点,为系统的第一层;所述节点与节点之间为系统的第二层;所述节点中设有节点控制器,所述节点控制器一端与home节点控制器的一端连接,所述home节点控制器的另一端分别与节点目录存储器和二级高级缓存连接;所述节点中的每个内核都会有各自的高速缓存控制器、高速缓存存储模块以及高速缓存目录存储器,并且每个内核会与各自的高速缓存控制器相连接;高速缓存存储模块,一端与其匹配的内核连接,另一端与所述的高速缓存控制器连接;高速缓存目录存储器,与其匹配的高速缓存控制器连接;总线,与所述节点中的各个高速缓存控制器连接;所述节点控制器的另一端与所述总线连接。
2.根据权利要求1所述的分层系统,其特征在于,所述节点控制器包括请求信号处理模块,数据写回模块,片上网络数据接口以及home节点数据接口。
3.根据权利要求1所述的分层系统,其特征在于,所述home节点控制器设有请求信号处理模块,数据写回模块以及二级高速缓存读取模块。
4.根据权利要求1所述的分层系统,其特征在于,所述第一层采用共享总线架构,所述第二层采用片上互联网络架构;所述两种架构通过每个节点的节点控制器转发两种协议发出的一致性维护信号,使得两种协议之间可以相互通信,进而维护整个系统的高速缓存一致性。
5.一种使用权利要求1所述的分层系统实现高速缓存一致性的方法,其特征在于,所述每个内核通过其高速缓存控制器连接到总线上,而高速缓存之间的数据交换以及维护高速缓存一致性所需要的命令都是通过总线实现传递,每个节点中都设有与所述总线连接的节点控制器,其与片上互联网络以及home节点控制器相连,用于进行节点内部与片上互联网络之间的通信,所述方法包括以下步骤:
(1)当内核向高速缓存中发出读数据请求时,高速缓存内没有内核所需要读取的数据时,就会出现读缺失的情况;此时高速缓存控制器会向总线广播读缺失信号,用来请求数据,总线上其它内核监听到此信号后,查找本地私有高速缓存确定是否拥有最新数据,如果拥有最新数据则将数据发送给请求该数据的高速缓存控制器,该高速缓存控制器再将接收到的最新数据写入到高速缓存存储模块中,所述内核再从高速缓存中读取数据;
(2)当所述内核对本地高速缓存进行写操作,要向系统中其它的高速缓存或者二级高速缓存请求数据,如果所述本地高速缓存中没有对应的数据副本,而所述内核所在节点内的其它高速缓存也不具有有效的数据副本时,所述节点控制器会将请求信号通过home节点控制器转发到节点目录存储器,所述节点目录存储器将通过查找目录,确定系统中哪个节点中的内核所连接的高速缓存拥有所请求的数据副本,并通过home节点控制器将请求信号转发到所述拥有数据副本的节点中,由所述的节点控制器广播到节点内部总线上,当拥有该数据副本的高速缓存接收到此数据请求信号时,将数据通过总线发送至其所在的节点控制器,同时根据请求信号的不同修改该数据副本状态,再由其所在的节点控制器将数据打包,然后经片上互联网络根据路由算法,决定路由的方向,将数据包发送到请求节点,所述请求节点的节点控制器接收并将数据解包后,通过所述总线发送到数据请求高速缓存,当本地高速缓存收到最新数据后,修改数据副本状态,所述内核再通过高速缓存控制器将数据副本写入高速缓存存储模块。
6.根据权利要求5所述的实现高速缓存一致性的方法,其特征在于,所述节点目录存储器用于存放系统中所有内核对某一数据副本的占有情况。
7.根据权利要求5所述的实现高速缓存一致性的方法,其特征在于,所述节点控制器用于将其所在的节点内部总线上发出的控制信号传输至所述home节点控制器以及将home节点控制器发出的高速缓存一致性控制信号传输到其所在的节点内部总线上;同时用于将总线上的数据传输到片上互联网络以及将片上互联网络上的数据传输到其所在的节点内部总线上。
8.根据权利要求5所述的实现高速缓存一致性的方法,其特征在于,当任务的执行内核与其它内核不存在数据交换以及数据共享时,只维护任务执行内核之间的高速缓存一致性。
9.根据权利要求5所述的实现高速缓存一致性的方法,其特征在于,所述第一层采用共享总线架构,所述第二层采用片上互联网络架构,所述的共享总线架构采用总线监听一致性协议,所述的片上互联网络架构采用基于目录的一致性协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385812.8A CN103440223B (zh) | 2013-08-29 | 2013-08-29 | 一种实现高速缓存一致性协议的分层系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385812.8A CN103440223B (zh) | 2013-08-29 | 2013-08-29 | 一种实现高速缓存一致性协议的分层系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440223A CN103440223A (zh) | 2013-12-11 |
CN103440223B true CN103440223B (zh) | 2017-04-05 |
Family
ID=49693915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310385812.8A Expired - Fee Related CN103440223B (zh) | 2013-08-29 | 2013-08-29 | 一种实现高速缓存一致性协议的分层系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440223B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986664B (zh) * | 2014-05-15 | 2017-06-27 | 厦门大学 | 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法 |
CN104239270A (zh) * | 2014-07-25 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓存同步的方法及装置 |
CN104281495B (zh) * | 2014-10-13 | 2017-04-26 | 湖南农业大学 | 多核处理器共享高速缓存任务调度方法 |
CN104360981B (zh) * | 2014-11-12 | 2017-09-29 | 浪潮(北京)电子信息产业有限公司 | 面向多核多处理器平台的Cache一致性协议的设计方法 |
WO2016149880A1 (zh) | 2015-03-20 | 2016-09-29 | 华为技术有限公司 | 数据读取方法、设备和系统 |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
CN105068786B (zh) * | 2015-07-30 | 2018-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105488012B (zh) * | 2015-12-09 | 2021-05-18 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN107894914A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 缓存一致性处理方法和装置 |
CN109062613B (zh) | 2018-06-01 | 2020-08-28 | 杭州中天微系统有限公司 | 多核互联二级缓存访问验证方法 |
CN110049104A (zh) * | 2019-03-15 | 2019-07-23 | 佛山市顺德区中山大学研究院 | 基于分层片上互连网络的混合缓存方法、系统及存储介质 |
CN117170986B (zh) * | 2023-11-03 | 2024-02-06 | 北京微核芯科技有限公司 | 芯片一致性处理系统,及其方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008533564A (ja) * | 2005-02-24 | 2008-08-21 | ゼラウンド システムズ リミテッド | データ管理のための方法および装置 |
-
2013
- 2013-08-29 CN CN201310385812.8A patent/CN103440223B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103440223A (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440223B (zh) | 一种实现高速缓存一致性协议的分层系统及其方法 | |
US11908546B2 (en) | In-memory lightweight memory coherence protocol | |
US10824565B2 (en) | Configuration based cache coherency protocol selection | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
DE69616402T2 (de) | Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem | |
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
CN101359310B (zh) | 在多个核-高速缓存簇中提供内含共享高速缓存 | |
US7395379B2 (en) | Methods and apparatus for responding to a request cluster | |
US20160147662A1 (en) | Nested cache coherency protocol in a tiered multi-node computer system | |
JPH11134312A (ja) | 分散共有メモリ多重プロセッサシステム | |
US7818509B2 (en) | Combined response cancellation for load command | |
JP3686221B2 (ja) | キャッシュ・コヒーレンシを維持するためのコンピュータ・システム | |
KR20000052493A (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
US6950913B2 (en) | Methods and apparatus for multiple cluster locking | |
US20040088492A1 (en) | Methods and apparatus for managing probe requests | |
US9542317B2 (en) | System and a method for data processing with management of a cache consistency in a network of processors with cache memories | |
US7653790B2 (en) | Methods and apparatus for responding to a request cluster | |
KR100257993B1 (ko) | 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법 | |
CN109840216A (zh) | 针对高速缓存的数据处理方法及相关元件、设备、系统 | |
US7249224B2 (en) | Methods and apparatus for providing early responses from a remote data cache | |
CN110049104A (zh) | 基于分层片上互连网络的混合缓存方法、系统及存储介质 | |
US7346744B1 (en) | Methods and apparatus for maintaining remote cluster state information | |
US20040117559A1 (en) | Methods and apparatus for canceling a memory data fetch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 Termination date: 20170829 |
|
CF01 | Termination of patent right due to non-payment of annual fee |