CN114500355B - 路由方法、片上网络、路由节点和路由装置 - Google Patents
路由方法、片上网络、路由节点和路由装置 Download PDFInfo
- Publication number
- CN114500355B CN114500355B CN202210142779.5A CN202210142779A CN114500355B CN 114500355 B CN114500355 B CN 114500355B CN 202210142779 A CN202210142779 A CN 202210142779A CN 114500355 B CN114500355 B CN 114500355B
- Authority
- CN
- China
- Prior art keywords
- routing
- node
- task
- routing node
- nodes
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000012545 processing Methods 0.000 claims abstract description 169
- 230000004044 response Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种路由方法、片上网络、路由节点和路由装置。该路由方法应用于片上网络,片上网络包括多个路由节点,多个路由节点包括对象路由节点以及与对象路由节点相邻的多个备选路由节点。该路由方法包括:在对象路由节点接收路由请求;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及基于路由请求执行当前路由任务,向下一路由节点提供所述路由请求。该方法能够提高路由效率。
Description
技术领域
本公开的实施例涉及一种路由方法、片上网络、路由节点和路由装置。
背景技术
随着处理器芯片核数的不断增多,片上系统(System-On-Chip,SoC)已呈现出多核到众核的发展趋势。在众核系统中,全局互连可导致严重的片上同步出错、不可预知的通信时延以及巨大的功耗开销。为了缓解这些矛盾,片上网络(Network-on-Chip,NoC)的概念被提出,片上网络可以替代传统的总线互连或点到点互连,片上网络成为一种新的片上通信架构。
发明内容
本公开至少一个实施例提供一种路由方法,应用于片上网络,所述片上网络包括多个路由节点,所述多个路由节点包括对象路由节点以及与所述对象路由节点相邻的多个备选路由节点,所述方法包括:在所述对象路由节点接收路由请求;根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,其中,每个所述备选路由节点的任务处理效率根据每个所述备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及基于所述路由请求执行当前路由任务,向所述下一路由节点提供所述路由请求。。
例如,在本公开一实施例提供的路由方法中,还包括:获取对象路由节点的任务处理效率;以及向与对象路由节点相邻的多个相邻路由节点提供对象路由节点的任务处理效率。
例如,在本公开一实施例提供的路由方法中,获取对象路由节点的任务处理效率,包括:响应于执行当前路由任务结束,计算执行当前路由任务的任务处理效率;基于执行当前路由任务的任务处理效率,确定对象路由节点的任务处理效率。
例如,在本公开一实施例提供的路由方法中,基于执行当前路由任务的任务处理效率,确定对象路由节点的任务处理效率,包括:获取对象路由节点执行多个第二历史路由任务每个的任务处理效率的平均值,将平均值作为对象路由节点的任务处理效率,多个第二历史路由任务包括当前路由任务;或者使用执行当前路由任务的任务处理效率替代在当前路由任务之前执行的上一路由任务的任务处理效率。
例如,在本公开一实施例提供的路由方法中,响应于执行当前路由任务结束,计算执行当前路由任务的任务处理效率,包括:记录执行当前路由任务所花费的总时间长度和有效时间长度,总时间长度包括有效时间长度和空闲时间长度,有效时间长度为向下一路由节点提供路由请求的时间长度;以及根据有效时间长度和总时间长度,计算任务处理效率。
例如,在本公开一实施例提供的路由方法中,路由请求包括路由终点节点,方法还包括:根据路由终点节点,确定至少一个可能路由方向;以及选择与对象路由节点相邻的多个相邻路由节点中位于可能路由方向上的多个路由节点作为多个备选路由节点。
例如,在本公开一实施例提供的路由方法中,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,包括:选择多个备选路由节点中任务处理效率最高的路由节点作为用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
例如,在本公开一实施例提供的路由方法中,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,还包括:响应于多个备选路由节点的任务处理效率相同,通过轮询的方式确定下一路由节点。
例如,在本公开一实施例提供的路由方法中,还包括:获取多个备选路由节点各自的待处理任务的数据量;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,包括:响应于多个备选路由节点各自的待处理任务的数据量相同,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
例如,在本公开一实施例提供的路由方法中,还包括:统计对象路由节点中待处理任务的数据量;向与对象路由节点相邻的多个相邻路由节点提供路由节点中待处理任务的数据量。
例如,在本公开一实施例提供的路由方法中,统计对象路由节点中待处理任务的数据量,包括:响应于对象路由节点接收路由请求,确定路由请求中的当前数据量;将当前数据量加入到对象路由节点的待处理任务数据量中,以更新待处理任务数据量;针对每个时间周期,统计时间周期内处理完成的已处理数据量;在待处理任务数据量中减去已处理数据量,得到对象路由节点中当前时刻的待处理任务的数据量。
例如,在本公开一实施例提供的路由方法中,还包括:确定对象路由节点是否为第一类型的路由节点;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,包括:响应于对象路由节点是第一类型的路由节点,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
例如,在本公开一实施例提供的路由方法中,还包括:响应于对象路由节点不是第一类型的路由节点,按照预设的路由路径,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
例如,在本公开一实施例提供的路由方法中,片上网络为网格结构的网络,多个路由节点分别在网格结构的第一方向上和第二方向上排序,第一类型的路由节点包括第一方向上的序号和在第二方向上的序号均为偶数的节点,第一方向和第二方向交叉。
本公开至少一个实施例提供一种片上网络,包括:多个路由节点,多个路由节点包括对象路由节点以及与所述对象路由节点相邻的多个备选路由节点,对象路由节点配置为:接收路由请求;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及基于所述路由请求执行当前路由任务,向下一路由节点提供路由请求。
本公开至少一个实施例提供一种路由节点,包括:接收单元,配置为接收路由请求;判决单元,配置为根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及提供单元,配置为基于所述路由请求执行当前路由任务,向下一路由节点提供路由请求。
本公开至少一个实施例提供一种路由装置,包括处理单元;存储单元,包括一个或多个计算机程序指令;一个或多个计算机程序指令被存储在存储单元中并由处理单元执行实现本公开任一实施例提供的路由方法的指令。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了本公开至少一实施例提供的一种路由方法的流程图;
图1B示出了根据本公开至少一实施例提供的一种片上网络的示意图;
图1C示出了本公开至少一个实施例提供的另一路由方法的流程图;
图1D示出了本公开至少一个实施例提供的另一路由方法的流程图;
图2示出了本公开至少一个实施例提供的图1D中步骤S60的方法流程图;
图3示出了本公开至少一个实施例提供的统计对象路由节点中待处理任务的数据量的方法流程图;
图4示出了本公开至少一个实施例提供的对象路由节点的处理状态机的示意图;
图5示出了本公开至少一个实施例提供的另一种路由方法的流程图;
图6示出了本公开至少一个实施例提供的一种对象路由节点的示意框图;
图7A示出了本公开至少一个实施例提供的第一方向判决单元和第二方向判决单元的原理示意图;
图7B示出了本公开至少一个实施例提供的数据量统计单元的原理示意图;
图7C示出了本公开至少一个实施例提供的任务处理效率统计单元的原理示意图;
图7D示出了本公开至少一个实施例提供的广播单元的工作示意图;
图8示出了采用本公开至少一实施例提供的路由方法和采用确定性路由方法的路由效率的对比图;
图9为本公开一些实施例提供的一种路由装置的示意框图;以及
图10示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
NOC系统包括资源节点、路由节点和拓扑结构。资源节点可以是各种功能模块,例如微处理器、DSP核、专用硬件资源等。路由节点是NOC的主要组成部分,其主要任务是接收来自一个端口的数据包,根据其中包括的目的地址,决定转发到哪个目的地(其可以是下一个路由节点,也可以是最终的目的地址)。拓扑结构是指片上网络中节点的分布情况和相互之间的连接方式,它决定了网络中的路由方式、仲裁方法、映射机制等。路由节点的调度算法主要是确定性路由算法,比如X-Y路由或Y-X路由。例如,利用X-Y路由将数据从A节点路由到B节点为优先选择X方向路由,待X方向完成之后,最后再选择Y方向进行路由,由此最终达到目的地。这种确定性路由算法的路由效率不高。例如,在路由过程中,X方向节点可能正处于忙碌状态而被阻塞住,而Y方向却是空闲的,但是由于采用了X-Y路由,只能一直等到X方向空闲了才能路由到下一个节点,而不能利用空闲的Y方向,这样对于效率是很大的损失。
本公开至少一个实施例提供一种路由方法、片上网络、路由节点和路由装置。该路由方法应用于片上网络,片上网络包括多个路由节点,多个路由节点包括对象路由节点以及与对象路由节点相邻的多个备选路由节点。该路由方法包括:在对象路由节点接收路由请求;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及基于路由请求执行当前路由任务,向下一路由节点提供所述路由请求。该路由方法根据与当前路由节点相邻的多个路由节点的任务处理效率来灵活地选择下一路由节点,从而提高路由效率。
图1A示出了本公开至少一实施例提供的一种路由方法的流程图。
如图1A所示,该方法可以包括步骤S10~S30。
步骤S10:在对象路由节点接收路由请求。
步骤S20:根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于所述对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到。
步骤S30:基于路由请求执行当前路由任务,向下一路由节点提供路由请求。
上述图1A所述的路由方法应用于片上网络的路由节点,例如,片上网络的多个路由节点中的任一节点。
图1B示出了根据本公开至少一实施例提供的一种片上网络的示意图。下面结合图1B对图1A的路由方法进行说明。
可以理解的是,图1B所示的片上网络的拓扑结构仅是为了便于对图1A的路由方法进行说明而示意性示出的,对本公开不具有限定作用,任何片上网络都可以应用本公开任一实施例提供的路由方法,并且在实际应用中的片上网络结构所包含的路由节点的数量多于图1B示意性示出的路由节点的数量。
图1B中的片上网络为3×4的矩阵结构,矩阵结构的每个节点的圆圈代表一个路由节点,图1A中的路由方法可以应用于图1B所示的片上网络中的一个或多个路由节点,例如任何一个路由节点,也即任何一个路由节点都可以作为对象路由节点。但是,应该理解的是,本公开实施例的方法不限于应用于上述规则的矩阵结构,也可以应用于其他拓扑结构,例如,至少一个路由节点与例如5个或更多相邻路由节点耦接。下面以路由方法应用于路由节点P6为例来说明步骤S10~30。
对于步骤S10,例如,对象路由节点为路由节点P6。路由节点P6接收来自路由节点P3的路由请求。路由请求中可以包括路由的目的地址、源地址以及数据等。
对于步骤S20,在本公开的一些实施例中,多个备选路由节点例如是与路由节点P6相邻的多个相邻路由节点。在本公开的实施例中,能够直接通信两个路由节点称作相邻的路由节点。例如,路由节点P6的多个相邻路由节点P3、P4、P7和P8都可以作为备选路由节点。因此,在该实施例中,步骤S20为根据备选路由节点P3、P4、P7和P8各自的任务处理效率,从备选路由节点P3、P4、P7和P8中选择下一路由节点。
图1C示出了本公开至少一个实施例提供的另一路由方法的流程图。
如图1C所示,该路由方法除包括图1A所示的步骤S10~步骤S30之外,还进一步包括步骤S40和步骤S50。
例如,步骤S40和步骤S50可以在步骤S10之后,且步骤S20之前执行,也可以在步骤S10之前执行。
步骤S40:根据路由终点节点,确定至少一个可能路由方向。
步骤S50:选择与对象路由节点相邻的多个相邻路由节点中位于可能路由方向上的多个路由节点作为多个备选路由节点。
在该实施例中,多个备选路由节点是位于可能路由方向上的多个路由节点,可能路由方向是根据路由终点节点确定的。该实施例首先根据可能路由方向从多个相邻路由节点中筛选出位于可能路由方向上的多个备选路由节点,从而能够沿着有效方向路由,降低路由的无效性,并且缩小了选择下一路由节点的选择范围,从而提高了路由效率。
对于步骤S40,路由终点节点可以是路由请求中的目的地址对应的路由节点。如图1B所示,片上网络为网格结构的网络(即,mesh网络),在路由空间(逻辑空间)中,该网络包括两个延伸方向,分别为X方向和Y方向,该X方向和Y方向交叉。例如,在图1B的示例中,以图中左下角的节点为原点,即坐标为(0,0)。例如,在一次路由任务中,路由终点节点为路由节点P5,路由节点P5在X方向上的坐标为3,路由节点P5在Y方向上的坐标为3,即路由节点P5的坐标为(3,3),路由节点P6的坐标为(2,2),由于路由节点P5的X坐标和Y坐标均大于路由节点P6的X坐标和Y坐标,则可能的路由方向为X增大的方向(即,朝右的方向)和Y增大的方向(朝上的方向)。
对于一个路由任务中的路由请求所经过的多个路由节点,该路由请求分别在该多个路由节点处的可能路由方向是相同的。例如,可能路由方向可以预先确定,在路由过程中不会在向上(Y增大的方向)和向下(Y减小的方向)之间变化,也不会在向左(X减小的方向)和向右(X增大的方向)之间变化,从而避免绕远路由(即,沿着非有效方向路由)。
对于步骤S50,例如,可能路由方向为X增大的方向和Y增大的方向,路由节点P6的多个相邻路由节点P3、P4、P7和P8中的路由节点P7和P8位于可能路由方向上,因此,将路由节点P7和P8作为多个备选路由节点。
返回参考图1A中的步骤S20,例如根据路由节点P7和P8各自的任务处理效率,从路由节点P7和P8中选择下一路由节点。
在本公开的一些实施例中,每个备选路由节点的任务处理效率可以根据每个备选路由节点执行至少一个历史路由任务(例如,将备选路由节点执行的历史任务称为“第一历史路由任务”)的有效时间得到。例如,每个备选路由节点对至少一个第一历史路由任务的有效时间和有效时间内处理的数据量进行计算得到。例如,多个相邻路由节点分别向路由节点P6提供各自的任务处理效率,路由节点P6响应于接收多个相邻路由节点各自的任务处理效率,将多个相邻路由节点各自的任务处理效率存储于自身的存储单元,从而从存储单元中读取多个备选路由节点各自的任务处理效率。
在本公开的一些实施例中,选择多个备选路由节点中任务处理效率最高的路由节点作为用于响应路由请求的对于对象路由节点的下一路由节点。例如,路由节点P6访问存储单元得到路由节点P7的任务处理效率大于路由节点P8的任务处理效率,则选择路由节点P7为下一路由节点。在该实施例中,将路由请求转发给任务处理效率最高的下一路由节点,不仅能够提高路由效率,还能够平衡多个备选路由节点的任务,降低阻塞发生概率。
在本公开的一些实施例中,响应于多个备选路由节点的任务处理效率相同,通过轮询的方式确定下一路由节点。例如,若多个备选路由节点的任务处理效率相同,则按照公平轮询的方式确定下一路由节点。轮询指的是,例如对于图1B所示的网格结构的网络,如果路由节点P6转发上一个路由请求时选择的是X方向,则转发当前路由请求选择Y方向;如果路由节点P6转发上一个路由请求时选择的是Y方向,则转发当前路由请求选择X方向,如此循环地选择X方向和Y方向。如果片上网络不是图1B所示的网格结构的网格,例如,一个路由节点有N(例如,N>5)个相邻节点时,那么就依次选择N个路由节点之一作为下一路由节点,当N各路由节点均被遍历选择之后,再重新依次选择N个路由节点之一作为下一路由节点。在任务处理效率相同的情况下,通过轮询的方式确定下一路由节点能够均衡各个路由节点的任务处理量。
对于步骤S30,当前路由任务,例如可以包括采用Valid-Ready握手方式向下一路由节点提供路由请求。
图1D示出了本公开至少一个实施例提供的另一路由方法的流程图。
如图1D所示,该路由方法除包括图1A所示的步骤S10~步骤S30之外,还进一步包括步骤S60和步骤S70。步骤S60和步骤S70例如可以在步骤S30之后执行。
步骤S60:获取对象路由节点的任务处理效率。
步骤S70:向与对象路由节点相邻的多个相邻路由节点提供对象路由节点的任务处理效率。
对于步骤S60可以是基于对象路由节点执行的路由任务,计算对象路由节点的任务处理效率。
图2示出了本公开至少一个实施例提供的图1D的实施例中的步骤S60的方法流程图。
如图2所示,步骤S60的一个示例可以包括步骤S61和步骤S62。
步骤S61:响应于执行当前路由任务结束,计算执行当前路由任务的任务处理效率。
步骤S62:基于执行当前路由任务的任务处理效率,确定对象路由节点的任务处理效率。
对于步骤S61,例如,记录执行当前路由任务所花费的总时间长度和有效时间长度,以及根据有效时间长度和总时间长度,计算任务处理效率。总时间长度包括有效时间长度和空闲时间长度,有效时间长度为向下一路由节点提供路由请求的时间长度。
例如,采用Valid-Ready握手方式向下一路由节点提供路由请求,统计路由请求的数据包(Packet)中起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的总时间长度以及起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的有效时间长度。
例如,当作为发送方的路由节点的Valid信号和作为接收方的下一路由节点的Ready信号同时置高时,发送方向接收方提供路由请求,Valid信号和Ready信号同时置高的时间长度为有效时间长度。
例如,总时间长度和有效时间长度可以通过控制该片上网络工作的系统时钟的时钟周期来表示,从而根据起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的总周期数以及起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的有效周期数,计算任务处理效率。
例如,任务处理效率可以等于有效周期数与总周期数的比值。
该实施例计算任务处理效率的方法考虑到了空闲时间无法有效地转发路由请求中的数据,利用有效时间长度计算任务效率提高了任务处理效率的准确性。
对于步骤S62,例如,使用执行当前路由任务的任务处理效率替代在当前路由任务之前执行的上一路由任务的任务处理效率。该实施例得到的对象路由节点的任务处理效率具有较好的实时性。
又例如,响应于执行当前路由任务结束,将当前路由任务作为一个历史路由任务(例如,将路由节点执行的历史路由任务称为“第二历史路由任务”)。获取路由节点执行多个第二历史路由任务每个的任务处理效率的平均值,将平均值作为路由节点的任务处理效率,多个第二历史路由任务包括当前路由任务。该实施例得到的对象路由节点的任务处理效率具有较好的稳定性。
例如,路由节点P6的任务处理效率为路由节点P6执行多个第二历史路由任务的任务处理效率的平均值。
对于步骤S70,在得到路由节点P6的任务处理效率之后,路由节点P6向多个相邻路由节点P3、P7、P8和P4提供自身(即,路由节点P6)的路由处理效率,使得多个相邻路由节点P3、P7、P8和P4每个可以根据路由节点P6的路由效率来确定是否向路由节点P6转发另一路由请求。
对于片上网络中的任意一个路由节点均可以按照上述步骤S61所描述的方法来计算自身的任务处理效率,并且向与自身相邻的多个路由节点提供自身的任务处理效率。例如,图1B中,除路由节点P6之外,路由节点P1~P5、路由节点P7以及路由节点P8均可以按照上述方法来计算自身的任务处理效率,并且任意一个路由节点都可以向该路由节点的相邻路由节点提供自身的任务处理效率。
在本公开的另一些实施例中,路由方法还可以包括获取多个备选路由节点各自的待处理任务的数据量。在该实施例中,步骤S20可以是响应于多个备选路由节点各自的待处理任务的数据量相同,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点。
例如,响应于对象路由节点接收路由请求,先判断多个备选路由节点的待处理任务的数据量是否相同。若待处理任务的数据量相同,则再根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点;若待处理任务的数据量不相同,则选择待处理任务的数据量最小的备选路由节点作为下一路由节点。该实施例先比较多个备选路由节点各自待处理任务的数据量,从而可以将路由请求转发给待处理任务的数据量最小的备选路由节点,均衡各个备选路由节点之间的待处理任务的数据量,提高路由效率。
在本公开的另一些实施例中,步骤S20可以包括:根据多个备选路由节点各自的待处理任务的数据量和任务处理效率,判断哪个备选路由节点先执行完成已有的待处理任务的数据量,并且选择先执行完成已有的待处理任务的数据量的备选路由节点作为下一路由节点。该实施例能够综合考虑多个备选路由节点各自的待处理任务的数据量和任务处理效率,将路由请求转发给优先执行完成已有的待处理任务的数据量的备选路由节点,进一步提高了路由效率。
在本公开的一些实施例中,例如,对象路由节点接收来自多个相邻路由节点的待处理任务的数据量,并且将各个相邻路由节点的待处理任务的数据量存储到存储单元中,从而从存储单元中读取多个备选路由节点各自的待处理任务的数据量。
在本公开的一些实施例中,路由方法还可以包括统计对象路由节点中待处理任务的数据量;以及向与对象路由节点相邻的多个相邻路由节点提供路由节点中待处理任务的数据量。
图3示出了本公开至少一个实施例提供的统计对象路由节点中待处理任务的数据量的方法流程图。
如图3所示,该方法可以包括步骤S31~步骤S34。
步骤S31:响应于对象路由节点接收路由请求,确定路由请求中的当前数据量。
步骤S32:将当前数据量加入到对象路由节点的待处理任务数据量中,以更新待处理任务数据量。
步骤S33:针对每个时间周期,统计时间周期内处理完成的已处理数据量。
步骤S34:在待处理任务数据量中减去已处理数据量,得到对象路由节点中当前时刻的待处理任务的数据量。
对于步骤S31,例如在接收到路由请求之后,确定路由请求包含的当前数据量,例如为3字节。
对于步骤S32,例如,路由节点的待处理任务数据量为10字节,则更新后的待处理任务数据量为13字节。
对于步骤S33,例如,对每个时间周期向下一路由节点转发的数据量进行统计得到该时间周期内的已处理数据量。例如,最新的时间周期内的处理已处理数据量为1字节。
对于步骤S34,例如,待处理任务数据量中13字节减去已处理数据量1字节,得到对象路由节点中当前时刻的待处理任务的数据量为12字节。
例如,在根据步骤S31~步骤S34得到路由节点中当前时刻的待处理任务的数据量之后,向多个相邻路由节点广播该路由节点中待处理任务的数据量。
图4示出了本公开至少一个实施例提供的对象路由节点的处理状态机的示意图。
如图4所示,在对对象路由节点上电后,对象路由节点处于空闲状态。响应于对象路由节点接收路由请求,对象路由节点进入方向判决状态。方向判决状态主要完成左右方向的路由判决和上下方向的路由判决,得到可能路由方向(DIRX,DIRY)。DIRX为左方向(即,X负方向)和右方向(即,X正方向)中的一个,DIRY在上方向(即,Y正方向)和下方向(即,Y负方向)中的一个。虽然在本公开图4所示的实施例中可能路由方向包括DIRX和DIRY两个方向,但是在本公开的另一些实施例中,可能路由方向可以包括3个、4个等多个方向,本公开对可能路由方向的数量不作限定。
在得到可能路由方向(DIRX,DIRY)之后,给出指示信号以进入任务量判决状态。任务量状态主要对上一步筛选出来的可能路由方向(DIRX,DIRY)进行待处理任务的数据量的比较。若可能路由方向(DIRX,DIRY)的路由节点(即,多个备选路由节点)中存在一个备选路由节点的待处理任务的数据量小于其他任何一个备选路由节点的待处理任务的数据量,则将该待处理任务的数据量最小的路由节点作为下一路由节点,然后进入发送状态。
若可能路由方向(DIRX,DIRY)的路由节点(即,多个备选路由节点)中存在至少两个路由节点各自的待处理任务的数据量相同,并且该至少两个路由节点的待处理任务的数据量小于其他任一备选路由节点的待处理任务的数据量,,则进入性能判决状态。在性能判决状态比较可能路由方向(DIRX,DIRY)上的备选路由节点的任务处理效率。
若可能路由方向(DIRX,DIRY)上的多个备选路由节点中存在一个任务处理效率最高的备选路由节点,则将该任务处理效率最高的备选路由节点作为下一路由节点,然后进入发送状态。
若可能路由方向(DIRX,DIRY)上的多个备选路由节点中存在至少两个路由节点各自的任务处理效率相同,并且该至少两个路由节点的任务处理效率高于其他的任一备选路由节点,则进入轮询状态。
在轮询状态,按照轮询的方式从可能路由方向(DIRX,DIRY)上的备选路由节点中确定下一路由节点,在确定下一路由节点后进入发送状态。
在发送状态时,执行图1A中的步骤S30,向下一路由节点发送路由请求。在对象路由节点完成向下一路由节点发送路由请求的路由任务之后,对象路由节点再次进入空闲状态。
在本公开的一些实施例中,路由方法还可以包括确定对象路由节点是否为第一类型的路由节点。在该实施例中,步骤S20可以包括响应于对象路由节点是第一类型的路由节点,根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应路由请求的对于所述对象路由节点的下一路由节点。
例如,片上网络为网格结构的网络,多个路由节点分别在网格结构的第一方向上和第二方向上依序排序,第一类型的路由节点包括第一方向上的序号和在第二方向上的序号均为偶数的节点,第一方向和第二方向交叉。
例如,以片上网络为图1B所示的mesh网络为例,多个路由节点分别在X方向和Y方向上依次排列。路由节点在X方向上的排列序号作为路由节点在X方向上的坐标,路由节点在Y方向上的排列序号作为路由节点在Y方向上的坐标,第一类型的路由节点为X坐标和Y坐标均为偶数的路由节点。
例如,在图1B中,路由节点P1的坐标为(1,0),路由节点P2的坐标为(0,1),路由节点P3的坐标为(1,2),路由节点P4的坐标为(2,1),路由节点P0的坐标为(1,1),路由节点P6的坐标为(2,2),则路由节点P6为第一类型的路由节点。路由节点P6根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择下一路由节点。
在本公开的一些实施例中,路由方法还包括:响应于对象路由节点不是第一类型的路由节点,按照预设的路由路径,从多个备选路由节点中选择用于响应路由请求的对于所述对象路由节点的下一路由节点。
例如,路由节点P1、P2、P3、P4和P0各自的X坐标和Y坐标存在奇数,因此路由节点P1、P2、P3、P4和P0不属于第一类型的路由节点。
例如,预设的路由路径可以是先沿X方向路由直到到达与路由终点节点在X方向对齐,再沿Y方向路由直到到达路由终点节点。也即,预设的路由路径可以是X-Y路由。
又例如,预设的路由路径可以是先沿Y方向路由直到到达与路由终点节点在Y方向对齐,再沿X方向路由直到到达路由终点节点。也即,预设的路由路径可以是Y-X路由。
例如,当路由请求由路由节点P0转发到路由节点P3之后,路由节点P3不属于第一类型的路由节点,则路由节点P3根据X-Y路由确定下一路由节点。例如,路由终点节点为P5,路由路径为X-Y路由,由于路由节点P3在X方向未与路由终点节点P5在X方向对齐,因此下一路由节点为路由节点P6。当路由请求转发到路由节点P6之后,路由节点P6属于第一类型的路由节点,因此路由节点P6可以根据多个备选路由节点(例如,路由节点P7和路由节点P8)的任务处理效率确定下一路由节点。
第一类型的路由节点根据多个备选路由节点各自的任务处理效率,选择下一路由节点能够至少部分地避免发生死锁。
本公开至少一个实施例提供了另一种路由方法,该路由方法应用于片上网络包括多个路由节点,多个路由节点包括对象路由节点以及与对象路由节点相邻的多个备选路由节点,该方法包括:在对象路由节点接收路由请求;根据多个备选路由节点各自的待处理任务的数据量和任务处理效率,从所述多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点;以及基于路由请求执行当前路由任务,向下一路由节点提供路由请求。该路由方法能够提高路由效率。
图5示出了本公开至少一个实施例提供的另一种路由方法的流程图。
如图5所示,该路由方法可以包括步骤S510~步骤S530。
步骤S510:在对象路由节点接收路由请求。
步骤S520:根据多个备选路由节点各自的待处理任务的数据量和任务处理效率,从所述多个备选路由节点中选择用于响应路由请求的对于对象路由节点的下一路由节点。
步骤S530:基于路由请求执行当前路由任务,向下一路由节点提供路由请求。
该路由方法根据待处理任务的数据量和任务处理效率灵活地选择下一路由节点,实现了自适应路由,从而提高路由效率。
对于步骤S520中待处理任务的数据量和任务处理效率的相关描述请参考上文,在此不再赘述。
例如,对象路由节点可以先比较多个备选路由节点的待处理任务的数据量,若根据多个备选路由节点的待处理任务的数据量无法选择下一路由节点,再根据多个备选路由节点的任务处理效率选择下一路由节点。例如,若多个备选路由节点中一个备选路由节点的待处理任务的数据量小于其他任何一个备选路由节点的待处理任务的数据量,则选择该待处理任务的数据量最小的备选路由节点作为下一路由节点。若多个备选路由节点中存在至少两个路由节点各自的待处理任务的数据量相同,并且该至少两个路由节点的待处理任务的数据量小于其他任一备选路由节点的待处理任务的数据量,则比较多个备选路由节点的任务处理效率,选择任务处理效率最大的备选路由节点作为下一路由节点。若多个备选路由节点中存在至少两个路由节点各自的任务处理效率相同,并且该至少两个路由节点的任务处理效率高于其他的任一备选路由节点,则按照上文描述的轮询的方式选择下一路由节点。
又例如,对象路由节点也可以先比较多个备选路由节点的任务处理效率,若根据任务处理效率无法选择下一路由节点,再根据多个备选路由节点的待处理任务的数据量选择下一路由节点。
在本公开的另一些实施例中,步骤S520可以包括:根据多个备选路由节点各自的待处理任务的数据量和任务处理效率,判断哪个备选路由节点先执行完成已有的待处理任务的数据量,并且选择先执行完成已有的待处理任务的数据量的备选路由节点作为下一路由节点。
图6示出了本公开至少一个实施例提供的一种对象路由节点600的示意框图,该对象路由节点用于构成片上网络。
例如,如图6所示,该对象路由节点600包括接收单元610、判决单元620和提供单元630。
接收单元610配置为接收路由请求。
接收单元610例如可以执行图1A描述的步骤S10或者图5所示的步骤S510。
判决单元620配置为根据多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应路由请求的对于所述对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据所述每个备选路由节点执行至少一个第一历史路由任务的有效时间得到。
判决单元620例如可以执行图1A描述的步骤S20或者图5所示的步骤S520。
提供单元630配置为基于路由请求执行当前路由任务,向所述下一路由节点提供所述路由请求。
提供单元630例如可以执行图1A描述的步骤S30或者图5所示的步骤S530。
例如,接收单元610可以包括多个输入输出接口,通过多个输入输出接口分别与多个相邻的路由节点通信,以接收来自多个相邻的路由节点的路由请求,并且向多个相邻的路由节点转发路由请求。
例如,对象路由节点600通过接收单元610接收来自位于该对象路由节点600的左侧的路由节点的路由请求,并且向位于该对象路由节点600左侧的路由节点发送路由响应。类似地,对象路由节点600可以通过接收单元610接收来自位于该对象路由节点600的右侧的路由节点、上方的路由节点和下方的路由节点的路由请求,并且向位于该对象路由节点600的右侧的路由节点、上方的路由节点和下方的路由节点发送路由响应。
如图6所示,在至少一个示例中,对象路由节点600还可以包括第一方向判决单元640和第二方向判决单元650。
判决单元620可以与第一方向判决单元640和第二方向判决单元650交互,确定可能路由方向。
图7A示出了本公开至少一个实施例提供的第一方向判决单元640和第二方向判决单元650的原理示意图。
如图7A所示,第一方向判决单元640可以获取路由终点节点在第一方向上的第一坐标和路由请求当前所在的对象路由节点在第一方向上的第二坐标,然后比较第一坐标和第二坐标,得到在第一方向上的可能路由方向DIRX。例如,第一方向为图1B中的X方向,若第一坐标大于第二坐标,则第一方向上的可能路由方向DIRX为向右(即,X坐标增大的方向),若第一坐标小于第二坐标,则第一方向上的可能路由方向DIRY为向左(即,X坐标减小的方向)。
第二方向判决单元650可以获取路由终点节点在第二方向上的第三坐标和路由请求当前所在的对象路由节点在第二方向上的第四坐标,然后比较第三坐标和第四坐标,得到在第二方向上的可能路由方向DIRY。例如,第二方向为图1B中的Y方向,若第三坐标大于第四坐标,则第二方向上的可能路由方向DIRY为向上(即,Y坐标增大的方向),若第三坐标小于第四坐标,则第二方向上的可能路由方向DIRY为向下(即,Y坐标减小的方向)。
如图6所示,对象路由节点600还可以包括数据量统计单元660。数据量统计单元660配置为实时地统计对象路由节点的待处理任务的数据量。
图7B示出了本公开至少一个实施例提供的数据量统计单元660的原理示意图。
如图7B所示,数据量统计单元660可以包括加法器和减法器。加法器和减法器可以为硬件、软件、固件以及它们的任意可行的组合。
例如,加法器获取已经接收的路由请求的当前数据量,当对象路由节点向上一路由节点发送响应之后,向加法器发送加法运算指示,使得加法器计算当前数据量与对象路由节点的待处理任务数据量之和,以更新待处理任务数据量。
针对每个时间周期,当该时间周期完成数据转发后,向减法器发送数据转发有效指示,使得减法器获取该时间周期内处理完成转发的数据量(即,已处理数据量),并且计算待处理任务数据量和已处理数据量之差,得到路由请求中待处理任务的数据量。
数据量统计单元660例如执行上文图3中的步骤S31~步骤S34。
如图6所示,对象路由节点600还可以包括任务处理效率统计单元670。任务处理效率统计单元670配置为计算对象路由节点执行每个任务的任务处理效率。
图7C示出了本公开至少一个实施例提供的任务处理效率统计单元670的原理示意图。
任务处理效率统计单元670例如执行上文图2中的步骤S61。
例如,统计路由请求的数据包(Packet)中起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的总时间长度以及起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的有效时间长度。起始数据为数据包中第一个数据,最终数据为数据包中最后一个数据。
例如,总时间长度和有效时间长度可以通过时钟周期来表示,从而根据起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的总周期数以及起始数据的有效指示(Valid)和最终数据的有效指示(Valid)之间的有效周期数,计算任务处理效率。
如图7C所示,例如,在至少一个示例中,任务处理效率等于有效周期数与总周期数的比值。
如图6所示,在至少一个示例中,对象路由节点600还可以包括广播单元680。广播单元680配置为将实时计算得到的对象路由节点的待处理任务的数据量和任务处理效率广播给相邻路由节点。
图7D示出了本公开至少一个实施例提供的广播单元680的工作示意图。
如图7D所示,广播单元680得到对象路由节点的待处理任务的数据量和任务处理效率之后,广播路由节点的待处理任务的数据量和任务处理效率。例如,对象路由节点的相邻路由节点包括上方路由节点、下发路由节点、左侧路由节点和右侧路由节点。对象路由节点例如通过Valid-Ready握手方式向上方路由节点、下方路由节点、左侧路由节点和右侧路由节点广播路由节点的待处理任务的数据量和任务处理效率。
如图6所示,对象路由节点600还可以包括存储单元690。存储单元690配置为存储各个相邻路由节点的待处理任务的数据量和任务处理效率。
例如,接收单元610、判决单元620和提供单元630可以为硬件、软件、固件以及它们的任意可行的组合。例如,接收单元610、判决单元620和提供单元630可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,对象路由节点600的各个单元与前述的路由方法的各个步骤对应,关于对象路由节点600的具体功能可以参考关于路由方法的相关描述,此处不再赘述。图6和图7A~7D所示的对象路由节点600的组件和结构只是示例性的,而非限制性的,根据需要,该对象路由节点600还可以包括其他组件和结构。
本公开的至少一实施例提出的路由方法,例如,首先确定在X方向上的可能路由方向为向左还是向右,在Y方向上的可能路由方向是向上还是向下,在整个路由过程中在X方向上的可能路由方向和在Y方向上的可能路由方向不会发生改变,这样从路由起始节点路由到路由终点节点的过程中,始终朝着有效的方向进行路由,而只是根据实时的待处理任务的数据量和任务处理效率等情况加速路由过程,而不会出现无效的绕远路由。这样,也能够至少部分地避免路由死锁。
图8示出了采用本公开至少一实施例提供的路由方法和采用确定性路由方法的路由效率的对比图。
例如,确定性路由方法为X-Y路由。
例如,有4个任务,分别为Job0~Job4,每个任务的数据量需要每个路由节点处理10个时钟周期,假如从图1B中的路由节点P9(0,0)路由到路由节点P0(1,1)。
若采用X-Y路由,4个任务每个任务都途径P1(1,0)节点,不计算路由起始节点P9(0,0)和路由终点节点P0(1,1)的处理时间,在途处理时间为50个时钟周期。
如图8中的X-Y路由的示意图所示,例如,在前10个时钟周期内,将第一个任务Job0从路由节点P9(0,0)路由到路由节点P1(1,0);在第10个时钟周期到第20个时钟周期,将第二个任务Job1从路由节点P9(0,0)路由到路由节点P1(1,0),并且将第一个任务Job0从路由节点P1(1,0)路由到路由终点节点P0(1,1),依次类推得到,采用X-Y路由将4个任务从路由节点P9(0,0)路由到路由节点P0(1,1)的处理时间为50个时钟周期。
如图8中的本公开至少一实施例提供的自适应路由的示意图所示,本公开实施例提供的自适应路由例如为图1A或者图5的路由方法,该路由方法将4个任务从路由节点P9(0,0)路由到路由节点P0(1,1)的处理时间为30个时钟周期。
例如,在前10个时钟周期内,将第一个任务Job0从路由节点P9(0,0)路由到路由节点P1(1,0),以及将第二个任务Job1从路由节点P9(0,0)路由到路由节点P2(0,1);在第10个时钟周期到第20个时钟周期,将第一个任务Job0从路由节点P1(1,0)路由到路由节点P0(1,1),以及将第二个任务Job1从路由节点P2(0,1)路由到路由节点P0(1,1),将第三个任务Job2从路由节点P9(0,0)路由到路由节点P1(1,0),将第四个任务Job3从路由节点P9(0,0)路由到路由节点P2(0,1);在后10个时钟周期,将第三个任务Job2从路由节点P1(1,0)路由到路由节点P0(1,1),将第四个任务Job3从路由节点P2(0,1)路由到路由节点P0(1,1)。因此,将4个任务从路由节点P9(0,0)路由到路由节点P0(1,1)的处理时间为30个时钟周期。
从图8的对比图可以看出,本公开上述实施例提供的路由方法相比于确定性路由方法能够提高路由效率,对于更复杂的网络,本公开的实施例提供的路由方法的效率优势更加明显。
本公开的至少一个实施例还提供了一种片上网络,包括多个路由节点,多个路由节点包括对象路由节点以及与所述对象路由节点相邻的多个备选路由节点,至少对象路由节点(例如每个路由节点)配置为:接收路由请求;根据多个备选路由节点各自的任务处理效率,从多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,每个备选路由节点的任务处理效率根据每个备选路由节点执行至少一个第一历史路由任务的有效时间得到;以及基于所述路由请求执行当前路由任务,向下一路由节点提供所述路由请求。
本公开的至少一个实施例还提供了一种路由装置,该路由装置包括处理单元;以及存储单元,包括一种或多个计算机程序指令;一个或多个计算机程序指令存储在存储单元中,并由处理单元执行实现本公开任一实施例所述的路由方法的指令。该路由装置用于路由节点,包括这样的路由节点的片上网络可以提高路由效率。
图9为本公开一些实施例提供的一种路由装置的示意框图。如图9所示,该路由装置900包括处理单元910和存储单元920。存储单元920用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理单元910用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理单元910运行时可以执行上文所述的路由方法中的一个或多个步骤。存储单元920和处理单元910可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理单元910可以是中央处理单元(CPU)或者具有数据处理能力和/或程序执行能力的其它形式的单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理单元910可以为通用处理器或专用处理器,可以控制路由装置中的其它组件以执行期望的功能。
例如,存储单元920可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理单元910可以运行一个或多个计算机程序模块,以实现路由装置900的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,路由装置900的具体功能和技术效果可以参考上文中关于路由方法的描述,此处不再赘述。
例如,根据本公开的实施例,上述路由方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述路由方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置安装,或者从ROM安装。在该计算机程序被处理装置执行时,可以实现本公开至少一实施例提供的路由方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的路由方法。利用该计算机可读存储介质,可以提高路由效率。
图10为本公开一些实施例提供的一种存储介质的示意图。如图10所示,存储介质1000用于存储非暂时性计算机可读指令1010。例如,当非暂时性计算机可读指令1010由计算机执行时可以执行根据上文所述的路由方法中的一个或多个步骤。
例如,该存储介质1000可以应用于上述路由装置900中。例如,存储介质1000可以为图9所示的路由装置900中的存储单元920。例如,关于存储介质1000的相关说明可以参考图9所示的路由装置900中的存储单元920的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种路由方法,应用于片上网络,所述片上网络包括多个路由节点,所述多个路由节点包括对象路由节点以及与所述对象路由节点相邻的多个备选路由节点,所述方法包括:
在所述对象路由节点接收路由请求;
根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,其中,每个所述备选路由节点的任务处理效率根据每个所述备选路由节点执行至少一个第一历史路由任务的有效时间长度和总时间长度得到,所述总时间长度包括有效时间长度和空闲时间长度,所述至少一个第一历史路由任务每个的所述有效时间长度为所述备选路由节点执行所述第一历史路由任务提供对应的路由请求所花费的时间长度;以及
基于所述路由请求执行当前路由任务,向所述下一路由节点提供所述路由请求。
2.根据权利要求1所述的方法,还包括:
获取所述对象路由节点的任务处理效率;以及
向与所述对象路由节点相邻的多个相邻路由节点提供所述对象路由节点的任务处理效率。
3.根据权利要求2所述的方法,其中,所述获取所述对象路由节点的任务处理效率,包括:
响应于执行所述当前路由任务结束,计算执行所述当前路由任务的任务处理效率;
基于执行所述当前路由任务的任务处理效率,确定所述对象路由节点的任务处理效率。
4.根据权利要求3所述的方法,其中,基于执行所述当前路由任务的任务处理效率,确定所述对象路由节点的任务处理效率,包括:
获取所述对象路由节点执行多个第二历史路由任务每个的任务处理效率的平均值,将所述平均值作为所述对象路由节点的任务处理效率,其中,所述多个第二历史路由任务包括所述当前路由任务;或者
使用执行所述当前路由任务的任务处理效率替代在所述当前路由任务之前执行的上一路由任务的任务处理效率。
5.根据权利要求3所述的方法,其中,响应于执行所述当前路由任务结束,计算执行所述当前路由任务的任务处理效率,包括:
记录执行所述当前路由任务所花费的总时间长度和有效时间长度,其中,所述当前路由任务所花费的有效时间长度为所述对象路由节点向所述当前路由任务的下一路由节点提供所述路由请求的时间长度;以及
根据所述当前路由任务所花费的所述有效时间长度和所述总时间长度,计算任务处理效率。
6.根据权利要求1所述的方法,其中,所述路由请求包括路由终点节点,所述方法还包括:
根据所述路由终点节点,确定至少一个可能路由方向;以及
选择与所述对象路由节点相邻的多个相邻路由节点中位于所述可能路由方向上的多个路由节点作为所述多个备选路由节点。
7.根据权利要求1所述的方法,其中,根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点,包括:
选择所述多个备选路由节点中任务处理效率最高的路由节点作为所述用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
8.根据权利要求7所述的方法,其中,根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点,还包括:
响应于所述多个备选路由节点的任务处理效率相同,通过轮询的方式确定所述下一路由节点。
9.根据权利要求1所述的方法,还包括:
获取所述多个备选路由节点各自的待处理任务的数据量;
根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点,包括:
响应于所述多个备选路由节点各自的待处理任务的数据量相同,根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点。
10.根据权利要求1所述的方法,还包括:
统计所述对象路由节点中待处理任务的数据量;
向与所述对象路由节点相邻的多个相邻路由节点提供所述对象路由节点中待处理任务的数据量。
11.根据权利要求10所述的方法,其中,统计所述对象路由节点中待处理任务的数据量,包括:
响应于所述对象路由节点接收所述路由请求,确定所述路由请求中的当前数据量;
将所述当前数据量加入到所述对象路由节点的待处理任务数据量中,以更新所述待处理任务数据量;
针对每个时间周期,统计所述时间周期内处理完成的已处理数据量;
在所述待处理任务数据量中减去所述已处理数据量,得到所述对象路由节点中当前时刻的待处理任务的数据量。
12.根据权利要求1所述的方法,还包括:
确定所述对象路由节点是否为第一类型的路由节点;
根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点,包括:
响应于所述对象路由节点是所述第一类型的路由节点,根据所述多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的所述下一路由节点。
13.根据权利要求12所述的方法,还包括:
响应于所述对象路由节点不是所述第一类型的路由节点,按照预设的路由路径,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点。
14.根据权利要求12所述的方法,其中,所述片上网络为网格结构的网络,所述多个路由节点分别在所述网格结构的第一方向上和第二方向上排序,
所述第一类型的路由节点包括所述第一方向上的序号和在第二方向上的序号均为偶数的节点,
所述第一方向和所述第二方向交叉。
15.一种应用于片上网络的路由装置,包括多个路由节点,所述多个路由节点包括对象路由节点以及与所述对象路由节点相邻的多个备选路由节点,其中,
所述对象路由节点配置为:
接收路由请求;
根据多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述对象路由节点的下一路由节点,其中,每个备选路由节点的任务处理效率根据所述每个备选路由节点执行至少一个第一历史路由任务的有效时间长度和总时间长度得到,所述总时间长度包括有效时间长度和空闲时间长度,所述至少一个第一历史路由任务每个的有效时间长度为所述备选路由节点执行所述第一历史路由任务提供对应的路由请求所花费的时间长度;以及
基于所述路由请求执行当前路由任务,向所述下一路由节点提供所述路由请求。
16.一种路由节点,包括:
接收单元,配置为接收路由请求;
判决单元,配置为根据多个备选路由节点各自的任务处理效率,从所述多个备选路由节点中选择用于响应所述路由请求的对于所述路由节点的下一路由节点,其中,每个备选路由节点的任务处理效率根据所述每个备选路由节点执行至少一个第一历史路由任务的有效时间长度和总时间长度得到,所述总时间长度包括有效时间长度和空闲时间长度,所述至少一个第一历史路由任务每个的有效时间长度为所述备选路由节点执行所述第一历史路由任务提供对应的路由请求所花费的时间长度;以及
提供单元,配置为基于所述路由请求执行当前路由任务,向所述下一路由节点提供所述路由请求。
17.一种路由装置,包括:
处理单元;以及
存储单元,包括一种或多个计算机程序指令;
其中,所述一个或多个计算机程序指令存储在所述存储单元中,并由所述处理单元执行实现权利要求1-14任一项所述的路由方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210142779.5A CN114500355B (zh) | 2022-02-16 | 2022-02-16 | 路由方法、片上网络、路由节点和路由装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210142779.5A CN114500355B (zh) | 2022-02-16 | 2022-02-16 | 路由方法、片上网络、路由节点和路由装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500355A CN114500355A (zh) | 2022-05-13 |
CN114500355B true CN114500355B (zh) | 2023-06-16 |
Family
ID=81483229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210142779.5A Active CN114500355B (zh) | 2022-02-16 | 2022-02-16 | 路由方法、片上网络、路由节点和路由装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500355B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116405555B (zh) * | 2023-03-08 | 2024-01-09 | 阿里巴巴(中国)有限公司 | 数据传输方法、路由节点、处理单元和片上系统 |
CN116578523B (zh) * | 2023-07-12 | 2023-09-29 | 上海芯高峰微电子有限公司 | 片上网络系统及其控制方法 |
CN117135103B (zh) * | 2023-10-25 | 2024-02-23 | 苏州元脑智能科技有限公司 | 片上网络的路由方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667439B1 (en) * | 2013-02-27 | 2014-03-04 | Netspeed Systems | Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost |
CN103970710A (zh) * | 2013-01-24 | 2014-08-06 | 三星电子株式会社 | 自适应服务控制器、片上系统和控制其的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986653B (zh) * | 2014-05-29 | 2017-03-22 | 苏州大学 | 一种网络节点及数据传输方法和系统 |
CN107391247B (zh) * | 2017-07-21 | 2020-06-26 | 同济大学 | 一种片上网络应用的广度优先贪心映射方法 |
CN108282707B (zh) * | 2017-12-22 | 2019-12-31 | 西安电子科技大学 | 光电路交换条件下的光片上网络路径计算方法 |
CN111427835B (zh) * | 2020-03-13 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种基于混合路由算法的片上网络设计方法和装置 |
CN111865799B (zh) * | 2020-07-14 | 2023-09-05 | 北京灵汐科技有限公司 | 路径规划方法、装置、路径规划设备及存储介质 |
-
2022
- 2022-02-16 CN CN202210142779.5A patent/CN114500355B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970710A (zh) * | 2013-01-24 | 2014-08-06 | 三星电子株式会社 | 自适应服务控制器、片上系统和控制其的方法 |
US8667439B1 (en) * | 2013-02-27 | 2014-03-04 | Netspeed Systems | Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost |
Also Published As
Publication number | Publication date |
---|---|
CN114500355A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114500355B (zh) | 路由方法、片上网络、路由节点和路由装置 | |
US10733026B2 (en) | Automated workflow selection | |
CN107111517B (zh) | 针对归约器任务的虚拟机优化分配和/或生成 | |
CA2517156C (en) | System and method for dynamic ordering in a network processor | |
Castilhos et al. | Distributed resource management in NoC-based MPSoCs with dynamic cluster sizes | |
CN109451540B (zh) | 一种网络切片的资源分配方法和设备 | |
JP5245711B2 (ja) | 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム | |
WO2012020474A1 (ja) | ジョブ管理装置及びジョブ管理方法 | |
JP2007140710A (ja) | タスク割り当て方法およびタスク割り当て装置 | |
JP6221588B2 (ja) | 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 | |
WO2019056771A1 (zh) | 分布式存储系统升级管理的方法、装置及分布式存储系统 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
JP2005310120A (ja) | 計算機システム及びタスク割当方法 | |
CN112882827B (zh) | 用于负载均衡的方法、电子设备和计算机程序产品 | |
US11694014B2 (en) | Logical node layout method and apparatus, computer device, and storage medium | |
WO2017169471A1 (ja) | 処理システムおよび処理方法 | |
CN114298431A (zh) | 一种网络路径选择方法、装置、设备及存储介质 | |
CN116820687B (zh) | 基于kubelet的NUMA架构资源分配方法及系统 | |
CN113746763B (zh) | 一种数据处理的方法、装置和设备 | |
JP5577745B2 (ja) | クラスタシステム、プロセス配置方法、及びプログラム | |
CN115118666B (zh) | 一种负载重新分配方法及装置 | |
CN115580572A (zh) | 路由方法、路由节点、路由装置和计算机可读存储介质 | |
CN113452729A (zh) | 序列号确定方法、设备及存储介质 | |
CN118748653A (zh) | 数据包发送方法、装置、电子设备及可读存储介质 | |
JP6219771B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |