1460962489-d6ecb8be-5d0b-49e6-93f0-17a4fe72d6e6

1. A differential phase generating hybrid comprising:
a first input port in communication with a first active splitter;
a second input port in communication with a second active splitter;
a first active combiner configured to receive a first signal from the first active splitter and a second signal from the second active splitter;
a second active combiner configured to receive the first signal from the first active splitter and the second signal from the second active splitter, wherein the second signal from the second active splitter is inverted;
a first output port to provide a first composite signal from the first active combiner; and
a second output port to provide a second composite signal from the second active combiner.
2. The differential phase generating hybrid of claim 1, further comprising:
a first vector generator configured to inject a phase shift into signals communicated from the first input port to the first active splitter; and
a second vector generator configured to inject a phase shift into signals communicated from the second input port to the second active splitter.
3. The differential phase generating hybrid of claim 1, wherein the first composite signal is phase shifted approximately 0\xb0 from the second composite signal in response to an input signal provided to the first input port.
4. The differential phase generating hybrid of claim 1, wherein the first composite signal is phase shifted approximately 180\xb0 from the second composite signal in response to an input signal provided to the second input port.
5. The differential phase generating hybrid of claim 2, wherein the first vector generator and the second vector generator are individually configured to adjust at least one of the phase or amplitude of a signal.
6. The differential phase generating hybrid of claim 5, further comprising:
a first DAC configured to digitally control the first vector generator; and
a second DAC configured to digitally control the second vector generator.
7. The differential phase generating hybrid of claim 1, wherein the differential phase generating hybrid is enabled to operate over multiple frequency bands.
8. The differential phase generating hybrid of claim 1, wherein the size of the differential phase generating hybrid is independent of an operating frequency.
9. The differential phase generating hybrid of claim 1, wherein the differential phase generating hybrid is an integrated monolithic solution.
10. The differential phase generating hybrid of claim 1, wherein a signal communicated through the differential phase generating hybrid does not incur a signal power loss.
11. A differential phase generating hybrid comprising at least one active vector generator configured to adjust at least one of the phase or amplitude of a signal in the differential phase generating hybrid.
12. A differential phase generating hybrid comprising at least one active splitter configured to divide a signal in the differential phase generating hybrid into two substantially equivalent signals.
13. A differential phase generating hybrid comprising at least one active combiner configured to combine two or more input signals into a single output signal.
14. A differential phase generating hybrid, wherein the size of the differential phase generating hybrid is independent of an operating frequency.
15. A method comprising:
receiving a first input signal at a first vector generator from a first input port, wherein the first vector generator adjusts at least one of the phase and amplitude of the first input signal to generate an adjusted first input signal;
communicating the adjusted first input signal to a first active splitter from the first vector generator;
receiving a second input signal at a second vector generator from a second input port, wherein the second vector generator adjusts at least one of the phase and amplitude of the second input signal to generate an adjusted second input signal;
communicating the adjusted second input signal to a second active splitter from the second vector generator;
splitting, at the first active splitter, the adjusted first input signal and transmitting a split of the adjusted first input signal to a first active combiner and a second active combiner;
splitting, at the second active splitter, the adjusted second input signal and transmitting a split of the adjusted second input signal to the first active combiner and transmitting an inverted split of the adjusted second input signal to the second active combiner;
combining, at the first active combiner, a signal provided by the first active splitter and a signal provided by the second active splitter, wherein the first active combiner communicates a first output composite vector; and
combining, at the second active combiner, the signal provided by the first active splitter and an inverted signal from the second active splitter, wherein the second active combiner communicates a second output composite vector.
16. The method of claim 15, further comprising producing approximately a 0\xb0 phase shift difference between the first output composite vector and the second output composite vector in response to an input signal provided to the first input port.
17. The method of claim 15, further comprising producing approximately a 180\xb0 phase shift difference between the first output composite vector and the second output composite vector in response to an input signal provided to the second input port.
18. The method of claim 15, wherein the first vector generator adjusts the phase of the first input signal by approximately \u221290\xb0 and wherein the second vector generator adjusts the phase of the second input signal by approximately \u221290\xb0.
19. The method of claim 15, wherein the split of the adjusted first input signal is transmitted from the first active splitter in differential form and wherein the split of the adjusted second input signal is transmitted from the second active splitter in differential form.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A virtualization platform comprising:
a processor having a plurality of register sets;
a plurality of virtual machines (VM) to run on the processor, each VM to run in a guest operating system, each VM associated with at least one virtual machine control structure (VMCS), the VMCS having fields indicating trap events for processor instructions accessing selected register sets;
a trap mechanism corresponding to each VM to exit from a running VM responsive to occurrence of a predetermined trap event in the VM, the trap mechanism to set a field in the VM’s VMCS indicating that the predetermined trap event has occurred in the VM; and
a virtual machine monitor (VMM) to schedule and switch context among the plurality of virtual machines, wherein the VMM is to determine which of the plurality of register sets are to be saved and restored upon context switching among the plurality of VMs, the determination being based at least in part on the trap event fields in the VM’s VMCS.
2. The virtualization platform as recited in claim 1, wherein the trap event field in the VMCS is reset in response to a predetermined event.
3. The virtualization platform as recited in claim 1, wherein the trap mechanism is to be disabled for a selected event in a virtual machine in response to the selected event previously occurring in the virtual machine.
4. The virtualization platform as recited in claim 3, wherein a deactivated trap mechanism is to be reactivated for a virtual machine, when the virtual machine is resumed.
5. The virtualization platform as recited in claim 1, wherein the VMM is to save and restore context for a selected register set upon a context switch when more than one of the plurality of virtual machines have a corresponding trap event field in their VMCSs set by the trap mechanism for the selected register set, and wherein the VMM is to refrain from saving and restoring context for a selected register set upon a context switch when one or fewer of the plurality of virtual machines have a corresponding trap event field in their VMCSs set by the trap mechanism for the selected register set.
6. The virtualization platform as recited in claim 1, wherein an operating system (OS) running in one of the plurality of virtual machines notifies the VMM when a selected register set is no longer being accessed by processes running under the OS.
7. A method comprising:
identifying when a first virtual machine running in a virtualization platform uses a selected one of a plurality of register sets within a processor on the virtualization platform, wherein the identifying further comprises trapping an event in a first virtual machine, wherein the event indicates usage of the selected register set, and setting a flag to indicate that the selected register set is used by the first virtual machine;
determining whether the flag is set for a corresponding selected register set;
saving context of the selected register set for the first virtual machine when the selected register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the saving to occur prior to switching processor context from the first virtual machine to a second virtual machine; and
restoring context of the selected register set for the first virtual machine when the register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the restoring to occur prior to switching processor context to the first virtual machine from a second virtual machine.
8. The method as recited in claim 7, further comprising:
refraining from trapping the event when the selected event has previously been identified as being used by the first virtual machine.
9. The method as recited in claim 7, further comprising:
determining whether a first virtual machine uses a selected register set;
determining whether any other virtual machine uses the selected register set; and
refraining from the saving context of the selected register set for the first virtual machine when the selected register set is not used by any other virtual machine.
10. The method as recited in claim 7, further comprising:
notifying the VMM that the first VM no longer uses the selected register set.
11. A method comprising:
identifying when a first virtual machine running in a virtualization platform uses a selected one of a plurality of register sets within a processor on the virtualization platform,
wherein the identifying further comprises trapping an event in a first virtual machine, wherein the event indicates usage of the selected register set, and setting a flag to indicate that the selected register set is used by the first virtual machine, wherein the trapping further comprises identifying whether the event in a first virtual machine is to be trapped based on data in a control structure, the data corresponding to the event, trapping the event in a first virtual machine when the control structure indicates that the event should be trapped and refraining from trapping the event when the control structure indicates that the event should not be trapped;
determining whether the flag is set for a corresponding selected register set; and
saving context of the selected register set for the first virtual machine when the selected register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the saving to occur prior to switching processor context from the first virtual machine to a second virtual machine.
12. The method as recited in claim 11, further comprising:
determining whether a first virtual machine uses a selected register set;
determining whether any other virtual machine uses the selected register set; and
refraining from the saving context of the selected register set for the first virtual machine when the selected register set is not used by any other virtual machine.
13. The method as recited in claim 11, further comprising:
notifying the VMM that the first VM no longer uses the selected register set.
14. The method as recited in claim 11, wherein the control structure comprises a virtual machine control structure (VMCS).
15. A machine readable storage medium having instructions stored thereon, the instructions when executed on a machine, cause the machine to:
identify when a first virtual machine running in a virtualization platform uses a selected one of a plurality of register sets within a processor on the virtualization platform, wherein the identifying further comprises instructions to trap an event in a first virtual machine, wherein the event indicates usage of the selected register set, and instructions to set a flag to indicate that the selected register set is used by the first virtual machine;
determine whether the flag is set for a corresponding selected register set; save context of the selected register set for the first virtual machine when the register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the saving to occur prior to switching processor context from the first virtual machine to a second virtual machine; and
restore context of the selected register set for the first virtual machine when the register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the restoring to occur prior to switching processor context to the first virtual machine from a second virtual machine.
16. The medium as recited in claim 15, further comprising instructions to:
refrain from trapping the event when the selected event has previously been identified as being used by the first virtual machine.
17. The medium as recited in claim 15, further comprising instructions to:
determine whether a first virtual machine uses a selected register set;
determine whether any other virtual machine uses the selected register set; and
refrain from the saving context of the selected register set for the first virtual machine when the selected register set is not used by any other virtual machine.
18. The medium as recited in claim 15, further comprising instructions to:
notify the VMM that the first VM no longer uses the selected register set.
19. A machine readable storage medium having instructions stored thereon, the instructions when executed on a machine, cause the machine to:
identify when a first virtual machine running in a virtualization platform uses a selected one of a plurality of register sets within a processor on the virtualization platform,
wherein the identifying further comprises instructions to trap an event in a first virtual machine, wherein the event indicates usage of the selected register set, and set a flag to indicate that the selected register set is used by the first virtual machine, wherein the trapping further comprises instructions to identify whether the event in a first virtual machine is to be trapped based on data in a control structure, the data corresponding to the event, trap the event in a first virtual machine when the control structure indicates that the event should be trapped and refrain from trapping the event when the control structure indicates that the event should not be trapped;
determine whether the flag is set for a corresponding selected register set; and
save context of the selected register set for the first virtual machine when the selected register set is identified as being used by the first virtual machine, by a virtual machine monitor (VMM), the saving to occur prior to switching processor context from the first virtual machine to a second virtual machine.
20. The medium as recited in claim 19, further comprising instructions to:
determine whether a first virtual machine uses a selected register set;
determine whether any other virtual machine uses the selected register set; and
refrain from the saving context of the selected register set for the first virtual machine when the selected register set is not used by any other virtual machine.
21. The medium as recited in claim 19, further comprising instructions to:
notify the VMM that the first VM no longer uses the selected register set.
22. The medium as recited in claim 19, wherein the control structure comprises a virtual machine control structure (VMCS).
23. A method comprising:
responsive to execution of an instruction in a first virtual machine running on a processor, the instruction corresponding to a selected register set, causing a trap from the executing first virtual machine to a virtual machine monitor;
setting a flag, in response to the execution of the instruction, corresponding to the selected register set, the flag indicating that the first virtual machine uses the selected register set;
disabling the trapping of the first virtual machine for the selected register set after setting the flag, wherein the flag comprises at least one bit in a control structure corresponding to the first virtual machine; and
responsive to a request for a processor context switch between the first virtual machine and a second virtual machine, determining whether the selected register set needs to be saved or restored based in part on the flag corresponding to the register set and performing the context switch by a virtual machine monitor based on the flag value.
24. The method as recited in claim 23, further comprising:
responsive to a request for a processor context switch from the first virtual machine to the second virtual machines, saving context of the selected register set when the corresponding flag is set.
25. The method as recited in claim 23, further comprising:
responsive to a request for a processor context switch from the second virtual machine to the first virtual machines, restoring context of the selected register set when the corresponding flag is set.