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

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

Info

Publication number
CN102780628A
CN102780628A CN2012102685625A CN201210268562A CN102780628A CN 102780628 A CN102780628 A CN 102780628A CN 2012102685625 A CN2012102685625 A CN 2012102685625A CN 201210268562 A CN201210268562 A CN 201210268562A CN 102780628 A CN102780628 A CN 102780628A
Authority
CN
China
Prior art keywords
communication component
leapfrog
port
field information
numbering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102685625A
Other languages
English (en)
Other versions
CN102780628B (zh
Inventor
周宏伟
邓让钰
晏小波
李永进
衣晓飞
张英
窦强
曾坤
谢伦国
龚睿
马卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210268562.5A priority Critical patent/CN102780628B/zh
Publication of CN102780628A publication Critical patent/CN102780628A/zh
Application granted granted Critical
Publication of CN102780628B publication Critical patent/CN102780628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种面向多核微处理器的片上互连网络路由方法,实施步骤如下:1)对片上互连网络的通信部件进行编号,对连接在通信部件各端口上的设备进行编号;2)根据通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表;3)当某个通信部件端口上的源设备有报文需要发送时,查找通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向;根据跳步数和跳步方向逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息并生成路由场信息;4)将路由场信息写入待发送报文的报文头并根据路由场信息发送片上互连网络直至报文被发送至目的设备。本发明具有资源占用率低、路由计算速度快、路由算法复杂度低和应用范围广的优点。

Description

