一种高速缓存同步的方法及装置.pdf

上传人:62****3 文档编号:4705489 上传时间:2018-10-28 格式:PDF 页数:11 大小:1.58MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410360196.5

申请日:

2014.07.25

公开号:

CN104239270A

公开日:

2014.12.24

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 15/16申请公布日:20141224|||实质审查的生效IPC(主分类):G06F 15/16申请日:20140725|||公开

IPC分类号:

G06F15/16; G06F9/52; G06F12/08

主分类号:

G06F15/16

申请人:

浪潮(北京)电子信息产业有限公司

发明人:

陈继承; 倪璠; 王洪伟

地址:

100085 北京市海淀区上地信息路2号2-1号C栋1层

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司 11262

代理人:

王丹;李丹

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书
1.  一种高速缓存同步的方法,应用于多处理器的计算机系统,包括:
将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点;
在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录;
当所述分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。

2.  如权利要求1所述的方法,其特征在于,所述由宿主代理节点采用宿主监听进行同步的过程中包括:
所述宿主代理节点接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。

3.  如权利要求2所述的方法,其特征在于,所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听的过程中包括:
存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据请求消息;
该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。

4.  如权利要求1所述的方法,其特征在于,将所述多处理器的计算机系统中的处理器分为两个以上的分区,包括:
将位于同一套接口中的多个处理器划入同一分区。

5.  如权利要求1-4任一项所述的方法,其特征在于,
所述每个分区内的处理器核小于或等于16个。

6.  一种高速缓存同步的装置,应用于多处理器的计算机系统,其特征在于,包括:
多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点;
所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点;
所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步;
所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点,则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。

7.  如权利要求6所述的装置,其特征在于,
所述宿主代理节点,采用宿主监听进行同步的过程中包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。

8.  如权利要求7所述的装置,其特征在于,
所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息;
该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓 存行请求完成消息。

9.  如权利要求6所述的装置,其特征在于,
位于同一套接口中的多个处理器划入同一分区。

10.  如权利要求6-9任一项所述的装置,其特征在于,
每个分区内的处理器核小于或等于16个。

说明书

