Patent Publication Number: US-8112534-B2

Title: Apparatus and method for remote power control

Description:
BACKGROUND 
     1. Technical Field 
     The present disclosure generally relates to apparatuses, methods and products in the field of information handling systems. 
     2. Background Information 
     As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. 
     SUMMARY 
     The following presents a general summary of several aspects of the disclosure in order to provide a basic understanding of at least some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure or to delineate the scope of the claims. The following summary merely presents some concepts of the disclosure in a general form as a prelude to the more detailed description that follows. 
     In one aspect, an information handling system apparatus is disclosed. The apparatus includes a first platform, a plurality of devices disposed on the platform, an interface in data communication with the first platform that receives a device request from a second platform, a monitor circuit that monitors one or more parameters, and a controller that controls a plurality of devices disposed on the platform, the control being based at least in part on the monitored one or more parameters and the device request. 
     Another aspect of the disclosure is a method including receiving at a first platform a device request from a second platform, monitoring one or more parameters, and controlling a plurality of devices disposed on the first platform using at least in part the monitored parameters and the device request. 
     Still another aspect is a computer-readable medium having stored thereon a data structure. The data structure includes a first field containing data representing resource requirements of a LOM when operated, a second field containing data representing total resource budget available on an information handling system platform, and a third field containing data representing an amount of resource budget in use on the platform wherein the third field and the second field are combinable for determining whether sufficient resources are available to accommodate a device request requesting that the LOM be activated. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For detailed understanding of the present disclosure, references should be made to the following detailed description of the several aspects taken in conjunction with the accompanying drawings, in which like elements have been given like numerals and wherein: 
         FIG. 1  schematically illustrates a non-limiting example of a local device communicating with a remote device; 
         FIG. 2  schematically illustrates a non-limiting example of a remote device platform with several LOM devices; 
         FIG. 3  illustrates a non-limiting example of a method for controlling devices on a platform; and 
         FIGS. 4A-4B  illustrate another non-limiting example of a method for controlling devices on a platform; and 
         FIG. 5  illustrates a non-limiting example of a data structure. 
     
    
    
     DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     For purposes of this disclosure, an information handling system may include, but is not limited to, any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components. 
       FIG. 1  schematically illustrates a non-limiting example of an information handling system local device  100  in data communication with an information handling system remote device  102 . The present disclosure is not limited to any particular data communication interface. For example, the local device  100  may communicate with the remote device  102  via a network  104  via a network interface  106 , or the local device  100  may communicate with the remote device  102  via a direct communication interface  108 . The network interface  106  may include any number of suitable interfaces including, but not limited to, a wireless interface, a cable interface and an optical interface. The direct interface  108  may include any number of suitable interfaces including, but not limited to, a wireless interface, a cable interface and an optical interface. Each interface  106 ,  108  may be bi-directional. 
     The network  104 , when used, is not limited to any particular network and may include, but is not limited to, a local area network (LAN), a wide area network (WAN), an intranet and the internet. 
     The local device  100  may be any suitable local device for communicating with a remote device. Non-limiting examples of local devices include an information handling system, a computer, a server, a telephone, and a radio transmitter/receiver. 
     The remote device  102  likewise may be any suitable device where remote access to the remote device is desirable. Non-limiting examples of local devices include an information handling system, a computer, a server, a telephone, and a radio transmitter/receiver. 
     In one aspect, the remote device  102  may include a hardware platform  116 , or simply platform  116 , having a number of devices  110 , a monitoring circuit  112  and a controller  114 . In one aspect, the remote device platform  116  may receive a device request from the local device  100  via the interface  106 ,  108 . The device request received at the platform  116  may then be evaluated by the controller  114 . 
     In one aspect, the monitoring circuit  112  may be used to monitor one or more parameters of the platform and/or of the devices  110 . The monitoring circuit may then provide an output signal, which may be used by the controller  114  to evaluate the device request. 
     For example, the device request may include a request to activate one of the several devices  110 . In this example, the monitoring circuit  112  may be used to monitor total power already in use by the platform and provide a signal representing the total power in use to the controller  114 . The controller  114  may then evaluate the device request to determine whether the requested device may be activated without imposing a burden on the platform resources. 
     In one aspect, when a device request cannot be accommodated, the remote device  102  may communicate back to the local device  100  providing a signal indicating that the remote platform  116  has unavailable resources to accommodate the request. In one aspect, the remote device platform controller may automatically deny the device request by gating the requested device without activating the requested device. In one non-limiting aspect, the remote device platform controller may automatically initiate a device hierarchy to automatically deactivate one or more currently activated devices in order to accommodate the device request. 
       FIG. 2  schematically illustrates a non-limiting example of a remote device platform  200  with several devices  202 ,  204 ,  206  disposed thereon. While the disclosure is not limited to any particular device, the devices shown include LAN-On-Motherboard (LOM) devices LOM 0 , LOM 1  through LOM i , where i is the number of individual devices. 
     In the non-limiting example configuration shown, a monitoring and control circuit  208  may be in data communication with a baseboard management controller (BMC)  210 , which may comprise microcontroller for managing the interface between system management software and platform hardware. The control circuit  208  may further be in data communication with the several LOM devices  202 ,  204 ,  206  via a bus  212 . The bus  212  may further be part of a system management bus (SMBus). The platform  200  may communicate with another platform or any other information handling system, device or component via a suitable interface  236 , which may include, but which is not limited to, a network interface card (NIC), a modem, and an electromagnetic or other wireless interface. 
     In one aspect, a power rail  214  may be used to provide electrical power to the several LOM devices  202 ,  204 ,  206 . As a non-limiting example, the power rail  214  may comprise an auxiliary power rail. The power rail  214  may provide controlled electrical power to each of the LOM devices using power gates  216 ,  218 ,  220 . For example, GATE 0  may control power to LOM 0 , GATE 1  may control power to LOM 1 , and so on to GATE i  controlling power to LOM i . While individually gated LOM devices are shown, the present disclosure contemplates and includes the use of a combination of gates controlling power to one or more devices and includes a single gate controlling power to more than one device. 
     In one non-limiting aspect, a memory  222 ,  224 ,  226  may be associated with a respective LOM device. The memory  222 ,  224 ,  226  may be, for example, a non-volatile memory such as Read Only Memory (ROM), an electrically-erasable programmable ROM (EEPROM), a non-volatile Random Access Memory (NVRAM) or any other suitable memory. Furthermore, each memory  222 ,  224 ,  226  need not be the same memory type. In some applications, it may be desirable to use one memory typr for one LOM device and another memory type for a second device, which may or may not be a LOM device. The memory  222 ,  224 ,  226  is in data communication with each LOM device via one or more clock/data interfaces  238 ,  240 ,  242 . Any suitable interface capable of providing data communication between the memory and LOM devices may be used. Furthermore the memory  222 ,  224 ,  226  may be packaged as a single memory device or multiple devices. 
     In one non-limiting aspect, the controller  208  comprises a power monitor and control (PMC) circuit including a current sense circuit, a memory  230  and a delay element  232 . The current sense circuit may be in data communication with each of the delay element  323  and the memory  230 . The memory  230  may be in data communication with each of the current sense circuit and the delay element and the delay element may be in data communication with each of the current sense circuit  228  and the memory  230 . 
     In one aspect the PMC  208  receives information regarding power available on the power bus  214  via a switching mechanism  234 . The switching mechanism  234  may be any number of suitable switching mechanisms, non-limiting examples of which include a switching transistor and a logic device. One type of switching transistor may include a field-effect transistor (FET). One type of logic device useful as a switching mechanism may include a complex programmable logic device (CPLD). The switching mechanism  234  may be used as a monitoring device for monitoring a system power state to activate the PMC  208  when, for example, the power state may be a peripheral component interconnect (PCI) power state such as D 3 hot. Those skilled in the art would recognize D 3 hot state as being one of several PCI power management states useful in wake-on-LAN (WOL) applications. The power states may be any of D 0  State-Full On; D 0  Uninitialized; D 0  Active; D 1  State-Light Sleep; D 2  State-Deep Sleep; D 3 -Full Off; D 3 Hot State; and D 3 Cold State. 
     In operation information handling system platforms  116 ,  200  as those described above and shown in  FIGS. 1 and 2  may comprise any number of information handling system types, non-limiting examples of which may include a computer, a server, a server blade, a telephone, audio-visual devices, and/or any other device which includes a processor. These several types of platforms may be used in any number of applications. In one non-limiting aspect, the platforms may be used in a wake-on-LAN application, wherein a local platform sends a device request to a remote platform to activate one or more devices on the remote platform. 
     In one non-limiting operational aspect, a user at a local platform may send a device request to a remote platform  200 , which receives the device request via the interface  236 . The device request may be in the form of a so-called magic packet, which is a data packet including instructions to activate (or awaken) a device on the remote platform  200 . 
     Various parameters are stored in the PMC  208  memory  230 . Non-limiting examples of stored parameters include total system resource budget and number of devices in the system. The resource budget may include total auxiliary power and/or current budget available to supply the several LOM devices  202 ,  204 ,  206 . When the remote platform  200  is in a low power state, the auxiliary power provided to the several LOM devices is controlled via the gate circuits  216 ,  218 ,  220 . 
     Device requests such as a WOL request received during a low power state may be used to activate the PMC  208 . In one aspect, each LOM device  202 ,  204 ,  206  has associated therewith operational specification parameters such as power requirements, which may be expressed as a current requirement. The specification parameter may be stored in a memory MEM i  associated with a particular LOM i  device. The designations MEM i  and LOM i  device means respective devices, which includes any respective devices such as MEM 0  associated with LOM 0 , MEM 1  associated with LOM 1 , and so on through MEM i  associated with LOM i . Each LOM i  device may further include an enable/disable parameter also stored in the respective memory  222 ,  224 ,  226 . The individual LOM i  device parameters may be transferred to the PMC memory  230  via the SMBus  212 . 
     The PMC circuit  208  may then be used to sense the resources (power/current budget) already in use, and data relating to the total resources in use may be transferred to the PMC circuit memory  230 . 
     Preprogrammed instructions executed by a processor on the remote platform  200  may be used to index through each LOM i  device upon receiving the device request to determine whether a particular LOM i  device is enabled. Where the LOM i  device is enabled, the processor determines from the stored parameters whether the power requirement for the particular LOM i  device exceeds the available resource budget. Where there are resources available, the respective gate  216 ,  218 ,  219  to the LOM i  device is then enabled to pass power to the selected LOM device. The preprogrammed instructions may then go on to the next LOM i  device and perform the same determinations as to whether to apply power to the LOM i  device. The sequence may be performed until all WOL-enabled LOM i  devices are powered and/or until available resources have been allocated. 
     In one non-limiting aspect, the PMC delay element  232  may be used to delay power applied to the selected LOM device for a sufficient time to account for any current spike generated by activating the LOM device. The delay may be used to ensure the total resource used parameter is representative of the operating current in use. 
     In one non-limiting aspect, the determination of available resources for a particular LOM device may result in a determination that insufficient resources exist to power the particular LOM device. In such cases, the associated gate  216 ,  218 ,  220  may be used to block power to the selected LOM device. 
     In one non-limiting aspect, a signal may be generated and transmitted to the BMC  210  to notify a user that the selected device will not function (even if enabled) due to insufficient platform resources. The user may be prompted to disable other LOM devices to reallocate resources to power the selected LOM device. 
     In another non-limiting aspect, the remote platform BMC  210  or other controller may be used to initiate an automatic hierarchy routine to automatically disable other devices already in use thereby increasing the available resources. The hierarchy routine may also automatically enable the gate to the selected LOM device for operation. Appropriate messages may be sent to the user regarding the automatically disabled devices and that system resources were reallocated to accommodate the device request. 
     The platform monitoring circuits  234 ,  228  and power budget information stored in memory allow the PMC  208  and/or other controllers  210  to process the device request and to determine whether sufficient platform resources, for example power, are available to accommodate the device request. 
     Having described several apparatus and operational aspects of the disclosure,  FIG. 3  illustrates a non-limiting example of a method  300  for controlling devices on an information handling system platform, such as, but not being limited to, platforms  116 ,  200  as described above and shown in  FIGS. 1 and 2 . The method includes receiving a device request at a remote platform. The method further includes determining whether sufficient platform resources are available to accommodate the device request. Where sufficient resources are available, the request may be accepted and the information handling system may then wait for another request. Where insufficient platform resources are available to accommodate the device request, the request may not be accepted. Optionally, the information handling system may advise the local platform sending the device request that the request will not be accommodated. Additionally, another non-limiting aspect may include implementing a resource hierarchy at the remote device. The hierarchy may be used to determine whether platform resources should be reallocated in order to accommodate the current device request. 
       FIGS. 4A-4B  illustrate another non-limiting example of a method  400  for controlling devices on a platform. The method may begin by storing or preprogramming information handling system parameters on an information handling system platform memory. The parameters stored my include total system resource budget information “X” and a total number “i” of devices on the information handling system platform. A decision may be made to determine whether the platform is in a low power state. In one aspect a PCI D 3 Hot signal is monitored to determine the system state. 
     In one non-limiting aspect, the method  400  includes gating power to all LOM devices when the platform is in a low power state and enabling the PMC circuit. 
     Still referring to  FIG. 4A , the non-limiting method example shown includes reading parameters associated with the several LOM devices and storing the parameters in a memory. In one aspect, the memory is used by the PMC, which memory may include an NVRAM memory. In one aspect, the parameters read include WOL settings and/or minimum power required for each LOM device WOL operation. The minimum power requirement may be the same or different for each LOM device and may be obtained through the particular device specification. The low power requirement may, for example, include a lower limit current specification expressed as Y 0  mA for LOM 0 , Y 1  mA for LOM 1  though Y i  mA for LOM i . The WOL settings may, for example, include an enable/disable setting, which will indicate whether a particular LOM device is enabled for WOL operation. Reading the parameters may include reading the parameters from memory associated with the LOM devices. In one aspect, each LOM device has a memory associated with that LOM device. In one aspect, the memory may include an NVRAM memory. 
     Still referring to the non-limiting example of  FIG. 4A , the method includes monitoring or sensing the power used, which sensing may include, but is not limited to, sensing the current drawn on the auxiliary power rail of the information handling system platform power supply. The sensed power may then be stored as power parameters in a memory. In one aspect storing the power parameters includes storing the power parameters a memory used by the PMC, which memory may include an NVRAM memory NVRAM memory. The power used may be stored in the memory as data, which may be expressed as Z and which may represent current drawn in mA. 
     Referring to  FIG. 4B , the non-limiting method example may include determining whether a particular LOM is enabled for WOL. A counter “i” may be initialized to “0” to begin the determination with LOM 0 . When the determination is that a particular LOM i  is enabled for WOL, the method includes determining whether there exists enough resources to accommodate activation of the particular LOM i . For example, determining whether sufficient resources are available may include determining whether Y i &lt;(X−Z). 
     Where there is inadequate resources available, for example Y i &gt;(X−Z), then the method may include gating or blocking auxiliary power to the particular LOM i . The method may further include sending a signal to a user interface to notify a user that insufficient resources exist. For example without limitation, a signal may be sent to the platform BMC to produce a dialog box on a user interface. A notice may include a notification that the selected LOM will not be functional due to insufficient auxiliary system power. The notice may further provide direction to the user. As a non-limiting example, a direction may include directing the user to disable WOL on one or more other LOM devices and/or NICs in order to use WOL on LOM i . In one aspect, the method then includes incrementing the counter i and determining whether there exists another LOM i . A next LOM i , if existing, will go through the same determining whether the LOM i  is enabled and whether there exists sufficient auxiliary power to operate that LOM i . 
     Where there is adequate resources available, for example Y i &lt;(X−Z), then the method may include providing power to that LOM i . In one non-limiting aspect, a delay may be added to account for initial current spikes associated with providing power to LOM i . In one aspect, the time of delay may be programmed into the PMC and may be a delay in increments of milliseconds. 
     Once LOM i  has been activated, the method may then include incrementing the counter i and determining whether there exists another LOM i . A next LOM i , if existing, will go through the same determining whether the LOM i  is enabled and whether there exists sufficient auxiliary power to operate that LOM i . 
       FIG. 5  illustrates a non-limiting example a data structure  500 , which may be stored in a computer-readable medium such as the NVRAM  222 ,  224 ,  226  associated with a respective LOM i    202 ,  204 ,  206 . In other non-limiting aspects, the data structure may alternatively or may also be stored on a memory such as an NVRAM  230  associated with the PMC  208  or any other suitable memory associated with the information handling system platform  200 . The data structure may include any number of fields representing, for example, total resource budget ans resource allocation for devices such as the LOM devices  202 ,  204 ,  206 . For example, field TOT_BUDGET  502  includes data indicative of the total resource budget available and field RES_TYPE  504  includes data indicative of the type of platform resource, for example power. Field LOM_REQ  506  may include data indicative of the particular LOM i  resource requirements, and field BUDGET_USED  508  may include data indicative of the platform resources already in use. The data structure may include field WOL_EN  510 , which may be indicative of whether the particular LOM is enabled for WOL operation. The fields may be combined and/or read as a whole to indicate whether sufficient resources exist to allow WOL of a particular LOM device when a device request is received by the platform.  FIG. 5  illustrates a multi-level multi-field data structure. The number of fields and levels may be more or less depending on the desired amount of resource and device information desired for a particular platform. In the non-limiting example shown, each level  512 ,  514 ,  516  relates to a particular LOM device. The above aspects are provided to illustrate examples of data structures and uses within the scope of the disclosure and the examples are to be considered non-exhaustive and non-limiting. 
     The present disclosure is to be taken as illustrative rather than as limiting the scope or nature of the claims below. Numerous modifications and variations will become apparent to those skilled in the art after studying the disclosure, including use of equivalent functional and/or structural substitutes for elements described herein, use of equivalent functional couplings for couplings described herein, and/or use of equivalent functional actions for actions described herein. Such insubstantial variations are to be considered within the scope of the claims below. 
     Given the above disclosure of general concepts and specific embodiments, the scope of protection is defined by the claims appended hereto. The issued claims are not to be taken as limiting Applicant&#39;s right to claim disclosed, but not yet literally claimed subject matter by way of one or more further applications including those filed pursuant to the laws of the United States and/or international treaty.