本发明涉及存储,尤其涉及一种基于nvme控制器的dut验证装置、方法、存储介质及设备。
背景技术:
1、nvme(non-volatile memory express)是一种ssd(固态硬盘)设备传输协议规范,它之所以会被推出,主要原因在于sata(serial ata,串口硬盘)时代ahci(advanced hostcontroller interface,高级主机控制器接口)协议不能充分释放ssd的性能。比如目前市面上的sata接口固态硬盘,虽然在颗粒和主控上是完全可以达到更高的速度,但是由于受到sata接口的限制,最高速度就只能够达到500mb/s左右,极大地浪费了固态硬盘硬件的性能。当拥有了nvme之后,它的速度瞬间就得到了成倍的提升,普遍达到了1000mb/s以上,有时甚至达到3000mb/s以上。当前nvme主要针对的是最新的pcie(一种高速串行计算机扩展总线标准)通道接口,目的是充分利用pcie通道,以达到高速度、低延迟的效果,现在说的pcie ssd,确切的说是nvme over pcie ssd。因此在高速存储和硬件加速等芯片开发的过程中,会越来越多地遇到针对基于pcie协议的nvme控制器的验证场景,如何高效准确地验证它们也成了验证工程师的热门话题。
2、图1为根据现有技术提供的传统nvme控制器设计的验证环境框架结构示意图。如图1所示,传统项目中的做法往往是验证工程师利用vip(验证ip,一个用uvm等标准方法实现验证的非常有用的组件)充当主机端(host),通过pcie接口向设计工程师所开发的nvme控制器(dut)发送符合nvme协议的命令,然后在nvme控制器一侧手动开发一套基于nvme协议的比对检查器(checker),用来收集自研的nvme控制器针对vip发送的命令做出的响应,并根据验证工程师对于nvme标准协议的理解进行协议一致性检查,从而验证dut的正确性。
3、该传统方法存在两个主要弊端:一是验证工程师需要独立开发一套基于nvme协议的比对检查器,这项工作非常的耗时费力,需要验证工程师对于nvme协议及其应用层有非常深刻的了解;二是比对检查器的开发完全基于验证工程师本人对于nvme协议的理解,一旦这种理解出现偏差或者错误,所造成的验证潜在问题是非常致命的。
技术实现思路
1、有鉴于此,本发明的目的在于提出一种基于nvme控制器的dut验证装置、方法、存储介质及设备,用以解决现有技术中针对基于pcie协议的nvme控制器的验证需要依赖于验证工程师对协议的理解,容易导致验证工作效率低以及存在潜在风险的问题。
2、基于上述目的,本发明提供了一种基于nvme控制器的dut验证装置,包括:
3、主机端,主机端配置用于发送符合nvme协议的命令;
4、nvme控制器端dut,nvme控制器端dut通过第一pcie通道与主机端连接,并配置用于接收及响应命令;
5、nvme控制器端vip,nvme控制器端vip通过第二pcie通道与主机端连接,并配置用于接收及响应命令;以及
6、验证环境后台,验证环境后台配置用于比对nvme控制器端dut和nvme控制器端vip的接收及响应命令的操作是否分别相同,并基于比对结果得到nvme控制器端dut的验证结果。
7、在一些实施例中,nvme控制器端dut进一步配置用于将内部存储单元中的第一待发送数据搬运至第一队列,第一待发送数据为基于nvme协议进行重组并重组完成的数据;
8、nvme控制器端vip进一步配置用于利用内部端口将收集到的第二待发送数据存入第二队列;
9、验证环境后台进一步配置用于将第一队列中的第一待发送数据与第二队列中的第二待发送数据进行比对,得到第一比对结果,并基于第一比对结果验证nvme控制器端dut接收命令的正确性。
10、在一些实施例中,nvme控制器端dut与从存储单元连接,从存储单元配置用于存储nvme控制器端dut读写的数据,nvme控制器端dut进一步配置用于获取读写的数据,以得到从存储单元中的第一数据分布情况;
11、nvme控制器端vip进一步配置用于访问连接的固态硬盘,以得到第二数据分布情况;
12、验证环境后台进一步配置用于将第一数据分布情况与第二数据分布情况进行比对,得到第二比对结果,并基于第二比对结果验证nvme控制器端dut响应命令的正确性。
13、在一些实施例中,nvme控制器端dut进一步配置用于发出第一返回数据,并根据nvme协议对第一返回数据进行重组,并将重组完成的第一返回数据存入第三队列;
14、nvme控制器端vip进一步配置用于利用内部端口将第二返回数据存入第四队列;
15、验证环境后台进一步配置用于将第三队列中的重组完成的第一返回数据与第四队列中的第二返回数据进行比对,得到第三比对结果,并基于第三比对结果验证nvme控制器端dut对命令响应完成后生成返回数据的正确性。
16、在一些实施例中,第一pcie通道包括pcie rc vip和第一pcie ep vip,第二pcie通道包括pcie rc vip和第二pcie ep vip;
17、主机端与pcie rc vip连接,nvme控制器端dut与第一pcie ep vip连接,nvme控制器端vip与第二pcie ep vip连接。
18、在一些实施例中,nvme控制器端dut与第一pcie ep vip通过转化函数进行数据传送。
19、在一些实施例中,转化函数为pcie事务层包与片上总线协议在交易操作过程中互相转化的函数。
20、本发明的另一方面,还提供了一种基于nvme控制器的dut验证方法,包括以下步骤:
21、通过主机端发送符合nvme协议的命令;
22、通过nvme控制器端dut接收及响应命令,nvme控制器端dut通过第一pcie通道与主机端连接;
23、通过nvme控制器端vip接收及响应命令,nvme控制器端vip通过第二pcie通道与主机端连接;
24、通过验证环境后台比对nvme控制器端dut和nvme控制器端vip的接收及响应命令的操作是否分别相同,并基于比对结果得到nvme控制器端dut的验证结果。
25、本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。
26、本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。
27、本发明至少具有以下有益技术效果:
28、本发明的基于nvme控制器的dut验证装置,通过使用nvme控制器端vip充当nvme控制器端dut的镜像,而后利用vip本身方便获取、收集数据的优势和自带的nvme协议检查功能的完备性,比对nvme控制器端vip和dut对于主机端命令的响应及读出写入数据的信息,从而验证nvme控制器端dut的正确性;该方法在根本上杜绝了验证工程师由于自身对于协议理解偏差所造成的验证错误,同时实施起来的工作量相较从前的验证方法大幅减小,使得验证工程师可以不用花大量时间研读协议文档保证理解的完备正确性,而是更着重于dut本身功能的验证,从而使得整个nvme控制器的验证更加高效和完备;进而达到了低人工投入、高效率高准确率验证nvme控制器的效果。