Pcie in band deterministic protocol cross feature
US-2024111446-A1 · Apr 4, 2024 · US
US12222844B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12222844-B2 |
| Application number | US-202318113934-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 24, 2023 |
| Priority date | Nov 30, 2022 |
| Publication date | Feb 11, 2025 |
| Grant date | Feb 11, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.