用基于存储器的通信协议进行仿真设备测试的系统和方法技术方案

技术编号:26596980 阅读:38 留言:0更新日期:2020-12-04 21:18
本公开涉及用基于存储器的通信协议进行仿真设备测试的系统和方法。本发明专利技术实施例提供了一种仿真基于存储器的通信协议以用于测试仿真的设备的方法。该方法包括:将数据存储在主机数据缓冲区的已知位置中,其中,主机数据缓冲区被实现在共享的存储器空间中;执行第一程序的指令以使用数据结构将命令存储在共享的存储器空间中,该数据结构包括索引、ID、和存储器位置;执行第二程序的指令以从主机数据缓冲区读取命令,对共享的存储器空间中的数据进行访问以使用该数据执行由ID定义的操作,其中,该数据的位置由索引指示,并且在操作完成之后将完成指示符发送到第一程序。

【技术实现步骤摘要】
用基于存储器的通信协议进行仿真设备测试的系统和方法
本专利技术的实施例通常涉及设备测试的领域。更具体地,本专利技术的实施例涉及用于在测试期间对被测设备(DUT)进行仿真(simulate)的方法和系统。
技术介绍
通常在出售设备之前对被测设备或装备(DUT)进行测试以确定该设备的性能和一致性。可以使用各种各样的测试用例对设备进行测试,并且将测试用例的结果与预期的输出结果进行比较。当测试用例的结果与预期的输出值不匹配时,执行调试以尝试对由设备导致的任何缺陷进行标识和校正。DUT通常由自动或自动化测试设备(ATE)进行测试,其可以被用于使用软件和自动化来进行复杂的测试,以提高测试效率。DUT可以是旨在被集成到最终产品(例如计算机或其他电子设备)中的存储器设备或组件。在NAND闪存设备开发过程中使用的现有系统级测试软件特别要求在DUT的开发接近完成之后对软件进行测试和调试。即使在紧急情况下,测试程序和软件产品通常也会等待由客户提供的存储设备准备好进行开发和调试,并且因此测试软件开发的生产率会受到设备完成程度的限制,这可能导致错过最终期限以及产品在被彻底测试之前就必须被投放。此外,现有的DUT测试方法只能在给定的时间处修改DUT的某些属性,并且某些变化只能被单独进行测试。所需要的是一种用于执行DUT测试的方法,该方法不依赖于设备开发的完成,而是可以在实际DUT可用之前通过对测试软件进行测试和调试来提高生产开发的效率,并且可以被定制为测试大量变量以增强测试的鲁棒性和可扩展性。
技术实现思路
本专利技术实施例提供了用于执行DUT测试的系统和方法,该系统和方法不依赖于设备的开发完成,可以在实际DUT可用之前通过对在软件中仿真的设备进行测试和调试来提高生产开发的效率,并且可以被定制为测试大量变量以增强测试的鲁棒性和可扩展性。可以根据DUT的规范在API级别处执行测试。通过在开发过程的较早期执行测试和调试,当实际设备可用于测试时,所需的调试和重新设计就更少,从而使设备的交付日期更早。根据一个实施例,公开了一种仿真基于存储器的通信协议以测试仿真的设备的方法。该方法包括:将数据存储在主机数据缓冲区中,其中,主机是测试仪系统,并且其中,主机数据缓冲区被实现在共享的存储器空间中;执行测试仪系统程序的指令以使用数据结构将命令存储在共享的存储器空间中,该数据结构包括索引、ID和存储器位置;执行DUT仿真的指令以从共享的存储器空间读取命令,对共享的存储器空间的块进行访问以执行由ID定义的操作,其中,共享的存储器空间的块的位置由索引指示,以及在操作完成之后将完成指示符发送到测试仪系统程序。根据一些实施例,该ID指示命令包括编程操作,其中,访问是读取块以获得用于写入存储器位置的数据,其中,操作包括执行编程操作,并且该方法还包括DUT仿真响应于命令将数据写入磁盘文件。根据一些实施例,该ID指示命令包括读取操作,其中,访问是存储从存储器位置读取的数据,其中,操作包括执行读取操作,并且该方法还包括执行DUT仿真的指令以访问一个或多个磁盘文件,以读取存储器位置处的数据并且在共享存储器空间的块中存储到主机数据缓冲区。根据一些实施例,测试仪系统程序的指令和DUT仿真的指令作为分开的进程来执行,这些进程由基于Linux的操作系统管理。根据一些实施例,该方法包括验证操作之后的数据以测试仿真的设备在编程操作之后是否有错误。根据一些实施例,验证包括将数据与预期结果进行比较。根据一些实施例,命令被存储在仿真的设备的基址寄存器中。根据一些实施例,测试仪程序的指令和DUT仿真的指令由同一处理器执行。根据一些实施例,共享的存储器空间包括存储器映射的文件,这些存储器映射的文件模拟(emulate)物理存储器。根据一些实施例,存储器映射的文件包括使用mmap映射的文件。根据一些实施例,共享的存储器空间包括存储器映射的文件,这些存储器映射的文件模拟NAND闪存存储器。根据一些实施例,基于存储器的通信协议利用PCIe通信总线协议。根据另一实施例,公开了一种仿真基于存储器的通信协议以测试仿真的设备的编程操作的方法。该方法包括:将数据存储在主机数据缓冲区中,其中,主机数据缓冲区被实现在共享的存储器空间中;执行测试仪系统程序的指令以使用数据结构将编程操作存储在共享的存储器空间中,该数据结构包括第一索引、编程操作的ID、和存储器位置;以及执行DUT仿真的指令以访问共享的存储器空间中的编程操作,从共享的存储器空间中由第一索引定义的块中读取数据,将数据写入存储器位置处的一个或多个磁盘文件,以及在将数据写入存储器位置之后将第一完成指示符发送到测试仪系统程序。该方法还包括:执行测试仪系统程序的指令以使用数据结构将读取操作存储在共享的存储器空间中,该数据结构包括第二索引、指示读取操作的ID、和存储器位置;以及执行DUT仿真的指令以从存储器位置读取数据,根据第二索引将数据写入到主机数据缓冲区的块,以及在将数据写入由第二索引定义的块之后,将第二完成指示符发送到测试仪系统程序。根据一些实施例,该方法包括在读取操作之后验证数据以测试仿真的设备是否有错误,其中,验证包括将数据与预期结果进行比较。根据一些实施例,第一完成指示符被存储在由测试仪系统程序管理的队列中。根据一些实施例,存储器位置引用磁盘的存储器位置,并且其中,存储器位置被实现为磁盘文件以仿真闪存存储器。根据不同的实施例,公开了一种用于仿真被测设备的系统。该系统包括:处理器,执行基于Linux的操作系统,以及存储器,与处理器通信,该存储器提供针对测试仪系统程序和DUT仿真程序的共享的存储器空间。测试仪系统程序和DUT仿真程序的指令由处理器执行,并且处理器执行对基于存储器的通信协议进行仿真以用于测试对被测设备的仿真的方法。该方法包括:将数据存储在主机数据缓冲区中,其中,主机是测试仪系统,并且其中,主机数据缓冲区被实现在共享的存储器空间中,执行测试仪系统程序的指令以使用数据结构将命令存储在共享的存储器空间中,该数据结构包括索引、ID、和存储器位置;以及执行DUT仿真程序的指令以从共享的存储器空间读取命令,对共享的存储器空间的块进行访问以执行由ID定义的操作,其中,共享的存储器空间的块的位置由索引指示,并且在操作完成之后将完成指示符发送到测试仪系统程序。根据一些实施例,该方法包括验证操作之后的数据以测试仿真的设备,并且其中,验证包括在操作之后将数据与预期结果进行比较。根据一些实施例,ID指示命令包括编程操作,其中,操作包括执行编程操作,并且其中,DUT仿真程序响应于命令而将来自共享的存储器空间中由索引所定义的块的数据写入到磁盘文件。根据一些实施例,ID指示命令包括读取操作,其中,操作包括执行读取操作,并且该方法还包括执行DUT仿真程序的指令以访问一个或多个磁盘文件以读取数据,并且将来自磁盘文件的数据写入到主机数据缓冲区中由索引定义的位置处。根据一些实施例,测试仪系统程序的指令和DUT仿真程序的指令作为分开的本文档来自技高网...

