一种基于目录的最近距离cache监听读的方法及系统与流程

文档序号:22758230发布日期:2020-10-31 09:56阅读:126来源:国知局
一种基于目录的最近距离cache监听读的方法及系统与流程

本发明主要涉及到多核处理器中的cache一致性目录设计领域的监听读操作的处理流程,具体涉及一种基于目录的最近距离cache监听读的方法及系统。



背景技术:

多核、众核处理器已经成为处理器体系结构的主流发展方向。多核处理器中,高速缓存(cache)结构通过将共享存储空间中的数据缓存在本地,加速了数据获取的过程,同时也带来了多核间数据一致性的问题,高效地维护cache一致性,是保证多核处理器性能与可扩展性的关键。维护cache一致性的实现方式有两种,基于总线侦听的和基于目录的缓冲一致性协议实现方式。目录协议是最广泛应用的方法,与基于侦听的cache一致性协议实现相比,它能够以点对点的方式,精确发送一致性请求,降低片上互连网络的通讯压力,而且具有较好的可扩展性和可靠性。

多核处理器采用目录协议,在程序的执行过程中,同一主存块常会在多个cache中存在副本,对于本地cache未命中,而需要从异地cache中读取数据副本,多核处理器的目录会向其中一个数据副本所在的cache结点,发送共享读监听,目前常用的方法是选择数据副本的结点编号最小(或最大)者作为数据提供者,这种策略的逻辑实现比较简单,表示拥有cache数据副本的共享向量寄存器采用左移或者右移,就可以计算出监听结点编号。

随着片上多核结构已向多核、众核方向发展,片上互连结构也从总线方式发展为片上网络结构,传输延迟中互连延迟开销不可忽略。例如图1所示的48个核心(core)互连结构,采用4x5的2dmesh片上网络,4个core共享一个cache构成一个cluster,也称结点簇(也可能单核、双核或多核共享一个cache构成一个结点簇,本文举例是四核共享一个cache构成一个结点簇),采用4x5的2dmesh片上网络,路由器选用是4通道交叉开关,结点簇之间最远距离是8个网络跳步。64core互连结构采用4x7的2dmesh片上网络,路由器选用是4通道交叉开关,结点簇的最远距离是10个网络跳步。随着片上网络规模的扩大和网络节点个数的增多,对角距离和相邻距离的差异逐步增大,导致cache访问的延迟也非常大。这些大延迟cache访问请求,会阻塞处理核的指令执行过程,成为系统瓶颈并严重影响系统整体性能。

现有技术读监听的操作流程如下:第一步,结点簇的一个core发出cacheable的读命令,本地cache不命中,本地cache发出读共享报文,进入目录流水线;第二步,当目录命中时,目录的位向量记录了拥有数据副本的结点簇号,根据目录的位向量,选择最小或最大编号的cache所在结点簇号,作为监听请求报文的访问远程结点簇号;第三步目录生成远程结点簇的cache监听请求报文,报文目的方是该远程结点簇号,发送noc;第四步noc传输至目的远程结点簇的目录,目录仲裁判断,直接传送cache,第五步远程结点簇的cache生成监听响应报文,报文目的方是发出cacheable的读命令源结点簇,经过目录仲裁判断,直接传送发送noc;第六步noc传输至cacheable的读命令源结点簇,经过目录仲裁判断,直接传送本地cache;第七步本地cache接受监听响应报文,数据返给结点簇的请求core。第四步和第六步通过noc传输都与结点簇的距离很有关系,选择最小或最大编号的cache所在结点簇,作为监听请求报文的访问远程结点簇号,如果两者处于是noc的对角距离,则可能是最远距离,两次最远距离的传输,导致了传输延迟很大。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于目录的最近距离cache监听读的方法及系统,本发明能够提高指令执行的效率、减少指令执行时间,尤其适用于多核、众核结构的处理器或者多核处理器直连构成的共享内存系统。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于目录的最近距离cache监听读的方法,该方法包括:

第一步,结点簇的一个核心发出缓存使能的读命令,本地缓存不命中,本地缓存发出读共享报文,进入目录流水线;

