Systems and methods for testing virtual functions of a device under test

US12222844B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12222844-B2
Application numberUS-202318113934-A
CountryUS
Kind codeB2
Filing dateFeb 24, 2023
Priority dateNov 30, 2022
Publication dateFeb 11, 2025
Grant dateFeb 11, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments of the present invention can provide an extended NVMe driver that supports exercising virtual functions (and related physical functions) of a DUT without using a VM or hypervisor. In this way, the amount of memory and processing resources used for testing NVMe SSDs can be significantly reduced, and a large number of DUTs (e.g., up to 16 DUTs) can be tested in parallel independently. In other words, each DUT is tested in isolation, as if is the only device being tested, and there are no race conditions or competition for resources between workloads during testing.

First claim

Opening claim text (preview).

What is claimed is: 1. A tester system for testing a plurality of DUT virtual functions of a plurality of DUTs, the tester system comprising: a host computer system comprising a memory, wherein said memory comprises a plurality of test program processes operable to execute concurrently and wherein a respective test program process of said plurality of test program processes is associated with each DUT of said plurality of DUTs and wherein further, each test program process of said plurality of test program processes comprises a plurality of threads for generating workloads for testing DUT virtual functions of an associated DUT; and a plurality of driver instances instantiated within said memory, each driver of said plurality of driver instances operable to enable testing of an associated DUT virtual function on said plurality of DUTs, and wherein further each driver instance comprises a plurality of data structures, a respective data structure for each DUT of said plurality of DUTs, to enable testing of respective DUT virtual functions on said plurality of DUTs and wherein further said plurality of driver instances are operable to simulate a virtualization environment for said plurality of test program processes on said host computer system to test DUT virtual functions of said plurality of DUTs separately, independently and concurrently wherein any given test program process of said plurality of test program processes appears to be a sole user operating on said host computer system at any given time. 2. A tester system as described in claim 1 wherein each data structure of each driver of said plurality of driver instances operates to: locate and enable its associated DUT virtual function on an associated DUT; and present access to said associated DUT virtual function on said associated DUT to the host computer system and is used by a test program process of said host computer system to access and test said associated DUT virtual function on said associated DUT. 3. A tester system as described in claim 2 wherein, for a given test program process, the associated DUT, and a given DUT virtual function of said associated DUT, workloads of said given test program process access and test said given DUT virtual function through a driver, of said plurality of driver instances, associated with said given DUT virtual function. 4. A tester system as described in claim 1 wherein each driver of said plurality of driver instances of said host computer system further comprises: a controller handler; an interrupt handler; a first queue for sending commands to a particular virtual function of a particular DUT; a second queue for receiving responses back from said particular virtual function of said particular DUT; and computer resources for implementing said first queue and said second queue. 5. A tester system as described in claim 1 wherein said plurality of DUTs are solid state drives (SSDs). 6. A tester system as described in claim 1 wherein said plurality of driver instances comprise NVMe device drivers. 7. A tester system as described in claim 1 wherein said plurality of drivers instances of said host computer system simulate functionality of a hypervisor. 8. A tester system as described in claim 7 wherein said host computer system is free of virtual machine software. 9. A tester system for testing a plurality of virtual functions of a first and a second DUT, the tester system comprising: a host computer system comprising a memory, wherein said memory comprises a first and a second test program process operable to execute concurrently and wherein said first test program process is operable to test virtual functions of said first DUT and wherein said second test program process operable to test virtual functions of said second DUT and wherein further said first test program process comprises a first plurality of threads for generating workloads to test said virtual functions of said first DUT and wherein said second test program process comprises a second plurality of threads for generating workloads to test said virtual functions of said second DUT; and a plurality of drivers instantiated within said memory, each driver of said plurality of drivers operable to enable testing of an associated virtual function on said first and second DUTs, and wherein further each driver comprises a first data structure for testing said associated virtual function on said first DUT and a second data structure for testing said associated DUT virtual function on said second DUT and wherein said plurality of drivers are operable to simulate a virtualization environment on said host computer system for said first and second test program processes to test virtual functions of said first and second DUTs separately, independently and concurrently wherein each test program process of said first and second test program processes appears to be a sole test program process operating on said host computer system. 10. A tester system as described in claim 9 wherein said first data structure of each driver of said plurality of drivers operates to: locate and enable an associated virtual function on said first DUT; and present access to said associated virtual function on said first DUT to the host computer system, wherein said first test program process of said host computer system is operable to access and test said associated virtual function on said first DUT. 11. A tester system as described in claim 10 wherein said second data structure of each driver of said plurality of drivers operates to: locate and enable an associated virtual function on said second DUT; and present access to said associated virtual function on said second DUT to the host computer system and is used by said second test program process of said host computer system to access and test said associated virtual function on said second DUT. 12. A tester system as described in claim 9 wherein each driver of said plurality of drivers of said host computer system further comprises: a controller handler; an interrupt handler; a first queue for sending commands to a particular virtual function of a particular DUT; a second queue for receiving responses back from said particular virtual function of said particular DUT; and computer resources for implementing said first and second queues. 13. A tester system as described in claim 9 wherein said first and second DUTs comprise solid state drives (SSDs). 14. A tester system as described in claim 9 wherein said plurality of drivers comprise NVMe device drivers. 15. A tester system as described in claim 9 wherein said plurality of drivers of said host computer system simulate functionality of a hypervisor. 16. A tester system as described in claim 15 wherein said host computer system is free of virtual machine software. 17. A method of testing a plurality of DUT virtual functions of a plurality of DUTs using a tester system, the method comprising: on a host computer system comprising a memory, concurrently executing a plurality of test program processes wherein a respective test program process of said plurality of test program processes is associated with each DUT of said plurality of DUTs and wherein further, each test program process of said plurality of test program processes comprises a plurality of threads for generating workloads for testing DUT virtual functions of an associated DUT; and simulating a virtualization environment for said plurality of test program processes on said host computer system using a plurality of drivers instantiated within said memory, wherein sa

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device · CPC title

  • G01R31/287Primary

    Procedures; Software aspects · CPC title

  • using arrangements specific to the hardware being tested · CPC title

  • Prevention of errors by analysis, debugging or testing of software · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12222844B2 cover?
Embodiments of the present invention can provide an extended NVMe driver that supports exercising virtual functions (and related physical functions) of a DUT without using a VM or hypervisor. In this way, the amount of memory and processing resources used for testing NVMe SSDs can be significantly reduced, and a large number of DUTs (e.g., up to 16 DUTs) can be tested in parallel independently.…
Who is the assignee on this patent?
Advantest Corp
What technology area does this patent fall under?
Primary CPC classification G01R31/287. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).