面向多核微处理器的片上互连网络路由方法
技术领域
本发明涉及面向多核微处理器的片上互连网络体系结构,具体涉及一种从资源占用率和算法复杂度两方面对片上互连网络的路由方法进行优化的面向多核微处理器的片上网络路由方法。
背景技术
路由方法决定消息在网络中如何向目的结点路由。从控制方式来分,路由方法可分为源路由和分布式路由。源路由在消息发送之前由源结点选择一条传送路径,并由消息携带路由信息。这种路由方法需要构造所有结点间的路由表,要求消息报文携带从源到目的的路由场信息。分布式路由先由源结点将携带目的结点地址的消息传送到某个临近结点,直到消息传送到目的结点。这种路由方法灵活但是控制较为复杂。
对于高性能多核处理器,片上核的数目一般为4~16个,众核处理器中计算单元的数目会达到几十个。多核处理器的片上网络与处理器间的互连网络不同,由于结点数目少,通常采用较为简单的一维网络如线性阵列和环,如果结点数较多则一般采用2维mesh网络(2D-mesh)。具有几十个计算单元的众核处理器为了满足计算单元之间的通信,通常进一步扩展2D-mesh为3维mesh(3D-mesh)网络拓扑结构。在核数为8~12个的情况下,目前多核处理器采用源路由的路由方法,控制简单,硬件代价适中。当核数进一步增加,达到16~32个的规模时,继续使用源路由方法虽然控制简单,但是由于路由表规模增大和报文携带的路由场信息的增多,硬件资源占用率显著增加。使用分布式路由控制复杂,算法复杂度高。
发明内容
本发明要解决的技术问题是提供一种资源占用率低、路由算法复杂度低,路由计算速度快、应用范围广的面向多核微处理器的片上互连网络路由方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向多核微处理器的片上互连网络路由方法,其实施步骤如下:
1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;
2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;
3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,包括跳步数和跳步方向;根据所述级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述输出端口信息生成路由场信息;
4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。
作为本发明上述技术方案的进一步改进:
所述设备编号有设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。
所述通信部件之间的拓扑结构为片上一维互连网络,所述跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右、水平向左、先垂直后向左和先垂直后向右方向共四种跳步方向。
所述步骤3)的详细步骤如下:
1A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化设置循环变量的值为1,初始化路由场信息为空;
1B)若源设备和目的设备之间的跳步数大于1,如果跳步数不大于1则进入步骤1C),否则跳至步骤1E);
1C)根据所述循环次数和跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;
1D)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤1B),否则跳至步骤1E);
1E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
或者,所述通信部件之间的拓扑结构为环形片上互连网络,所述跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向。
所述步骤3)的详细步骤如下:
2A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;
2B)若源设备和目的设备之间的跳步数大于1则进入步骤2C),否则跳至步骤2E);
2C)根据跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;
2D)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤2B),否则跳至步骤2E);
2E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
或者,所述通信部件之间的拓扑结构为两行多列的二维mesh网络;所述步骤1)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;所述跳步方向根据两行多列的二维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向。所述步骤3)的详细步骤如下:
3A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;
3B)判断源设备和目的设备之间的跳步数是否大于1,如果跳步数大于1则进入步骤3C),否则跳至步骤3G);
3C)判断源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号是否同为奇数或者同为偶数,如果同为奇数或者同为偶数则进入步骤3E),否则进入步骤3D);
3D)判断当前跳是否为第0跳,如果是则将所述不同行的通信部件之间的传输方向对应的端口信息添加至路由场信息中,然后进入步骤3F);否则进入步骤3E);
3E)比较源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号的大小,若源设备对应通信部件的通信部件编号较大则将所述同一行通信部件之间往较小通信部件编号的传输方向对应的端口信息添加至路由场信息中;若源设备对应通信部件的通信部件编号较小则将所述同一行通信部件之间往较大通信部件编号的传输方向对应的端口信息添加至路由场信息中;
3F)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤3C),否则跳至步骤3G);
3G)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
本发明具有下述优点:
1、本发明通过使用规模较小的通信部件级联关系表代替传统的规模较大的硬件路由表,通过简洁的路由计算替代传统的直接查表获得路由场的方法,简化了路由算法,降低了片上路由场生成逻辑的资源占用率,提高了片上网络中路由计算的速度和效率,具有资源占用率低、路由算法复杂度低、路由计算速度快的优点。
2、本发明能够适用于主流的片上互连网络结构,而且针对不同拓扑结构能够结合不同的通信部件和设备编号方式,采用经过优化的算法计算获得报文通过各通信部件时的输出端口号,具有应用范围广、使用灵活方便的优点。
附图说明
图1为本发明实施例一的实施流程示意图。
图2为本发明实施例一中通信部件的接口结构示意图。
图3为本发明实施例一中的设备编号示意图。
图4为本发明实施例一中一维片上互连网络的拓扑结构示意图。
图5为本发明实施例一中路由场信息的数据结构示意图。
图6为本发明实施例一中的路由场信息计算方法示意图。
图7为本发明实施例二中环形片上互连网络的拓扑结构示意图。
图8为本发明实施例二中的路由场信息计算方法示意图。
图9为本发明实施例三中2维mesh片上互连网络的拓扑结构示意图。
图10为本发明实施例三中的路由场信息计算方法示意图。
图11为本发明实施例一、实施例二和实施例三的硬件资源占用率对比分析示意图。
具体实施方式
实施例一:
如图1所示,本实施例面向多核微处理器的片上互连网络路由方法的实施步骤如下:
1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;
2)根据通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,通信部件级联关系表包含任意两个通信部件之间的跳步数和跳步方向;
3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的级联关系信息,级联关系信息包括跳步数和跳步方向;根据级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据每一跳的输出端口信息生成路由场信息;
4)源设备将路由场信息写入待发送报文的报文头并根据路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。
本实施例的步骤1)和步骤2)属于路由方法初始化阶段,只需要执行一次,初始化完成后,每次发送报文只需要从步骤3)开始。通信部件级联关系表(Stage ConnectionRelationship表,下文中简称SCR表)是对多核处理器片上互连网络的拓扑结构的数字描述,而非传统硬件路由表的路由场信息,用于简化路由算法,SCR表包含的信息包括:跳步数和跳步方向,SCR表中以(行号,列号)方式索引,行号为报文的来源设备所连接的通信部件的部件号,列号为报文的目的设备所连接的通信部件的部件号。
本实施例中,通信部件之间的拓扑结构为片上一维互连网络,跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右(顺时针)、水平向左(逆时针)、先垂直后向左和先垂直后向右方向共四种跳步方向。如图2所示,本实施例以一个具有3个级联端口的通信部件为例,对于目前集成的处理器核的数目为4到32个的情况,通信部件(CommunicationUnit,CU)使用3个端口用于级联端口可以满足要求。第0号到第4号端口用于连接有通信要求的功能部件(FU0~FU4),例如处理器核、片上Cache、Cache一致性控制器、IO控制器、片间互连控制器和存储控制器等;第5号到第7号端口用于通信部件的级联,可以和其它的通信部件CU级联。CU的各端口的功能完全一样,在实际实现中,哪些端口用于连接FU、哪些用于连接CU以及各端口的物理位置均可以根据需要进行配置,图中仅给出了5个端口用于连接FU、3个端口连接CU的实例。本实施例中,水平向右(顺时针)对应通信部件的6号端口,水平向左(逆时针)对应通信部件的5号端口,先垂直后向左和先垂直后向右方向均对应通信部件的7号端口。
设备编号由设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。如图3所示,本实施例中设备的Device No.由高位的CU的编号CU No.和设备连接CU的端口号Port No.拼接组合而成。CU No.位于设备号的高位,CU No.的位宽Cwidth由片上互连网络中所使用的CU的数目决定。假设CU的数目为N,则
Figure BDA00001958784200051
设备号的位宽为(Cwidth+3)。例如:如果片上互连网络中级联的CU为8个,则Cwidth的值为3,设备号的位宽为6。Port No.位于设备号编码的低三位,通信部件的0~7号端口的端口号(Port No.)为0~7,用3位的二进制数3’b000~3’b111表示。
如图4所示,本实施例的片上互连网络为片上一维互连网络,该网络使用6个CU构建,共连接16个处理器核。每个CU的0~3号端口连接处理器核,4号端口连接存储单元。图中有两个不连接任何功能部件、仅用于级联的CU,被称作sCU(staged CU)。sCU的端口配置为仅具有两个端口:端口5和端口6,均用于级联其它的CU,sCU不连接任何FU。4个CU通过级联端口依次连接,sCU4是连接CU1和CU2的快速通路,可以提高CU1和CU2之间的通信带宽,降低通信延迟。sCU5是连接CU0和CU3的快速通路,优化CU0和CU3之间的通信性能。CU0、CU1、CU2、CU3、sCU4和sCU5的编号为3b’000~3’b101。以挂接在CU1上的C7(设备号为001_011)向挂接在CU2上的C8(设备号为010_000)发送报文为例,说明本实例中报文的传输过程。数据每经过一个CU称作一跳(Hop),假设从源设备到目的地址共需要通过N个CU,则需要N跳。首先是第0跳,报文从CU1的垂直的7号端口输出,从sCU4的5号端口入;然后是第1跳,报文从sCU4的6号端口出,从CU2的7号垂直端口入;最后是第2跳,报文从CU2的0号端口中输出,到达C8,整个路由共经过3跳后完成。
如图5所示,路由场信息保存了从源设备到目的设备所经过的所有CU的输出端口号。路由场信息自低位至高位分别存放每一跳所经过的CU的输出端口号,如输出端口为7,则路由信息为3’b111。对于sCU来说,由于只有一个输出端口,不需要选择端口号,因此路由信息可以填写任何值,为了简化,规定经过sCU的报文的路由信息默认填3’b000。每跳存放3位路由信息,N跳的有效路由信息共计3N位。仍以C7向C8发送报文为例,完整的路由信息为9’b000_000_111,表示第0跳报文从端口7输出,第1跳从默认端口输出,第2跳从端口0输出。
本实施例的通信部件级联关系表如下表1所示:
表1
Figure BDA00001958784200061
表1中最左一列表示发起通信的源设备所连接的CU的编号,最上面一行表示数据所要传输的目的设备所连接的CU的编号。表中的信息用5位的二进制位表示,高3位表示从源设备到目的设备所需的跳步数,低2位表示报文在网络中传输的方向:00表示向顺时针方向(水平时为向右方向)传输,01表示向逆时针方向(水平时为向左方向)传输,10表示从先垂直后向右方向输出,11表示先垂直后向左方向输出,xx表示跳步数位为1时不需要判断方向信息,可以为任意值。报文每经过一个CU或者sCU,跳步数减1。跳步数大于1时根据传输方向选择输出端口。sCU仅有一个输出端口,因此不需要选择。跳步数为1时不再根据传输方向选择输出端口,而是根据目的设备的端口号选择输出端口。
如图6所示,本实施例步骤3)中根据SCR信息、报文的源设备CU号(Source CU No.)和目的设备CU号(Dev CU No.)计算产生报文传输过程完整的路由场信息的详细步骤如下:
1A)根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的跳步数(Hops)和跳步方向,初始化设置循环变量的值为1,初始化路由场信息为空。
1B)若源设备和目的设备之间的跳步数(Hops)大于1则进入步骤1C),否则跳至步骤1E)。
1C)根据循环次数和跳步方向获取当前跳对应的输出端口信息,并将端口信息添加至路由场信息中;若为逆时针方向且源设备CU号为0或者2时,填写3’b101;若为逆时针方向且源设备CU号为1或者3时,填写3’b110;若为顺时针方向且源设备CU号为0或者2时,填写3’b110;若为顺时针方向且源设备CU号位为1或者3时,填写3’b101;若为先垂直后向右方向或先垂直后向左方向,则循环次数值为1时填写3’b111(表示当前跳从7号端口输出),循环次数为2时填写3’b000(由于7号端口输出固定连接的是sCU,因此从7号端口输出的报文在下一跳的路由信息固定为3’b000),之后的循环中分别按照向右和向左方向处理。
1D)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤1B),否则跳至步骤1E)。
1E)使用目的设备(Device No.)对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
实施例二
本实施例的主要流程与实施例一相同,其主要不同点如下:
1、本实施例的片上互连网络为环形片上互连网络,通信部件之间的拓扑结构为环形片上互连网络。
2、本实施例的跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向;通信部件级联关系表中,每一项用于表示传输方向的低两位的定义与实例一不同,只有两种方向,没有垂直方向:00表示向顺时针方向传输,01表示向逆时针方向传输;本实施例中,顺时针方向对应通信部件的6号端口,逆时针方向对应通信部件的5号端口。
3、本实例中根据SCR信息、报文的源设备CU号和目的设备CU号计算产生报文传输过程完整的路由信息的算法是实例一中算法的简化。
如图7所示,本实施例的环形片上互连网络通过4个CU级联构成,支持16核处理器。每个CU连接4个处理器核和一个存储单元。在环网中凡是顺时针方向传输的数据均通过CU的端口5输出;凡是逆时针方向传输的数据通过CU的端口6输出。本实施例的通信部件级联关系表如下表2所示:
表2
与实施例一相同,表2中的信息用5位的二进制位表示,高3位表示从源设备到目的设备所需的跳步数,低2位表示数据在网络中传输的方向。与实施例一不同的是方向信息的定义如下:00表示向顺时针方向传输,01表示向逆时针方向传输,xx表示跳步数位为1时不需要判断方向信息,可以为任意值。
如图8所示,本实施例步骤3)中根据SCR信息、报文的源设备CU号(Source CU No.)和目的设备CU号(Dev CU No.)计算产生报文传输过程完整的路由场信息的详细步骤如下:
2A)根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的跳步数(Hops)和跳步方向,初始化路由场信息为空。
2B)若源设备和目的设备之间的跳步数(Hops)大于1则进入步骤2C),否则跳至步骤2E)。
2C)根据跳步方向获取当前跳对应的输出端口信息,并将端口信息添加至路由场信息中;若跳步方向信息为顺时针方向时,当前跳的路由场信息填写为3’b110,若跳步方向信息为逆时针方向时,则当前跳的路由场信息填写3’b101。
2D)将循环变量加1,将跳步数(Hops)减1,判断剩余的跳步数(Hops)是否大于1,如果跳步数大于1则进入步骤2B),否则跳至步骤2E)。
2E)使用目的设备(Device No.)对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
实施例三:
本实施例的主要流程与实施例一相同,其主要不同点如下:
1、片上互连网络为二维mesh网络,通信部件之间的拓扑结构为两行四列的二维mesh网络;
2、本实施例的通信部件级联关系表中,每一项仅需要3位的二进制位表示,表示从源设备到目的设备所需的跳步数,与实例一不同的是不需要保存用于表示传输方向的信息;
3、对片上互连网络的通信部件进行编号具体是指将一行通信部件编号为连续的偶数、将另一行通信部件编号为连续的奇数;步骤4)中计算获得报文经过每一级通信部件时的输出端口号具体是指:通过SCR信息和源设备CU号(Source CU No.)与目的设备CU号(Dev CUNo.)的奇偶性质计算获得报文经过每一级通信部件时的输出端口号。步骤1)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;跳步方向根据两行多列的二维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向。本实施例中,同一行通信部件之间往较大通信部件编号的传输方向对应通信部件的6号端口,同一行通信部件之间往较小通信部件编号的传输方向对应通信部件的5号端口,不同行的通信部件之间的传输方向对应通信部件的7号端口。
如图9所示,本实施例的二维mesh网络由8个CU构成,拓扑结构分为上下两行,上面一行中CU的编号为偶数号,下面一行中CU的编号为奇数号。每个CU的第0~4号端口用于连接功能部件,为了简化图形未在图中标出,其中第0~3号端口连接处理器核,第4号端口连接存储单元,第5~7号端口作为CU级联端口,支持32个处理器核。报文沿顺时针方向水平传输时固定从每个CU的端口6输出,沿逆时针方向水平传输时固定从每个CU的端口5输出,沿垂直方向传输时固定从端口7输出。
本实施例的通信部件级联关系表如下表3所示:
表3
Figure BDA00001958784200091
与前面两个实施例的通信部件级联关系表的表项内容不同,本实施例通信部件级联关系表的每个表项内容仅保存跳数信息,使用3位二进制位表示,不保存方向信息。由于本实例中2维mesh网络拓扑结构为对称拓扑结构,因此CUi(∈[0,7])到CUj(j∈[0,7])的跳数与CUj到CUi的跳数相同,所以表3实际仅需要保存一半的信息。
如图10所示,本实施例步骤3)中根据SCR信息、报文的源设备CU号(Source CU No.)和目的设备CU号(Dev CU No.)计算产生报文传输过程完整的路由场信息的详细步骤如下:
3A)根据源设备对应的通信部件和目的设备对应的通信部件查找通信部件级联关系表获取源设备和目的设备之间的跳步数(Hops)和跳步方向,初始化路由场信息为空。
3B)判断源设备和目的设备之间的跳步数(Hops)是否大于1,如果跳步数大于1则进入步骤3C),否则跳至步骤3G)。
3C)判断源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号是否同为奇数或者同为偶数,如果同为奇数或者同为偶数则进入步骤3E),否则进入步骤3D)。
3D)判断当前跳是否为第0跳,如果是则将不同行的通信部件之间的传输方向对应的端口信息添加至路由场信息中(本实施例中的端口信息为3’b111,即报文从垂直方向的端口输出),然后进入步骤3F);否则进入步骤3E)。
3E)比较源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号的大小,若源设备对应通信部件的通信部件编号较大则将同一行通信部件之间往较小通信部件编号的传输方向对应的端口信息添加至路由场信息中;若源设备对应通信部件的通信部件编号较小则将同一行通信部件之间往较大通信部件编号的传输方向对应的端口信息添加至路由场信息中;在本实施例中,若源设备CU号大于目的设备CU号,则填写当前跳的路由信息为3’b101(报文往较小通信部件编号的传输方向对应的端口输出),否则填写当前跳的路由信息为3’b110(报文往较大通信部件编号的传输方向对应的端口输出)。
3F)将跳步数(Hops)减1,判断剩余的跳步数(Hops)是否大于1,如果跳步数(Hops)大于1则进入步骤3C),否则跳至步骤3G)。
3G)使用目的设备(Device No.)对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
本实施例中是以两行四列的二维mesh网络为例进行说明,此外也可以采用更多的列数,其原理与本实施例相同,因此在此不再赘述。
如图11所示,在实施例一、实施例二和实施例三的资源占用率对比图中,横轴为3种不同拓扑结构的片上网络,分别是16核一维(实施例一)、16核环形(实施例二)和32核2维mesh网络(实施例三),纵轴表示在三种片上互连网络中使用传统的基于路由表的路由方法或者上述三种实施例一、实施例二和实施例三提出的路由方法所占用的存储位,存储位越少代表硬件实现开销越小。分析图11可见,在3种片上网络中,使用上述实施例一、实施例二和实施例三所占用的存储位分别是使用传统路由表的路由方法所占用的存储位的41.7%、55.6%和18.8%,因此实施例一、实施例二和实施例三的路由方法比传统的基于路由表的路由方法的资源占用率低。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种面向多核微处理器的片上互连网络路由方法,其特征在于其实施步骤如下:
1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;
2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的跳步数和跳步方向;
3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;根据所述跳步数和跳步方向逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述每一跳的输出端口信息生成路由场信息;
4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备。
2.根据权利要求1所述的面向多核微处理器的片上互连网络路由方法,其特征在于:所述设备编号由设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成。
3.根据权利要求1或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于:所述通信部件之间的拓扑结构为片上一维互连网络,所述跳步方向根据片上一维互连网络上通信部件的排列关系包括水平向右、水平向左、先垂直后向左和先垂直后向右方向共四种跳步方向。
4.根据权利要求3所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下:
1A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化设置循环变量的值为1,初始化路由场信息为空;
1B)若源设备和目的设备之间的跳步数大于1则进入步骤1C),否则跳至步骤1E);
1C)根据所述循环次数和跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;
1D)将循环变量加1,将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤1B),否则跳至步骤1E);
1E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
5.根据权利要求1或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于:所述通信部件之间的拓扑结构为环形片上互连网络,所述跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向。
6.根据权利要求5所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下:
2A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;
2B)若源设备和目的设备之间的跳步数大于1则进入步骤2C),否则跳至步骤2E);
2C)根据跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;
2D)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤2B),否则跳至步骤2E);
2E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
7.根据权利要求1或2所述的面向多核微处理器的片上互连网络路由方法,其特征在于:所述通信部件之间的拓扑结构为两行多列的二维mesh网络;所述步骤1)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;所述跳步方向根据两行多列的二维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向。
8.根据权利要求7所述的面向多核微处理器的片上互连网络路由方法,其特征在于,所述步骤3)的详细步骤如下:
3A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;
3B)判断源设备和目的设备之间的跳步数是否大于1,如果跳步数大于1则进入步骤3C),否则跳至步骤3G);
3C)判断源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号是否同为奇数或者同为偶数,如果同为奇数或者同为偶数则进入步骤3E),否则进入步骤3D);
3D)判断当前跳是否为第0跳,如果是则将所述不同行的通信部件之间的传输方向对应的端口信息添加至路由场信息中,然后进入步骤3F);否则进入步骤3E);
3E)比较源设备对应通信部件的通信部件编号和目的设备对应通信部件的通信部件编号的大小,若源设备对应通信部件的通信部件编号较大则将所述同一行通信部件之间往较小通信部件编号的传输方向对应的端口信息添加至路由场信息中;若源设备对应通信部件的通信部件编号较小则将所述同一行通信部件之间往较大通信部件编号的传输方向对应的端口信息添加至路由场信息中;
3F)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤3C),否则跳至步骤3G);
3G)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
CN201210268562.5A 2012-07-31 2012-07-31 面向多核微处理器的片上互连网络路由方法 Active CN102780628B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210268562.5A CN102780628B (zh) 2012-07-31 2012-07-31 面向多核微处理器的片上互连网络路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210268562.5A CN102780628B (zh) 2012-07-31 2012-07-31 面向多核微处理器的片上互连网络路由方法

Publications (2)

Publication Number Publication Date
CN102780628A true CN102780628A (zh) 2012-11-14
CN102780628B CN102780628B (zh) 2014-12-17

Family

ID=47125389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210268562.5A Active CN102780628B (zh) 2012-07-31 2012-07-31 面向多核微处理器的片上互连网络路由方法

Country Status (1)

Country Link
CN (1) CN102780628B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106057A (zh) * 2012-12-25 2013-05-15 广东威创视讯科技股份有限公司 多处理器设备级联系统及其级联控制方法
CN105677605A (zh) * 2014-11-20 2016-06-15 深圳市中兴微电子技术有限公司 一种高效的可配置片上互联系统及其实现方法、装置
CN106792965A (zh) * 2016-12-16 2017-05-31 中国电子科技集团公司第五十四研究所 车队行进场景下的路由寻路方法
CN106953800A (zh) * 2017-04-21 2017-07-14 中国人民解放军国防科学技术大学 一种基于片上网络的自适应垂直路由方法及路由单元
CN108304343A (zh) * 2018-02-08 2018-07-20 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法
WO2020103736A1 (zh) * 2018-11-23 2020-05-28 阿里巴巴集团控股有限公司 数据传输设备和处理系统、消息分发方法和装置
CN112416852A (zh) * 2020-12-08 2021-02-26 海光信息技术股份有限公司 环形互连结构路由确定方法及装置
CN113824781A (zh) * 2021-09-16 2021-12-21 中国人民解放军国防科技大学 一种数据中心网络源路由方法与装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100039931A1 (en) * 2007-11-22 2010-02-18 Huawei Technologies Co., Ltd. Method, device and system for updating routes after node fails in p2p network
CN102056263A (zh) * 2011-01-31 2011-05-11 中控科技集团有限公司 基于树形无线传感器网络的路由方法和装置及传感器设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100039931A1 (en) * 2007-11-22 2010-02-18 Huawei Technologies Co., Ltd. Method, device and system for updating routes after node fails in p2p network
CN102056263A (zh) * 2011-01-31 2011-05-11 中控科技集团有限公司 基于树形无线传感器网络的路由方法和装置及传感器设备

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106057B (zh) * 2012-12-25 2016-06-29 广东威创视讯科技股份有限公司 多处理器设备级联系统及其级联控制方法
CN103106057A (zh) * 2012-12-25 2013-05-15 广东威创视讯科技股份有限公司 多处理器设备级联系统及其级联控制方法
CN105677605B (zh) * 2014-11-20 2019-04-30 深圳市中兴微电子技术有限公司 一种高效的可配置片上互联系统及其实现方法、装置
CN105677605A (zh) * 2014-11-20 2016-06-15 深圳市中兴微电子技术有限公司 一种高效的可配置片上互联系统及其实现方法、装置
US10198374B2 (en) 2014-11-20 2019-02-05 Sanechips Technology Co. Ltd. Configurable on-chip interconnection system and method and apparatus for implementing same, and storage medium
CN106792965A (zh) * 2016-12-16 2017-05-31 中国电子科技集团公司第五十四研究所 车队行进场景下的路由寻路方法
CN106792965B (zh) * 2016-12-16 2019-07-30 中国电子科技集团公司第五十四研究所 车队行进场景下的路由寻路方法
CN106953800A (zh) * 2017-04-21 2017-07-14 中国人民解放军国防科学技术大学 一种基于片上网络的自适应垂直路由方法及路由单元
CN106953800B (zh) * 2017-04-21 2019-12-17 中国人民解放军国防科学技术大学 一种基于片上网络的自适应垂直路由方法及路由单元
CN108304343A (zh) * 2018-02-08 2018-07-20 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法
WO2020103736A1 (zh) * 2018-11-23 2020-05-28 阿里巴巴集团控股有限公司 数据传输设备和处理系统、消息分发方法和装置
CN111224851A (zh) * 2018-11-23 2020-06-02 阿里巴巴集团控股有限公司 数据传输设备和处理系统、消息分发方法和装置
CN111224851B (zh) * 2018-11-23 2022-09-27 阿里巴巴集团控股有限公司 数据传输设备和处理系统、消息分发方法和装置
CN112416852A (zh) * 2020-12-08 2021-02-26 海光信息技术股份有限公司 环形互连结构路由确定方法及装置
CN112416852B (zh) * 2020-12-08 2023-11-21 海光信息技术股份有限公司 环形互连结构路由确定方法及装置
CN113824781A (zh) * 2021-09-16 2021-12-21 中国人民解放军国防科技大学 一种数据中心网络源路由方法与装置
CN113824781B (zh) * 2021-09-16 2023-10-31 中国人民解放军国防科技大学 一种数据中心网络源路由方法与装置

