System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种DPU引擎的多线程命令执行的验证系统和方法技术方案_技高网

一种DPU引擎的多线程命令执行的验证系统和方法技术方案

技术编号:41830496 阅读:10 留言:0更新日期:2024-06-27 18:15
本发明专利技术公开了一种DPU引擎的多线程命令执行的验证系统和方法,本发明专利技术属于芯片验证技术领域,本发明专利技术的验证系统包括:待测DPU引擎,接收多条TCP连接的命令并进行多线程执行,同时所述待测DPU引擎向主机发送数据并接收主机返回的数据;参考模型,采集输入到所述待测DPU引擎的多条TCP连接的命令,同时采集主机向所述待测DPU引擎返回的数据,模拟所述待测DPU引擎的行为输出预期结果;以及比较模块,将所述待测DPU引擎的命令执行结果与所述参考模型的预期结果进行比较,实现所述待测DPU引擎的功能验证。本发明专利技术采用多线程架构实现快速准确的DPU引擎功能验证,并且可以快速有效覆盖DPU引擎涉及的测试点。

【技术实现步骤摘要】

本专利技术属于芯片验证,具体涉及一种dpu引擎的多线程命令执行的验证系统和方法。


技术介绍

1、在dpu(data processing unit,数据处理器)中为了提高性能通常会使用多线程的架构,通过发送命令进行数据的计算和处理,因此dpu多线程的命令执行验证时非常重要的,这关乎dpu的性能及功能。

2、对于多线程的命令验证,在cpu上比较常见,通常是通过端到端的检查验证,即从输入端发送多条命令,然后在接收端对输出的返回结果进行识别及检查。例如,输入端发送20条命令,来自于20个不同的应用,命令是计算多个数相乘,通常设计会使用流水线设计,将多个数相乘分为多次运算,然后每一轮计算20个命令中的一次运算,最终返回结果时,20个命令的结果返回时间相差不大,但是先后顺序不一定是和输入顺序一致,所以一般情况会在输入的时候携带一个id,区分是20个应用中的哪一个,因此在验证时首先就需要对输出的结果的id进行识别,然后再对结果的内容进行检查。这类方法只适用于输出结果完全依赖于输入,且各个输入之间没有关联。这类方法同时也只能检查一个最终结果,无法对中间状态的执行结果进行检查,具有一定的错误风险,例如某种情况下,第一次运算出错,第二次运算也是错误的,但是两次错误结果运算后刚好得出正确的结果。

3、dpu引擎的验证与cpu类似,但又不完全一样,通常情况下,dpu引擎都是对网络协议进行卸载处理,以tcp协议的卸载处理为例,tcp是建立连接的双方可以互相发送和接收数据,数据是以字节流的方式进行传输的,并且tcp是支持重传、乱序接收等功能的,因此每一条tcp连接就有各自的上下文,即记录双方的发送点、接收点等信息。因此验证环境就需要给每一条连接都维护一份上下文信息并且和连接号绑定,并且上下文信息可以由一个线程变换到另外一个线程上。因此,现有的cpu多线程验证技术不适用于dpu引擎验证。


技术实现思路

1、为了实现dpu引擎的多线程验证,本专利技术提出了一种dpu引擎的多线程命令执行的验证系统和方法,本专利技术提出的验证方法能够准确验证dpu引擎功能且能够快速覆盖dpu引擎的各个测试点。

2、本专利技术通过下述技术方案实现:

3、一种dpu引擎的多线程命令执行的验证系统,所述验证系统包括:

4、待测dpu引擎,所述待测dpu引擎接收多条tcp连接的命令并进行多线程执行,同时所述待测dpu引擎向主机发送数据并接收主机返回的数据;其中,所述主机中分配有用于存储多条tcp连接的上下文信息的存储空间;且同一个tcp连接号对应的命令只能进同一个线程;

5、参考模型,所述参考模型采集输入到所述待测dpu引擎的多条tcp连接的命令,同时采集主机向所述待测dpu引擎返回的数据,模拟所述待测dpu引擎的行为输出预期结果;

6、以及比较模块,所述比较模块将所述待测dpu引擎的命令执行结果与所述参考模型的预期结果进行比较,实现所述待测dpu引擎的功能验证。

7、现有的cpu多线程验证方法不适用于dpu引擎的多线程验证,针对此,本专利技术提出了一种针对dpu引擎的多线程命令执行的验证系统,该系统采用多线程架构实现快速准确的dpu引擎功能验证,并且可以快速有效覆盖dpu引擎涉及的测试点。

8、作为优选实施方式,本专利技术的待测dpu引擎设置有n个线程,每个线程有自己的上下文,线程数n的取值根据所述待测dpu引擎数来配置。

9、作为优选实施方式,本专利技术的n取值为32。

10、作为优选实施方式,本专利技术的待测dpu引擎根据tcp连接的命令,既能够发送读命令至主机并接收主机返回的tcp连接的上下文信息,还能够发送写命令以及相应的数据至主机进行存储。

11、作为优选实施方式,本专利技术的待测dpu引擎还能够接收主机返回的写结果。

12、作为优选实施方式,本专利技术的参考模型从所述待测dpu引擎采集各线程命令内容用于模拟所述待测dpu引擎的行为,并采集从主机返回给所述待测dpu引擎的数据用于预期所述dpu引擎输出结果。

