Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SELECTIVELY ENABLING LOADS USING A BACKUP POWER SUPPLY
Document Type and Number:
WIPO Patent Application WO/2016/114755
Kind Code:
A1
Abstract:
Example implementations relate to selectively enabling loads using a backup power supply. For example, a system includes a node and a backup power supply coupled to the node. The node includes a plurality of loads. The backup power supply includes a control module to selectively enable the plurality of loads based on a comparison of an available power of the backup power supply and a backup power demand of each of the plurality of loads.

Inventors:
FUXA JAMES ALEXANDER (US)
MAHESWARAN SIVATHEVAN (US)
WANG HAN (US)
ISKANDAR YOVITA (US)
Application Number:
PCT/US2015/011057
Publication Date:
July 21, 2016
Filing Date:
January 12, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD ENTPR DEV LP (US)
International Classes:
G06F1/26
Foreign References:
US20050086543A12005-04-21
US20050055587A12005-03-10
JP2012155503A2012-08-16
KR20140090796A2014-07-18
JP2010073030A2010-04-02
Attorney, Agent or Firm:
ADEKUNLE, Olaolu O et al. (3404 E. Harmony RoadMail Stop 7, Fort Collins CO, US)
Download PDF:
Claims:
CLAIMS What is claimed is: 1. A system, comprising:

a node including a plurality of loads; and

a backup power supply coupled to the node, the backup power supply

including a control module to selectively enable the plurality of loads based on a comparison of an available power of the backup power supply and a backup power demand of each of the plurality of loads. 2. The system of claim 1, the power supply control module to selectively enable the plurality of loads based on a priority level of each of the plurality of loads. 3. The system of claim 1, the control module to communicate with the plurality of loads, wherein the communication includes at least one of backup power demand for each load and a status update on the power availability of the backup power supply, and wherein an update interval is determined by each of the loads. 4. The system of claim 3, wherein the communication is sent via at least one of broadcast transmission and unicast transmission, based on a requirement of each load. 5. The system of claim 1, wherein the backup power supply is to selectively enable the plurality of loads prior to the backup power supply being fully charged. 6. The system of claim 1, wherein the selective enablement of the plurality of loads includes delivery of backup power to the plurality of loads in response to an interruption of a primary power supply. 7. The system of claim 1, wherein the backup power demand of each load includes backup time requirement, percentage of battery charge of the backup power supply, or units of power.

8. The system of claim 1, wherein the plurality of loads includes at least one of an array controller and a non-volatile dual in-line memory module (NVDIMM). 9. A method, comprising:

determining backup power demand of a plurality of loads of a node; and selectively enabling the plurality of loads based on a comparison of an

available power of a backup power supply and the backup power demand of each of the plurality of loads. 10. The method of claim 9, comprising selectively enabling the plurality of loads based on a priority level assigned to each of the plurality of loads, wherein selectively enabling the plurality of loads includes delivering backup power to the plurality of loads in response to an interruption of a primary power supply. 11. The method of claim 9, wherein determining the backup power demand of the loads includes:

receiving the backup power demand from each of the plurality of loads; and updating each of the plurality of loads on the power availability of the backup power supply at a time interval, wherein the time interval is determined by each load, and

wherein the backup power demand includes at least one of a backup time duration, a percentage battery charge of the backup power supply, and a unit of power measurement. 12. The method of claim 9, wherein selectively enabling the plurality of loads includes selectively enabling the plurality of loads prior to reaching a full charge of the backup power supply.

13. A non-transitory machine-readable storage medium encoded with instructions executable by a processor, the machine-readable storage medium comprising instructions to:

detect an interruption of primary power supply to a plurality of loads of a node;

selectively enable the plurality of loads based on a comparison of an available power of a backup power supply and at least one of a backup power demand of each load and a priority level of each load. 14. The non-transitory machine-readable storage medium of claim 13, comprising instructions to:

receive the backup power demand from each load; and

update each load on the power availability of the backup power supply at a predetermined time interval selected by each load,

wherein the backup power demand is measured in at least one of a duration of backup time, a percentage of backup power availability, and a unit of power measurement. 15. The non-transitory machine readable storage medium of claim 13, wherein the plurality of loads are selectively enabled prior to the backup power supply being fully charged.

Description:
SELECTIVELY ENABLING LOADS USING A BACKUP POWER SUPPLY BACKGROUND [0001] As reliance on computing systems continues to grow, so too does the demand for reliable power systems and backup schemes for these computing systems. Servers, for example, may provide architectures for backing up data to flash or persistent memory as well as backup power sources for powering the backup of data after an interruption of power. BRIEF DESCRIPTION OF THE DRAWINGS [0002] Some examples of the present application are described with respect to the following figures: [0003] FIG.1 is a block diagram of a system including a backup power supply to selectively enable a plurality of loads of a node, according to an example; [0004] FIG.2 is a block diagram of a system including a backup power supply to selectively enable a plurality of loads of a node, according to an example; [0005] FIG.3 is a flowchart illustrating a method for selectively enabling a plurality of loads of a node using a backup power supply, according to an example; [0006] FIG.4 is a flowchart illustrating a method for selectively enabling a plurality of loads of a node using a backup power supply, according to an example; and [0007] FIG.5 is a block diagram of a machine-readable storage medium including instructions executable by a processor to selectively enable a plurality of loads of a node using a backup power supply, according to an example. DETAILED DESCRIPTION [0008] A computing and/or data storage system can include a number of nodes. The nodes can be components of the system. For example, the nodes can include a server, a chassis of servers, a rack of servers, a group of servers, etc. A node (or device) can further include a plurality of loads. For example, a load can be cache memory, dual in-line memory modules (DIMMs), non-volatile dual in-line memory modules (NVDIMMs), and/or array control logic, among other storage controllers and/or devices.

[0009] A node and its corresponding loads can experience an interruption of a primary power supply. An interruption of a primary power supply can be scheduled or un-scheduled. For instance, a scheduled interruption of primary power supply can be a result of scheduled maintenance on the device and/or the loads. An unscheduled primary power supply interruption can be an interruption in the primary power supply. An unscheduled primary power supply interruption can occur when, for example, the primary power supply fails momentarily or for an extended period of time. The failure can include an unintentional loss of power to devices and/or loads from the primary power supply. Interruption of a primary power supply can refer to a power failure, power surge, inadequate power, and/or transient faults.

[0010] A secondary power supply can be used to provide backup power to the loads during interruption of the primary power supply, for example, for moving data from volatile or cache memory to non-volatile memory. The backup power supply can be shared by the loads. Thus, the backup power supply can support the plurality of loads (i.e., provide backup power) during interruption of primary power. A backup power supply can provide near-instantaneous protection from power interruption by supplying energy stored in batteries, super capacitors, or flywheels, among others.

[0011] As memory density increases and backup power supply capacity increases, the charge time (e.g., available power from a battery source) for a backup power supply may also increase from a few minutes to hours, or even more. This longer charge time means that backup power, during primary power interruption, may be unavailable to loads such as non-volatile memory (NVM) modules to perform data backup, thereby reducing the performance of the system. For example, NVM modules in a server node may not operate in a write-mode until the battery is fully charged to provide backup power. Thus, the NVM modules may operate in read-only mode longer (i.e., write-mode is disabled), preventing battery backed memory devices from acting non-volatile for longer periods. During these periods, system

functionality may be significantly hampered.

[0012] Examples disclosed herein address the above needs and challenges by providing a solution for selectively or partially enabling battery backed cache memory (e.g., double data rate (DDR) memory) while a backup power supply (e.g., a battery or including a battery) is charging. The examples disclosed herein provide a solution for enabling portions of the DDR backed memory, prior to the backup power supply being fully charged. Partial enablement of the loads can significantly increase the performance of the system compared to waiting until the backup power supply is fully charged (e.g., 100% power) before enabling the loads. In some examples, the selective enablement of the load can be based on a comparison of the available power of the backup power supply (e.g., level of charge) to at least one of power demands of the load and priority levels of the load.

[0013] In one example, a system includes a node and a backup power supply coupled to the node. The node includes a plurality of loads. The backup power supply includes a control module to selectively enable the plurality of loads based on a comparison of an available power of the backup power supply and a backup power demand of each of the plurality of loads.

[0014] In another example, a method includes determining a backup power demand of a plurality of loads of a node. The method includes selectively enabling the plurality of loads based on a comparison of an available power of a backup power supply and the backup power demand of each of the plurality of loads.

[0015] In another example, a non-transitory machine-readable storage medium is encoded with instructions executable by a processor to detect an interruption of primary power supply to a plurality of loads of a node and to selectively enable the plurality of loads based on a comparison of an available power of a backup power supply and at least one of a backup power demand of each load and a priority level of each load.

[0016] As used herein“selectively enabling” or“partially enabling” loads means to enable, by providing backup power supply, a subset of a plurality of loads in response to interruption of primary power supply. The subset of loads can include one or more or all of the plurality loads.

[0017] Referring now to the figures, FIG.1 is a block diagram of a system including a backup power supply to selectively enable a plurality of loads of a node, according to an example. System 100 can include a node 106 (e.g., a server node) and a backup power supply 102. Node 106 can include a plurality of loads (e.g., load 116- 1, load 116-2, load 116-3… load 116-N, collectively referred to herein as load 116). For instance, load 116 can include a plurality of storage controllers and/or devices such as DIMMs and NVDIMMs, network interface controllers (NICs), array controllers (e.g., smart array controllers (SACs)), video cards, processing resources, and the like.

[0018] Backup power supply 102 can be or include an energy component to convert stored energy to electrical energy to deliver power to the loads 116 of the node 106. Examples of backup power supply 102 can include, but are not limited to, a rechargeable battery, a capacitor (e.g., supercapacitor, ultracapacitor, etc.), a flywheel, and the like. While FIG.1 illustrates the backup power supply 102 as a separate component from the node 106, examples are not so limited. For example, backup power supply 102 can be a power supply that is an integrated component of the node 106, as shown in the example of FIG.2, and is used to provide backup power to the node 106, such as power for transferring data from a volatile memory of the node 106 to non-volatile memory of the node 106 when a primary power supply of the node 106 is interrupted. In such an example, the backup power supply 102 can reside in a slot of the node 106 (e.g., be physically and/or directly plugged into a slot of the node 106). Accordingly, the backup power supply 102 can protect hardware components of the system 100, such as a processing resource (e.g., system central processing unit (CPU)) and various system devices from data loss in response to the primary power supply interruption. Primary power supply can include an alternating current (AC) power supply such as voltage from a wall outlet (mains supply) that is lowered to a desired voltage (e.g., 12V).

[0019] In some examples, backup power supply 102 can be a shared backup power supply rather than providing a backup power supply for each load within the node 106. That is, load 106 having a plurality of loads 116 can be provided with a shared backup power supply instead of, for example, providing a dedicated backup power supply for each load 116 within the node 106 and therefore a single node could contain a plurality of backup power supplies. In this manner, backup power supply 102 can provide temporary source of power, for a threshold time, to loads 116 associated with the node 106 when the primary power supply is interrupted.

[0020] Backup power supply 102 can include a backup power control module 112. Backup power control module 112 may include, but is not limited to, a processor, circuit logic, a set of instructions executable by a processor, a microchip, a chipset, an electronic circuit, a microprocessor, a microcontroller, a central processing unit, or the like (i.e., hardware, firmware, logic and/or executable instructions).

Backup power control module 112 may control the operations of the backup power supply 102. For example, backup power control module 112 may control power charging and discharging of the backup power supply 102 or other operations of the backup power supply 102 such as communication with the node 106 and loads 116, provide protection to the backup power supply 102 such as short circuit protection, charge/discharge protection, current/voltage protection, temperature protection, communication accuracy/error robust protection, etc.

[0021] In various examples, backup power control module 112 may selectively enable the plurality of loads 116 of the node 106, by providing backup power from the backup power supply 102, to the plurality of loads 116 when the main power supplying the loads 116 fails, as described more fully herein. The backup power is provided based on a comparison of an available power of the backup power supply 102 and a backup power demand and/or priority level of each of the loads 116. In various examples, the loads 116 are selectively enabled prior to the backup power supply 102 being fully charged.

[0022] Backup power control module 112 can communicate with the loads 116 and/or the node 106 to determine the backup power demand of the loads 116 and communicate status update on the power availability of the backup power supply 102. Backup power demand of the loads can be expressed and communicated as one or more of backup time requirement (e.g., in seconds), percentage of battery charge of the backup power supply 102 (e.g., X%, where‘X’ is an integer), and units of power (e.g., Watts, Joules, etc.). Further, backup power control module 112 can periodically communicate status update of the backup power supply 102 to the loads 116. For example, the status update can inform the loads 116 on the current charge state of the backup power supply 102 at certain time intervals.

[0023] In some examples, the time interval for receiving updates from the backup power supply 102 can be determined by each of the loads. To illustrate a first load 116-1 may request an update from the backup power supply 102 every 10 seconds, a second load 116-2 may request an update every 20 seconds, and a third load 116-2 may request an update every 30 seconds. In other examples, the loads 116 may each request updates when a predetermined threshold of charge is reached at the backup power supply 102 (e.g., charge time or % charge). In yet other examples, loads 116 may only request updates when the backup power supply 102 is fully charged (e.g., disable notifications until fully charge is reached at the backup power supply 102). Accordingly, each load 116 may determine when to receive a status update from the backup power supply 102.

[0024] In some examples, communication (e.g., updates) from the backup power supply 102 to the loads 116 can be sent via at least one of broadcast transmission and unicast transmission (i.e., point to point messaging), based on the requirement of each load 116. The communication method can include any standard transport medium such as inter-integrated circuit (I2C), peripheral component interconnect (PCI), and the like. In addition, the communication protocol can include a variety of protocols such as management component transport protocol (MCTP), a simple register interface, and the like.

[0025] By selectively enabling the plurality of loads 116 as described above, and prior to the backup power supply 102 being fully charged, performance of the system 100 may be significantly increased faster without waiting for the backup power supply 102 to be fully charged. Further, enablement of segmented memory regions of the node 106 (e.g., a server) may provide better control to speed up server performance. In addition, the described solution provides the ability to scale backup power size (e.g., battery size) to support more loads as bigger batteries and increased loads will not significantly reduce performance, because the increased/additional battery size can enable the loads prior to being fully charged.

[0026] FIG.2 is a block diagram of a system including a backup power supply to selectively enable a plurality of loads of a node, according to an example. System 200 includes a node 206 (e.g., a server node). Node 206 includes a backup power supply 202, a plurality of array controllers (e.g., array controller 226-1 and array controller 226-2, collectively referred to herein as array controllers 226) each including miniDIMMs, and a plurality of NVDIMMs (e.g., NVDIMM 216-1 and NVDIMM 216-2, collectively referred to herein as NVDIMMs 216). Array controllers 226 and NVDIMMs 216 represent the loads of the node 206. System 200 can also include a primary power supply 208 (e.g., mains power) coupled to the node 206.

[0027] Backup power supply 202 includes a backup power control module 212 to control the operations of the backup power supply 202. Backup power control module 212 can selectively enable the array controllers 226 and NVDIMMs 216 based on a comparison of an available power of the backup power supply 202 and a backup power demand of each of the array controllers 226 and NVDIMMs 216 and/or a priority level of each of the array controllers 226 and NVDIMMs 216. The selective enablement of the array controllers 226 and NVDIMMs 216 can be performed in response to interruption of power from the primary power supply 208 and prior to the backup power supply 202 reaching a full charge.

[0028] In various examples, the array controllers 226 and NVDIMMs 216 can communicate power demands and priority levels to the backup power supply 202. Similarly, the backup power supply 202 can communicate status update (e.g., charge level) to the array controllers 226 and NVDIMMs 216. For example, the array controllers 226 and NVDIMMs 216 can communicate power demands in units of time (e.g., seconds) representing backup time needs, percentage charge of the backup power supply 202, or units of power (e.g., Joules). Further, the backup power supply 202 can communicate periodic status updates to the array controllers 226 and NVDIMMs 216, where the status update includes a percentage charge of the backup power supply 202. In some examples, the interval for the status update can be determined by the array controllers 226 and NVDIMMs 216 and the interval can be different for each array controller 226 and NVDIMM 216.

[0029] To illustrate, NVDIMM 216-1 can be a small NVDIMM that requires 100s of backup time with a 1 st priority level; NVDIMM 216-2 can be a large

NVDIMM that requires 200s of backup time with a 1 st priority level; array controller 226-1 can be a smart array with three (3) battery backed regions, where Region1 requires 10s of backup time with a 2 nd priority level, Region2 requires 20s of backup time with a 3 rd priority level, and Region3 requires 40s of backup time with a 4 th priority level; and array controller 226-2 can be a smart array with two (2) battery backed regions, where Region1 requires 20s of backup time with a 3 rd priority level, and Region2 requires 50s of backup time with a 4 th priority level, for example, and as shown in the table below.

[0030] During operation, when a charge of the backup power supply 202 reaches 100s of available backup time, backup power control module 212 enables NVDIMM 216-1 (i.e., by providing backup power). When the charge of the backup power supply 202 reaches 300s, NVDIMM 216-2 is enabled. When the charge of the backup power supply 202 reaches 310s, Region1 of array controller 226-1 is enabled. When the charge of the backup power supply 202 reaches 330s, Region2 of array controller 226-1 is enabled. When the charge of the backup power supply 202 reaches 350s, Region1 of array controller 226-2 is enabled. When the charge of the backup power supply 202 reaches 390s, Region3 of array controller 226-1 is enabled. When the charge of the backup power supply 202 reaches 440s, Region 2 of array controller 226-2 is enabled. By this process, the array controllers 226 and NVDIMMs 216 can be incrementally or sequentially enabled as the backup power supply 202 is charging instead of enabling all the array controllers 226 and NVDIMMs 216 together when the backup power supply is fully charged (which may take a long time depending on the size/capacity of the backup power supply 202), thereby improving the performance of the system 200.

[0031] FIG.3 is a flowchart illustrating a method for selectively enabling a plurality of loads of a node using a backup power supply, according to an example. Method 300 can be implemented, for example, in the form of executable instructions stored on a non-transitory machine-readable storage medium and/or in the form of electronic circuitry.

[0032] Method 300 includes determining backup power demand of a plurality of loads of a node, at 310. For example, the loads 116 may communicate power requirements to the backup power control module 112 of the backup power supply 102. The backup power requirement can be represented in units of time (e.g., seconds), percentage charge of the backup power supply 102, or units of power (e.g., Joules). In other examples, the backup power control module 112 can estimate or calculate the backup power demand of the loads 116.

[0033] Method 300 also includes selectively enabling the plurality of loads based on a comparison of an available power of a backup power supply and the backup power demand of each of the plurality of loads 116, at 320. For example, the backup power control module 112 can determine an available power of the backup power supply 102 (e.g., amount or percentage of charge) and compare the available power of the backup power supply to the power demands of the loads 116. The backup power control module 112 can selectively enable the loads 116 based on the comparison, by providing backup power to one or more of the loads 116. In some examples, the method 300 of FIG.3 includes additional steps in addition to and/or in lieu of those depicted in FIG.3.

[0034] FIG.4 is a flowchart illustrating a method for selectively enabling a plurality of loads of a node using a backup power supply, according to an example. Method 400 can be implemented, for example, in the form of executable instructions stored on a non-transitory machine-readable storage medium and/or in the form of electronic circuitry.

[0035] Method 400 includes receiving backup power demand from each of a plurality of loads of a node, at 410. For example, loads 116 of node 106 (e.g., a server) can communicate backup power demands to backup power control module 112 of backup power supply 102. The backup power demand can represent backup power requirements of the loads 116, represented in units of time, units of power, or as a percentage charge of the backup power supply 102.

[0036] Method 400 includes updating each of the plurality of loads on a power availability of a backup power supply at a time interval, where the time interval is determined by each load, and where the backup power demand includes at least one of a backup time duration, a percentage battery charge of the backup power supply and a unit of power measurement, at 420. For example, the backup power control module 112 can communicate status update (e.g., percentage charge of the backup power supply 102) to the loads at time intervals determined by each load 116 (e.g., every 10s, 100s, 200s, etc.). The status update can be communicated via broadcast messaging or unicast messaging.

[0037] Method 400 includes selectively enabling the plurality of loads based on a comparison of an available power of the backup power supply and the backup power demand of each of the plurality of loads, at 430. For example, the backup power control module 112 can selectively enable (i.e., provide backup power) the loads 116 based on a comparison of available power (e.g., charge level) of the backup power supply 102 to the backup power demand of the loads 116.

[0038] Method 400 also includes selectively enabling the plurality of loads based on a priority level assigned to each of the plurality of loads, where selectively enabling includes delivering backup power to the plurality of loads in response to an interruption of primary power supply, and where selectively enabling is performed prior to reaching a full charge of the backup power supply, at 440. For example, the backup power control module 112 can selectively enable the loads based on a priority level of the loads 116 (e.g., #1, #2, #3…). The loads 116 can be selectively enabled before the backup power supply 102 is fully charged to improve performance. In some examples, the method 400 of FIG.4 includes additional steps in addition to and/or in lieu of those depicted in FIG.4.

[0039] FIG.5 is a block diagram of a machine-readable storage medium including instructions executable by a processor to selectively enable a plurality of loads of a node using a backup power supply, according to an example. Node 500 (e.g., a server node) includes machine-readable storage medium 520. Machine- readable storage medium 520 includes instructions 521, 522, and 523 executable by a processor 510 to perform the functionalities described therein.

[0040] Power interruption detecting instructions 521 include instructions to detect an interruption of primary power supply to a plurality of loads of a node. For example, the node 500 can determine that the primary power supply 208 is interrupted (e.g., fails). The detection can trigger supply of backup power from the backup power supply.

[0041] Load enabling instructions 522 include instructions to selectively enable the plurality of loads based on a comparison of an available power of a backup power supply and at least one of a backup power demand of each load and a priority level of each load. For example, the backup power supply 102 can selectively enable (i.e., provide power) to the loads based on a comparison of available power (e.g., charge level) of the backup power supply 102 and the power demand and/or priority level of each load 116.

[0042] Communication routing instructions 523 include instructions to receive the backup power demand from each load and to update each load on the power availability of the backup power supply at a predetermined time interval selected by each load. For example, data and information can be communicated between the loads 116 and the backup power supply 102. The loads 116 can each communicate backup power requirements to the backup power supply 102. Similarly, the backup power supply 102 can communicate status update including a charge level to the loads at time intervals determined by the loads 116.

[0043] The techniques described above may be embodied in a computer-readable medium for configuring a computing system to execute the method. The computer- readable media may include, for example and without limitation, any number of the following non-transitive mediums: magnetic storage media including disk and tape storage media; optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media; holographic memory; nonvolatile memory storage media including semiconductor-based memory units such as FLASH memory, EEPROM, EPROM, ROM; ferromagnetic digital memories; volatile storage media including registers, buffers or caches, main memory, RAM, etc.; and the Internet, just to name a few. Other new and obvious types of computer-readable media may be used to store the software modules discussed herein. Computing systems may be found in many forms including but not limited to mainframes, minicomputers, servers, workstations, personal computers, notepads, personal digital assistants, tablets, smartphones, various wireless devices and embedded systems, just to name a few.

[0044] In the foregoing description, numerous details are set forth to provide an understanding of the present disclosure. However, it will be understood by those skilled in the art that the present disclosure may be practiced without these details. While the present disclosure has been disclosed with respect to a limited number of examples, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the present disclosure.