The subject matter disclosed herein relates to input/output switching and more particularly relates to automatically switching input/output between partitioned systems based on power usage.
Often a system administrator or other user may want to monitor multiple systems, such as partitioned systems, from a single electronic display and to control a selected system with a keyboard, mouse, or other input/output device.
A method for automatically switching input/output (“I/O”) between partitioned systems based on power usage is disclosed. An apparatus and computer program product also perform the functions of the method. The method includes monitoring power usage for each of two or more systems sharing an electronic display, selecting a system of the two or more systems sharing the electronic display in response to power usage of the of the system reaching a power usage threshold, and switching an input of an input/output (“I/O”) switch to send data for display of one or more elements of the selected system to the electronic display.
An apparatus for automatically switching I/O between partitioned systems based on power usage includes a power monitor configured to monitor power usage for each of two or more systems sharing an electronic display, a threshold module configured to select a system of the two or more systems sharing the electronic display in response to power usage of the of the system reaching a power usage threshold, and an I/O switch configured to switch an input of the I/O switch to send data for display of one or more elements of the selected system to the electronic display.
A compute node for automatically switching I/O between partitioned systems based on power usage includes two or more systems sharing an electronic display and an I/O device. Each of the two or more systems includes a processor. The compute node is partitioned into the two or more systems sharing the electronic display and the I/O device. The compute node includes a power monitor configured to monitor power usage for each of the two or more systems and a threshold module configured to select a system of the two or more systems in response to power usage of the of the system reaching a power usage threshold. The compute node includes a KVM switch configured to switch an input of the KVM switch to send data for display of one or more elements of the selected system to the electronic display and to connect the I/O controller receiving data from an I/O device to the selected system.
A more particular description of the embodiments briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only some embodiments and are not therefore to be considered to be limiting of scope, the embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
As will be appreciated by one skilled in the art, aspects of the embodiments may be embodied as a system, method or program product. Accordingly, embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments may take the form of a program product embodied in one or more computer readable storage devices storing machine readable code, computer readable code, and/or program code, referred hereafter as code. The storage devices, in some embodiments, are tangible, non-transitory, and/or non-transmission.
Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom very large scale integrated (“VLSI”) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as a field programmable gate array (“FPGA”), programmable array logic, programmable logic devices or the like.
Modules may also be implemented in code and/or software for execution by various types of processors. An identified module of code may, for instance, comprise one or more physical or logical blocks of executable code which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
Indeed, a module of code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different computer readable storage devices. Where a module or portions of a module are implemented in software, the software portions are stored on one or more computer readable storage devices.
Any combination of one or more computer readable medium may be utilized. The computer readable medium may be a computer readable storage medium. The computer readable storage medium may be a storage device storing the code. The storage device may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, holographic, micromechanical, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
More specific examples (a non-exhaustive list) of the storage device would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (“RAM”), a read-only memory (“ROM”), an erasable programmable read-only memory (“EPROM” or Flash memory), a portable compact disc read-only memory (“CD-ROM”), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Code for carrying out operations for embodiments may be written in any combination of one or more programming languages including an object oriented programming language such as Python, Ruby, R, Java, Java Script, Smalltalk, C++, C sharp, Lisp, Clojure, PHP, or the like, and conventional procedural programming languages, such as the “C” programming language, or the like, and/or machine languages such as assembly languages. The code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (“LAN”) or a wide area network (“WAN”), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment, but mean “one or more but not all embodiments” unless expressly specified otherwise. The terms “including.” “comprising.” “having.” and variations thereof mean “including but not limited to,” unless expressly specified otherwise. An enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. The terms “a,” “an,” and “the” also refer to “one or more” unless expressly specified otherwise.
Furthermore, the described features, structures, or characteristics of the embodiments may be combined in any suitable manner. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments. One skilled in the relevant art will recognize, however, that embodiments may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of an embodiment.
Aspects of the embodiments are described below with reference to schematic flowchart diagrams and/or schematic block diagrams of methods, apparatuses, systems, and program products according to embodiments. It will be understood that each block of the schematic flowchart diagrams and/or schematic block diagrams, and combinations of blocks in the schematic flowchart diagrams and/or schematic block diagrams, can be implemented by code. This code may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the schematic flowchart diagrams and/or schematic block diagrams block or blocks.
The code may also be stored in a storage device that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the storage device produce an article of manufacture including instructions which implement the function/act specified in the schematic flowchart diagrams and/or schematic block diagrams block or blocks.
The code may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the code which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The schematic flowchart diagrams and/or schematic block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of apparatuses, systems, methods and program products according to various embodiments. In this regard, each block in the schematic flowchart diagrams and/or schematic block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions of the code for implementing the specified logical function(s).
It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more blocks, or portions thereof, of the illustrated Figures.
Although various arrow types and line types may be employed in the flowchart and/or block diagrams, they are understood not to limit the scope of the corresponding embodiments. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the depicted embodiment. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted embodiment. It will also be noted that each block of the block diagrams and/or flowchart diagrams, and combinations of blocks in the block diagrams and/or flowchart diagrams, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and code.
The description of elements in each figure may refer to elements of proceeding figures. Like numbers refer to like elements in all figures, including alternate embodiments of like elements.
As used herein, a list with a conjunction of “and/or” includes any single item in the list or a combination of items in the list. For example, a list of A, B and/or C includes only A, only B, only C, a combination of A and B, a combination of B and C, a combination of A and C or a combination of A, B and C. As used herein, a list using the terminology “one or more of” includes any single item in the list or a combination of items in the list. For example, one or more of A, B and C includes only A, only B, only C, a combination of A and B, a combination of B and C, a combination of A and C or a combination of A, B and C. As used herein, a list using the terminology “one of” includes one and only one of any single item in the list. For example, “one of A, B and C” or “one of A, B, or C” includes only A, only B or only C and excludes combinations of A, B and C.
A method for automatically switching input/output (“I/O”) between partitioned systems based on power usage is disclosed. An apparatus and computer program product also perform the functions of the method. The method includes monitoring power usage for each of two or more systems sharing an electronic display, selecting a system of the two or more systems sharing the electronic display in response to power usage of the of the system reaching a power usage threshold, and switching an input of an input/output (“I/O”) switch to send data for display of one or more elements of the selected system to the electronic display.
In some embodiments, the power usage threshold includes a selected amount of power usage. In other embodiments, power usage of the selected system reaching the power usage threshold includes power usage of the selected system increasing above an upper power usage threshold or power usage of the selected system decreasing below a lower power usage threshold. In other embodiments, the power usage threshold includes power usage of one or more systems of the two or more systems other than the selected system. In other embodiments, the power usage includes power usage associated with one or more executing workloads on the selected system and the display is a display associated with execution of the one or more workloads. In other embodiments, the power usage of the two or more systems includes monitoring power usage of a portion of each of the two or more systems and/or one or more components of each of the two or more systems.
In some embodiments, each of the two or more systems includes a processor executing an instance of an operating system. In other embodiments, the two or more systems are on a compute node and the compute node is partitioned into the two or more systems. In other embodiments, the I/O switch includes a keyboard, video, and mouse (“KVM”) switch and/or is in a management controller of a compute node. The management controller is connected to a management server over a management network. In other embodiments, management controller is a datacenter-ready secure control module (“DC-SCM”). In other embodiments, monitoring the power usage for each of the two or more systems excludes a startup period of the I/O switch that includes the I/O switch selecting an initial system of the two or more systems to send data for display.
An apparatus for automatically switching I/O between partitioned systems based on power usage includes a power monitor configured to monitor power usage for each of two or more systems sharing an electronic display, a threshold module configured to select a system of the two or more systems sharing the electronic display in response to power usage of the of the system reaching a power usage threshold, and an I/O switch configured to switch an input of the I/O switch to send data for display of one or more elements of the selected system to the electronic display.
In some embodiments, the power usage threshold includes a selected amount of power usage or power usage of one or more systems of the two or more systems other than the selected system. In other embodiments, power usage of the selected system reaching the power usage threshold includes power usage of the selected system increasing above an upper power usage threshold or power usage of the selected system decreasing below a lower power usage threshold. In other embodiments, the power usage includes power usage associated with one or more executing workloads on the selected system and the display is a display associated with execution of the one or more workloads.
In some embodiments, each of the two or more systems includes a processor executing an instance of an operating system of a compute node, and the compute node is partitioned into the two or more systems. In other embodiments, the compute node includes two or more sockets and the compute node is partitioned into the two or more systems. Each socket of the two or more sockets includes a processor and each socket of the two or more sockets is a system of the two or more systems. In other embodiments, the I/O switch includes a KVM switch and/or is in a management controller of a compute node. The management controller is connected to a management server over a management network. In other embodiments, the management controller is a DC-SCM. In other embodiments, the apparatus includes two or more I/O switches, where a first I/O switch is configured to send the display of one or more elements of the selected system to the electronic display and/or a second I/O switch is configured to connect an I/O controller receiving data from an I/O device to the selected system.
A compute node for automatically switching I/O between partitioned systems based on power usage includes two or more systems sharing an electronic display and an I/O device. Each of the two or more systems includes a processor. The compute node is partitioned into the two or more systems. The compute node includes a power monitor configured to monitor power usage for each of the two or more systems sharing the electronic display and the I/O device and a threshold module configured to select a system of the two or more systems in response to power usage of the of the system reaching a power usage threshold. The compute node includes a KVM switch configured to switch an input of the KVM switch to send data for display of one or more elements of the selected system to an electronic display and to connect the I/O controller receiving data from the I/O device to the selected system.
In some embodiments, the systems 110 are partitioned systems. In other embodiments, the systems 110 each include a motherboard. In some examples, each of the systems 110 are a separate computing device. In other embodiments, the systems 110 are created by partitioning a motherboard with multiple CPUs 112. In some embodiments, each of the plurality of systems 110 runs a different instance of an operating system (“OS”).
Each of the plurality of systems 110 is connected to the I/O switch 108, which directs I/O signals to or receives signals from an I/O device, such as an electronic display 118, a keyboard 120, a mouse 122, etc. In some embodiments, the I/O switch 108 is a keyboard, video, mouse (“KVM”) switch. The I/O switch 108, in some embodiments, includes various controllers, such as a GPU, a universal serial bus (“USB”) controller, etc. In other embodiments, the I/O switch 108 switches I/O signals and another device includes I/O controllers, a GPU, etc.
The power switching apparatus 102 includes a power monitor 104 configured to monitor power usage for each of two or more systems 110 sharing an electronic display 118 and/or an I/O device. In some embodiments, the power monitor 104 receives power monitoring data from the operating system of each system 110 where each of the two or more systems 110 include power monitoring sensors, circuits, etc. In other embodiments, the power monitor 104 monitors sensors specifically placed for use by the power monitor 104. In some embodiments, the power monitor 104 is configured to monitor various components of each system 110, such as the CPU 112, memory 114, each resource 116, etc. In some embodiments, the power monitor 104 monitors power usage of one or more processes running on each of the two or more systems 110. In some embodiments, the power monitor 104 sums power usage of some or all of the components of a system 110 and maintains a separate power usage total for each of the two or more systems 110.
In some embodiments, the power monitor 104 monitors instantaneous power usage. In other embodiments, the power monitor 104 monitors power usage over a window of time and keeps track of average power usage during the window of time. In some embodiments, the power monitor 104 includes one or more first-in first-out registers to maintain measurements over the window of time. In other embodiments, the power monitor 104 stores power monitoring data in memory, which may be volatile memory or non-volatile memory. In other embodiments, the power monitor 104 overwrites power usage data outside of the window of time.
In some embodiments, the power monitor 104 adjusts for various power types, such as power of direct current (“DC”) components, power from single phase alternating current (“AC”) components, three-phase AC power usage, etc. In some embodiments, the power monitor 104 interacts with the OS of each system 110 to collect power usage data. In other embodiments, the power monitor 104 uses circuits, data, etc. separate from the OS of a system 110 to collect power usage data. One of skill in the art will recognize other ways for the power monitor 104 to monitor power usage of each of the two or more systems 110.
The power switching apparatus 102 includes a threshold module 106 configured to select a system (e.g., 110a) of the two or more systems 110 sharing the electronic display 118 and/or an I/O device in response to power usage of the of the system 110a reaching a power usage threshold. In some embodiments, the power usage threshold includes a selected amount of power usage. In the embodiments, the power usage threshold is a limit. In some embodiments, the power usage threshold is an upper limit. For example, the power usage threshold may be 100 watts (“W”) and when power usage of a system (e.g., 110a) exceeds 100 W, the threshold module 106 selects the system 110a. In other embodiments, the power usage threshold is a minimum amount of power usage and the threshold module 106 selects a system (e.g., 110a) when the power usage of the system 110a drops below the power usage threshold. For example, a drop in power usage may correspond to a process finishing.
In some embodiments, the power usage threshold is power usage of one or more of the two or more systems (e.g., 110b-110n) other than the selected system (e.g., 110a). In the embodiments, the threshold module 106 selects the system 110a with a power usage more than the other systems 110b-110n. When another system (e.g., 110b) has higher power usage than the current selected system 110a, the other system 110b then becomes the selected system 110b. In some embodiments, the threshold module 106 selects a system (e.g., 110a) based on highest power usage. In other embodiments, the threshold module 106 selects a system 110a based on lowest power usage.
In some embodiments, the power usage of the two or more systems 110 monitored by the power monitor 104 is a total power usage of the two or more systems 110 and the threshold module 106 selects a system (e.g., 110a) based on a total power usage of the system 110a. In other embodiments, the power usage of the two or more systems 110 monitored by the power monitor 104 is a portion of power usage of the two or more systems 110 and the threshold module 106 selects the system 110a based on a portion of power usage of a system 110a. In other embodiments, the power usage of the two or more systems 110 monitored by the power monitor 104 is power usage of one or more components of the two or more systems 110 and the threshold module 106 selects a system 110a based on a power usage of the one or more components of the system 110a.
In some embodiments, the processes, components, etc. to be monitored as well as various power usage thresholds are configurable by a user via a graphical user interface. In other embodiments, the power switching apparatus 102 is configurable by a user to set multiple power usage thresholds and the threshold module 106 is configurable to set logic, a hierarchy, etc. for the various thresholds. One of skill in the art with recognize other thresholds and other power usage measurements to be used by the threshold module 106.
The power switching apparatus 102 includes the I/O switch 108 configured to switch in input of the I/O switch to send data for display of one or more elements of the selected system (e.g., 110a) to an electronic display, such as the electronic display 118 of
In some embodiments, the I/O switch 108 may select a system (e.g., 110b) of the two or more systems 110 to send data for display on the electronic display 118 upon startup. In embodiments described herein, this selection of a system upon startup of the I/O switch 108 is not intended to be the selection by the threshold module 106. In embodiments described herein, monitoring the power usage for each of the two or more systems 110 excludes a startup period of the I/O switch 108 where the I/O switch 108 selects an initial system (e.g., 110b) of the two or more systems 110 to send data for display.
In other embodiments, the I/O switch 108 includes multiple connections for various I/O signals. In some embodiments, the I/O switch includes video connections in addition to other I/O signals, such as one or more universal serial bus (“USB”) connectors for use with a keyboard 120, a mouse 122, a track pad, a stylus, speakers, etc. In some embodiments, the I/O switch 108 includes various input ports for connection to signal cables from the two or more systems 110 and includes device ports for the electronic display 118, keyboard 120, mouse 122, etc. In other embodiments, the power switching apparatus 102 includes an I/O switch 108 for each I/O device or each I/O device type. One of skill in the art will recognize other configurations of one or more I/O switches 108 controlled by the threshold module 106.
The power switching apparatus 102 is connected to two systems 110. In the depicted embodiments, there are two partitioned systems 110 labeled zone 1 (system 1 110a) and zone 2 (system 2 110b). Each system 110 includes a CPU 112, memory 114, and a resource 116 as in the system 100 of
An FPGA 204, in some embodiments, facilitates partitioning the compute node 202 into systems. The FPGA 204, in some embodiments, partitions the compute node 202 so that each system 110 includes a CPU 112, memory 114, resources 116, etc. The FPGA 204, in some embodiments, configures the compute node 202 into a single system or removes partitions. In some embodiments, the FPGA 204 facilitates communication between the power switching apparatus 102 and the systems 110.
In some embodiments, a workload orchestrator 206 coordinates execution of workloads on partitioned systems 110 of one or more compute nodes 202. In some embodiments, the workload orchestrator 206 coordinates with the FPGA 204 to create partitioned systems that include virtual machines (“VMs”), containers, etc. for various clients 222a, 222b (collectively or generically “222”) in communication with the one or more compute nodes 202 and systems 110 over a computer network 220.
In some embodiments, the partitioned systems 110 may also include a remote resource 210a, 210b, which emulates a remote hardware resource 212 located external to the compute node 202. The remote hardware resources 212, in some embodiments are in a pod 214 that includes various remote resources 212, such as accelerators, FPGAs, storage devices 218, CPUs, GPUs, and the like. The pod 214 typically includes a switch 216 configured to connect the remote hardware resources 212 to compute nodes 202 as directed by a pod manager 208. The power monitor 104 is configured, in some embodiments, to monitor power of a remote hardware resource 212 that is emulated by a remote resource 210 of a system 110.
In some embodiments, the compute nodes 202 include multiple sockets that each accommodate a CPU 112 where each CPU 112 is supported by memory 114 and other components. A common configuration of a compute node 202 includes two sockets, as depicted in
The compute nodes 202 communicate with clients 222 over a computer network 220 that may include a LAN, a WAN, a fiber network, a wireless connection, the Internet, etc. and may include multiple networks. The wireless connection may be a mobile telephone network. The wireless connection may also employ a Wi-Fi network based on any one of the Institute of Electrical and Electronics Engineers (“IEEE”) 802.11 standards. Alternatively, the wireless connection may be a BLUETOOTH® connection. In addition, the wireless connection may employ a Radio Frequency Identification (“RFID”) communication including RFID standards established by the International Organization for Standardization (“ISO”), the International Electrotechnical Commission (“IEC”), the American Society for Testing and Materials® (“ASTM”®), the DASH7™ Alliance, and EPCGlobal™.
Alternatively, the wireless connection may employ a ZigBee® connection based on the IEEE 802 standard. In one embodiment, the wireless connection employs a Z-Wave® connection as designed by Sigma Designs®. Alternatively, the wireless connection may employ an ANT® and/or ANT+® connection as defined by Dynastream® Innovations Inc. of Cochrane, Canada.
The wireless connection may be an infrared connection including connections conforming at least to the Infrared Physical Layer Specification (“IrPHY”) as defined by the Infrared Data Association® (“IrDA”®). Alternatively, the wireless connection may be a cellular telephone network communication. All standards and/or connection types include the latest version and revision of the standard and/or connection type as of the filing date of this application.
The compute node 202 also includes a power switching apparatus 102, which is substantially similar to those described above in relation to the systems 100, 200 of
The management network, in some embodiments, is a network different than the computer network 220 used for communication with clients, for communication of data from workloads running on the compute nodes 202, etc. In other embodiments, the management network uses a same computer network 220 as is used for data from workloads but runs securely.
In some embodiments, the power switching apparatus 102 is distributed between a motherboard of the compute node 202 and the DC-SCM 304. In some examples, one or more I/O switches 108 are on the motherboard and the power monitor 104 and the threshold module 106 are in the DC-SCM 304. In other embodiments, components 104, 106, 108 of the power switching apparatus 102 are distributed differently.
In the embodiments of
The second I/O switch 402b is connected to an I/O controller 406 of the DC-SCM 304. In some embodiments, the I/O controller 406 is a USB controller. In other embodiments, the I/O controller 406 supports other port types, such as PS/2 ports, serial ports, Bluetooth®, Zigbee®, and the like. While a single I/O controller 406 is included in the DC-SCM 304 of
In some embodiments, the first and second I/O switches are Peripheral Component Interconnect Express (“PCIe”) devices that function like a multiplexer (“MUX”) to connect each of the two or more systems 110 to the appropriate controller (e.g., 404. 406). In other embodiments, other types of devices are used for the I/O switches 402 that are capable of connecting signals from the systems 110 to the controllers 404, 406.
The system 400 of
If the method 500 determines 504 that power usage of a system 110a of the two or more systems 110 has reached a power usage threshold, the method 500 selects 506 the system 110a that reached the power usage threshold and switches 508 an I/O switch 108 to send data for display of one or more elements of the selected system 110a to an electronic display 118, and the method 500 ends. In various embodiments, all or a portion of the method 500 is implemented using the power monitor 104, the threshold module 106, and/or the I/O switch 108.
If the method 600 determines 604 that power usage of a system 110a of the two or more systems 110 has reached a power usage threshold, the method 600 selects 606 the system 110a that reached the power usage threshold and switches 608 one or more I/O switches 108 to send data for display elements of the selected system 110a to an electronic display 118 and one or more I/O devices, such as a keyboard 120, mouse 122, etc. In some embodiments, the I/O switch 108 includes multiple drivers, controllers, etc. to accommodate video signals as well as I/O device signals. In other embodiments, the method 600 switches 608 inputs of two or more I/O switches 108, as depicted in
The method 600 receives 610 a selection, at some point, of a system (e.g., 110b) from a user, system administrator, etc. and switches 612 one or more I/O switches 108 to send data for display elements of the selected system 110a to an electronic display 118 and the one or more I/O devices, and the method 600 ends. User input to select a system 110 may be received before or after automatic selection of a system 110a based on power usage. In various embodiments, all or a portion of the method 600 is implemented using the power monitor 104, the threshold module 106, and/or the I/O switch 108.
Embodiments may be practiced in other specific forms. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Number | Name | Date | Kind |
---|---|---|---|
6557170 | Wilder | Apr 2003 | B1 |
7581125 | Ranganathan | Aug 2009 | B2 |
9250684 | Chen | Feb 2016 | B1 |
20030110205 | Johnson | Jun 2003 | A1 |
20040075638 | Han | Apr 2004 | A1 |
20060238526 | Kim | Oct 2006 | A1 |
20070257883 | Ke | Nov 2007 | A1 |
20080024433 | Gunther | Jan 2008 | A1 |
20100242038 | Berrange | Sep 2010 | A1 |
20150089308 | Angaluri | Mar 2015 | A1 |
20230334155 | Zhang | Oct 2023 | A1 |
20230334184 | Zhang | Oct 2023 | A1 |
Entry |
---|
U.S. Appl. No. 18/129,460, filed Mar. 31, 2023, Non-Final Office Action mailed Feb. 16, 2024, pp. 1-23. |
U.S. Appl. No. 18/129,460, filed Mar. 31, 2023, Final Office Action mailed Jun. 6, 2024, pp. 1-15. |
U.S. Appl. No. 18/129,460, filed Mar. 31, 2023, Notice of Allowance mailed Aug. 9, 2024, pp. 1-14. |
Number | Date | Country | |
---|---|---|---|
20240211423 A1 | Jun 2024 | US |