CN116226025A - 数据包传输方法、调度管理单元、芯片和显卡 - Google Patents
数据包传输方法、调度管理单元、芯片和显卡 Download PDFInfo
- Publication number
- CN116226025A CN116226025A CN202310117599.6A CN202310117599A CN116226025A CN 116226025 A CN116226025 A CN 116226025A CN 202310117599 A CN202310117599 A CN 202310117599A CN 116226025 A CN116226025 A CN 116226025A
- Authority
- CN
- China
- Prior art keywords
- node
- transmitted
- data packet
- intermediate routing
- routing
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000007726 management method Methods 0.000 claims description 36
- 230000002787 reinforcement Effects 0.000 claims description 17
- 230000008447 perception Effects 0.000 claims description 12
- 230000005284 excitation Effects 0.000 claims description 8
- 238000011144 upstream manufacturing Methods 0.000 claims description 5
- 108010001267 Protein Subunits Proteins 0.000 claims description 2
- 238000012549 training Methods 0.000 description 25
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 102000004902 Iron regulatory protein 2 Human genes 0.000 description 4
- 108090001028 Iron regulatory protein 2 Proteins 0.000 description 4
- 102000004901 Iron regulatory protein 1 Human genes 0.000 description 3
- 108090001025 Iron regulatory protein 1 Proteins 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000002223 garnet Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据包传输方法、调度管理单元、芯片和显卡,该数据包传输方法包括:确定待传输数据包的源节点和目标节点;根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点;将所述至少一个中间路由节点的标识信息发送给所述待传输数据包的源节点,使所述待传输数据包的源节点将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,以使所述待传输数据包被按照XY路由算法依次传输到各所述中间路由节点后,到达所述待传输数据包的目标节点。本方案能够提高对数据包进行传输的效率。
Description
技术领域
本申请实施例涉及芯片技术领域,尤其涉及一种数据包传输方法、调度管理单元、芯片和显卡。
背景技术
片上网络(Network On Chip,NoC)将芯片上的多个节点连接在一起,使各节点之间可以可靠地通信,节点包括处理元件(Process Element,PE)和路由(router),处理元件包括处理器、动态随机存取内存(DRAM)、私有缓存、网络接口等硬件资源。片上网络的拓扑结构包括网格网络(Mesh)、圆环网络(Torus)和环形网络等,节点之间通过传输数据包实现通信,数据包从源节点发出后,从一个节点传输到另一个节点,直至到达目标节点。
目前,节点通过片上网络传输数据包时,基于XY路由算法传输数据包,数据包从源节点发出后,首先沿X维方向将数据包传输到与目标节点处于同一列的节点,然后沿Y维方向将数据包传输到目标节点。
然而,片上网络中相连接节点之间以数据流的形式传输数据包,如果有多个数据包需要从一个节点传输到相连接的另一个节点,则需要依次传输各数据包,出现数据拥堵的问题,导致数据包传输效率较低。
发明内容
有鉴于此,本申请实施例提供一种数据包传输方法、调度管理单元、芯片和显卡,以至少解决或缓解上述问题。
根据本申请实施例的第一方面,提供了一种应用于调度管理单元的数据包传输方法,包括:确定待传输数据包的源节点和目标节点;根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点;将所述至少一个中间路由节点的标识信息发送给所述待传输数据包的源节点,使所述待传输数据包的源节点将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,以使所述待传输数据包被按照XY路由算法依次传输到各所述中间路由节点后,到达所述待传输数据包的目标节点。
根据本申请实施例的第二方面,提供了一种应用于片上网络中节点的数据包传输方法,包括:获取待传输数据包的头微片,其中,所述头微片中存储有至少一个中间路由节点的标识信息,所述至少一个中间路由节点基于所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定;根据所述头微片中存储的各所述中间路由节点的标识信息,按照XY路由算法向所述中间路由节点传输所述待传输数据包,使所述待传输数据包依次通过各所述中间路由节点后到达所述目标节点。
根据本申请实施例的第三方面,提供了一种调度管理单元,包括:读取子单元,用于确定待传输数据包的源节点和目标节点;规划子单元,用于根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点;输出子单元,用于将所述至少一个中间路由节点的标识信息发送给所述待传输数据包的源节点,使所述待传输数据包的源节点将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,以使所述待传输数据包被按照XY路由算法依次传输到各所述中间路由节点后,到达所述待传输数据包的目标节点。
根据本申请实施例的第四方面,提供了一种片上网络的节点,包括:获取子单元,用于获取待传输数据包的头微片,其中,所述头微片中存储有至少一个中间路由节点的标识信息,所述至少一个中间路由节点基于所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定;传输子单元,用于根据所述头微片中存储的各所述中间路由节点的标识信息,按照XY路由算法向所述中间路由节点传输所述待传输数据包,使所述待传输数据包依次通过各所述中间路由节点后到达所述目标节点。
根据本申请实施例的第五方面,提供了一种芯片,包括:根据上述第三方面所述的调度管理单元;多个根据上述第四方面所述的片上网络的节点。
根据本申请实施例的第六方面,提供了一种显卡,包括:根据上述第五方面所述的芯片。
根据本申请实施例提供的数据包传输方案,根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点,将各中间路由节点的标识信息发送给待传输数据包的源节点后,源节点将各中间路由节点的标识信息存储到待传输数据包的头微片中,使得片上网络中的节点可以按照XY路由算法依次将待传输数据包传输到各中间路由节点,进而将待传输数据包传输到目标节点。由于中间路由节点根据片上网络中各节点的数据传输状态确定,中间路由节点作为待传输数据包途经的节点,可以确定待传输数据包的合理传输路径,避开数据流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而可以提高对数据包进行传输的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例的显卡的示意图;
图2是本申请一个实施例的芯片的示意图;
图3是本申请一个实施例的数据包传输方法的流程图;
图4是本申请一个实施例的强化学习的示意图;
图5是本申请一个实施例的片上网络的示意图;
图6是本申请另一个实施例的数据包传输方法的流程图;
图7是本申请另一个实施例的片上网络的示意图;
图8是本申请一个实施例的调度管理单元的示意图;
图9是本申请一个实施例的网片网络的节点的示意图;
图10是本申请一个实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
首先,对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释。
片上网络:片上网络(Network On Chip,NoC)是片上***(System On Chip,SoC)一种新的通信方法。片上网络将芯片上的多个节点连接在一些,使各节点之间可以可靠地通信。片上网络包括的各节点可构成的拓扑结构包括2D/3D的网格网络(Mesh)、圆环网络(Torus)和环形网络等。
节点:节点是构成片上网络的元素,也被称为瓦片(Tile),节点包括处理元件(Process Element,PE)和路由(router),相连接节点之间通过传输数据包进行通信,数据包从一个节点包括的路由传输到另一个节点包括的路由。在图形处理器(GraphicsProcessing Unit,GPU)中节点包括的处理元件为流处理器。
微片:当一个消息被注入片上网络后,该消息被分割为一个或多个数据包,然后将数据包分割为具有固定长度的微片(Flit),微片(Flit)为流控单元(Flow ControlUnits)。微片包括头微片(head flit)、体微片(body flit)和尾微片(tail flit),头微片存储有数据包的源节点、目标节点的标识信息,体微片存储数据包的具体数据,尾微片表示数据包结束。
源节点:片上网络中发出数据包的节点为源节点。
目标节点:片上网络中数据包所需到达的节点为目标节点,目标节点可以与源节点直接相连,也可以通过一个或多个中间节点与源节点间接相连。当目标节点与源节点直接相连时,源节点直接将数据包发送给目标源节点。当目标节点与源节点通过中间节点相连接时,源节点将数据包发送给中间节点,由一个或多个中间节点将数据包转发给目标节点。
XY路由算法:数据包从源节点发送到目标节点的过程中,若在X维方向需要路由则一直沿X维方向路由直到当前节点与目标节点在同一列,然后沿Y维方向路由到达目标节点。
显卡
图1示出了一种显卡100的示意图。显卡(Video card)是计算机基础的组成部分之一,将计算机***需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器正确显示,是连接显示器和计算机主板的重要组件,其内置的并行计算能力也用于深度学习等运算。
显卡包括集成显卡、独立显卡和核芯显卡。集成显卡集成在主板的北桥芯片内,共享***内存或自带内存。独立显卡是将显示芯片及相关器件制作成一个独立于电脑主板的板卡,成为专业的图像处理和并行计算的硬件设备。核芯显卡集成在CPU内,共享***内存资源。
以独立显卡为例,如图1所示,显卡10可以包括印刷电路板(PCB)11、图形处理器(Graphics Processing Unit,GPU)12、显存13、供电接口14、输入接口15和输出接口16等。
印刷电路板11为图像处理器12、显存13、供电接口14、输入接口15和输出接口16提供机械支撑及各部件之间的电连接。印刷电路板11上设置有电容、电感、控制器等。
图形处理器12又被称为显示核心、显示芯片等。图形处理器12是显卡的核心,用于处理图像和图形相关计算工作,还用于深度学习运算等。图形处理器12包括运算单元、控制单元、缓存单元等。
显存13的数量可以是多个,用于缓存图形处理器12处理过的或即将提取的渲染数据。
供电接口14通过印刷电路板11上的导线与图形处理器12、显存13等相连,为图形处理器12、显存13等供电。
输入接口15与主板相连接,以实现CPU与图形处理器12之间的数据传输。在一些实施例中,输入接口15可以为PCI-E接口。
输出接口16用于连接到显示器,输出接口16包括VGA、DVI、HDMI、DP、SUB-C等中的一个或多个。
本申请主要着眼于图形处理器12内部的流量控制,具体实现方案会在后续实施例中进行详细说明。
芯片
图2是本申请一个实施例的芯片20的示意图。芯片20可以是上述实施例中的图形处理器12,即芯片20为GPU,但本申请实施例不局限于此,芯片20可以是满足下述结构和功能的任意芯片,比如芯片20可以是CPU、基础设置处理器(IPU)等。
如图2所示,芯片20包括调度管理单元21和多个节点22。多个节点22构成片上网络,片上网络的拓扑可以是2D/3D的网格网络(Mesh)、圆环网络(Torus)和环形网络等,节点22包括处理元件221和路由222,处理元件221可以是处理器、DRAM、私有缓存、网络接口等硬件资源。在一个实施例中,芯片20为GPU时,节点22中的处理元件221可以是流处理器。
调度管理单元21用于对各节点22进行调度管理,控制数据包在各节点22之前的流转。
节点22之间进行数据包传输时,如果在片上网络中源节点与目标节点直接相连,则源节点通过其路由将数据包发送至目标节点的路由,如果在片上网络中源节点与目标节点并非直接相连,则源节点通过其路由将数据包发送给中间节点,通过一个或多个中间节点的转发将数据包传输到目标节点。
由于片上网络中相连节点22之间以数据流的形式传输数据包,如果有多个数据包需要从一个节点22传输到另一个节点22,则各数据包需要排队等待传输,造成片上网络的通信拥堵问题,导数数据包传输效率较低。
本申请实施例提供了一种数据包传输方案,用于至少解决或缓解数据包传输效率较低的问题。下面分别从调度管理单元21和节点22的角度,对本申请实施例提供的数据包传输方案进行详细说明。
应用于调度管理单元的数据包传输方法
基于上述芯片,本申请实施例提供了一种数据包传输方法,该数据包传输方法可由上述实施例中的调度管理单元21执行。以下通过多个实施例对该数据包传输方法进行详细说明。
图3是本申请一个实施例的数据包传输方法的流程图。如图3所示,该数据包传输方法包括如下步骤:
步骤301、确定待传输数据包的源节点和目标节点。
当一个待传输数据包需要从片上网络的一个节点传输到另一个节点时,首先需要确定该待传输数据包的源节点和目标节点,源节点为发出该待传输数据包的节点,目标节点为该待传输数据包需要到达的节点。
需要说明的是,片上网络中一个节点向另一个节点发送数据包时,通常不会仅发生一个数据包,而是发送一系列的多个数据包,比如一条消息被拆分为多个数据包,被拆分出的数据包需要由一个节点传输到另一个节点,则这些被拆分出的数据包对应有相同的源节点和相同的目标节点。因此,在一些实施例中,不必针对单个需要在片上网络中传输的数据包单独确定源节点和目标节点,可以针对某一批或某一时间段内的多个数据包确定统一的源节点和目标节点。
步骤302、根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点。
在确定出待传输数据包的源节点和目标节点后,根据待传输数据包的源节点和目标节点,及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点,中间路由节点是待传输数据包从源节点传输到目标节点过程中需要经过的节点。中间路由节点的数量可以是一个,也可以是多个,当中间路由节点的数量为一个时,中间路由节点即为待传输数据包的目标节点,当中间路由节点的数量为多个时,除一个中间路由节点为待传输数据包的目标节点外,其余中间路由节点为待传输数据包从源节点发出后至到达目标节点之前需要经过的节点。
待传输数据包对应的各中间路由节点,基于片上网络中各节点的数据传输状态确定。即在根据待传输数据包的源节点和目标节点确定待传输数据包对应的中间路由节点时,需要基于片上网络中各节点的数据传输状态确定。片上网络中各节点的数据传输状态,可以是片上网络中各节点当前的数据传输状态,也可以是片上网络中各节点的历史数据传输状态,比如周期性获取片上网络中各节点的数据传输状态,根据近一次获取到的片上网络中各节点的数据传输状态,确定待传输数据包对应的中间路由节点。
片上网络中各节点的数据传输状态,可以指示片上网络中各节点的数据流量情况,从而根据各节点的数据传输状态可以确定出发生流量拥堵的节点,进而确定待传输数据包的中间路由节点时,通过中间路由节点确定待传输数据包的传输路径,使待传输数据包的传输路径绕开这些发生流量拥堵的节点,缩短待传输数据包从源节点到达目标节点的时间,提高数据包传输的效率。
步骤303、将待传输数据包对应的各中间路由节点发送给待传输数据包的源节点。
在确定出待传输数据包对应的各中间路由节点后,将待传输数据包对应的各中间路由节点发给待传输数据包的源节点,由待传输数据包的源节点将各中间路由节点的标识信息存储到待传输数据包的头微片中,进而将待传输数据包从其源节点传输到目标节点的过程中,相关节点根据待传输数据包的头微片中存储的中间路由节点的标识信息,按照XY路由算法依次将待传输数据包传输到各中间路由节点,实现将待传输数据包从源节点传输到目标节点。
在将中间路由节点的标识信息存储到待传输数据包的头微片时,需根据待传输数据包经过各中间路由节点的顺序,对各中间路由节点的标识信息依次存储到待传输数据包的头微片中,进而节点在接收到待传输数据包的头微片后,可以根据头微片中各中间路由节点的标识信息的顺序,确定应该按照XY路由算法将待传输数据包传输给哪个中间路由节点。
例如,确定待传输数据包对应中间路由节点1和中间路由节点2,中间路由节点2即为待传输数据包的目标节点,在将待传输数据包从源节点传输到目标节点时,首先按照XY路由算法将待传输数据包从源节点传输到中间路由节点1,然后按照XY路由算法将待传输数据包从中间路由节点1传输到目标节点。在待传输数据包的头微片中依次存储源节点的标识信息、中间路由节点1的标识信息和中间路由节点2的标识信息。源节点及按照XY路由算法位于源节点与中间路由节点1之间的各节点,根据头微片中存储的标识信息,按照XY路由算法向中间路由节点1传输待传输数据包,中间路由节点1及按照XY路由算法位于中间路由节点1与中间路由节点2中间的各节点,根据头微片中存储的标识信息,按照XY路由算法向中间路由节点2传输待传输数据包。
片上网络在传输待传输数据包时,会针对待传输数据包生成为多个微片,包括一个头微片、至少一个体微片和一个尾微片,头微片存储待传输数据包的源节点和各中间路由节点的标识信息等,待传输数据包中的数据被拆分后存储到各体微片中,尾微片用于表示待传输数据包传输结束。头微片、体微片和尾微片具有相同的数据容量,比如头微片、体微片和尾微片的数据容量均为64字节,相对于体微片所存储数据的数据量,头微片所存储信息的数据量要小很多,所以可以在头微片存储多个中间路由节点的标识信息,而无需对头微片的存储结构进行调整。
片上网络中相连节点之间传输数据包时,首先传输数据包的头微片,然后按照传输各体微片,在体微片传输完毕后传输尾微片,而数据包对应的中间路由节点的标识信息被存储在头微片中,所以节点在接收到数据包的头微片后,便可以确定将数据包传输给哪个节点。
在本申请实施例中,根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点,将各中间路由节点的标识信息发送给待传输数据包的源节点后,源节点将各中间路由节点的标识信息存储到待传输数据包的头微片中,使得片上网络中的节点可以按照XY路由算法依次将待传输数据包传输到各中间路由节点,进而将待传输数据包传输到目标节点。由于中间路由节点根据片上网络中各节点的数据传输状态确定,中间路由节点作为待传输数据包途经的节点,可以确定待传输数据包的合理传输路径,避开数据流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而可以提高对数据包进行传输的效率。
待传输数据包从源节点传输到中间路由节点、及从一个中间路由阶段传输到另一个中间路由节点的过程,均按照XY路由算法进行传输,可以避免待传输数据包传输过程中发生死锁。
在一种可能的实现方式中,在确定待传输数据包对应的中间路由节点时,可以检测中间路由表中是否存储有至少一个备选路由条目,其中,备选路由条目对应的源节点为待传输数据包的源节点,且备选路由条目对应的目标节点为待传输数据包的目标节点,备选路由条目包括至少一个中间路由节点,且备选路由条目基于片上网络中各节点的数据传输状态确定。如果中间路由表中存储有备选路由条目,则将对应更新时间较新的备选路由条目包括的各中间路由节点,确定为待传输数据包对应的中间路由节点。
中间路由表可以存储一个或多个路由条目。存储在中间路由表中的路由条目是针对历史待传输数据包而创建的,路由条目记录了历史待传输数据包的传输路径。路由条目记录相对应的源节点和至少一个中间路由节点,其中一个中间路由节点为对应的目标节点,所以路由条目记录的是从源节点到目标节点的数据传输路径。不同的路由条目可以对应相同或不同的源节点,不同的路由条目可以对应相同或不同的目标节点,所以不同的路由条目可以对应相同的源节点和相同的目标节点。
如下表1为本申请一个实施例的中间路由表,其中记录了3个路由条目,路由条目记录有源节点SRC和两个中间路由节点IRP1和IRP2,中间路由节点IRP2为目标节点。表1中数字0、2、3、4、6及8为相应节点的标识。
表1
SRC | IRP1 | IRP2 |
0 | 2 | 2 |
0 | 4 | 8 |
3 | 6 | 8 |
在上述表1中,第1个路由条目包括的中间路由节点IRP1和中间路由节点IRP2相同,所以第1个路由条目记录了按照XY路由算法从源节点0到目标节点2的数据传输路径。第2个路由条目记录了从源节点0经中间路由节点4到目标节点8的数据传输路径。第3个路由条目记录了从源节点3经中间路由节点6到目标节点8的数据传输路径。
针对中间路由表中记录的路由条目,该路由条目基于当时片上网络中各节点的数据传输状态确定。中间路由表中的路由条目可以针对数据包传输任务创建,数据包传输任务需要将一个或多个数据包从相对应的源节点传输到目标节点,在针对该数据包传输任务创建路由条目后,按照该路由条目依次将该数据包传输任务包括的各数据包从源节点传输到目标节点,在将该数据包传输任务包括的各数据包传输到目标节点后,将中间路由表中的该路由条目删除或回收。
中间路由表中对应相同源节点和相同目标节点的路由条目可能有多个,所以可能从中间路由表中查找到多个备选路由条目。如果从中间路由表中查找到一个备选路由条目,则将该备选路由条目包括的各中间路由节点,确定为待传输数据包对应的中间路由节点。如果从中间路由表中查找到多个备选路由条目时,则将对应更新时间较新的一个备选路由条目包括的各中间路由节点,确定为待传输数据包对应的中间路由节点。
对于更新时间较新的备选路由条目,在确定该备选路由条目时片上网络中各节点的数据传输状态,与当前时间片上网络中各节点的数据传输状态相接近,所以采用对应更新时间较新的备选路由条目来传输待传输数据包,使得待传输数据包的传输路径与当前时间片上网络中各节点的数据传输状态更加匹配,缩短对待传输数据包进行传输所需的时间。
应理解,本申请实施例中所述的路由条目包括中间路由节点,是指路由条目记录有中间路由节点的标识信息。
在本申请实施例中,中间路由表中存储有针对历史待传输数据包生成的路由条目,路由条目定义了数据包的传输路径,由于片上网络中数据包的传输时间较短,而片上网络中各节点的数据传输状态不会在短时间内发生大的波动,所以可以从中间路由表中查找与待传输数据包对应相同源节点和相同目标节点的备选路由条目,进而将一个备选路由条目包括的各中间路由节点确定为待传输数据包的中间路由节点,即按照一个备选路由条目定义的传输路径对待传输数据包进行传输,而无需针对每个待传输数据包重新根据片上网络中各节点的数据传输状态确定中间路由节点,针对部分待传输数据包节省了分析数据传输状态的时间,可以进一步提高对数据包的传输效率。
下面对从中间路由表中查找备选路由条目的一种实现方式进行说明。
中间路由表具有3个寄存器,分别为选择寄存器、结果寄存器和模式寄存器。在确定待传输数据包的源节点和目标节点后,将二进制数01写入模式寄存器,指示中间路由表进入查找模式,然后将待传输数据包的源节点和目标节点的标识信息写入选择寄存器,指示所要查找的条目内容。中间路由表在查找模式下,首先从选择寄存器中读取待传输数据包的源节点的标识信息,从所存储的各路由条目中查找出对应源节点与待传输数据包的源节点相同的路由条目。然后从选择寄存器中读取待传输数据包的目标节点的标识信息,并从对应源节点与待传输数据包的源节点相同的路由条目中查找对应目标节点与待传输数据包的目标节点相同的路由条目,获得对应源节点与待传输数据包的源节点相同,且对应目标节点与待传输数据包的目标节点相同的备选路由条目。然后按照最近最少使用(LeastRecently Used,LRU)原则,从所查找到的各备选路由条目中,选择对应更新时间较新的一个备选路由条目,将该备选路由条目记录的源节点和各中间路由节点写入结果寄存器中,并将二进制数11写入模式寄存器,指示中间路由表退出查找模式。中间路由表在结果寄存器中写入一个备选路由条目记录的源节点和各中间路由节点后,可以从结果寄存器中读取中间路由节点作为待传输数据包的中间路由节点。
在一种可能的实现方式中,如果中间路由表中未存储备选路由条目,则获取片上网络中各节点的延迟信息,延迟信息可以指示片上网络中各节点传输数据包的延迟,然后将延迟信息、待传输数据包的属性信息、及待传输数据包的源节点和目标节点的标识信息,输入到预先训练的流量感知模型,获得流量感知模型输出的新建路由条目,新建路由条目包括至少一个中间路由节点,新建路由条目对应的源节点为待传输数据包的源节点,且新建路由条目对应的目标节点为待传输数据包的目标节点。
在获得新建路由条目后,判断新建路由条目对应的数据传输路径是否与中间路由表中各路由条目对应的数据传输路径构成死锁或活锁,若未构成死锁和活锁,则将新建路由条目存储到中间路由表中,然后将新建路由条目包括的各中间路由节点确定为待传输数据包对应的中间路由节点,若构成死锁或活锁,则通过流量感知模型重新生成新建路由条目。
预先训练的流量感知模型可以基于片上网络中各节点的延迟信息,规划出从源节点到目标节点的数据传输路径,避开片上网络中发生流量拥堵的节点,缩短将待传输数据包从源节点传输到目标节点的时间。流量感知模型可以通过强化学习(ReinforcementLearning,RL)训练获得,流量感知模型的网络结构可以是Q-leaning、深度质量网络((DeepQ Network,DQN)等。流量感知模型还可以通过其他类型的神经网络训练获得,比如流量感知模型可以通过卷积神经网络(Convolutional Neural Networks,CNN)训练获得。
片上网络中节点包括的路由中设置有延迟收集器,延迟收集器可以收集节点传输数据包时的延迟,并计算N个时钟周期内的平均延迟,然后经过M个时钟周期将获得一个或多个平均延迟发送给调度管理单元,其中M大于N,调度管理单元可以将接收到的平均延迟、待传输数据包的属性信息和待传输数据包的源节点和目标节点的标识信息输入流量感知模型,获得新建路由条目。
待传输数据包的属性信息包括数据包位置、数据包大小等。
在本申请实施例中,如果中间路由表中没有存储备选路由条目,则获取片上网络中各节点的延迟信息,将所获取到的延迟信息、待传输数据包的属性信息、及待传输数据包的源节点和目标节点的标识信息,输入流量感知模型,获得流量感知模型输出的新建路由条目,将新建路由条目包括的中间路由节点确定为待传输数据包的中间路由节点。流量感知模型能够根据片上网络中各节点的延迟信息,规划出延迟较小的数据传输路径,流量感知模型所输出的新建路由表中的中间路由节点定义了该数据传输路径,从而将新建路由表中的中间路由节点确定为待传输数据包的中间路由节点,使待传输数据包被按照XY路由算法依次传输到各中间路由节点,避开发生流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,提高数据包传输效率。
将流量感知模型输出的新建路由条目存储到中间路由表中,后续较短时间内新出现的与该新建路由条目对应相同源节点和相同目标节点的待传输数据包,可以直接从中间路由表中读取该新建路由条目获得中间路由节点,而无需再次通过流量感知模型进行推理,缩短后续待传输数据包的传输时间。
下面以强化学习为例,对流量感知模型的训练过程进行说明。流量感知模型的训练过程可以包括如下步骤:
S1、通过以硬件周期为精确度的仿真器生成初始训练数据集。
仿真器是一个通过软件实现的芯片,可以模拟芯片进行相应的数据处理,比如模拟芯片中构成片上网络的各节点之间传输数据包的过程。以硬件周期为精确度的仿真器可以是Bookim、Garnet等。
初始训练数据集包括多个训练样本,训练样本包括如下信息:
(i)数据包的源节点和目标节点,即数据包需要从哪个节点传输到哪个节点;
(ii)片上网络中各节点的数据传输状态,比如为各节点传输数据包的延迟;
(iii)数据包从源节点传输到目标节点的传输路径。
需要说明的是,处理使用以硬件周期为精确度的仿真器生成初始训练数据集外,还可以使用以事件驱动的仿真器来生成初始训练数据集。
S2、通过初始训练数据集训练初始流量感知模型。
通过初始训练数据集中的训练样本训练获得初始流量感知模型,使得流量感知模型具有根据数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,生成数据包对应的中间路由节点的能力,所生成的中间路由节点可以定义数据包的传输路径。
应理解,初始流量感知模型仅具有了生成中间路由节点的能力,但所生成的中间路由节点的准确性较低。
S3、通过仿真器收集实时训练数据集。
在获得初始流量感知模型后,将初始流量感知模型与仿真器相结合,通过初始流量感知模型确定仿真器中待传输数据包的中间路由节点,仿真器按照初始流量感知模型确定出的中间路由节点传输待传输数据包,获得各节点对待传输数据包进行传输的延迟。仿真器传输数据包的方式为前述实施例描述的数据包传输方法,即按照XY路由算法将待传输数据包依次传输到各中间路由节点。
节点中的路由内设置延迟收集器,延迟收集器可以收集节点传输数据包时的延迟,并计算N个时钟周期内的平均延迟。
实时训练数据级包括多个训练样本,训练样本包括节点对应的平均延迟等信息。
S4、基于强化学习,通过实时训练数据集对初始流量感知模型进行训练,获得流量感知模型。
基于强化学习的训练***可以是Q-leaning、DQN等。
图4是本申请一个实施例的强化学习的示意图。如图4所示,基于强化学习的环境、状态、操作和奖励,对初始流量感知模型进行训练,获得流量感知模型。其中,状态St为对应于第t个数据包的状态,状态St+1为对应于第t个数据包的状态,奖励Rt为对应于第t+1个数据包的奖励,奖励Rt+1为对应于第t+1个数据包的奖励,t为正整数。
强化学习的环境为片上网络的仿真环境,仿真环境的拓扑结构和路由策略与芯片保持一致。
强化学习的状态为片上网络中各节点的实时流量状态,包括数据包位置、数据包大小、数据包延迟、数据包对应的中间路由节点等。
强化学习的操作为下一个数据包传输任务对应的中间路由节点。
强化学习的奖励等于设计延迟与数据包延迟之差。设计延迟等于数据包传输路径上节点的数量×节点延迟+特定延迟。节点延迟根据节点传输数据包过程中的路由延迟和在节点之间导线上传输的延迟确定,比如路由延迟为5个时钟周期,在节点之间导线上传输的延迟为1个时钟周期。特定延迟根据片上网络的结构和所包括节点的数量确定,比如3×3的片上网络的特定延迟可以设置为5个时钟周期。如果根据初始流量感知模型输出的中间路由节点确定的数据包传输路径发生死锁或活锁,则将奖励值设置为较大的负数。数据包延迟可以从实时训练数据集中的训练样本中获得。
下面以一个例子,对存储新建路由条目到中间路由表的方法进行详细说明。
中间路由表具有3个寄存器,分别为选择寄存器、结果寄存器和模式寄存器。在获取到包括至少一个中间路由节点的新建路由条目后,将二进制数00写入模式寄存器,指示中间路由表进入***模式。然后将新建路由条目包括的源节点的标识信息和各中间路由节点的标识信息写入结果寄存器,指示***新建路由条目的内容。然后中间路由表读取结果寄存器中存储的内容,并将读取的内容写入一个空的条目内或替换一个现有路由条目。
中间路由表在写入结果寄存器中存储的内容时,如果中间路由表中有空的条目,则将读取到的内容存储到空的条目内,形成一个路由条目。如果中间路由表中没有空的条目,则按照LRU原则,通过读取到的内容替换对应更新时间较早的路由条目的内容。
在一种可能的实现方式中,如果新建路由条目对应的数据传输路径,与中间路由表中路由条目对应的数据传输路径构成死锁或活锁,则生成负激励,并将延迟信息、待传输数据包的属性信息、待传输数据包的源节点和目标节点的标识信息、及负激励发送给服务端,以使服务端通过强化学习对流量感知模型进行训练。
由于片上网络中的节点可以按照中间路由表中各路由条目定义的多个数据传输路径同时传输数据包,所以流量感知模型输出的新建路由条目对应的数据传输路径,可能会与中间路由表中各路由条目对应的数据传输路径构成死锁或活锁,影响片上网络的正常运行,所以在将新建路由条目存储到中间路由表中之前,需要检测新建路由表是否会导致死锁或活锁的情况发生。
将延迟信息、待传输数据包的属性信息、待传输数据包的源节点和目标节点的标识信息、及负激励发送给服务端后,服务端可以基于强化学习,通过这些信息对流量感知模型进行训练,降低流量感知模型输出路由条目导致死锁或活锁的概率。服务端会将训练之后的流量感知模型下发,进而调度管理单元后续可以通过更新后的流量感知模型来生成新建路由条目。
在本申请实施例中,如果新建路由表会导致死锁或活锁的情况发生,则针对新建路由条目生成负激励,并将负激励发送给服务端,进而服务端可以根据负激励对流量感知模型进行训练,降低流量感知模型输出路由条目导致死锁或活锁的概率,后续通过更新后的流量感知模型来生成新建路由条目,减少死锁或活锁情况的发生次数,提高片上网络运行的稳定性和可靠性。
在一种可能的实现方式中,片上网络中各节点的路由中设置有延迟收集器,延迟收集器可以收集节点传输数据包的延迟,并计算N个时钟周期内的平均延迟,进而片上网络中的各节点可以将延迟收集器计算出的延迟信息发送给调度管理单元,调度管理单元定时将延迟信息发送给服务端,服务端可以基于强化学习,通过接收到的延迟信息对流量感知模型进行训练,不断对流量感知模型进行优化。服务端可以将训练后的流量感知模型通过更新驱动的方式下发给调度管理单元,进而调度管理单元后续通过训练后的流量感知模型来生成新建路由条目,使得新建路由条目定义的数据传输路径更加合理和高效,提升片上网络的数据传输性能。
在一种可能的实现方式中,待传输数据包对应的中间路由节点可以是一个或多个。如果待传输数据包对应一个中间路由节点,则该中间路由节点为待传输数据包的目标节点,进而在传输该待传输数据包时,按照XY路由算法将该待传输数据包从源节点传输到目标节点。如果待传输数据包对应n个中间路由节点,n为大于或等于2的正整数,则n个中间路由节点中的第n个中间路由节点为待传输数据包的目标节点,在传输待传输数据包时,按照XY路由算法将该待传输数据包从源节点传输到第1个中间路由节点,并按照XY路由算法从第i个中间路由节点传输到第i+1个中间路由节点,其中,i为小于n的正整数。
图5是本申请一个实施例的片上网络的示意图。如图5所示,该片上网络包括节点Tile00至Tile08共计9个节点,节点包括路由,节点Tile00至Tile08所包括的路由依次为路由R000至R008。路由R000至R008构成mesh网络,路由R000分别与路由R001和R003相连接,路由R001分别与路由R000、R002和R004相连接,路由R002分别与路由R001和R005相连接,路由R003分别与路由R000、R004和R006相连接,路由R004分别与路由R001、R003、R005和R007相连接,路由R005分别与路由R002、R004和R008相连接,路由R006分别与路由R003和R007相连接,路由R007分别与路由R004、R006和R008相连接,路由R008分别与路由R005和R007相连接。
待传输数据包A的源节点为节点Tile00,目标节点为节点Tile02,确定待传输数据包A的中间路由节点为节点Tile002。在传输待传输数据包A时,按照XY路由算法,节点Tile00通过路由R000将待传输数据包A传输给路由R001,路由R001将待传输数据包A传输给路由R002,节点Tile02从路由R002获得待传输数据包A。
待传输数据包B的源节点为节点Tile00,目标节点为节点Tile08,确定待传输数据包B的中间路由节点为节点Tile04和Tile08。在传输待传输数据包B时,按照XY路由算法,节点Tile00通过路由R000将待传输数据包B传输给路由R001,路由R001将待传输数据包B传输给路由R004,路由R004将待传输数据包B传输给路由R005,路由R005将待传输数据包B传输给路由R008,节点Tile08从路由R008获得待传输数据包B。
待传输数据包C的源节点为节点Tile03,目标节点为节点Tile08,确定待传输数据包C的中间路由节点为节点Tile06和Tile08。在传输待传输数据包C时,按照XY路由算法,节点Tile03通过路由R003将待传输数据包C传输给路由R006,路由R006将待传输数据包C传输给路由R007,路由R007将待传输数据包C传输给路由R008,节点Tile08从路由R008获得待传输数据包C。
需要说明的是,为了便于对中间路由节点进行管理,可以使不同的数据包对应相同数量的中间路由节点,比如各数据包均对应2个中间路由节点,此时,如果确定待传输数据包对应的中间路由节点为其目标节点,即直接按照XY路由算法将待传输数据包从源节点传输到目标节点,则待传输数据包对应的2个中间路由节点均为该待传输数据包的目标节点。
在本申请实施例中,待传输数据包的中间路由节点可以是一个或多个,当中间路由节点的数量为1个时,按XY路由算法将待传输数据包从源节点传输到目标节点,当中间路由节点的数量为多个时,待传输数据包被按照XY路由算法依次传输到各中间路由节点,末位的中间路由节点即为目标节点。由此可见,由于不受中间路由节点数量的限制,可以基于片上网络中各节点的数据传输状态,确定更加合理的数据传输路径,保证数据包传输的效率。
需要说明的是,本申请实施例中的数据包传输方法,可以基于内核态驱动程序实现。
应用于节点的数据包传输方法
基于上述芯片,本申请实施例提供了一种数据包传输方法,该数据包传输方法可由上述实施例中的节点22执行。以下通过多个实施例对该数据包传输方法进行详细说明。
图6是本申请一个实施例的数据包传输方法的流程图。如图6所示,该数据包传输方法包括如下步骤:
步骤601、获取待传输数据包的头微片。
当片上网络中的一个节点需要将待传输数据包发送给相连接的另一个节点时,该节点可以获取待传输数据包的头微片。如果一个节点为待传输数据包的源节点,则该节点将待传输数据包拆分为头微片、体微片和尾微片后,可以直接获取到拆分出的头微片。如果一个节点不是待传输数据包的源节点,则该节点可以接收由其他节点发送的待传输数据包,在接收待传输数据包时,将首先接收到待传输数据包的头微片。
待传输数据包的头微片中存储有至少一个中间路由节点的标识信息,各中间路由节点基于待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定。待传输数据包对应的各中间路由节点中,其中一个中间路由节点为待传输数据包的目标节点。
需要说明的是,确定待传输数据包对应的各中间路由节点的过程,可参见前述应用于调度管理单元的数据包传输方法实施例中的描述,在此不再进行赘述。
步骤602、根据头微片中存储的各中间路由节点的标识信息,按照XY路由算法向中间路由节点传输待传输数据包,使待传输数据包依次通过各中间路由节点后到达目标节点。
节点在获取到待传输数据包的头微片后,根据头微片中存储的各中间路由节点的标识信息,确定需要将待传输数据包传输到的下一个中间路由节点,然后按照XY路由算法向所确定出的下一个中间路由节点传输待传输数据包,使得待传输数据包依次通过各中间路由节点后被传输到目标节点。
在本申请实施例中,待传输数据包对应的各中间路由节点是根据片上网络中各节点的数据传输状态确定的,中间路由节点作为待传输数据包被传输到目标节点过程中需要途经的节点,待传输数据包在源节点与中间路由节点之间,及中间路由节点之间传输时均按照XY路由算法进行传输,所以中间路由节点可以确定待传输数据包的合理传输路径,避开片上网络中流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而提高片上网络传输数据包的效率。
在一种可能的实现方式中,如果当前节点为待传输数据包的源节点,在获取待传输数据包的头微片时,接收来自调度管理单元的至少一个中间路由节点的标识信息,将接收到的标识信息写入待传输数据包的头微片中,获得存储有中间路由节点的标识信息的头微片。如果当前节点不是待传输数据包的源节点,则接收上游节点通过XY路由算法传输的待传输数据包的头微片。
如果当前节点为待传输数据包的源节点,则待传输数据包从该节点发出,该节点会将待传输数据包拆分为头微片、体微片和尾微片,在接收到调度管理单元发送的待传输数据包所对应的至少一个中间路由节点的标识信息后,将待传输数据包对应的各中间路由节点的标识信息存储到待传输数据包的头微片中,然后该节点会根据待传输数据包的头微片中存储的各中间路由节点的标识信息,按照XY路由算法向待传输数据包第1个需要达到的中间路由节点发送待传输数据包。
如果当前节点不是待传输数据包的源节点,则该节点接收其上游节点按照XY路由算法发送的待传输数据包,待传输数据包被按照头微片、体微片和尾微片的顺序依次传输到该节点,从而获得待传输数据包的头微片。
如图5所示,如果当前节点为节点Tile00,待传输数据包为待传输数据包A,则节点Tile00接收调度管理单元发送的节点Tile02的标识信息,然后将节点Tile02的标识信息存储到待传输数据包A的头微片中。如果当前节点为节点Tile04,待传输数据包为待传输数据包B,则节点Tile04接收节点Tile01发送的头微片,该头微片中存储有待传输数据包B对应的各中间路由节点的标识信息,即存储有节点Tile04和Tile08的标识信息。如果当前节点为节点Tile07,待传输数据包为待传输数据包C,则节点Tile07接收节点Tile06发送的头微片,该头微片中存储有待传输数据包C对应的各中间路由节点的标识信息,即存储有节点Tile06和Tile08的标识信息。
在本申请实施例中,待传输数据包的源节点接收来自调度管理单元的中间路由节点的标识信息,并将接收到的标识信息存储到待传输数据包的头微片中,非待传输数据包的源节点的其他节点,接收待传输数据包时将首先接收待传输数据包的头微片,进而待传输数据包的传输路径上的各节点,均可以按照头微片中存储的中间路由节点的标识信息,按照XY路由算法向下一个中间路由节点传输待传输数据包,在提高数据包传输效率的同时,避免出现死锁或活锁等问题,保证片上网络运行的可靠性。
在一种可能的实现方式中,如果当前节点为待传输数据包的源节点,当前节点在接收到来自调度管理单元的至少一个中间路由节点的标识信息后,可以根据待传输数据包到达各中间路由节点的顺序要求,将各中间路由节点的标识信息依次写入待传输数据包的头微片中,使待传输数据包的头微片中依次存储有待传输数据包的源节点的标识信息和各中间路由节点的标识信息。
头微片中存储有待传输数据包的源节点和各中间路由节点的标识信息,并且源节点的标识信息和各中间路由节点的标识信息被依次存储在头微片中。如果中间路由节点的数量为多个,则按照待传输数据包到达各中间路由节点的顺序要求,将各中间路由节点的标识信息存储到源节点的标识信息之后,按顺序要求待传输数据包先到达的中间路由节点的标识信息,位于待传输数据包后达到的中间路由节点的标识信息之前。
比如,待传输数据包的中间路由节点包括中间路由节点1、中间路由节点2和中间路由节点3,待传输数据包从源节点传输到目标节点时,需要依次经过中间路由节点1、中间路由节点2和中间路由节点3,则待传输数据包的头微片中依次存储待传输数据包的源节点的标识信息、中间路由节点1的标识信息、中间路由节点2的标识信息和中间路由节点3的标识信息。
如果当前节点不是待传输数据包的源节点,在当前节点接收上游节点通过XY路由算法传输的头微片后,当前节点可以对待传输数据包的头微片进行解析,获得待传输数据包的源节点的标识信息、及待传输数据包的各中间路由节点的标识信息,进而可以根据各中间路由节点的标识信息的存储顺序,确定待传输数据包达到个中间路由节点的顺序要求。
如果待传输数据包的中间路由节点的数量为多个,在解析待传输数据包的头微片后,可以获得待传输数据包的源节点的标识信息、及各中间路由节点的标识信息,各中间路由节点的标识信息按照待传输数据包达到各中间路由节点的顺序要求,依次存储在源节点的标识信息之后,所以在解析出各中间路由节点的标识信息后,可以根据各中间路由节点的标识信息的存储顺序,确定待传输数据包到达各中间路由节点的顺序要求,进而确定需要将待传输数据包发送给哪一个节点。
比如,对待传输数据包的头微片进行解析,获得源节点的标识信息、中间路由节点4的标识信息和中间路由节点5的标识信息,则可以确定待传输数据包需要先达到中间路由节点4,然后再到达中间路由节点5。
在本申请实施例中,头微片中存储有待传输数据包的源节点的标识信息、及各中间路由节点的标识信息,而且各中间路由节点的标识信息按照待传输数据包达到中间路由节点的顺序要求,被依次存储在源节点的标识信息之后,通过对头微片进行解析,可以获得各中间路由节点的标识信息,进而可以根据各中间路由节点的标识信息的存储顺序,确定待传输数据包达到各中间路由节点的顺序要求,保证待传输数据包能够被按照XY路由算法依次传输到各中间路由节点。
在一种可能的实现方式中,节点在根据头微片中存储的标识信息传输待传输数据包时,可以根据头微片中存储的各中间路由节点的标识信息,确定当前节点是否为待传输数据包的中间路由节点,如果当前节点是待传输数据包的中间路由节点,而且当前节点不是待传输数据包的目标节点,则将接收到的待传输数据包包括的微片存储到缓冲区内,并在将待传输数据包包括的各微片均存储到缓冲区内后,按照XY路由算法向下一个中间路由节点传输缓冲区内存储的待传输数据包的各微片。
由于头微片中存储了待传输数据包的源节点和各中间路由节点的标识信息,而各中间路由节点中包括待传输数据包的目标节点,所以一个节点在接收到待传输数据包的头微片后,可以根据头微片中存储的标识信息,判断该节点是否为待传输数据包的中间路由节点,以及判断该节点是否为待传输数据包的目标节点。如果当前节点是待传输数据包的目标节点,在将待传输数据包的各微片接收后,停止继续对待传输数据包进行传输。如果当前节点不是待传输数据包的目标节点,则需要根据头微片中存储的标识信息,继续传输待传输数据包。
如果当前节点是待传输数据包的中间路由节点,而且当前节点不是待传输数据包的目标节点,则当前节点依次接收待传输数据包的头微片、体微片和尾微片,并将接收到的头微片、体微片和尾微片均存储到缓冲区内,在将待传输数据包的头微片、体微片和尾微片均存储到缓冲区之后,再按照XY路由算法向下一个中间路由节点发送缓冲区内的头微片、体微片和尾微片。当前节点在向下一个中间路由节点传输待传输数据包的头微片、体微片和尾微片时,仍按照头微片、体微片和尾微片顺序对各微片进行传输。
待传输数据包的头微片中存储有待传输数据包的数据量信息,根据数据量信息可以确定是否已经将待传输数据包包括的各微片存储到缓冲区内。
节点的路由中均设置有缓冲区,缓冲区的容量大于片上网络中所传输数据包的数据量上限,即任意在片上网络中传输的数据包均能够被存储到缓冲区内。
如图5所示,节点Tile04在接收到待传输数据包B的头微片后,根据头微片中存储的中间路由节点的标识信息,确定节点Tile04为待传输数据包B的中间路由节点,且不是待传输数据包B的目标节点,进而节点Tile04将后续接收到的待传输数据包B的各微片存储到路由R004的缓冲区,在将待传输数据包B的各微片均存储到路由R004的缓冲区后,再根据头微片中存储的中间路由节点的标识信息,按照XY路由算法向节点Tile08发送路由R004的缓冲区中的微片,即将路由R004的缓冲区中的微片发送给节点Tile05。
在本申请实施例中,节点的路由中设置有缓冲区,当一个节点作为待传输数据包的中间路由节点,且该节点不是待传输数据包的目标节点时,该节点在接收到待传输数据包的微片后,将接收到的微片存储到缓冲区中,在将待传输数据包的全部微片均存储到缓冲区内后,再按照XY路由算法向下一个中间路由节点发送缓冲区内的微片,这样使源节点至第1个中间路由节点之间的数据传输路径、及相邻两个中间路由节点之间的数据传输路径均满足XY路由算法,将源节点与目标节点之间不满足XY路由算法的数据传输路径拆分为多个满足XY路由算法的子路径,避免数据包传输过程中发生死锁或活锁的问题,在提高数据包传输效率的同时,保证片上网络传输数据包的可靠性。
在一种可能的实现方式中,如果当前节点不是待传输数据包对应的中间路由节点,则按照XY路由算法向下一个中间路由节点传输接收到的待传输数据包包括的微片。
如果当前节点不是待传输数据包的中间路由节点,则该节点为源节点与第1个中间路由节点之间数据传输路径上的节点,或者为相邻两个中间路由节点之间传输路径上的节点,该节点在接收到待传输数据包的微片后,按照XY路由算法,以数据流的方式向下一个中间路由节点传输接收到的微片,而不需要将待传输数据包的全部微片存储到缓冲区后,再向下一个中间路由节点发送待传输数据包的微片。
如图5所示,节点Tile01在接收到待传输数据包A的头微片后,根据头微片中存储的中间路由节点的标识信息,确定节点Tile01不是待传输数据包A的中间路由节点,进而节点Tile01以数据流的形式将接收到的待传输数据包A的微片发送给节点Tile04。
在本申请实施例中,如果一个节点不是待传输数据包的中间路由节点,该节点传输待传输数据包时满足XY路由算法,不会造成死锁或活锁,所以不需要将待传输数据包的全部微片都存储到缓冲区后,再按照XY路由算法向下一个中间路由节点传输缓冲区中的各微片,节省了向缓冲区中存储各微片的时间,保证片上网络传输数据包的效率。
在一种可能的实现方式中,如果当前节点为待传输数据包的中间路由节点,则当前节点在将待传输数据包的头微片存储到缓冲区后,为头微片中存储的当前节点的标识信息添加无效标识。相对应地,节点按照XY路由算法向中间路由节点传输待传输数据包时,可以根据头微片中存储的各标识信息的顺序,将未被添加无效标识的下一个标签信息确定为目标标签信息,进而按照XY路由算法,向目标标识信息所标识的中间路由节点传输待传输数据包。
如图5所示,待传输数据包B的头微片中依次存储有标识信息Tile00、Tile04和Tile08,其中,Tile00为源节点的标识信息,Tile04和Tile08为两个中间路由节点的标识信息。节点Tile04在接收到待传输数据包B的头微片后,根据头微片中存储的标识信息,确定节点Tile04为待传输数据包B的中间路由节点,节点Tile04将待传输数据包B的头微片存储到缓冲区中后,为头微片中的标识信息Tile04添加无效标识。节点Tile04将待传输数据包B的各微片均存储到缓冲区中后,根据头微片中存储的标识信息,由于第1个中间路由节点的标识信息Tile04已经被添加了无效标识,进而按照XY路由算法向节点Tile08传输缓冲区中存储的微片。节点Tile06在接收到待传输数据包B的头微片后,根据头微片中存储的标识信息,由于第1个中间路由节点的标识信息Tile04已经被添加了无效标识,进而按照XY路由算法,以数据流的形式向节点Tile08传输接收到的微片。
在本申请实施例中,头微片中按顺序存储各中间路由节点的标识信息,头微片被传输到一个中间路由节点后,中间路由节点为头微片中存储的其标识信息添加无效信息,使得当前的中间路由节点及后续的节点可以确定下一个中间路由节点,保证数据包传输的正确性。
图7是本申请另一个实施例的片上网络的示意图。如图7所示,该片上网络包括节点Tile00至Tile24共计25个节点,节点包括路由,节点Tile00至Tile24所包括的路由依次为路由R000至R024。相连接的路由R000至R024构成5×5的mesh网络。
待传输数据包D、待传输数据包E和待传输数据包F同时在片上网络中传输。待传输数据包D的源节点为节点Tile02,目标节点为Tile11。待传输数据包E的源节点为节点Tile03,目标节点为Tile16。待传输数据包F的源节点为节点Tile04,目标节点为Tile21。
如果按照传统的XY路由算法对待传输数据包D、待传输数据包E和待传输数据包F进行传输,待传输数据包D的传输路径为Tile02→Tile01→Tile06→Tile11(如图中D′),待传输数据包E的传输路径为Tile03→Tile02→Tile01→Tile06→Tile11→Tile16(如图中E′),待传输数据包F的传输路径为Tile04→Tile03→Tile02→Tile01→Tile06→Tile11→Tile16→Tile21(如图中F)。由于待传输数据包E与待传输数据包D在节点Tile02处发生拥堵,待传输数据包F与待传输数据包E在节点Tile03处发生拥堵,所以排队等待,传输待传输数据包D的延迟为521个时钟周期,传输待传输€数据包E的延迟为1039个时钟周期,传输待传输数据包F的延迟为1557个时钟周期。
如果按照本实施例的数据包传输方法对待传输数据包D、待传输数据包E和待传输数据包F进行传输,待传输数据包D的传输路径为Tile02→Tile07→Tile12→Tile11(如图中D),待传输数据包E的传输路径为Tile03→Tile06→Tile13→Tile18→Tile17→Tile16(如图中E),待传输数据包F的传输路径为Tile04→Tile03→Tile02→Tile01→Tile06→Tile11→Tile16→Tile21(如图中F)。待传输数据包D、待传输数据包E和待传输数据包F的数据传输路径没有重叠,不会发生流量拥堵,传输待传输数据包D的延迟为521个时钟周期,传输待传输数据包E的延迟为527个时钟周期,传输待传输数据包F的延迟为533个时钟周期,而待传输数据包D、待传输数据包E和待传输数据包F同时传输,所以总的延迟为533个时钟周期。
在不考虑其他因素影响的前提下,通过本实施例传输待传输数据包D、待传输数据包E和待传输数据包F,相对于通过传统的XY路由算法传输待传输数据包D、待传输数据包E和待传输数据包F,减少延迟的百分比为(1557-533)/1557=65.77%,可显著提高片上网络传输数据包的效率。
调度管理单元
对应于上述应用于调度管理单元的数据包传输方法实施例,图8示出了本申请一个实施例的调度管理单元的示意图。如图8所示,该调度管理单元21包括:
读取子单元211,用于确定待传输数据包的源节点和目标节点;
规划子单元212,用于根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点;
输出子单元213,用于将至少一个中间路由节点的标识信息发送给待传输数据包的源节点,使待传输数据包的源节点将至少一个中间路由节点的标识信息写入待传输数据包的头微片中,以使待传输数据包被按照XY路由算法依次传输到各中间路由节点后,到达待传输数据包的目标节点。
在本申请实施例中,规划子单元212根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点,输出子单元213将各中间路由节点的标识信息发送给待传输数据包的源节点后,源节点将各中间路由节点的标识信息存储到待传输数据包的头微片中,使得片上网络中的节点可以按照XY路由算法依次将待传输数据包传输到各中间路由节点,进而将待传输数据包传输到目标节点。由于中间路由节点根据片上网络中各节点的数据传输状态确定,中间路由节点作为待传输数据包途经的节点,可以确定待传输数据包的合理传输路径,避开数据流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而可以提高对数据包进行传输的效率。
需要说明的是,本实施例的调度管理单元用于实现前述方法实施例中应用于调度管理单元的数据包传输方法,并具有相应的方法实施例的有益效果,在此不再赘述。
片上网络的节点
对应于上述应用于节点的数据包传输方法实施例,图9示出了本申请一个实施例的片上网络的节点的示意图。如图8所示,该节点22包括:
获取子单元223,用于获取待传输数据包的头微片,其中,头微片中存储有至少一个中间路由节点的标识信息,至少一个中间路由节点基于待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定;
传输子单元224,用于根据头微片中存储的各中间路由节点的标识信息,按照XY路由算法向中间路由节点传输待传输数据包,使待传输数据包依次通过各中间路由节点后到达目标节点。
在本申请实施例中,待传输数据包对应的各中间路由节点是根据片上网络中各节点的数据传输状态确定的,中间路由节点作为待传输数据包被传输到目标节点过程中需要途经的节点,待传输数据包在源节点与中间路由节点之间,及中间路由节点之间传输时均按照XY路由算法进行传输,所以中间路由节点可以确定待传输数据包的合理传输路径,避开片上网络中流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而提高片上网络传输数据包的效率。
需要说明的是,本实施例的节点用于实现前述方法实施例中应用于节点的数据包传输方法,并具有相应的方法实施例的有益效果,在此不再赘述。
电子设备
图10是本申请实施例提供的一种电子设备的示意性框图,本申请具体实施例并不对电子设备的具体实现做限定。如图10所示,该电子设备可以包括:处理器(processor)1002、通信接口(Communications Interface)1004、存储器(memory)1006、以及通信总线1008。其中:
处理器1002、通信接口1004、以及存储器1006通过通信总线1008完成相互间的通信。
通信接口1004,用于与其它电子设备或服务器进行通信。
处理器1002,用于执行程序1010,具体可以执行前述任一数据包传输方法实施例中的相关步骤。
具体地,程序1010可以包括程序代码,该程序代码包括计算机操作指令。
处理器1002可能是CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
RISC-V是一种基于精简指令集(RISC)原则的开源指令集架构,其可以应用于单片机和FPGA芯片等各个方面,具体可应用在物联网安全、工业控制、手机、个人计算机等领域,且由于其在设计时考虑了小型、快速、低功耗的现实情况,使得其尤其适用于仓库规模云计算机、高端移动电话和微小嵌入式***等现代计算设备。随着人工智能物联网AIoT的兴起,RISC-V指令集架构也受到越来越多的关注和支持,并有望成为下一代广泛应用的CPU架构。
本申请实施例中的计算机操作指令可以是基于RISC-V指令集架构的计算机操作指令,对应地,处理器1002可以基于RISC-V的指令集设计。具体地,本申请实施例提供的电子设备中的处理器的芯片可以为采用RISC-V指令集设计的芯片,该芯片可基于所配置的指令执行可执行代码,进而实现上述实施例中的数据包传输方法。
存储器1006,用于存放程序1010。存储器1006可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序1010具体可以用于使得处理器1002执行前述任一实施例中的数据包传输方法。
程序1010中各步骤的具体实现可以参见前述任一数据包传输方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本申请实施例的电子设备,根据待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定待传输数据包对应的至少一个中间路由节点,将各中间路由节点的标识信息发送给待传输数据包的源节点后,源节点将各中间路由节点的标识信息存储到待传输数据包的头微片中,使得片上网络中的节点可以按照XY路由算法依次将待传输数据包传输到各中间路由节点,进而将待传输数据包传输到目标节点。由于中间路由节点根据片上网络中各节点的数据传输状态确定,中间路由节点作为待传输数据包途经的节点,可以确定待传输数据包的合理传输路径,避开数据流量拥堵的节点,缩短将待传输数据包传输到目标节点的耗时,从而可以提高对数据包进行传输的效率。
计算机存储介质
本申请还提供了一种计算机可读存储介质,存储用于使一机器执行如本文所述的数据包传输方法的指令。具体地,可以提供配有存储介质的***或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本申请的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
计算机程序产品
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一对应的操作。
需要说明的是,本申请实施例所涉及到的与用户有关的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于对模型进行训练的样本数据、用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (16)
1.一种数据包传输方法,包括:
确定待传输数据包的源节点和目标节点;
根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点;
将所述至少一个中间路由节点的标识信息发送给所述待传输数据包的源节点,使所述待传输数据包的源节点将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,以使所述待传输数据包被按照XY路由算法依次传输到各所述中间路由节点后,到达所述待传输数据包的目标节点。
2.根据权利要求1所述的方法,其中,所述根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点,包括:
检测中间路由表中是否存储有至少一个备选路由条目,其中,所述备选路由条目对应的源节点为所述待传输数据包的源节点,且所述备选路由条目对应的目标节点为所述待传输数据包的目标节点,所述备选路由条目包括至少一个中间路由节点,所述备选路由条目基于所述片上网络中各节点的数据传输状态确定;
若所述中间路由表中存储有至少一个所述备选路由条目,则将对应更新时间较新的备选路由条目包括的各中间路由节点,确定为所述待传输数据包对应的至少一个中间路由节点。
3.根据权利要求2所述的方法,所述方法还包括:
若所述中间路由表中未存储所述备选路由条目,则获取所述片上网络中各节点的延迟信息,其中,所述延迟信息用于指示所述片上网络中各节点传输数据包的延迟;
将所述延迟信息、所述待传输数据包的属性信息、及所述待传输数据包的源节点和目标节点的标识信息,输入预先训练的流量感知模型,获得所述流量感知模型输出的新建路由条目,其中,所述新建路由条目包括至少一个中间路由节点,所述新建路由条目对应的源节点为所述待传输数据包的源节点,且所述新建路由条目对应的目标节点为所述待传输数据包的目标节点;
若所述新建路由条目对应的数据传输路径,未与所述中间路由表中存储的路由条目对应的数据传输路径构成死锁或活锁,则将所述新建路由条目存储到所述中间路由表中;
将所述新建路由条目包括的各中间路由节点,确定为所述待传输数据包对应的至少一个中间路由节点。
4.根据权利要求3所述的方法,所述方法还包括:
若所述新建路由条目对应的数据传输路径,与所述中间路由表中的路由条目对应的数据传输路径构成死锁或活锁,则生成负激励;
将所述延迟信息、所述待传输数据包的属性信息、所述待传输数据包的源节点和目标节点的标识信息、及所述负激励发送给服务端,以使所述服务端通过强化学习对所述流量感知模型进行训练。
5.根据权利要求4所述的方法,所述方法还包括:
接收所述片上网络中各节点发送的延迟信息;
将所述延迟信息发送给所述服务端,以使所述服务端通过强化学习对所述流量感知模型进行训练。
6.根据权利要求1-5中任一所述的方法,其中,
若所述待传输数据包对应一个中间路由节点,则该中间路由节点为所述待传输数据包的目标节点,所述待传输数据包被按照XY路由算法从所述待传输数据包的源节点传输至所述待传输数据包的目标节点;
若所述待传输数据包对应n个中间路由节点,n为大于或等于2的正整数,则所述n个中间路由节点中的第n个中间路由节点为所述待传输数据包的目标节点,所述待传输数据包被按照XY路由算法从所述待传输数据包的源节点传输到所述n个中间路由节点中的第1个中间路由节点,并被按照XY路由算法从所述n个中间路由节点中的第i个中间路由节点,传输到所述n个中间路由节点中的第i+1个中间路由节点,其中,i为小于n的正整数。
7.一种数据包传输方法,包括:
获取待传输数据包的头微片,其中,所述头微片中存储有至少一个中间路由节点的标识信息,所述至少一个中间路由节点基于所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定;
根据所述头微片中存储的各所述中间路由节点的标识信息,按照XY路由算法向所述中间路由节点传输所述待传输数据包,使所述待传输数据包依次通过各所述中间路由节点后到达所述目标节点。
8.根据权利要求7所述的方法,其中,所述获取待传输数据包的头微片,包括:
若当前节点为所述待传输数据包的源节点,则接收来自调度管理单元的所述至少一个中间路由节点的标识信息,并将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中;
若当前节点不是所述待传输数据包的源节点,则接收上游节点通过XY路由算法传输的所述待传输数据包的头微片。
9.根据权利要求8所述的方法,其中,
所述将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,包括:
根据所述待传输数据包到达各中间路由节点的顺序要求,将所述至少一个中间路由节点的标识信息依次写入所述待传输数据包的头微片中,使所述待传输数据包的头微片中依次存储有所述待传输数据包的源节点的标识信息和所述至少一个中间路由节点的标识信息;
在所述接收上游节点通过XY路由算法传输的所述待传输数据包的头微片之后,所述方法还包括:
对所述待传输数据包的头微片进行解析,获得所述待传输数据包的源节点的标识信息、及所述至少一个中间路由节点的标识信息,并根据所述至少一个中间路由节点的标识信息的存储顺序,确定所述待传输数据包到达各中间路由节点的顺序要求。
10.根据权利要求7所述的方法,其中,所述根据所述头微片中存储的各所述中间路由节点的标识信息,按照XY路由算法向所述中间路由节点传输所述待传输数据包,包括:
根据所述头微片中存储的各所述中间路由节点的标识信息,确定当前节点是否为所述中间路由节点;
若当前节点为所述中间路由节点,且当前节点不是所述待传输数据包的目标节点,则将接收到的所述待传输数据包包括的微片存储到缓冲区内,并在将所述待传输数据包包括的各微片均存储到所述缓冲区内后,按照XY路由算法向下一个所述中间路由节点传输所述缓冲区内存储的所述待传输数据包的各微片。
11.根据权利要求10所述的方法,所述方法还包括:
若当前节点不是所述中间路由节点,则按照XY路由算法向下一个所述中间路由节点传输接收到的所述待传输数据包包括的微片。
12.根据权利要求10所述的方法,所述方法还包括:若当前节点为所述中间路由节点,则为所述缓冲区内所述头微片中存储的当前节点的标识信息添加无效标识;
所述按照XY路由算法向所述中间路由节点传输所述待传输数据包,包括:
根据所述头微片中存储的各所述标识信息的顺序,将未被添加无效标识的下一个所述标识信息确定为目标标识信息;
按照XY路由算法,向所述目标标识信息所标识的所述中间路由节点传输所述待传输数据包。
13.一种调度管理单元,包括:
读取子单元,用于确定待传输数据包的源节点和目标节点;
规划子单元,用于根据所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态,确定所述待传输数据包对应的至少一个中间路由节点;
输出子单元,用于将所述至少一个中间路由节点的标识信息发送给所述待传输数据包的源节点,使所述待传输数据包的源节点将所述至少一个中间路由节点的标识信息写入所述待传输数据包的头微片中,以使所述待传输数据包被按照XY路由算法依次传输到各所述中间路由节点后,到达所述待传输数据包的目标节点。
14.一种片上网络的节点,包括:
获取子单元,用于获取待传输数据包的头微片,其中,所述头微片中存储有至少一个中间路由节点的标识信息,所述至少一个中间路由节点基于所述待传输数据包的源节点和目标节点、及片上网络中各节点的数据传输状态确定;
传输子单元,用于根据所述头微片中存储的各所述中间路由节点的标识信息,按照XY路由算法向所述中间路由节点传输所述待传输数据包,使所述待传输数据包依次通过各所述中间路由节点后到达所述目标节点。
15.一种芯片,包括:
根据权利要求13所述的调度管理单元;
多个根据权利要求14所述的片上网络的节点。
16.一种显卡,包括:根据权利要求15所述的芯片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310117599.6A CN116226025A (zh) | 2023-01-17 | 2023-01-17 | 数据包传输方法、调度管理单元、芯片和显卡 |
US18/413,555 US20240244013A1 (en) | 2023-01-17 | 2024-01-16 | Method and scheduling management unit for transmitting data packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310117599.6A CN116226025A (zh) | 2023-01-17 | 2023-01-17 | 数据包传输方法、调度管理单元、芯片和显卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226025A true CN116226025A (zh) | 2023-06-06 |
Family
ID=86576323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310117599.6A Pending CN116226025A (zh) | 2023-01-17 | 2023-01-17 | 数据包传输方法、调度管理单元、芯片和显卡 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240244013A1 (zh) |
CN (1) | CN116226025A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155851A (zh) * | 2023-10-30 | 2023-12-01 | 苏州元脑智能科技有限公司 | 数据包的传输方法及***、存储介质及电子装置 |
CN118250744A (zh) * | 2024-05-28 | 2024-06-25 | 深圳市先行电气技术有限公司 | 一种基于双模通信技术的网络低延时传输方法及*** |
CN118250744B (zh) * | 2024-05-28 | 2024-08-02 | 深圳市先行电气技术有限公司 | 一种基于双模通信技术的网络低延时传输方法及*** |
-
2023
- 2023-01-17 CN CN202310117599.6A patent/CN116226025A/zh active Pending
-
2024
- 2024-01-16 US US18/413,555 patent/US20240244013A1/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155851A (zh) * | 2023-10-30 | 2023-12-01 | 苏州元脑智能科技有限公司 | 数据包的传输方法及***、存储介质及电子装置 |
CN117155851B (zh) * | 2023-10-30 | 2024-02-20 | 苏州元脑智能科技有限公司 | 数据包的传输方法及***、存储介质及电子装置 |
CN118250744A (zh) * | 2024-05-28 | 2024-06-25 | 深圳市先行电气技术有限公司 | 一种基于双模通信技术的网络低延时传输方法及*** |
CN118250744B (zh) * | 2024-05-28 | 2024-08-02 | 深圳市先行电气技术有限公司 | 一种基于双模通信技术的网络低延时传输方法及*** |
Also Published As
Publication number | Publication date |
---|---|
US20240244013A1 (en) | 2024-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060047849A1 (en) | Apparatus and method for packet coalescing within interconnection network routers | |
RU2430409C2 (ru) | Методология измерения покрытия в структурном состоянии взаимного соединения | |
CN107346351A (zh) | 用于基于源代码中定义的硬件要求来设计fpga的方法和*** | |
CN110086877A (zh) | 应用程序分享、分享信息显示方法、装置、设备及介质 | |
CN110463138B (zh) | 网络结构信息生成方法 | |
CN109447253B (zh) | 显存分配的方法、装置、计算设备及计算机存储介质 | |
US20240244013A1 (en) | Method and scheduling management unit for transmitting data packet | |
CN111459856B (zh) | 一种数据传输装置及传输方法 | |
US11544173B1 (en) | Detecting performance regressions in software for controlling autonomous vehicles | |
JP2022023910A (ja) | 通行状態取得方法及び装置、路側装置、並びに、クラウド制御プラットフォーム | |
CN112148493A (zh) | 一种流媒体任务管理方法及装置、数据服务器 | |
CN105404635B (zh) | 字符串匹配的方法、设备和异构计算*** | |
CN109388409A (zh) | 一种内网部署地图瓦片服务以及路径规划的方法 | |
CN110823253B (zh) | 基于无人车技术的数据处理方法、装置、设备及存储介质 | |
CN116842883A (zh) | 功耗分析方法、装置、电子设备及存储介质 | |
CN104205082A (zh) | 集成电路会聚互连节点控制 | |
CN115495500A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN112948251B (zh) | 软件自动测试方法及装置 | |
CN114285114A (zh) | 一种充电控制方法、装置、电子设备和存储介质 | |
CN110445666A (zh) | 一种网络质量检测方法、装置及服务器 | |
CN114490458A (zh) | 数据传输方法、芯片、服务器以及存储介质 | |
CN105791124B (zh) | 报文检测方法及装置 | |
CN113364652A (zh) | 网卡流量测试方法、装置、网络设备、***及可读介质 | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络***和方法 | |
JP2007293761A (ja) | エージェントの配置プログラム、方法、および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |