CN115114755A - 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 - Google Patents
片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115114755A CN115114755A CN202110286129.3A CN202110286129A CN115114755A CN 115114755 A CN115114755 A CN 115114755A CN 202110286129 A CN202110286129 A CN 202110286129A CN 115114755 A CN115114755 A CN 115114755A
- Authority
- CN
- China
- Prior art keywords
- data
- port
- chip
- network
- simulation
- 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 162
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000005540 biological transmission Effects 0.000 claims abstract description 120
- 238000012546 transfer Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000007429 general method Methods 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
- 230000001737 promoting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 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/20—Design optimisation, verification or simulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例公开了一种片上网络的仿真模型生成方法、装置、电子设备和计算机可读存储介质。其中该片上网络的仿真模型生成方法包括:根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;根据所述有向路径表生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的有向路径表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
Description
技术领域
本公开涉及程序编译及处理器领域,尤其涉及一种片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
背景技术
在神经网络计算领域的多(众)核芯片设计之前,通常会建立芯片各组成模块的仿真模型,以进行芯片的功能验证,性能评估等工作;芯片实物生产出来,进入应用阶段后,每次编译器编译神经网络计算程序过程中,需要实时评估程序的效率,进而优化生成的神经网络计算程序。这就要求建立一个准确而高效的神经网络芯片的仿真器。
一般多(众)核芯片中,处理核间通信以及处理核与芯片中其他模块之间的通信,都是通过片上网络NoC(Network on Chip)进行的。如何建立一个精确且高效的NoC仿真模型是一个挑战。
建立NoC仿真模型时,根据不同的要求,通常做法是:
1.侧重精确:这种情况,会将NoC的电路用软件的方式表达出来,从而能够比较准确的评估NoC的性能,包括数据的精确延时等性能。但是这种方法使得软件设计复杂,仿真运行时间长,对运行仿真程序的机器要求高。
2.侧重高效:这种情况,会将NoC看成一个具有某些行为特性的功能模块,仿真结果只表达NoC的各端口的行为,从而仿真速度快,对运行仿真程序的机器要求低。但是这种方法缺少NoC的实际特性表达,例如无法得到精确的时序信息,无法仿真NoC的拥塞状况等状况,对整个芯片的性能评估过于粗糙。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
为了解决现有技术中的上述技术问题,本公开实施例提出如下技术方案:
第一方面,本公开实施例提供一种片上网络的仿真模型生成方法,包括:
根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;
根据所述有向路径表生成所述片上网络的仿真模型。
进一步的,所述根据所述有向路径表生成所述片上网络的仿真模型,包括:
根据仿真任务命令读取所述有向路径表;
根据所述读取的所述有向路径表生成所述片上网络的仿真模型。
进一步的,所述数据传输路径的状态包括:忙状态或闲状态。
进一步的,位于所述有向路径表同一行的数据发送端口和数据接收端口之间具有直接的物理连接关系。
进一步的,所述数据传输时延表示单个数据从所述数据发送端口传输到所述数据接收端口所需要的时钟数量。
第二方面,本公开实施例提供一种片上网络的仿真方法,包括:
接收总线仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;
将所述仿真任务输入通过所述第一方面中任一个所述片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:
获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
通过所述有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系;
若所述数据发送端口和数据接收端口之间有连接关系,通过所述有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;
若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;
将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。
进一步的,所述数据发送端口和数据接收端口之间包括数据中转端口,所述路径状态为空闲状态包括:从所述发送端口至中转端口,以及从所述中转端口至所述数据接收端口之间的路径均为空闲状态。
进一步的,所述将所述路径状态设置为忙状态,包括:将所述发送端口至所述中转端口,以及所述中转端口至所述数据接收端口之间的路径均设置为忙状态。
进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。
第三方面,本公开实施例提供一种片上网络的仿真模型生成装置,包括:
有向路径表生成模块,用于根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;模型生成模块,用于根据所述有向路径表生成所述片上网络的仿真模型。
第四方面,本公开实施提供一种片上网络的仿真装置,包括:
任务接收模块,用于接收片上网络的仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务输入模块,用于将所述仿真任务输入通过所述的片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;通过所述有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系;若所述数据发送端口和数据接收端口之间有连接关系,通过所述有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。
第五方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第二方面中或第二方面中的任一所述的方法。
第六方面,本公开实施例提供一种计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第二方面中或第二方面中的任一所述的方法。
第七方面,本公开实施例提供一种计算机程序产品,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述第二方面中或第二方面中的任一所述的方法。
本公开实施例公开了一种片上网络的仿真模型生成方法、装置、电子设备和计算机可读存储介质。其中该片上网络的仿真模型生成方法包括:根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;根据所述有向路径表生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的有向路径表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为片上网络的结构示意图;
图2为本公开实施例提供的片上网络的仿真模型生成方法的流程示意图;
图3为本公开实施例提供的有向路径表的示意图;
图4为本公开实施例提供的片上网络的仿真方法的流程示意图;
图5a为本公开实施例提供的片上网络的一个示例的示意图;
图5b为本公开实施例提供的片上网络的模型的有向路径表的一个示例的示意图;
图6a-6j为本公开实施例提供的片上网络的仿真模型执行仿真任务时有向路径表的变化状态以及数据传输示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为片上网络的结构示意图。如图1所示,NoC包括N个端口P(P1-PN),每个端口与芯片的一个处理核连接,能够同时实现输入和输出。其中,有些端口可能是单向的,只能作为输入或者输出,有些端口是双向的,可以同时输入和输出。通过N个端口可以在N个处理核之间传输数据。
图2为本公开实施例提供的片上网络的仿真模型生成方法的流程示意图。
所述片上网络的仿真模型生成方法,用于生成芯片中的NoC模型,其中,芯片包括多个处理核;该片上网络的仿真模型生成方法可以由一片上网络的仿真模型生成装置来执行,该片上网络的仿真模型生成装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络的仿真模型生成装置可以集成设置在片上网络的仿真模型生成系统中的某设备中,比如片上网络的仿真模型生成终端设备中。
如图2所示,该方法包括如下步骤:
步骤S201,根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态。
如图1所示,片上网络用于通过多个端口在多个处理核之间传输数据,那么通过使用有向路径表来表达片上网络上的端口之间的连接关系、具有连接关系的端口之间的数据传输时延以及数据传输路径的当前状态,就可以表达出片上网络的特性。其中,所述待仿真片上网络的特性包括待仿真片上网络的端口、端口之间的连接关系以及所述端口之间传输数据时的数据传输时延。
可选的,位于所述有向路径表同一行的数据发送端口和数据接收端口之间具有直接的物理连接关系。
可选的,通过人机交互接口,如人机交互界面中的菜单、选项、输入栏等接收用户输入的有向路径表的属性数值以配置有向路径表的属性。如片上网络的端口的数量、两个端口之间是否连接,如果连接则数据传输时延是多少等等。
如图3所示为有向路径表的示意图。在图3所示的示意图中,有向路径表包括N行,每一行表示片上网络中具有方向性的两个端口之间的数据传输路径;其中,所述有向路径表中的N行中的每一行,包括4个表项:数据发送端口SP(Start Port)、数据接收端口EP(EndPort)、数据发送端口和数据接收端口之间的数据传输延时L(Latency)以及传输路径的状态信息S(Status)。
其中所述数据传输延时,表示单个数据从SP传输到EP所需要花费的时钟数;所述路径状态信息S表示所述数据传输路径是否正在传输数据。可选的,所述数据传输路径的状态包括忙状态或现状态;使用第一预设值表示忙状态,使用第二预设值表示闲状态,所述数据传输路径的状态信息S为第一预设值或者第二预设值。示例性的,所述第一预设值为1,所述第二预设值为0。
所述有向路径表的行数N等于待仿真的片上网络中的端口之间的路径的数量,其中所述路径具有方向性,为有向路径,如端口PX到端口PY的路径和端口PY到端口PX的路径是两个不同的路径。
示例性的,如图3所示,获取待仿真的片上网络的端口信息,当端口PX到另外一个端口PY有直接相连的物理路径,则在所述有向路径表中生成一行中的4个表项,将数据发送端口的标识PX赋值给表项SP,将数据接收端口的标识PY赋值给表项EP;获取待仿真的片上网络的上述两个端口之间的数据传输延时,在表项L中填入数据传输时所需要花费的时钟数LXY,即时延Latency,表示从数据发送端口PX传输单个数据到数据接收端口PY,所需要花费的时钟数;在生成所述有向路径表时,所有的有向路径之间均没有数据传输,因此所有有向路径的表项S均赋值成第二预设值,如0。通过上述路径状态信息,可以记录仿真过程中端口的占用情况,以模拟出实际数据传输时的端口拥塞。
示例性的,如图3所示,端口P1跟端口P3之间有直接连接的物理路径,因此有向路径表中包括SP=P1,EP=P3的一行,且从P1到P3传输数据的传输时延是L13个时钟;初始状态S=S13。
所述有向路径表是一张动态表格,其中的路径状态信息S会在每一个时钟,根据路径的实际占用状态动态更新。而表中的其他信息,数据发送端口SP、数据接收端口EP以及数据传输时延L,对于已经设计好的芯片或者生产出来的芯片,是静态的,不会改变。在进行性能仿真模拟及程序编译优化前,根据芯片的实际情况生成有向路径表,并初始化有向路径表中的相关信息。而在仿真或者编译优化程序时,需要实时更新路径状态信息S。对于芯片设计过程中的片上网络性能预测仿真和优化,则可以根据需要调整所述有向路径表,此时相当于改变片上网络的设计,即改变和优化芯片的设计。可以在设计好芯片或者生成出芯片之前,提前预测片上网络的性能。
返回图2,所述片上网络的仿真模型生成方法,还包括:
步骤S202,根据所述有向路径表生成所述片上网络的仿真模型。
其中,所述片上网络的仿真模型可以只包括所述向路径表,仿真任务的解析以及控制可以通过模型外的程序进行控制。或者,所述仿真模型还可以包括仿真任务的参数,根据所述仿真任务的参数和所述有向路径表生成所述仿真模型,此时所述仿真模型为针对仿真任务的仿真模式实例。
可选的,所述步骤S203包括:
根据仿真任务命令读取所述有向路径表;
根据所述读取的所述有向路径表生成所述片上网络的仿真模型。
其中,仿真任务包括仿真任务的参数,所述仿真任务的参数包括时钟周期,在所述时钟周期中的数据发送端口和数据接收端口等等。根据仿真任务读取命令,根据所述仿真任务的参数读取所述有向路径表,之后根据读取到的有向路径表生成所述片上网络的仿真模型。此时,生成的仿真模型为针对某一特定仿真任务的仿真模型。
通过上述基于有向路径表的仿真模型生成方法,避免了对片上网络电路复杂行为的模拟,只是简单的根据片上网络的有向路径以及路径的状态,实现了对片上网络的精确仿真,并且大大降低了对算力的需求,加快了仿真的速度,提升了工作的效率。
并且,上述仿真模型的生成方法具有通用性,能够应用到各种各样的片上网络上,因为不同的片上网络只是端口的连接特性和实现的电路不同,这些可以用有向路径表中的数据发送端口、数据接收端口以及数据传输延时表达;而运行过程中的状态可以由有向路径表中的路径状态信息表达,由此通过生成一个表即可表达出各种各样的片上网络。
上述实施例公开了一种片上网络的仿真模型生成方法,该片上网络的仿真模型生成方法包括:根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;根据所述有向路径表生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的有向路径表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
图4为本公开实施例提供的片上网络的仿真方法的流程示意图。所述片上网络的仿真方法,用于仿真多处理核系统中的片上网络,该片上网络的仿真方法可以由一片上网络的仿真装置来执行,该片上网络的仿真装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络的仿真装置可以集成设置在片上网络的仿真系统中的某设备中,比如片上网络的仿真终端设备中。如图4所示,该方法包括如下步骤:
步骤S401,接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务。
其中,所述片上网络仿真任务用于仿真执行片上网络传输数据的任务以测试所述片上网络的性能。
示例性的,所述片上网络仿真任务包括时钟周期、数据发送端口、数据接收端口以及数据大小。由上述4个参数即可定义一个仿真任务。在仿真开始前,用户可以配置上述仿真任务的参数以生成要执行的片上网络仿真任务。之后,执行所述仿真任务的终端设备接收所述片上网络仿真任务。
返回图4,所述片上网络的仿真方法,还包括:
步骤S402,将所述仿真任务输入通过上述片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:
步骤S4021,获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
步骤S4022,通过所述有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系;
步骤S4023,若所述数据发送端口和数据接收端口之间有连接关系,通过所述有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;
步骤S4024,若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;
步骤S4025,将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。
将仿真任务输入通过上述仿真模型生成方法生成的仿真模型中,包括将所述仿真任务解析成仿真参数,将仿真参数输入所述仿真模型中;或者,将所述仿真任务输入所述仿真模型中,仿真模型通过其自身的仿真任务的执行控制指令解析所述仿真任务得到仿真参数。
仿真模型在步骤S5021中获取仿真任务的参数:数据发送端口、数据接收端口和待发送数据,其中待发送数据包括待发送数据的大小,所述待发送数据的大小以数据发送端口以及数据接收端口单次可以传输的数据大小为标准,如仿真任务中端口1向端口2发送2个数据,表示端口1需要向端口2连续发送两次数据。
在得到数据发送端口以及数据接收端口之后,首先通过仿真模型的有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系,其中所述连接关系包括间接连接关系,即通过数据发送端口经过中转端口能够达到所述数据接收端口;若没有连接关系,则输出提示信息,提示仿真任务无法执行;若所述数据发送端口和数据接收端口之间有连接关系,则进一步通过仿真模型的有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;在将所述待发送数据从所述发送端口发送至所述数据接收端口之后,将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。所述忙状态的持续时间由单次数据传输时延以及数据的大小确定。在达到持续时间之后,将路径状态设置为闲状态以使得仿真任务中的其他数据传输任务可以使用所述路径。若所述路径状态为忙状态,则等待,此时可以每个时钟周期确定一次路径的状态,直至路径状态为空闲状态为止。
可选的,当所述连接关系为间接连接关系时,所述数据发送端口和数据接收端口之间包括数据中转端口;所述路径状态为空闲状态包括:所述发送端口、中转端口以及数据接口端口之间的路径均为空闲状态。示例性的,如果仿真任务中的数据发送端口和数据接收端口之间没有直接物理路径,则从有向路径表中查找以SP为起点,途径其他中转端口,最终到达EP的可选组合路径,从中选取最优的路径作为最终的组合路径,此处的最优可以根据不同的策略判定,如路径最短,延迟最短或者当前可使用等标准。
可选的,所述路径状态为忙状态包括:所述发送端口、中转端口以及数据接口端口之间的路径中至少有一个的路径状态为忙状态。
可选的,所述将所述路径状态设置为忙状态,包括:将所述发送端口、中转端口以及数据接口端口之间的路径均设置为忙状态。
进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。其中,所述待发送数据为下一时钟周期中的待发送数据,如果没有未发送的待发送数据,则表示仿真任务中已经没有待发送的数据,则结束所述仿真任务,如果有,则继续上述步骤S4021-S4025直至没有未发送的待发送数据为止。
以下通过一个示例说明上述片上网络的模型生成方法以及片上网络的仿真方法。
图5a为片上网络的一个示例的示意图。图5a中的片上网络是一条带6个输入输出端口的共享总线,各端口顺序与总线相连,即P1到P6顺序排列;总线位宽保证每个时钟能传输一个数据;只有相邻端口间有物理连接;各端口之间相连的物理连接有两条,一条从左到右,一条从右到左,即两个端口之间可以同时实现收数据和发数据;总线的各段能分段并行传输数据,即:在任意时刻,若两个端口之间有通信,例如P2端口发送数据给P3端口,那么P2到P3的方向的总线段处于忙状态,P2到P3的方向的总线段将不能被其他端口再申请用于传输数据,但是,在P2到P3之外的总线段,还是可以申请使用,例如P3到P2方向的总线段,可以与P2到P3总线段同时传输数据。但是由于只有相邻端口间有物理连接,所以端口申请路径时,不能包含有正在使用的总线段,例如P1到P3需要经过P2到P3的总线段,所以在此刻,P1到P3的路径将处于忙状态,需要等待,直到P2到P3的数据传输结束,才能打通P1到P3的路径。
根据上述片上网络的模型生成方法,生成有向路径表;只有相邻端口间有物理连接;各端口之间相连的物理连接有两条,一条从左到右,一条从右到左。根据上述片上网络的特性生成有向路径表如图5b所示,P1仅和P2之间有物理连接,P2和P1及P3之间有物理连接,依次类推,一共有10条直接的有向路径,因此有向路径表中包括10行表格。两个端口之间的传输时延为2个时钟,则将对应的表项L的值设置为2。待仿真的片上网络的初始状态为所有的路径均为空闲状态,因此每一行的表项S均赋值为0。
由此,得到了用于表示片上网络的模型,所述模型包括有向路径表。
之后,可以使用上述片上网络的模型执行仿真任务。
示例性的,待执行的仿真任务如下:
1.第1个时钟,P2申请发送2个数据至P3;
2.第2个时钟,P4申请发送2个数据至P5;
3.第3个时钟,P1申请发送2个数据至P3;
4.第4个时钟,P6申请发送2个数据至P4。
所述片上网络的仿真方法如下:
对上述仿真任务解析得到每个时钟中的数据发送端口、数据接口端口以及发送的数据量。
1.在第1个时钟,P2申请发送2个数据至P3:
查找有向路径表,得到S23=0,表示从P2到P3的物理路径为空闲,可以使用,则设置S23=1,将第1个数据送入总线,开始传输数据。此时有向路径表的变化如图6a所示;此时的数据传输示意图如图6b所示。
2.在第2个时钟,P4申请发送2个数据至P5:
查找有向路径表,得到S45=0,表示从P4到P5的物理路径为空闲,可以使用,则设置S45=1,将第1个数据送入总线,开始传输数据;此时,P2到P3的数据传输还没有完成,第1个数据正在传输的过程中,第2个数据送入总线,所以S23没有变化。此时有向路径表的变化如图6c所示;此时的数据传输示意图如图6d所示。
3.第3个时钟,P1申请发送2个数据到P3:
对于P1到P3的路径,由两段路径组成:P1到P2的路径和P2到P3的路径。
查找有向路径表,得到S12=0,但是S23=1,表示从P2到P3的路径处于忙状态,不可使用,所以需要等待;由于P2到P3的数据传输和P4到P5的数据传输都还没有完成,所以有向路径表和传输示意图都没有变化。
4.第4个时钟,P6申请发送2个数据到P4;
对于P6到P4的路径,由两段路径组成:P6到P5的路径和P5到P4的路径。
查找有向路径表,得到S65=0,且S54=0,表示从P6到P4的路径均为空闲,可使用,则将两段路径的状态都置1,即S65=1,且S54=1;由于此时P2到P3的数据传输已经完成,所以P1到P3的数据传输申请成功,将P1到P3的两段路径的状态都置1,即S12=1,且S23=1;此时P4到P5的数据传输都还没有完成,保持原状。此时有向路径表的变化如图6e所示;此时的数据传输示意图如图6f所示。
5.第5个时钟,数据传输中;
无新数据传输申请,但是原来的传输中,P4到P5的数据传输结束,其路径状态信息清0,即设置S45=0;其他数据传输正在进行中,保持不变。此时有向路径表的变化如图6g所示;此时的数据传输示意图如图6h所示。
6.第6个时钟到第8个时钟,数据一直都处于传输中,有向路径表没有更新,传输示意图也没有变化;
7.第9个时钟,数据传输结束。
P1到P3的数据传输和P6到P4的数据传输都完成,此时将P1到P3的路径状态清0,设置S12=0,S23=0;将将P6到P4的路径状态清0,设置S65=0,S54=0。此时有向路径表和传输示意图将恢复初始状态。此时有向路径表的变化如图6i所示;此时的数据传输示意图如图6j所示。
通过上述示例可以看出,使用本公开实施例中的片上网络的模型生成方法所生成的模型能精确的仿真片上网络带来的数据延时性能,从而仿真结果能作为芯片性能的有效参数,且能作为数据路径选择的有效依据;避免了为了模拟电路行为而编写的复杂的程序,仿真程序运行大大降低了仿真时间,只需要通过简单的查找和更新表格,做简单的计算即可以实现片上网络的精确模拟;根据一个表格,就能够实时规划数据路由,以达到优化程序,提高效率的目的;仿真模型具有很高的通用性,可以用于任意种类的片上网络,不同的片上网络只需要修改表格对应的内容即可。
本公开实施例该提供一种片上网络的仿真模型生成装置,包括:有向路径表生成模块,用于根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;模型生成模块,用于根据所述有向路径表生成所述片上网络的仿真模型。
本公开实施例该提供一种片上网络的仿真装置,包括:任务接收模块,用于接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务输入模块,用于将所述仿真任务输入通过所述的片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;通过所述有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系;若所述数据发送端口和数据接收端口之间有连接关系,通过所述有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。
本公开实施例还提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现实施例中的任一所述方法。
本公开实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述实施例中的任一所述方法。
本公开实施例还提供一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述实施例中的任一所述方法。
本公开附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
Claims (10)
1.一种片上网络的仿真模型生成方法,其特征在于,包括:
根据待仿真的片上网络的特性生成有向路径表,其中所述有向路径表中的每一行对应一条数据传输路径;所述每一行包括所述数据传输路径的数据发送端口、所述数据传输路径的数据接收端口、所述数据传输路径的数据传输时延以及所述数据传输路径的状态;
根据所述有向路径表生成所述片上网络的仿真模型。
2.如权利要求1所述的方法,其特征在于,所述根据所述有向路径表生成所述片上网络的仿真模型,包括:
根据仿真任务命令读取所述有向路径表;
根据所述读取的所述有向路径表生成所述片上网络的仿真模型。
3.如权利要求1和2中任一项所述的方法,其特征在于,所述数据传输路径的状态包括:忙状态或闲状态。
4.如权利要求1-3中任一项所述的方法,其特征在于,位于所述有向路径表同一行的数据发送端口和数据接收端口之间具有直接的物理连接关系。
5.如权利要求1-4任一项所述的方法,其特征在于,所述数据传输时延表示单个数据从所述数据发送端口传输到所述数据接收端口所需要的时钟数量。
6.一种片上网络的仿真方法,其特征在于,包括:
接收片上网络的仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;
将所述仿真任务输入通过权利要求1-5中任一项所述片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:
获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
通过所述有向路径表查询所述数据发送端口和数据接收端口之间是否有连接关系;
若所述数据发送端口和数据接收端口之间有连接关系,通过所述有向路径表查询所述数据发送端口和数据接收端口之间的路径状态;
若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;
将所述路径状态设置为忙状态,并根据所述有向路径表中的数据传输时延确定忙状态的持续时间。
7.如权利要求6所述的方法,其特征在于,所述数据发送端口和数据接收端口之间包括数据中转端口,所述路径状态为空闲状态包括:从所述发送端口至中转端口,以及从所述中转端口至所述数据接收端口之间的路径均为空闲状态。
8.如权利要求7所述的方法,其特征在于,所述将所述路径状态设置为忙状态,包括:将所述发送端口至所述中转端口,以及所述中转端口至所述数据接收端口之间的路径均设置为忙状态。
9.如权利要求6-8任一项所述的方法,其特征在于,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。
10.一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述电子设备执行所述权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286129.3A CN115114755A (zh) | 2021-03-17 | 2021-03-17 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286129.3A CN115114755A (zh) | 2021-03-17 | 2021-03-17 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115114755A true CN115114755A (zh) | 2022-09-27 |
Family
ID=83323150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110286129.3A Pending CN115114755A (zh) | 2021-03-17 | 2021-03-17 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114755A (zh) |
-
2021
- 2021-03-17 CN CN202110286129.3A patent/CN115114755A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230153158A1 (en) | Method, apparatus, system, and storage medium for performing eda task | |
US8359186B2 (en) | Method for delay immune and accelerated evaluation of digital circuits by compiling asynchronous completion handshaking means | |
US10133594B1 (en) | Flexible physical function and virtual function mapping | |
CN116670660A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN103309676B (zh) | 用于海洋数值模拟ROMS的Web服务封装方法以及系统 | |
CN110705191B (zh) | 一种多形态模拟仿真验证环境的构建方法 | |
Sauer et al. | The research queueing package: past, present, and future | |
CN103294482B (zh) | 用于PWscf并行计算系统的Web服务封装方法以及系统 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN117743145A (zh) | 一种基于编码模板的测试脚本生成方法、装置及处理设备 | |
CN117149406A (zh) | 资源调度方法、装置、系统、计算机设备及存储介质 | |
CN115809620B (zh) | 仿真逻辑系统设计的方法、电子设备和存储介质 | |
CN115114755A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN115828805A (zh) | 分割逻辑系统设计的方法、设备及存储介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
CN115345100A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
Haggarty et al. | Distributed response time analysis of GSPN models with MapReduce | |
US11727178B2 (en) | Under test pin location driven simultaneous signal grouping and pin assignment | |
CN115204086A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
CN113806990B (zh) | 一种氮气弹簧仿真分析方法及系统 | |
CN115204085A (zh) | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 | |
CN117933155B (zh) | 一种多进程联合仿真系统及方法、电子设备和存储介质 | |
CN117436402B (zh) | 跨电压域的时序路径分析方法、装置、介质及终端 | |
CN113449477B (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 | ||
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 |
|
CB02 | Change of applicant information |