Also Published As

Publication number Publication date
CN102780628B (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN102780628B (zh) 面向多核微处理器的片上互连网络路由方法
US8601423B1 (en) Asymmetric mesh NoC topologies
US9825844B2 (en) Network topology of hierarchical ring with recursive shortcuts
Prisacari et al. Bandwidth-optimal all-to-all exchanges in fat tree networks
CN109189720B (zh) 层次化片上网络拓扑结构及其路由方法
CN102510404B (zh) 数据中心的一种无损持续可扩展互联结构
EP3226490B1 (en) Optical network-on-chip, optical router and signal transmission method
CN105282038A (zh) 用于移动卫星网络中基于稳定性分析的分布式星群组网优化方法
Wang et al. SprintNet: A high performance server-centric network architecture for data centers
CN114844827B (zh) 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法
US9529775B2 (en) Network topology of hierarchical ring with gray code and binary code
CN105530206A (zh) 一种基于Torus网络的双接入结构及其工作方式
Xie et al. Mesh-of-Torus: a new topology for server-centric data center networks
Rahman et al. High and stable performance under adverse traffic patterns of tori-connected torus network
CN105224501B (zh) 改进圆环面网络及其确定数据包传输路径的方法和装置
Ebrahimi et al. Partitioning methods for unicast/multicast traffic in 3D NoC architecture
CN115580572B (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
CN107659501B (zh) 基于复杂梯度网络的能效优化传输方法和系统
CN106789750B (zh) 一种高性能计算互连网络系统及通信方法
CN112001141B (zh) 脑网络启发的中大规模片上互连系统综合方法
CN114237985A (zh) 修复纠删码存储系统中失效存储块的方法及相关设备
Rahman et al. Dynamic communication performance of a TESH network under the nonuniform traffic patterns
CN106209683A (zh) 基于数据中心广域网的数据传输方法及系统
Rahman et al. A deadlock-free dimension order routing for hierarchical 3d-mesh network
Liu et al. A path optimized multicast routing algorithm for 3D network-on-chip

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant