IP Library Granted Patent US 8,365,168
Granted Patent B1
US 8,365,168 · App. 12/169,475 · Granted Jan 29, 2013

Method and system for processing isochronous data packets using virtual USB controller, and placing the isochronous data packets into a look-ahead queue having a plurality of blank packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,365,168
App. No.
12/169,475
Granted
Jan 29, 2013
Kind
B1
Abstract

A method, system and a computer program product for processing isochronous data packets in a guest memory of a Virtual Machine (VM) using a virtual USB controller. The virtual USB controller is implemented as a software application running on computer system where the VM is implemented. The virtual USB controller is a software component emulating a physical USB controller. The virtual controller uses chains of isochronous packets processed and stored in the guest memory of the VM. Processing of the isochronous data packets includes allocating a buffer in the guest memory for each isochronous data packet and writing the isochronous data packet to the buffer. According to the proposed method, each VM has its own virtual USB controller. The method allows a number of the VMs implemented on a host operating system of a physical machine to concurrently receive data from various USB end-points by employing the virtual USB controllers.

Claims (33)

1. A method for processing isochronous data packets using a virtual USB controller, the method comprising:

activating a Virtual Machine (VM) on a computer;

instantiating a USB controller application in a host operating system of the computer;

receiving the isochronous data packets from a USB device, the isochronous data packets including continuous and periodic data;

placing the packets into a look-ahead queue, wherein the look-ahead queue includes a plurality of blank packets, and wherein the blank packets are configured to maintain consistent timing of the look-ahead queue;

processing, by the USB controller application, the isochronous data packets in a guest memory of the VM, such that if a time for packet execution is over, the packet is discarded,

wherein the processing of the isochronous data packets includes allocating a buffer in the guest memory for each isochronous data packet and writing the isochronous data packet to the buffer; and

providing the isochronous data packets to the VM.

2. The method of claim 1 , further comprising:

activating a plurality of VMs connected to a plurality of USB devices, wherein each USB device generates the isochronous data packets received by the USB controller application according to a queue;

forming a plurality of requests for receiving data from the USB devices, wherein each request is placed in the queue;

generating an input request for transmitting the isochronous data packets to the VMs; and

isochronously writing the isochronous data packets into a buffer.

3. The method of claim 1 , wherein the USB controller application emulates a USB controller of the computer.

4. The method of claim 1 , wherein a predetermined number of the isochronous data packets are written into the guest memory and each packet is provided to the VM in an order it was received.

5. The method of claim 1 , wherein the isochronous data packets provided to the VM are synchronized according to intervals between the isochronous data packets.

6. The method of claim 1 , wherein the USB controller application is a video controller application.

7. The method of claim 1 , wherein the USB controller application is an audio controller application.

8. A non-transitory computer useable storage medium having computer executable program logic stored thereon for executing on the processor for implementing the method of claim 1 .

9. A system for processing isochronous data packets using a virtual USB controller, the system comprising:

a Virtual Machine (VM) activated on a host operating system of a computer;

a Virtual Machine Monitor (VMM);

a USB controller component connected to the VMM, wherein the VMM is coupled to a guest memory of the computer system;

a look-ahead queue into which the isochronous data packets are placed, wherein the look-ahead queue includes a plurality of blank packets, and wherein the blank packets are configured to maintain consistent timing of the look-ahead queue; and

wherein the isochronous data packets are processed, by the USB controller component, in the guest memory of the VM and subsequently provided to the VM, such that if a time for packet execution is over, the packet is discarded, and

wherein the isochronous data packets include continuous and periodic data.

10. The system of claim 9 , wherein the VMM is coupled to the USB controller component via a hyperswitch.

11. The system of claim 9 , wherein the USB controller component is an emulation of a USB controller of the computer.

12. The system of claim 9 , wherein processing of the isochronous data packets includes filling a buffer of the isochronous data packet with data.

13. The system of claim 9 , wherein the isochronous data packets provided to the VM are synchronized according to time intervals between the isochronous data packets.

14. The system of claim 9 , wherein the USB controller component is a video controller application.

15. The system of claim 9 , wherein the USB controller component is an audio controller application.

16. The system of claim 9 , wherein the isochronous data packets are processed by allocating a buffer in the guest memory for each isochronous data packet and writing the isochronous data packet to the buffer.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
MERGER Recorded Mar 6, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045122/0592 →
RELEASE OF SECURITY INTEREST Recorded Dec 14, 2015
From: SILICON VALLEY BANK
To: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
Reel/Frame 037289/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2011
From: PARALLELS SOFTWARE INTERNATIONAL, INC.
To: PARALLELS HOLDINGS, LTD.
Reel/Frame 027467/0328 →
SECURITY AGREEMENT Recorded Apr 3, 2010
From: PARALLELS HOLDINGS, LTD.
To: SILICON VALLEY BANK
Reel/Frame 024170/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2008
From: KODORKIN, ALEXANDER V.; TORMASOV, ALEXANDER G.; NESTERENKO, DMITRY A.; OMELYANCHUK, ANDREY A.; DOBROVOLSKIY, NIKOLAY N.
To: PARALLELS SOFTWARE INTERNATIONAL, INC.
Reel/Frame 021208/0734 →