CN104077138A - 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 - Google Patents
一种集成网络路由器的众核处理器系统及其集成方法和实现方法 Download PDFInfo
- Publication number
- CN104077138A CN104077138A CN201410302494.9A CN201410302494A CN104077138A CN 104077138 A CN104077138 A CN 104077138A CN 201410302494 A CN201410302494 A CN 201410302494A CN 104077138 A CN104077138 A CN 104077138A
- Authority
- CN
- China
- Prior art keywords
- network
- subnet
- chip
- network interface
- interface unit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种众核处理器系统集成网络路由器的方法,该方法包括:划分子网步骤用于通过将片上网络划分为多个子网平衡片内的网络请求,网络接口设备部署步骤用于将至少一个网络接口设备分布式部署在子网中,以确保部署的网络接口设备与子网内的处理器核之间的连通度最优化,以实现片上网络或片间网络快速数据交换。本发明还公开了一种集成网络路由器的众核处理器系统,该系统包含用于网络接口和数据交换的网络路由器,并且该网络路由器包含多个分布式嵌入片上网络的网络接口设备。
Description
技术领域
本发明涉及多核或众核处理器系统领域,特别是涉及处理器内集成网络路由器的系统。
背景技术
随着半导体工艺的进步,单芯片晶体管数目不断增加,芯片内可集成的处理器核数越来越多,多核/众核处理器成为当前处理器的主流。从平衡设计角度出发,处理器核数的增加大大提高了处理器对网络性能的需求。当前的网络设备带宽在快速提升:网络设备如Infiniband的HCA卡在2014年将推出最高300Gb/s带宽的产品,以太网的100Gb/s已有验证产品,400Gb/s的规范也在制定之中。当带宽达到300Gb/s时,就已经与当前的DDR3访存带宽相当,因此亟需对当前的网络I/O系统进行优化。
目前,将网络路由器集成在处理器内是提高网络I/O性能的重要解决方法。IBM Blue Gene系列高性能计算机将高性能网络路由器(Router)集成在了处理器之内,图1所示的是IBM Blue Gene/Q处理器集成网络路由器的方法:将一个网络路由器(Router)挂载于片上网络(交叉开关),路由器内部包括一个片上网络接口、若干片间网络接口、若干网络处理引擎和交叉开关,每个片上和片间网络接口都配有一个处理网络协议的网络处理引擎,集成的网络路由器仅通过一个片上网络接口与片上网络进行数据交换,片间网络接口仅用于跟其他处理器间的通信,交叉开关则实现Router内部的数据交换。在期刊名称为:“IEEE Micro,vol(32):2,March2012,Pages48-60”,文献名称为:“The IBMBlue Gene/Q Compute Chip”,作者为:Ruud Haring,Martin Ohmacht等的文献中公开了上述集成网络路由器的方法。
图1的结构存在三个问题:1.路由器仅与片上网络有唯一的接口,限制了网络接入带宽,无法有效服务于众核处理器中的大量处理器核;2.路由器需要实现两种网络接口(片间网络接口和片上网络接口),且端口数目为两类网络接口数目之和;3.路由器内部仍需要独立的交叉开关,使得路由器的扩展性受到限制,也增加了路由器的面积和布线复杂度。
发明内容
本发明所要解决的技术问题在于提供一种集成网络路由器的众核处理器系统及其集成方法和实现方法,以克服现有技术中存在的集中式网络路由器部署方式带来的网络接入带宽狭小,需要独立的交叉开关的问题。
为达上述目的,本发明一种众核处理器系统集成网络路由器的方法,应用于包含处理器、片上网络、片间网络和网络路由器的众核处理器系统,包括:
划分子网步骤:通过将所述片上网络划分为多个子网平衡片内的网络请求;
网络接口设备部署步骤:将至少一个网络接口设备分布式部署在所述子网中,以确保部署的所述网络接口设备与所述子网内的处理器核之间的连通度最优化,以实现所述片上网络或所述片间网络快速数据交换。
上述众核处理器系统集成网络路由器的方法,所述划分子网步骤还包括:
子网划分子步骤:基于带权值全网络扩散方法进行子网划分,获取最终划分成功的所述子网。
上述众核处理器系统集成网络路由器的方法,所述带权值全网络扩散方法包括:
步骤1:将所述片上网络作为对应的图G,所述处理器核对应图G的顶点,所述处理器核之间的连线对应图G的边,所述图G包含所述顶点集合V,所述边集合E和权值集合W;
步骤2:设置所述顶点集V中的顶点的初始扩散值;
步骤3:基于所述初始扩散值进行扩散值迭代更新,获取迭代过程中邻接的所述顶点的扩散值差的绝对值的最大值,并记录所述最大值对应的所述边,如果多次迭代中所述最大值对应所述边为同一条边,则删除所述最大值对应所述边,否则继续执行所述子网获取步骤;
步骤4:如果所述扩散值迭代更新步骤中,得到的子网数量没有增加,则执行所述扩散值迭代更新步骤,否则,计算所述模块度Q,如果所述模块度获取步骤的所述模块度Q值增加,则执行所述扩散值迭代更新步骤,否则,形成一个划分子网;
步骤5:如果所述划分子网直径大于所述子网直径,则所述划分子网需要继续划分,执行所述子网获取步骤,否则,根据所述子网规模阈值进行判断所述划分子网的规模;
步骤6:所述子网规模判断步骤中,所述划分子网规模小于所述子网规模阈值,则进行子网合并,输出最终划分所述子网;
步骤7:如果所有子网满足所述子网规模阈值和所述子网直径,则输出最终划分成功的子网。
上述众核处理器系统集成网络路由器的方法,所述步骤3中扩散迭代的方程符合如下定义:假设所述顶点L1、L2…Ln个顶点相连,定义为:
其中Di、Dj是分别是Li点和Lj点的扩散值,wij是Li点和Lj点之间边的权值;所述aij是图G的邻接矩阵中的元素。
上述众核处理器系统集成网络路由器的方法,所述模块度Q的计算公式为:
其中,所述所述参数Vi是划分出来的一个子网,wmn是m点和n点之间边的权值,所述k是已经划分完成的子网的数量。
上述众核处理器系统集成网络路由器的方法,所述划分子网步骤中,所述片上网络是根据路由器端口数目、片上网络结构特征、处理器内的网络请求特征及处理器引脚布局限制之任一或任意组合条件划分为多个子网。
本发明还提供一种集成网络路由器的众核处理器系统,采用如所述众核处理器系统集成网络路由器的方法,所述处理器系统包含:处理器、片上网络和片间网络,所述众核处理器系统还包含:
网络路由器:用于网络接口和数据交换,所述网络路由器包含多个分布式嵌入所述片上网络的网络接口设备;
其中,所述网络接口设备设置于所述片上网络划分的子网范围内,作为同一处理器内或处理器之间的网络接口,基于所述片上网络或所述片间网络进行数据的交换。
上述集成网络路由器的众核处理器系统,所述片上网络被分割为多个所述子网,每个所述子网配置至少一个所述网络接口设备。
上述集成网络路由器的众核处理器系统,所述网络接口设备进一步包括:网络处理引擎:用于解析所述片上网络接口与所述片间网络接口发送的网络数据包,实现网络通信协议。
本发明还提供了一种众核处理器系统的实现方法,应用于如所述的集成网络路由器的众核处理器系统,所述处理器系统包含:处理器、片上网络、片间网络和网络路由器,所述方法包括:
选择网络接口设备步骤:根据所述网络接口设备满足功能需求及性能要求的情况,选取所述子网内的网络接口设备;
计算路径步骤:根据已经选取的所述网络接口设备,进行从源处理器核到达目标所述网络接口设备的路径计算。
与现有技术相比,本发明的有益效果在于:
1.为每个子网提供网络接入能力,使得大量处理器核的网络访问请求分布于多个网络接口设备之中,提高了处理器整体的网络接入能力,且有利于实现大量处理器核访问网络的负载均衡;
2.利用高速的片上网络实现网络接口设备间交换,节省了以往处理器中路由器(Router)的专用数据交换资源(如路由器内的交叉开关);
3.分布式的网络接口设备放置策略,突破了传统处理器中集中式网络路由器的扩展性限制,提高了网络路由器的扩展性。
附图说明
图1为现有IBM Bluegene Q集成网络路由器结构示意图;
图2为本发明系统结构示意图;
图3为本发明实施例集成网络路由器的众核处理器结构示意图;
图4为本发明众核处理器集成网络路由器的方法流程示意图;
图5为本发明带权值全网络扩散方法流程示意图;
图6为本发明实施例众核处理器中集成网络路由器的方法示意图;
图7为本发明实施例带权值全网络扩散方法流程示意图;
图8为本发明众核处理器系统实现方法流程示意图;
图9是本发明的实施例众核处理器系统实现方法示意图;
图10是本发明具体实施例片间Mesh网络的众核处理器结构示意图。
其中,附图标记:
100网络路由器
101网络接口设备
S100~S200、S1~S7、310~320、510~640、S300~S400、410~450:本发明各实施例的施行步骤
具体实施方式
下面给出本发明的具体实施方式,结合图示对本发明做出了详细描述。
本发明的关键点在于将高速网络路由器(Router)功能分离为网络接口(NI:Network Interface)功能和交换(Switch)功能:
1.分布部署网络接口:将片上网络(On-chip network)分割为子网,为每个子网配置网络接口设备,提高网络接入能力,并实现处理器核间的网络负载均衡;
2.片上网络实现交换功能:将网络接口设备直接挂载高速片上网络之上,使用片上网络的交换功能,替代原有路由器内部独立的交叉开关,实现网络接口设备与处理器核间,网络接口设备间的交换功能。
本发明公开了提供一种在多核/众核处理器内集成高速网络路由器的方法和系统:将高速网络路由器(Router)功能分离为网络接口(NI:NetworkInterface)功能和交换(Switch)功能;将片上网络(On-chip network)分割为子网,为每个子网配置网络接口设备,实现片上流量的分布式注入,突破集中式网络路由器的扩展性限制,提高了网络路由器的扩展性;网络接口设备与传统的网络接口控制器(NIC,或称网卡)功能相似,传统的网络接口控制器挂载于I/O总线(如PCI-Express),而本发明的网络接口设备直接挂载高速片上网络之上,通过片上网络实现网络接口设备与处理器核间,网络接口设备间的交换功能,由片上网络替换路由器专用的交换部件,有利于降低芯片功耗和面积。
本发明提供的一种集成网络路由器的众核处理器系统,包含:处理器、片上网络和片间网络,如图2所示,还包含:
网络路由器100:用于网络接口和数据交换,网络路由器1包含多个分布式嵌入片上网络的网络接口设备101(网络接口设备1、网络接口设备2,…网络接口设备N);
其中,网络接口设备101设置于片上网络划分的子网范围内,作为同一处理器内或处理器之间的网络接口,基于所述片上网络或所述片间网络进行数据的交换。
其中,片上网络被分割为多个子网,每个子网配置至少一个网络接口设备11。
其中,网络接口设备101进一步包括:网络处理引擎用于解析片上网络接口与片间网络接口发送的网络数据包,实现网络通信协议。
以下结合图示,对本发明的众核处理器系统结构进行详细说明:
如图3所示,本发明系统包括:若干处理器核1,片上网络2,和若干网络接口设备3。
其中,该处理器核1,其功能在于负责运行计算任务,产生访存和I/O请求,本发明并不对处理器核的指令集进行限定,可以是X86、MIPS、或ARM等,此外,本发明也不对处理器核的数目进行限制。
其中,该片上网络2,由若干子网21组成,其功能在于实现处理器内所有部件的高速互连,涉及处理器核间互连,处理器核与内存控制器间互连,处理器核与Cache间互连,处理器核与网络接口设备间互连等。本发明并不对片上互连网络的具体拓扑结构、性能和路由算法进行限制,也不对其是否支持Cache一致性协议进行限制。
其中,该片上网络的子网21,其功能在于实现处理器内部分部件的高速互连,涉及处理器核间互连,处理器核与网络接口设备间互连等。
其中,该网络接口设备3,其功能在于实现片上处理器核和片外互连网络间的数据收发,每个片上网络的子网都包含一个网络接口设备,网络接口设备由片上网络接口31,片间网络接口32和网络处理引擎33构成。本发明不对片上网络接口31、片间网络接口32和网络处理引擎33的数目进行限制。
其中,该网络接口设备的片上网络接口31,其功能在于将网络接口设备挂接在片上网络之上,实现该网络接口设备与同一个处理器上的部件(包括处理器核和网络接口设备)间的数据收发;
其中,该网络接口设备的片间网络接口32,其功能在于将网络接口设备挂接在片间网络(全系统网络,实现处理器间互连)之上,实现该网络接口设备与其他处理器间的数据收发;
其中,该网络接口设备的网络处理引擎33,其功能在于解析网络数据包,实现网络通信协议;本发明中的网络处理引擎也可以是一个为加速网络收发性能而设计的异构处理器核,如网络处理器核等。
本发明还提供一种众核处理器系统集成网络路由器的方法,应用于包含处理器、片上网络、片间网络和网络路由器的众核处理器系统,如图4所示,该方法包括:
划分子网步骤S100:通过将片上网络划分为多个子网平衡片内的网络请求;
网络接口设备部署步骤S200:将至少一个网络接口设备分布式部署在子网中,以确保部署的网络接口设备与子网内的处理器核之间的连通度最优化,以实现片上网络或片间网络快速数据交换。
其中,划分子网步骤S100还包括:
子网划分子步骤S101:基于带权值全网络扩散方法进行子网划分,获取最终划分成功的子网。
其中,划分子网步骤中,片上网络是根据路由器端口数目、片上网络结构特征、处理器内的网络请求特征及处理器引脚布局限制之任一或任意组合条件划分为多个子网。
其中,如图5所示,带权值全网络扩散方法包括:
步骤S1:将片上网络作为对应的图G,处理器核对应图G的顶点,处理器核之间的连线对应图G的边,图G包含顶点集合V,边集合E和权值集合W;
步骤S2:设置顶点集V中的顶点的初始扩散值;
步骤S3:基于初始扩散值进行扩散值迭代更新,获取迭代过程中邻接的顶点的扩散值差的绝对值的最大值,并记录最大值对应的所述边,如果多次迭代中最大值对应边为同一条边,则删除最大值对应边,否则继续执行子网获取步骤;
步骤S4:如果扩散值迭代更新步骤中,得到的子网数量没有增加,则执行扩散值迭代更新步骤,否则,计算模块度Q,如果模块度获取步骤的模块度Q值增加,则执行扩散值迭代更新步骤,否则,形成一个划分子网;
步骤S5:如果划分子网直径大于子网直径,则划分子网需要继续划分,执行子网获取步骤,否则,根据子网规模阈值进行判断划分子网的规模;
步骤S6:子网规模判断步骤中,划分子网规模小于子网规模阈值,则进行子网合并,输出最终划分子网;
步骤S7:如果所有子网满足子网规模阈值和子网直径,则输出最终划分成功的子网。
其中,步骤3中扩散迭代的方程符合如下定义:假设顶点L1、L2…Ln个顶点相连,定义为:
其中Di、Dj是分别是Li点和Lj点的扩散值,wij是Li点和Lj点之间边的权值;aij是图G的邻接矩阵中的元素。
其中,模块度Q的计算公式为:
其中,L(Vi,Vj)=Σm∈Vi,n∈Vjwmn,参数Vi是划分出来的一个子网,wmn是m点和n点之间边的权值,k是已经划分完成的子网的数量。
以下结合图示,详细说明本发明方法实施例步骤:
本发明还涉及一种众核处理器集成网络路由器的方法,如图6所示,包括下列步骤:
步骤310.划分子网:根据片间网络对路由器的端口数目需求、片上网络的结构特征(连通度、局部性等)、处理器内的网络请求特征(类型、频率、延迟带宽需求等)和处理器引脚布局限制(数量、高速I/O引脚面积功耗等)等,将片上网络划分为若干子网,划分出的子网需要能够平衡片内的网络请求,并实现子网内处理器核与网络接口设备间的快速数据交互,跳转至步骤320;
步骤320.为每个子网部署网络接口设备:根据子网的结构和规模,将网络接口设备部署在子网中,其位置选择需要最优化网络接口设备与子网内处理器核间的连通度。
其中,对于步骤310的子网划分,我们提出一种基于带权值全网络扩散方法的子网划分算法,算法的输入包括:1)片上网络对应的图G=(V,E,W),其中V是顶点集,E是边集,权值集W表示网络中各个连接的带宽;2)图G的邻接矩阵A,aij是其中的元素。算法的输出为片上网络的图的划分S,如图7所示,具体包括如下步骤:
步骤510:对图G中的每一个顶点(处理器核)设定一个初始扩散值D(根据路由器端口数目、片上网络结构、网络请求特征和处理器引脚布局设定);
步骤520:使用扩散迭代方程对图G中的扩散值进行迭代更新,其中扩散迭代方程符合如下定义:假设顶点P与L1、L2…Ln等n个顶点相连,定义
其中Dp、DLi是分别是P点和Li点的扩散值,wLi是P点和Li点之间边的权值;此式子含义为一个顶点的扩散值是相邻顶点扩散值的加权均数。由于A是图G的邻接矩阵,aij是其中的元素,更一般的可以将等式写为:
为了更直观的理解此方程,需要将其变化为矩阵形式,因此定义:
所以可以将扩散方程(2)用矩阵形式进行描述为:
D=MD (4)
步骤530:计算图G中任意邻接两点的扩散值差的绝对值:ΔDij=|Di-Dj|,并找出此次迭代过程中最大的ΔD,并记录其边为emax;
步骤540:如果在多次迭代中emax不是同一条边,跳转到步骤520执行下一次迭代;反之则认为此边是最大扩散距离边,跳转至步骤550;
步骤550:从图G中删除最大扩散距离边emax,跳转至步骤560;
步骤560:如果子网的数目没有增加,跳到步骤520执行下一次迭代,否则跳转至步骤570;
步骤570:使用公式(5)计算模块度Q,Q用来描述分割子网中顶点的密集程度(Q值表示分割子网内部的边的比例减去在同样的子网结构下随机连接顶点的边的比例的期望值,Q值越大,说明所划分的域内连接越紧密)。在网络逐渐分裂的过程中,Q值会逐渐增加,当划分为k个子网时将达到峰值,之后开始减少,那么将在Q减少结束算法的运行。定义Q的计算公式:
其中L(Vi,Vj)=Σm∈Vi,n∈Vjwmn,参数Vi是划分出来的一个子网,k是现在划分的子网的数量。跳转至步骤580;
步骤580:如果整个网络的Q值的和增加,则跳转到步骤520执行下一次迭代;如果减少则跳转至步骤590;
步骤590:形成一个子网归入划分S,跳转至步骤600;
步骤600:如果该子网的直径大于设定的子网直径阈值,说明该子网需要继续拆分,使用该划分算法对这个子网实施划分操作;否则跳转至步骤610;
步骤610:如果该子网规模大于设定的子网规模阈值,则跳转至步骤630;如果子网规模小于子网规模阈值,跳转至步骤620;
步骤620:进行子网合并操作,一个子网可能与多个子网都有邻接,在合并之前需要根据子网直径和模块度函数综合判断它与哪个子网进行合并。随机选择一个规模过小的子网,并分别计算它与各个相邻子网合并后的子网直径和模块度函数Q,选择合并后子网直径不超过子网直径阈值,且模块度最大的子网进行合并,跳转至步骤630。
步骤630:输出一个子网,跳转至步骤640;
步骤640:若整个片上网络的所有子网都满足子网直径和子网规模阈值,则输出最终的划分S,否则跳转至步骤510继续进行子网划分。
本发明还提供一种众核处理器系统的实现方法,应用于如所述的集成网络路由器的众核处理器系统,该处理器系统包含:处理器、片上网络、片间网络和网络路由器,如图8所示,该方法包括:
选择网络接口设备步骤S300:根据网络接口设备满足功能需求及性能要求的情况,选取子网内的网络接口设备;
计算路径步骤S400:根据已经选取的网络接口设备,进行从源处理器核到达目标网络接口设备的路径计算。
以下结合图示,详细说明本发明实施例方法过程:
本发明涉及一种处理器核基于集成网络路由器的实现方法,如图9所示,主要涉及对网络接口设备的选择和到达所选网络接口设备的路径选择,包括下列步骤:
步骤410.选择本子网网络接口设备,跳转至步骤420;
步骤420.子网内网络接口设备若能满足功能需求,记录当前网络接口设备,跳转至步骤440,否则跳转至步骤430;
步骤430.选择满足功能需求的其他子网网络接口设备,记录当前网络接口设备,跳转至步骤440;
步骤440.当前选择的网络接口设备负载若能够满足性能要求或已经是最后一个网络接口设备则标记当前记录的网络接口设备为目标网络接口设备,跳转至步骤450,否则跳转至步骤430;
步骤450.计算到达网络接口设备的路径:根据片上和片间网络的状态(延迟、带宽、动态负载、拥塞程度等),使用片上网络的路由算法(如Mesh、Torus网络中的维序路由算法和自适应路由算法等,Fat-tree网络的健忘性路由算法等),计算从源处理器核到目标网络接口设备的路径。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种多核或众核处理器中集成网络路由器的方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
为了更直观的对本发明的内容进行描述,本发明给出一种集成网络路由器的众核处理器实施例,该实施例用于构建全系统Mesh网络(片间网络为Mesh拓扑),但本发明并不以此为限。如图10所示,该实施例在众核处理器(片上网络也为Mesh拓扑)中集成了4个网络接口设备,分别对应片间Mesh拓扑所需的X+,X-,Y+,Y-四个方向。根据网络接口设备的数量、片上网络拓扑结构、处理器核间的网络请求情况,图10将片上网络分割为4个子网,并根据片上网络的结构特征(连通度、局部性等)、处理器内的网络请求特征(类型、频率、延迟带宽需求等)和处理器引脚布局限制(数量、高速I/O引脚面积功耗等)等将四个网络接口设备分配至四个子网之中。
当处理器核需要往X-方向发送消息时,将选择X-方向对应的网络接口设备(按功能选择网络接口设备);当子网1中的处理器核要发送的消息,既可以发往X-也可以发往Y-方向时,则优先选择X-方向对应的网络接口控制设备,若X-方向对应的网络接口控制设备处于高负载状态,而Y-方向对应的网络接口控制设备负载较低,则选择Y-方向对应的网络接口控制设备。
相应地,若片间网络采用3D Torus网络拓扑,则设置6个网络接口设备(对应X+,X-,Y+,Y-,Z+,Z-六个方向),并将片上网络分割为6个子网,在每个子网中配置一个网络接口设备。
综上所述,本发明提供的集成网络路由器的众核处理器系统及其集成方法和实现方法,提高了处理器整体的网络接入能力,且有利于实现大量处理器核访问网络的负载均衡;节省了以往处理器中路由器的专用数据交换资源;突破了传统处理器中集中式网络路由器的扩展性限制,提高了网络路由器的扩展性。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种众核处理器系统集成网络路由器的方法,应用于包含处理器、片上网络、片间网络和网络路由器的众核处理器系统,其特征在于,所述集成网络路由器的方法包括:
划分子网步骤:通过将所述片上网络划分为多个子网平衡片内的网络请求;
网络接口设备部署步骤:将至少一个网络接口设备分布式部署在所述子网中,以确保部署的所述网络接口设备与所述子网内的处理器核之间的连通度最优化,以实现所述片上网络或所述片间网络快速数据交换。
2.根据权利要求1所述众核处理器系统集成网络路由器的方法,其特征在于,所述划分子网步骤还包括:
子网划分子步骤:基于带权值全网络扩散方法进行子网划分,获取最终划分成功的所述子网。
3.根据权利要求1所述众核处理器系统集成网络路由器的方法,其特征在于,所述带权值全网络扩散方法包括:
步骤1:将所述片上网络作为对应的图G,所述处理器核对应图G的顶点,所述处理器核之间的连线对应图G的边,所述图G包含所述顶点集合V,所述边集合E和权值集合W;
步骤2:设置所述顶点集V中的顶点的初始扩散值;
步骤3:基于所述初始扩散值进行扩散值迭代更新,获取迭代过程中邻接的所述顶点的扩散值差的绝对值的最大值,并记录所述最大值对应的所述边,如果多次迭代中所述最大值对应所述边为同一条边,则删除所述最大值对应所述边,否则继续执行所述子网获取步骤;
步骤4:如果所述扩散值迭代更新步骤中,得到的子网数量没有增加,则执行所述扩散值迭代更新步骤,否则,计算所述模块度Q,如果所述模块度获取步骤的所述模块度Q值增加,则执行所述扩散值迭代更新步骤,否则,形成一个划分子网;
步骤5:如果所述划分子网直径大于所述子网直径,则所述划分子网需要继续划分,执行所述子网获取步骤,否则,根据所述子网规模阈值进行判断所述划分子网的规模;
步骤6:所述子网规模判断步骤中,所述划分子网规模小于所述子网规模阈值,则进行子网合并,输出最终划分所述子网;
步骤7:如果所有子网满足所述子网规模阈值和所述子网直径,则输出最终划分成功的子网。
4.根据权利要求1所述众核处理器系统集成网络路由器的方法,其特征在于,所述步骤3中扩散迭代的方程符合如下定义:假设所述顶点L1、L2…Ln个顶点相连,定义为:
其中所述Di、Dj是分别是所述顶点Li点和Lj点的扩散值,所述wij是所述顶点Li点和Lj点之间边的权值;所述aij是所述图G的邻接矩阵中的元素。
5.根据权利要求1所述众核处理器系统集成网络路由器的方法,其特征在于,所述模块度Q的计算公式为:
其中,L(Vi,Vj)=Σm∈Vi,n∈Vjwmn,参数Vi是划分出来的一个子网,wmn是m点和n点之间边的权值,k是已经划分完成的子网的数量。
6.根据权利要求1所述众核处理器系统集成网络路由器的方法,其特征在于,所述划分子网步骤中,所述片上网络是根据路由器端口数目、片上网络结构特征、处理器内的网络请求特征及处理器引脚布局限制之任一或任意组合条件划分为多个子网。
7.一种集成网络路由器的众核处理器系统,采用如权利要求1-6中任一项所述众核处理器系统集成网络路由器的方法,所述包含处理器、片上网络和片间网络,其特征在于,所述众核处理器系统还包含:
网络路由器:用于网络接口和数据交换,所述网络路由器包含多个分布式嵌入所述片上网络的网络接口设备;
其中,所述网络接口设备设置于所述片上网络划分的子网范围内,作为同一处理器内或处理器之间的网络接口,基于所述片上网络或所述片间网络进行数据的交换。
8.根据权利要求7所述集成网络路由器的众核处理器系统,其特征在于,所述片上网络被分割为多个所述子网,每个所述子网配置至少一个所述网络接口设备。
9.根据权利要求7所述集成网络路由器的众核处理器系统,其特征在于,所述网络接口设备进一步包括:网络处理引擎:用于解析所述片上网络接口与所述片间网络接口发送的网络数据包,实现网络通信协议。
10.一种众核处理器系统的实现方法,应用于如权利要求7-9中任一项所述的集成网络路由器的众核处理器系统,所述处理器系统包含:处理器、片上网络、片间网络和网络路由器,其特征在于,所述方法包括:
选择网络接口设备步骤:根据所述网络接口设备满足功能需求及性能要求的情况,选取所述子网内的网络接口设备;
计算路径步骤:根据已经选取的所述网络接口设备,进行从源处理器核到达目标所述网络接口设备的路径计算。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302494.9A CN104077138B (zh) | 2014-06-27 | 2014-06-27 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
PCT/CN2015/074106 WO2015196833A1 (zh) | 2014-06-27 | 2015-03-12 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
US15/319,230 US10229087B2 (en) | 2014-06-27 | 2015-03-12 | Many-core processor system integrated with network router, and integration method and implementation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302494.9A CN104077138B (zh) | 2014-06-27 | 2014-06-27 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077138A true CN104077138A (zh) | 2014-10-01 |
CN104077138B CN104077138B (zh) | 2017-08-29 |
Family
ID=51598409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410302494.9A Active CN104077138B (zh) | 2014-06-27 | 2014-06-27 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10229087B2 (zh) |
CN (1) | CN104077138B (zh) |
WO (1) | WO2015196833A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015196833A1 (zh) * | 2014-06-27 | 2015-12-30 | 中国科学院计算技术研究所 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
CN107920035A (zh) * | 2016-10-05 | 2018-04-17 | 空中客车运营简化股份公司 | 被设计用于确定性交换式以太网的处理器 |
CN110610236A (zh) * | 2017-10-30 | 2019-12-24 | 上海寒武纪信息科技有限公司 | 一种用于执行神经网络运算的装置 |
CN112433826A (zh) * | 2021-01-27 | 2021-03-02 | 南京芯驰半导体科技有限公司 | 混合异构虚拟化通信方法及芯片 |
CN112825101A (zh) * | 2019-11-21 | 2021-05-21 | 北京希姆计算科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
CN112926283A (zh) * | 2021-04-09 | 2021-06-08 | 成都海光集成电路设计有限公司 | 用于集成电路的布局设计方法及装置、设备和存储介质 |
CN113138955A (zh) * | 2020-01-20 | 2021-07-20 | 北京灵汐科技有限公司 | 一种众核系统的片上网络互联结构和数据传输方法 |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11271870B2 (en) | 2016-01-27 | 2022-03-08 | Oracle International Corporation | System and method for supporting scalable bit map based P_Key table in a high performance computing environment |
US10348645B2 (en) | 2016-01-27 | 2019-07-09 | Oracle International Corporation | System and method for supporting flexible framework for extendable SMA attributes in a high performance computing environment |
US10142258B2 (en) * | 2016-04-08 | 2018-11-27 | Advanced Micro Devices, Inc. | Methods and apparatus for processing in a network on chip (NOC) |
CN107241255A (zh) * | 2017-06-09 | 2017-10-10 | 上海斐讯数据通信技术有限公司 | 一种网络合并方法及系统及路由器 |
CN111066017B (zh) * | 2017-08-01 | 2024-03-29 | 维萨国际服务协会 | 私人数据处理 |
US11398980B2 (en) | 2019-11-19 | 2022-07-26 | Advanced Micro Devices, Inc. | Packet router with virtual channel hop buffer control |
CN115766576B (zh) * | 2022-12-01 | 2024-05-28 | 电子科技大学 | 一种面向基于维度拆分式路由器的片上网络的角路由器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
US20110161346A1 (en) * | 2009-12-30 | 2011-06-30 | Yan Solihin | Data storage and access in multi-core processor architectures |
CN102799560A (zh) * | 2012-09-07 | 2012-11-28 | 上海交通大学 | 一种基于片上网络的动态可重构子网划分方法及系统 |
CN102819498A (zh) * | 2012-08-15 | 2012-12-12 | 上海交通大学 | 构建Cache一致性协议的方法、众核处理器及网络接口单元 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328350B2 (en) * | 2001-03-29 | 2008-02-05 | Arcot Systems, Inc. | Method and apparatus for secure cryptographic key generation, certification and use |
US8626266B1 (en) * | 2006-06-01 | 2014-01-07 | Perinatronics Medical Systems, Inc. | ECG triggered heart and arterial magnetic resonance imaging |
CN101540786A (zh) | 2009-04-13 | 2009-09-23 | 浙江大学 | 面向外设需求的片上网络通讯的优化方法 |
US8175107B1 (en) * | 2009-08-18 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Network routing based on MAC address subnetting |
US9264382B2 (en) * | 2012-05-11 | 2016-02-16 | Oracle International Corporation | System and method for routing traffic between distinct infiniband subnets based on fat-tree routing |
CN102752207B (zh) | 2012-07-06 | 2014-12-10 | 哈尔滨工业大学 | 可重配置的2D mesh片上网络结构及其重配置方法 |
CN102831011B (zh) * | 2012-08-10 | 2015-11-18 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN104077138B (zh) | 2014-06-27 | 2017-08-29 | 中国科学院计算技术研究所 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
-
2014
- 2014-06-27 CN CN201410302494.9A patent/CN104077138B/zh active Active
-
2015
- 2015-03-12 US US15/319,230 patent/US10229087B2/en active Active
- 2015-03-12 WO PCT/CN2015/074106 patent/WO2015196833A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161346A1 (en) * | 2009-12-30 | 2011-06-30 | Yan Solihin | Data storage and access in multi-core processor architectures |
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
CN102819498A (zh) * | 2012-08-15 | 2012-12-12 | 上海交通大学 | 构建Cache一致性协议的方法、众核处理器及网络接口单元 |
CN102799560A (zh) * | 2012-09-07 | 2012-11-28 | 上海交通大学 | 一种基于片上网络的动态可重构子网划分方法及系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229087B2 (en) | 2014-06-27 | 2019-03-12 | Institute Of Computing Technology Of The Chinese Academy Of Sciences | Many-core processor system integrated with network router, and integration method and implementation method thereof |
WO2015196833A1 (zh) * | 2014-06-27 | 2015-12-30 | 中国科学院计算技术研究所 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
CN107920035A (zh) * | 2016-10-05 | 2018-04-17 | 空中客车运营简化股份公司 | 被设计用于确定性交换式以太网的处理器 |
CN107920035B (zh) * | 2016-10-05 | 2020-07-24 | 空中客车运营简化股份公司 | 用于确定性交换式以太网的多核处理器类型装置、系统及运载工具 |
CN110610236A (zh) * | 2017-10-30 | 2019-12-24 | 上海寒武纪信息科技有限公司 | 一种用于执行神经网络运算的装置 |
US12050887B2 (en) | 2017-10-30 | 2024-07-30 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US11922132B2 (en) | 2017-10-30 | 2024-03-05 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US12057109B2 (en) | 2018-09-13 | 2024-08-06 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US12094456B2 (en) | 2018-09-13 | 2024-09-17 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and system |
US11996105B2 (en) | 2018-09-13 | 2024-05-28 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
US12057110B2 (en) | 2018-09-13 | 2024-08-06 | Shanghai Cambricon Information Technology Co., Ltd. | Voice recognition based on neural networks |
CN112825101B (zh) * | 2019-11-21 | 2024-03-08 | 广州希姆半导体科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
CN112825101A (zh) * | 2019-11-21 | 2021-05-21 | 北京希姆计算科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
CN113138955B (zh) * | 2020-01-20 | 2024-04-02 | 北京灵汐科技有限公司 | 一种众核系统的片上网络互联结构和数据传输方法 |
WO2021147721A1 (zh) * | 2020-01-20 | 2021-07-29 | 北京灵汐科技有限公司 | 众核系统的片上网络互联结构、数据传输方法、板卡、电子设备、计算机可读存储介质 |
CN113138955A (zh) * | 2020-01-20 | 2021-07-20 | 北京灵汐科技有限公司 | 一种众核系统的片上网络互联结构和数据传输方法 |
CN112433826A (zh) * | 2021-01-27 | 2021-03-02 | 南京芯驰半导体科技有限公司 | 混合异构虚拟化通信方法及芯片 |
CN112926283B (zh) * | 2021-04-09 | 2023-09-15 | 成都海光集成电路设计有限公司 | 用于集成电路的布局设计方法及装置、设备和存储介质 |
CN112926283A (zh) * | 2021-04-09 | 2021-06-08 | 成都海光集成电路设计有限公司 | 用于集成电路的布局设计方法及装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104077138B (zh) | 2017-08-29 |
WO2015196833A1 (zh) | 2015-12-30 |
US20170147528A1 (en) | 2017-05-25 |
US10229087B2 (en) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077138A (zh) | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 | |
CN103580890B (zh) | 一种可重配置片上网络结构及其配置方法 | |
US9202002B2 (en) | System for designing network on chip interconnect arrangements | |
CN103560967B (zh) | 一种业务需求感知的虚拟数据中心映射方法 | |
CN104885212A (zh) | 利用分区多跳网络的裸片堆叠装置 | |
CN106713468B (zh) | 一种分布式集群服务系统及其节点协同方法 | |
US20150036681A1 (en) | Pass-through routing at input/output nodes of a cluster server | |
CN103748837B (zh) | 使用可动态选择的冗余共享链路物理路径在基于开放核心协议的互连网络中改善数据吞吐量的方法 | |
CN106575283B (zh) | 使用元胞自动机的群集服务器配置 | |
CN103353861A (zh) | 实现分布式i/o资源池化的方法及装置 | |
US20150334010A1 (en) | Route mapping at individual nodes of a cluster server | |
Yazdanshenas et al. | Interconnect solutions for virtualized field-programmable gate arrays | |
US7106600B2 (en) | Interposer device | |
CN105095148B (zh) | 一种混合型三维片上网络 | |
Feng et al. | A Scalable Methodology for Designing Efficient Interconnection Network of Chiplets | |
Li et al. | Towards full virtualization of SDN infrastructure | |
CN107294746B (zh) | 一种部署业务的方法及设备 | |
CN109587080A (zh) | 一种基于拓扑划分的片上网络快速映射算法 | |
Göhringer et al. | Heterogeneous and runtime parameterizable star-wheels network-on-chip | |
Ueno et al. | VCSN: Virtual circuit-switching network for flexible and simple-to-operate communication in HPC FPGA cluster | |
Kumar et al. | Towards power efficient wireless NoC router for SOC | |
Cai et al. | Deadlock‐free adaptive 3D network‐on‐chips routing algorithm with repetitive turn concept | |
CN116910969A (zh) | 一种万节点级电磁暂态实时仿真平台及电磁暂态仿真方法 | |
ITVI20100245A1 (it) | Simulation system for implementing computing device models in a multi-simulation environment | |
CN103684881A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |