面向多核微处理器的片上互连网络路由方法

文档序号:7857098阅读:265来源:国知局
专利名称:面向多核微处理器的片上互连网络路由方法
技术领域
本发明涉及面向多核微处理器的片上互连网络体系结构,具体涉及一种从资源占用率和算法复杂度两方面对片上互连网络的路由方法进行优化的面向多核微处理器的片上网络路由方法。
背景技术
路由方法决定消息在网络中如何向目的结点路由。从控制方式来分,路由方法可
分为源路由和分布式路由。源路由在消息发送之前由源结点选择一条传送路径,并由消息携带路由信息。这种路由方法需要构造所有结点间的路由表,要求消息报文携带从源到目的的路由场信息。分布式路由先由源结点将携带目的结点地址的消息传送到某个临近结点,直到消息传送到目的结点。这种路由方法灵活但是控制较为复杂。对于高性能多核处理器,片上核的数目一般为4 16个,众核处理器中计算单元的数目会达到几十个。多核处理器的片上网络与处理器间的互连网络不同,由于结点数目少,通常采用较为简单的一维网络如线性阵列和环,如果结点数较多则一般采用2维mesh网络(2D-mesh)。具有几十个计算单元的众核处理器为了满足计算单元之间的通信,通常进一步扩展2D-mesh为3维mesh (3D_mesh)网络拓扑结构。在核数为8 12个的情况下,目前多核处理器采用源路由的路由方法,控制简单,硬件代价适中。当核数进一步增加,达到16 32个的规模时,继续使用源路由方法虽然控制简单,但是由于路由表规模增大和报文携带的路由场信息的增多,硬件资源占用率显著增加。使用分布式路由控制复杂,算法复杂度高。

发明内容
本发明要解决的技术问题是提供一种资源占用率低、路由算法复杂度低,路由计算速度快、应用范围广的面向多核微处理器的片上互连网络路由方法。为了解决上述技术问题,本发明采用的技术方案为一种面向多核微处理器的片上互连网络路由方法,其实施步骤如下I)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,包括跳步数和跳步方向;根据所述级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述输出端口信息生成路由场信息;4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。作为本发明 上述技术方案的进一步改进所述设备编号有设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。所述通信部件之间的拓扑结构为片上一维互连网络,所述跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右、水平向左、先垂直后向左和先垂直后向右方向共四种跳步方向。所述步骤3)的详细步骤如下1A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化设置循环变量的值为I,初始化路由场信息为空;1B)若源设备和目的设备之间的跳步数大于1,如果跳步数不大于I则进入步骤
1C),否则跳至步骤1E);1C)根据所述循环次数和跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;1D)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤1B),否则跳至步骤1E);1E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。或者,所述通信部件之间的拓扑结构为环形片上互连网络,所述跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向。所述步骤3)的详细步骤如下2A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;2B)若源设备和目的设备之间的跳步数大于I则进入步骤2C),否则跳至步骤2E);2C)根据跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;2D)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤2B),否则跳至步骤2E);2E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。或者,所述通信部件之间的拓扑结构为两行多列的二维mesh网络;所述步骤I)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;所述跳步方向根据两行多列的二维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向。所述步骤3)的详细步骤如下
3A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;3B)判断源设备和目的设备之间的跳步数是否大于1,如果跳步数大于I则进入步骤3C),否则跳至步骤3G);3C)判断源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号是否同为奇数或者同为偶数,如果同为奇数或者同为偶数则进入步骤3E),否则进入步骤3D);3D)判断当前跳是否为第O跳,如果是则将所述不同行的通信部件之间的传输方向对应的端口信息添加至路由场信息中,然后进入步骤3F);否则进入步骤3E);3E)比较源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号的大小,若源设备对应通信部件的通信部件编号较大则将所述同一行通信部件之间往较小通信部件编号的传输方向对应的端口信息添加至路由场信息中;若源设备对应通信 部件的通信部件编号较小则将所述同一行通信部件之间往较大通信部件编号的传输方向对应的端口信息添加至路由场信息中;3F)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤3C),否则跳至步骤3G);3G)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。本发明具有下述优点I、本发明通过使用规模较小的通信部件级联关系表代替传统的规模较大的硬件路由表,通过简洁的路由计算替代传统的直接查表获得路由场的方法,简化了路由算法,降低了片上路由场生成逻辑的资源占用率,提高了片上网络中路由计算的速度和效率,具有资源占用率低、路由算法复杂度低、路由计算速度快的优点。2、本发明能够适用于主流的片上互连网络结构,而且针对不同拓扑结构能够结合不同的通信部件和设备编号方式,采用经过优化的算法计算获得报文通过各通信部件时的输出端口号,具有应用范围广、使用灵活方便的优点。


