US2015355920A1PendingUtilityA1

System and methods for generating and managing a virtual device

Assignee: OREGON STATEPriority: Aug 31, 2012Filed: Aug 17, 2015Published: Dec 10, 2015
Est. expiryAug 31, 2032(~6.1 yrs left)· nominal 20-yr term from priority
G06F 9/45558G06F 2009/4557G06F 11/3672G06F 11/3668G06F 11/3676G06F 9/455
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Embodiments of the present disclosure may be configured to permit development and validation of a device driver or a device application program by using improved virtual devices. Such improved virtual devices may facilitate driver development without use of physical devices or hardware prototypes. In various embodiments, advanced validation of a device-driver combination may be permitted that would be difficult to achieve even with a physical device. Certain embodiments also may detect inconsistencies between virtual and physical devices, which may be used to improve drivers and device application programs and increase compatibility of such drivers and device application programs with physical devices.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A computer-implemented method, comprising:
 obtaining, by a computer, a device trace associated with a physical device;   symbolically executing, by the computer based on the device trace, a virtual device configured to function as the physical device without access to the physical device; and   assessing, by the computer, whether one or more observable states of the virtual device comports with the device trace.   
     
     
         2 . The computer-implemented method of  claim 1 , wherein the device trace comprises a sequence of driver requests issued to the physical device. 
     
     
         3 . The computer-implemented method of  claim 2 , wherein the device trace comprises a sequence of partial states of the physical device that correspond to the sequence of driver requests. 
     
     
         4 . The computer-implemented method of  claim 3 , wherein a partial state from the sequence of partial states comprises a first set of variables that are assigned concrete values and a second set of variables that are assigned symbolic values. 
     
     
         5 . The computer-implemented method of  claim 4 , wherein the second set of variables corresponds to registers inaccessible from outside of the physical device. 
     
     
         6 . The computer-implemented method of  claim 3 , wherein the assessment comprises determining, by the computer, whether there is an intersection between a particular partial state from the sequence of partial states of the physical device and any symbolic state of the virtual device resulting from provision, to the virtual device, of a driver request from the sequence of driver requests that corresponds to the particular partial state. 
     
     
         7 . The computer-implemented method of  claim 1 , further comprising synchronizing, by the computer, the virtual device with the physical device responsive to a determination, based on the assessment, that an inconsistency exists between the virtual device and the physical device. 
     
     
         8 . The computer-implemented method of  claim 7 , wherein the synchronization comprises assigning, by the computer, a state of the physical device to a state of the virtual device. 
     
     
         9 . The computer-implemented method of  claim 1 , wherein the obtaining comprises selectively capturing, by the computer or another computer for inclusion in the device trace, register values of the physical device based on a criterion. 
     
     
         10 . The computer-implemented method of  claim 9 , wherein the criterion comprises registers of the physical device that are interface registers. 
     
     
         11 . The computer-implemented method of  claim 9 , wherein the criterion comprises a user selection. 
     
     
         12 . The computer-implemented method of  claim 1 , further comprising:
 concretizing, by the computer, the virtual device to produce a concretized virtual device;   executing, by the computer, the concretized virtual device; and   assessing, by the computer, whether one or more observable states of the concretized virtual device comport with the device trace associated with the physical device.   
     
     
         13 . The computer-implemented method of  claim 12 , wherein symbolic execution of the virtual device comprises symbolic execution of the virtual device based on driver requests generated by the assessment of whether the one or more observable states of the concretized virtual device comports with the device trace associated with the physical device. 
     
     
         14 . The computer-implemented method of  claim 13 , wherein the generated driver requests are driver requests that revealed an inconsistency between the virtual device and the physical device. 
     
     
         15 . The computer-implemented method of  claim 12 , wherein the concretizing comprises directly assigning random concrete values to symbolic variables in the virtual device to produce the concretized virtual device. 
     
     
         16 . At least one computer-readable medium comprising instructions that, in response to execution of the instructions by computing device, enable the computing device to:
 obtain a device trace associated with a physical device;   symbolically execute, based on the device trace, a virtual device configured to function as the physical device without access to the physical device; and   assess whether one or more observable states of the virtual device comports with the device trace.   
     
     
         17 . The at least one computer-readable medium of  claim 16 , wherein the device trace comprises a sequence of driver requests issued to the physical device. 
     
     
         18 . The at least one computer-readable medium of  claim 17 , wherein the device trace comprises a sequence of partial states of the physical device that correspond to the sequence of driver requests. 
     
     
         19 . The at least one computer-readable medium of  claim 18 , wherein a partial state from the sequence of partial states comprises a first set of variables that are assigned concrete values and a second set of variables that are assigned symbolic values. 
     
     
         20 . The at least one computer-readable medium of  claim 19 , wherein the second set of variables corresponds to registers inaccessible from outside of the physical device. 
     
     
         21 . The at least one computer-readable medium of  claim 18 , wherein the assessment comprises determining, by the computer, whether there is an intersection between a particular partial state from the sequence of partial states of the physical device and any symbolic state of the virtual device resulting from provision, to the virtual device, of a driver request from the sequence of driver requests that corresponds to the particular partial state. 
     
     
         22 . The at least one computer-readable medium of  claim 16 , further comprising instructions that, in response to execution by computing device, enable the computing device to synchronize the virtual device with the physical device responsive to a determination, based on the assessment, that an inconsistency exists between the virtual device and the physical device. 
     
     
         23 . The at least one computer-readable medium of  claim 22 , wherein the synchronization comprises assigning, by the computer, a state of the physical device to a state of the virtual device. 
     
     
         24 . The at least one computer-readable medium of  claim 16 , wherein the obtaining comprises selectively capturing, by the computer or another computer for inclusion in the device trace, register values of the physical device based on a criterion. 
     
     
         25 . The at least one computer-readable medium of  claim 24 , wherein the criterion comprises registers of the physical device that are interface registers. 
     
     
         26 . The at least one computer-readable medium of  claim 24 , wherein the criterion comprises a user selection. 
     
     
         27 . The at least one computer-readable medium of  claim 16 , further comprising instructions that, in response to execution by the computing device, enable the computing device to:
 concretize the virtual device to produce a concretized virtual device;   execute the concretized virtual device; and   assess whether one or more observable states of the concretized virtual device comport with the device trace associated with the physical device.   
     
     
         28 . The at least one computer-readable medium of  claim 27 , wherein symbolic execution of the virtual device comprises symbolic execution of the virtual device based on driver requests generated by the assessment of whether the one or more observable states of the concretized virtual device comports with the device trace associated with the physical device. 
     
     
         29 . The at least one computer-readable medium of  claim 28 , wherein the generated driver requests are driver requests that revealed an inconsistency between the virtual device and the physical device. 
     
     
         30 . The at least one computer-readable medium of  claim 27 , wherein the concretizing comprises directly assigning random concrete values to symbolic variables in the virtual device to produce the concretized virtual device.

Join the waitlist — get patent alerts

Track US2015355920A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.