CN116670660A - 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 - Google Patents
片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116670660A CN116670660A CN202180087429.7A CN202180087429A CN116670660A CN 116670660 A CN116670660 A CN 116670660A CN 202180087429 A CN202180087429 A CN 202180087429A CN 116670660 A CN116670660 A CN 116670660A
- Authority
- CN
- China
- Prior art keywords
- chip
- network
- data
- port
- ports
- 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
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例公开了一种片上网络的仿真模型生成方法、装置、电子设备和计算机可读存储介质。其中该片上网络的仿真模型生成方法包括:生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;根据所述连接特性表和所述路径状态生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的连接特性表以及路径状态表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
Description
本公开涉及仿真领域,尤其涉及一种片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
在神经网络计算领域的多(众)核芯片设计之前,通常会建立芯片各组成模块的仿真模型,以进行芯片的功能验证,性能评估等工作;芯片实物生产出来,进入应用阶段后,每次编译器编译神经网络计算程序过程中,需要实时评估程序的效率,进而优化生成的神经网络计算程序。这就要求建立一个准确而高效的神经网络芯片的仿真器。
一般多(众)核芯片中,处理核间通信以及处理核与芯片中其他模块之间的通信,都是通过片上网络NoC(Network on Chip)进行的。如何建立一个精确且高效的NoC仿真模型是一个挑战。
建立NoC仿真模型时,根据不同的要求,通常做法是:
1.侧重精确:这种情况,会将NoC的电路用软件的方式表达出来,从而能够比较准确的评估NoC的性能,包括数据的精确延时等性能。但是这种方法使得软件设计复杂,仿真运行时间长,对运行仿真程序的机器要求高。
2.侧重高效:这种情况,会将NoC看成一个具有某些行为特性的功能模块,仿真结果只表达NoC的各端口的行为,从而仿真速度快,对运行仿真程序的机器要求低。但是这种方法缺少NoC的实际特性表达,例如无法得到精确的时序信息,无法仿真NoC的拥塞状况等状况,对整个芯片的性能评估过于粗糙。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
为了解决现有技术中的上述技术问题,本公开实施例提出如下技术方案:
第一方面,本公开实施例提供一种片上网络的仿真模型生成方法,包括:
生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;
生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;
根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
进一步的,所述连接特征表包括N*N个表项和2N个表头,其中,所述2N个表头中包括N个横向的表头和N个纵向表头,分别表示所述片上网络的N个端口;所述N*N个表项用于 表示所述N个端口两两之间的连接关系以及数据传输时延。
进一步的,所述方法还包括:当所述表项的值为第一预设值时,所述表项所对应的两个端口之间无连接关系;或者,当所述表项的值不为第一预设值时,所述表项所对应的两个端口之间具有连接关系,并且所述两个端口之间的传输时延为所述表项的值。
进一步的,所述路径状态表包括N*N个表项和2N个表头,其中所述2N个表头中包括N个横向的表头和N个纵向表头,分别表示所述片上网络的N个端口;所述N*N个表项用于表示所述N个端口两两之间的连接状态。
进一步的,所述连接状态包括:忙状态或闲状态。
进一步的,所述根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型,包括:根据仿真任务的参数读取连接特性表和所述路径状态表中的表项的值;根据所述读取的所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
第二方面,本公开实施例提供一种片上网络的仿真方法,包括:
接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;
将所述仿真任务输入通过如上述第一方面中任一项所述的片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:
获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
通过所述连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系;
若所述数据发送端口和数据接收端口之间有连接关系,通过所述路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;
若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;
将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
进一步的,所述数据发送端口和数据接收端口之间包括数据中转端口,所述路径状态为空闲状态包括:所述发送端口、中转端口以及数据接口端口之间的路径均为空闲状态。
进一步的,所述将所述路径状态设置为忙状态,包括:将所述发送端口、中转端口以及数据接口端口之间的路径均设置为忙状态。
进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。
第三方面,本公开实施例提供一种片上网络的仿真模型生成装置,包括:
连接特性表生成模块,用于生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;路径状态表生成模块,用于生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;模型生成模块,用于根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
第四方面,本公开实施提供一种片上网络的仿真装置,包括:
任务接收模块,用于接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务输入模块,用于将所述仿真任务输入通过所述的片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;通过所述连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系;若所述数据发送端口和数据接收端口之间有连接关系,通过所述路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
第五方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第二方面中或第二方面中的任一所述的方法。
第六方面,本公开实施例提供一种计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第二方面中或第二方面中的任一所述的方法。
第七方面,本公开实施例提供一种计算机程序产品,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述第二方面中或第二方面中的任一所述的方法。
本公开实施例公开了一种片上网络的仿真模型生成方法、装置、电子设备和计算机可读存储介质。其中该片上网络的仿真模型生成方法包括:生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;根据所述连接特性表和所述路径状态生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的连接特性表以及路径状态表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为片上网络的结构示意图;
图2为本公开实施例提供的片上网络的仿真模型生成方法的流程示意图;
图3为本公开实施例提供的连接特性表的示意图;
图4为本公开实施例提供的路径状态表的示意图;
图5为本公开实施例提供的片上网络的仿真方法的流程示意图;
图6a为本公开实施例提供的片上网络的一个示例的示意图;
图6b为本公开实施例提供的片上网络的模型的连接特性表的一个示例的示意图;
图6c为本公开实施例提供的片上网络的模型的路径状态表的一个示例的示意图;
图7a-7j为本公开实施例提供的片上网络的仿真模型执行仿真任务时路径状态表的变化状态以及数据传输示意图。
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为片上网络的结构示意图。如图1所示,NoC包括N个端口P(P
1-P
N),每个端口与芯片的一个处理核连接,能够同时实现输入和输出。其中,有些端口可能是单向的,只能作为输入或者输出,有些端口是双向的,可以同时输入和输出。通过N个端口可以在N个处理核之间传输数据。
图2为本公开实施例提供的片上网络的仿真模型生成方法的流程示意图。
所述片上网络的仿真模型生成方法,用于生成芯片中的Noc模型,其中,芯片包括多个处理核;该片上网络的仿真模型生成方法可以由一片上网络的仿真模型生成装置来执行,该片上网络的仿真模型生成装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络的仿真模型生成装置可以集成设置在片上网络的仿真模型生成系统中的某设备中, 比如片上网络的仿真模型生成终端设备中。
如图2所示,该方法包括如下步骤:
步骤S201,生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上。
如图1所示,片上网络的功能为通过多个端口在多个处理核之间传输数据,那么为了表达出片上网络的静态特性,使用连接特性表来表达片上网络上的端口之间的连接关系以及具有连接关系的端口之间的数据传输时延。
可选的,通过人机交互接口,如人机交互界面中的菜单、选项、输入栏等接收用户输入的连接特性表的属性数值以配置连接特性表的属性。如片上网络的端口的数量、两个端口之间是否连接,如果连接则数据传输时延是多少等等。
如图3所示为连接特性表的示意图。在图3所示的示意图中,连接特性表包括2N个表头,分别为横向排列的N个表头和纵向排列的N个表头,分别用于表示片上网络的N个端口,而N*N个表项用户表示N个端口两两之间的连接关系以及数据传输延时。
可选的,当所述表项的值为第一预设值时,所述表项所对应的两个端口之间无连接关系;或者,
当所述表项的值不为第一预设值时,所述表项所对应的两个端口之间具有连接关系,并且所述两个端口之间的传输时延为所述表项的值。
示例性的,当端口P
X到另外一个端口P
Y没有直接相连的物理路径,则在连接特性表的相应表项中填入0,此时所述第一预设值即为0,表示两个端口之间不能直接通信,需要跨越其他端口之间的物理路径进行间接通信;当端口P
X到另外一个端口P
Y有直接相连的物理路径,则在连接特性表的相应表项中填入数据传输时所需要花费的时钟数L
XY,即时延Latency,表示单个数据端口P
X传输数据到单个数据端口P
Y,所需要花费的时钟数;示例性的,如图3所示,端口P
1跟端口P
3之间有直接连接的物理路径,且从P
1到P
3传输数据的传输时延是L
13个时钟;端口P
3到端口P
1之间有直接连接的物理路径,且从P
3到P
1传输数据的传输时延是L
31个时钟。
连接特性表是一张静态表格,对于已经设计好的芯片或者生产出来的芯片,连接特性表是唯一的,在进行性能仿真模拟及程序编译优化之前,已经根据芯片的实际情况生成,不会改变。
对于芯片设计过程中的片上网络性能预测仿真和优化,则可以根据需要调整连接特性表,此时相当于改变片上网络的设计,即改变和优化芯片的设计。可以在设计好芯片或者生成出芯片之前,提前预测片上网络的性能。
返回图2,所述片上网络的仿真模型生成方法,还包括:
步骤S202,生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态。
在处理核通过所述片上网络进行数据传输时,由于有传输延时的存在,需要占用所述片上网络的端口,占用时长即连接特性表中的传输时延。在端口被占用期间,如果有其他处理核需要通过该端口发送数据,则需要等待,为了准确表达出端口的拥塞状态,在步骤S202中, 生成路径状态表。
如图4所示为路径状态表的示意图。在图4所示的示意图中,路径状态表包括2N个表头,分别为横向排列的N个表头和纵向排列的N个表头,分别用于表示片上网络的N个端口,而N*N个表项用户表示N个端口两两之间的连接状态。其中,所述连接状态包括:忙状态和闲状态。其中,所述忙状态表示两个所述表项所对应的两个端口之间正在传输数据,所述闲状态表示所述表项所对应的两个端口之间没有数据传输。
示例性的,当端口P
X到端口P
Y的直接相连的物理路径在当前时刻被使用,则其状态SXY为忙状态‘1’;否则为闲状态‘0’。如果两个端口直接没有物理路径相连,其状态可以为除“0”之外的任意值,例如,也可以设置为‘1’。
路径状态表是一张动态表,它会在不同的时刻,根据路径被占用的情况,实时调整表项的值为忙状态或者闲状态。
在初始建立所述路径状态表时,根据所述连接特性表中端口之间的连接关系,将有直接物理路径的两个端口所对应的表项的值初始化为闲状态,将没有直接物理路径的两个端口所对应的表现的值初始化为忙状态。
通过上述路径状态表,可以记录仿真过程中端口的占用情况,以模拟出实际数据传输时的端口拥塞。
返回图2,所述片上网络的仿真模型生成方法,还包括:
步骤S203,根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
其中,所述片上网络的仿真模型可以只包括所述连接特性表和所述路径状态表,仿真任务的解析以及控制可以通过模型外的程序进行控制。或者,所述仿真模型还可以包括仿真任务的控制指令,用于对仿真任务进行控制。
可选的,所述步骤S203包括:
根据仿真任务的参数读取连接特性表和所述路径状态表中的表项的值;
根据所述读取的连接特性表和所述路径状态表生成所述片上网络的仿真模型。
其中,仿真任务的参数包括当前时钟周期,数据发送端口和数据接收端口等等。可选的,通过仿真任务的执行控制指令解析仿真任务得到上述仿真任务的参数,并根据其中的时钟周期确定当前的时钟周期的数据发送端口以及数据接收端口,并读取连接特性表和所述路径状态表中的表项的值以确定是否可以立即从所述数据发送端口发送数据到数据接收端口。
在该可选实施例中,所述读取的连接特性表和所述路径状态表共同组成所述片上网络的仿真模型。
通过上述基于连接特性表和路径状态表的仿真模型生成方法,避免了对片上网络电路复杂行为的模拟,只是简单的根片上网络的连接特性和路径状态,实现了对片上网络的精确仿真,并且大大降低了对算力的需求,加快了仿真的速度,提升了工作的效率。
并且,上述仿真模型的生成方法具有通用性,能够应用到各种各样的片上网络上,因为不同的片上网络只是端口的连接特性和实现的电路不同,这些可以用连接特性表概括;而运 行过程中的状态可以由路径状态表表达,由此通过生成两个表即可表达出各种各样的片上网络。
上述实施例公开了一种片上网络的仿真模型生成方法,该片上网络的仿真模型生成方法包括:生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;根据所述连接特性表和所述路径状态生成所述片上网络的仿真模型。上述模型生成方法通过生成表示片上网络的连接特性表以及路径状态表,解决了现有技术中仿真方法复杂但是效率低或者仿真方法简单但是精度低的技术问题。
图5为本公开实施例提供的片上网络的仿真方法的流程示意图。所述片上网络的仿真方法,用于仿真多处理核系统中的片上网络,该片上网络的仿真方法可以由一片上网络的仿真装置来执行,该片上网络的仿真装置可以实现为软件或者硬件,或者实现为软件和硬件的组合,该片上网络的仿真装置可以集成设置在片上网络的仿真系统中的某设备中,比如片上网络的仿真终端设备中。如图5所示,该方法包括如下步骤:
步骤S501,接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务。
其中,所述片上网络仿真任务用于仿真执行片上网络传输数据的任务以测试所述片上网络的性能。
示例性的,所述片上网络仿真任务包括时钟周期、数据发送端口、数据接收端口以及数据大小。由上述4个参数即可定义一个仿真任务。在仿真开始前,用户可以配置上述仿真任务的参数以生成要执行的片上网络仿真任务。之后,执行所述仿真任务的终端设备接收所述片上网络仿真任务。
返回图5,所述片上网络的仿真方法,还包括:
步骤S502,将所述仿真任务输入通过上述片上网络的仿真模型生成方法所生成的仿真模型中,使得所述仿真模型执行如下步骤:
步骤S5021,获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;
步骤S5022,通过所述连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系;
步骤S5023,若所述数据发送端口和数据接收端口之间有连接关系,通过所述路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;
步骤S5024,若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;
步骤S5025,将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
将仿真任务输入通过上述仿真模型生成方法生成的仿真模型中,包括将所述仿真任务解析成仿真参数,将仿真参数输入所述仿真模型中;或者,将所述仿真任务输入所述仿真模型 中,仿真模型通过其自身的仿真任务的执行控制指令解析所述仿真任务得到仿真参数。
仿真模型在步骤S5021中获取仿真任务的参数:数据发送端口、数据接收端口和待发送数据,其中待发送数据包括待发送数据的大小,所述待发送数据的大小以数据发送端口以及数据接收端口单次可以传输的数据大小为标准,如仿真任务中端口1向端口2发送2个数据,表示端口1需要向端口2连续发送两次数据。
在得到数据发送端口以及数据接收端口之后,首先通过仿真模型的连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系,其中所述连接关系包括间接连接关系,即通过数据发送端口经过中转端口能够达到所述数据接收端口;若没有连接关系,则输出提示信息,提示仿真任务无法执行;若所述数据发送端口和数据接收端口之间有连接关系,则进一步通过仿真模型的路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;在将所述待发送数据从所述发送端口发送至所述数据接收端口之后,将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。所述忙状态的持续时间由单次数据传输时延以及数据的大小确定。在达到持续时间之后,将路径状态设置为闲状态以使得仿真任务中的其他数据传输任务可以使用所述路径。若所述路径状态为忙状态,则等待,此时可以每个时钟周期确定一次路径的状态,直至路径状态为空闲状态为止。
可选的,当所述连接关系为间接连接关系时,所述数据发送端口和数据接收端口之间包括数据中转端口;所述路径状态为空闲状态包括:所述发送端口、中转端口以及数据接口端口之间的路径均为空闲状态。所述路径状态为忙状态包括:所述发送端口、中转端口以及数据接口端口之间的路径中至少有一个的路径状态为忙状态。
可选的,所述将所述路径状态设置为忙状态,包括:将所述发送端口、中转端口以及数据接口端口之间的路径均设置为忙状态。
进一步的,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。其中,所述待发送数据为下一时钟周期中的待发送数据,如果没有未发送的待发送数据,则表示仿真任务中已经没有待发送的数据,则结束所述仿真任务,如果有,则继续上述步骤S5021-S5025直至没有未发送的待发送数据为止。
以下通过一个示例说明上述片上网络的模型生成方法以及片上网络的仿真方法。
图6a为片上网络的一个示例的示意图。图6a中的片上网络是一条带6个输入输出端口的共享总线,各端口顺序与总线相连,即P
1到P
6顺序排列;总线位宽保证每个时钟能传输一个数据;只有相邻端口间有物理连接;各端口之间相连的物理连接有两条,一条从左到右,一条从右到左,即两个端口之间可以同时实现收数据和发数据;总线的各段能分段并行传输数据,即:在任意时刻,若两个端口之间有通信,例如P
2端口发送数据给P
3端口,那么P
2到P
3的方向的总线段处于忙状态,P
2到P
3的方向的总线段将不能被其他端口再申请用于传输数据,但是,在P
2到P
3之外的总线段,还是可以申请使用,例如P
3到P
2方向的总线段,可以同时传输数据。但是由于只有相邻端口间有物理连接,所以端口申请路径时,不能包含有正在使用的总线段,例如P
1到P
3需要经过P
2到P
3的总线段,所以在此刻,P
1到P
3的路径将处于忙状态,需要等待,直到P
2到P
3的数据传输结束,才能打通P
1到P
3的路径。
如上述片上网络的模型生成方法,首先生成连接特性表,根据上述所描述的片上网络的特性:6个端口;只有相邻端口间有物理连接;各端口之间相连的物理连接有两条,一条从左到右,一条从右到左。则建立一个包括12个表头以及36个表项的连接特性表,其中包括6个横向的表头和6个纵向的表头,分别表示端口P
1-P
6,纵向的表头在横向上与横向的表头在纵向上的交点的表项的值表示两个表头所代表的端口之间是否有连接。根据上述片上网络的特性生成连接特性表如图6b所示,P
1仅和P
2之间有物理连接,P
2和P
1及P
3之间有物理连接,依次类推。两个端口之间的传输时延为2个时钟,则将对应的表项的值设置为2。将没有直接物理连接的端口之间的路径所对应的表项的值设置为0。
生成连接特性表之后,继续生成路径状态表。在未执行仿真任务时,所述片上网络的模型中的路径状态表为初始状态。同样的,建立一个包括12个表头以及36个表项的路径状态表,其中包括6个横向的表头和6个纵向的表头,分别表示端口P
1-P
6,纵向的表头在横向上与横向的表头在纵向上的交点的表项的值表示两个表头所代表的端口之间的路径的状态。所述路径状态表的初始状态可以是每条路径均为空闲状态,如将每个表项的值均设置为“0”;或者,还可以将没有物理连接的两个端口所对应的表项的值设置为忙状态,如将其设置为“1”。如图6c所示,为将每个表项的值均设置为“0”得到初始状态的路径状态表。
由此,得到了用于表示片上网络的模型,所述模型包括连接特性表以及路径状态表。
之后,可以使用上述片上网络的模型执行仿真任务。
示例性的,待执行的仿真任务如下:
1.第1个时钟,P
2申请发送2个数据至P
3;
2.第2个时钟,P
4申请发送2个数据至P
5;
3.第3个时钟,P
1申请发送2个数据至P
3;
4.第4个时钟,P
6申请发送2个数据至P
4。
所述片上网络的仿真方法如下:
对上述仿真任务解析得到每个时钟中的数据发送端口、数据接口端口以及发送的数据量。
1.在第1个时钟,P
2申请发送2个数据至P
3:
查找路径状态表,得到S
23=0,表示从P
2到P
3的物理路径为空闲,可以使用,则设置S
23=1,将第1个数据送入总线,开始传输数据。此时路径状态表的变化如图7a所示;此时的数据传输示意图如图7b所示。
2.在第2个时钟,P4申请发送2个数据至P
5:
查找路径状态表,得到S
45=0,表示从P
4到P
5的物理路径为空闲,可以使用,则设置S
45=1,将第1个数据送入总线,开始传输数据;此时,P
2到P
3的数据传输还没有完成,第1个数据正在传输的过程中,第2个数据送入总线,所以S
23没有变化。此时路径状态表的变化如图7c所示;此时的数据传输示意图如图7d所示。
3.第3个时钟,P
1申请发送2个数据到P
3:
对于P
1到P
3的路径,由两段路径组成:P
1到P
2的路径和P
2到P
3的路径。
查找路径状态表,得到S
12=0,但是S
23=1,表示从P
2到P
3的路径处于忙状态,不可使用,所以需要等待;由于P2到P3的数据传输和P
4到P
5的数据传输都还没有完成,所以路径状态表和传输示意图都没有变化。
4.第4个时钟,P
6申请发送2个数据到P
4;
对于P
6到P
4的路径,由两段路径组成:P
6到P
5的路径和P
5到P
4的路径。
查找路径状态表,得到S
65=0,且S
54=0,表示从P
6到P
4的路径均为空闲,可使用,则将两段路径的状态都置1,即S
65=1,且S
54=1;由于此时P
2到P
3的数据传输已经完成,所以P
1到P
3的数据传输申请成功,将P
1到P
3的两段路径的状态都置1,即S
12=1,且S
23=1;此时P
4到P
5的数据传输都还没有完成,保持原状。此时路径状态表的变化如图7e所示;此时的数据传输示意图如图7f所示。
5.第5个时钟,数据传输中;
无新数据传输申请,但是原来的传输中,P
4到P
5的数据传输结束,其路径状态信息清0,即设置S
45=0;其他数据传输正在进行中,保持不变。此时路径状态表的变化如图7g所示;此时的数据传输示意图如图7h所示。
6.第6个时钟到第8个时钟,数据一直都处于传输中,路径状态没有更新,传输示意图也没有变化;
7.第9个时钟,数据传输结束。
P
1到P
3的数据传输和P
6到P
4的数据传输都完成,此时将P
1到P
3的路径状态清0,设置S
12=0,S
23=0;将将P
6到P
4的路径状态清0,设置S
65=0,S
54=0。此时路径状态表和传输示意图将恢复初始状态。此时路径状态表的变化如图7i所示;此时的数据传输示意图如图7j所示。
通过上述示例可以看出,使用本公开实施例中的片上网络的模型生成方法所生成的模型能精确的仿真片上网络带来的数据延时性能,从而仿真结果能作为芯片性能的有效参数,且能作为数据路径选择的有效依据;避免了为了模拟电路行为而编写的复杂的程序,仿真程序运行大大降低了仿真时间,只需要通过简单的查找和更新表格,做简单的计算即可以实现片上网络的精确模拟;根据两个表格,就能够实时规划数据路由,以达到优化程序,提高效率的目的;仿真模型具有很高的通用性,可以用于任意种类的片上网络,不同的片上网络只需要修改表格对应的内容即可。
本公开实施例该提供一种片上网络的仿真模型生成装置,包括:连接特性表生成模块,用于生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;路径状态表生成模块,用于生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;模型生成模块,用于根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
本公开实施例该提供一种片上网络的仿真装置,包括:任务接收模块,用于接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;任务输入模块,用于将所述仿真任务输入通过所述的片上网络的仿真模型生成方法所生成的仿真模型中,使 得所述仿真模型执行如下步骤:获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;通过所述连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系;若所述数据发送端口和数据接收端口之间有连接关系,通过所述路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
本公开实施例还提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现实施例中的任一所述片上网络的仿真模型生成方法。
本公开实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述实施例中的任一所述片上网络的仿真模型生成方法。
本公开实施例还提供一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述实施例中的任一所述片上网络的仿真模型生成方法。
本公开附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、 或上述内容的任何合适组合。
Claims (10)
- 一种片上网络的仿真模型生成方法,其特征在于,包括:生成连接特性表,所述连接特性表用于表示端口之间的连接关系以及有连接关系的端口之间的数据传输时延,所述端口位于片上网络上;生成路径状态表,所述路径状态表用于记录所述端口之间的路径的状态;根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
- 如权利要求1所述的方法,其特征在于:所述连接特征表包括N*N个表项和2N个表头,其中,所述2N个表头中包括N个横向的表头和N个纵向表头,分别表示所述片上网络的N个端口;所述N*N个表项用于表示所述N个端口两两之间的连接关系以及数据传输时延。
- 如权利要求2所述的方法,其特征在于,包括:当所述表项的值为第一预设值时,所述表项所对应的两个端口之间无连接关系;或者,当所述表项的值不为第一预设值时,所述表项所对应的两个端口之间具有连接关系,并且所述两个端口之间的传输时延为所述表项的值。
- 如权利要求1-3任一项所述的方法,其特征在于:所述路径状态表包括N*N个表项和2N个表头,其中所述2N个表头中包括N个横向的表头和N个纵向表头,分别表示所述片上网络的N个端口;所述N*N个表项用于表示所述N个端口两两之间的连接状态。
- 如权利要求1-4中任一项所述的方法,其特征在于,所述连接状态包括:忙状态或闲状态。
- 如权利要求1-5中一项所述的方法,其特征在于,所述根据所述连接特性表和所述路径状态表生成所述片上网络的仿真模型,包括:根据仿真任务的参数读取连接特性表和所述路径状态表中的表项的值;根据所述读取的所述连接特性表和所述路径状态表生成所述片上网络的仿真模型。
- 一种片上网络的仿真方法,其特征在于,包括:接收片上网络仿真任务,其中所述仿真任务包括片上网络的端口之间的数据传输任务;将所述仿真任务输入通过权利要求1-6中任一项所述的片上网络的仿真模型生成方法所 生成的仿真模型中,使得所述仿真模型执行如下步骤:获取所述数据传输任务中的数据发送端口、数据接收端口和待发送数据;通过所述连接特性表查询所述数据发送端口和数据接收端口之间是否有连接关系;若所述数据发送端口和数据接收端口之间有连接关系,通过所述路径状态表查询所述数据发送端口和数据接收端口之间的路径状态;若所述路径状态为空闲状态,将所述待发送数据从所述发送端口发送至所述数据接收端口;将所述路径状态设置为忙状态,并根据所述连接特性表中的数据传输时延确定忙状态的持续时间。
- 如权利要求7所述的片上网络的仿真方法,其特征在于,所述数据发送端口和数据接收端口之间包括数据中转端口,所述路径状态为空闲状态包括:所述发送端口、中转端口以及数据接口端口之间的路径均为空闲状态。
- 如权利要求8所述的片上网络的仿真方法,其特征在于,所述将所述路径状态设置为忙状态,包括:将所述发送端口、中转端口以及数据接口端口之间的路径均设置为忙状态。
- 如权利要求7所述的片上网络的仿真方法,其特征在于,所述方法还包括:当所述待发送数据发送完毕,查询是否还有未发送的待发送数据;如果没有,结束所述仿真任务;如果有,则继续执行上述发送待发送数据的过程。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/081359 WO2022193183A1 (zh) | 2021-03-17 | 2021-03-17 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116670660A true CN116670660A (zh) | 2023-08-29 |
Family
ID=83321823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180087429.7A Pending CN116670660A (zh) | 2021-03-17 | 2021-03-17 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116670660A (zh) |
WO (1) | WO2022193183A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460128B (zh) * | 2022-11-09 | 2023-07-07 | 之江实验室 | 一种面向多芯粒组合芯片的片上网络仿真系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191774A1 (en) * | 2010-02-01 | 2011-08-04 | Yar-Sun Hsu | Noc-centric system exploration platform and parallel application communication mechanism description format used by the same |
US20190102669A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Global and local time-step determination schemes for neural networks |
CN108390820B (zh) * | 2018-04-13 | 2021-09-14 | 华为技术有限公司 | 负载均衡的方法、设备及系统 |
CN112329327B (zh) * | 2020-11-26 | 2022-06-07 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及系统 |
-
2021
- 2021-03-17 CN CN202180087429.7A patent/CN116670660A/zh active Pending
- 2021-03-17 WO PCT/CN2021/081359 patent/WO2022193183A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022193183A1 (zh) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111247533A (zh) | 用于神经网络加速的机器学习运行时库 | |
CN111736966B (zh) | 基于多板fpga异构系统的任务部署方法及设备 | |
CN113656227A (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
US8768680B2 (en) | Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores | |
CN110321458B (zh) | 一种基于控制流图的数据流分析方法及装置 | |
CN116670660A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
US9619598B2 (en) | Input space reduction for verification test set generation | |
CN111435352A (zh) | 一种分布式实时计算方法、装置、系统及其存储介质 | |
US9135376B2 (en) | Input space reduction for verification test set generation | |
EP4328748A1 (en) | Data processing method and apparatus, computer device, computer-readable storage medium, and computer program product | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN115114755A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112383443B (zh) | 运行于rdma通信环境的并行应用通信性能预测方法 | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
Haggarty et al. | Distributed response time analysis of GSPN models with MapReduce | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
JP7096103B2 (ja) | モデル検査用スクリプト変換プログラム、モデル検査プログラム、モデル検査用スクリプト変換装置及びモデル検査装置 | |
CN114429051B (zh) | 数据流芯片的建模方法、装置、设备及介质 | |
CN113806990B (zh) | 一种氮气弹簧仿真分析方法及系统 | |
US11727178B2 (en) | Under test pin location driven simultaneous signal grouping and pin assignment | |
CN113449477B (zh) | 数字电路的连接方法、装置、电子设备和存储介质 | |
CN116320052B (zh) | 用于通用验证方法学验证平台的网络报文自动生成方法 | |
CN115204086A (zh) | 片上网络仿真模型及动态路径规划方法、装置、多核芯片 | |
Navaridas et al. | Realistic evaluation of interconnection networks using synthetic traffic |
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 |