一种高速缓存同步的方法及装置制造方法

文档序号:6621386阅读:158来源:国知局
一种高速缓存同步的方法及装置制造方法
【专利摘要】本发明提供一种高速缓存同步的方法及装置,该方法包括:将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内各指定一个处理器核为本分区的代表节点;在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录;当所述分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。本发明将多核、多处理器系统的处理器资源进行分区管理,分区内的处理器核依据源监听协议方法进行高速缓存一致性维护,分区之间依据宿主监听协议方法进行高速缓存内容一致性维护。
【专利说明】一种高速缓存同步的方法及装置

【技术领域】
[0001]本发明涉及计算机体系领域,特别是涉及一种高速缓存同步的方法及装置。

【背景技术】
[0002]由于制造工艺、能耗以及漏电限制,单处理器设计在本世纪初遭遇到了时钟频率墙(frequency wall),通过提升处理器主频来提升处理器性能变得越来越困难,代价越来越高。因此,处理器厂商提出了多核、多处理器来迎合高性能及嵌入式计算群体。
[0003]多核、多处理器系统中的高速缓存一致性问题是困扰系统结构设计人员的主要问题。一方面,高速缓存内容的一致性直接关系着系统运行的正确性,使用“过时”的数据将导致计算机产生错误的运算结果,甚至导致系统崩溃。另一方面,数据的快速获取与同步对于系统高效运行直观重要。由于处理器主频不断提升,系统集成的处理器核数越来越大,多核、多处理器系统的计算性能急剧增强,但是存储系统的性能却未成比例增加,因此,数据访问速度称为制约系统性能的“瓶颈”,“低速”的存储访问极大的影响了系统的效率和吞吐量。高速缓存正是填补二者性能差异的有效手段,因此,保证高速缓存高效的工作是设计高性能计算机系统的重要内容。高速缓存一致性同步方法的高效实现是保证高速缓存正常工作的基础,也是为处理器快速提供正确数据的关键。
[0004]传统的Cache (高速缓存)一致性同步方法主要包括源监听(source snooping)及宿主监听(home snooping)两种。在源监听方法中,当一个处理器核(称为缓存代理(Caching Agent,简称CA))需要访问数据而该数据不在本地高速缓存中或处于冲突状态时,需向系统中所有其它的CA广播监听消息,其它CA收到该消息会检查自己的本地高速缓存并据此做出应答。这种同步方法的优点在于消息传递延迟小,每次消息传递只需要经过两跳即可返回结果。其缺点是拓展性差,当系统包含的处理器数目达到一定规模后,用于维护高速缓存一致性的广播消息将使得总线拥塞不堪,系统性能急剧下降。为此,研究人员提出了另一种高速缓存一致性同步方式一home监听方式。在基于home监听方式的系统中,所有CA发送的请求被送往home代理(通常为存储器),home代理适用一个“目录”记录Cache行的共享信息,并依据目录的内容给相关的CA发送(请求数据或同步)消息,满足要求的CA根据消息作出应答并提供数据。这种同步方式的优势在于减少高速缓存同步消息的广播,降低总线负载,拓展性较好,能够适应大规模系统的需求。缺点是当系统规模较小时,效率不及source监听方式,数据访问需要经过三跳,延迟较大。


【发明内容】

[0005]本发明要解决的技术问题是提供一种高速缓存同步的方法及装置,以缓解单纯使用source监听带来的消息风暴问题。
[0006]为了解决上述技术问题,本发明提供了一种高速缓存同步的方法,应用于多处理器的计算机系统,包括:
[0007]将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点;
[0008]在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录;
[0009]当所述分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。
[0010]进一步地,上述方法还具有下面特点:所述由宿主代理节点采用宿主监听进行同步的过程中包括:
[0011]所述宿主代理节点接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。
[0012]进一步地,上述方法还具有下面特点:所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听的过程中包括:
[0013]存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据请求消息;
[0014]该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。
[0015]进一步地,上述方法还具有下面特点:将所述多处理器的计算机系统中的处理器分为两个以上的分区,包括:
[0016]将位于同一套接口中的多个处理器划入同一分区。
[0017]进一步地,上述方法还具有下面特点:
[0018]所述每个分区内的处理器核小于或等于16个。
[0019]为了解决上述问题,本发明还提供了一种高速缓存同步的装置,应用于多处理器的计算机系统,其中,包括:
[0020]多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点;
[0021]所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点;
[0022]所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步;
[0023]所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点,则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。
[0024]进一步地,上述装置还具有下面特点:
[0025]所述宿主代理节点,采用宿主监听进行同步的过程中包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。
[0026]进一步地,上述装置还具有下面特点:
[0027]所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息;
[0028]该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。
[0029]进一步地,上述装置还具有下面特点:
[0030]位于同一套接口中的多个处理器划入同一分区。
[0031]进一步地,上述装置还具有下面特点:
[0032]每个分区内的处理器核小于或等于16个。
[0033]综上,本发明提供一种高速缓存同步的方法及装置,将多核、多处理器系统的处理器资源进行分区管理,分区内的处理器核依据源监听协议方法进行高速缓存一致性维护,分区之间依据宿主监听协议方法进行高速缓存内容一致性维护。既可缓解单纯使用source监听带来的消息风暴问题,亦可降低数据访问的延迟。

