IP Library Granted Patent US 9,405,571
Granted Patent B2
US 9,405,571 · App. 14/026,785 · Granted Aug 2, 2016

Method and system for abstracting virtual machines in a network comprising plurality of hypervisor and sub-hypervisors

Inventors: Wael Diab (San Francisco, CA); Bruce Currivan (Dove Canyon, CA); Jeyhan Karaoguz (Irvine, CA); Yongbum Kim (San Jose, CA); Kenneth Ma (Cupertino, CA); Michael Johas Teener (Santa Cruz, CA)
Assignee: Broadcom Corporation
G06F9/45558G06F9/5077G06F9/46G06F15/177G06F2009/4557
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 9,405,571
App. No.
14/026,785
Granted
Aug 2, 2016
Kind
B2
Abstract

One or more processors and/or one or more circuits may be operable to configure one or more virtual machines and a hypervisor for controlling the one or more virtual machines. The virtual machines and the hypervisor may be distributed across a plurality of network devices. A sub-hypervisor may be configured within each of the virtual machines utilizing the hypervisor. Load information of the network devices may be communicated to the hypervisor utilizing the sub-hypervisors. The virtual machines may include threads, may be load balanced utilizing the hypervisor, dynamically configured utilizing the hypervisor based on changes in the network devices, and scaled by the distribution of the virtual machines across the network devices. Information from the processing of data may be received in the virtual machines. The network devices may include a plurality of: servers, switches, routers, racks, blades, mainframes, personal data assistants, smart phones, desktop computers, and/or laptop devices.

Claims (36)

1. A data processing system comprising:

a plurality of hardware network devices in data communication in a network;

one or more virtual machines, each respective virtual machine including a plurality of code portions which, in aggregate, perform functions of the each respective virtual machine, the plurality of code portions of the each respective virtual machine being distributed across a respective subset of the plurality of hardware network devices, the one or more virtual machines being configured for optimum performance of the one or more virtual machines using information regarding capabilities of respective hardware network devices of the plurality of hardware network devices to support the each respective virtual machine;

a hypervisor including a group of code portions distributed over a like group of hardware network devices of the plurality of hardware network devices and configured to manage data communication between respective virtual machines of the plurality of virtual machines; and

a plurality of sub-hypervisors, each respective sub-hypervisor of the plurality of sub-hypervisors in data communication with the hypervisor and being associated with a respective virtual machine of the plurality of virtual machines,

wherein the hypervisor is configured to communicate available resource parameters to a respective virtual machine of the plurality of virtual machines via a respective sub-hypervisor and the respective sub-hypervisor is configured to communicate a compute load of the respective virtual machine to the hypervisor.

2. The data processing system of claim 1 wherein the hypervisor is configured to allocate hardware and software resources of the plurality of hardware network devices among the one or more virtual machines.

3. The data processing system of claim 2 wherein the hypervisor is configured to share operational parameters of the respective virtual machines of the plurality of virtual machines to dynamically reallocate the hardware and software resources of the plurality of hardware network devices among the one or more virtual machines as availability of network resources changes.

4. The data processing system of claim 1 wherein the hypervisor is configured to enable data communication between the respective virtual machines of the one or more virtual machines and hardware resources of the plurality of hardware network devices.

5. The data processing system of claim 1 further comprising:

a sub-hypervisor of the plurality of sub-hypervisors within each virtual machine of the plurality of virtual machines, the sub-hypervisor configured for data communication with the hypervisor to control one or more sub-processes implemented by the each virtual machine.

6. The data processing system of claim 5 wherein the sub-hypervisor includes multiple code portions distributed across more than one hardware network device of the plurality of hardware network devices.

7. The data processing system of claim 1 wherein the hypervisor is configured to receive respective operating parameters of the respective hardware network devices and further configured to control distribution of selected code portions of the plurality of code portions, the selected code portions implementing virtual machine processes of the one or more virtual machines among the plurality of hardware network devices.

