一种基于层次化Q-routing规划的路由方法

文档序号:25741990发布日期:2021-07-06 18:52阅读:212来源:国知局
一种基于层次化Q-routing规划的路由方法

本发明属于集成电路片上网络的通信技术领域,特别涉及一种基于层次化q-routing规划的片上网络路由方法。



背景技术:

随着摩尔定律逐渐失效,半导体工艺的发展逐渐放缓,单核处理器的工作频率遇到瓶颈难以快速增长。传统总线结构的片上系统(systemonchip,soc)扩展性差、并行度低等缺点日趋明显,要想提高整颗芯片的工作频率,需要使用传统总线以外的新方法,即片上网络(networkonchip,noc)通信。noc具有良好的扩展性,可以并行地处理芯片内部多个ip核的数据,有效解决了功耗、性能、面积等问题。

noc包括拓扑结构、路由算法和交换技术等方面,本专利研究其中的路由算法。路由算法为在noc中的数据包提供传输方向,是noc中极为重要的一环。一种优良的路由算法将通过迅速、合理的路径规划,提高传输效率,增大吞吐量。

拆分式q-routing是一种基于强化学习的片上网络路由算法。用以在源路由器节点到目标路由器节点之间寻找到耗时最短的路由路径。可以较好解决noc在传输大量数据时带来的数据延时、功耗增加、路由器温度升高等问题。但随着片上网络的规模不断增大,网络拥塞将会越来越严重,拆分式q-routing将出现路径规划时间太长,以至于失去时效性,难以满足需求的问题。



技术实现要素:

针对现有技术的不足,本发明提出了一种基于层次化q-routing规划的路由方法,以期弥补传统q-routing的不足,进一步提高noc的传输性能、减低功耗、增大吞吐量;同时能通过压缩路由表减少硬件电路面积。

本发明为达到上述发明目的,采用如下技术方案:

本发明一种基于层次化q-routing规划的路由方法,是应用于由w个路由器节点、w个资源节点和若干条互连通道所组成的片上网络中,所述路由器节点包含输入端口、输出端口、拥塞感知器、多路选通器、访问路由表;其特点是,在所述路由器节点中设置学习模块;所述学习模块包括:学习方式仲裁器、层次化控制模块、路由表选择模块、3个子学习模块、3个路由表;所述路由方法是按如下步骤进行:

步骤1:将所有路由器节点按照如下规则划分三层网络结构,从而形成金字塔结构;所述规则为:

在第1层网络结构中将w个路由器节点以每x2个节点划分为一组,从而构成由个虚拟路由器组所构成的第1层网络结构;

在第2层网络结构中将个虚拟路由器组以每y2个节点划分为一组,从而构成由个虚拟路由器组所构成的第2层网络结构;

在第3层网络结构中将个虚拟路由器组以z2个节点划分为一组,从而构成由1个虚拟路由器组所构成的第3层;

3个子学习模块和3个路由表对应各个层的网络结构;每个子学习模块均包括:r矩阵、q矩阵、q值比较器;

令l1i,h表示第1层网络结构中第i个路由器节点所对应的第h个子学习模块,i<x2,h=1,2,3;

令lji表示第j层网络结构中第i个虚拟路由器组,j≠1;

令l3i:l2i表示第3层网络结构的第i个虚拟路由器组中处于第2层网络结构的第i个虚拟路由器组;

令l3i:l2i:l1i,h表示第3层网络结构的第i个虚拟路由器组中处于第2层网络结构中第i个虚拟路由器组内的第1层网络结构中的第i个路由器节点所对应的第h个子学习模块;

步骤2:各个路由器节点在各层网络结构中进行拥塞程度感知与并行学习;

步骤2.1:以l3i:l2i:l1i,1作为当前路由器节点第1个子学习模块;对于处于第1层网络结构中当前路由器节点,通过自身的拥塞感知器对自身的输入端口进行占用率计数,对自身的输出端口进行流量计数,从而得出各条路径上的第1层拥塞等级,并存入第1层网格结构中l3i:l2i:l1i,1所表示的第1个子学习模块的r矩阵中;

对处于第2层网络结构中l3i:l2i:l1i,2所表示的第2个子学习模块,通过对第2层网络结构中第i个虚拟路由器组内各节点的拥塞等级进行平均池化,得到池化后的拥塞等级并存入第2层网络结构中l3i:l2i:l1i,2所表示的第2个子学习模块的r矩阵中;

对处于第3层网络结构中l3i:l2i:l1i,3所表示的第3个子学习模块,通过对第3层网络结构中第i个虚拟路由器组内各节点的拥塞等级进行平均池化,得到池化后的拥塞等级并存入最顶层网络结构中l3i:l2i:l1i,3所表示的第3个子学习模块的r矩阵中;

步骤2.2:初始化i=0;

步骤2.3:将l3i:l2i:l1i,h,h=1,2,3所表示的子学习模块里的奖励值均初始化为目的奖励值;将其他的路由器节点中子学习模块里的奖励值均初始化为0;

步骤2.4:对处于第1层网络结构中l3i:l2i:l1i,1所表示的第1个子学习模块,读取与其邻接路由器节点上的子学习模块的最大奖励值,并根据l3i:l2i:l1i,1所表示的第1个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给所有的邻接路由器节点;

对处于第2层网络结构中l3i:l2i:l10,2所表示的第2个子学习模块,读取与l3i:l2i:l10,2所表示的第2个子学习模块相邻的虚拟路由器组中处于同一位置上的第2个子学习模块的最大奖励值,并作为l3i:l2i所表示的第i个虚拟路由器组中所有节点的最大奖励值;根据第l3i:l2i:l10,2所表示的第2个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给与l3i:l2i:l10,2所表示的第2个子学习模块相邻的虚拟路由器组中处于同一位置上的第2个子学习模块;

对处于第3层网络结构中l3i:l2i:l10,3所表示的第3个子学习模块,读取与l3i:l2i:l10,3所表示的第3个子学习模块相邻的虚拟路由器组中处于同一位置上的第3个子学习模块的最大奖励值,并作为第3层网络结构中第i个虚拟路由器组l3i中所有节点的最大奖励值;根据第3层网络结构中l3i:l2i:l10,3所表示的第3个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给与l3i:l2i:l10,3所表示的第3个子学习模块相邻的虚拟路由器组中处于同一位置上的第3个子学习模块;

步骤2.5:当得到各个路由器节点的各个子学习模块的下一跳的路径信息后,每个路由器节点的各个子学习模块的下一跳的路径信息并行传输至所述层次化控制模块中;

步骤3:在所述层次化控制模块中对路径信息进行修正,即:自高层网络结构向低层网络结构进行路径信息纠正,再将纠正后的路径信息从自低层网络结构向高层网络结构进行方向反传输,从而使得路由器节点的各个子学习模块均得到纠正后的路径信息,并将纠正后的路径信息存入至对应层网络结构的路由表中;

步骤4:将i+1赋值给i后返回步骤2.3,直到i=max-1为止,从而完成每个路由器节点作为目的节点的路径规划,其中max表示每层网络结构中最大的虚拟路由器组内路由器节点数量;

步骤5:片上网络数据包的传输:

片上网络中的数据包通过访问各个层网络结构中的路由表,依次经过输入端口和多路选通器,在多路选通器对学习模块中的路由表选择模块进行访问操作;

所述路由表选择模块读取数据包中的目的路由器节点的位置信息,并按访问规则访问路由表并取出路由表中存储的路径信息:

根据路由表中所取出的路径信息,如果所取出的路径信息为返回信息,则目的路由器节点将数据包传送到自身的收包器中,否则根据取出的路径信息送入对应的输出端口,从而完成数据包的传输。

本发明所述的基于层次化q-routing规划的路由算法的特点也在于,所述步骤3是按如下步骤进行:

步骤3.1、所述学习方式仲裁器判断送入层次化控制模块的路径信息的来源,如果是l3i:l2i:l10,h,h=1,2,3所表示的第1个子学习模块、第2个子学习模块、第3个子学习模块,则表示路径信息是来源于相邻的虚拟路由器组中处于同一位置上的子学习模块;否则表示路径信息是来源于同一个虚拟路由器组中第0个路由器节点所对应的第h个子学习模块;

步骤3.2、按照纠正规则依次从第3层网络结构向第1层网络结构进行路径信息纠正;

步骤3.3、判断是否满足所述反传输规则,若是,则按照反传输规则依次从第1层网络结构向第3层网络结构进行反传输,否则,按照策略1或策略2依次从第1层网络结构向第3层网络结构进行反传输;其中,所述策略1为直接得到本层未被纠正的路径信息;策略2为获取下层未被纠正过的路径信息;

步骤3.4、将完成纠正和反传输后的路径信息送入对应层网络结构的路由表中。

所述纠正规则为:

若l3i:l2i:l1i,2所表示的第2个子学习模块位于第3层网格结构中相邻虚拟路由器组的位置上,且l3i:l2i:l1i,3所表示的第3个子学习模块中的路径信息需要跨过相邻虚拟路由器组来传输;则l3i:l2i:l1i,2所表示的第2个子学习模块的路径信息更改为l3i:l2i:l1i,3所表示的第3个子学习模块的路径信息,并产生纠正信号;否则,保留l3i:l2i:l1i,2所表示的第2个子学习模块的路径信息;

若l3i:l2i:l1i,1所表示的第1个子学习模块位于第2层网格结构中相邻虚拟路由器组的位置上,且l3i:l2i:l1i,2所表示的第2个子学习模块中的路径信息需要跨过相邻虚拟路由器组来传输;则l3i:l2i:l1i,1所表示的第1个子学习模块的路径信息更改为l3i:l2i:l1i,2所表示的第2个子学习模块划的路径信息,并产生纠正信号;否则,保留l3i:l2i:l1i,1所表示的第1个子学习模块的路径信息;

所述反传输规则为:

若l3i:l2i:l1i,h,h=1,2所表示的第1个子学习模块和第2个子学习模块的路径信息被纠正,则l3i:l2i:l1i,h,h=1,2所表示的第1个子学习模块和第2个子学习模块的路径信息反传输到l3i:l2i:l1i,(h+1),h=1,2所表示的第2个子学习模块和第3个子学习模块,否则不进行反传输。

所述目的奖励值=(p-1)×q,其中,p表示相应层网络结构中虚拟路由器组内的路由器节点数量,q表示最大堵塞等级所对应的加权值。

所述加权处理的规则为:

若下一跳是通路,则最大奖励值减去y;

若下一跳是一级堵塞,则最大奖励值减去3×y+1;

若下一跳是二级堵塞,则最大奖励值减去3×(3×y+1)+1;

若下一跳是器件边缘或临时失活,则零最大奖励值为零;其中,y表示正整数。

所述访问规则为:

步骤a、初始化i=3;

步骤b、从所述第i层网络结构中开始根据目的路由器节点的位置信息进行对比,若数据包的目的路由器节点在第i层网络结构所对应的组内,则将i-1赋值给i后,返回步骤b,直到i=1为止,否则,数据包访问第i层网络结构中路由表。

与现有技术相比,本发明的有益效果在于:

1、本发明的基于层次化q-routing规划的片上网络路由方法,通过复用学习模块组成各种规模的noc系统;每个路由器节点进行层次化的并行学习,极大减少了路径规划的时间,从而更好的适应noc网络环境堵塞状况的实时变化。

2、本发明将路由表进行了拆分压缩,通过多张路由表映射整合成一张完整的路由表,这样大大减少了路由表所占用的资源,且这个减小幅度随着noc网络的规模增大而进一步增加。以一个8×8大小的路由网络为例,在未引入层次化之前需要8×8×4bit(4bit代表四个方向),如果以三张q-routing进行复现则只需要3×4×4bit(每个区域4个节点),可见后者减少了80%的面积资源。

3、本发明通过减少部分节点的学习层次,即小部分节点进行多层学习,大部分节点进行非多层学习,从而减少了q-routing电路面积资源的消耗,同时也便利整个系统电路的布局布线。

附图说明

图1为本发明路由器节点结构图;

图2为本发明学习模块配置示意图;

图3为本发明路由器节点分层示例图;

图4为本发明层次化q-routing实现模块图;

图5为本发明纠正规则、反传输规则示例图;

图6为本发明路由表读取流程图;

图7为本发明noc系统实例流程图。

具体实施方式

本实施例中的一种基于层次化q-routing规划的路由方法,实现在64个路由器节点、64个资源节点和若干条互连通道所组成的片上网络中,参阅图1及图2所示的学习模块配置方式进行配置,路由器节点包含输入端口、输出端口、拥塞感知器、多路选通器、访问路由表;其特征是,在路由器节点中设置学习模块;参阅图4,学习模块包括:学习方式仲裁器、层次化控制模块、路由表选择模块、3个子学习模块、3个路由表。可以增加网络结构和子学习模块、路由表的个数来适应更多的路由器节点网络;参阅图7,该路由方法是按如下步骤进行:

步骤1:参阅图3,将所有路由器节点按照如下规则划分三层网络结构,从而形成金字塔结构;这样分层的目的是可以并行学习,获得耗时短、传输速率高的传输路径。该规则为:

在第1层网络结构中将64个路由器节点以每4个节点划分为一组,从而构成由16个虚拟路由器组所构成的第1层网络结构;

在第2层网络结构中将16个虚拟路由器节点以每4个节点划分为一组,从而构成由4个虚拟路由器组所构成的第2层网络结构;

在第3层网络结构中将4个虚拟路由器节点以z2个节点划分为一组,从而构成由1个虚拟路由器组所构成的第3层;

3个子学习模块和3个路由表;每个子学习模块均包括:r矩阵、q矩阵、q值比较器;

令l10,h表示第1层网络结构中第i个路由器节点所对应的第h个子学习模块,i<x2,h=1,2,3;

令lji表示第j层网络结构中第i个虚拟路由器组,j≠1;

令l3i:l2i表示第3层网络结构的第i个虚拟路由器组中处于第2层网络结构的第i个虚拟路由器组;

令l3i:l2i:l1i,h表示第3层网络结构的第i个虚拟路由器组中处于第2层网络结构中第i个虚拟路由器组内的第1层网络结构中的第i个路由器节点所对应的第h个子学习模块;

步骤2:各个路由器节点在各层网络结构中进行拥塞程度感知与并行学习;

步骤2.1:以l3i:l2i:l1i,1作为当前路由器节点第1个子学习模块;对于处于第1层网络结构中当前路由器节点,通过自身的拥塞感知器对自身的输入端口进行占用率计数,对自身的输出端口进行流量计数,从而得出各条路径上的第1层拥塞等级,并存入第1层网格结构中l3i:l2i:l1i,1所表示的第1个子学习模块的r矩阵中;拥塞等级r值3‘b000表示通路,3‘b001表示一级堵塞,3’b010表示二级堵塞,3‘b111表示不可抵达的通道(完全堵塞或者临时失活状态)。

对处于第2层网络结构中l3i:l2i:l1i,2所表示的第2个子学习模块,通过对第2层网络结构中第i个虚拟路由器组内各节点的拥塞等级进行平均池化,得到池化后的拥塞等级并存入第2层网络结构中l3i:l2i:l1i,2所表示的第2个子学习模块的r矩阵中;

对处于第3层网络结构中l3i:l2i:l1i,3所表示的第3个子学习模块,通过对第3层网络结构中第i个虚拟路由器组内各节点的拥塞等级进行平均池化,得到池化后的拥塞等级并存入最顶层网络结构中l3i:l2i:l1i,3所表示的第3个子学习模块的r矩阵中;

步骤2.2:初始化i=0;

步骤2.3:将l3i:l2i:l1i,h,h=1,2,3所表示的子学习模块里的奖励值均初始化为目的奖励值;本实施例中,目的奖励值=39,虚拟路由器组内的路由器节点数量为4,最大堵塞等级所对应的加权值为13。将其他的路由器节点中子学习模块里的奖励值均初始化为0;

步骤2.4:对处于第1层网络结构中l3i:l2i:l1i,1所表示的第1个子学习模块,读取与其邻接路由器节点上的子学习模块的最大奖励值,并根据l3i:l2i:l1i,1所表示的第1个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给所有的邻接路由器节点;

对处于第2层网络结构中l3i:l2i:l10,2所表示的第2个子学习模块,读取与l3i:l2i:l10,2所表示的第2个子学习模块相邻的虚拟路由器组中处于同一位置上的第2个子学习模块的最大奖励值,并作为l3i:l2i所表示的第i个虚拟路由器组中所有节点的最大奖励值;根据第l3i:l2i:l10,2所表示的第2个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给与l3i:l2i:l10,2所表示的第2个子学习模块相邻的虚拟路由器组中处于同一位置上的第2个子学习模块;

对处于第3层网络结构中l3i:l2i:l10,3所表示的第3个子学习模块,读取与l3i:l2i:l10,3所表示的第3个子学习模块相邻的虚拟路由器组中处于同一位置上的第3个子学习模块的最大奖励值,并作为第3层网络结构中第i个虚拟路由器组l3i中所有节点的最大奖励值;根据第3层网络结构中l3i:l2i:l10,3所表示的第3个子学习模块中r矩阵,对所读取的最大奖励值进行加权处理,得到加权后的奖励值,并选择加权后的最大奖励值传给与l3i:l2i:l10,3所表示的第3个子学习模块相邻的虚拟路由器组中处于同一位置上的第3个子学习模块;

具体实施中,加权处理的规则为:

若下一跳是通路,则最大奖励值减去1;

若下一跳是一级堵塞,则最大奖励值减去4;

若下一跳是二级堵塞,则最大奖励值减去13;

若下一跳是器件边缘或临时失活,则零最大奖励值为零;

步骤2.5:当得到各个路由器节点的各个子学习模块的下一跳的路径信息后,每个路由器节点的各个子学习模块的下一跳的路径信息并行传输至层次化控制模块中;

步骤3:参阅图5,在层次化控制模块中对路径信息进行修正,即:自高层网络结构向低层网络结构进行路径信息纠正,再将纠正后的路径信息从自低层网络结构向高层网络结构进行方向反传输,从而使得路由器节点的各个子学习模块均得到纠正后的路径信息,并将纠正后的路径信息存入至对应层网络结构的路由表中;

步骤3.1:学习方式仲裁器判断送入层次化控制模块的路径信息的来源,如果是l3i:l2i:l10,h,h=1,2,3所表示的第1个子学习模块、第2个子学习模块、第3个子学习模块,则表示路径信息是来源于相邻的虚拟路由器组中处于同一位置上的子学习模块;否则表示路径信息是来源于同一个虚拟路由器组中第0个路由器节点所对应的第h个子学习模块;

步骤3.2:按照纠正规则依次从第3层网络结构向第1层网络结构进行路径信息纠正;

步骤3.3:判断是否满足反传输规则,若是,则按照反传输规则依次从第1层网络结构向第3层网络结构进行反传输,否则,按照策略1或策略2依次从第1层网络结构向第3层网络结构进行反传输;其中,策略1为直接得到本层未被纠正的路径信息;策略2为获取下层未被纠正过的路径信息;

步骤3.4:将完成纠正和反传输后的路径信息送入对应层网络结构的路由表中。

该纠正规则为:

若l3i:l2i:l1i,2所表示的第2个子学习模块位于第3层网格结构中相邻虚拟路由器组的位置上,且l3i:l2i:l1i,3所表示的第3个子学习模块中的路径信息需要跨过相邻虚拟路由器组来传输;则l3i:l2i:l1i,2所表示的第2个子学习模块的路径信息更改为l3i:l2i:l1i,3所表示的第3个子学习模块的路径信息,并产生纠正信号;否则,保留l3i:l2i:l1i,2所表示的第2个子学习模块的路径信息;

若l3i:l2i:l1i,1所表示的第1个子学习模块位于第2层网格结构中相邻虚拟路由器组的位置上,且l3i:l2i:l1i,2所表示的第2个子学习模块中的路径信息需要跨过相邻虚拟路由器组来传输;则l3i:l2i:l1i,1所表示的第1个子学习模块的路径信息更改为l3i:l2i:l1i,2所表示的第2个子学习模块划的路径信息,并产生纠正信号;否则,保留l3i:l2i:l1i,1所表示的第1个子学习模块的路径信息;

该反传输规则为:

若l3i:l2i:l1i,h,h=1,2所表示的第1个子学习模块和第2个子学习模块的路径信息被纠正,则l3i:l2i:l1i,h,h=1,2所表示的第1个子学习模块和第2个子学习模块的路径信息反传输到l3i:l2i:l1i,(h+1),h=1,2所表示的第2个子学习模块和第3个子学习模块,否则不进行反传输;

步骤4:将i+1赋值给i后返回步骤2.3,直到i=3为止,从而完成每个路由器节点作为目的节点的路径规划。

步骤5:参阅图5,片上网络数据包的传输如下:

片上网络中的数据包通过访问各个层网络结构中的路由表,依次经过输入端口和多路选通器,在多路选通器对学习模块中的路由表选择模块进行访问操作;

路由表选择模块读取数据包中的目的路由器节点的位置信息,包含在第3层的第几组,第2层的第几组,第1层的第几个节点信息,并按如下访问规则访问路由表并取出路由表中存储的路径信息:

步骤a、初始化i=3;

步骤b、从第i层网络结构中开始根据目的路由器节点的位置信息进行对比,若数据包的目的路由器节点在第i层网络结构所对应的组内,则将i-1赋值给i后,返回步骤b,直到i=1为止,否则,数据包访问第i层网络结构中路由表。

根据路由表中所取出的路径信息,如果所取出的路径信息为返回信息,则目的路由器节点将数据包传送到自身的收包器中,否则根据取出的路径信息送入对应的输出端口,从而完成数据包的传输。

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