第二步,当目录命中时,目录的位向量记录了拥有数据副本的结点簇号,根据目录的位向量,选择最近距离的缓存所在结点簇号,作为监听请求报文的访问远程结点簇号;

第三步,目录生成远程结点簇的缓存监听请求报文,报文目的方是该远程结点簇号,发送片上网络;

第四步,片上网络传输至目的远程结点簇的目录,目录仲裁判断,直接传送缓存;

第五步,远程结点簇的缓存生成监听响应报文,报文目的方是发出缓存使能的读命令源结点簇,经过目录仲裁判断,直接传送发送片上网络;

第六步,片上网络传输至缓存使能的读命令源结点簇,经过目录仲裁判断,直接传送本地缓存;

第七步,本地缓存接受监听响应报文,数据返给结点簇中发出请求的核心。

可选地,所述第二步中选择最近距离的缓存所在结点簇号具体是指根据距离优先级列表选择最近距离的缓存所在结点簇号,所述距离优先级列表中记录有结点簇中访问其他结点簇的距离排序。

可选地,所述根据距离优先级列表选择最近距离的缓存所在结点簇号的步骤包括:计算目录位向量命中的最短距离优先级表,得到命中优先级列表项,目录位向量与每个优先级列表项的结点簇按位与计算,再按位或计算,输出为1或者0,为1则命中;根据命中的优先级列表项,按优先级仲裁,输出对应最短距离优先级表项内容中的结点簇号。

可选地,所述第二步之前还包括初始化距离优先级列表的下述步骤:在本地结点簇设计一个访问远程结点簇的距离优先级列表,在处理器上电启动程序设置距离优先级列表,使得在每一个结点簇的寄存器复位值时设置距离优先级列表;且设置距离优先级列表时,启动程序根据该结点簇的路由算法,计算访问其他结点簇的跳步长度,且按照跳步从少到多的顺序将各个结点簇从距离优先级列表的第一行开始依次填入距离优先级列表,使得跳步最少的结点簇号填入距离优先级列表的列表第一行、跳步次少的结点簇填入列表第二行,依次类推,跳步最多的结点簇填入列表末尾行。

可选地,所述距离优先级列表中的结点簇号采用one-hot编码。

可选地,所述采用one-hot编码具体为12位二进制编码,位宽等于结点簇数目。

此外,本发明还提供一种基于目录的最近距离cache监听读的系统,包括目录控制器,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

此外,本发明还提供一种多核处理器,包括带有目录控制器的处理器本体,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

此外,本发明还提供一种众核处理器,包括带有目录控制器的处理器本体,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

此外,本发明还提供一种共享内存系统,由包括相互连接的多核处理器以及目录控制器,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

和现有技术相比,本发明具有下述优点:多核处理器中高速缓存(cache)通过将共享存储空间中的数据缓存在本地,加速了数据获取的过程。在程序的执行过程中,当数据副本存在多个缓存,本地cache未命中,需要从异地cache中读取数据副本,多核处理器目录会向其中一个数据副本所在的cache结点,发送共享读监听,目前常用的方法是选择拥有数据副本的结点编号最小(或最大)者作为数据提供者,这种策略的硬件实现比较简单,采用移位寄存器实现,由于结点的编号由于虚实映射导致其与数据副本的实际距离无关,这样就导致传输延迟较高。本发明方法通过监听读操作选择最近距离的数据副本所在cache,降低监听读数据的指令执行时间,从而大大提高了指令执行时间,尤其在多核、众核结构的处理器,或者处理器直连构成的共享内存系统,更是大大提高了指令的执行效率。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例中48个核心的处理器体系结构图。

图3为本发明实施例中结点簇0的距离优先级列表示意图。

具体实施方式

以下结合说明书附图和具体实施对本发明做进一步详细说明。

如图1所示,本实施例基于目录的最近距离cache监听读的方法包括:

第一步,结点簇的一个核心(core)发出缓存使能(cachenable)的读命令,本地缓存(cache)不命中,本地缓存发出读共享报文,进入目录流水线;

第二步,当目录命中时,目录的位向量记录了拥有数据副本的结点簇号,根据目录的位向量,选择最近距离的缓存所在结点簇号,作为监听请求报文的访问远程结点簇号;

