CN115345100A - 片上网络仿真模型及动态路径规划方法、装置、多核芯片 - Google Patents
片上网络仿真模型及动态路径规划方法、装置、多核芯片 Download PDFInfo
- Publication number
- CN115345100A CN115345100A CN202110519114.7A CN202110519114A CN115345100A CN 115345100 A CN115345100 A CN 115345100A CN 202110519114 A CN202110519114 A CN 202110519114A CN 115345100 A CN115345100 A CN 115345100A
- Authority
- CN
- China
- Prior art keywords
- path
- port
- directed
- data transmission
- chip
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开属于程序编译技术领域,提供一种片上网络仿真模型及动态路径规划方法、装置、多核芯片,片上网络包括多个端口,方法包括:建立存在物理直连路径的各端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;根据有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;从所有可选路径中按预设规则选取目标路径,作为数据传输起始端口到数据传输终止端口的传输路径。本公开能简单灵活地动态规划路径,提升路由效率;避免数据传输中出现死锁等问题,提升路径可靠性;芯片设计中,能快速评估芯片性能,指导芯片设计和性能优化,提升编译效率,降低硬件要求,节省成本。
Description
技术领域
本公开属于程序编译技术领域,具体涉及一种片上网络仿真模型及动态路径规划方法、装置、多核芯片。
背景技术
随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点就是,人们获得的数据种类越来越多,获得的数据数量越来越大,而对处理数据的速度要求越来越高。芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的神经网络算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如中央处理器(CentralProcessing Unit,CPU)等,该路线能提供极大的灵活性,但是在处理特定领域神经网络算法时有效算力比较低;另一条是专用芯片路线,例如张量处理器(Tensor ProcessingUnit,TPU)等,该路线在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的通用的领域,该路线处理能力比较差甚至无法处理。
在神经网络计算领域的多(众)核芯片设计之前,通常会建立芯片各组成模块的仿真模型,以进行芯片的功能验证、性能评估等工作。芯片实物生产出来,进入应用阶段后,每次编译器编译神经网络计算程序过程中,需要实时评估程序的效率,进而优化生成的神经网络计算程序。这就要求建立一个准确而高效的神经网络芯片的仿真器。
一般而言,在多(众)核芯片中,核间通信以及核与其他模块之间的通信,都是通过片上网络(Network on Chip,NoC)进行。这样,会建立一个NoC仿真模型,然后根据仿真模型,进行数据传输的路径选择和优化,即路由方法。对于不同的NoC仿真模型,会有不同的路由方法,同时效果也差异巨大。
通常的NoC仿真模型及对应的路由方法如下:
一、精确的软件模拟电路的NoC模型:
该模型侧重精确,会将NoC的电路,用软件模拟的方式表达出来,从而能够比较准确的评估NoC的性能,包括数据的精确延时等。在进行路径选择时,根据实际电路的运行情况,按照电路的工作状态,建立对应的静态路由表,完成路径选择。但是,此方法使得软件设计复杂,仿真运行时间长,对运行仿真程序的机器要求高。
二、粗糙的功能模块表达的NoC模型:
该模型侧重高效,会将NoC看成一具有某些行为特性的功能模块,仿真结果只表达NoC的各接口的行为,从而使仿真速度快,对运行仿真程序的机器要求低。此方法由于仿真模型过于粗糙,无法表达NoC的实际特性,无法得到精确的时序信息,无法仿真NoC的拥塞状况等情况,所以几乎不能进行路径的选择和优化。
综上,对于精确的软件模拟电路的NoC模型,在进行路由规划仿真时,只能建立对应的静态路由表,无法根据路径当前占用状态对规划路径进行实时更新,并且,其仿真程序复杂,运行速度慢,耗费资源多,成本高;对于粗糙的功能模块表达的NoC模型,几乎无法进行动态路径选择和优化,从而无法准确评估芯片的性能,无法实现程序的优化。
发明内容
本公开旨在至少解决现有技术中存在的问题之一,提供一种片上网络仿真模型及动态路径规划方法、装置、多核芯片。
本公开的一个方面,提供一种片上网络仿真模型的动态路径规划方法,所述片上网络包括多个端口,所述方法包括:
建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;
根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;
从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
在一些实施方式中,所述根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径,包括:
根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,每条可能路径包括多条子路径;以及,
根据所述有向路径表,从所述多条子路径中确定出处于空闲状态的所有空闲子路径,得到所述可选路径。
在一些实施方式中,所述根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,包括:
根据所述有向路径表,确定出所述数据传输起始端口到所述数据传输终止端口之间的各级接力端口,相邻两级接力端口之间形成所述子路径。
在一些实施方式中,所述方法还包括:
每隔预定的时钟周期,根据各所述有向路径的实际占用状态,动态更新所述有向路径表中的路径状态信息。
在一些实施方式中,所述方法还包括:
根据所述目标路径所包括的各所述子路径,更新所述有向路径表中的路径状态信息。
在一些实施方式中,所述有向路径表包括第一子有向路径表和第二子有向路径表;
所述第一子有向路径表按照正向传输顺序建立形成,所述第二子有向路径表按照负向传输顺序建立形成。
在一些实施方式中,所述预设规则包括最短路径规则、随机选取路径规则或顺序选取路径规则。
本公开的另一个方面,提供一种片上网络仿真模型的路径规划装置,所述片上网络包括多个端口,所述装置包括:
建立模块,用于建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;
确定模块,用于根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;
选取模块,用于从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
在一些实施方式中,所述确定模块,用于根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径,包括:所述确定模块用于:
根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,每条可能路径包括多条子路径;以及,
根据所述有向路径表,从所述多条子路径中确定出处于空闲状态的所有空闲子路径,得到所述可选路径。
在一些实施方式中,所述确定模块用于,根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,包括:所述确定模块用于:
根据所述有向路径表,确定出所述数据传输起始端口到所述数据传输终止端口之间的各级接力端口,相邻两级接力端口之间形成所述子路径。
在一些实施方式中,所述建立模块还用于:
每隔预定的时钟周期,根据各所述有向路径的实际占用状态,动态更新所述有向路径表中的路径状态信息。
在一些实施方式中,所述建立模块还用于:
根据所述目标路径所包括的各所述子路径,更新所述有向路径表中的路径状态信息。
在一些实施方式中,所述有向路径表包括第一子有向路径表和第二子有向路径表;
所述第一子有向路径表按照正向传输顺序建立形成,所述第二子有向路径表按照负向传输顺序建立形成。
在一些实施方式中,所述选取模块,用于从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径,包括:
所述选取模块具体用于:
从所述所有可选路径中按照最短路径规则、随机选取路径规则或顺序选取路径规则选取目标路径。
本公开的另一个方面,提供一种片上网络仿真模型,所述片上网络仿真模型采用前文记载的所述的方法;或,
所述片上网络仿真模型包括前文记载的所述的装置。
本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,所述芯片用于执行前文记载的所述的方法;或,
所述芯片包括前文记载的所述的装置。
本公开的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
本公开的片上网络仿真模型及动态路径规划方法及装置、多核芯片,根据建立的有向路径表,能够根据片上网络的实时工作状态简单灵活地动态规划路径,有效利用NoC,减少数据的堵塞,提升路由的效率;算法实现简单,仿真计算量小,大大节省了路由规划和仿真的资源;还能够避免数据传输中出现死锁等问题,提升路径的可靠性;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率,降低对运行仿真程序的硬件要求,节省成本。
附图说明
图1为本公开一实施例的电子设备的组成示意框图;
图2为本公开另一实施例的片上网络仿真模型的动态路径规划方法的流程图;
图3为本公开另一实施例的NoC仿真模型的示意图;
图4为本公开另一实施例的一条有向路径的示意图;
图5为本公开另一实施例的NoC仿真模型的示意图;
图6为本公开另一实施例的NoC仿真模型的数据传输示意图;
图7至图9为本公开另一实施例的可选路径表的更新过程示意图;
图10为本公开另一实施例的片上网络仿真模型的路径规划装置的示意图。
具体实施方式
为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和具体实施方式对本公开作进一步详细描述。
首先,参照图1来描述用于实现本公开实施例的装置及方法的示例电子设备。
如图1所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图1所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器210可以是由多(众)核架构的芯片组成的神经网络处理器,也可以是单独的中央处理单元,或者,也可以是中央处理单元+多核神经网络处理器阵列或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本公开实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
下面,将参考图2描述根据本公开一实施例的片上网络仿真模型的动态路径规划方法。该动态路径规划方法,是指在进行路径规划时,根据当前各条路径的繁忙状况,从若干条可选路径中依照某种预设规则,选取出目标路径,作为最终的传输路径。
示例性的,如图2所示,一种片上网络仿真模型的动态路径规划方法S100,片上网络包括多个端口,方法S100包括:
S110、建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息。
示例性的,一并结合图3和图4,在本步骤中,片上网络可以包括N个端口(Port),即端口P1至端口PN,每个端口都可以同时实现输入和输出。有时,某个端口也可以是单向的,即只能实现输入或者输出。对片上网络进行建模,用有向路径DR(Directed Route)组合成整个NoC,每条有向路径DR代表两个端口之间与该有向路径DR方向相同的物理直连路径,其中,物理直连路径是指两个端口之间不需要跨其他端口通信的物理路径。在某一个方向上,两个端口之间要么不存在物理直连路径,要么只存在一条物理直连路径。如图4所示,每条有向路径DR包括起点端口SP(Start Port)即数据的发送端口和终点端口EP(End Port)即数据的接收端口,此外,每条有向路径DR还包括路径属性信息L和路径状态信息S。路径属性信息L可以是该条有向路径中,数据从起点端口SP传输到终点端口EP所需要花费的时钟数,即时延(Latency)。路径状态信息S可以表示该条有向路径在当前时刻是否被占用,即处于占用状态还是空闲状态。
如表1所示,建立存在物理直连路径的各端口的有向路径表,每条有向路径包括起点端口PX、终点端口PY、路径属性信息LXY和路径状态信息SXY。例如,L12和S12分别表示从起点端口P1到终点端口P2的有向路径的路径属性信息和路径状态信息,L21和S21分别表示从起点端口P2到终点端口P1的有向路径的路径属性信息和路径状态信息,L1N和S1N分别表示从起点端口P1到终点端口PN的有向路径的路径属性信息和路径状态信息,LN1和SN1分别表示从起点端口PN到终点端口P1的有向路径的路径属性信息和路径状态信息,等等。
表1
SP | EP | L(Latency) | S(Status) |
… | … | … | … |
P<sub>X</sub> | P<sub>Y</sub> | L<sub>XY</sub> | S<sub>XY</sub> |
… | … | … | … |
路径属性信息LXY的取值可以为数据从起点端口PX通过物理直连路径直接传输到终点端口PY所需要花费的时钟数,还可以是从起点端口PX到终点端口PY的有向路径的路径长度,或者,路径属性信息LXY的取值还可以为其他值,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。路径状态信息SXY的取值可以根据有向路径的不同状态分别确定。例如,当从起点端口PX到终点端口PY的有向路径处于占用状态时,路径状态信息SXY的取值可以为“1”;当从起点端口PX到终点端口PY的有向路径处于空闲状态时,路径状态信息SXY的取值可以为“0”。或者,当从起点端口PX到终点端口PY的有向路径处于占用状态时,路径状态信息SXY的取值可以为“0”;当从起点端口PX到终点端口PY的有向路径处于空闲状态时,路径状态信息SXY的取值可以为“1”。当然,路径状态信息SXY的取值也可以为其他值,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。
需要说明的是,当两个端口之间不存在某一方向上的物理直连路径时,该物理直连路径对应的有向路径也就不存在,有向路径表中也就不需要记载该物理直连路径对应的有向路径。换句话说,有向路径表中,可以只记载各条物理直连路径对应的有向路径。
需要说明的是,对于已经设计好或者生产出来的片上网络,各条有向路径的起点端口、终点端口以及路径属性信息都是确定的,在进行路径规划的过程中不会发生改变。在每次进行性能仿真模拟及程序编译优化前,会根据片上网络的实际情况,初始化有向路径表中的相关信息。而在仿真模拟或者编译优化程序过程中,则会根据各条有向路径的实际占用情况对有向路径表中的路径状态信息进行更新。
需要说明的是,在有向路径表中,各条有向路径可以按行排列,也可以按列排列,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。
S120、根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径。
具体地,在本步骤中,由于可能会存在当前被占用即处于占用状态的有向路径,因此,需要根据有向路径表,确定出从数据传输起始端口到数据传输终止端口的由若干条处于空闲状态的有向路径组成的各条可选路径。
示例性的,当数据传输起始端口为端口P1、数据传输终止端口为端口P4时,根据有向路径表,若当前时刻,从端口P2到端口P3的有向路径被占用即处于占用状态,从端口P1到端口P3的有向路径、从端口P3到端口P4的有向路径、从端口P1到端口P2的有向路径、从端口P2到端口P4的有向路径均处于空闲状态,则查找出的从端口P1到端口P4的处于空闲状态的所有可选路径可以是:P1→P3→P4,P1→P2→P4。
S130、从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
具体地,在本步骤中,当数据传输起始端口为端口PX,数据传输终止端口为端口PY时,从端口PX到端口PY的所有可选路径中,可以按照预设规则选取出目标路径,作为端口PX到端口PY的传输路径。
示例性的,当从数据传输起始端口P1到数据传输终止端口P4的所有可选路径包括P1→P3→P4及P1→P2→P4时,可以从可选路径P1→P3→P4和P1→P2→P4中按照预设规则选取出目标路径,作为端口P1到端口P4的传输路径,选取出的目标路径可以是P1→P3→P4,也可以是P1→P2→P4。
本实施例的片上网络仿真模型的动态路径规划方法,根据建立的有向路径表,能够根据片上网络的实时工作状态简单灵活地动态规划路径,有效利用NoC,减少数据的堵塞,提升路由的效率;算法实现简单,仿真计算量小,大大节省了路由规划和仿真的资源;还能够避免数据传输中出现死锁等问题,提升路径的可靠性;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率,降低对运行仿真程序的硬件要求,节省成本。
示例性的,所述根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径,包括:
根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,每条可能路径包括多条子路径;以及,
根据所述有向路径表,从所述多条子路径中确定出处于空闲状态的所有空闲子路径,得到所述可选路径。
具体地,在本步骤中,从数据传输起始端口到数据传输终止端口的所有可能路径,是指不考虑各条子路径的实际占用状态,数据从数据传输起始端口到达数据传输终止端口所经过的多条子路径组合成的路径,其中,每条可能路径分别包括多条子路径。由于各条子路径中可能会存在处于占用状态的占用子路径,所以需要根据有向路径表,确定出各条子路径中处于空闲状态的所有空闲子路径,即可得到所有可选路径。
示例性的,所述根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,包括:
根据所述有向路径表,确定出所述数据传输起始端口到所述数据传输终止端口之间的各级接力端口,相邻两级接力端口之间形成所述子路径。
具体地,在本步骤中,在确定从数据传输起始端口到数据传输终止端口的所有可能路径时,可以根据有向路径表,确定出各条可能路径依次包括的各条有向路径,各条有向路径包括的各个端口依次组成各级接力端口,相邻两级接力端口之间的物理直连路径即为一条有向路径,该有向路径即形成其所在的可能路径中的一条子路径。
示例性的,每隔预定的时钟周期,根据各所述有向路径的实际占用状态,动态更新所述有向路径表中的路径状态信息。
具体地,在本步骤中,可以每隔一个或多个时钟周期,根据各有向路径的实际占用状态,对有向路径表中的路径状态信息进行一次更新。两次更新之间间隔的具体时钟周期数可以由本领域技术人员根据实际需要自行确定,本实施例对此并不限制。
本实施例的片上网络仿真模型的动态路径规划方法,每隔预定的时钟周期对有向路径表中的路径状态信息进行动态更新,可以使有向路径表中的路径状态信息始终保持最新状态,方便后续进行动态路径规划。
示例性的,根据所述目标路径所包括的各所述子路径,更新所述有向路径表中的路径状态信息。
具体地,在本步骤中,在选取出目标路径之后,可以将目标路径包括的各条子路径设置为占用状态,并将其在有向路径表中的路径状态信息进行更新,以表示目标路径包括的各条子路径当前正在被占用。
示例性的,所述有向路径表包括第一子有向路径表和第二子有向路径表;
所述第一子有向路径表按照正向传输顺序建立形成,所述第二子有向路径表按照负向传输顺序建立形成。
具体地,在建立有向路径表时,可以按照数据传输方向,分别建立第一子有向路径表和第二子有向路径表。其中,第一子有向路径表中的各条有向路径可以按照正向传输方向进行数据传输,第二子有向路径表中的各条有向路径可以按照负向传输方向进行数据传输。
本实施例的片上网络仿真模型的动态路径规划方法,通过按照数据传输方向分别建立第一子有向路径表和第二子有向路径表,可以使得在进行单向无环路径查找时,只在第一子有向路径表或者第二子有向路径表中查找即可,缩小了查找范围,提高了路径规划的效率。
示例性的,所述预设规则包括最短路径规则、随机选取路径规则或顺序选取路径规则。
具体地,在从所有可选路径中选取目标路径时,可以选取其中的最短路径即数据传输所花费的路由时间最短的路径作为目标路径,也可以随机选取一条可选路径作为目标路径,还可以按照各个可选路径排列的顺序,从中选取一条可选路径作为目标路径。在按照顺序选取路径规则从所有可选路径中选取目标路径时,可以选取按顺序排列的第一条可选路径,也可以选取按顺序排列的第二条可选路径,还可以选取按顺序排列的第三条可选路径等等,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。
为了详细说明上述过程,下文以一具体示例进行说明。
以一个包括6个端口的NoC仿真模型为例。
如图5所示,NoC包括6个输入输出端口,分别为端口P1至端口P6,各个端口之间的连接关系如图5所示,图中任意两个端口之间的带箭头的线条,表示该两个端口之间存在沿箭头方向的物理直连路径。例如,端口P1与端口P2之间,有两条物理直连路径,一条是从端口P1到端口P2的物理直连路径,另一条是从端口P2到端口P1的物理直连路径。
在某一个方向上,两个端口之间的物理直连路径要么没有,要么最多只有一条。但是,在某一个方向上,两个端口之间的间接物理路径可能有多条,换句话说,两个端口之间途经其他端口的物理路径可能存在多条。例如,端口P1到端口P3的物理路径,可以是端口P1到端口P3的物理直连路径,也可以是端口P1经过端口P2再到达端口P3的间接物理路径。
建立如图5所示的NoC仿真模型的有向路径表,如表2所示。
表2中,除第一行外的各行分别表示一条有向路径,SP所在列表示各条有向路径中的起点端口,EP所在列表示各条有向路径中的终点端口,L所在列表示在各条有向路径中数据从起点端口传输到终点端口所需花费的时钟数,S所在列表示各条有向路径的路径状态信息,由于初始化时各条有向路径均处于空闲状态,所以每条有向路径中的路径状态信息均用“0”表示。
表2
SP | EP | L | S |
P<sub>1</sub> | P<sub>2</sub> | 2 | 0 |
P<sub>1</sub> | P<sub>3</sub> | 3 | 0 |
P<sub>2</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>2</sub> | P<sub>5</sub> | 4 | 0 |
P<sub>3</sub> | P<sub>4</sub> | 2 | 0 |
P<sub>4</sub> | P<sub>5</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>6</sub> | 2 | 0 |
P<sub>2</sub> | P<sub>1</sub> | 2 | 0 |
P<sub>3</sub> | P<sub>1</sub> | 3 | 0 |
P<sub>3</sub> | P<sub>2</sub> | 2 | 0 |
P<sub>4</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>4</sub> | 2 | 0 |
P<sub>6</sub> | P<sub>4</sub> | 3 | 0 |
P<sub>6</sub> | P<sub>5</sub> | 2 | 0 |
如图6所示,以端口P1申请向端口P6进行数据传输,但是当前时刻,从端口P3到端口P4的有向路径处于占用状态为例,对应的动态路径规划过程具体如下:
根据当前片上网络中各个端口的占用情况,建立有向路径表,如表3所示。
表3中,有向路径的路径状态信息为“1”,表示该条有向路径当前被占用即处于占用状态。有向路径的路径信息为“0”,则表示该条有向路径当前未被占用即处于空闲状态。由于当前时刻只有从端口P3到端口P4的有向路径处于占用状态,所以表3中,只有以端口P3为起点、以端口P4为终点的有向路径的路径状态信息为“1”,表示该条有向路径不可申请,而其它有向路径均处于空闲状态,可以申请。
表3
SP | EP | L | S |
P<sub>1</sub> | P<sub>2</sub> | 2 | 0 |
P<sub>1</sub> | P<sub>3</sub> | 3 | 0 |
P<sub>2</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>2</sub> | P<sub>5</sub> | 4 | 0 |
P<sub>3</sub> | P<sub>4</sub> | 2 | 1 |
P<sub>4</sub> | P<sub>5</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>6</sub> | 2 | 0 |
P<sub>2</sub> | P<sub>1</sub> | 2 | 0 |
P<sub>3</sub> | P<sub>1</sub> | 3 | 0 |
P<sub>3</sub> | P<sub>2</sub> | 2 | 0 |
P<sub>4</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>4</sub> | 2 | 0 |
P<sub>6</sub> | P<sub>4</sub> | 3 | 0 |
P<sub>6</sub> | P<sub>5</sub> | 2 | 0 |
第一次搜索:从数据传输起始端口P1出发,单向搜索有向路径表,找到从端口P1出发的可能路径,建立可选路径表,如表4所示。在可选路径表中,除各端口所在行外,每一行表示一条可选路径,每条可选路径中与各端口的对应位置,表示该条可选路径中以各端口为终点端口的有向路径的路径长度。若某条可选路径包括以某个端口为终点端口的有向路径,则该有向路径的路径长度为非0值。若某条可选路径不包括以某个端口为终点端口的有向路径,则该有向路径的路径长度为0。由于从端口P1出发有两条子路径即P1→P2和P1→P3,且该两条子路径均处于空闲状态,因此,该两条子路径都加入到新建立的可选路径表中。
表4Optional Route Table
P<sub>1</sub> | P<sub>2</sub> | P<sub>3</sub> | P<sub>4</sub> | P<sub>5</sub> | P<sub>6</sub> |
0 | 2 | 0 | 0 | 0 | 0 |
0 | 0 | 3 | 0 | 0 | 0 |
第二次搜索:在可选路径表中,从端口P1出发,单向找到各条可选路径中最靠近端口P1的端口为端口P2,找到从端口P2出发的可能路径,修改可选路径表,如图7所示。由于从端口P2出发有两条子路径即P2→P3和P2→P5,且该两条子路径均处于空闲状态,因此,该两条子路径都加入到可选路径表中,并在表4的基础上增加一条可选路径。
第三次搜索:在可选路径表中,从端口P2出发,单向找到各条可选路径中最靠近端口P2的端口为端口P3,找到从端口P3出发的可能路径,修改可选路径表,如图8所示。由于从端口P3出发只有一条子路径即P3→P4,且该条子路径处于占用状态,因此,需要将所有包括该条子路径的可选路径从可选路径表中删除,表示后续的搜索不再考虑被删除的可选路径。
第四次搜索:在可选路径表中,从端口P3出发,单向找到各条可选路径中最靠近端口P3的端口为端口P5,找到从端口P5出发的可能路径,修改可选路径表,如图9所示。由于从端口P5出发只有一条子路径即P5→P6,且该条子路径处于空闲状态,因此,将该条子路径加入到可选路径表中。
由于从端口P5出发,通过子路径P5→P6已经到达数据传输终止端口P6,因此,结束路径搜索,得到最终的可选路径表,如表5所示。
表5Optional Route Table
P<sub>1</sub> | P<sub>2</sub> | P<sub>3</sub> | P<sub>4</sub> | P<sub>5</sub> | P<sub>6</sub> |
0 | 2 | 0 | 0 | 4 | 2 |
从可选路径表中,选取出目标路径P1→P2→P5→P6作为数据传输起始端口P1到数据传输终止端口P6的传输路径。
此例中,由于可选路径表中只包括一条可选路径,因此,只能将该条可选路径选取为目标路径。若可选路径表中包括多条可选路径,则可以按照预设规则选取出目标路径。预设规则可以是顺序选取路径规则、最短路径规则或者随机选取路径规则等等。
根据目标路径P1→P2→P5→P6所包括的各子路径,更新有向路径表中的路径状态信息,更新后的有向路径表如表6所示。
表6
SP | EP | L | S |
P<sub>1</sub> | P<sub>2</sub> | 2 | 1 |
P<sub>1</sub> | P<sub>3</sub> | 3 | 0 |
P<sub>2</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>2</sub> | P<sub>5</sub> | 4 | 1 |
P<sub>3</sub> | P<sub>4</sub> | 2 | 1 |
P<sub>4</sub> | P<sub>5</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>6</sub> | 2 | 1 |
P<sub>2</sub> | P<sub>1</sub> | 2 | 0 |
P<sub>3</sub> | P<sub>1</sub> | 3 | 0 |
P<sub>3</sub> | P<sub>2</sub> | 2 | 0 |
P<sub>4</sub> | P<sub>3</sub> | 2 | 0 |
P<sub>5</sub> | P<sub>4</sub> | 2 | 0 |
P<sub>6</sub> | P<sub>4</sub> | 3 | 0 |
P<sub>6</sub> | P<sub>5</sub> | 2 | 0 |
选取出的目标路径还可以存入动态路由表,以供后续使用。
本公开的另一个方面,如图10所示,提供一种片上网络仿真模型的路径规划装置100。该装置100可以应用于前文记载的方法,下述装置中未提及的具体内容可以参考前文相关记载,在此不作赘述。所述片上网络包括多个端口,所述装置100包括:
建立模块110,用于建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;
确定模块120,用于根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;
选取模块130,用于从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
本实施例的片上网络仿真模型的路径规划装置,根据建立的有向路径表,能够根据片上网络的实时工作状态简单灵活地动态规划路径,有效利用NoC,减少数据的堵塞,提升路由的效率;算法实现简单,仿真计算量小,大大节省了路由规划和仿真的资源;还能够避免数据传输中出现死锁等问题,提升路径的可靠性;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率,降低对运行仿真程序的硬件要求,节省成本。
示例性的,确定模块120用于根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径,包括:确定模块120用于:
根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,每条可能路径包括多条子路径;以及,
根据所述有向路径表,从所述多条子路径中确定出处于空闲状态的所有空闲子路径,得到所述可选路径。
示例性的,确定模块120用于根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,包括:
确定模块120用于:
根据所述有向路径表,确定出所述数据传输起始端口到所述数据传输终止端口之间的各级接力端口,相邻两级接力端口之间形成所述子路径。
示例性的,建立模块110还用于:
每隔预定的时钟周期,根据各所述有向路径的实际占用状态,动态更新所述有向路径表中的路径状态信息。
示例性的,建立模块110还用于:
根据所述目标路径所包括的各所述子路径,更新所述有向路径表中的路径状态信息。
示例性的,所述有向路径表包括第一子有向路径表和第二子有向路径表;
所述第一子有向路径表按照正向传输顺序建立形成,所述第二子有向路径表按照负向传输顺序建立形成。
示例性的,选取模块130用于从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径,包括:
选取模块130具体用于:
从所述所有可选路径中按照最短路径规则、随机选取路径规则或顺序选取路径规则选取目标路径。
本公开的另一个方面,提供一种片上网络仿真模型,所述片上网络仿真模型采用前文记载的所述的方法;或,
所述片上网络仿真模型包括前文记载的所述的装置。
本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,所述芯片用于执行前文记载的所述的方法;或,
所述芯片包括前文记载的所述的装置。
本公开的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
其中,计算机可读存储介质可以是本公开的装置、设备中所包含的,也可以是单独存在。
其中,计算机可读存储介质可以是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的相连、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。
其中,计算机可读存储介质也可以包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。
Claims (10)
1.一种片上网络仿真模型的动态路径规划方法,所述片上网络包括多个端口,其特征在于,所述方法包括:
建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;
根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;
从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
2.根据权利要求1所述的方法,其特征在于,所述根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径,包括:
根据所述有向路径表,确定从所述数据传输起始端口到所述数据传输终止端口的所有可能路径,每条可能路径包括多条子路径;以及,
根据所述有向路径表,从所述多条子路径中确定出处于空闲状态的所有空闲子路径,得到所述可选路径。
3.根据权利要求2所述的方法,其特征在于,所述根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的所有可能路径,包括:
根据所述有向路径表,确定出所述数据传输起始端口到所述数据传输终止端口之间的各级接力端口,相邻两级接力端口之间形成所述子路径。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
每隔预定的时钟周期,根据各所述有向路径的实际占用状态,动态更新所述有向路径表中的路径状态信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
根据所述目标路径所包括的各所述子路径,更新所述有向路径表中的路径状态信息。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述有向路径表包括第一子有向路径表和第二子有向路径表;
所述第一子有向路径表按照正向传输顺序建立形成,所述第二子有向路径表按照负向传输顺序建立形成。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述预设规则包括最短路径规则、随机选取路径规则或顺序选取路径规则。
8.一种片上网络仿真模型的路径规划装置,所述片上网络包括多个端口,其特征在于,所述装置包括:
建立模块,用于建立存在物理直连路径的各所述端口的有向路径表,其中,每条有向路径包括起点端口、终点端口、路径属性信息和路径状态信息;
确定模块,用于根据所述有向路径表,确定从数据传输起始端口到数据传输终止端口的处于空闲状态的所有可选路径;
选取模块,用于从所述所有可选路径中按照预设规则选取目标路径,作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
9.一种片上网络仿真模型,其特征在于,所述片上网络仿真模型采用权利要求1至7中任一项所述的方法;或,
所述片上网络仿真模型包括权利要求8所述的装置。
10.一种多核芯片,包括至少一个计算核组,其特征在于,所述芯片用于执行权利要求1至7中任一项所述的方法;或,
所述芯片包括权利要求8所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519114.7A CN115345100A (zh) | 2021-05-12 | 2021-05-12 | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519114.7A CN115345100A (zh) | 2021-05-12 | 2021-05-12 | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115345100A true CN115345100A (zh) | 2022-11-15 |
Family
ID=83946739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110519114.7A Pending CN115345100A (zh) | 2021-05-12 | 2021-05-12 | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115345100A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592410A (zh) * | 2023-12-05 | 2024-02-23 | 北京瀚骏科技有限公司 | 一种芯片优化的方法及系统 |
-
2021
- 2021-05-12 CN CN202110519114.7A patent/CN115345100A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592410A (zh) * | 2023-12-05 | 2024-02-23 | 北京瀚骏科技有限公司 | 一种芯片优化的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754709B2 (en) | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis | |
KR102285138B1 (ko) | 네트워크 온 칩에서의 시스템 레벨 시뮬레이션 | |
US9672065B2 (en) | Parallel simulation using multiple co-simulators | |
US10515177B1 (en) | Method, system, and computer program product for implementing routing aware placement or floor planning for an electronic design | |
US20180181503A1 (en) | Data flow computation using fifos | |
CN110717574B (zh) | 一种神经网络运行方法、装置及异构智能芯片 | |
CN112465133B (zh) | 控制流多核并行方法、计算机设备和存储介质 | |
Barbierato et al. | A Performance Modeling Language For Big Data Architectures. | |
JP7476299B2 (ja) | 同期プロセッサのためのコンパイル | |
CN104111871B (zh) | 一种用于执行电路仿真中动态负载平衡的方法及装置 | |
CN112433853A (zh) | 一种面向超级计算机数据并行应用的异构感知数据划分方法 | |
Kotilainen et al. | P2PRealm-peer-to-peer network simulator | |
CN115345100A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
WO2022193183A1 (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN114662932A (zh) | 一种节点分级的工作流类定时任务调度方法 | |
Bytyn et al. | Dataflow aware mapping of convolutional neural networks onto many-core platforms with network-on-chip interconnect | |
Ahrens | The tour construction framework for the dynamic travelling salesman problem | |
CN115204086A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
CN115204085A (zh) | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN111143208A (zh) | 基于处理器技术辅助fpga实现ai算法的验证方法 | |
Oxman et al. | An noc simulator that supports deflection routing, gpu/cpu integration, and co-simulation | |
Xiao et al. | GAHLS: an optimized graph analytics based high level synthesis framework | |
CN117992242B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN115114755A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
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 |