一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质与流程

2022-10-29 00:15:43 来源:中国专利 TAG:


1.本公开涉及仿真领域,尤其涉及一种片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质


背景技术:

2.在神经网络计算领域的多(众)核芯片设计之前,通常会建立芯片各组成模块的仿真模型,以进行芯片的功能验证,性能评估等工作;芯片实物生产出来,进入应用阶段后,每次编译器编译神经网络计算程序过程中,需要实时评估程序的效率,进而优化生成的神经网络计算程序。这就要求建立一个准确而高效的神经网络芯片的仿真器。
3.一般多(众)核芯片中,处理核间通信以及处理核与芯片中其他模块之间的通信,都是通过片上网络noc(network on chip)进行的。如何建立一个精确且高效的noc仿真模型是一个挑战。
4.建立noc仿真模型时,根据不同的要求,通常做法是:
5.1.侧重精确:这种情况,会将noc的电路用软件的方式表达出来,从而能够比较准确的评估noc的性能,包括数据的精确延时等性能。但是这种方法使得软件设计复杂,仿真运行时间长,对运行仿真程序的机器要求高。
6.2.侧重高效:这种情况,会将noc看成一个具有某些行为特性的功能模块,仿真结果只表达noc的各端口的行为,从而仿真速度快,对运行仿真程序的机器要求低。但是这种方法此方法由于仿真模型过于粗糙,无法表达noc的实际特性,无法得到精确的时序信息,无法仿真noc的拥塞状况等状况,所以几乎无法进行路径的选择和优化。


技术实现要素:

7.提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
8.为了解决现有技术中的上述技术问题,本公开实施例提出如下技术方案:
9.第一方面,本公开实施例提供一种片上网络仿真中的传输路径规划方法,包括:
10.获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上;
11.根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口;
12.将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。
13.进一步的,所述根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,包括:
14.确定数据发送端口和数据接收端口;
15.在所述连接特性表中搜索从所述数据发送端口到所述数据接收端口之间的所有单向路径作为所述候选传输路径。
16.进一步的,所述在所述连接特性表中搜索从所述数据发送端口到所述数据接收端口之间的所有单向路径作为候选传输路径,包括:
17.在所述连接特性表中以所述数据发送端口为起点搜索终点为所述数据接收端口的单向路径;
18.将搜索到的所述单向路径依次存入候选传输路径表;其中,所述候选传输路径表的表头中包括连接特性表中的所有端口项;所述候选传输路径表的每一行表示从所述数据发送端口到所述数据接收端口的一条候选传输路径。
19.进一步的,所述候选传输路径表的每一候选传输路径包括数据发送端口以及与所述候选传输路径中的每个途径端口对应的非零表项。
20.进一步的,所述将所述所有候选传输路径中途径端口数量最少的传输路径作为传输路径,包括:
21.计算每条所述候选传输路径中的端口数量;
22.将端口数量最少的所述候选传输路径作为所述数据发送端口和数据接收端口之间的传输路径。
23.进一步的,所述计算每条所述候选传输路径中的端口数量,包括:
24.计算每条所述候选传输路径中的端口数量以生成路径端口数目表;其中,所述路径端口数目表的表头中包括连接特性表中的所有端口项以及路径数目项;所述路径端口数目表中的每一行表示一条候选传输路径以及所述一条候选传输路径对应经过的端口的数量。
25.进一步的,所述连接特性表中还包括有连接关系的端口之间的数据传输时延,所述方法还包括:
26.当所述端口数量最少的传输路径多于一个,计算所述多个端口数量最少的传输路径的数据传输时延;
27.将数据传输时延最小的传输路径作为选定传输路径。
28.第二方面,本公开实施例提供一种片上网络的仿真方法,包括:
29.接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;
30.获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
31.查询所述数据发送端口和数据接收端口之间的传输路径;其中,所述传输路径通过上述第一方面中所述片上网络仿真中的传输路径规划方法生成;
32.通过路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;
33.若所述路径状态为空闲状态,则通过所述传输路径将所述待发送数据从所述数据发送端口发送至所述数据接收端口;
34.将所述传输路径上的端口的路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
35.进一步的,所述将所述路径状态设置为忙状态,包括:将所述数据发送端口、中转
端口以及数据接口端口之间的端口均设置为忙状态。
36.进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。
37.第三方面,本公开实施例提供一种片上网络的仿真模型生成装置,包括:
38.连接特性表获取模块,用于获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上;候选路径查找模块,用于根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口;选定模块,用于将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。
39.第四方面,本公开实施提供一种片上网络的仿真装置,包括:
40.任务接收模块,用于接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务执行模块,用于获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;查询所述数据发送端口和数据接收端口之间的传输路径;其中,所述传输路径通过所述片上网络仿真中的传输路径规划方法生成;通过路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,则通过所述传输路径将所述待发送数据从所述数据发送端口发送至所述数据接收端口;将所述传输路径上的端口的路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
41.第五方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第二方面中或第二方面中的任一所述的方法。
42.第六方面,本公开实施例提供一种计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第二方面中或第二方面中的任一所述的方法。
43.第七方面,本公开实施例提供一种计算机程序产品,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述第二方面中或第二方面中的任一所述的方法。
44.本公开实施例公开了一种片上网络仿真中的传输路径规划方法、装置、电子设备和计算机可读存储介质。其中该片上网络仿真中的传输路径规划方法包括:获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上;根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口;将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。上述模型生成方法通过生成表示片上网络的连接特性表确定传输路径,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低,且无法进行路径的选择和优化的技术问题。
45.上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
46.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
47.图1为片上网络的结构示意图;
48.图2为本公开实施例提供的片上网络仿真中的传输路径规划方法的流程示意图;
49.图3为本公开实施例提供的连接特性表的示意图;
50.图4为本公开实施例中片上网络的示例示意图;
51.图5为本公开实施例中片上网络的连接特性表的示例示意图;
52.图6为本公开实施例中候选传输路径表的示例示意图;
53.图7为本公开实施例中路径端口数目表的示例示意图;
54.图8为本公开实施例提供的片上网络的仿真方法的流程示意图;
55.图9为本公开实施例提供的路径状态表的示意图。
具体实施方式
56.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
57.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
58.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
59.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
60.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
61.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
62.图1为片上网络的结构示意图。如图1所示,noc包括n个端口p(p
1-pn),每个端口与芯片的一个处理核连接,能够同时实现输入和输出。其中,有些端口可能是单向的,只能作为输入或者输出,有些端口是双向的,可以同时输入和输出。通过n个端口可以在n个处理核之间传输数据。
63.图2为本公开实施例提供的片上网络仿真中的传输路径规划方法的流程示意图。
64.所述片上网络仿真中的传输路径规划方法,用于规划芯片中的noc模型在仿真过程中所使用的传输路径,其中,所述芯片包括多个处理核;该片上网络仿真中的传输路径规
划方法可以由一片上网络仿真中的传输路径规划装置来执行,该片上网络仿真中的传输路径规划装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络仿真中的传输路径规划装置可以集成设置在片上网络仿真中的传输路径规划装置系统中的某设备中,比如片上网络仿真中的传输路径规划终端设备中。
65.如图2所示,该方法包括如下步骤:
66.步骤s201,获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上。
67.如图1所示,片上网络的功能为通过多个端口在多个处理核之间传输数据,那么为了表达出片上网络的静态特性,使用连接特性表来表达片上网络上的端口之间的连接关系;进一步的,为了表达出端口之间的传输情况,所述连接特性表中还包括具有连接关系的端口之间的数据传输时延。
68.所述连接特性表为片上网络仿真模型中的一部分。可选的,在生成所述连接特性表时,可以通过人机交互接口,如人机交互界面中的菜单、选项、输入栏等接收用户输入的连接特性表的属性数值以配置连接特性表的属性。如片上网络的端口的数量、两个端口之间是否连接,如果连接则数据传输时延是多少等等。
69.如图3所示为连接特性表的示意图。在图3所示的示意图中,连接特性表包括2n个表头,分别为横向排列的n个表头和纵向排列的n个表头,分别用于表示片上网络的n个端口,而n*n个表项用于表示n个端口两两之间的连接关系以及数据传输延时。
70.可选的,当所述表项的值为第一预设值时,所述表项所对应的两个端口之间无连接关系;或者,
71.当所述表项的值不为第一预设值时,所述表项所对应的两个端口之间具有连接关系,并且所述两个端口之间的传输时延为所述表项的值。
72.示例性的,当端口p
x
到另外一个端口py没有直接相连的物理路径,则在连接特性表的相应表项中填入0,此时所述第一预设值即为0,表示两个端口之间不能直接通信,需要跨越其他端口之间的物理路径进行间接通信;当端口p
x
到另外一个端口py有直接相连的物理路径,则在连接特性表的相应表项中填入数据传输时所需要花费的时钟数l
xy
,即时延latency,表示单个数据端口p
x
传输数据到单个数据端口py,所需要花费的时钟数;示例性的,如图3所示,端口p1跟端口p3之间有直接连接的物理路径,且从p1到p3传输数据的传输时延是l
13
个时钟;端口p3到端口p1之间有直接连接的物理路径,且从p3到p1传输数据的传输时延是l
31
个时钟。
73.连接特性表是一张静态表格,对于已经设计好的芯片或者生产出来的芯片,连接特性表是唯一的,在进行性能仿真模拟及程序编译优化之前,已经根据芯片的实际情况生成,不会改变。
74.对于芯片设计过程中的片上网络性能预测仿真和优化,则可以根据需要调整连接特性表,此时相当于改变片上网络的设计,即改变和优化芯片的设计。可以在设计好芯片或者生成出芯片之前,提前预测片上网络的性能。
75.返回图2,所述片上网络仿真中的传输路径规划方法,还包括:步骤s202,根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口。
76.在该步骤中,可以分别以所述连接特性表中的每个端口为数据发送端口,并以所述连接特性表中的每个端口为数据接收端口,查找从所述数据发送端口到数据接收端口的所有候选传输路径。
77.可选的,所述步骤s202包括:
78.确定数据发送端口和数据接收端口;
79.在所述连接特性表中搜索从所述数据发送端口到所述数据接收端口之间的所有单向路径作为所述候选传输路径。
80.其中,所述确定数据发送端口和数据接收端口,包括在所述连接特性表中以每个纵向排列的表头中的端口为数据发送端口,以每个横向排列的表头中的端口为数据接收端口,其中数据发送端口和数据接收端口为不同的端口。
81.可选的,所述在所述连接特性表中搜索从所述数据发送端口到所述数据接收端口之间的所有单向路径作为所述候选传输路径,包括:
82.在所述连接特性表中以所述数据发送端口为起点搜索终点为所述数据接收端口的单向路径;
83.将搜索到的所述单向路径依次存入候选传输路径表;其中,所述候选传输路径表的表头中包括连接特性表中的所有端口项;所述候选传输路径表的每一行表示从所述数据发送端口到所述数据接收端口的一条候选传输路径。
84.可选的,所述单向路径为单向无环路径,即传输路径中的每个途径端口只出现一次。
85.可选的,所述候选传输路径表的包括n个表头,每个表头表示一个端口,其中第一个表头表示数据发送端口,最后一个表头表示数据接收端口,其余表头表示可能的途径端口。
86.如图4所示为一个noc的示例。其中所述noc带有6个端口,各端口之间的连接关系如图4所示。
87.图中任意两个端口之间的带箭头的线条,都表示端口之间存在箭头方向的实际的直接物理链路。如p1端口与p2端口之间,有两条直接物理连接,一条是方向从p1到p2的直接物理连接,另一条是方向从p2到p1的直接物理连接。在某一个方向上,两个端口之间的直接物理连接要么没有,要么最多只有一条。但是间接的物理连接可能有多条,即从一个端口到另一个端口且途径其他端口的传输路径可能存在多条。例如p1端口到p3端口的数据传输径,可以是p1端口到p3端口的直接物理路径,也可以是p1端口途径p2端口再到达p3端口的间接传输路径。
88.如图5所示为所述noc的连接特性表。所述连接特性表中包括12个表头,其中包括6个横向的表头和6个纵向的表头,分别表示端口p1到p6,纵向的表头在横向上与横向的表头在纵向上的交点的表项的值表示两个表头所代表的端口之间是否有连接。如图5所示,表项值为0表示两个端口之间没有直接物理连接,如p5到p2方向上没有直接物理连接;表项值不为0表示两个端口之间有直接物理连接,并且表项值表示两个端口之间的数据传输延时,如p2到p5方向上有直接的物理连接,并且从p2到p5的数据传输延时是4个时钟周期。
89.在得到上述连接特性表之后,可以从中确定数据发送端口和数据接收端口。以数据发送端口为p1,数据接收端口为p6为例说明上述搜索过程。在该示例中,传输路径为单向
无环路径。
90.从p1为起点开始搜索传输路径,如图5所示,从p1开始能到达的端口为p2和p3;之后再分别以p2和p3为起点,其中以p2为起点可以达到的端口为p1、p3、p5,以p3为起点可以达到的端口为p1、p2、p4,其中由于数据传输端口为单向无环路径,因此路径中不能出现重复的端口,因此从p2到p1的路径删除;从p3到p1的路径和从p3到p2的路径删除;之后以当前到达的端口为起点,继续上述路径搜索过程,直至达到p6。
91.由此可以得到从p1到p6的候选传输路径一共有3条:
92.第一条候选传输路径:p1-》p2-》p3-》p4-》p5-》p6;
93.第二条候选传输路径:p1-》p3-》p4-》p5-》p6;
94.第三条候选传输路径:p1-》p2-》p5-》p6。
95.在得到上述候选传输路径之后,可以依次将上述路径存入候选传输路径表。所述候选传输路径表的表头中包括连接特性表中的所有端口项;所述候选传输路径表的每一行表示从所述数据发送端口到所述数据接收端口的一条候选传输路径。
96.如图6所示为候选传输路径表的示例。其中所述候选传输路径表中包括6个表头p1到p6,其中第一个表头为数据发送端口p1,最后一个表头为数据接收端口p6;所述数据路径表中的每一行表示一条候选传输路径。所述候选传输路径表的每一候选传输路径包括数据发送端口以及与所述候选传输路径中的每个途径端口对应的非零表项。如图6所示。每一候选传输路径中包括数据发送端口,其对应的表项值为0,以及所述候选传输路径中的每个途径端口,其对应的表项值为非零值;如图6所示,候选传输路径中的每个途径端口所对应的表项值为两个端口之间的数据传输延迟。
97.返回图2,所述片上网络仿真中的传输路径规划方法,还包括:步骤s203,将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。
98.可选的,所述步骤s203包括:
99.计算每条所述候选传输路径中的端口数量;
100.将端口数量最少的所述候选传输路径作为所述数据发送端口和数据接收端口之间的传输路径。
101.在该步骤中,计算上述候选传输路径表中每一行的所有端口的数量或者所有非零值的个数作为所述选传输路径中的端口数量。如图6所示,由于每条候选传输路径中都包括同样的数据发送端口,因此在确定途径端口数量最少的一条传输路径时,可以不计算数据发送端口,这样只要获取候选传输路径表中每一行的非零项个数即可比较出途径端口数量最少的一条传输路径。
102.可选的,所述计算每条所述候选传输路径中的端口数量,包括:
103.计算每条所述候选传输路径中的端口数量以生成路径端口数目表;其中,所述路径端口数目表的表头中包括连接特性表中的所有端口项以及路径数目项;所述路径端口数目表中的每一行表示一条候选传输路径以及所述一条候选传输路径对应经过的端口的数量。
104.如图7所示为路径端口数目表的示例。以图6所示的候选传输路径表为基础,在其中加入一列路径数目项,即路径端口数目表中的最后一列n
port
表示每条候选传输路径所经过的端口的数量。如图7所示,其中计算各行的非零数据的个数,表示此行对应的路径途经
的端口数,在该示例中,途经端口不包含数据发送端口。如第一条候选传输路径途经5个端口,第二条候选传输路径途经4个端口,第三条候选传输路径途经3个端口。
105.从三条候选传输路径中,选取途经最少端口数的路径,即第三条路径作为最终的传输路径,即:p1-》p2-》p5-》p6。
106.进一步的,当所述端口数量最少的传输路径多于一个,计算所述多个端口数量最少的传输路径的数据传输时延;将数据传输时延最小的传输路径作为选定传输路径。在一些情况下,可能存在多条途径端口数量一样的传输路径,此时可以将数据传输时延最小的传输路径作为选定传输路径。如果数据传输时延最小的传输路径也多与一个,则可以从多个传输路径中随机选择一个作为选定传输路径,或者将多个传输路径均作为选定传输路径。
107.可选的,所述方法还包括:将所述选定传输路径存入路由路径表。所述路由路径表用于在对所述noc进行仿真测试时,查询传输路径。
108.上述实施例公开了一种片上网络仿真中的传输路径规划方法,包括:获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上;根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口;将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。上述模型生成方法通过生成表示片上网络的连接特性表确定传输路径,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低,且无法进行路径的选择和优化的技术问题。
109.图8为本公开实施例提供的片上网络的仿真方法的流程示意图。所述片上网络的仿真方法,用于仿真多处理核系统中的片上网络,该片上网络的仿真方法可以由一片上网络的仿真装置来执行,该片上网络的仿真装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络的仿真装置可以集成设置在片上网络的仿真系统中的某设备中,比如片上网络的仿真终端设备中。如图8所示,该方法包括如下步骤:
110.步骤s801,接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务。
111.其中,所述片上网络仿真任务用于仿真执行片上网络传输数据的任务以测试所述片上网络的性能。
112.示例性的,所述片上网络仿真任务包括时钟周期、数据发送端口、数据接收端口以及数据大小。由上述4个参数即可定义一个仿真任务。在仿真开始前,用户可以配置上述仿真任务的参数以生成要执行的片上网络仿真任务。之后,执行所述仿真任务的终端设备接收所述片上网络仿真任务。
113.返回图8,所述片上网络的仿真方法,还包括:
114.步骤s802,获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
115.步骤s803,查询所述数据发送端口和数据接收端口之间的传输路径;其中,所述传输路径通过所述片上网络仿真中的传输路径规划方法生成;
116.步骤s804,通过路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;
117.步骤s805,若所述路径状态为空闲状态,则通过所述传输路径将所述待发送数据从所述数据发送端口发送至所述数据接收端口;
118.步骤s806,将所述传输路径上的端口的路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
119.在步骤s802中获取仿真任务的参数:数据发送端口、数据接收端口和待发送数据,其中待发送数据包括待发送数据的大小,所述待发送数据的大小以数据发送端口以及数据接收端口单次可以传输的数据大小为标准,如仿真任务中端口1向端口2发送2个数据,表示端口1需要向端口2连续发送两次数据。
120.在得到数据发送端口以及数据接收端口之后,首先查询所述数据发送端口和数据接收端口之间的传输路径;该传输路径例如可以通过前述的传输路径规划方法提前生成,通过查询直接获得已生成的传输路径;或者还可以在确认了数据发送端口和数据接收端口时,按照前述的传输路径规划方法逐步查找所述数据发送端口到数据接收端口的传输路径,进而确定的传输路径。进一步通过路径状态表查询所述传输路径的路径状态;若所述路径状态为空闲状态,将通过所述传输路径所述待发送数据从所述发送端口发送至所述数据接收端口;在将所述待发送数据从所述发送端口发送至所述数据接收端口之后,将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。所述忙状态的持续时间由单次数据传输时延以及数据的大小确定。在达到持续时间之后,将路径状态设置为闲状态以使得仿真任务中的其他数据传输任务可以使用所述路径。若所述路径状态为忙状态,则等待,此时可以每个时钟周期确定一次路径的状态,直至路径状态为空闲状态为止。
121.其中,所述路径状态表用于记录所述端口之间的路径的状态。
122.在处理核通过所述片上网络进行数据传输时,由于有传输延时的存在,需要占用所述片上网络的端口,占用时长即连接特性表中的传输时延。在端口被占用期间,如果有其他处理核需要通过该端口发送数据,则需要等待,为了准确表达出端口的拥塞状态,用路径状态表记录端口的占用状态。
123.如图9所示为路径状态表的示意图。在图9所示的示意图中,路径状态表包括2n个表头,分别为横向排列的n个表头和纵向排列的n个表头,分别用于表示片上网络的n个端口,而n*n个表项用户表示n个端口两两之间的连接状态。其中,所述连接状态包括:忙状态和闲状态。其中,所述忙状态表示两个所述表项所对应的两个端口之间正在传输数据,所述闲状态表示所述表项所对应的两个端口之间没有数据传输。
124.示例性的,当端口p
x
到端口py的直接相连的物理路径在当前时刻被使用,则其状态s
xy
为忙状态
‘1’
;否则为闲状态
‘0’
。如果两个端口直接没有物理路径相连,其状态可以为除“0”之外的任意值,例如,也可以设置为
‘1’

125.路径状态表是一张动态表,它会在不同的时刻,根据路径被占用的情况,实时调整表项的值为忙状态或者闲状态。
126.在初始建立所述路径状态表时,根据所述连接特性表中端口之间的连接关系,将有直接物理路径的两个端口所对应的表项的值初始化为闲状态,将没有直接物理路径的两个端口所对应的表现的值初始化为忙状态。
127.通过上述路径状态表,可以记录仿真过程中端口的占用情况,以模拟出实际数据
传输时的端口拥塞。
128.可选的,所述传输路径中可能包括多个端口,所述路径状态为空闲状态包括:所述发送端口、中转端口以及数据接口端口之间的路径均为空闲状态。所述路径状态为忙状态包括:所述发送端口、中转端口以及数据接口端口之间的路径中至少有一个的路径状态为忙状态。
129.可选的,所述将所述路径状态设置为忙状态,包括:将所述发送端口、中转端口以及数据接口端口之间的路径均设置为忙状态。
130.进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。其中,所述待发送数据为下一时钟周期中的待发送数据,如果没有未发送的待发送数据,则表示仿真任务中已经没有待发送的数据,则结束所述仿真任务,如果有,则继续上述步骤s802-s806直至没有未发送的待发送数据为止。
131.以下通过一个示例说明上述片上网络的仿真方法。
132.示例性的,待执行的仿真任务如下:
133.1.第1个时钟,p2申请发送2个数据至p5;
134.2.第2个时钟,p1申请发送2个数据至p6;
135.所述片上网络的仿真方法如下:
136.对上述仿真任务解析得到每个时钟中的数据发送端口、数据接口端口以及发送的数据量。
137.查询预先规划的传输路径,对于p2发送2个数据至p5来说,规划的传输路径为p
2-》p5;对于p1发送2个数据至p6来说,规划的传输路径为p
1-》p
2-》p
5-》p6。
138.1.在第1个时钟,p2申请发送2个数据至p5:
139.查询得到p2到p5的传输路径为p
2-》p5;查找路径状态表,得到s
25
=0,表示从p2到p5的物理路径为空闲,可以使用,则设置s
25
=1,将第1个数据送入总线,开始传输数据。由于p2到p5传输1个数据需要4个时钟,因此p2到p5传输2个数据一共需要8个时钟。
140.2.在第2个时钟,p1申请发送2个数据至p6:
141.根据p1到p6的传输路径为p
1-》p
2-》p
5-》p6查找路径状态表,发现s
25
=1,表示从p2到p5的物理路径处于忙状态,不可以使用,所以需要等待。
142.3.从第3个时钟到第7个时钟,由于p2到p5的数据传输未完成,需要等待。
143.4.第8个时钟,p2到p5的数据传输完毕,设置路径状态表中的s
25
=0,路径状态表恢复到初始状态。
144.5.第9个时钟,由于所有的路径均为空闲,则表示从p1到p6的传输路径可以使用,设置s
12
=1,将第1个数据送入总线,开始传输数据。
145.6.第10个时钟,由于p1到p2的数据传输未完成,因此第2个数据无法传输,所以需要等待,路径状态表没有变化。
146.7.第11个时钟,p1到p2的数据传输完成,设置s
12
=0;第1个数据从p2传输至p5,设置s
25
=1,开始传输数据。
147.8.第12个时钟,由于s
12
=0,因此从p1到p2的传输路径可用,设置s
12
=1,并将第2个数据放入总线,开始传输数据;第1个数据从p2传输至p5,设置s
25
=1,开始传输数据。
148.依此类推,当在后的数据需要继续发送时,查询后续的路径是否可用,如果可用则发送,如果不可用则等待直至路径可用,最终数据发送完毕。
149.可以理解的,在上述示例中,只要传输路径上有一个子路径被占用,则包括该子路径的传输路径均不可用。而在实际实现时,还可以按照子路径的空闲状态发送数据,即在一个包括多个子路径的数据传输路径中,当其中一个子路径被占用时,如果传输时序在该子路径之前的子路径空闲,则可以先在该子路径之前的子路径中传输数据,直至当前时钟需要使用的子路径处于忙状态为止,在此不再赘述。
150.通过上述示例可以看出,使用本公开实施例中的方案使得数据从发送端口到接收端口所途径的端口数最少,从而减少在数据传输过程中对其他端口数据传输的影响,提升整个noc的性能效率;能简单灵活的实现最优路径的规划,算法实现简单,仿真计算量小,大大节省了路径规划和仿真的资源;能避免数据传输中出现死锁等问题,提升路径的可靠性;在芯片设计中,能够根据设计人员对noc的调整,快速评估芯片的性能,及时作出反馈,指导芯片的设计和性能的优化;提升芯片运行程序编译的效率,节省神经网络编译器自动编译程序的效率;降低了运行仿真程序的硬件要求,节省了成本。
151.本公开实施例该提供一种片上网络仿真中的传输路径规划装置,包括:连接特性表获取模块,用于获取连接特性表,所述连接特性表用于表示端口之间的连接关系,所述端口位于片上网络上;候选路径查找模块,用于根据所述连接特性表查找从数据发送端口到数据接收端口的所有候选传输路径,其中所述候选传输路径中包括至少两个端口;选定模块,用于将所述所有候选传输路径中途径端口数量最少的一条传输路径作为选定传输路径。
152.本公开实施例该提供一种片上网络的仿真装置,包括:任务接收模块,用于接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务执行模块,用于获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;查询所述数据发送端口和数据接收端口之间的传输路径;其中,所述传输路径通过所述片上网络仿真中的传输路径规划方法生成;通过路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,则通过所述传输路径将所述待发送数据从所述数据发送端口发送至所述数据接收端口;将所述传输路径上的端口的路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
153.本公开实施例还提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现实施例中的任一所述片上网络仿真中的传输路径规划方法或片上网络的仿真方法。
154.本公开实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述实施例中的任一所述片上网络仿真中的传输路径规划方法或片上网络的仿真方法。
155.本公开实施例还提供一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述实施例中的任一所述片上网络仿真中的传输路径规划方法或片上网络的仿真方法。
156.本公开附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框
可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
157.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
158.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
159.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献