【专利附图】

【附图说明】
[0034]图1为本发明实施例的高速缓存同步的方法的流程图。
[0035]图2为本发明实施例的对处理器资源分区管理的示意图。
[0036]图3为本发明实施例一的高速缓存同步的方法的示意图。
[0037]图4为本发明实施例二的高速缓存同步的方法的示意图。

【具体实施方式】
[0038]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0039]图1为本发明实施例的高速缓存同步的方法的流程图,如图1所示,可以包括以下步骤:
[0040]步骤11、将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点;
[0041]步骤12、在宿主代理节点处建立用于存储高速缓存行的分区位置及共享信息的目录;
[0042]步骤13、当分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。
[0043]本发明实施例提出的高速缓存同步方法,应用于多核、多处理器系统高速缓存一致性维护,具有延迟小,拓展性好,目录开销小等优点,能够同时满足小型系统对访问延迟的要求及大型系统对拓展性的要求。
[0044]本发明实施例按照系统物理拓扑情况将处理器资源分成若干个分区,为每个分区选定一个代表节点,由该节点负责分区内的处理器与分区外处理器的消息传递。在分区内,处理器间通过广播传递请求,一旦请求无法满足,则由代表节点向home代理节点发送请求,home代理节点负责转发请求及更新目录项。
[0045]为了降低目录的容量,home代理节点处目录仅仅记载Cache行在各个分区的状态,而不具体至某个分区内的处理器。一定程度上缓解了数据访问延迟与系统拓展性的矛盾关系,充分利用了小范围内广播低延迟以及home监听易于拓展的特性。目录仅仅记录Cache行在分区级别的共享情况,从而缓解了传统目录实现方法导致目录占用空间过大的问题。
[0046]在本实施例的方法中,为了降低全局目录的开销及减小相邻处理器节点的高速缓存数据传输及消息传递延迟,将处理器资源按照物理拓扑分布的“亲疏”分为不同的分区。通常位于同一 socket (套接口)中的处理器划入同一分区。在系统规模一定时,分区的大小直接决定目录项的大小,分区越大,目录项越小,反之亦然。一般而言,当系统规模较大时,分区的大小可适度较大,但是也不宜过大,一般不超过16个处理器核。这是因为如果分区过大,分区内消息广播过于频繁,导致总线负载过大,使得数据请求得不到及时响应,从而不利于系统性能。
[0047]图1所示的系统包括16个处理器核,被划分为4个分区,每4个处理器节点被划分为一个分区。每个分区中的一个处理器节点(即处理器核)(Caching Agent,简称CA)被指定为代表节点(Representative Node,简称RN)。
[0048]在Home代理(home agent)节点处,同样需要建立一个目录结构用于存储高速缓存行的位置及共享信息。与传统不同之处在于,每个目录项包含的位置向量的每一位不再与每个处理器一一对应,而是与每个分区对应。对于图1所示的系统,如果使用传统的全映射目录,需要16位来记录每个高速缓存行的位置及共享信息,如果该行在某个处理器节点存在,则将相应的位置1,否则置O。相反,如果使用本发明实施例的方法,则只需4位即可,假设某个分区中的一个或多个处理器节点具有该高速缓存的拷贝,则将其对应位置1,否则置O。可见,对于一个包含16个处理器节点的系统,每个目录项可节省12位,假若系统高速缓存包含IM个Cache行,则使用分区管理方法可节约12M的目录空间。
[0049]图2为本发明实施例一的高速缓存同步的方法的示意图,本实施例中,处理器节点数据请求在同一分区其它节点中命中的过程,包括如下步骤:
[0050]步骤101:当分区O内的节点CAl访问高速缓存行X发生缺失时,其向分区内的其它CA (本例中为CAO、CA2及CA3)广播消息,请求包含X合法拷贝的节点提供数据;
[0051]步骤102:同一分区内的其它CA(本例中为分区O内的CA0、CA2及CA3)接收到该请求后,检查本地高速缓存是否存在目标行X。由于CA3存在X的拷贝,因此,其向CAl发送X的拷贝,同时向代表节点RN(本例中为CA0)发送数据请求确认消息,告知RN高速缓存行请求在分区内满足。RN收到该消息后,不向home代理发送请求。高速缓存行请求过程结束。
[0052]图3为本发明实施例二的高速缓存同步的方法的示意图,本实施例中,处理器节点数据请求在不同分区其它节点命中的过程,其步骤如下:
[0053]步骤201:当分区O内的节点CAl访问高速缓存行X发生缺失时,其向分区内的其它CA (本例中为CAO、CA2及CA3)广播消息,请求包含X合法拷贝的节点提供数据;
[0054]步骤202:同一分区内的其它CA (本例中为分区O内的CA0、CA2及CA3)接收到该请求后,检查本地高速缓存是否存在目标行X。结果显示,分区O内的其它CA均不存在X的拷贝,高速缓存行请求在本分区中缺失。分区O内的其它CA向CAO发送不存在X的拷贝的消息。
[0055]步骤203:分区O的代表节点CAO向home代理节点转发高速缓存行X请求消息;
[0056]步骤204:home代理节点接收到该消息后查找目录,发现X对应的共享信息位为0010,即分区2包含X的数据拷贝,因此home代理节点向分区2的代表节点的数据请求消息,分区2的代表节点向本分区内的CA发送snoop广播消息;
[0057]步骤205:分区2内的CA接收至该snoop消息后,查找本地高速缓存,查找结果显示,CAl包含X的拷贝。CAl向分区O的CAl发送数据应答消息,同时向home代理节点发送消息表示高速缓存行请求完成。Home代理节点接收到该消息后更新目录中X对应的分区共享信息。
[0058]本发明实施例还提供一种高速缓存同步的装置,应用于多处理器的计算机系统,其中,包括:
[0059]多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点;
[0060]所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点;
[0061]所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步;
[0062]所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点,则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。
[0063]其中,所述宿主代理节点,采用宿主监听进行同步的过程中可以包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。
[0064]其中,所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息;
[0065]该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。
[0066]本实施例中,可以将位于同一套接口中的多个处理器划入同一分区,每个分区内的处理器核小于或等于16个。
[0067]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0068]以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种高速缓存同步的方法,应用于多处理器的计算机系统,包括: 将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点; 在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录; 当所述分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。
2.如权利要求1所述的方法,其特征在于,所述由宿主代理节点采用宿主监听进行同步的过程中包括: 所述宿主代理节点接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。
3.如权利要求2所述的方法,其特征在于,所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听的过程中包括: 存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据请求消息; 该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。
4.如权利要求1所述的方法,其特征在于,将所述多处理器的计算机系统中的处理器分为两个以上的分区,包括: 将位于同一套接口中的多个处理器划入同一分区。
5.如权利要求1-4任一项所述的方法,其特征在于, 所述每个分区内的处理器核小于或等于16个。
6.一种高速缓存同步的装置,应用于多处理器的计算机系统,其特征在于,包括: 多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点; 所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点; 所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步; 所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点,则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。
7.如权利要求6所述的装置,其特征在于, 所述宿主代理节点,采用宿主监听进行同步的过程中包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。
8.如权利要求7所述的装置,其特征在于, 所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息; 该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。
9.如权利要求6所述的装置,其特征在于, 位于同一套接口中的多个处理器划入同一分区。
10.如权利要求6-9任一项所述的装置,其特征在于, 每个分区内的处理器核小于或等于16个。
【文档编号】G06F12/08GK104239270SQ201410360196
【公开日】2014年12月24日 申请日期:2014年7月25日 优先权日:2014年7月25日
【发明者】陈继承, 倪璠, 王洪伟 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1