本技术涉及计算机,尤其涉及一种性能仿真系统、方法、装置、电子设备及存储介质。
背景技术:
1、目前,片上系统(system on chip,简称:soc)在开发过程中,为了确保设计的soc性能能够满足用户要求,将在对soc进行寄存器转换级电路(事务级建模,简称:rtl)设计之前,基于目前的soc开发数据,进行soc的性能仿真。
2、在相关技术中,通常是利用事务级建模(transaction level modeling,简称:tlm)级性能模型,通过与外部引擎进行通信,实现对soc的性能仿真。
3、但是,在tlm级性能模型中,当模型与外部引擎的连接关系发生变化时,需要对模型进行大量的代码修改,不仅无法保证代码的安全性,也降低了soc的性能仿真效率。
技术实现思路
1、本技术提供一种性能仿真系统、方法、装置、电子设备及存储介质,以解决相关技术降低了soc的性能仿真效率等缺陷。
2、本技术第一个方面提供一种性能仿真系统,包括:内核模块和继承于所述内核模块的通信模块;
3、所述通信模块用于接收待测片上系统的外部引擎发送的读写请求,将所述读写请求写入所述内核模块的读写请求队列,以基于所述读写请求队列缓存所述读写请求;
4、所述内核模块用于当所述读写请求队列缓存有读写请求时,触发引擎功能执行进程,以基于所述引擎功能执行进程响应所述读写请求,并基于所述引擎功能执行进程调用预设功能通信虚函数,以基于所述预设功能通信虚函数,调用所述通信模块重写的目标通信端口,以通过所述目标通信端口将读写请求的响应数据反馈至所述外部引擎;
5、所述内核模块还用于在所述引擎功能执行进程运行过程中,采集所述引擎功能执行进程的性能仿真指标,以得到待测片上系统的性能仿真结果。
6、在一种可选的实施方式中,所述通信模块,包括:功能通信模块;
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、本技术提供一种性能仿真系统、方法、装置、电子设备及存储介质,该系统包括:内核模块和继承于内核模块的通信模块;通信模块用于接收待测片上系统的外部引擎发送的读写请求,将读写请求写入内核模块的读写请求队列,以基于读写请求队列缓存读写请求;内核模块用于当读写请求队列缓存有读写请求时,触发引擎功能执行进程,以基于引擎功能执行进程响应读写请求,并基于引擎功能执行进程调用预设功能通信虚函数,以基于预设功能通信虚函数,调用通信模块重写的目标通信端口,以通过目标通信端口将读写请求的响应数据反馈至外部引擎;内核模块还用于在引擎功能执行进程运行过程中,采集引擎功能执行进程的性能仿真指标,以得到待测片上系统的性能仿真结果。上述方案提供的系统,通过将负责通信的通信模块和负责仿真计算的内核模块划分为两个独立的模块,内核模块采用虚函数调用的方式调用通信模块重写的目标通信端口,当系统与外部引擎的连接关系发生变化时,只需要修改通信模块的端口配置代码,而无需对内核模块进行代码修改,缩小了代码修改范围,在保证代码的安全性的同时,提高了soc的性能仿真效率。
1.一种性能仿真系统,其特征在于,包括:内核模块和继承于所述内核模块的通信模块;
2.根据权利要求1所述的系统,其特征在于,所述通信模块,包括:功能通信模块;
3.根据权利要求1所述的系统,其特征在于,所述内核模块,包括:功能计算模块和性能计算模块;
4.根据权利要求3所述的系统,其特征在于,所述通信模块,包括:性能通信模块;
5.根据权利要求4所述的系统,其特征在于,所述性能通信模块,具体用于:
6.根据权利要求5所述的系统,其特征在于,所述性能分析模块至少分为延时性能分析模块、带宽性能分析模块、吞吐量性能分析模块和面积占用性能分析模块;
7.一种性能仿真方法,其特征在于,包括:
8.一种性能仿真装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求7所述的方法。
