WO2016137482A1 - Auxiliary power source based on utilization - Google Patents
Auxiliary power source based on utilization Download PDFInfo
- Publication number
- WO2016137482A1 WO2016137482A1 PCT/US2015/017958 US2015017958W WO2016137482A1 WO 2016137482 A1 WO2016137482 A1 WO 2016137482A1 US 2015017958 W US2015017958 W US 2015017958W WO 2016137482 A1 WO2016137482 A1 WO 2016137482A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- auxiliary power
- power source
- target
- charge
- electrical
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J9/00—Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting
- H02J9/04—Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting in which the distribution system is disconnected from the normal source and connected to a standby source
- H02J9/06—Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting in which the distribution system is disconnected from the normal source and connected to a standby source with automatic change-over, e.g. UPS systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3031—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a motherboard or an expansion card
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
Definitions
- J00013 Electrical devices commonly employ electronic circuits to provide
- Electricity is commonly provided to the eiectronic devices from a power source, such as a battery providing direct current or an electric outlet providing alternating current. Functiona!ity prOduced by eiectronic circuits can cease without sufficient power provided from a power source.
- Figures 1-3 are block diagrams depicting example systems for providing auxiliary power to an electrical component
- Figure 4 depicts example modules used to implement example systems for providing auxiliary power to an electrical component.
- Figures 5 and 8 are fiow diagrams depicting exampl methods for providing auxiliary power to an electrical component.
- Components can include their own backup battery unit ("BBU") or other backup power source to allow the component to continue operating when an initial power source ceases to be available.
- BBU backup battery unit
- a backup battery can fas! to be charged or be low in charge due to a previous reboot or other system power event.
- a system may wait to aliow for a sufficient charge to operate the component using the backup battery.
- charging time can range from five minutes to about an hour for particular storage mediums with data protection capabilities depending on the capacity of the battery or super capacitor and the vo!tage level utilized by memory storage devices of a computing system (e.g., assuming about five minutes to charge a four watt load for a single data protection storage medium). This can result in a significant deiay for a system boot.
- a system may have a capacity to hold up to sixteen or twenty four memory devices with data protection. Simply replacing the battery or capacitor with a larger power source may not solve the problem of having a relatively long charging time based on a frequency of system power events,
- auxiliary power sources can be used to supply power to the electrical component.
- Having multiple auxiliary power sources can aiiow for a subset of the auxiliary power sources to charge while only the other subset of the auxiliary power sources are discharging, and thereby, reduce wait time.
- Figures 1-3 are block diagrams depicting example systems 100, 200, and 300 for providing auxiliary power to an electrical component.
- the example system 100 of Figure 1 generally includes a data engine 104, a target engine 106, and a switch engine 108. in genera!, the switch engine 108 supplies power from the target auxiliary power source identified by the target engine 106 using the utilization data retrieved by the data engine 104.
- the data engine 104 represents any circuitry or combination of circuitry and executable instructions to retrieve utilization data of a plurality of auxiliary power sources and an electrical component.
- utilization data represents any values, characters, strings, or other data structure containing information regarding the use of power by the auxiliary power sources and/or the use of power by an electrical component or components.
- utilization data can include the power required to operate an electrical component of a system and how much power is available from an auxiliary power source.
- utilization data can include a record identifier, which, as used herein, represents an indicator of the last used auxiliary power source.
- a record identifier can be an value, character, string, or other data structure.
- a power requirement is information associated with the amount of voltage used to operate a component of a system.
- a power requirement can be an amount of the power to enable a storage device to perform a particular function or an amount of power to enable an electrical device to be completely operational (i.e., enable all functions capable by the device).
- the components to be supplied with power can be any appropriate class of components used in a compute device.
- an electrical component Is any physical device or circuitry of the compute device.
- Example electrical components include electrical data protection components which utilize functionalities to protect data of the compute device, such as a memory device with data protection capabilities or a controller of the memory device.
- NV non-volatile
- DIMM dual-inline memor module
- DRAM dynamic random access memory
- NAND NV negative-arid
- the NV NAND is to be sufficiently powered to save data from the DRAM upon a system power event.
- electrical data protection components include a disk array controller that manages a plurality of hard drives (such as a redundant array of independent disks (“RAID”) controller) to provid redundancy and/or other form of data backup and cache used by the disk array controller.
- the "backup" functionalities i.e., the data protection functionalities
- the "backup" functionalities are capabilities of a device to protect data at the occurrence of a system power event (i.e., an event that triggers data saving, such as a loss of primary power, a graceful shutdown, a system error, and the like) where the functionalities can occu after primary power is lost by using auxiliary power from an auxiliary power source.
- An electrical data protection component can utilize an auxiliary power source to perform the backup functionality, in particular when the system event is a vast power failure.
- An auxiliary power source comprises any battery, capacitor, or the like, that can be used as to power a component when a primary source is no longer available.
- Example batteries include batteries usable with a BBU
- Example capacitors include super-capacitors and ultra-capacitors.
- Auxiliary power sources can be implemented per component or as a power resource pool where a plurality of auxiliary power sources supply power to a number of components that may be different than the number of the auxiliary power sources.
- Type-1 NVDIMIvls can be adapted to receive power from a plurality of auxiliary power sources rather than having a dedicated auxiliary power source for each NVDIM .
- the plurality of auxiliary power sources should comprise power sources that are operational.
- the data engine 104 can retrieve information in response to an operational verification of an electrical data protection component (e.g., when a POST identities an electrical data protection as operational and the compute device is to boot up with the capabilities of the electrical data protection component enabled).
- the data engine 104 can retrieve a variety of utilization data. For example, the data engine 104 can retrieve at least one of a voltage of the plurality of auxiliary power sources, a record identifier associated with the last used auxiliary power source, a memory component size, an operational voltage level based on a calculation of a power requirement of the electrical component, and a number of sibling components of electrical component (e.g., components that utilize the same amount of operational voltage).
- the data engine 104 can retrieve data in a variety of mechanisms, For example, the data engine 104 can read a register via a general purpose input output (“GPIO") interface to obtain the power requirement for a DIMM component.
- GPIO general purpose input output
- the data engine 104 can be coupled to or integrated into a CPLD to access a GPIO register to obtain serial presence detect ("SPD”) information of the DIMM
- SPD information describes attributes of system components, including the power requirement of the DIMM component, as well as the size, the speed, and other characteristics of DRAM chips in volatile memory.
- the data engine 104 can retrieve information (e.g., SPD information) from any appropriate interface that can supply a power requirement of the electrtca! component and/or information to caiculate the power requirement.
- the data engine 104 can utilize retrieved information to calculate data used by the target engine 106 and/or the switch engine 108.
- the data engine 104 can calculate a first auxiliary power level to initiate operation of a piuraiity of memor components based on a memory component size and a number of memor components ⁇ e.g., wherein a memory component is a DIMM of a plurality of D!M s and a power requirement of the piuraiity of DIMMs is calculated based on a size of a D! M multiplied by the number of DIMMs).
- a memory component and/or storage medium as discussed herein can comprise volatile memory, non-volatile memory, or a combination thereof ⁇ e.g., mixed memory).
- the data engine 104 can calculate a second auxiliary power level to initiate operation of the storage controller based on an operational voltage level (i.e., an amount of voltage required for an electrical component to be operational) of the controller to manage a plurality of devices managed by the storage controller,
- an operational voltage level i.e., an amount of voltage required for an electrical component to be operational
- target engine 106 represents any circuitry or combination of circuitry and executable instructions to determine which of the plurality of auxiliary power sources is to be a target power source.
- the target power source as used herein, is a designated subset of the piuraiity of auxiliary power sources to provide power to at least one electrical component.
- the target power source can be any one of the plurality of auxiliary power sources other than the last used power source as indicated by the record identifier.
- the target engine 106 can maintain a list of operational auxiliary power sources and maintain a record identifier of the last used auxiliary power source.
- the target engine 106 can perform a round-robin technique to identify and select an auxiliary power source to provide powe where the round robin technique identifies and selects the auxiliary power source that has been charging the longest amount of time, in that example, the selected power source would likely have the most charge (e.g., highest power level) of plurality of auxiliary power sources because the most time would have elapsed since that power source's last discharge in comparison to the last discharge of the other auxiliary power sources.
- the target engine 106 can identify the auxiliary power source with the highest charge of the plurality of auxiliary power sources based on a comparison of voltage data retrieved b the data engine 104 for each of the plurality of auxiliary power sources,
- the target engine 108 can identify a charge threshold to achieve by the auxiliary power source, in other words, the target engine 106 can determine a level of charging required by th auxiliary power source to meet the power consumption for operation of the electrical component. For example, a number of electrica! components may be designated to receive power from the auxiliary power source and the amount of charge to supply to the number of electrical components can be determined from information available from the components (e.g., the information is resident on the electrical component) to calculate a threshold charge.
- a server device may support sixteen NVOIM s where two NVDIM s may suffic for customer operations and the charge threshold could be charge level or a percentage of the capacitor (e.g., a partial charge) which would be sufficient to charge the two NVDIMMs, such as 15% of the charge capacity or eight watts (assuming four watts per NVDI M).
- the target engine 106 can calculate a charge voltage threshold based on an operational voltage level and a charge state of the target power source.
- the target engine 108 can calculate a minimum charge voltage level from a required operational voltage level specified on a DIMM.
- a difference in the current voltage level and the minimum charge voltage level can be calculated.
- a charge state represents a state of a power source, such as dead state, partially charged state, fully charged state, etc.
- the switch engine 108 represents any circuitry or combination of circuitry and executabie instructions to cause power to route to an electrical component from the target power source.
- the switch engine 108 can be a complex
- the switch engine 108 is to manage the electrical routing of the power from the power source to the electrical components. In this manner, the switch engine 108 can cause power to be provided (e.g., supplied) to the electrica! components by managing circuitry to complete an electrica! connection between the target power source and the electrica! component ⁇ s) to receive power from an auxiliary power source. For example, the switch engine 108 can supply power to an electrical data protection component when a basic input output system ("BIOS”) identifies the charge state of a target power source achieves a charge voltage
- BIOS basic input output system
- Any reference to a B!OS made herein can comprise system using a control program interface, such as a unified extensible firmware interface (“UEFi”) system or a programmable logic array (“PLA”) programmed to identify a charge state.
- UEFi unified extensible firmware interface
- PDA programmable logic array
- the switch engine 108 can manage and/o work in conjunction with a voltage detection mechanism to identify when the determined target power source has sufficient charge to meet the charge threshold. For example, upon receipt of a hymnage charge signal indicating the charge threshold is met, the switch engine 108 can activate the suppiy of power from the target power source to an electrical component,
- a distrage detection mechanism is any appropriate protocol, circuitry, or combination of circuitry and executable instructions to indicate to the switch engine 108 the voltage of an auxiliary power source.
- an application of a compute device can periodically verify the state of a target power source (e.g.
- the BIOS can monitor a power source to identify a voltage level) and evaluate the amount of charge of the target power source based on utilization data (e.g., the state of the power source can be a voltage level of the power source).
- the voltage detection mechanism can be a configuration of a BIOS and the circuitry of the system to detect a distrage.
- the switch engine 108 can at least one of configure an auxiliary power controller to send a charge threshold signal to a BIOS when a charge voltage threshold is achieved and configure the BIOS to periodically check the charge state of the target power source until the charge voltage threshold is achieved.
- the target power source of the plurality of auxiliary power sources can suppiy power to th electrical system component(s).
- Figures 2 and 3 depict the example systems 200 and 300 can comprise a memory resource 220 operativel coupled to a processor resource 222.
- the processor resource 222 can be operatively coupled to power switch circuitry 210, auxiliary power sources 212, and electrical components 214.
- the power switch circuitry 210 can electrically couple the plurality of auxiliary power sources 212 to the plurality of electrical components 214.
- the power switch circuitry 210 represents electronic circuitry (e.g., a combination of electrical elements, such as resistors, transistors, capacitors, inductors, and diodes) to connect power from the auxiliary power sources 212 to the electrical components 214, where the connection can be changed to direct power from a subset of the plurality of auxiliary power sources 212 ⁇ that can vary at each provisioning of power) to the electrical components 214.
- the processor resource 222 can be coupled directl or indirectly to the circuitry 210, power sources 212, and components 214.
- the processor resource 222 can access information regarding the auxiliary power sources 212 via a power controller 316 and access information regarding the electrical components 214 via the component controller 318.
- the dotted lines of Figure 3 represent logical connections among the power switch circuitry 210, the auxiliary power sources 212, and the electrical components 214 where the logical connection (which can be a direct physical connection) represents a connection to transfer power from an auxiliary power source 212 to an electrical component 214 and enable operation of the electrical component 214.
- Th power controller 316 of Figure 3 represents circuitry or a combination of circuitry and executable instructions to manage and/or access information of the auxiliary power sources 212, such as a voltage level.
- a processor resource 222 executing a data module 204 (or a data engine 104) can communicate with the power controlle 316 to retrieve a charge state from one of the plurality of auxiliary power sources 214.
- the component controller 318 represents circuitry or a combination of circuitry and executable instructions to manage and/or access information of the electrical components 214, such as a number of electrical
- a processor resource 222 executing a data modu!e 204 can communicate with a component controller 318 to retrieve an operational voltage level of an electrical data protection component.
- the memory resource 220 can contain a set of instructions that are executable by the processor resource 222.
- the set of instructions are operable to cause the processor resource 222 to perform operations of the systems 200 and 300 when the set of instructions are executed by the processor resource 222.
- the set of instructions stored on the memory resource 220 can be represented as a data module 204, a target module 206, switch module 208, and BIOS module 302.
- the data module 204, the target module 206, and the switch module 208 of Figure 2 represent program instructions that when executed function as the data engine 104, the target engine 106, and the switch engine 108 of Figure 1 , respectively.
- the BIOS module 302 of Figure 3 represents program instructions contained on memory resource 220 that when executed by the processor resource 222 cause the processor resource 222 to perform auxiliary power management functions and eiectrica! component management functions as managed by a BIOS.
- the processor resource 222 can maintain a record of the power source usage history, initiate a system call to check the power source lakeage Sevei of an auxiliary power source 212, cause a power source control command to be sent to change the power switch circuitry 210 to connect a target power source 212 to an electrical component 214, and recognize the electrical component 214 as available to an operating system.
- the processor resource 222 can carry out a set of instructions to execute the modules 204, 206, 208, 302, and/or any other appropriate operations among and/or associated with the modules of the systems 200 and 300, For example, the processor resource 222 can carry out a set of
- the processor resource 222 can carry out a set of instructions to check a data record to identify which of the pluralit of auxiliary power sources 212 was used most recently and cause a controller that manages an inter-integrated circuit ⁇ "S2C" bus to read a register via a GPIO interface to obtain a power requirement for DIMM component using SPD information.
- the processor resource 222 can carry out a set of instructions to calculate a charge threshold level based on the power requirement of the number of electrical components 214 and charge at least a second auxiliary powe source (e.g. a secondary target power source) to the charge threshold level.
- the watt time fo charging at a following boot process can be zero (e.g., immediate powering of the eiectrica! components and continuing with the boot process) or significantiy reduced because a second auxiliary power source has been sufficiently powered at the time of completion of the preceding boot process.
- This allows for a system that reaches a minimum charge level to have a minimized boot delay (e.g., zero delay due to charging).
- a system without an example implementation described herein may be required to wait to charge again at the next boot process, in particular if the system was rebooted before sufficient minimum charge couid be obtained after the auxiliary power source was discharged during the preceding boot process.
- the processor resource 222 is any appropriate circuitry capable of processing (e.g., computing) instructions, such as one or multipl processing elements capable of retrieving instructions from the memory resource 220 and executing those instructions.
- the processor resource 222 can be a central processing unit ("CPU") that enables providing auxiliary power to an electrical device by fetching, decoding, and executing modules 204, 206, 208, and 302.
- Example processor resources 222 include at least one CPU, a semiconductor-based microprocessor, an application specific integrated circuit (“ASIC”), a programmable logic device (“PLD”), and the like.
- Example PLDs include a field-programmable gate array (“FPGA”), a programmable array logic (“PAL”), and a complex programmable logic device (“CPLD”).
- the processor resource 222 can include multipie processing elements that are integrated in a single device or distributed across devices.
- the processor resource 222 can process the instructions serially, concurrently, or in partial concurrence.
- the memory resource 220 represent a medium to store data utilized and/or produced by the systems 200 and 300.
- the medium is an non-transitory medium or combination of non-transitory mediums able to electronically store data, such as modules of the systems 200 and 300 and/or data used by the systems 200 and 300,
- the medium can be a storage medium, which is distinct from a transitory transmission medium, such as a signal.
- the medium can be machine-readable, such as computer-readable.
- the medium can be an electronic, magnetic, optical, or other physical storage device that is capable of containing (i.e., storing) executable
- the memory resource 220 can be said to store program instructions that when executed by the processor resource 222 cause the processor resource 222 to implement functionality of the systems 200 and 300 of Figures 2 and 3.
- the memory resource 220 can be integrated in the same device as the processor resource 222 or it can be separate but accessible to that device and the processor resource 222.
- the memory resource 220 can be distributed across devices.
- the memory resource 220 can represent the same physical medium or separate physical mediums.
- the executable instructions can b processor-executable instructions, such as program instructions, stored on the memory resource 220, which is a tangible, non- transitory computer-readable storage medium, and the circuitry can be electronic circuitry, such as processor resource 222, for executing those instructions.
- the instructions residing on the memory resource 220 can comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as a script) by the processor resource 222.
- the engine and/or modules can complete or assist completion of operations performed in describing another engine and/or module.
- the switch engine 208 of Figure 2 can request, complete, or perform the methods or operations described with the switch engine 108 of Figure 1 as well as the data engine 104 and the target engine 106 of Figure 1.
- the various engines and modules are shown as separate engines in Figure 1 , in other implementations, the functionality of multiple engines and/or modules may be implemented as a single engine and/or module or divided in a variety of engines and/or modules.
- the engines of the systems 100. 200, and 300 can perform example methods described in connection with Figures 4-6,
- the systems 200 and 300 can include the executable instructions can be part of an installation package that when installed can be executed by the processor resource 222 to perform operations of the systems 200 and 300, such as methods described with regards to Figures 4-6.
- the memory resource 220 can be a portable medium such as a compact disc, a digital video disc, a flash drive, or memory maintained b a computer device, such as a web server, from which the installation package can be downloaded and installed.
- the executable instructions can be part of an application or applications already installed.
- the memory resource 220 can be a non-volatile memory resource such as read only memory ⁇ "ROM"), a volatile memory resource such as random access memory (“RAM”), a storage device, or a combination thereof.
- Example forms of a memory resource 220 include static RAM (“SRAM”), dynamic RAMI (“DRAM”), electrically erasable programmable ROM ⁇ "EEPROM”), flash memory, or the like.
- the memory resource 220 can include integrated memory such as a hard drive (“HD”), a solid state drive (“SSD”), or an optical drive.
- Figure 4 depicts example modules used to implement example systems for providing auxiliary power to an electrical component.
- the example modules of Figure 4 generally include a data module 404, a target module 408, and a switch module 408 that represent example implementations of modules 204, 208, and 208.
- the modules of Figure 4 can be implemented on a compute device, such as a data server.
- a power-on self-test (“POST") request 452 can be received by a processor resource executing the data module 404 and receive a charge state 454 of an auxiliar power source and a data structure of information of an electrical component, such as an advanced configuration and power interface ("ACPO object 458,
- the data module 404 can include program instructions, such a component module 440 and a power module 442, to facilitate retrieval of particular information sets.
- the component module 440 can represent program instructions that when executed by a processor resource cause the processor resource to retrieve ACPI objects 456 associated with the electrical components identified to be provided with auxiliary power.
- the power module 442 represents program instructions that when executed cause a processor resource to retrieve a charge state 454 from an auxiliary power source, such as b directl identifying the state of the power source or via a powe controller.
- the information retrieved by the processor resource executing the data module 404 can be compiled into a set of utilization data 458.
- the utilization data 458 can be provided to a processor resource executing a target module 406 to determine a target power source 460 by identifying an auxiliary power source based on the utilization data 458.
- Th target module 406 can include program Instructions, such as a record module 444 and a charge module 448, to facilitate identification of a target powe source 460.
- the record module 444 can represent program instructions that when executed cause a processor resource to identify which auxiliary power source was most recently used based on a BiOS record (where the !ast used power source is likely the least charged and should not be used).
- the charge module 446 can represent program instructions that when executed cause a processor resource to identify the voltage level of the plurality of auxiliary power sources and compare the voltage levels to determine the one with the most charge.
- the charge module 446 can represent program instructions that cause a processor resource to identify the amount of charge necessary to operate the electrical components, identify an auxiliary power source with the most charge, and identify whether the auxiliary power source is capable of providing a sufficient charge to supply the amount of charge required by the electrical componeni(s),
- the switch module 408 can comprise program instructions such as a signal module 448 and a configuration module 450, to facilitate providing a sufficient charge voltage to an electrical component.
- the signal module 448 can represent program instructions that when executed by a processor resource cause the processor resource to identify a notification (i.e., charge threshold signal 482) that the target power source 460 has reached a Sevei of charge to supply a sufficient voltage to the electrical component to operate with complete functionality.
- the configuration module 450 when executed by a processor resource can cause the processor resource to configure the power switch circuitry to route auxiliary power from the target powe source 460 to the electrical component.
- the system can be instructed 464 to continue booting and complete POST and another auxiliary power source (including the previously last-used power source which can charge while the target power source is discharging) be used to charge the electrical components at the next system power event without delay or interruption caused by waiting for an auxiliary power source to charge,
- another auxiliary power source including the previously last-used power source which can charge while the target power source is discharging
- FIGS 5 and 6 are flow diagrams depicting example methods for providing auxiliary power to an electrical component.
- example methods for providing auxiliary power can generally comprise calculating a charge threshold, identifying a target auxiliary power source, and causing power to be provided from the target auxiliary power source when the charge threshold is reached.
- a charge threshold is calculated that meets an operational specification of an etectncai component.
- a charge threshold represents a value or a category that represents a level of charge of an auxiliary power source.
- the operational specification as used herein, is an Informational resource that defines a distrage levei required to operate with complete functionality of the electrical component.
- the operational specification can be found on a website associated with the vendor of the electrical component.
- Complete functionality means fully operational.
- An example functionality that would be included for a data protection component would be a restore functionality where data can be transferred to persistent storage at a system power event.
- an NVDIIVIS l is not fully operational unless the NVDIM1V1 is charged to operat the NV NAND storag capability and is partially operational when the NVDiM can operate with the functionality of DRAM (e.g., without the NV NAND storage capability being armed) based on partial charge from the auxiliary power source (or a primary power source).
- a target auxiliar power source is identified based on a utilization record.
- the target auxiliary power source is identified among a plurality of auxiliary power sources and the utilization record includes an entry of a last used auxiliary power source.
- a round robin technique can be used to identify the next auxiliary power source to use for discharging power based on the previously discharged auxiliar power source Identified in a BIOS record.
- the utilization record can contain data regarding the charge state so if the target auxiliary power source is not at the charge threshold level and has not reached the charge threshold level after a predetermined time period, then the BIOS can change the target power source to another auxiliary power source.
- power is caused to be provided from the target auxiliary power source during a system boot process when the charge threshold is reached.
- the charge threshold can be identified as reached on the target auxiliary power source based on a BIOS input derived from a drownage detection mechanism.
- the power from the target auxiliary power source can be caused to be provided at any point in the boot process of the computer system. However, to ensure electrical components with data protection capabilities are completely operational, the power should be provided prior booting to t e operating system in order to enable the data protection capabilities of the electrical components).
- the electrical components can be erased and armed for data backup and restore capabilities, the compute device can finish POST, a BIOS record can be updated to identify the target auxiliary power source as the last used auxiliary power source, and boot can continue.
- Figure 6 includes biocks simitar to blocks of Figure 5 and provides additional biocks and details.
- Figure 6 depicts additional blocks and details generally regarding tracking discharges, detecting voltage levels, setting up a voltage detection mechanism, and charging a subset of the plurality of auxiliary power sources.
- Biocks 606, 608 5 and 612 are the same as blocks 502, 504, and 506 of Figure 5 and, for brevity, their respective descriptions are not repeated.
- a discharge of a plurality of auxiliary power sources are tracked.
- a utilization record can be maintained by the BIOS at each system power event.
- Exampie formats of a utilization record can include a single record entry that updates with a record identifier associated with a most recently discharged auxiliary power source and a log of entries where a new entr is placed in the log at each discharge of an auxiliary power source.
- a voltage level of the plurality of auxiliary power sources is detected.
- a subset of the plurality of auxiliary power sources can be monitored for determining the voltage level of the plurality of power sources.
- a voltage level for each of the pluralit of auxiliary power sources except for the last discharged auxiliary power source can be detected using a voltage detection mechanism.
- the plurality of voltage levels can be useful to identify a target power source. For exampie, a next auxiliary source in a round robin technique may be identified as dead based on a detect voltage level and a comparison of the voltage levels of the auxiliary power sources can be made to identify a secondary target auxiliary power source.
- a voltage detection mechanism can be set up (e.g., configured). Setting up a voltage detection mechanism can comprise at least one of configuring a controller of the plurality of auxiliar power sources to send a notification (e.g., a notification signal) when the target auxiliary power source achieves the charge threshold and configuring the BIOS to check a voltage level of the target power source periodically.
- the voltage detection mechanism can be interrupt driven, such as using a system management interrupt ("SMI") to notify the BIOS when the auxiliary power source has reached the charg threshold.
- SI system management interrupt
- the BIOS can check the voltage level of the identified target power source based on at least one of a schedule and a system event,
- a subset of the plurality of auxiliary power sources charge while the target auxiliary power source is discharging.
- any auxiliary powe source can be charging by the primary power source while the target auxiliary power source is discharging.
- redundant auxiliary power sources provide overall more charge than an equivalent-sized single auxiliary power source because the single auxiliary power source is unable to charge during discharge and, thus, wait time is reduced or eliminated at boot time in the redundant auxiiiary power source environment as described herein.
- a greater number of redundant auxiiiary power sources can equate to a greate likelihood of an auxiliary power source being sufficiently charged, resulting in a lower average wait time for the system boot process.
- auxiliary power sources there is also a greater likelihood of zero wait time for charging because upon charging one of the plurality of auxiliary power sources, the rest of the plurality of auxiliary power sources can also be charged.
- an example system described herein that waits to charge an auxiliary power source to a sufficient level to power the electrical components can likely perform a number of immediate reboots (e.g., boots of zero wait time) equivalent to one less than the number of auxiliary power sources.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Business, Economics & Management (AREA)
- Emergency Management (AREA)
- Power Engineering (AREA)
- Power Sources (AREA)
Abstract
In one implementation, a method for providing auxiliary power to an electrical component can include a calculation of a charge threshold that meets an operation specification of the electrical component, identification of a target auxiliary power source of a plurality of auxiliary power sources based on a utilization record, and causation of power to be provided from the target auxiliary power source when the charge threshold is reached.
Description
Auxiiiary Power Source based on Utilization
BACKGROUND
J00013 Electrical devices commonly employ electronic circuits to provide
functionality to the device. Electricity is commonly provided to the eiectronic devices from a power source, such as a battery providing direct current or an electric outlet providing alternating current. Functiona!ity prOduced by eiectronic circuits can cease without sufficient power provided from a power source.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002} Figures 1-3 are block diagrams depicting example systems for providing auxiliary power to an electrical component,
[0003] Figure 4 depicts example modules used to implement example systems for providing auxiliary power to an electrical component.
IOOO43 Figures 5 and 8 are fiow diagrams depicting exampl methods for providing auxiliary power to an electrical component.
DETAILED DESCRIPTION
[OOOS] In the following description and figures, some example Implementations of apparatus, systems, and/or methods for providing auxiliary power to an electrical component ar described. Components can include their own backup battery unit ("BBU") or other backup power source to allow the component to continue operating when an initial power source ceases to be available. A backup battery can fas! to be charged or be low in charge due to a previous reboot or other system power event. A system may wait to aliow for a sufficient charge to operate the component using the backup battery. For example, charging time can range from five minutes to about an hour for particular storage mediums with data protection capabilities depending on the
capacity of the battery or super capacitor and the vo!tage level utilized by memory storage devices of a computing system (e.g., assuming about five minutes to charge a four watt load for a single data protection storage medium). This can result in a significant deiay for a system boot. For example, a system may have a capacity to hold up to sixteen or twenty four memory devices with data protection. Simply replacing the battery or capacitor with a larger power source may not solve the problem of having a relatively long charging time based on a frequency of system power events,
[0006] Various examples described below relate to managing redundant auxiliary power sources to supply power to an electrical component. By using utilization information, an auxiiiary power source can be used to supply power to the electrical component. Having multiple auxiliary power sources can aiiow for a subset of the auxiliary power sources to charge while only the other subset of the auxiliary power sources are discharging, and thereby, reduce wait time.
[0007] The terms include," "have," and variations thereof, as used herein, mean the same as the term "comprise" or appropriate variation thereof. Furthermore, the term "based on," as used herein, means "based at least in part on," Thus, a feature that is described as based on some stimulus can be based only on the stimulus or a combination of stimuli including the stimulus.
[0008] Figures 1-3 are block diagrams depicting example systems 100, 200, and 300 for providing auxiliary power to an electrical component. Referring to Figure 1 , the example system 100 of Figure 1 generally includes a data engine 104, a target engine 106, and a switch engine 108. in genera!, the switch engine 108 supplies power from the target auxiliary power source identified by the target engine 106 using the utilization data retrieved by the data engine 104.
[0009] The data engine 104 represents any circuitry or combination of circuitry and executable instructions to retrieve utilization data of a plurality of auxiliary power sources and an electrical component. As used herein, utilization data represents any values, characters, strings, or other data structure containing information regarding the use of power by the auxiliary power sources and/or the use of power by an electrical component or components. For example, utilization data can include the power required to operate an electrical component of a system and how much power is available from
an auxiliary power source. For another example, utilization data can include a record identifier, which, as used herein, represents an indicator of the last used auxiliary power source. A record identifier can be an value, character, string, or other data structure. A power requirement, as used herein, is information associated with the amount of voltage used to operate a component of a system. For example, a power requirement can be an amount of the power to enable a storage device to perform a particular function or an amount of power to enable an electrical device to be completely operational (i.e., enable all functions capable by the device).
[0010] The components to be supplied with power can be any appropriate class of components used in a compute device. In particular, an electrical component Is any physical device or circuitry of the compute device. Example electrical components include electrical data protection components which utilize functionalities to protect data of the compute device, such as a memory device with data protection capabilities or a controller of the memory device. For example, a non-volatile ("NV") dual-inline memor module ("DIMM") has a first power requirement to operate as a dynamic random access memory ("DRAM") component and a second power requirement to operate as persistent storage using an NV negative-arid ("NAND") component. For an NVDIMM to be completely operational, for example, the NV NAND is to be sufficiently powered to save data from the DRAM upon a system power event. Other examples of electrical data protection components include a disk array controller that manages a plurality of hard drives (such as a redundant array of independent disks ("RAID") controller) to provid redundancy and/or other form of data backup and cache used by the disk array controller. The "backup" functionalities (i.e., the data protection functionalities) are capabilities of a device to protect data at the occurrence of a system power event (i.e., an event that triggers data saving, such as a loss of primary power, a graceful shutdown, a system error, and the like) where the functionalities can occu after primary power is lost by using auxiliary power from an auxiliary power source. An electrical data protection component can utilize an auxiliary power source to perform the backup functionality, in particular when the system event is a primar power failure.
[00113 An auxiliary power source, as used herein, comprises any battery, capacitor, or the like, that can be used as to power a component when a primary source
is no longer available. Example batteries include batteries usable with a BBU, Example capacitors include super-capacitors and ultra-capacitors. Auxiliary power sources can be implemented per component or as a power resource pool where a plurality of auxiliary power sources supply power to a number of components that may be different than the number of the auxiliary power sources. For example, Type-1 NVDIMIvls can be adapted to receive power from a plurality of auxiliary power sources rather than having a dedicated auxiliary power source for each NVDIM . The plurality of auxiliary power sources should comprise power sources that are operational. For example, the data engine 104 can retrieve information in response to an operational verification of an electrical data protection component (e.g., when a POST identities an electrical data protection as operational and the compute device is to boot up with the capabilities of the electrical data protection component enabled).
[0012] The data engine 104 can retrieve a variety of utilization data. For example, the data engine 104 can retrieve at least one of a voltage of the plurality of auxiliary power sources, a record identifier associated with the last used auxiliary power source, a memory component size, an operational voltage level based on a calculation of a power requirement of the electrical component, and a number of sibling components of electrical component (e.g., components that utilize the same amount of operational voltage). The data engine 104 can retrieve data in a variety of mechanisms, For example, the data engine 104 can read a register via a general purpose input output ("GPIO") interface to obtain the power requirement for a DIMM component. For example, the data engine 104 can be coupled to or integrated into a CPLD to access a GPIO register to obtain serial presence detect ("SPD") information of the DIMM
component. SPD information describes attributes of system components, including the power requirement of the DIMM component, as well as the size, the speed, and other characteristics of DRAM chips in volatile memory. The data engine 104 can retrieve information (e.g., SPD information) from any appropriate interface that can supply a power requirement of the electrtca! component and/or information to caiculate the power requirement.
[00133 The data engine 104 can utilize retrieved information to calculate data used by the target engine 106 and/or the switch engine 108. For example, the data
engine 104 can calculate a first auxiliary power level to initiate operation of a piuraiity of memor components based on a memory component size and a number of memor components {e.g., wherein a memory component is a DIMM of a plurality of D!M s and a power requirement of the piuraiity of DIMMs is calculated based on a size of a D! M multiplied by the number of DIMMs). A memory component and/or storage medium as discussed herein can comprise volatile memory, non-volatile memory, or a combination thereof {e.g., mixed memory). For another example, the data engine 104 can calculate a second auxiliary power level to initiate operation of the storage controller based on an operational voltage level (i.e., an amount of voltage required for an electrical component to be operational) of the controller to manage a plurality of devices managed by the storage controller,
0014j target engine 106 represents any circuitry or combination of circuitry and executable instructions to determine which of the plurality of auxiliary power sources is to be a target power source. The target power source, as used herein, is a designated subset of the piuraiity of auxiliary power sources to provide power to at least one electrical component. For example, the target power source can be any one of the plurality of auxiliary power sources other than the last used power source as indicated by the record identifier. The target engine 106 can maintain a list of operational auxiliary power sources and maintain a record identifier of the last used auxiliary power source. For example, the target engine 106 can perform a round-robin technique to identify and select an auxiliary power source to provide powe where the round robin technique identifies and selects the auxiliary power source that has been charging the longest amount of time, in that example, the selected power source would likely have the most charge (e.g., highest power level) of plurality of auxiliary power sources because the most time would have elapsed since that power source's last discharge in comparison to the last discharge of the other auxiliary power sources. For another example, the target engine 106 can identify the auxiliary power source with the highest charge of the plurality of auxiliary power sources based on a comparison of voltage data retrieved b the data engine 104 for each of the plurality of auxiliary power sources,
[001 S| The target engine 108 can identify a charge threshold to achieve by the auxiliary power source, in other words, the target engine 106 can determine a level of
charging required by th auxiliary power source to meet the power consumption for operation of the electrical component. For example, a number of electrica! components may be designated to receive power from the auxiliary power source and the amount of charge to supply to the number of electrical components can be determined from information available from the components (e.g., the information is resident on the electrical component) to calculate a threshold charge. For example, a server device may support sixteen NVOIM s where two NVDIM s may suffic for customer operations and the charge threshold could be charge level or a percentage of the capacitor (e.g., a partial charge) which would be sufficient to charge the two NVDIMMs, such as 15% of the charge capacity or eight watts (assuming four watts per NVDI M). The target engine 106 can calculate a charge voltage threshold based on an operational voltage level and a charge state of the target power source. For example, the target engine 108 can calculate a minimum charge voltage level from a required operational voltage level specified on a DIMM. For another example, a difference in the current voltage level and the minimum charge voltage level can be calculated. A charge state, as used herein, represents a state of a power source, such as dead state, partially charged state, fully charged state, etc.
[0016] The switch engine 108 represents any circuitry or combination of circuitry and executabie instructions to cause power to route to an electrical component from the target power source. For example, the switch engine 108 can be a complex
programmable logic device ("CPLD") capable of routing power from the target power source to supp!y power to an electrica! component. The switch engine 108 is to manage the electrical routing of the power from the power source to the electrical components. In this manner, the switch engine 108 can cause power to be provided (e.g., supplied) to the electrica! components by managing circuitry to complete an electrica! connection between the target power source and the electrica! component{s) to receive power from an auxiliary power source. For example, the switch engine 108 can supply power to an electrical data protection component when a basic input output system ("BIOS") identifies the charge state of a target power source achieves a charge voltage
threshold. Any reference to a B!OS made herein can comprise system using a control
program interface, such as a unified extensible firmware interface ("UEFi") system or a programmable logic array ("PLA") programmed to identify a charge state.
[0017] The switch engine 108 can manage and/o work in conjunction with a voltage detection mechanism to identify when the determined target power source has sufficient charge to meet the charge threshold. For example, upon receipt of a voitage charge signal indicating the charge threshold is met, the switch engine 108 can activate the suppiy of power from the target power source to an electrical component, A voitage detection mechanism, as used herein, is any appropriate protocol, circuitry, or combination of circuitry and executable instructions to indicate to the switch engine 108 the voltage of an auxiliary power source. For example, an application of a compute device can periodically verify the state of a target power source (e.g. , the BIOS can monitor a power source to identify a voltage level) and evaluate the amount of charge of the target power source based on utilization data (e.g., the state of the power source can be a voltage level of the power source). The voltage detection mechanism can be a configuration of a BIOS and the circuitry of the system to detect a voitage. For example, the switch engine 108 can at least one of configure an auxiliary power controller to send a charge threshold signal to a BIOS when a charge voltage threshold is achieved and configure the BIOS to periodically check the charge state of the target power source until the charge voltage threshold is achieved. Once the charge voltage threshold is achieved, the target power source of the plurality of auxiliary power sources can suppiy power to th electrical system component(s).
[0018] Figures 2 and 3 depict the example systems 200 and 300 can comprise a memory resource 220 operativel coupled to a processor resource 222. The processor resource 222 can be operatively coupled to power switch circuitry 210, auxiliary power sources 212, and electrical components 214. The power switch circuitry 210 can electrically couple the plurality of auxiliary power sources 212 to the plurality of electrical components 214, The power switch circuitry 210 represents electronic circuitry (e.g., a combination of electrical elements, such as resistors, transistors, capacitors, inductors, and diodes) to connect power from the auxiliary power sources 212 to the electrical components 214, where the connection can be changed to direct power from a subset of the plurality of auxiliary power sources 212 {that can vary at each provisioning of
power) to the electrical components 214. The processor resource 222 can be coupled directl or indirectly to the circuitry 210, power sources 212, and components 214. For example with reference to Figure 3, the processor resource 222 can access information regarding the auxiliary power sources 212 via a power controller 316 and access information regarding the electrical components 214 via the component controller 318. The dotted lines of Figure 3 represent logical connections among the power switch circuitry 210, the auxiliary power sources 212, and the electrical components 214 where the logical connection (which can be a direct physical connection) represents a connection to transfer power from an auxiliary power source 212 to an electrical component 214 and enable operation of the electrical component 214.
£00193 Th power controller 316 of Figure 3 represents circuitry or a combination of circuitry and executable instructions to manage and/or access information of the auxiliary power sources 212, such as a voltage level. For example, a processor resource 222 executing a data module 204 (or a data engine 104) can communicate with the power controlle 316 to retrieve a charge state from one of the plurality of auxiliary power sources 214. The component controller 318 represents circuitry or a combination of circuitry and executable instructions to manage and/or access information of the electrical components 214, such as a number of electrical
components 214. For example, a processor resource 222 executing a data modu!e 204 (or a data engine 104) can communicate with a component controller 318 to retrieve an operational voltage level of an electrical data protection component.
[0020] Referring to Figures 2 and 3, the memory resource 220 can contain a set of instructions that are executable by the processor resource 222. The set of instructions are operable to cause the processor resource 222 to perform operations of the systems 200 and 300 when the set of instructions are executed by the processor resource 222. The set of instructions stored on the memory resource 220 can be represented as a data module 204, a target module 206, switch module 208, and BIOS module 302. The data module 204, the target module 206, and the switch module 208 of Figure 2 represent program instructions that when executed function as the data engine 104, the target engine 106, and the switch engine 108 of Figure 1 , respectively. The BIOS module 302 of Figure 3 represents program instructions contained on
memory resource 220 that when executed by the processor resource 222 cause the processor resource 222 to perform auxiliary power management functions and eiectrica! component management functions as managed by a BIOS. For example, when the processor resource 222 executes the BIOS module, the processor resource 222 can maintain a record of the power source usage history, initiate a system call to check the power source voitage Sevei of an auxiliary power source 212, cause a power source control command to be sent to change the power switch circuitry 210 to connect a target power source 212 to an electrical component 214, and recognize the electrical component 214 as available to an operating system. The processor resource 222 can carry out a set of instructions to execute the modules 204, 206, 208, 302, and/or any other appropriate operations among and/or associated with the modules of the systems 200 and 300, For example, the processor resource 222 can carry out a set of
instructions to identify a target power source of the plurality of auxiliary power sources 212 based on a data record of utilization of the plurality of auxiliary power sources 212, set a charge threshold level based on a number of eiectrica! components 214 to use power from the plurality of auxiliary power sources 212 during a boot process, and cause the power switch circuitry 210 to provide power to the plurality of electncal components 214 from the target power source when the target power source achieves the charge threshold level. For another example, the processor resource 222 can carry out a set of instructions to check a data record to identify which of the pluralit of auxiliary power sources 212 was used most recently and cause a controller that manages an inter-integrated circuit {"S2C") bus to read a register via a GPIO interface to obtain a power requirement for DIMM component using SPD information. For yet another example, the processor resource 222 can carry out a set of instructions to calculate a charge threshold level based on the power requirement of the number of electrical components 214 and charge at least a second auxiliary powe source (e.g. a secondary target power source) to the charge threshold level. In this manner, the watt time fo charging at a following boot process can be zero (e.g., immediate powering of the eiectrica! components and continuing with the boot process) or significantiy reduced because a second auxiliary power source has been sufficiently powered at the time of completion of the preceding boot process. This allows for a system that reaches a
minimum charge level to have a minimized boot delay (e.g., zero delay due to charging). For comparison, a system without an example implementation described herein may be required to wait to charge again at the next boot process, in particular if the system was rebooted before sufficient minimum charge couid be obtained after the auxiliary power source was discharged during the preceding boot process.
[00213 The processor resource 222 is any appropriate circuitry capable of processing (e.g., computing) instructions, such as one or multipl processing elements capable of retrieving instructions from the memory resource 220 and executing those instructions. For example, the processor resource 222 can be a central processing unit ("CPU") that enables providing auxiliary power to an electrical device by fetching, decoding, and executing modules 204, 206, 208, and 302. Example processor resources 222 include at least one CPU, a semiconductor-based microprocessor, an application specific integrated circuit ("ASIC"), a programmable logic device ("PLD"), and the like. Example PLDs include a field-programmable gate array ("FPGA"), a programmable array logic ("PAL"), and a complex programmable logic device ("CPLD"). The processor resource 222 can include multipie processing elements that are integrated in a single device or distributed across devices. The processor resource 222 can process the instructions serially, concurrently, or in partial concurrence.
[0022] The memory resource 220 represent a medium to store data utilized and/or produced by the systems 200 and 300. The medium is an non-transitory medium or combination of non-transitory mediums able to electronically store data, such as modules of the systems 200 and 300 and/or data used by the systems 200 and 300, For example, the medium can be a storage medium, which is distinct from a transitory transmission medium, such as a signal. The medium can be machine-readable, such as computer-readable. The medium can be an electronic, magnetic, optical, or other physical storage device that is capable of containing (i.e., storing) executable
instructions. The memory resource 220 can be said to store program instructions that when executed by the processor resource 222 cause the processor resource 222 to implement functionality of the systems 200 and 300 of Figures 2 and 3. The memory resource 220 can be integrated in the same device as the processor resource 222 or it can be separate but accessible to that device and the processor resource 222. The
memory resource 220 can be distributed across devices. The memory resource 220 can represent the same physical medium or separate physical mediums.
[00233 In the discussion herein, the engines 104, 106, and 108 of Figure 1 ; the modules 204, 206, and 208 of Figures 2 and 3; and the BIOS module 302 of Figure 3 have been described as circuitry or a combination of circuitry and executable
instructions. Such components can be implemented in a number of fashions. Looking at Figure 2, the executable instructions can b processor-executable instructions, such as program instructions, stored on the memory resource 220, which is a tangible, non- transitory computer-readable storage medium, and the circuitry can be electronic circuitry, such as processor resource 222, for executing those instructions. The instructions residing on the memory resource 220 can comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as a script) by the processor resource 222. The engine and/or modules can complete or assist completion of operations performed in describing another engine and/or module. For example, the switch engine 208 of Figure 2 can request, complete, or perform the methods or operations described with the switch engine 108 of Figure 1 as well as the data engine 104 and the target engine 106 of Figure 1. Thus, although the various engines and modules are shown as separate engines in Figure 1 , in other implementations, the functionality of multiple engines and/or modules may be implemented as a single engine and/or module or divided in a variety of engines and/or modules. In some example, the engines of the systems 100. 200, and 300 can perform example methods described in connection with Figures 4-6,
[0024] in some examples, the systems 200 and 300 can include the executable instructions can be part of an installation package that when installed can be executed by the processor resource 222 to perform operations of the systems 200 and 300, such as methods described with regards to Figures 4-6. in that example, the memory resource 220 can be a portable medium such as a compact disc, a digital video disc, a flash drive, or memory maintained b a computer device, such as a web server, from which the installation package can be downloaded and installed. In another example, the executable instructions can be part of an application or applications already installed. The memory resource 220 can be a non-volatile memory resource such as
read only memory {"ROM"), a volatile memory resource such as random access memory ("RAM"), a storage device, or a combination thereof. Example forms of a memory resource 220 include static RAM ("SRAM"), dynamic RAMI ("DRAM"), electrically erasable programmable ROM {"EEPROM"), flash memory, or the like. The memory resource 220 can include integrated memory such as a hard drive ("HD"), a solid state drive ("SSD"), or an optical drive.
[0025] Figure 4 depicts example modules used to implement example systems for providing auxiliary power to an electrical component. Referring to Figure 4, the example modules of Figure 4 generally include a data module 404, a target module 408, and a switch module 408 that represent example implementations of modules 204, 208, and 208. The modules of Figure 4 can be implemented on a compute device, such as a data server.
[0O2$3 A power-on self-test ("POST") request 452 can be received by a processor resource executing the data module 404 and receive a charge state 454 of an auxiliar power source and a data structure of information of an electrical component, such as an advanced configuration and power interface ("ACPO object 458, For example, the data module 404 can include program instructions, such a component module 440 and a power module 442, to facilitate retrieval of particular information sets. The component module 440 can represent program instructions that when executed by a processor resource cause the processor resource to retrieve ACPI objects 456 associated with the electrical components identified to be provided with auxiliary power. The power module 442 represents program instructions that when executed cause a processor resource to retrieve a charge state 454 from an auxiliary power source, such as b directl identifying the state of the power source or via a powe controller. The information retrieved by the processor resource executing the data module 404 can be compiled into a set of utilization data 458. The utilization data 458 can be provided to a processor resource executing a target module 406 to determine a target power source 460 by identifying an auxiliary power source based on the utilization data 458.
[00271 Th target module 406 can include program Instructions, such as a record module 444 and a charge module 448, to facilitate identification of a target powe source 460. For example, the record module 444 can represent program instructions
that when executed cause a processor resource to identify which auxiliary power source was most recently used based on a BiOS record (where the !ast used power source is likely the least charged and should not be used). For another example, the charge module 446 can represent program instructions that when executed cause a processor resource to identify the voltage level of the plurality of auxiliary power sources and compare the voltage levels to determine the one with the most charge. For yet another example, the charge module 446 can represent program instructions that cause a processor resource to identify the amount of charge necessary to operate the electrical components, identify an auxiliary power source with the most charge, and identify whether the auxiliary power source is capable of providing a sufficient charge to supply the amount of charge required by the electrical componeni(s),
[0028] The switch module 408 can comprise program instructions such as a signal module 448 and a configuration module 450, to facilitate providing a sufficient charge voltage to an electrical component. For example, the signal module 448 can represent program instructions that when executed by a processor resource cause the processor resource to identify a notification (i.e., charge threshold signal 482) that the target power source 460 has reached a Sevei of charge to supply a sufficient voltage to the electrical component to operate with complete functionality. The configuration module 450 when executed by a processor resource can cause the processor resource to configure the power switch circuitry to route auxiliary power from the target powe source 460 to the electrical component. With the auxiliary power supplied to the electrical component, the system can be instructed 464 to continue booting and complete POST and another auxiliary power source (including the previously last-used power source which can charge while the target power source is discharging) be used to charge the electrical components at the next system power event without delay or interruption caused by waiting for an auxiliary power source to charge,
[0029] Figures 5 and 6 are flow diagrams depicting example methods for providing auxiliary power to an electrical component. Referring to Figure 5, example methods for providing auxiliary power can generally comprise calculating a charge threshold, identifying a target auxiliary power source, and causing power to be provided from the target auxiliary power source when the charge threshold is reached.
[0030] At block 502, a charge threshold is calculated that meets an operational specification of an etectncai component. A charge threshold, as used herein, represents a value or a category that represents a level of charge of an auxiliary power source. The operational specification, as used herein, is an Informational resource that defines a voitage levei required to operate with complete functionality of the electrical component. For example, the operational specification can be found on a website associated with the vendor of the electrical component. Complete functionality, as used herein, means fully operational. An example functionality that would be included for a data protection component would be a restore functionality where data can be transferred to persistent storage at a system power event. For example, an NVDIIVIS l is not fully operational unless the NVDIM1V1 is charged to operat the NV NAND storag capability and is partially operational when the NVDiM can operate with the functionality of DRAM (e.g., without the NV NAND storage capability being armed) based on partial charge from the auxiliary power source (or a primary power source).
[0031] At block 504, a target auxiliar power source is identified based on a utilization record. The target auxiliary power source is identified among a plurality of auxiliary power sources and the utilization record includes an entry of a last used auxiliary power source. For example, a round robin technique can be used to identify the next auxiliary power source to use for discharging power based on the previously discharged auxiliar power source Identified in a BIOS record. For anothe example, the utilization record can contain data regarding the charge state so if the target auxiliary power source is not at the charge threshold level and has not reached the charge threshold level after a predetermined time period, then the BIOS can change the target power source to another auxiliary power source.
[0032] At block 506, power is caused to be provided from the target auxiliary power source during a system boot process when the charge threshold is reached. The charge threshold can be identified as reached on the target auxiliary power source based on a BIOS input derived from a voitage detection mechanism. The power from the target auxiliary power source can be caused to be provided at any point in the boot process of the computer system. However, to ensure electrical components with data protection capabilities are completely operational, the power should be provided prior
booting to t e operating system in order to enable the data protection capabilities of the electrical components). For exampie, once sufficient power is provided to the electrical components, the electrical components can be erased and armed for data backup and restore capabilities, the compute device can finish POST, a BIOS record can be updated to identify the target auxiliary power source as the last used auxiliary power source, and boot can continue.
[0033J Figure 6 includes biocks simitar to blocks of Figure 5 and provides additional biocks and details. In particular, Figure 6 depicts additional blocks and details generally regarding tracking discharges, detecting voltage levels, setting up a voltage detection mechanism, and charging a subset of the plurality of auxiliary power sources. Biocks 606, 6085 and 612 are the same as blocks 502, 504, and 506 of Figure 5 and, for brevity, their respective descriptions are not repeated.
[0034] At block 602, a discharge of a plurality of auxiliary power sources are tracked. For exampie, a utilization record can be maintained by the BIOS at each system power event. Exampie formats of a utilization record can include a single record entry that updates with a record identifier associated with a most recently discharged auxiliary power source and a log of entries where a new entr is placed in the log at each discharge of an auxiliary power source.
[0035] At block 604, a voltage level of the plurality of auxiliary power sources is detected. A subset of the plurality of auxiliary power sources can be monitored for determining the voltage level of the plurality of power sources. For example, a voltage level for each of the pluralit of auxiliary power sources except for the last discharged auxiliary power source can be detected using a voltage detection mechanism. The plurality of voltage levels can be useful to identify a target power source. For exampie, a next auxiliary source in a round robin technique may be identified as dead based on a detect voltage level and a comparison of the voltage levels of the auxiliary power sources can be made to identify a secondary target auxiliary power source.
[0036] At block 610, a voltage detection mechanism can be set up (e.g., configured). Setting up a voltage detection mechanism can comprise at least one of configuring a controller of the plurality of auxiliar power sources to send a notification (e.g., a notification signal) when the target auxiliary power source achieves the charge
threshold and configuring the BIOS to check a voltage level of the target power source periodically. For example, the voltage detection mechanism can be interrupt driven, such as using a system management interrupt ("SMI") to notify the BIOS when the auxiliary power source has reached the charg threshold. The BIOS can check the voltage level of the identified target power source based on at least one of a schedule and a system event,
[0037] At block 61 , a subset of the plurality of auxiliary power sources charge while the target auxiliary power source is discharging. Fo example, any auxiliary powe source can be charging by the primary power source while the target auxiliary power source is discharging. In this manner, redundant auxiliary power sources provide overall more charge than an equivalent-sized single auxiliary power source because the single auxiliary power source is unable to charge during discharge and, thus, wait time is reduced or eliminated at boot time in the redundant auxiiiary power source environment as described herein. In this respect, a greater number of redundant auxiiiary power sources can equate to a greate likelihood of an auxiliary power source being sufficiently charged, resulting in a lower average wait time for the system boot process. There is also a greater likelihood of zero wait time for charging because upon charging one of the plurality of auxiliary power sources, the rest of the plurality of auxiliary power sources can also be charged. For example, an example system described herein that waits to charge an auxiliary power source to a sufficient level to power the electrical components, can likely perform a number of immediate reboots (e.g., boots of zero wait time) equivalent to one less than the number of auxiliary power sources.
[0038] Although the flow diagrams of Figures 4-6 illustrate specific orders of execution, the order of execution may differ from that which is illustrated. For example, the order of execution of the blocks may be scrambled relative to the order shown. Also, the blocks shown in succession may be executed concurrently o with partial
concurrence. All such variations are within the scope of the present description.
[0039] The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples may be made without departing from the spirit and scope of the following claims. The use of the words "first," "second," or related terms in the claims are not used
to limit the ciatm elements to an order or location, but are mereiy used to distinguish separate claim elements.
Claims
What is claimed is 1. A system comprising:
a data engine to, in response to an operational verification of an electrical data protection component, retrieve utilization data of a plurality of auxiliary power sources and the electrical data protection component, the utilization data to include a power requirement of the electrical data protection component and a record identifier associated with a !ast-used auxiliary power source;
a target engine to determine which of the piuraiity of auxiliary power sources is to be a target power source based on the utilization data; and
a switch engine to cause power to route to the electrical data protection component from the target power source.
2, The system of claim 1 , wherein the piuraiity of auxiliary power sources comprise at least one of a battery and a capacitor and the power requirement comprises a voltage level to operate the electrical data protection component.
3. The system of claim 1 , wherein the data engine is further to:
communicate with a first controller to retrieve a charge state from one of the plurality of auxiliary power sources; and
communicate with a second controller to retrieve an operational voltage level of the electrical data protection component,
4, The system of claim 1 , wherein the data engine is further to:
calculate a first auxiliary power level to initiate operation of a piuraiity of memory components based on a memory component size and a number of memory components; and
calculate a second auxiliary power level to initiate operation of a storage controller based on an operational voltage level.
5. The system of ciaim 1 , wherein:
the target engine is further to calculate a charge voltage threshold based on an operational voltage level and a charge state of the target power source; and
the switch engine is further to supply power to the electrical data protection component when a basic input output system ("BIOS") identifies the charge state achieves the charge voltage threshold, wherein the switch engine is a complex programmable logic device f'CPLD") capable of routing power from the target power source to supply power to the electrical data protection component,
6. The system of ciaim 5, wherein the switch engine is further to at least one of:
configure an auxiliary power controller to send a charge threshold signal to the BIOS when the charge voltage threshold is achieved; and
configure the BIOS to periodically check the charge state of the target power source until the charge voltage threshold is achieved.
7, The system of ciaim 1 , wherein the data engine is further to:
read a register via a genera! purpose input output ("GPIO") interface to obtain the power requirement for a dual in-line memory module ("Di ") component.
8, The system of claim 1 , wherein the data engine is further to retrieve at least one of:
a voltage of the plurality of auxiliary power sources;
a record identifier associated with the last used auxiliary power source a memory component size;
an operational voltage level based on a calculation of the power requirement of the electrical data protection component; and
a number of sibling components of the electrical data protection component.
9. An apparatus comprising;
a plurality of auxiliary power sources;
a plurality of electrical components;
a power switch circuitry to couple the plurality of auxiliary power sources to the plurality of electrical components; and
a non-transitory computer-readable storage medium comprising a set of instructions executable by a processor resource to;
identify a target power source of the plurality of auxiliary power sources based on a data record of utilization of the plurality of auxiliary power sources;
set a charge threshold level based on a number of electrical components to use power from the plurality of auxiliary power sources during a boot process; and
cause the power switch circuitry to provide power to the plurality of electrical components from the target power source when the target power source achieves the charge threshold level.
10. The apparatus of claim 9, wherein the set of instructions is executable by the
processor resource to:
check a data record to identify which of a plurality of auxiliary power sources was used most recently; and
cause a controller that manages an inter-integrated circuit ("I2C") bus to read a register via a genera! purpose input output ("GPIO") interface to obtain a power requirement for a dual in-line memory module ("DIMM") component using serial presence detect ("SPD") information.
11. The apparatus of claim 10, wherein the set of instructions is executable by the
processor resource to;
calculate a charge threshold level based on the power requirement of the number of electrical components, wherein the DIMM component is one of the plurality of electrical components and the power requirement is calculated based on a size of the DIMM component and the number of DIMM components; and
charge a secondary target power source of the piurality of auxiliary power sources to the charge threshold level.
12. A method for providing auxiliary power to an electrical component comprising;
calculating a charge threshold that meets an operational specification of the electrical component required to operate with complete functionality of the electrical component;
identifying a target auxiliary power source of a plurality of auxiliary power sources based on a utilization record that includes an entry of a last used auxiliary power source; and
causing power to be provided from the target auxiliary power source during a system boot process when the charge threshold is reached on the target auxiliary power source based on a basic input output system ("BIOS") input derived from a volfage detection mechanism. 3. The method of claim 12, comprising:
setting up the voltage detection mechanism comprising at least one of:
configuring a controller of the plurality of auxiliary power sources to send a signal when the target auxiliary power source achieves the charge threshold; and configuring the BIOS to check a voltage level of the target power source based on at least one of a schedule and a system event. 14. The method of claim 2, comprising:
tracking discharges of the plurality of auxiliary power sources in the utilization record; and
detecting a voltage level of each of the plurality of auxiliary power sources. 15, The method of claim 12, comprising:
charging a subset of the plurality of auxiliary power sources when the target auxiliary power source is discharging.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/017958 WO2016137482A1 (en) | 2015-02-27 | 2015-02-27 | Auxiliary power source based on utilization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/017958 WO2016137482A1 (en) | 2015-02-27 | 2015-02-27 | Auxiliary power source based on utilization |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016137482A1 true WO2016137482A1 (en) | 2016-09-01 |
Family
ID=56789758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2015/017958 WO2016137482A1 (en) | 2015-02-27 | 2015-02-27 | Auxiliary power source based on utilization |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016137482A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0382346A (en) * | 1989-08-23 | 1991-04-08 | Matsushita Electric Ind Co Ltd | Power supply changing over device |
JP2003087995A (en) * | 2001-09-17 | 2003-03-20 | Disco Abrasive Syst Ltd | Auxiliary power supply device |
US20100313053A1 (en) * | 2009-06-09 | 2010-12-09 | Nec Electronics Corporation | Microcomputer system, microcomputer, power control method, and power control program product |
EP2701270A2 (en) * | 2012-08-23 | 2014-02-26 | Actia Nordic AB | Battery backup system and method |
JP2014042418A (en) * | 2012-08-23 | 2014-03-06 | Nittetsu Elex Co Ltd | Emergency power supply method |
-
2015
- 2015-02-27 WO PCT/US2015/017958 patent/WO2016137482A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0382346A (en) * | 1989-08-23 | 1991-04-08 | Matsushita Electric Ind Co Ltd | Power supply changing over device |
JP2003087995A (en) * | 2001-09-17 | 2003-03-20 | Disco Abrasive Syst Ltd | Auxiliary power supply device |
US20100313053A1 (en) * | 2009-06-09 | 2010-12-09 | Nec Electronics Corporation | Microcomputer system, microcomputer, power control method, and power control program product |
EP2701270A2 (en) * | 2012-08-23 | 2014-02-26 | Actia Nordic AB | Battery backup system and method |
JP2014042418A (en) * | 2012-08-23 | 2014-03-06 | Nittetsu Elex Co Ltd | Emergency power supply method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9235245B2 (en) | Startup performance and power isolation | |
KR102563833B1 (en) | Intelligent backup capacitor management | |
US20180348851A1 (en) | Report updated threshold level based on parameter | |
US9910664B2 (en) | System and method of online firmware update for baseboard management controller (BMC) devices | |
US8799631B2 (en) | Dynamically select operating system (OS) to boot based on hardware states | |
KR102060430B1 (en) | SYSTEM ON CHIP(SoC) CAPABLE OF REDUCING WAKE-UP TIME, APPLICATION PROCESSOR, AND COMPUTER SYSTEM HAVING SAME | |
US9710179B2 (en) | Systems and methods for persistent memory timing characterization | |
US20190204887A1 (en) | Backup power supply method and apparatus | |
US10606330B2 (en) | Selectively enabling backup power to nodes | |
US10725508B2 (en) | Responding to data backup operation | |
US10997516B2 (en) | Systems and methods for predicting persistent memory device degradation based on operational parameters | |
US10037066B2 (en) | Power supply unit mismatch detection system | |
US10788872B2 (en) | Server node shutdown | |
CN111142644A (en) | Hard disk operation control method and device and related components | |
US11099961B2 (en) | Systems and methods for prevention of data loss in a power-compromised persistent memory equipped host information handling system during a power loss event | |
US10747287B2 (en) | Backup power supply based configuration data application | |
TWI602059B (en) | Server node shutdown | |
US10387306B2 (en) | Systems and methods for prognosticating likelihood of successful save operation in persistent memory | |
US20200081514A1 (en) | Systems and methods for chassis-level persistent memory sequencing and safety | |
WO2016069022A1 (en) | Shared backup power self-refresh mode | |
US10474221B2 (en) | Power control in a storage subsystem | |
WO2017003482A1 (en) | Configuring a voltage regulator | |
WO2016137482A1 (en) | Auxiliary power source based on utilization | |
US20230043379A1 (en) | Maintaining Data Integrity Through Power Loss with Operating System Control | |
US11132039B2 (en) | Systems and methods for controlling charging and discharging of an energy device based on temperature |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15883576 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15883576 Country of ref document: EP Kind code of ref document: A1 |