增强环互连结构通信效率的方法及装置与流程

文档序号:13082251阅读:187来源:国知局
技术领域本发明涉及通信技术领域,具体涉及增强环互连结构通信效率的方法及装置。

背景技术:
文献“王恒娜.访问局部性原理在Cache存储系统中的作用.电脑学习[J].2004年2月,第1期”中指出,CPU在短时间内要访问的数据多集中在某几个固定的簇。因此,一旦CPU在Cache(即缓存)中命中一次以后在后续的多次访问中都会命中。虽然经过一级Cache的过滤作用,访问局部性有所减少,但是仍有很明显的局部性存在。另外,在图像、图形处理过程中,存储器中会准备大量数据提供计算使用,这些数据只使用一次,不用Cache,但是由于数据量大,并且存储节点具备局部性特征,因而在计算节点和存储节点之间会有大量的一点对另一点的请求或数据传输。目前,通信的互连结构主要有环和XBAR(即crossbar,交叉开关矩阵)两种。XBAR互连结构在速度方面占优势,但占用面积大,功耗高。环互连结构的可扩展性较强,适用于中小规模的系统,结构简单,容易设计、实现和验证,面积开销小。图1示出了一种多核多存储模块的环互连结构,在该环互连结构中,当核1频繁访问末级缓存2,其他核对末级缓存2的访问并不多时,基于公平的优先级调度会平均进行四个核与末级缓存2的通信,核1会由于其他核占用环路资源而无法快速访问末级缓存2,导致核1的访存请求严重阻塞,从而影响核1的处理速度。由此可见,现有技术的环互连结构存在通信效率低下的技术问题。

技术实现要素:
为此,本发明要解决的技术问题在于现有技术的环互连结构通信效率低下,从而提出增强环互连结构通信效率的方法及系统来解决该问题。为解决上述技术问题,本发明采用以下技术方案:一种增强环互连结构通信效率的方法,所述方法包括以下步骤:判断环互连结构中各个节点之间的通信是否存在局部性;当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道。优选地,所述判断环互连结构中各个节点之间的通信是否存在局部性的步骤包括:统计环互连结构中各个节点之间连续通信的次数;当其中一个节点与另一个节点连续通信的次数达到预设值时,则判定所述一个节点与所述另一个节点之间的通信存在局部性。优选地,所述判断环互连结构中各个节点之间的通信是否存在局部性的步骤包括:检测环互连结构中各个发送端节点到各个接收端节点的访问请求并记录;当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性。进一步地,所述预设值为2或者大于2的自然数。优选地,所述在所述两个节点之间建立直连通信通道的步骤之后还包括以下步骤:当所述两个节点之间的通信不再存在局部性时,释放所述通信通道。本发明还提供一种增强环互连结构通信效率的装置,所述装置包括:局部性判断模块,用于判断环互连结构中各个节点之间的通信是否存在局部性;通信通道建立模块,用于当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道。优选地,所述局部性判断模块包括:统计单元,用于统计环互连结构中各个节点之间连续通信的次数;第一判定单元,用于当其中一个节点与另一个节点连续通信的次数达到预设值时,则判定所述一个节点与所述另一个节点之间的通信存在局部性。优选地,所述局部性判断模块包括:检测记录单元,用于检测环互连结构中各个发送端节点到各个接收端节点的访问请求并记录;第二判定单元,用于当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性。进一步地,所述预设值为2或者大于2的自然数。优选地,所述装置还包括:通信通道释放模块,用于当所述两个节点之间的通信不再存在局部性时,释放所述通信通道。本发明的增强环互连结构通信效率的方法及系统的有益效果包括:本发明的增强环互连结构通信效率的方法及系统,由于所述方法包括以下步骤:判断环互连结构中各个节点之间的通信是否存在局部性;当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道。而在现有技术的环互连结构中,当某一节点频繁访问另一节点,而其他节点对所述另一节点的访问并不多时,所述某一节点会由于其他节点占用环路资源而无法快速访问所述另一节点。通过判断环互连结构中各个节点之间的通信是否存在局部性,当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道,可以使得环互连结构通信效率显著提高。对于数据量很大,需要很多次传输的情形,本实施例的增强环互连结构通信效率的方法的优势更加突出。另外,根据访问请求的局部性,增加一条可配置的直连通信通道,能够更好的保证访存局部性,使得节点接受到的访问请求有良好的局部性,有利于节点的性能提高。附图说明为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中图1是一种多核多存储模块的环互连结构的示意图;图2是本发明实施例1的一种增强环互连结构通信效率的方法的流程示意图;图3是本发明实施例4的一种增强环互连结构通信效率的装置的结构示意图.具体实施方式实施例1图2示出了本发明实施例1的一种增强环互连结构通信效率的方法,该方法包括以下步骤:步骤S21、判断环互连结构中各个节点之间的通信是否存在局部性,当其中两个节点之间的通信存在局部性时,执行步骤S22。环互连结构属于通信互连结构的一种,其可扩展性较强,结构简单,容易设计、实现和验证,面积开销小,在本技术领域的中小规模系统中应用较多。局部性,是本技术领域技术人员公知的技术术语,例如文献“王恒娜.访问局部性原理在Cache存储系统中的作用.电脑学习[J].2004年2月,第1期”对这一概念有详细介绍。步骤S22、在所述两个节点之间建立直连通信通道。所谓通信通道,即指信息可以传输的通道。在所述两个节点之间建立直连通信通道后,所述两个节点之间不需要通过环互连结构中有限的环路资源进行通信,而是通过所述直连通信通道直接地进行通信。在现有技术的环互连结构中,当某一节点频繁访问另一节点,而其他节点对所述另一节点的访问并不多时,所述某一节点会由于其他节点占用环路资源而无法快速访问所述另一节点。通过判断环互连结构中各个节点之间的通信是否存在局部性,当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道,可以使得环互连结构通信效率显著提高。对于数据量很大,需要很多次传输的情形,本实施例的增强环互连结构通信效率的方法的优势更加突出。另外,根据访问请求的局部性,增加一条可配置的直连通信通道,能够更好的保证访存局部性,使得节点接受到的访问请求有良好的局部性,有利于节点的性能提高。作为优选的实施方式,在步骤S22之后还可以包括以下步骤:步骤S23、当所述两个节点之间的通信不再存在局部性时,释放所述通信通道。在所述两个节点之间的通信不再存在局部性时,释放所述通信通道,当另外两个节点之间的通信存在局部性时,再在所述另外两个节点之间建立新的通信通道,这样可以提高通信通道的复用性,避免资源浪费,节约成本。作为优选的实施方式,步骤S21具体可以包括以下步骤:步骤1A、统计环互连结构中各个节点之间连续通信的次数。即对各个节点之间的通信进行计数统计,获得各个节点之间连续通信的次数。步骤2A、当其中一个节点与另一个节点连续通信的次数达到预设值时,则判定所述一个节点与所述另一个节点之间的通信存在局部性。所述预设值可以为2或大于2的自然数,例如3、4、5、6、7、8、9、10、20、50等,其中,预设值为3时较佳。直接统计环互连结构中各个节点之间连续通信的次数,根据统计的节点之间连续通信的次数判断节点之间的通信是否存在局部性,从而判断环互连结构中各个节点之间的通信是否存在局部性,具有直接、高效的优点。实施例2本发明实施例2提供又一种增强环互连结构通信效率的方法,与实施例1中的所述增强环互连结构通信效率的方法的不同之处在于,步骤S21具体可以包括以下步骤:步骤1B、检测环互连结构中各个发送端节点到各个接收端节点的访问请求并记录。即检测所述各个发送端节点发送访问请求的目的信息,并予以记录,该目的信息中包含所述各个发送端节点所访问的接收端节点。步骤2B、当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性。换言之,当其中一个发送端节点发送的访问请求连续多次针对一个接收端,且访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性。所述预设值可以为2或大于2的自然数,例如3、4、5、6、7、8、9、10、20、50等,其中,预设值为3时较佳。通过检测环互连结构中各个发送端节点到各个接收端节点的访问请求,并对所述访问请求进行记录,当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性,从而判断环互连结构中各个节点之间的通信是否存在局部性,不仅易于实现,并且效率更高。实施例3在本实施例中,以图1所示的多核多存储模块的环互连结构为例,进一步阐述本发明的增强环互连结构通信效率的方法。在该多核多存储模块的环互连结构中,具有4个核,分别为核1、核2、核3和核4,以及4个存储模块所对应的末级缓存,分别为末级缓存1、末级缓存2、末级缓存3和末级缓存4。具体地,本实施例的增强环互连结构通信效率的方法包括以下步骤:首先,检测各个核到各个末级缓存的访问请求,并且将检测到的访问请求一一记录。其次,根据记录的访问请求,判断核到末级缓存的通信是否存在局部性。具体地说,如果其中一个核(例如核0)最近连续多次记录的访问请求为:核0对同一个末级缓存(例如末级缓存2)进行访问,则判定核0与末级缓存2之间的通信存在局部性。其中所述多次可以为2次或大于2次,例如3次、4次、5次、6次、7次、8次、9次、10次、20次、50次等。然后,当其中一个核与一个末级缓存之间的通信存在局部性时,则在所述一个核与所述一个末级缓存之间建立直连通信通道。例如,由于核0与末级缓存2之间的通信存在局部性,则在核0与末级缓存2之间建立直连通信通道。当多组核与末级缓存之间的通信存在局部性时,例如,核0与末级缓存2之间的通信存在局部性,并且核1与末级缓存2之间的通信存在局部性,并且核2与末级缓存1之间的通信存在局部性,则可以分别在核0与末级缓存2之间、在核1与末级缓存2之间、在核2与末级缓存1之间建立直连通信通道。当多组核与末级缓存之间的通信存在局部性,并且只能够建议一条直连通信通道时,可以设置选择算法从所述多组核与末级缓存中确定一组,在所确定的一组核与末级缓存之间建立直连通信通道。所述选择算法可以是采用设置优先级的方法,例如核0与末级缓存2之间的通信存在局部性,并且核1与末级缓存2之间的通信存在局部性,并且核2与末级缓存1之间的通信存在局部性,如果核0与末级缓存2之间的通信的优先级最高,则在核0与末级缓存2之间建立直接通信通道。最后,当所述一个核与所述一个末级缓存之间的通信不再存在局部性时,释放所述通信通道。综上所述,根据存储数据请求的局部性,增加一条可配置的快速通道,可以提高环互连结构的通信效率,相比于XBAR结构,具有面积小,功耗低的优点,还能更好的保证访存局部性,使得末级缓存接受到的访问请求有良好的局部性,有利于末级缓存的性能提高。另外,对于不满足局部性的图形、图像处理情况,这种快速通道同样可以提高环互连结构的通信效率。例如,在图形、图像等流处理应用中,存储器会有大量数据供处理器计算使用,这些数据基于non-cacheable(即不可缓存)请求,不放入Cache。如果计算节点核0进行流处理的应用,访问存储节点末级缓存3,现有技术的环结构需要4拍,根据本发明的增强环互连结构通信效率的方法只需要1拍,环互连结构的通信效率提高75%。实施例4图3示出了本发明实施例4的一种增强环互连结构通信效率的装置,所述装置包括局部性判断模块41和通信通道建立模块42。其中,局部性判断模块41用于判断环互连结构中各个节点之间的通信是否存在局部性。通信通道建立模块42用于当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道。在现有技术的环互连结构中,当某一节点频繁访问另一节点,而其他节点对所述另一节点的访问并不多时,所述某一节点会由于其他节点占用环路资源而无法快速访问所述另一节点。通过判断环互连结构中各个节点之间的通信是否存在局部性,当其中两个节点之间的通信存在局部性时,在所述两个节点之间建立直连通信通道,可以使得环互连结构通信效率显著提高。对于数据量很大,需要很多次传输的情形,本实施例的增强环互连结构通信效率的装置的优势更加突出。另外,根据访问请求的局部性,增加一条可配置的直连通信通道,能够更好的保证访存局部性,使得节点接受到的访问请求有良好的局部性,有利于节点的性能提高。作为优选的实施方式,所述装置还包括通信通道释放模块43,通信通道释放模块43用于当所述两个节点之间的通信不再存在局部性时,释放所述通信通道。在所述两个节点之间的通信不再存在局部性时,释放所述通信通道,当另外两个节点之间的通信存在局部性时,再在所述另外两个节点之间建立新的通信通道,这样可以提高通信通道的复用性,避免资源浪费,节约成本。作为优选的实施方式,局部性判断模块41包括统计单元和第一判定单元。其中,所述统计单元用于统计环互连结构中各个节点之间连续通信的次数。所述第一判定单元用于当其中一个节点与另一个节点连续通信的次数达到预设值时,则判定所述一个节点与所述另一个节点之间的通信存在局部性。所述预设值可以为2或大于2的自然数,例如3、4、5、6、7、8、9、10、20、50等,其中,预设值为3时较佳。直接统计环互连结构中各个节点之间连续通信的次数,根据统计的节点之间连续通信的次数判断节点之间的通信是否存在局部性,进而判断环互连结构中各个节点之间的通信是否存在局部性,不仅直接,而且高效。实施例5本发明实施例5提供又一种增强环互连结构通信效率的装置,与实施例4中的所述增强环互连结构通信效率的装置的不同之处在于,所述局部性判断模块包括检测记录单元和第二判定单元。其中,所述检测记录单元用于检测环互连结构中各个发送端节点到各个接收端节点的访问请求并记录。所述第二判定单元用于当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性。所述预设值可以为2或大于2的自然数,例如3、4、5、6、7、8、9、10、20、50等,其中,预设值为3时较佳。通过检测环互连结构中各个发送端节点到各个接收端节点的访问请求,并对所述访问请求进行记录,当其中一个发送端节点到一个接收端节点的连续访问请求次数达到预设值时,则判定所述一个发送端节点与所述一个接收端节点之间的通信存在局部性,进而判断环互连结构中各个节点之间的通信是否存在局部性,不仅易于实现,并且效率更高。实施例6在本实施例中,以图1所示的多核多存储模块的环互连结构为例,进一步阐述本发明的增强环互连结构通信效率的装置。在该多核多存储模块的环互连结构中,具有4个核,分别为核1、核2、核3和核4,以及4个存储模块所对应的末级缓存,分别为末级缓存1、末级缓存2、末级缓存3和末级缓存4。具体地,本实施例的增强环互连结构通信效率的装置包括核-末级缓存访问请求检测模块、核-末级缓存局部性判断模块、核-末级缓存通信通道建立模块和核-末级缓存通信通道释放模块。所述核-末级缓存访问请求检测模块用于检测各个核到各个末级缓存的访问请求,并且将检测到的访问请求一一记录。所述核-末级缓存局部性判断模块用于根据记录的访问请求,判断核到末级缓存的通信是否存在局部性。具体地说,如果其中一个核(例如核0)最近连续多次记录的访问请求为:核0对同一个末级缓存(例如末级缓存2)进行访问,则判定核0与末级缓存2之间的通信存在局部性。其中所述多次可以为2次或大于2次,例如3次、4次、5次、6次、7次、8次、9次、10次、20次、50次等。所述核-末级缓存通信通道建立模块用于当其中一个核与一个末级缓存之间的通信存在局部性时,则在所述一个核与所述一个末级缓存之间建立直连通信通道。例如,由于核0与末级缓存2之间的通信存在局部性,则在核0与末级缓存2之间建立直连通信通道。当多组核与末级缓存之间的通信存在局部性时,例如,核0与末级缓存2之间的通信存在局部性,并且核1与末级缓存2之间的通信存在局部性,并且核2与末级缓存1之间的通信存在局部性,则可以分别在核0与末级缓存2之间、在核1与末级缓存2之间、在核2与末级缓存1之间建立直连通信通道。当多组核与末级缓存之间的通信存在局部性,并且只能够建议一条直连通信通道时,可以设置选择算法从所述多组核与末级缓存中确定一组,在所确定的一组核与末级缓存之间建立直连通信通道。所述选择算法可以是采用设置优先级的方法,例如核0与末级缓存2之间的通信存在局部性,并且核1与末级缓存2之间的通信存在局部性,并且核2与末级缓存1之间的通信存在局部性,如果核0与末级缓存2之间的通信的优先级最高,则在核0与末级缓存2之间建立直接通信通道。所述核-末级缓存通信通道释放模块用于当所述一个核与所述一个末级缓存之间的通信不再存在局部性时,释放所述通信通道。综上所述,根据存储数据请求的局部性,增加一条可配置的快速通道,可以提高环互连结构的通信效率,相比于XBAR结构,具有面积小,功耗低的优点,还能更好的保证访存局部性,使得末级缓存接受到的访问请求有良好的局部性,有利于末级缓存的性能提高。另外,对于不满足局部性的图形、图像处理情况,这种快速通道同样可以提高环互连结构的通信效率。例如,在图形、图像等流处理应用中,存储器会有大量数据供处理器计算使用,这些数据基于non-cacheable(即不可缓存)请求,不放入Cache。如果计算节点核0进行流处理的应用,访问存储节点末级缓存3,现有技术的环结构需要4拍,根据本发明的增强环互连结构通信效率的方法只需要1拍,环互连结构的通信效率提高75%。显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1