一种芯片原型验证方法、装置、设备及介质与流程

文档序号:37281054发布日期:2024-03-12 21:20阅读:33来源:国知局
一种芯片原型验证方法、装置、设备及介质与流程

本发明涉及计算机,特别涉及一种芯片原型验证方法、装置、设备及介质。


背景技术:

1、当前,现有传统的nvme(nvm express,非易失性内存主机控制器接口规范)接口芯片的fpga(field programmable gate array,现场可编程逻辑门阵列)原型验证方式基本为:利用linux标准驱动架构,app(application,应用程序)发送nvme命令,命令经过系统调用之后到达虚拟文件系统并传送到具体的文件系统,文件系统处理之后送到linux块驱动标准架构bio(block-io,块io)层和request(请求)层,bio层和request层对该io(输入/输出,input/output)进行适当的优化处理之后,发送到linux nvme驱动,之后驱动配合硬件进行io命令的处理,具体如图1所示,为一种传统芯片原型验证方法流程示意图。

2、但是上述验证方法,具有以下缺点:第一,在进行验证时,由于io数据要经过文件系统、bio框架,然后送到驱动以及硬件,经过这样的路径之后,原始的io可能会被拆解合并优化,然后发送到硬件,得出来的性能可能是经过优化之后的性能,而不是io原本的性能;第二,学习成本较高,标准linux设备驱动涉及的内容较多且复杂,fpga原型验证人员需要学习包括庞大而复杂的linux bio架构及其代码,了解文件系统等内容,这无形之中增加了验证人员的学习成本,拉长了验证周期;第三,调试难度增加,标准linux设备驱动涉及的内容较多且复杂,可能在各个环节出现问题,这直接导致定位问题难度增加,验证周期延长;第四,调试耗时低效,调试过程中修改驱动代码是常见操作,如果使用linux标准驱动的话,修改驱动代码就意味着重新编译系统,重启电脑等一系列耗时操作,无疑会降低调试效率,延长芯片fpga原型验证周期。

3、综上所述,如何准确验证芯片性能且提高效率是当前亟待解决的问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种芯片原型验证方法、装置、设备及介质,能够准确验证芯片性能且提高效率,其具体方案如下:

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、本技术的有益效果为,本技术通过所述用户态驱动子系统获取应用程序发送的调用命令,并基于所述调用命令生成逻辑设备接口规范形式的目标验证命令,将所述验证指令发送至所述内核态驱动子系统;所述调用指令包括验证需求信息;通过所述内核态驱动子系统基于目标直接内存访问资源将所述验证指令发送至目标芯片,并基于所述目标直接内存访问资源获取所述目标芯片返回的处理结果,并将获取到的所述处理结果发送至所述用户态驱动子系统;所述处理结果为所述目标芯片处理所述验证指令得到并发送至所述内核态驱动子系统的结果;所述目标直接内存访问资源为预先为所述目标芯片和所述内核态驱动子系统之间传输数据申请的资源;通过所述用户态驱动子系统对接收到的所述处理结果进行解析得到验证结果,并将所述验证结果发送至所述应用程序进行展示,以便芯片原型验证人员分析所述验证结果。由此可见,本技术构建了包括用户态驱动子系统和内核态驱动子系统的芯片验证系统,系统中不存在经过文件系统、bio框架,然后送到驱动以及硬件这一路径,不会对命令进行优化,能够准确验证芯片性能;本技术用户态驱动子系统和内核态驱动子系统,用户不必学习包括庞大而复杂的linux bio架构及其代码,且不必在其错误时进行定位和修改,减少用户学习成本,降低修改难度,提高效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1