【技术保护点】
1.一种仿真基于存储器的通信协议以测试仿真的设备的方法,所述方法包括:/n将数据存储在主机数据缓冲区中,其中,所述主机是测试仪系统,并且其中,所述主机数据缓冲区被实现在共享存储器空间中;/n执行测试仪系统程序的指令以使用数据结构将命令存储在所述共享存储器空间中,所述数据结构包括索引、ID、和存储器位置;/n执行DUT仿真的指令以进行以下步骤:/n从所述共享存储器空间读取所述命令;/n对所述共享存储器空间的块进行访问以执行由所述ID定义的操作,其中,共享存储器空间的所述块的位置由所述索引指示;以及/n在所述操作完成之后将完成指示符发送到所述测试仪系统程序。/n

【技术特征摘要】
20190603 US 16/430,2841.一种仿真基于存储器的通信协议以测试仿真的设备的方法,所述方法包括:
将数据存储在主机数据缓冲区中,其中,所述主机是测试仪系统,并且其中,所述主机数据缓冲区被实现在共享存储器空间中;
执行测试仪系统程序的指令以使用数据结构将命令存储在所述共享存储器空间中,所述数据结构包括索引、ID、和存储器位置;
执行DUT仿真的指令以进行以下步骤:
从所述共享存储器空间读取所述命令;
对所述共享存储器空间的块进行访问以执行由所述ID定义的操作,其中,共享存储器空间的所述块的位置由所述索引指示;以及
在所述操作完成之后将完成指示符发送到所述测试仪系统程序。