13、另一方面,本专利技术还提出了一种基于上述验证系统的验证方法,所述验证方法包括:

14、初始化需要建立tcp连接的连接号对应的上下文信息;

15、发送tcp连接号对应的命令;

16、将发送给所述待测dpu引擎的命令同步采集到所述参考模型中用于模拟待测dpu引擎的行为;

17、采集所述待测dpu引擎到主机的读写操作用于比较;

18、将主机返回给所述待测dpu引擎的数据同步采集到所述参考模型中用于预期输出给发送命令端的结果;

19、采集所述待测dpu引擎输出给发送命令端的结果;

20、比较所述待测dpu引擎输出的结果与所述参考模型预期的结果。

21、作为优选实施方式,本专利技术的上下文信息初始化过程具体包括:

22、确定需要测试的连接号个数,所述连接号个数与待测dpu引擎的线程数相关;

23、根据确定的连接号个数生成不同的连接号,并生成各个连接号对应的上下文信息。

24、作为优选实施方式,本专利技术的上下文信息生成过程具体为:给每个tcp连接号对应的上下文分配一块独立的空间,将空间的地址与连接号进行绑定,将上下文信息写入到分配的空间中。

25、作为优选实施方式,本专利技术的验证方法能够实现以下功能验证:

26、基于线程号发送相同或者不同的命令,用于测试各个命令、各个线程之间是否会相互影响;

27、和/或,将命令划分进不同的线程,用于测试所述待测dpu引擎命令进入线程的功能是否正确;

28、和/或,利用线程号作为索引启动命令的对应执行过程,同时把线程中的第一个命令通过线程号启动,预期所述待测dpu引擎的行为,主机返回所述待测dpu引擎的访问结果通过所述待测dpu引擎访问操作实现,而参考模型中的行为会和所述待测dpu引擎进行同步,因此通过检查所述待测dpu引擎对主机的读写操作以及最终的返回结果内容以及更新上下文的内容来测试所述待测dpu引擎的命令执行是否正确;

29、和/或,对所述待测dpu引擎的寄存器状态进行检查。

30、本专利技术与现有技术相比,具有如下的优点和有益效果:

31、本专利技术提出的验证系统和方法能够实现dpu引擎的多线程命令执行,通过利用等待主机返回的时间段执行其他线程命令,从而提高了验证效率,能够快速有效覆盖dpu引擎涉及的测试点。

本文档来自技高网...

【技术保护点】

1.一种DPU引擎的多线程命令执行的验证系统,其特征在于,所述验证系统包括:

2.根据权利要求1所述的一种DPU引擎的多线程命令执行的验证系统,其特征在于,所述待测DPU引擎设置有n个线程,每个线程有自己的上下文,线程数n的取值根据所述待测DPU引擎数来配置。

3.根据权利要求2所述的一种DPU引擎的多线程命令执行的验证系统,其特征在于,n取值为32。

4.根据权利要求1所述的一种DPU引擎的多线程命令执行的验证系统,其特征在于,所述待测DPU引擎根据TCP连接的命令,既能够发送读命令至主机并接收主机返回的TCP连接的上下文信息,还能够发送写命令以及相应的数据至主机进行存储。

5.根据权利要求4所述的一种DPU引擎的多线程命令执行的验证系统,其特征在于,所述待测DPU引擎还能够接收主机返回的写结果。

6.根据权利要求1-5任一项所述的一种DPU引擎的多线程命令执行的验证系统和方法,其特征在于,所述参考模型从所述待测DPU引擎采集各线程命令内容用于模拟所述待测DPU引擎的行为,并采集从主机返回给所述待测DPU引擎的数据用于预期所述DPU引擎输出结果。

7.基于权利要求1-6任一项所述的验证系统的验证方法,其特征在于,所述验证方法包括:

8.根据权利要求7所述的验证方法,其特征在于,上下文信息初始化过程具体包括:

9.根据权利要求8所述的验证方法,其特征在于,上下文信息生成过程具体为:给每个TCP连接号对应的上下文分配一块独立的空间,将空间的地址与连接号进行绑定,将上下文信息写入到分配的空间中。

10.根据权利要求7所述的验证方法,其特征在于,所述验证方法能够实现以下功能验证:

...

【技术特征摘要】

1.一种dpu引擎的多线程命令执行的验证系统,其特征在于,所述验证系统包括:

2.根据权利要求1所述的一种dpu引擎的多线程命令执行的验证系统,其特征在于,所述待测dpu引擎设置有n个线程,每个线程有自己的上下文,线程数n的取值根据所述待测dpu引擎数来配置。

3.根据权利要求2所述的一种dpu引擎的多线程命令执行的验证系统,其特征在于,n取值为32。

4.根据权利要求1所述的一种dpu引擎的多线程命令执行的验证系统,其特征在于,所述待测dpu引擎根据tcp连接的命令,既能够发送读命令至主机并接收主机返回的tcp连接的上下文信息,还能够发送写命令以及相应的数据至主机进行存储。

5.根据权利要求4所述的一种dpu引擎的多线程命令执行的验证系统,其特征在于,所述待测dpu引擎还能够接收主机返回的写结...

【专利技术属性】
技术研发人员:罗超王万财杨成勇吴小林
申请(专利权)人:成都北中网芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1