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

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

Info

Publication number
CN102780628B
CN102780628B CN201210268562.5A CN201210268562A CN102780628B CN 102780628 B CN102780628 B CN 102780628B CN 201210268562 A CN201210268562 A CN 201210268562A CN 102780628 B CN102780628 B CN 102780628B
Authority
CN
China
Prior art keywords
communication component
leapfrog
numbering
port
source device
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.)
Active
Application number
CN201210268562.5A
Other languages
English (en)
Other versions
CN102780628A (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

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

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)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
一种面向多核微处理器的片上互连网络路由方法,其实施步骤如下:
1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;所述设备编号有设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成;
2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;所述通信部件之间的拓扑结构为环形片上互连网络,所述跳步方向根据环形片上互连网络上通信部件的排列关系包括顺时针和逆时针共两种跳步方向;
3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,包括跳步数和跳步方向;根据所述级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述输出端口信息生成路由场信息;
4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备;
所述步骤3)的详细步骤如下:
2A)根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的跳步数和跳步方向,初始化路由场信息为空;
2B)若源设备和目的设备之间的跳步数大于1则进入步骤2C),否则跳至步骤2E);
2C)根据跳步方向获取当前跳对应的输出端口信息,并将所述端口信息添加至路由场信息中;
2D)将跳步数减1,判断剩余的跳步数是否大于1,如果跳步数大于1则进入步骤2B),否则跳至步骤2E);
2E)使用目的设备对应通信部件端口的端口信息添加至路由场信息中,路由场信息生成完毕。
一种面向多核微处理器的片上互连网络路由方法,其实施步骤如下:
1)对片上互连网络的通信部件进行编号得到通信部件编号,对连接在通信部件各端口上的设备根据通信部件编号和所连接的端口号进行编号得到设备编号;所述设备编号有设备对应通信部件的通信部件编号和设备对应通信部件端口的端口号拼接组合而成;
2)根据所述通信部件编号以及通信部件之间的拓扑结构建立通信部件级联关系表,所述通信部件级联关系表包含任意两个通信部件之间的级联关系信息,所述级联关系信息包括跳步数和跳步方向;所述通信部件之间的拓扑结构为两行多列的二维mesh网络;所述步骤1)中对片上互连网络的通信部件进行编号时将二维mesh网络中的一行通信部件编号为连续的偶数、将二维mesh网络中的另一行通信部件编号为连续的奇数;所述跳步方向根据两行多列的二维mesh网络上通信部件的排列关系包括同一行通信部件之间往较大通信部件编号的传输方向、同一行通信部件之间往较小通信部件编号的传输方向以及不同行的通信部件之间的传输方向共三种跳步方向;
3)当某个通信部件端口上的源设备有报文需要发送时,根据源设备对应的通信部件和目的设备对应的通信部件查找所述通信部件级联关系表获取源设备和目的设备之间的级联关系信息,包括跳步数和跳步方向;根据所述级联关系信息逐跳依次计算获得报文经过每一跳通信部件时的输出端口信息,根据所述输出端口信息生成路由场信息;
4)源设备将所述路由场信息写入待发送报文的报文头并根据所述路由场信息发送片上互连网络,报文在片上互连网络传输过程中各跳通信部件依次根据路由场信息将报文依次进行转发直至报文被发送至目的设备;
所述步骤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,则设备号的位宽为(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
表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
与前面两个实施例的通信部件级联关系表的表项内容不同,本实施例通信部件级联关系表的每个表项内容仅保存跳数信息,使用3位二进制位表示,不保存方向信息。由于本实例中2维mesh网络拓扑结构为对称拓扑结构,因此CUi(i∈[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 (3)

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

Families Citing this family (8)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102056263A (zh) * 2011-01-31 2011-05-11 中控科技集团有限公司 基于树形无线传感器网络的路由方法和装置及传感器设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442479B (zh) * 2007-11-22 2011-03-30 华为技术有限公司 P2p对等网络中节点失效后的路由更新方法、设备及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102056263A (zh) * 2011-01-31 2011-05-11 中控科技集团有限公司 基于树形无线传感器网络的路由方法和装置及传感器设备

Also Published As

Publication number Publication date
CN102780628A (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
CN102780628B (zh) 面向多核微处理器的片上互连网络路由方法
CN101808032B (zh) 面向静态XY路由算法的二维网格NoC路由器优化设计方法
US9825844B2 (en) Network topology of hierarchical ring with recursive shortcuts
CN105515987B (zh) 一种基于sdn架构面向虚拟光网络的映射方法
Prisacari et al. Bandwidth-optimal all-to-all exchanges in fat tree networks
US20140115218A1 (en) ASYMMETRIC MESH NoC TOPOLOGIES
CN111130858B (zh) 一种sd-wan场景下的动态多目标虚拟网络映射方法
US10250958B2 (en) Optical network-on-chip, optical router, and signal transmission method
CN109189720B (zh) 层次化片上网络拓扑结构及其路由方法
KR20140139032A (ko) 패킷플로우 상호연결 패브릭
CN105471749B (zh) 阶数灵活的低直径大规模互连网络拓扑结构及路由方法
CN103560967A (zh) 一种业务需求感知的虚拟数据中心映射方法
CN102866980B (zh) 用于多核微处理器片上互连网络的网络通信胞元
CN105119833A (zh) 一种用于片上网络的混合互连结构、其网络节点编码方法及其混合路由算法
US9529775B2 (en) Network topology of hierarchical ring with gray code and binary code
CN114844827B (zh) 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法
CN107959643A (zh) 一种通过交换芯片构建的交换系统及其路由算法
CN103873367B (zh) 路由数据分组以及确定路由的方法和装置、胖树网络
CN111193971B (zh) 一种面向机器学习的分布式计算互连网络系统及通信方法
CN105530206A (zh) 一种基于Torus网络的双接入结构及其工作方式
CN117061423B (zh) 一种胖树网络的多机路由方法、装置、系统及存储介质
CN103795641B (zh) 基于多维帧映射的光网络资源管理方法
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
CN108768864B (zh) 一种易拓展高容错的数据中心网络拓扑系统
CN107659501B (zh) 基于复杂梯度网络的能效优化传输方法和系统

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