2.根据权利要求1所述的方法,其中,所述ID指示所述命令包括编程操作,其中,所述访问是读取所述块以获得用于写入到所述存储器位置的数据,其中,所述操作包括执行所述编程操作,并且所述方法还包括所述DUT仿真响应于所述命令而将所述数据写入到磁盘文件。


3.根据权利要求1所述的方法,其中,所述ID指示所述命令包括读取操作,其中,所述访问是存储从所述存储器位置读取的数据,其中,所述操作包括执行所述读取操作,并且所述方法还包括执行所述DUT仿真的指令以访问一个或多个磁盘文件以读取所述存储器位置处的数据并且在共享存储器空间的所述块中存储到所述主机数据缓冲区。


4.根据权利要求1所述的方法,其中,所述测试仪系统程序的指令和所述DUT仿真的指令作为分开的进程来执行,这些进程由基于Linux的操作系统管理。


5.根据权利要求2所述的方法,还包括:验证所述操作之后的所述数据以测试所述仿真的设备在所述编程操作之后是否有错误。


6.根据权利要求5所述的方法,其中,所述验证包括将所述数据与预期结果进行比较。


7.根据权利要求1所述的方法,其中,所述命令被存储在所述仿真的设备的基址寄存器中。


8.根据权利要求4所述的方法,其中,测试仪程序的指令和所述DUT仿真的指令由同一处理器执行。


9.根据权利要求1所述的方法,其中,所述共享存储器空间包括存储器映射的文件,这些存储器映射的文件模拟物理存储器。


10.根据权利要求9所述的方法,其中,所述存储器映射的文件包括使用mmap映射的文件。


11.根据权利要求1所述的方法,其中,所述共享存储器空间包括存储器映射的文件,这些存储器映射的文件模拟NAND闪存存储器。


12.根据权利要求1所述的方法,其中,所述基于存储器的通信协议利用PCIe通信总线协议。


13.一种仿真基于存储器的通信协议以测试仿真的设备的编程操作的方法,所述方法包括:
将数据存储在主机数据缓冲区中,其中,所述主机数据缓冲区被实现在共享存储器空间中;
执行测试仪系统程序的指令以使用数据结构将编程操作存储在所述共享存储器空间中,所述数据结构包括第一索引、所述编程操作的ID、和存储器位置;
执行DUT仿真的指令以进行以下步骤:
访问所述共享存储器空间中的所述编程操作;
从所述共享存储器空间中由所述第一索引定义的块中读取数据;
将所述数据写入到所述存储器位置处的一个或多个磁盘文件;以及
在将所述数据写入到所述存储器位置之后,将第一完成指示符发送到所述测试仪系统程序;执行所述测试仪系统程序的指令以使用数据结构将读取操作存储在所述共享存储器空间中,所述数据结构包括第二索引、指示所述读取操作的ID、和存储器位置;以及
执行所述DUT仿真的指令以进行以下步骤:
从所述存储器位置读取所述数据;
根据所述第二索引将所述数据写入到所述主机数据缓冲区的块;以及
在将所述数据写入到由所述第二索引定义的所述块之后,将第二完成指示符发送到所述测试仪系统程序。


14.根据权利要求13所述的方法,还包括:在所述读取...

【专利技术属性】
技术研发人员:唐纳德·奥尔根刘洋
申请(专利权)人:爱德万测试公司
类型:发明
国别省市:日本;JP

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

1