8. The data processing system of claim 7 wherein the hypervisor is configured to balance a processing load for the virtual machine processes among the plurality of hardware network devices using the received respective operating parameters of the respective hardware network devices.

9. The data processing system of claim 7 wherein the hypervisor is configured to optimize performance of respective virtual machine processes among the plurality of hardware network devices using the received respective operating parameters of the respective hardware network devices.

10. A data processing system comprising:

a plurality of hardware network devices in data communication in a network;

one or more virtual machines, each respective virtual machine including code which is distributed across a respective subset of the plurality of hardware network devices to perform functions of the respective virtual machine in conjunction with the respective subset of the plurality of hardware network devices, each respective virtual machine comprising one or more threads operative to perform defined operational functions of the respective virtual machine;

a hypervisor including code distributed over a group of hardware network devices of the plurality of hardware network devices and configured to control the one or more threads of each respective virtual machine of the plurality of virtual machines; and

a sub-hypervisor within each virtual machine of the plurality of virtual machines, the sub-hypervisor configured for data communication with the hypervisor to control one or more sub-processes implemented by the each virtual machine;

wherein the hypervisor is configured to dynamically vary configuration of the one or more threads over the one or more subsets of the hardware network devices according to changing network utilization or hardware network resource availability.

11. The data processing system of claim 10 wherein the hypervisor is configured to receive from the respective hardware network devices of the plurality of hardware network devices respective operating parameters of the respective hardware network devices and further configured to control distribution of virtual machine processes of the one or more virtual machines among the plurality of hardware network devices.

12. The data processing system of claim 11 wherein respective threads of the one or more threads are functionally distributed over one or more subsets of the plurality of hardware network devices to match performance requirements of the respective threads with performance capabilities of respective hardware network devices.

13. The data processing system of claim 12 wherein the hypervisor is configured to control distribution of the one or more threads over the one or more subsets of the hardware network devices.

14. A method comprising:

at a plurality of hardware network devices in data communication over a network, implementing a plurality of virtual machines, respective virtual machines of the plurality of virtual machines including a plurality of code portions, a plurality of code portions in aggregate forming a respective virtual machine, the plurality of code portions being distributed over respective subsets of hardware network devices; and

at the plurality of hardware network devices, implementing a hypervisor in data communication with the respective virtual machines to control the plurality of virtual machines, including

distributing respective portions of hypervisor code among the respective hardware network devices,

allocating resources of the plurality of hardware network devices among the plurality of virtual machines based on suitability of a respective subset of hardware network devices for performing functional tasks of a respective virtual machine;

communicating operational parameters of the respective virtual machines of the plurality of virtual machines;

dynamically reallocating hardware and software resources of the plurality of hardware network devices among the one or more virtual machines based on the communicated operational parameters; and

at the plurality of hardware network devices, implementing a sub-hypervisor within each virtual machine of the plurality of virtual machines, the sub-hypervisor configured for data communication with the hypervisor to control one or more sub-processes implemented by the each virtual machine.

15. The method of claim 14 wherein implementing a hypervisor further comprises:

optimizing performance of respective virtual machine processes among the plurality of hardware network devices using the communicated operational parameters of the respective virtual machines.

16. The method of claim 14 wherein implementing a hypervisor comprises:

distributing, by the hypervisor, respective portions of a plurality of threads across respective subsets of the plurality of hardware network devices according to functional capability of hardware network devices of the respective subsets of the plurality of hardware network devices and according to processing requirements of the plurality of threads.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2013
From: DIAB, WAEL; CURRIVAN, BRUCE; KARAOGUZ, JEYHAN; KIM, YONGBUM; MA, KENNETH; JOHAS TEENER, MICHAEL
To: BROADCOM CORPORATION
Reel/Frame 031215/0082 →
Continuity (3)
Continuation 12571296 · Sep 30, 2009
Provisional Application 61227665 · Jul 22, 2009
Related Publication 20140013328A1 · Jan 9, 2014