图I为本发明实施例一的实施流程示意图。图2为本发明实施例一中通信部件的接口结构示意图。图3为本发明实施例一中的设备编号不意图。图4为本发明实施例一中一维片上互连网络的拓扑结构示意图。图5为本发明实施例一中路由场信息的数据结构示意图。图6为本发明实施例一中的路由场信息计算方法示意图。图7为本发明实施例二中环形片上互连网络的拓扑结构示意图。图8为本发明实施例二中的路由场信息计算方法示意图。图9为本发明实施例三中2维mesh片上互连网络的拓扑结构示意图。图10为本发明实施例三中的路由场信息计算方法示意图。图11为本发明实施例一、实施例二和实施例三的硬件资源占用率对比分析示意图。
具体实施例方式实施例一如图I所示,本实施例面向多核微处理器的片上互连网络路由方法的实施步骤如下I)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;2)根据通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,通信部件级联关系表包含任意两个通信部件之间的跳步数和跳步方向;3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的级联关系信息,级联关系信息包括跳步数和跳步方向;根据级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据每一跳的输出端口信息生成路由场信息;4)源设备将路由场信息写入待发送报文的报文头并根据路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。本实施例的步骤I)和步骤2)属于路由方法初始化阶段,只需要执行一次,初始化完成后,每次发送报文只需要从步骤3)开始。通信部件级联关系表(Stage ConnectionRelationship表,下文中简称SCR表)是对多核处理器片上互连网络的拓扑结构的数字描述,而非传统硬件路由表的路由场信息,用于简化路由算法,SCR表包含的信息包括跳步数和跳步方向,SCR表中以(行号,列号)方式索引,行号为报文的来源设备所连接的通信部件的部件号,列号为报文的目的设备所连接的通信部件的部件号。本实施例中,通信部件之间的拓扑结构为片上一维互连网络,跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右(顺时针)、水平向左(逆时针)、先垂直后向左和先垂直后向右方向共四种跳步方向。如图2所示,本实施例以一个具有3个级联端口的通信部件为例,对于目前集成的处理器核的数目为4到32个的情况,通信部件(Communication Unit,⑶)使用3个端口用于级联端口可以满足要求。第O号到第4号端口用于连接有通信要求的功能部件(FU0 FU4),例如处理器核、片上Cache、Cache —致性控制器、10控制器、片间互连控制器和存储控制器等;第5号到第7号端口用于通信部件的级联,可以和其它的通信部件⑶级联。⑶的各端口的功能完全一样,在实际实现中,哪些端口用于连接FU、哪些用于连接CU以及各端口的物理位置均可以根据需要进行配置,图中仅给出了 5个端口用于连接FU、3个端口连接⑶的实例。本实施例中,水平向右(顺时针)对应通信部件的6号端口,水平向左(逆时针)对应通信部件的5号端口,先垂直后向左和先垂直后向右方向均对应通信部件的7号端口。设备编号由设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。如图3所示,本实施例中设备的Device No.由高位的CU的编号CU No.和设备连接⑶的端口号Port No.拼接组合而成。⑶No.位于设备号的高位,⑶No.的位宽Cwidth由片上互连网络中所使用的CU的数目决定。假设CU的数目为N,则「Iogf I,设
备号的位宽为(Cwidth+3)。例如如果片上互连网络中级联的⑶为8个,则Cwidth的值为3,设备号的位宽为6。Port No.位于设备号编码的低三位,通信部件的O 7号端口的端口号(Port No.)为O 7,用3位的二进制数3’ bOOO 3’ bill表示。如图4所示,本实施例的片上互连网络为片上一维互连网络,该网络使用6个⑶构建,共连接16个处理器核。每个⑶的O 3号端口连接处理器核,4号端口连接存储单元。图中有两个不连接任何功能部件、仅用于级联的CU,被称作sCU (staged CU)。sCU的端口配置为仅具有两个端口 端口 5和端口 6,均用于级联其它的⑶,s⑶不连接任何FU。4个⑶通过级联端口依次连接,s⑶4是连接⑶I和⑶2的快速通路,可以提高⑶I和⑶2之间的通信带宽,降低通信延迟。s⑶5是连接⑶O和⑶3的快速通路,优化⑶O和⑶3之间的 通信性能。CUO、CUU CU2、CU3、sCU4和sCU5的编号为3b,000 3,blOl。以挂接在CUl上的C7(设备号为001_011)向挂接在⑶2上的C8(设备号为010_000)发送报文为例,说明本实例中报文的传输过程。数据每经过一个CU称作一跳(Hop),假设从源设备到目的地址共需要通过N个⑶,则需要N跳。首先是第O跳,报文从⑶I的垂直的7号端口输出,从s⑶4的5号端口入;然后是第I跳,报文从s⑶4的6号端口出,从⑶2的7号垂直端口入;最后是第2跳,报文从⑶2的O号端口中输出,到达CS,整个路由共经过3跳后完成。如图5所示,路由场信息保存了从源设备到目的设备所经过的所有CU的输出端口号。路由场信息自低位至高位分别存放每一跳所经过的CU的输出端口号,如输出端口为7,则路由信息为3’blll。对于sCU来说,由于只有一个输出端口,不需要选择端口号,因此路由信息可以填写任何值,为了简化,规定经过sCU的报文的路由信息默认填3’ b000。每跳存放3位路由信息,N跳的有效路由信息共计3N位。仍以C7向C8发送报文为例,完整的路由信息为9’ b000_000_lll,表示第O跳报文从端口 7输出,第I跳从默认端口输出,第2跳从端口 O输出。本实施例的通信部件级联关系表如下表I所示表I
I CUOCUlCU2CU3
CUO001—XX010—00010—01011—10CUl — 010JM001—XX011」IOlOJK)' CU2 010—00 011—10 —001—XX 100—10 _ CU3 011—11 010:01 100—11 001—XX表I中最左一列表示发起通信的源设备所连接的CU的编号,最上面一行表示数据所要传输的目的设备所连接的CU的编号。表中的信息用5位的二进制位表示,高3位表示从源设备到目的设备所需的跳步数,低2位表示报文在网络中传输的方向00表示向顺时针方向(水平时为向右方向)传输,01表不向逆时针方向(水平时为向左方向)传输,10表不从先垂直后向右方向输出,11表不先垂直后向左方向输出,XX表不跳步数位为I时不需要判断方向信息,可以为任意值。报文每经过一个CU或者SCU,跳步数减I。跳步数大于I时根据传输方向选择输出端口。SCU仅有一个输出端口,因此不需要选择。跳步数为I时不再根据传输方向选择输出端口,而是根据目的设备的端口号选择输出端口。如图6所示,本实施例步骤3)中根据SCR信息、报文的源设备⑶号(Source⑶No.)和目的设备CU号(Dev CU No.)计算产生报文传输过程完整的路由场信息的详细步骤如下1A)根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的跳步数(Hops)和跳步方向,初始化设置循环变量的值为1,初始化路由场信息为空。1B)若源设备和目的设备之间的跳步数(Hops)大于I则进入步骤1C),否则跳至步骤1E)。1C)根据循环次数和跳步方向获取当前跳对应的输出端口信息,并将端口信息添加至路由场信息中;若为逆时针方向且源设备CU号为O或者2时,填写3’ blOl ;若为逆时针方向且源设备⑶号为I或者3时,填写3’ bllO ;若为顺时针方向且源设备⑶号为O或 者2时,填写3’ bllO ;若为顺时针方向且源设备⑶号位为I或者3时,填写3’ blOl ;若为先垂直后向右方向或先垂直后向左方向,则循环次数值为I时填写3’ bill (表示当前跳从7号端口输出),循环次数为2时填写3’ b000(由于7号端口输出固定连接的是s⑶,因此从7号端口输出的报文在下一跳的路由信息固定为3’ b000),之后的循环中分别按照向右和向左方向处理。1D)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤1B),否则跳至步骤1E)。1E)使用目的设备(Device No.)对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。实施例二本实施例的主要流程与实施例一相同,其主要不同点如下I、本实施例的片上互连网络为环形片上互连网络,通信部件之间的拓扑结构为环形片上互连网络。2、本实施例的跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向;通信部件级联关系表中,每一项用于表示传输方向的低两位的定义与实例一不同,只有两种方向,没有垂直方向00表不向顺时针方向传输,01表不向逆时针方向传输;本实施例中,顺时针方向对应通信部件的6号端口,逆时针方向对应通信部件的5号端口。3、本实例中根据SCR信息、报文的源设备⑶号和目的设备⑶号计算产生报文传输过程完整的路由信息的算法是实例一中算法的简化。如图7所示,本实施例的环形片上互连网络通过4个⑶级联构成,支持16核处理器。每个CU连接4个处理器核和一个存储单元。在环网中凡是顺时针方向传输的数据均通过CU的端口 5输出;凡是逆时针方向传输的数据通过CU的端口 6输出。本实施例的通信部件级联关系表如下表2所示表权利要求
1.一种面向多核微处理器的片上互连网络路由方法,其特征在于其实施步骤如下 1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号; 2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的跳步数和跳步方向; 3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;根据所述跳步数和跳步方向逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述每一跳的输出端口信息生成路由场信息; 4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。
2.根据权利要求I所述的面向多核微处理器的片上互连网络路由方法,其特征在于所述设备编号由设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。
3.根据权利要求I或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于所述通信部件之间的拓扑结构为片上一维互连网络,所述跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右、水平向左、先垂直后向左和先垂直后向右方向共四种跳步方向。
4.根据权利要求3所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下 IA)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化设置循环变量的值为I,初始化路由场信息为空; IB)若源设备和目的设备之间的跳步数大于I则进入步骤1C),否则跳至步骤1E); IC)根据所述循环次数和跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中; ID)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤1B),否则跳至步骤1E); IE)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
5.根据权利要求I或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于所述通信部件之间的拓扑结构为环形片上互连网络,所述跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向。
6.根据权利要求5所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下 2A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;2B)若源设备和目的设备之间的跳步数大于I则进入步骤2C),否则跳至步骤2E); 2C)根据跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中; 2D)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤2B),否则跳至步骤2E); 2E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
7.根据权利要求I或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于所述通信部件之间的拓扑结构为两行多列的二维mesh网络;所述步骤I)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;所述跳步方向根据两行多列的二 维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向。
8.根据权利要求7所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下 3A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空; 3B)判断源设备和目的设备之间的跳步数是否大于1,如果跳步数大于I则进入步骤3C),否则跳至步骤3G); 3C)判断源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号是否同为奇数或者同为偶数,如果同为奇数或者同为偶数则进入步骤3E),否则进入步骤3D); 3D)判断当前跳是否为第O跳,如果是则将所述不同行的通信部件之间的传输方向对应的端口信息添加至路由场信息中,然后进入步骤3F);否则进入步骤3E); 3E)比较源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号的大小,若源设备对应通信部件的通信部件编号较大则将所述同一行通信部件之间往较小通信部件编号的传输方向对应的端口信息添加至路由场信息中;若源设备对应通信部件的通信部件编号较小则将所述同一行通信部件之间往较大通信部件编号的传输方向对应的端口信息添加至路由场信息中; 3F)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于I则进入步骤3C),否则跳至步骤3G); 3G)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
全文摘要
本发明公开了一种面向多核微处理器的片上互连网络路由方法,实施步骤如下1)对片上互连网络的通信部件进行编号,对连接在通信部件各端口上的设备进行编号;2)根据通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表;3)当某个通信部件端口上的源设备有报文需要发送时,查找通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向;根据跳步数和跳步方向逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息并生成路由场信息;4)将路由场信息写入待发送报文的报文头并根据路由场信息发送片上互连网络直至报文被发送至目的设备。本发明具有资源占用率低、路由计算速度快、路由算法复杂度低和应用范围广的优点。
文档编号H04L12/56GK102780628SQ20121026856
公开日2012年11月14日 申请日期2012年7月31日 优先权日2012年7月31日
发明者周宏伟, 张英, 晏小波, 曾坤, 李永进, 窦强, 衣晓飞, 谢伦国, 邓让钰, 马卓, 龚睿 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1