说明书一种高速缓存同步的方法及装置
技术领域
本发明涉及计算机体系领域,特别是涉及一种高速缓存同步的方法及装置。 
背景技术
由于制造工艺、能耗以及漏电限制,单处理器设计在本世纪初遭遇到了时钟频率墙(frequency wall),通过提升处理器主频来提升处理器性能变得越来越困难,代价越来越高。因此,处理器厂商提出了多核、多处理器来迎合高性能及嵌入式计算群体。 
多核、多处理器系统中的高速缓存一致性问题是困扰系统结构设计人员的主要问题。一方面,高速缓存内容的一致性直接关系着系统运行的正确性,使用“过时”的数据将导致计算机产生错误的运算结果,甚至导致系统崩溃。另一方面,数据的快速获取与同步对于系统高效运行直观重要。由于处理器主频不断提升,系统集成的处理器核数越来越大,多核、多处理器系统的计算性能急剧增强,但是存储系统的性能却未成比例增加,因此,数据访问速度称为制约系统性能的“瓶颈”,“低速”的存储访问极大的影响了系统的效率和吞吐量。高速缓存正是填补二者性能差异的有效手段,因此,保证高速缓存高效的工作是设计高性能计算机系统的重要内容。高速缓存一致性同步方法的高效实现是保证高速缓存正常工作的基础,也是为处理器快速提供正确数据的关键。 
传统的Cache(高速缓存)一致性同步方法主要包括源监听(source snooping)及宿主监听(home snooping)两种。在源监听方法中,当一个处理器核(称为缓存代理(Caching Agent,简称CA))需要访问数据而该数据不在本地高速缓存中或处于冲突状态时,需向系统中所有其它的CA广播 监听消息,其它CA收到该消息会检查自己的本地高速缓存并据此做出应答。这种同步方法的优点在于消息传递延迟小,每次消息传递只需要经过两跳即可返回结果。其缺点是拓展性差,当系统包含的处理器数目达到一定规模后,用于维护高速缓存一致性的广播消息将使得总线拥塞不堪,系统性能急剧下降。为此,研究人员提出了另一种高速缓存一致性同步方式——home监听方式。在基于home监听方式的系统中,所有CA发送的请求被送往home代理(通常为存储器),home代理适用一个“目录”记录Cache行的共享信息,并依据目录的内容给相关的CA发送(请求数据或同步)消息,满足要求的CA根据消息作出应答并提供数据。这种同步方式的优势在于减少高速缓存同步消息的广播,降低总线负载,拓展性较好,能够适应大规模系统的需求。缺点是当系统规模较小时,效率不及source监听方式,数据访问需要经过三跳,延迟较大。 
发明内容
本发明要解决的技术问题是提供一种高速缓存同步的方法及装置,以缓解单纯使用source监听带来的消息风暴问题。 
为了解决上述技术问题,本发明提供了一种高速缓存同步的方法,应用于多处理器的计算机系统,包括: 
将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点; 
在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录; 
当所述分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。 
进一步地,上述方法还具有下面特点:所述由宿主代理节点采用宿主监 听进行同步的过程中包括: 
所述宿主代理节点接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。 
进一步地,上述方法还具有下面特点:所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听的过程中包括: 
存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据请求消息; 
该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 
进一步地,上述方法还具有下面特点:将所述多处理器的计算机系统中的处理器分为两个以上的分区,包括: 
将位于同一套接口中的多个处理器划入同一分区。 
进一步地,上述方法还具有下面特点: 
所述每个分区内的处理器核小于或等于16个。 
为了解决上述问题,本发明还提供了一种高速缓存同步的装置,应用于多处理器的计算机系统,其中,包括: 
多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点; 
所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点; 
所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步; 
所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点, 则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。 
进一步地,上述装置还具有下面特点: 
所述宿主代理节点,采用宿主监听进行同步的过程中包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。 
进一步地,上述装置还具有下面特点: 
所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息; 
该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 
进一步地,上述装置还具有下面特点: 
位于同一套接口中的多个处理器划入同一分区。 
进一步地,上述装置还具有下面特点: 
每个分区内的处理器核小于或等于16个。 
综上,本发明提供一种高速缓存同步的方法及装置,将多核、多处理器系统的处理器资源进行分区管理,分区内的处理器核依据源监听协议方法进行高速缓存一致性维护,分区之间依据宿主监听协议方法进行高速缓存内容一致性维护。既可缓解单纯使用source监听带来的消息风暴问题,亦可降低数据访问的延迟。 
附图说明
图1为本发明实施例的高速缓存同步的方法的流程图。 
图2为本发明实施例的对处理器资源分区管理的示意图。 
图3为本发明实施例一的高速缓存同步的方法的示意图。 
图4为本发明实施例二的高速缓存同步的方法的示意图。 
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。 
图1为本发明实施例的高速缓存同步的方法的流程图,如图1所示,可以包括以下步骤: 
步骤11、将所述多处理器的计算机系统中的处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,所述处理器包括一个或多个处理器核,每个分区内各指定一个处理器核为本分区的代表节点; 
步骤12、在宿主代理节点处建立用于存储高速缓存行的分区位置及共享信息的目录; 
步骤13、当分区内的任一处理器核访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,则由本分区的代表节点向所述宿主代理节点发送数据请求,由所述宿主代理节点采用宿主监听进行同步。 
本发明实施例提出的高速缓存同步方法,应用于多核、多处理器系统高速缓存一致性维护,具有延迟小,拓展性好,目录开销小等优点,能够同时满足小型系统对访问延迟的要求及大型系统对拓展性的要求。 
本发明实施例按照系统物理拓扑情况将处理器资源分成若干个分区,为每个分区选定一个代表节点,由该节点负责分区内的处理器与分区外处理器的消息传递。在分区内,处理器间通过广播传递请求,一旦请求无法满足,则由代表节点向home代理节点发送请求,home代理节点负责转发请求及更 新目录项。 
为了降低目录的容量,home代理节点处目录仅仅记载Cache行在各个分区的状态,而不具体至某个分区内的处理器。一定程度上缓解了数据访问延迟与系统拓展性的矛盾关系,充分利用了小范围内广播低延迟以及home监听易于拓展的特性。目录仅仅记录Cache行在分区级别的共享情况,从而缓解了传统目录实现方法导致目录占用空间过大的问题。 
在本实施例的方法中,为了降低全局目录的开销及减小相邻处理器节点的高速缓存数据传输及消息传递延迟,将处理器资源按照物理拓扑分布的“亲疏”分为不同的分区。通常位于同一socket(套接口)中的处理器划入同一分区。在系统规模一定时,分区的大小直接决定目录项的大小,分区越大,目录项越小,反之亦然。一般而言,当系统规模较大时,分区的大小可适度较大,但是也不宜过大,一般不超过16个处理器核。这是因为如果分区过大,分区内消息广播过于频繁,导致总线负载过大,使得数据请求得不到及时响应,从而不利于系统性能。 
图1所示的系统包括16个处理器核,被划分为4个分区,每4个处理器节点被划分为一个分区。每个分区中的一个处理器节点(即处理器核)(Caching Agent,简称CA)被指定为代表节点(Representative Node,简称RN)。 
在Home代理(home agent)节点处,同样需要建立一个目录结构用于存储高速缓存行的位置及共享信息。与传统不同之处在于,每个目录项包含的位置向量的每一位不再与每个处理器一一对应,而是与每个分区对应。对于图1所示的系统,如果使用传统的全映射目录,需要16位来记录每个高速缓存行的位置及共享信息,如果该行在某个处理器节点存在,则将相应的位置1,否则置0。相反,如果使用本发明实施例的方法,则只需4位即可,假设某个分区中的一个或多个处理器节点具有该高速缓存的拷贝,则将其对应位置1,否则置0。可见,对于一个包含16个处理器节点的系统,每个目录项可节省12位,假若系统高速缓存包含1M个Cache行,则使用分区管理方法可节约12M的目录空间。 
图2为本发明实施例一的高速缓存同步的方法的示意图,本实施例中,处理器节点数据请求在同一分区其它节点中命中的过程,包括如下步骤: 
步骤101:当分区0内的节点CA1访问高速缓存行X发生缺失时,其向分区内的其它CA(本例中为CA0、CA2及CA3)广播消息,请求包含X合法拷贝的节点提供数据; 
步骤102:同一分区内的其它CA(本例中为分区0内的CA0、CA2及CA3)接收到该请求后,检查本地高速缓存是否存在目标行X。由于CA3存在X的拷贝,因此,其向CA1发送X的拷贝,同时向代表节点RN(本例中为CA0)发送数据请求确认消息,告知RN高速缓存行请求在分区内满足。RN收到该消息后,不向home代理发送请求。高速缓存行请求过程结束。 
图3为本发明实施例二的高速缓存同步的方法的示意图,本实施例中,处理器节点数据请求在不同分区其它节点命中的过程,其步骤如下: 
步骤201:当分区0内的节点CA1访问高速缓存行X发生缺失时,其向分区内的其它CA(本例中为CA0、CA2及CA3)广播消息,请求包含X合法拷贝的节点提供数据; 
步骤202:同一分区内的其它CA(本例中为分区0内的CA0、CA2及CA3)接收到该请求后,检查本地高速缓存是否存在目标行X。结果显示,分区0内的其它CA均不存在X的拷贝,高速缓存行请求在本分区中缺失。分区0内的其它CA向CA0发送不存在X的拷贝的消息。 
步骤203:分区0的代表节点CA0向home代理节点转发高速缓存行X请求消息; 
步骤204:home代理节点接收到该消息后查找目录,发现X对应的共享信息位为0010,即分区2包含X的数据拷贝,因此home代理节点向分区2的代表节点的数据请求消息,分区2的代表节点向本分区内的CA发送snoop广播消息; 
步骤205:分区2内的CA接收至该snoop消息后,查找本地高速缓存,查找结果显示,CA1包含X的拷贝。CA1向分区0的CA1发送数据应答消息,同时向home代理节点发送消息表示高速缓存行请求完成。Home代理节 点接收到该消息后更新目录中X对应的分区共享信息。 
本发明实施例还提供一种高速缓存同步的装置,应用于多处理器的计算机系统,其中,包括: 
多个处理器,所述处理器包括一个或多个处理器核;宿主代理节点; 
所述多个处理器划分为两个或以上的分区,每个分区内包括两个或以上的处理器,每个分区内各指定一个处理器核为该分区的代表节点; 
所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录;以及当收到所述代表节点的数据请求后,采用宿主监听进行同步; 
所述处理器核用于当访问指定高速缓存行发生缺失时,在本分区内采用源监听进行同步,如通过源监听未能实现同步,且本处理器核不是代表节点,则通知本分区的代表节点;如果本处理器核是代表节点,且通过源监听未能实现同步或收到本分区其它处理器核的通知,则向所述宿主代理节点发送数据请求。 
其中,所述宿主代理节点,采用宿主监听进行同步的过程中可以包括:接收到数据请求后,查找所述目录,如查找到存储有所述指定高速缓存行数据的分区的位置,则根据该位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求,由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。 
其中,所述存储有所述指定高速缓存行数据的分区的代表节点,在其所在的分区内进行源监听的过程中包括:在其所在的分区内广播数据请求消息; 
该分区内的存储有所述指定高速缓存行数据的处理器核,接收到所述数据请求消息后发送数据应答消息,同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 
本实施例中,可以将位于同一套接口中的多个处理器划入同一分区,每个分区内的处理器核小于或等于16个。 
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。 
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 

一种高速缓存同步的方法及装置.pdf_第1页
第1页 / 共11页
一种高速缓存同步的方法及装置.pdf_第2页
第2页 / 共11页
一种高速缓存同步的方法及装置.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种高速缓存同步的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种高速缓存同步的方法及装置.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104239270 A (43)申请公布日 2014.12.24 CN 104239270 A (21)申请号 201410360196.5 (22)申请日 2014.07.25 G06F 15/16(2006.01) G06F 9/52(2006.01) G06F 12/08(2006.01) (71)申请人 浪潮 (北京) 电子信息产业有限公司 地址 100085 北京市海淀区上地信息路 2 号 2-1 号 C 栋 1 层 (72)发明人 陈继承 倪璠 王洪伟 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 王丹 李丹 (54) 发明。

2、名称 一种高速缓存同步的方法及装置 (57) 摘要 本发明提供一种高速缓存同步的方法及装 置, 该方法包括 : 将所述多处理器的计算机系统 中的处理器划分为两个或以上的分区, 每个分区 内各指定一个处理器核为本分区的代表节点 ; 在 宿主代理节点处建立用于存储高速缓存行的分区 的位置及共享信息的目录 ; 当所述分区内的任一 处理器核访问指定高速缓存行发生缺失时, 在本 分区内采用源监听进行同步, 如通过源监听未能 实现同步, 则由本分区的代表节点向所述宿主代 理节点发送数据请求, 由所述宿主代理节点采用 宿主监听进行同步。 本发明将多核、 多处理器系统 的处理器资源进行分区管理, 分区内的处理。

3、器核 依据源监听协议方法进行高速缓存一致性维护, 分区之间依据宿主监听协议方法进行高速缓存内 容一致性维护。 (51)Int.Cl. 权利要求书 2 页 说明书 6 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书6页 附图2页 (10)申请公布号 CN 104239270 A CN 104239270 A 1/2 页 2 1. 一种高速缓存同步的方法, 应用于多处理器的计算机系统, 包括 : 将所述多处理器的计算机系统中的处理器划分为两个或以上的分区, 每个分区内包括 两个或以上的处理器, 所述处理器包括一个或多个处理器核, 每个分区内各指。

4、定一个处理 器核为本分区的代表节点 ; 在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录 ; 当所述分区内的任一处理器核访问指定高速缓存行发生缺失时, 在本分区内采用源监 听进行同步, 如通过源监听未能实现同步, 则由本分区的代表节点向所述宿主代理节点发 送数据请求, 由所述宿主代理节点采用宿主监听进行同步。 2. 如权利要求 1 所述的方法, 其特征在于, 所述由宿主代理节点采用宿主监听进行同 步的过程中包括 : 所述宿主代理节点接收到数据请求后, 查找所述目录, 如查找到存储有所述指定高速 缓存行数据的分区的位置, 则根据该位置向该存储有所述指定高速缓存行数据的分区的代 。

5、表节点发送数据请求, 由所述存储有所述指定高速缓存行数据的分区的代表节点在其所在 的分区内进行源监听。 3. 如权利要求 2 所述的方法, 其特征在于, 所述存储有所述指定高速缓存行数据的分 区的代表节点在其所在的分区内进行源监听的过程中包括 : 存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据请求 消息 ; 该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消息后 发送数据应答消息, 同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 4. 如权利要求 1 所述的方法, 其特征在于, 将所述多处理器的计算机系统中的处理器 分为两个以上的分区, 包括 :。

6、 将位于同一套接口中的多个处理器划入同一分区。 5. 如权利要求 1-4 任一项所述的方法, 其特征在于, 所述每个分区内的处理器核小于或等于 16 个。 6. 一种高速缓存同步的装置, 应用于多处理器的计算机系统, 其特征在于, 包括 : 多个处理器, 所述处理器包括一个或多个处理器核 ; 宿主代理节点 ; 所述多个处理器划分为两个或以上的分区, 每个分区内包括两个或以上的处理器, 每 个分区内各指定一个处理器核为该分区的代表节点 ; 所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录 ; 以及当 收到所述代表节点的数据请求后, 采用宿主监听进行同步 ; 所述处理器核用于当访。

7、问指定高速缓存行发生缺失时, 在本分区内采用源监听进行同 步, 如通过源监听未能实现同步, 且本处理器核不是代表节点, 则通知本分区的代表节点 ; 如果本处理器核是代表节点, 且通过源监听未能实现同步或收到本分区其它处理器核的通 知, 则向所述宿主代理节点发送数据请求。 7. 如权利要求 6 所述的装置, 其特征在于, 所述宿主代理节点, 采用宿主监听进行同步的过程中包括 : 接收到数据请求后, 查找所 述目录, 如查找到存储有所述指定高速缓存行数据的分区的位置, 则根据该位置向该存储 有所述指定高速缓存行数据的分区的代表节点发送数据请求, 由所述存储有所述指定高速 权 利 要 求 书 CN 。

8、104239270 A 2 2/2 页 3 缓存行数据的分区的代表节点在其所在的分区内进行源监听。 8. 如权利要求 7 所述的装置, 其特征在于, 所述存储有所述指定高速缓存行数据的分区的代表节点, 在其所在的分区内进行源监 听的过程中包括 : 在其所在的分区内广播数据请求消息 ; 该分区内的存储有所述指定高速缓存行数据的处理器核, 接收到所述数据请求消息后 发送数据应答消息, 同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 9. 如权利要求 6 所述的装置, 其特征在于, 位于同一套接口中的多个处理器划入同一分区。 10. 如权利要求 6-9 任一项所述的装置, 其特征在于, 每个。

9、分区内的处理器核小于或等于 16 个。 权 利 要 求 书 CN 104239270 A 3 1/6 页 4 一种高速缓存同步的方法及装置 技术领域 0001 本发明涉及计算机体系领域, 特别是涉及一种高速缓存同步的方法及装置。 背景技术 0002 由于制造工艺、 能耗以及漏电限制, 单处理器设计在本世纪初遭遇到了时钟频率 墙 (frequency wall), 通过提升处理器主频来提升处理器性能变得越来越困难, 代价越来 越高。因此, 处理器厂商提出了多核、 多处理器来迎合高性能及嵌入式计算群体。 0003 多核、 多处理器系统中的高速缓存一致性问题是困扰系统结构设计人员的主要问 题。一方面。

10、, 高速缓存内容的一致性直接关系着系统运行的正确性, 使用 “过时” 的数据将 导致计算机产生错误的运算结果, 甚至导致系统崩溃。 另一方面, 数据的快速获取与同步对 于系统高效运行直观重要。 由于处理器主频不断提升, 系统集成的处理器核数越来越大, 多 核、 多处理器系统的计算性能急剧增强, 但是存储系统的性能却未成比例增加, 因此, 数据 访问速度称为制约系统性能的 “瓶颈” ,“低速” 的存储访问极大的影响了系统的效率和吞吐 量。 高速缓存正是填补二者性能差异的有效手段, 因此, 保证高速缓存高效的工作是设计高 性能计算机系统的重要内容。 高速缓存一致性同步方法的高效实现是保证高速缓存正。

11、常工 作的基础, 也是为处理器快速提供正确数据的关键。 0004 传统的 Cache( 高速缓存 ) 一致性同步方法主要包括源监听 (source snooping) 及宿主监听 (home snooping) 两种。在源监听方法中, 当一个处理器核 ( 称为缓存代理 (Caching Agent, 简称 CA) 需要访问数据而该数据不在本地高速缓存中或处于冲突状态 时, 需向系统中所有其它的 CA 广播 监听消息, 其它 CA 收到该消息会检查自己的本地高速 缓存并据此做出应答。这种同步方法的优点在于消息传递延迟小, 每次消息传递只需要经 过两跳即可返回结果。 其缺点是拓展性差, 当系统包含。

12、的处理器数目达到一定规模后, 用于 维护高速缓存一致性的广播消息将使得总线拥塞不堪, 系统性能急剧下降。 为此, 研究人员 提出了另一种高速缓存一致性同步方式home 监听方式。在基于 home 监听方式的系统 中, 所有 CA 发送的请求被送往 home 代理 ( 通常为存储器 ), home 代理适用一个 “目录” 记 录 Cache 行的共享信息, 并依据目录的内容给相关的 CA 发送 ( 请求数据或同步 ) 消息, 满 足要求的 CA 根据消息作出应答并提供数据。这种同步方式的优势在于减少高速缓存同步 消息的广播, 降低总线负载, 拓展性较好, 能够适应大规模系统的需求。缺点是当系统规。

13、模 较小时, 效率不及 source 监听方式, 数据访问需要经过三跳, 延迟较大。 发明内容 0005 本发明要解决的技术问题是提供一种高速缓存同步的方法及装置, 以缓解单纯使 用 source 监听带来的消息风暴问题。 0006 为了解决上述技术问题, 本发明提供了一种高速缓存同步的方法, 应用于多处理 器的计算机系统, 包括 : 0007 将所述多处理器的计算机系统中的处理器划分为两个或以上的分区, 每个分区内 说 明 书 CN 104239270 A 4 2/6 页 5 包括两个或以上的处理器, 所述处理器包括一个或多个处理器核, 每个分区内各指定一个 处理器核为本分区的代表节点 ; 。

14、0008 在宿主代理节点处建立用于存储高速缓存行的分区的位置及共享信息的目录 ; 0009 当所述分区内的任一处理器核访问指定高速缓存行发生缺失时, 在本分区内采用 源监听进行同步, 如通过源监听未能实现同步, 则由本分区的代表节点向所述宿主代理节 点发送数据请求, 由所述宿主代理节点采用宿主监听进行同步。 0010 进一步地, 上述方法还具有下面特点 : 所述由宿主代理节点采用宿主监 听进行同 步的过程中包括 : 0011 所述宿主代理节点接收到数据请求后, 查找所述目录, 如查找到存储有所述指定 高速缓存行数据的分区的位置, 则根据该位置向该存储有所述指定高速缓存行数据的分区 的代表节点发。

15、送数据请求, 由所述存储有所述指定高速缓存行数据的分区的代表节点在其 所在的分区内进行源监听。 0012 进一步地, 上述方法还具有下面特点 : 所述存储有所述指定高速缓存行数据的分 区的代表节点在其所在的分区内进行源监听的过程中包括 : 0013 存储有所述指定高速缓存行数据的分区的代表节点在其所在的分区内广播数据 请求消息 ; 0014 该分区内的存储有所述指定高速缓存行数据的处理器核接收到所述数据请求消 息后发送数据应答消息, 同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 0015 进一步地, 上述方法还具有下面特点 : 将所述多处理器的计算机系统中的处理器 分为两个以上的分区。

16、, 包括 : 0016 将位于同一套接口中的多个处理器划入同一分区。 0017 进一步地, 上述方法还具有下面特点 : 0018 所述每个分区内的处理器核小于或等于 16 个。 0019 为了解决上述问题, 本发明还提供了一种高速缓存同步的装置, 应用于多处理器 的计算机系统, 其中, 包括 : 0020 多个处理器, 所述处理器包括一个或多个处理器核 ; 宿主代理节点 ; 0021 所述多个处理器划分为两个或以上的分区, 每个分区内包括两个或以上的处理 器, 每个分区内各指定一个处理器核为该分区的代表节点 ; 0022 所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录 ; 。

17、以 及当收到所述代表节点的数据请求后, 采用宿主监听进行同步 ; 0023 所述处理器核用于当访问指定高速缓存行发生缺失时, 在本分区内采用源监听进 行同步, 如通过源监听未能实现同步, 且本处理器核不是代表节点, 则通知本分区的代表 节点 ; 如果本处理器核是代表节点, 且通过源监听未能实现同步或收到本分区其它处理器 核的通知, 则向所述宿主代理节点发送数据请求。 0024 进一步地, 上述装置还具有下面特点 : 0025 所述宿主代理节点, 采用宿主监听进行同步的过程中包括 : 接收到数据请求后, 查 找所述目录, 如查找到存储有所述指定高速缓存行数据的分区的位置, 则根据该位置向该 存储。

18、有所述指定高速缓存行数据的分区的代表节点发送数据请求, 由所述存储有所述指定 高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。 说 明 书 CN 104239270 A 5 3/6 页 6 0026 进一步地, 上述装置还具有下面特点 : 0027 所述存储有所述指定高速缓存行数据的分区的代表节点, 在其所在的分区内进行 源监听的过程中包括 : 在其所在的分区内广播数据请求消息 ; 0028 该分区内的存储有所述指定高速缓存行数据的处理器核, 接收到所述数据请求消 息后发送数据应答消息, 同时向所述宿主代理节点发送表示高速缓存行请求完成消息。 0029 进一步地, 上述装置还具有下面。

19、特点 : 0030 位于同一套接口中的多个处理器划入同一分区。 0031 进一步地, 上述装置还具有下面特点 : 0032 每个分区内的处理器核小于或等于 16 个。 0033 综上, 本发明提供一种高速缓存同步的方法及装置, 将多核、 多处理器系统的处理 器资源进行分区管理, 分区内的处理器核依据源监听协议方法进行高速缓存一致性维护, 分区之间依据宿主监听协议方法进行高速缓存内容一致性维护。 既可缓解单纯使用source 监听带来的消息风暴问题, 亦可降低数据访问的延迟。 附图说明 0034 图 1 为本发明实施例的高速缓存同步的方法的流程图。 0035 图 2 为本发明实施例的对处理器资源。

20、分区管理的示意图。 0036 图 3 为本发明实施例一的高速缓存同步的方法的示意图。 0037 图 4 为本发明实施例二的高速缓存同步的方法的示意图。 具体实施方式 0038 为使本发明的目的、 技术方案和优点更加清楚明白, 下文中将结合附图对本发明 的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中 的特征可以相互任意组合。 0039 图1为本发明实施例的高速缓存同步的方法的流程图, 如图1所示, 可以包括以下 步骤 : 0040 步骤 11、 将所述多处理器的计算机系统中的处理器划分为两个或以上的分区, 每 个分区内包括两个或以上的处理器, 所述处理器包。

21、括一个或多个处理器核, 每个分区内各 指定一个处理器核为本分区的代表节点 ; 0041 步骤 12、 在宿主代理节点处建立用于存储高速缓存行的分区位置及共享信息的目 录 ; 0042 步骤 13、 当分区内的任一处理器核访问指定高速缓存行发生缺失时, 在本分区内 采用源监听进行同步, 如通过源监听未能实现同步, 则由本分区的代表节点向所述宿主代 理节点发送数据请求, 由所述宿主代理节点采用宿主监听进行同步。 0043 本发明实施例提出的高速缓存同步方法, 应用于多核、 多处理器系统高速缓存一 致性维护, 具有延迟小, 拓展性好, 目录开销小等优点, 能够同时满足小型系统对访问延迟 的要求及大型。

22、系统对拓展性的要求。 0044 本发明实施例按照系统物理拓扑情况将处理器资源分成若干个分区, 为每个分区 选定一个代表节点, 由该节点负责分区内的处理器与分区外处理器的消息传递。 在分区内, 说 明 书 CN 104239270 A 6 4/6 页 7 处理器间通过广播传递请求, 一旦请求无法满足, 则由代表节点向 home 代理节点发送请 求, home 代理节点负责转发请求及更 新目录项。 0045 为了降低目录的容量, home 代理节点处目录仅仅记载 Cache 行在各个分区的状 态, 而不具体至某个分区内的处理器。一定程度上缓解了数据访问延迟与系统拓展性的矛 盾关系, 充分利用了小范。

23、围内广播低延迟以及 home 监听易于拓展的特性。目录仅仅记录 Cache 行在分区级别的共享情况, 从而缓解了传统目录实现方法导致目录占用空间过大的 问题。 0046 在本实施例的方法中, 为了降低全局目录的开销及减小相邻处理器节点的高速缓 存数据传输及消息传递延迟, 将处理器资源按照物理拓扑分布的 “亲疏” 分为不同的分区。 通常位于同一socket(套接口)中的处理器划入同一分区。 在系统规模一定时, 分区的大小 直接决定目录项的大小, 分区越大, 目录项越小, 反之亦然。一般而言, 当系统规模较大时, 分区的大小可适度较大, 但是也不宜过大, 一般不超过 16 个处理器核。这是因为如果。

24、分区 过大, 分区内消息广播过于频繁, 导致总线负载过大, 使得数据请求得不到及时响应, 从而 不利于系统性能。 0047 图 1 所示的系统包括 16 个处理器核, 被划分为 4 个分区, 每 4 个处理器节点被划 分为一个分区。 每个分区中的一个处理器节点(即处理器核)(Caching Agent, 简称CA)被 指定为代表节点 (Representative Node, 简称 RN)。 0048 在 Home 代理 (home agent) 节点处, 同样需要建立一个目录结构用于存储高速缓 存行的位置及共享信息。与传统不同之处在于, 每个目录项包含的位置向量的每一位不再 与每个处理器一一。

25、对应, 而是与每个分区对应。对于图 1 所示的系统, 如果使用传统的全映 射目录, 需要 16 位来记录每个高速缓存行的位置及共享信息, 如果该行在某个处理器节点 存在, 则将相应的位置 1, 否则置 0。相反, 如果使用本发明实施例的方法, 则只需 4 位即可, 假设某个分区中的一个或多个处理器节点具有该高速缓存的拷贝, 则将其对应位置 1, 否则 置0。 可见, 对于一个包含16个处理器节点的系统, 每个目录项可节省12位, 假若系统高速 缓存包含 1M 个 Cache 行, 则使用分区管理方法可节约 12M 的目录空间。 0049 图 2 为本发明实施例一的高速缓存同步的方法的示意图, 。

26、本实施例中, 处理器节 点数据请求在同一分区其它节点中命中的过程, 包括如下步骤 : 0050 步骤 101 : 当分区 0 内的节点 CA1 访问高速缓存行 X 发生缺失时, 其向分区内的其 它 CA( 本例中为 CA0、 CA2 及 CA3) 广播消息, 请求包含 X 合法拷贝的节点提供数据 ; 0051 步骤 102 : 同一分区内的其它 CA( 本例中为分区 0 内的 CA0、 CA2 及 CA3) 接收到该 请求后, 检查本地高速缓存是否存在目标行 X。由于 CA3 存在 X 的拷贝, 因此, 其向 CA1 发送 X 的拷贝, 同时向代表节点 RN( 本例中为 CA0) 发送数据请求。

27、确认消息, 告知 RN 高速缓存行 请求在分区内满足。RN 收到该消息后, 不向 home 代理发送请求。高速缓存行请求过程结 束。 0052 图 3 为本发明实施例二的高速缓存同步的方法的示意图, 本实施例中, 处理器节 点数据请求在不同分区其它节点命中的过程, 其步骤如下 : 0053 步骤 201 : 当分区 0 内的节点 CA1 访问高速缓存行 X 发生缺失时, 其向分区内的其 它 CA( 本例中为 CA0、 CA2 及 CA3) 广播消息, 请求包含 X 合法拷贝的节点提供数据 ; 0054 步骤 202 : 同一分区内的其它 CA( 本例中为分区 0 内的 CA0、 CA2 及 C。

28、A3) 接收到该 说 明 书 CN 104239270 A 7 5/6 页 8 请求后, 检查本地高速缓存是否存在目标行 X。结果显示, 分区 0 内的其它 CA 均不存在 X 的 拷贝, 高速缓存行请求在本分区中缺失。分区 0 内的其它 CA 向 CA0 发送不存在 X 的拷贝的 消息。 0055 步骤 203 : 分区 0 的代表节点 CA0 向 home 代理节点转发高速缓存行 X 请求消息 ; 0056 步骤 204 : home 代理节点接收到该消息后查找目录, 发现 X 对应的共享信息位为 0010, 即分区 2 包含 X 的数据拷贝, 因此 home 代理节点向分区 2 的代表节。

29、点的数据请求消 息, 分区 2 的代表节点向本分区内的 CA 发送 snoop 广播消息 ; 0057 步骤 205 : 分区 2 内的 CA 接收至该 snoop 消息后, 查找本地高速缓存, 查找结果显 示, CA1 包含 X 的拷贝。CA1 向分区 0 的 CA1 发送数据应答消息, 同时向 home 代理节点发送 消息表示高速缓存行请求完成。Home 代理节 点接收到该消息后更新目录中 X 对应的分区 共享信息。 0058 本发明实施例还提供一种高速缓存同步的装置, 应用于多处理器的计算机系统, 其中, 包括 : 0059 多个处理器, 所述处理器包括一个或多个处理器核 ; 宿主代理节。

30、点 ; 0060 所述多个处理器划分为两个或以上的分区, 每个分区内包括两个或以上的处理 器, 每个分区内各指定一个处理器核为该分区的代表节点 ; 0061 所述宿主代理节点用于建立存储高速缓存行的分区的位置及共享信息的目录 ; 以 及当收到所述代表节点的数据请求后, 采用宿主监听进行同步 ; 0062 所述处理器核用于当访问指定高速缓存行发生缺失时, 在本分区内采用源监听进 行同步, 如通过源监听未能实现同步, 且本处理器核不是代表节点, 则通知本分区的代表节 点 ; 如果本处理器核是代表节点, 且通过源监听未能实现同步或收到本分区其它处理器核 的通知, 则向所述宿主代理节点发送数据请求。 。

31、0063 其中, 所述宿主代理节点, 采用宿主监听进行同步的过程中可以包括 : 接收到数据 请求后, 查找所述目录, 如查找到存储有所述指定高速缓存行数据的分区的位置, 则根据该 位置向该存储有所述指定高速缓存行数据的分区的代表节点发送数据请求, 由所述存储有 所述指定高速缓存行数据的分区的代表节点在其所在的分区内进行源监听。 0064 其中, 所述存储有所述指定高速缓存行数据的分区的代表节点, 在其所在的分区 内进行源监听的过程中包括 : 在其所在的分区内广播数据请求消息 ; 0065 该分区内的存储有所述指定高速缓存行数据的处理器核, 接收到所述数据请求消 息后发送数据应答消息, 同时向所。

32、述宿主代理节点发送表示高速缓存行请求完成消息。 0066 本实施例中, 可以将位于同一套接口中的多个处理器划入同一分区, 每个分区内 的处理器核小于或等于 16 个。 0067 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读存储器、 磁盘或光盘 等。可选地, 上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地, 上述实施例中的各模块 / 单元可以采用硬件的形式实现, 也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。 0068 以上仅为本发明的优选实施例, 当然, 本发明还可有其他多种实施例, 在不背离本 发明精神及其实质的情况下, 熟悉本领域的技术人员当可根据本发明作出各种相应的改变 说 明 书 CN 104239270 A 8 6/6 页 9 和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 说 明 书 CN 104239270 A 9 1/2 页 10 图 1 图 2 说 明 书 附 图 CN 104239270 A 10 2/2 页 11 图 3 图 4 说 明 书 附 图 CN 104239270 A 11 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1