CN115204085A - 片上网络仿真模型及最短路径规划方法、装置、多核芯片 - Google Patents
片上网络仿真模型及最短路径规划方法、装置、多核芯片 Download PDFInfo
- Publication number
- CN115204085A CN115204085A CN202110401435.7A CN202110401435A CN115204085A CN 115204085 A CN115204085 A CN 115204085A CN 202110401435 A CN202110401435 A CN 202110401435A CN 115204085 A CN115204085 A CN 115204085A
- Authority
- CN
- China
- Prior art keywords
- path
- port
- data transmission
- ports
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000005540 biological transmission Effects 0.000 claims abstract description 282
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 9
- 238000005457 optimization Methods 0.000 abstract description 6
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009365 direct transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种片上网络仿真模型及最短路径规划方法、装置、多核芯片,片上网络包括多个端口,方法包括:建立各端口的连接特性的连接特性表,连接特性表记载有任意两个端口之间的路径信息;根据连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;从所有可能的传输路径中确定总路径长度最小的路径作为数据传输起始端口到数据传输终止端口的传输路径。本公开可极快地确定最优路由方案,实现数据传输延时最小,节省路由规划和仿真资源,且避免数据传输中出现死锁等问题,提升路径的可靠性,高效率地应用于芯片设计和程序编译中,指导芯片的设计和性能的优化,从而节省成本。
Description
技术领域
本公开属于程序编译技术领域,具体涉及一种片上网络仿真模型及最短路径规划方法、装置、多核芯片。
背景技术
在神经网络计算领域的多(众)核芯片设计之前,通常会建立芯片各组成模块的仿真模型,以进行芯片的功能验证、性能评估等工作。芯片实物生产出来,进入应用阶段后,每次编译器编译神经网络计算程序过程中,需要实时评估程序的效率,进而优化生成的神经网络计算程序。这就要求建立一个准确而高效的神经网络芯片的仿真器。
一般而言,在多(众)核芯片中,核间通信以及核与其他模块之间的通信,都是通过片上网络(Network on Chip,NoC)进行。这样,会建立一个NoC仿真模型,然后根据仿真模型,进行数据传输的路径选择和优化,即路由方法。对于不同的NoC仿真模型,会有不同的路由方法,同时效果也差异巨大。
通常的NoC仿真模型及对应的路由方法如下:
一、精确的软件模拟电路的NoC模型:
该模型侧重精确,会将NoC的电路,用软件模拟的方式表达出来,从而能够比较准确的评估NoC的性能,包括数据的精确延时等性能。在进行路径选择时,根据实际电路的运行情况,按电路的工作状态,建立对应的静态路由表,完成路径选择。但是此方法使得软件设计复杂,仿真运行时间长,对运行仿真程序的机器要求高。
二、粗糙的功能模块表达的NoC模型:
该模型侧重高效,会将NoC看成一具有某些行为特性的功能模块,仿真结果只表达NoC的各接口的行为,从而使仿真速度快,对运行仿真程序的机器要求低。此方法由于仿真模型过于粗糙,无法表达NoC的实际特性,无法得到精确的时序信息,无法仿真NoC的拥塞状况等情况,所以几乎不能做进行路径的选择和优化。
综上,对于精确的软件模拟电路的NoC模型,在进行路由规划仿真时,其仿真程序复杂,运行速度慢,耗费资源多,成本高;对于粗糙的功能模块表达的NoC模型,几乎无法进行路径选择和优化,从而无法准确评估芯片的性能,无法实现程序的优化。
发明内容
本公开旨在至少解决现有技术中存在的问题之一,提供一种片上网络仿真模型及最短路径规划方法、装置、多核芯片。
本公开的一个方面,提供一种片上网络仿真模型的最短路径规划方法,所述片上网络包括多个端口,所述方法包括:
建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息;
根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;以及,
从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
在一些实施方式中,所述建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息,包括:
若所述任意两个端口之间存在物理直连路径,则所述任意两个端口之间的路径信息为数据沿所述物理直连路径传输时所需的时钟数,所述时钟数作为所述两个端口之间的物理直连路径长度;
若所述任意两个端口之间不存在物理直连路径,则所述任意两个端口之间的路径信息为预设值。
在一些实施方式中,所述根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径,包括:
建立数据传输路径表,所述数据传输路径表包括沿第一方向按顺序排列的各个端口;
根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,以确定从所述数据传输起始端口到所述数据传输终止端口之间的所有可能的传输路径,
沿所述数据传输路径表的第二方向,分别记录所述所有可能的传输路径,所述所有可能的传输路径对应不同的所述端口;以及
确定所述所有可能的传输路径的路径长度。
在一些实施方式中,所述根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,包括:
根据所述连接特性表中当前端口与其他端口之间的路径信息,查找出所有与所述当前端口存在物理直连路径的端口,作为所述当前端口的接力端口。
在一些实施方式中,所述从所述所有可能的传输路径中确定总路径长度最小的路径,包括:
将所述所有可能的传输路径的每条路径中所有子路径长度进行累加,得到每条所述可能的传输路径的总路径长度;
比较各条所述可能的传输路径的总路径长度的大小,将总路径长度最小的路径作为传输路径。
本公开的另一个方面,提供一种片上网络仿真模型的路径规划装置,所述片上网络包括多个端口,所述装置包括:
第一建立模块,用于建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息;
查找模块,用于根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;
比较模块,用于从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
在一些实施方式中,所述第一建立模块,用于建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息,包括:
所述第一建立模块具体用于:
若所述任意两个端口之间存在物理直连路径,则所述任意两个端口之间的路径信息为数据沿所述物理直连路径传输时所需的时钟数,所述时钟数作为所述两个端口之间的物理直连路径长度;
若所述任意两个端口之间不存在物理直连路径,则所述任意两个端口之间的路径信息为预设值。
在一些实施方式中,所述装置还包括第二建立模块,所述第二建立模块用于:
建立数据传输路径表,所述数据传输路径表包括沿第一方向按顺序排列的各个端口;
所述查找模块还用于:
根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,以确定从所述数据传输起始端口到所述数据传输终止端口之间的所有可能的传输路径,
沿所述数据传输路径表的第二方向,分别记录所述所有可能的传输路径,所述所有可能的传输路径对应不同的所述端口;以及
确定所述所有可能的传输路径的路径长度。
在一些实施方式中,所述查找模块还用于根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,包括:
所述查找模块具体用于:
根据所述连接特性表中当前端口与其他端口之间的路径信息,查找出所有与所述当前端口存在物理直连路径的端口,作为所述当前端口的接力端口。
在一些实施方式中,所述比较模块,用于从所述所有可能的传输路径中确定总路径长度最小的可能路径,包括:
所述比较模块具体用于:
将所述所有可能的传输路径的每条路径中所有子路径长度进行累加,得到每条所述可能的传输路径的总路径长度;
比较各条所述可能的传输路径的总路径长度的大小,将总路径长度最小的路径作为传输路径。
本公开的另一个方面,提供一种片上网络仿真模型,所述片上网络仿真模型采用前文记载的所述的方法;或,
所述片上网络仿真模型包括前文记载的所述的装置。
本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,所述芯片用于执行前文记载的所述的方法;或,
所述芯片包括前文记载的所述的装置。
本公开的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
本公开的片上网络仿真模型的最短路径规划方法及装置、多核芯片,根据建立的连接特性表,能简单灵活地实现最优路径的规划,算法实现简单,仿真计算量小,降低了运行仿真程序的硬件要求,大大节省了路由规划和仿真的资源;还能避免数据传输中出现死锁等问题,提升路径的可靠性,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,从而节省成本。
附图说明
图1为本公开一实施例的电子设备的组成示意框图;
图2为本公开另一实施例的片上网络仿真模型的最短路径规划方法的流程图;
图3为本公开另一实施例的NoC仿真模型的示意图;
图4为本公开另一实施例的NoC仿真模型的示意图;
图5至图9为本公开另一实施例的正向数据传输路径表的更新过程示意图;
图10为本公开另一实施例的片上网络仿真模型的路径规划装置的示意图。
具体实施方式
为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和具体实施方式对本公开作进一步详细描述。
首先,参照图1来描述用于实现本公开实施例的装置及方法的示例电子设备。
如图1所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图1所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器210可以是由多(众)核架构的芯片组成的神经网络处理器,也可以是单独的中央处理单元(CPU),或者,也可以是中央处理单元+多核神经网络处理器阵列或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本公开实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
下面,将参考图2描述根据本公开一实施例的片上网络仿真模型的最短路径规划方法。
示例性的,如图2所示,一种片上网络仿真模型的最短路径规划方法S100,其中,片上网络包括多个端口,方法S100包括:
S110、建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息。
具体地,可以一并结合图3,在本步骤中,片上网络可以包括N个端口(Port),即P1至PN,每一个端口都可以同时实现输入和输出,或者,某一端口有时也可以是单向的,即只能实现输入或者输出,本实施例对此并不限制。在片上网络包括N个端口P1至PN时,建立能够表示各个端口的连接特性的连接特性表,如表1所示:
表1
如表1所示,连接特性表中记载有任意一个端口PX到另外一个端口PY的路径信息LXY。例如,L12表示从端口P1到端口P2的路径信息,L21表示从端口P2到端口P1的路径信息,L1N表示从端口P1到端口PN的路径信息,LN1表示从端口PN到端口P1的路径信息,等等。
需要说明的是,在连接特性表中,任意一个端口到其他端口的路径信息,可以按行排列,也可以按列排列,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。
S120、根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径。
具体地,在本步骤中,当数据传输起始端口为PX,数据传输终止端口为PY时,根据连接特性表,查找出从端口PX到端口PY的所有可能的传输路径。例如,当端口PX为端口P1、端口PY为端口P3时,根据连接特性表,查找出的从端口P1到端口P3的所有可能的传输路径可以是:P1→P3,P1→P2→P3。
S130、从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
具体地,在本步骤中,当数据传输起始端口为PX,数据传输终止端口为PY时,从端口PX到端口PY的所有可能的传输路径中确定总路径长度最小的路径,作为端口PX到端口PY的传输路径,其中,总路径长度最小表示数据传输所花费的路由时间最短。例如,当端口PX为端口P1、端口PY为端口P3,端口P1到端口P3的所有可能的传输路径为:P1→P3、P1→P2→P3时,从路径P1→P3和路径P1→P2→P3中确定总路径长度最小的路径,作为端口P1到端口P3的传输路径。
本实施例的片上网络仿真模型的最短路径规划方法,根据建立的连接特性表,能简单灵活地实现最优路径的规划,算法实现简单,仿真计算量小,降低了运行仿真程序的硬件要求,大大节省了路由规划和仿真的资源;还能避免数据传输中出现死锁等问题,提升路径的可靠性,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,从而节省成本。
示例性的,所述建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息,包括:
若所述任意两个端口之间存在物理直连路径,则所述任意两个端口之间的路径信息为数据沿所述物理直连路径传输时所需的时钟数,所述时钟数作为所述两个端口之间的物理直连路径长度。若所述任意两个端口之间不存在物理直连路径,则所述任意两个端口之间的路径信息为预设值。
具体地,对于任意一个端口PX到另外一个端口PY的路径信息LXY,若从端口PX到端口PY存在物理直连路径,则对应的路径信息LXY为数据沿该物理直连路径传输所需的时钟数,即数据从端口PX直接传输到端口PY所需的时钟数,即时延(Latency),该时钟数作为从端口PX到端口PY的物理直连路径长度,同时表示从端口PX到端口PY能够直接通信。若从端口PX到端口PY不存在物理直连路径,则对应的路径信息LXY为预设值,表示从端口PX到端口PY不能直接通信,而需要跨其他端口进行通信。该预设值可以是0,也可以是其他值,例如A、B、C等等,本领域技术人员可以根据实际需要进行设置,本实施例对此并不限制。
本实施例的片上网络仿真模型的最短路径规划方法,根据任意两个端口之间是否存在物理直连路径,来分别设置连接特性表中对应的路径信息,使得通过该连接特性表,能够直观地得出任意两个端口之间的物理直连路径状态和物理直连路径长度,方便后续路径规划。
示例性的,所述根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径,包括:
建立数据传输路径表,所述数据传输路径表包括沿第一方向按顺序排列的各个端口。
具体地,在数据传输路径表中,沿第一方向顺序记载有片上网络包括的所有端口。该第一方向可以是行,即各个端口可以在同一行中按顺序排列,也可以是列,即各个端口也可以在同一列中按顺序排列,本领域技术人员可以根据实际需要进行选择,本实施例对此并不限制。
根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,以确定从所述数据传输起始端口到所述数据传输终止端口之间的所有可能的传输路径。
具体地,首先将数据传输起始端口作为第一级接力端口,同时也作为当前端口,之后,根据连接特性表,分别查找出当前端口的下级接力端口,即第一级接力端口对应的各个第二级接力端口,将各个第二级接力端口分别作为当前端口,继续分别查找出当前端口的下级接力端口,即各个第二级接力端口对应的各个第三级接力端口,将各个第三级接力端口分别作为当前端口,以此类推,直至数据传输终止端口成为当前端口的下级接力端口,至此,从数据传输起始端口到数据传输终止端口之间的所有可能的传输路径查找完毕。
需要说明的是,由于本实施例为片上网络仿真模型的最短路径规划方法,因此,为了避免数据传输和仿真出现死循环,在查找数据传输起始端口与数据传输终止端口之间的各级接力端口时,可以只沿数据传输方向进行查找,以使所有可能的传输路径均为单向无环路径。
沿所述数据传输路径表的第二方向,分别记录所述所有可能的传输路径,所述所有可能的传输路径对应不同的所述端口,以及,确定所述所有可能的传输路径的路径长度。
具体地,在数据传输路径表中,若第一方向为行,即各个端口在同一行中按顺序排列,则可以沿第二方向预先设置若干行,每一行均对应不同的端口,以通过各行分别记录各条可能的传输路径,所有可能的传输路径按行排列,其中,每一行中与每个端口对应的位置,用来记载该端口在对应的可能的传输路径中与其上一级接力端口之间的传输路径长度。在数据传输路径表中,若第一方向为列,即各个端口在同一列中按顺序排列,则可以沿第二方向预先设置若干列,每一列均对应不同的端口,以通过各列分别记录各条可能的传输路径,所有可能的传输路径按列排列,其中,每一列中与每个端口对应的位置,用来记载该端口在对应的可能的传输路径中与其上一级接力端口之间的传输路径长度。根据连接特性表,分别确定出各条可能的传输路径中各个端口与其上一级接力端口之间的传输路径长度,从而确定出所有可能的传输路径的路径长度。
本实施例的片上网络仿真模型的最短路径规划方法,根据连接特性表依次查找出各级接力端口,以确定出从数据传输起始端口到数据传输终止端口之间的所有可能的传输路径,从而能够避免数据传输中出现死锁等问题,提升了规划路径的可靠性。
示例性的,所述根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,包括:
根据所述连接特性表中当前端口与其他端口之间的路径信息,查找出所有与所述当前端口存在物理直连路径的端口,作为所述当前端口的接力端口。
具体地,在连接特性表中,根据当前端口与其他端口之间的路径信息,查找出所有对应的路径信息为非预设值的端口,该端口即为与当前端口存在物理直连路径的端口,将其作为当前端口的接力端口。
示例性的,在数据传输路径表中,端口顺序可以为正向,也可以为负向。具体地,如表2所示,当数据传输从端口P1到端口PN,也即数据传输方向为正向传输方向时,在数据传输路径表中,各个端口可以按正向顺序排列,也即可以按从端口P1到端口PN的顺序排列,此时的数据传输路径表即为正向数据传输路径表。如表2所示,当数据传输从端口PN到端口P1,也即数据传输方向为负向传输方向时,在数据传输路径表中,各个端口可以按负向顺序排列,也即可以按从端口PN到端口P1的顺序排列,此时的数据传输路径表即为负向数据传输路径表。
表2
需要说明的是,在正向数据传输路径表或者负向数据传输路径表中,还可以记载每条可能的传输路径的总路径长度。如表2所示,当各个端口按行排列时,可以在最后一个端口所在的列后设置一Sum列,以记载对应的每条可能的传输路径的总路径长度。或者,当各个端口按列排列时,还可以在最后一个端口所在的行后设置一Sum行,以记载对应的每条可能的传输路径的总路径长度。
初始化正向数据传输路径表或者负向数据传输路径表时,可以沿第一方向按顺序排列各个端口,之后沿第二方向设置若干行0行或者若干列0列,以记录所有可能的传输路径,所有可能的传输路径对应不同的端口,其中,若干行0行或者若干列0列表示没有任何预设的传输路径存在,相应的,设置的Sum列或者Sum行中的各个数值也均为0。
示例性的,如表1所示,在连接特性表中,设定各个端口所在的行为第0行,各个端口所在的列为第0列,则对于任意一个端口PX,其所在行为第X行,其所在列为第X列,当任意一个端口PX到另外一个端口PY之间存在物理直连路径时,对应的路径信息LXY为端口PX到端口PY的物理直连路径长度,即路径信息LXY为非0数,当任意一个端口PX到另外一个端口PY之间不存在物理直连路径时,对应的路径信息LXY为预设值0。设定数据传输起始端口作为路径起始端口PX0,数据传输终止端口作为路径终止端口PY0。初始化变量X为起始端口号X0,初始化Y为终止端口号Y0。如果Y>X,表示数据是沿端口P1到端口PN的方向即正向传输方向传输,后面搜索到的所有可能的传输路径可以存入正向数据传输路径表;如果Y<X,表示数据是沿端口PN到端口P1的方向即负向传输方向传输,后面搜索到的所有可能的传输路径可以存入负向数据传输路径表。
如果Y>X,可以首先将端口号为X的端口作为第一级接力端口,同时作为当前端口,在连接特性表中,若任意一个端口到其他端口的路径信息按行排列,则查找出第X行中所有非0数对应的端口,若任意一个端口到其他端口的路径信息按列排列,则查找出第X列中所有非0数对应的端口。将端口号大于X的各个端口分别作为第二级接力端口,并将各个第二级接力端口对应的非0数,分别存入正向数据传输路径表中各个第二级接力端口在对应的传输路径中的对应位置,作为各个第二级接力端口与其上一级接力端口之间的子路径长度;再依次以各个第二级接力端口为新的当前端口,用同样的方法,分别继续查找通往路径终止端口PY0的各级接力端口,直到所有的接力端口都被查找完毕,组成所有可能的传输路径,且将各个子路径长度均存入正向数据传输路径表中后,所有可能的传输路径搜索完毕。
如果Y<X,可以首先将端口号为X的端口作为第一级接力端口,同时作为当前端口,在连接特性表中,若任意一个端口到其他端口的路径信息按行排列,则查找出第X行中所有非0数对应的端口,若任意一个端口到其他端口的路径信息按列排列,则查找出第X列中所有非0数对应的端口,将端口号小于X的各个端口分别作为第二级接力端口,并将各个第二级接力端口对应的非0数,分别存入负向数据传输路径表中各个第二级接力端口在对应的传输路径中的对应位置,作为各个第二级接力端口与其上一级接力端口之间的子路径长度;再依次以各个第二级接力端口为新的当前端口,用同样的方法,分别继续查找通往路径终止端口PY0的各级接力端口;直到所有的接力端口都被查找完毕,组成所有可能的传输路径,且将各个子路径长度均存入负向数据传输路径表中后,所有可能的传输路径搜索完毕。
示例性的,所述从所述所有可能的传输路径中确定总路径长度最小的路径,包括:
将所述所有可能的传输路径的每条路径中所有子路径长度进行累加,得到每条所述可能的传输路径的总路径长度;
比较各条所述可能的传输路径的总路径长度的大小,将总路径长度最小的路径作为传输路径。
具体地,分别确定出每条可能的传输路径中的所有子路径及其对应的子路径长度,将各条可能的传输路径中所有子路径长度分别进行累加,从而得到每条可能的传输路径的总路径长度,之后,将各条可能的传输路径的总路径长度的大小进行比较,将总路径长度最小的路径作为最终路径。
示例性的,如表2所示,从正向数据传输路径表或者负向数据传输路径表中,查找出包括非0数的每一行,该每一行即对应一条可能的传输路径,每一个非0数即为对应的子路径长度。将每一行中的所有非0数进行累加,得到每一行对应的Sum值,也即,将每一条可能的传输路径中的所有子路径长度进行累加,将累加结果存入Sum列中的对应位置,即可得到每一条可能的传输路径的总路径长度。比较Sum列中各个非0数的大小,选取出最小的非0数对应的路径,该路径即为所有可能的传输路径中总路径长度最小的路径,将其作为最终路径。
本实施例的片上网络仿真模型的最短路径规划方法,通过分别得出从数据传输起始端口到数据传输终止端口的每条可能的传输路径的总路径长度,并将各条可能的传输路径的总路径长度的大小进行比较,确定出总路径长度最小的路径,可以使从数据传输起始端口到数据传输终止端口的数据传输所花费的路由时间最短,从而节省路由规划和仿真的资源,以最快的速度实现路由的选择,进而高效率地应用于芯片设计和程序编译中。
为了详细说明上述过程,下文以一具体示例进行说明。
以一个带6个端口的NoC仿真模型为例。
如图4所示,NoC包括6个输入输出端口,分别为端口P1至端口P6,各个端口之间的连接关系如图4所示,图中任意两个端口之间的带箭头的线条,表示该两个端口之间存在沿箭头方向的物理直连路径。例如,端口P1与端口P2之间,有两条物理直连路径,一条是沿端口P1到端口P2方向的物理直连路径,另一条是沿端口P2到端口P1方向的物理直连路径。
在某一个方向上,任意两个端口之间的物理直连路径要么没有,要么最多只有一条,但是间接的物理路径可能有多条,换句话说,任意两个端口之间途经其他端口的物理路径可能存在多条。例如,端口P1到端口P3的物理路径,可以是端口P1到端口P3的物理直连路径,也可以是端口P1经过端口P2再到达端口P3的间接物理路径。
以端口P1到端口P6的最短路径规划为例,具体规划过程如下:
建立数据传输起始端口P1到数据传输终止端口P6的如图4所示的NoC仿真模型的连接特性表,如表3所示:
表3
表3中,0表示该行所对应的端口到该列所对应的端口没有物理直连路径,非0数表示该行所对应的端口到该列所对应的端口有物理直连路径,数据传输从该行所对应的端口到该列所对应的端口所花费的时钟数为该非0数,也即对应的物理直连路径长度为该非0数。0所在的位置也可以表示成灰色,以表示在进行路径选择时,该行所对应的端口到该列所对应的端口之间的物理直连路径不可用。
因为数据是从端口P1到端口P6传输,数据传输方向为正向传输方向,所以在建立数据传输路径表时,端口顺序对应为正向,即建立正向数据传输路径表,并设置Sum列,以记录从数据传输起始端口P1到数据传输终止端口P6的所有可能的传输路径及其对应的总路径长度,初始化正向数据传输路径表,如表4所示:
表4
Positive Direction Table
初始化时,将各个端口按行排列,并在各个端口所在行下设置若干行0行,以记载所有可能的传输路径,例如,可以设置20行0行或者30行0行。
将数据传输起始端口P1作为当前端口,在连接特性表中找到端口P1所在行,查找出该行中所有非0数即2和3对应的端口即端口P2和端口P3,将端口P2和端口P3作为端口P1的接力端口,由此得到两条子路径,即P1→P2和P1→P3,对应的子路径长度分别为2个时钟周期和3个时钟周期。在正向数据传输路径表中,如图5所示,分别在不同行的端口P2和端口P3对应的位置填入2和3,以分别表示两条不同的可能的传输路径。
将端口P2作为当前端口,根据连接特性表,查找出端口P2的接力端口即端口P3和端口P5,得到两条子路径P2→P3和P2→P5,对应的子路径长度分别为2个时钟周期和4个时钟周期。由于新出现的子路径P2→P5使可能的传输路径变成了3条,所以,如图6所示,将4填入正向数据传输路径表中端口P5对应的另外一行的位置,并将该行中P2对应的位置处填入2,以将该条可能的传输路径中的子路径补充完整。
将端口P3作为当前端口,根据连接特性表,查找出端口P3的接力端口P4,得到一条子路径P3→P4,对应的子路径长度为2个时钟周期。如图7所示,更新正向数据传输路径表,由于之前两条子路径都经过端口P3,所以在更新路径时,需要将对应的两条可能的传输路径都更新。
将端口P4作为当前端口,根据连接特性表,查找出端口P4的接力端口P5,得到一条子路径P4→P5,对应的子路径长度为2个时钟周期。如图8所示,更新正向数据传输路径表,由于之前两条子路径都经过端口P4,所以在更新路径时,需要将对应的两条可能的传输路径都更新。
将端口P5作为当前端口,根据连接特性表,查找出端口P5的接力端口P6,得到一条子路径P5→P6,对应的子路径长度为2个时钟周期。如图9所示,更新正向数据传输路径表,由于之前三条子路径都经过端口P5,所以在更新路径时,需要将对应的三条可能的传输路径都更新。
由于各条可能的传输路径中子路径P5→P6已经到达了数据传输终止端口P6,也就是说,数据传输终止端口P6已经成为了当前端口P5的下级接力端口,至此,从数据传输起始端口P1到数据传输终止端口P6之间的所有可能的传输路径查找完毕,所以终止路径查找。
在正向数据传输路径表中,分别将每一行中的所有非0数进行累加,并将累加结果填入Sum列的对应位置,如表5所示,得出每条可能的传输路径的总路径长度。比较各可能的传输路径的总路径长度的大小,选取出总路径长度最小的路径,即P1→P2→P5→P6,其长度为8个时钟周期,将其作为数据传输起始端口P1到数据传输终止端口P6的传输路径。
表5
Positive Direction Table
本公开的另一个方面,如图10所示,提供一种片上网络仿真模型的路径规划装置100。该装置100可以应用于前文记载的方法,下述装置中未提及的具体内容可以参考前文相关记载,在此不作赘述。所述片上网络包括多个端口,所述装置100包括:
第一建立模块110,用于建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息;
查找模块120,用于根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;
比较模块130,用于从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
本实施例的片上网络仿真模型的路径规划装置,根据建立的连接特性表,能简单灵活地实现最优路径的规划,算法实现简单,仿真计算量小,降低了运行仿真程序的硬件要求,大大节省了路由规划和仿真的资源;还能避免数据传输中出现死锁等问题,提升路径的可靠性,提升芯片运行程序编译的效率,提升神经网络编译器自动编译程序的效率;在芯片设计中,还能够根据设计人员对NoC的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化,从而节省成本。
示例性的,第一建立模块110用于建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息,包括:
第一建立模块110具体用于:
若所述任意两个端口之间存在物理直连路径,则所述任意两个端口之间的路径信息为数据沿所述物理直连路径传输时所需的时钟数,所述时钟数作为所述两个端口之间的物理直连路径长度;
若所述任意两个端口之间不存在物理直连路径,则所述任意两个端口之间的路径信息为预设值。
示例性的,装置100还包括第二建立模块140,第二建立模块140用于:
建立数据传输路径表,所述数据传输路径表包括沿第一方向按顺序排列的各个端口;
查找模块120还用于:
根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,以确定从所述数据传输起始端口到所述数据传输终止端口之间的所有可能的传输路径,
沿所述数据传输路径表的第二方向,分别记录所述所有可能的传输路径,所述所有可能的传输路径对应不同的所述端口;以及
确定所述所有可能的传输路径的路径长度。
示例性的,查找模块120还用于根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,包括:
查找模块120具体用于:
根据所述连接特性表中当前端口与其他端口之间的路径信息,查找出所有与所述当前端口存在物理直连路径的端口,作为所述当前端口的接力端口。
示例性的,第二建立模块140用于建立数据传输路径表,包括:
在数据传输路径表中,端口顺序为正向或者负向。
示例性的,比较模块130用于从所述所有可能的传输路径中确定总路径长度最小的可能路径,包括:
比较模块130具体用于:
将所述所有可能的传输路径的每条路径中所有子路径长度进行累加,得到每条所述可能的传输路径的总路径长度;
比较各条所述可能的传输路径的总路径长度的大小,将总路径长度最小的路径作为传输路径。
本公开的另一个方面,提供一种片上网络仿真模型,所述片上网络仿真模型采用前文记载的所述的方法;或,
所述片上网络仿真模型包括前文记载的所述的装置。
本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,所述芯片用于执行前文记载的所述的方法;或,
所述芯片包括前文记载的所述的装置。
本公开的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
其中,计算机可读存储介质可以是本公开的装置、设备中所包含的,也可以是单独存在。
其中,计算机可读存储介质可以是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的相连、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。
其中,计算机可读存储介质也可以包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。
Claims (10)
1.一种片上网络仿真模型的最短路径规划方法,所述片上网络包括多个端口,其特征在于,所述方法包括:
建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息;
根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;以及,
从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
2.根据权利要求1所述的方法,其特征在于,所述建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息,包括:
若所述任意两个端口之间存在物理直连路径,则所述任意两个端口之间的路径信息为数据沿所述物理直连路径传输时所需的时钟数,所述时钟数作为所述两个端口之间的物理直连路径长度;
若所述任意两个端口之间不存在物理直连路径,则所述任意两个端口之间的路径信息为预设值。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径,包括:
建立数据传输路径表,所述数据传输路径表包括沿第一方向按顺序排列的各个端口;
根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,以确定从所述数据传输起始端口到所述数据传输终止端口之间的所有可能的传输路径,
沿所述数据传输路径表的第二方向,分别记录所述所有可能的传输路径,所述所有可能的传输路径对应不同的所述端口;以及
确定所述所有可能的传输路径的路径长度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述连接特性表,查找出所述数据传输起始端口与所述数据传输终止端口之间的各级接力端口,包括:
根据所述连接特性表中当前端口与其他端口之间的路径信息,查找出所有与所述当前端口存在物理直连路径的端口,作为所述当前端口的接力端口。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述所有可能的传输路径中确定总路径长度最小的路径,包括:
将所述所有可能的传输路径的每条路径中所有子路径长度进行累加,得到每条所述可能的传输路径的总路径长度;
比较各条所述可能的传输路径的总路径长度的大小,将总路径长度最小的路径作为传输路径。
6.一种片上网络仿真模型的路径规划装置,所述片上网络包括多个端口,其特征在于,所述装置包括:
第一建立模块,用于建立各所述端口的连接特性的连接特性表,所述连接特性表记载有任意两个所述端口之间的路径信息;
查找模块,用于根据所述连接特性表,查找出从数据传输起始端口到数据传输终止端口的所有可能的传输路径;
比较模块,用于从所述所有可能的传输路径中确定总路径长度最小的路径作为所述数据传输起始端口到所述数据传输终止端口的传输路径。
7.一种片上网络仿真模型,其特征在于,所述片上网络仿真模型采用权利要求1至5中任一项所述的方法;或,
所述片上网络仿真模型包括权利要求6所述的装置。
8.一种多核芯片,包括至少一个计算核组,其特征在于,所述芯片用于执行权利要求1至5中任一项所述的方法;或,
所述芯片包括权利要求6所述的装置。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据权利要求1至5中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能实现根据权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110401435.7A CN115204085A (zh) | 2021-04-14 | 2021-04-14 | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110401435.7A CN115204085A (zh) | 2021-04-14 | 2021-04-14 | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115204085A true CN115204085A (zh) | 2022-10-18 |
Family
ID=83574055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110401435.7A Pending CN115204085A (zh) | 2021-04-14 | 2021-04-14 | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115204085A (zh) |
-
2021
- 2021-04-14 CN CN202110401435.7A patent/CN115204085A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4231516B2 (ja) | 実行コードの生成方法及びプログラム | |
TWI827792B (zh) | 多路徑神經網路、資源配置的方法及多路徑神經網路分析器 | |
US10684776B2 (en) | Memory configuration for inter-processor communication in an MPSoC | |
CN110516789B (zh) | 卷积网络加速器中指令集的处理方法、装置及相关设备 | |
US20100153928A1 (en) | Developing and Maintaining High Performance Network Services | |
CN118350325B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
JP2021128779A (ja) | データ拡張の方法及び装置、機器、記憶媒体 | |
US9223910B1 (en) | Performance and memory efficient modeling of HDL ports for simulation | |
CN116670660A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
WO2018032897A1 (zh) | 报文转发性能评估方法、装置和计算机存储介质 | |
CN115345100A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN115469931B (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
CN115204085A (zh) | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 | |
CN115840593A (zh) | 处理器中的执行部件的验证方法及装置、设备、存储介质 | |
US10310823B2 (en) | Program development support system and program development support software | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
CN102063308B (zh) | 一种用于地震勘探资料处理流程控制的方法 | |
US8352234B2 (en) | Model generation based on a constraint and an initial model | |
CN115204086A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
JP5328447B2 (ja) | 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体 | |
CN111832714A (zh) | 运算方法及装置 | |
CN117272918B (zh) | 在gui界面中进行时钟树规则配置的方法及相关设备 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Room 201, No. 6 Fengtong Heng Street, Huangpu District, Guangzhou City, Guangdong Province Applicant after: Guangzhou Ximu Semiconductor Technology Co.,Ltd. Address before: Building 202-24, No. 6, Courtyard 1, Gaolizhang Road, Haidian District, Beijing Applicant before: Beijing SIMM Computing Technology Co.,Ltd. Country or region before: China |