第三步,目录生成远程结点簇的缓存监听请求报文,报文目的方是该远程结点簇号,发送片上网络;

第四步,片上网络传输至目的远程结点簇的目录,目录仲裁判断,直接传送缓存;

第五步,远程结点簇的缓存生成监听响应报文,报文目的方是发出缓存使能的读命令源结点簇,经过目录仲裁判断,直接传送发送片上网络;

第六步,片上网络传输至缓存使能的读命令源结点簇,经过目录仲裁判断,直接传送本地缓存;

第七步,本地缓存接受监听响应报文,数据返给结点簇中发出请求的核心。

上述步骤中,第四步和第六步通过片上网络传输都与结点簇的距离很有关系,如果选择最小、最大编号或随机编号的缓存所在结点簇,作为监听请求报文的远程结点簇号,如果两者处于是片上网络的对角距离,则可能是最远距离,两次最远距离的传输,导致了传输延迟很大。随着众核处理器芯片上的核数越来越多,片上网络的延迟在传输延迟中占有比例不断增加,减少片上网络的延迟很有必要。监听请求和监听响应的传输路径在指令的执行过程所占时间不可忽略。与传统技术相比,本实施例方法的优点在于:本实施例的目录设计监听读流程第二步,当目录命中时,根据目录的位向量,选择最近距离的cache所在结点簇号,作为监听请求报文的访问远程结点簇号,本实施例方法设计原理简单,能够有效降低监听读数据的指令执行时间,从而大大提高了指令执行时间,尤其在多核、众核结构的处理器,或者处理器直连构成的共享内存系统,更是大大提高了指令的执行效率。本实施例监听读访问操作,选择最近距离的数据副本所在的结点簇,作为数据提供者,有效提高了读取效率,降低了延迟开销。

需要说明的是,选择最近距离的缓存所在结点簇号可以有不同的实现方式,作为可选的实施方式,本实施例中第二步中选择最近距离的缓存所在结点簇号具体是指根据距离优先级列表选择最近距离的缓存所在结点簇号,距离优先级列表中记录有结点簇中访问其他结点簇的距离排序。本实施例中目录中设计本地结点访问远程结点簇的距离优先级列表,避免了目录所有产生监听请求报文的操作,都要计算远程结点簇的访问距离,同时多次访问路由表或者调用路由算法判断最短距离。

本实施例中,根据距离优先级列表选择最近距离的缓存所在结点簇号的步骤包括:计算目录位向量命中的最短距离优先级表,得到命中优先级列表项,目录位向量与每个优先级列表项的结点簇按位与计算,再按位或计算,输出为1或者0,为1则命中;根据命中的优先级列表项,按优先级仲裁,输出对应最短距离优先级表项内容中的结点簇号。

本实施例中,第二步之前还包括初始化距离优先级列表的下述步骤:在本地结点簇设计一个访问远程结点簇的距离优先级列表,在处理器上电启动程序设置距离优先级列表,使得在每一个结点簇的寄存器复位值时设置距离优先级列表;且设置距离优先级列表时,启动程序根据该结点簇的路由算法,计算访问其他结点簇的跳步长度,且按照跳步从少到多的顺序将各个结点簇从距离优先级列表的第一行开始依次填入距离优先级列表,使得跳步最少的结点簇号填入距离优先级列表的列表第一行、跳步次少的结点簇填入列表第二行,依次类推,跳步最多的结点簇填入列表末尾行。

本实施例中,距离优先级列表中的结点簇号采用one-hot编码(独热编码)。

本实施例中,采用one-hot编码具体为12位二进制编码,位宽等于结点簇数目。

图2是48个core的处理器体系结构图,图2中所示,dcu是目录,即目录控制器,为目录协议实现的功能部件,iou是io控制器,mcu是存储控制器。如图3示例,以结点簇0为例,结点簇0的距离优先级列表,定义了结点簇0到其他结点簇的距离升序排列的结点簇号。本实施例中,结点簇号采用one-hot编码,例如1号结点簇的定义12位二进制编码,即12’b000000000001,第i位等于1,则表示了第i个结点簇。结点簇号采用one-hot编码,易于硬件实现查表检索。目录表的位向量采用12位二进制表示,第i位等于1,表示了第i个结点簇拥有数据副本。当核发出共享读访问,命中目录,例如其中的位向量是12’b1100000000010,表示第11,第10,第1个结点簇拥有数据副本。

多核处理器的片上网络一般采用确定路由算法,有效避免死锁、活锁。如图2所示,48个core的处理器的体系结构,dcu是目录,即目录控制器(目录协议实现的功能部件),iou是io控制器,mcu是存储控制器,4个core共享一个cache构成一个cluster,也称结点簇。片上网络采用4x5的2dmesh,路由器选用是4通道交叉开关,处理器器的最远结点簇的距离是8个跳步,处理器器的最近结点簇的距离是1个跳步。每个跳步表示了经过路由器的四个方向上下左右的通路,连通有效为1,否则为0。

此外,选择最近距离的缓存所在结点簇号还可以有其他不同的实现方式,例如多核处理器不同的片上网络可采用对应的片上网络路由算法来实时计算出最近距离的缓存所在结点簇号,同样也可以实现选择最近距离的缓存所在结点簇号。

多核处理器片上网络路由算法可分三类,确定路由算法、随机路由算法,自适应路由算法。

本例中采用路由算法是确定性维序xy路由算法,最具代表性,也是应用最广泛的确定性路由算法,该算法中路由路径的选择由源结点和目的结点唯一确定,其路由思想是,报文首先在x维上的路径,当确定报文的x维坐标与目的结点相同后再选择y维上的路径。该算法硬件设计和实现简单,具有小的时延,并且可防死锁和活锁。

随机性路由算法,路由器将报文的复件向所有可能的方向发送,不考虑具体的目的结点的位置,报文像洪水一样涌向整个网络,最后会有一个到达真正的目的结点,错误到达的报文将会被删除。该算法优点是算法最简单,具有容错功能,但在网络传输时将造成大量的冗余,占用网络资源将造成很大的开销,也可能产生死锁、活锁,只适用于网络结点数目较少的片上网络。

自适应路由算法,可以根据网络的拥塞状态进行路径的动态选择,它的思想是分析报文在路由网络中传输时可能存在的各种90°转向,以及可能形成的所有闭合环路,通过禁止其中的某些转向消除闭合资源依赖环的形成,在算法层面上避免死锁的产生。例如西优先路由(west-firstrouting),该算法的主要思想是限制所有方向向西的转弯,报文必须首先向西方向最优先路由,然后再往其他方向路由,中间过程不再允许向西路由,最终到达目的结点。如北最后路由(north-lastrouting),它不允许在向北路由时转向,则如果分组要向北方向路由,必须放到最后。

综上所述,本实施例监听读访问操作,选择最近距离的数据副本所在的结点簇,作为数据提供者,有效提高了读取效率,降低了延迟开销。随着片上网络规模的扩大和网络节点个数的增多,对角距离和相邻距离的差异逐步增大,导致cache访问的延迟也非常大。这些大延迟cache访问请求会阻塞处理核的执行进程,成为系统瓶颈并严重影响系统整体性能。同时,目录中设计本地结点访问远程结点簇的距离优先级列表,避免每次产生监听报文,需多次计算距离,提高了指令处理效率。与传统技术相比,本实施例的优点在于:本实施例的目录设计,监听读选择最近距离的数据副本所在cache,设计原理简单,能够有效降低监听读数据的指令执行时间,从而大大提高了指令执行时间,尤其在多核、众核结构的处理器,或者处理器直连构成的共享内存系统,更是大大提高了指令的执行效率。

此外,本实施例还提供一种基于目录的最近距离cache监听读的系统,包括目录控制器,该目录控制器被编程或配置以执行前述基于目录的最近距离cache监听读的方法的步骤。

此外,本实施例还提供一种多核处理器,包括带有目录控制器的处理器本体,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

此外,本实施例还提供一种众核处理器,包括带有目录控制器的处理器本体,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

此外,本实施例还提供一种共享内存系统,由包括相互连接的多核处理器以及目录控制器,该目录控制器被编程或配置以执行所述基于目录的最近距离cache监听读的方法的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1