PROGRAMMING POWER CONTROLLERS VIA LOGIC BUILDING BLOCKS
The use of a logic device to directly program power controllers via logic pins addresses the loss of control and increased costs associated with BMC and I2C bus methods, enabling efficient and dynamic power controller configuration.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- HEWLETT PACKARD ENTERPRISE DEV LP
- Filing Date
- 2024-06-18
- Publication Date
- 2026-06-18
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
INTRODUCTION
[0001] Computer equipment (e.g., servers) generally contains power supply subsystems configured to convert the electrical input power (e.g., alternating current or high-voltage direct current) into one or more different forms suitable for the electronic equipment's components. Such electrical subsystems typically include a power supply unit (PSU) and one or more voltage regulators (VRs), among other power supply components. The power supply is usually configured to perform a first stage of power conversion to power the entire electronic device and is often provided as a removable unit separate from the computer system's primary printed circuit board (PCB) (e.g., the motherboard). In contrast, the VRs are typically configured to power only a specific component (e.g., a computer, a computer, or a computer).VRs supply regulated power to a CPU (a computer) and are typically located in close proximity to the component they power (e.g., on the primary circuit board). In some computer systems, for example, the power supply can convert a higher AC or DC input voltage into one or more lower-voltage DC signals (e.g., 12 V DC, 5 V DC, and 3.3 V DC), and then a group of VRs placed on the primary circuit board next to the CPU can convert one of these power signals from the power supply into a regulated low-voltage, high-current power signal (e.g., 1.2 V) suitable for powering the CPU.
[0002] The power subsystems generally comprise a number of power controllers (e.g., microcontrollers, state machines, etc.) that control the operation of the powered components. For example, the power supply often includes at least one primary microcontroller, which is part of the primary side of the power supply and controls its functions, and one secondary microcontroller, which is part of the secondary side of the power supply and controls its functions. Additionally, VRs generally also have a controller that manages their functions.
[0003] US 10 560 015 B1 discloses a power supply unit comprising a first power converter configured to generate an output voltage at an output of the power supply unit, wherein the first power converter has a first power capacity, a second power converter configured to generate the output voltage at the output of the power supply unit, wherein the second power converter has a second power capacity that is substantially larger than the first power capacity, and a control unit configured to selectively enable and disable the first and second power converters based on one or more parameters associated with the power supply unit.
[0004] US 7,375,549 B1 discloses a vehicle light, for example for mounting in a cover cap of an exterior mirror, comprising an elongated light guide and a light source whose light is coupled into the light guide. The vehicle light has a one-piece molded light guide-cover plate unit that includes at least one light guide and at least one cover plate for covering part of the interior of the light. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The present disclosure can be understood from the following detailed description, either alone or together with the accompanying drawings. The drawings serve to further understand the present disclosure and are an integral part of the present description. The drawings illustrate one or more examples of the present teaching and, together with the description, explain certain principles and functions. In the drawings: Fig. is a block diagram that shows an example of a computer device. Fig. is a schematic time and signal diagram showing a first example sequence of events and signals related to the programming of a voltage regulator controller. Fig. is a block diagram that shows part of a sample computer device in a first state. Fig. is a block diagram that represents part of the example computer setup of Fig. shows in a second state. Fig. is a block diagram that represents part of the example computer setup of Fig. in a third state. Fig. is a block diagram that represents part of the example computer setup of Fig. in a fourth state. Fig. is a process flow diagram that illustrates an example procedure. Fig. is a schematic time and signal diagram illustrating a second example sequence of events and signals associated with programming a voltage regulator controller. DETAILED DESCRIPTION
[0006] As previously mentioned, the power supply subsystems of computer equipment generally comprise a number of microcontrollers that control various functions, such as the microcontrollers of the PSU and VR controllers. These power controllers are typically standard components sourced by computer equipment manufacturers from various vendors. Generally, the power controllers can initially be programmed by the vendors. If the power controllers need to be reprogrammed or configured later, such programming is usually performed by a baseboard management controller (BMC) on the computer equipment's primary circuit board via an I2C communication bus (or a similar communication bus). However, there are a number of problems associated with this approach to programming the power controllers.To mitigate or resolve these problems, new and improved approaches for programming power controllers are disclosed here. These approaches utilize a logic device and direct logic pin connections instead of the BMC and I2C bus for programming the power controllers. The problems associated with using the BMC and I2C bus for programming the power controllers, as well as the aspects of the new and improved approaches disclosed here, are described in detail below.
[0007] A primary problem associated with using BMCs and the I2C bus to program power controllers is that computer manufacturers are expected to have less control (perhaps even no control) over the configuration of the BMC used in their devices in the future (at least in some cases). Therefore, if BMCs continue to be used for programming power controllers, it is likely that the computer manufacturer will have less control (perhaps even no control) over how the power controllers are programmed. However, in some cases, the computer manufacturer may want to retain control over the power controller programming because this allows them, for example, to optimize power consumption for different system configurations, improve security, or otherwise enhance the power controllers.Therefore, there is a need for an approach to programming the power controllers that allows the computer device manufacturer to retain control over the programming, even if they cannot control the BMC configuration.
[0008] The reduction in the computer device manufacturer's control over the BMC (and the consequent reduction in control over power controller programming) can occur, for example, due to the anticipated industry shift toward the use of modularized BMCs. Traditionally, a BMC is tightly integrated into the computer device's primary circuit board and may be owned by the computer device manufacturer, so the BMC is generally a known entity and either directly or indirectly under the computer device manufacturer's control. In contrast, modularized BMCs may be less tightly integrated into the primary circuit board (e.g., they may be removable), are more standardized, and potentially interchangeable.When a modularized BMC system is used, BMCs from various sources can be used with the device, and the computer device manufacturer cannot be certain that the BMC they intended to use is ultimately the one that will be used. Even if the manufacturer initially uses their own BMC in the device, the modularity of BMCs means that the original BMC may later be replaced with a different one from another source. Consequently, the computer device manufacturer may no longer be able to predict or control which BMC will be used in their computer devices and therefore has no control over how the BMC programs / configures the power controllers.
[0009] A second problem with using the BMC and the I2C bus to configure power controllers is that it can complicate and increase the cost of using power controllers sourced from multiple vendors, regardless of whether a traditional or modular BMC design is used. To ensure a reasonable supply of standard components (such as power controllers), a computer manufacturer may generally wish to source these components from several different vendors. However, if, as discussed in more detail below, power controllers from different manufacturers are to be used and the BMC is to configure these power controllers, then in some cases, differently configured circuit boards are required for the power controllers from the different manufacturers, even if the computer devices containing them are otherwise identical.This means that the computer device manufacturer may need to design and manufacture multiple differently configured printed circuit boards (PCBs) for each model, which can be costly. Furthermore, using multiple different PCB designs for each computer device model can increase the number of items, complicate logistics, and generally increase manufacturing costs and difficulties. Therefore, there is a need for a power controller programming approach that allows the use of power controllers from different manufacturers without requiring differently configured PCBs to accommodate these power controllers.
[0010] Some of the reasons why differently configured circuit boards may be required when using power controllers from different manufacturers and employing a BMC to program the controllers are as follows. Generally, the BMC communicates with the power controllers via an I2C communication bus (or a similar bus), and such bus-based communication generally requires that each device communicating over the bus has (and recognizes) an assigned bus address. To ensure compatibility of these power controllers with multiple different systems (which may assign different I2C addresses to their power controllers), power controller manufacturers generally do not program them with a single, predefined I2C bus address. Instead, the power controllers are configured to learn their assigned I2C bus address from the system in which they are installed.However, since the BMC relies on the I2C bus to communicate with the power controllers, and I2C communication with the power controllers depends on them knowing their assigned I2C address, the BMC cannot tell the power controllers their I2C addresses. Instead, the circuit board is generally wired to indicate a specific bus address to a particular power controller by supplying a predetermined electrical signal with a predetermined property (e.g., a predetermined voltage) to the power controller, and the power controller is configured to derive its I2C address from this signal (e.g., one voltage indicates a first address, a second voltage indicates a second address, and so on).For example, a primary circuit board of the computer device can be equipped with one or more resistors for each VR controller, and the resistance values of these resistors can be carefully selected so that when electrical signals flow through the resistors to the VR controllers, each VR controller receives a specific voltage that indicates its respective I2C address. In this way, the correct I2C addresses for the VR controllers are hard-coded into the system board by the appropriate selection of resistors.However, each power controller manufacturer can configure their power controllers to interpret the electrical signals received from the circuit board in different ways. For example, a first voltage might be interpreted by a power controller from one manufacturer as indicating one address, while a power controller from another manufacturer might interpret it as indicating a different address. Accordingly, the circuit boards may need to provide different electrical signals (e.g., different voltages) to indicate the addresses, depending on which manufacturer's power controller is used. Since these electrical signals are hardwired to the circuit board, different circuit board configurations may be required for the power controllers from different manufacturers (e.g.,...).Different combinations of resistors may be required for each manufacturer).
[0011] A third problem with using the BMC and I2C bus to program power controllers is that configuration changes made this way tend to be slow. When a programming change is made via the BMC and I2C bus, the power controllers generally have to interrupt their running processes to communicate via the I2C bus, interpret and analyze the communication from the I2C bus, and then take action based on the programming, which can take a considerable amount of time. Furthermore, in many cases, a programmed configuration change requires the power controller to be switched off after the change for it to take effect.The latency involved in implementing configuration changes, and the potential need to shut off power for some changes to take effect, can make using the BMC and the I2C bus impractical for dynamic, real-time configuration changes, such as adjusting a device's operating setpoint in response to changing conditions. The invention provides the computer device claimed in claim 1.
[0012] The present disclosure provides technical solutions to the aforementioned problems, which include the use of a logic device on the primary printed circuit board (e.g., a complex programmable logic device (CPLD)) for programming the power controllers via a direct connection to one or more logic pins of the power controllers, instead of (or in addition to) using the BMC and the I2C bus for programming the power controllers. The logic device (e.g., CPLD) can be provided to manage the logic signals that control the operations of the power controllers during use, such as a current sequencing function during device startup. By also using the logic device to program the power controllers, computer system manufacturers can retain some control over how the power controllers are configured, even if they do not have control over the BMC used in the computer system.Since the logic device does not communicate with the power controllers via the I2C bus (unlike the BMC), the logic device can also configure the power controllers from different manufacturers, even if the power controllers initially have unknown or incorrect I2C addresses.
[0013] In some examples, the programming performed by the logic unit may include configuring the I2C addresses of the power controllers during the initial startup. Once the I2C address has been programmed by the logic unit, the BMC can then communicate with the power controllers in the usual way via the I2C bus. In some examples, the power controller addresses no longer need to be hardwired to the circuit boards, as the logic unit can instead directly inform the controllers which address to use.Alternatively, the addresses can still be hardwired to the circuit board, and the logic device can instruct the power controllers to correctly interpret the hardwired electrical signals, ensuring that controllers from all manufacturers interpret the electrical signals in the same way (even if their original manufacturer programming would have caused them to interpret the signals differently). In either case, using the logic device to program the power controllers allows the same circuit board configuration to be compatible with power controllers from several different manufacturers, thus avoiding the need to provide differently configured system boards for controllers from different manufacturers.
[0014] Furthermore, in some examples, programming the power controller via the logic device involves a direct signal connection between the logic device and the microcontroller with access to the device registers. Such a connection can be extremely fast compared to the relatively slow process of communication via the BMC and I2C bus. Moreover, changes made via such direct communication with access to the device registers generally do not require a power outage before the changes take effect. Therefore, the examples described here are better suited for making dynamic changes to the configuration of power controllers. This can facilitate the optimization of overall energy performance by reprogramming the power controllers to better meet current conditions.For example, the power controllers can be reconfigured to operate with optimized parameters specific to the installed processor. A low-power processor, for instance, might disable VR phases, lower VR switching frequencies, and optimize phase thresholds to maximize efficiency for that particular processor SKU.
[0015] Examples of computer devices and related methods that implement these approaches are given below with reference to the Fig. .
[0016] Fig. Figure 1 shows an example of a computer device 100. The computer device 100 comprises a primary printed circuit board (PCB) 110 (sometimes also referred to as a motherboard) and a power supply unit (PSU) 160. The computer device 100 may also include additional components, such as data storage media, expansion cards, cooling devices, or other components known to those skilled in the art and not shown here.
[0017] The primary circuit board 110 comprises one or more CPUs 120, one or more memory devices 125, and one or more voltage regulators (VRs) 130 for supplying power to the CPU 120. Fig. For the sake of simplicity, only one of the aforementioned components is shown in each illustration, but it should be understood that in various examples, any number of these components can be mounted on the primary circuit board 110. Furthermore, the primary circuit board 110 includes a BMC 140, an I2C bus 145, and a logic device 150. As described in more detail below, the logic device 150 is configured to program one or more power controllers of the computer device 110 according to the example techniques described here. These components are described in more detail below.
[0018] The CPU 120 comprises one or more processors and associated supporting components, such as would be familiar to a person skilled in the art. The memory 125 may comprise a volatile or non-volatile storage device, such as random-access memory (RAM), which stores instructions executable by the CPU 120. In some examples, the CPU 120 and the memory 125 may be separate modules that are detachably mounted on the primary circuit board 110, while in other examples, the CPU 120 and the memory 125 may be part of the same integrated circuit (e.g., a socket-on-chip or SoC) that is either detachably mounted on or integrated into the circuit board 110.
[0019] The voltage regulators 130 are configured to supply the CPU 120 (or the SoC that includes the CPU 120 in examples that include such an SoC) with regulated electrical power. More specifically, the voltage regulators 130 can include a VR converter 131 and a VR controller 135. The VR converter 131 receives a DC signal (e.g., pwr_2) from the power supply 160 and, under the control of the VR controller 135, converts it into a suitable DC output signal (e.g., p_cpu) for the CPU 120. For example, pwr_2 can be a high-power 12 V, 5 V, or 3.3 V DC signal, while p_cpu can have a comparatively lower voltage (e.g., 1.2 V) but relatively tighter regulation (smaller voltage fluctuations) and a relatively high current.In some examples, several VRs 130 are provided for each CPU 120, which may be arranged in phases to further improve the power supply of the CPU 120, as should be known to the expert.
[0020] In some examples, the VR converter 131 comprises an actively controlled DC-DC converter with a switching regulator (or switched-mode power supply) topology. In such examples, the VR converter 131 includes (among other things) one or more switches that are turned on and off at a specific frequency and duty cycle, the duty cycle determining how much electrical current flows through the VR converter 131. By appropriately controlling the duty cycle, the voltage output by the VR converter 131 can be controlled. Examples of switching regulator topologies that can be used in the VR converter 131 include, but are not limited to: a buck converter, a boost converter, a buck-boost converter, or another switching regulator topology. An example of a buck converter topology is shown in Fig. presented and described below.
[0021] The signal controlling the VR converter 131 can be generated by the VR controller 135. The VR controller 135 can include a microcontroller configured to determine the appropriate parameters for the control signal (e.g., the appropriate duty cycle for the switch) and generate and output the control signal to the VR converter 131. The VR controller 135 can also dynamically adjust the control signal to changing conditions (e.g., a changing load on the CPU 120) to ensure that p_cpu is kept close to a target voltage. For example, the VR controller 135 can measure the voltage of p_cpu and compare it to the target voltage. If p_cpu deviates from the target voltage, the VR controller 135 can adjust the control signal (e.g., change the duty cycle) to bring p_cpu closer to the target voltage.In some examples, the VR controller 135 is an example of a power controller that the logic device 150 can program according to the techniques disclosed herein.
[0022] In some examples, the VR converter 131 and the VR controller 135 are provided as separate components that together form the voltage regulator 130. For example, the VR controller 135 may be provided as an integrated circuit, while the VR converter 131 may be provided as a separate integrated circuit or as a collection of discrete components (e.g., a transistor, an inductor, a capacitor, a diode, etc.). In other examples, the VR converter 131 and the VR controller 136 may be provided as part of the same integrated circuit.
[0023] For the sake of clarity, a VR 130 is shown that powers the CPU 120, but it should be understood that the computer device 100 may also contain other VRs (not shown) for powering other components of the computer device 100, such as VRs for powering a graphics processing unit (GPU), VRs for powering memory (e.g., memory 125), VRs for powering hardware accelerators, etc. These other VRs may be similar to the VRs 130 and may contain a VR controller similar to the VR controller 135. In examples that include such other VRs, their VR controllers may be additional examples of power controllers that can be programmed by the logic device 150 according to the techniques disclosed herein.
[0024] The BMC 140 can consist of a specialized microcontroller integrated into the primary circuit board 110, providing and managing an interface between the system management software and the hardware of the computer device 110. The BMC 140 can also monitor the operating states of the computer device 110's components, send alerts to system administrators, manage certain aspects of system security, and provide out-of-band management options for an administrator. BMCs are familiar to the average person, so the BMC 140 will not be described in detail here.
[0025] The BMC 140 can communicate with other components of the computer device 100—in particular the VR controller 126 and / or the PSU controller 165—via an I2C communication bus 145. Although the term "I2C" technically refers to the Inter-Integrated Circuit communication bus / protocol, it is used here more broadly to include all related communication buses / protocols that are based on, compatible with, or represent modified versions of Inter-Integrated Circuit, such as: System Management Bus (SMBus), Power Management Bus (PMBus), Intelligent Platform Management Bus (IPMB), Two-Wire Interface (TWI), Two-Wire Serial Interface (TWSI), and Improved Inter-Integrated Circuit (I3C).
[0026] The power supply 160 includes a power conversion circuit to convert electrical input power into one or more output power signals used to power other components of the computer 100. For example, the power supply 160 can convert alternating current or high-voltage direct current into low-voltage direct current signals that can be supplied to the primary circuit board 110. One or more of these power signals can also be supplied to other components (not shown), such as data storage media. The power signals provided by the power supply 160 can also be referred to as "power rails." Fig. The power signals pwr_1 and pwr_2 provided by the power supply 160 are included as one example, but in other examples, any number of power signals can be generated by the power supply 160, including one, two, three, or more. In some examples, the power supply 160 generates a 12 V power signal, a 5 V power signal, and / or a 3.3 V power signal. The power supply 160 includes one or more power supply controllers 165, which consist of microcontrollers that control the operation of the power supply 160. In some examples, these power supply controllers 165 represent examples of the power controllers described herein, which the logic device 150 can program according to the example approaches described herein.
[0027] The logic device 150 is a device comprising one or more logic circuits coupled to the primary circuit board 110 and configured to, among other things, send logic signals to the power controllers to control the overall operation of the power supply subsystem. In particular, the logic device 150 can control a power-on sequence of the computer device 100. In some examples, the logic device 150 comprises a complex programmable logic device (CPLD). In other examples, the logic device 150 may comprise a different type of logic device, such as a collection of discrete logic gates combined into a logic circuit, a programmable logic device (PLD), a field-programmable gate array (FPGA), etc. In some examples, the logic device 150 is integrated into the primary circuit board 110.The logic component 150 is molded into and / or soldered to the primary circuit board 110, so that the logic component generally cannot be removed from the primary circuit board 110 without potentially destructive operations such as cutting or desoldering. This contrasts with a removable mounting on the primary circuit board 110, as may be the case with some example CPUs 120, which can be removed by releasing a retention mechanism.
[0028] The power-on sequence can begin when device 100 is powered on. Immediately after power-on, not all components of data processing device 100 are powered. Instead, logic device 150 (among other components) is powered first, and then logic device 150 can determine if and when other components (such as the CPU 120) are powered. Particularly in systems with multiple power rails (which most computer equipment is), the rails may need to be powered on in a specific order to prevent leakage or damage to equipment, and the power-on sequence controlled by logic device 150 ensures that this sequence is followed. Furthermore, logic device 150 can check various aspects of the system during power-on sequencing (e.g.,(check whether the voltage supplied by the power supply 160 is within the specified limits), and if everything is acceptable, the logic device 150 can, in the correct sequence mentioned above, supply enable signals to the various power supply controllers that control the different parts of the power supply subsystem (e.g., different voltage rails) to enable these devices to begin supplying power to their various components. For example, the VR controller 135 can be configured to prevent the VR converter 131 from converting pwr_2 to the output power p_cpu until an enable signal is received from the logic device 150, so that the CPU 120 remains off until the logic device 150 determines that it is time to turn it on.The various parts of the power supply subsystem can be provided with their respective enable signals in a specific sequence determined by the logic device 150, which is why this is referred to as the power-on sequence or power sequencing. The enable signals provided by the logic device 150 can be sent to the power controllers (e.g., the VR controller 135) via logic input pins of the power controllers (e.g., logic pin 138 in ). Fig. ) are supplied, which are electrically connected to logic output pins of the logic device 150. In addition to sending the enable signals to the power controllers, the logic device 150 can also have various other logic input or output pins that are connected to logic input or output pins of the power controllers to monitor their states and / or control their operation.
[0029] Furthermore, the logic device 150 also includes logic for programming the power controllers 151. The power controller programming logic 151 contains logic for programming one or more power controllers, which includes logic for performing operations 152 and 153. Operation 152 involves causing a power controller of the computer device 100 to enter a programming mode, and operation 153 involves inputting programming information into the power controller via a logic pin of the power controller. In some examples, the power controller programmed in this way is the VR controller 135. In some examples, the power controller programmed in this way is the PSU controller 165. In some examples, the power controller programmed in this way is a different power controller (not shown), such as a VR controller of a different VR converter (not shown).In some examples, multiple power controllers can be programmed by the logic device 150, including any combination of the aforementioned. For clarity, the following description focuses primarily on an example where the VR control unit 135 is programmed by the logic device 150. However, it can be assumed that the same principles described regarding the programming of the VR control unit 135 also apply, mutatis mutandis, to the programming of the other power control units in the device 100 in the examples where the other power control units are programmed by the logic device 150. Furthermore, the use of the VR control unit 135 as an example below should not be misinterpreted to mean that the logic device 150 must necessarily program the VR control unit 135.Instead, as mentioned above, in various examples different power controllers (or different combinations of power controllers) can be programmed by the logic device 150, which can include any combination of one or more VR controllers 135, the PSU controller 165 or other power controllers.
[0030] In some examples, putting the power controller into programming mode during operation 152 may involve sending a predetermined signal or code to the power controller, configured to be interpreted as a command to enter programming mode, such as: applying a specific voltage to a specific logic pin of the power controller, applying a voltage to a specific logic pin for a predetermined duration, pulsed a signal at a specific logic pin a predetermined number of times consecutively, or any other type of signal. In some examples, the power controller may automatically enter programming mode under certain circumstances without the logic unit 150 needing to directly send a signal.For example, in some implementations, a VR controller 135 can automatically enter programming mode when it is powered on but no enable signal is being sent from the logic device 150 to the VR controller 135. Therefore, in such examples, the logic device 150 can put the VR controller 135 into programming mode by withholding the enable signal after the initial power supply. Once the programming is complete, the logic device 150 can then supply the enable signal to resume normal operation.
[0031] As mentioned above, process 153 involves inputting programming information via a logic pin of the power controller. This logic pin can also be referred to here as the "first logic pin" (in this context, "first" is merely a label and does not imply any sequence). For example, it shows Fig. The VR controller 135 is connected to the first logic pin 136, which is connected to a logic pin 156 of the logic device 150, and in some examples, programming information can be sent from pin 156 to pin 136 for input into the VR controller 135. Fig. The logic pins of the VR controller 135 are shown, but the logic pins of other power controllers (such as the PSU controller 165) are not shown to simplify the drawings. However, it should be understood that in some examples, other power controllers (such as the PSU controller 165) may also have a "first logic pin" used by the logic device 150 to input programming information into the power controller. Examples of logic pins that are part of a power controller, such as... Examples of the VR controller 135 include an enable pin, a power good pin, a voltage regulator hot pin, a catastrophic fault pin, an alert pin, a power in alert pin, an input OK pin, an I2C alert pin, a presence pin and an installed pin, and in some examples one of these pins can be repurposed for use as the first logic pin 136 in programming mode.
[0032] In some examples, the logic device 150 and the power controller 153 can operate as a sampling chain during operation, transferring programming information to the power controller using multiple logic pins, including at least the first logic pin mentioned above. For example, in power mode, the logic device 150 can generate a clock signal and apply this clock signal to a second logic pin of the power controller, such as the second logic pin 137 of the VR controller 135. The clock signal applied to the second logic pin 137 can consist of a series of cyclically repeating values, such as a cycle of logic high voltage followed by logic low voltage followed by logic high voltage, and so on.The logic device 150 can then supply one bit of the programming data to the first logic pin 136 for each clock cycle (or half-cycle) of the clock signal, with the bits being indicated by predetermined voltages applied to the first logic pin 136 (e.g., a high voltage indicating a logic 1 and a low voltage indicating a logic 0, or vice versa). The power controller (e.g., VR controller 135) can, in turn, be configured to monitor the second logic pin 137 for the clock signal in programming mode, sample the voltage values applied to the first logic pin 136 at each clock cycle (or half-cycle), and shift the sampled value to an internal storage medium (e.g., a shift register, flash memory, or similar) for subsequent processing.The value of the first logic pin 136 can be sampled (read) by the power controller on the rising edge, the falling edge, or both the rising and falling edges of the clock signal. In this way, a collection of programming information can be serially fed into the power controller, one bit at a time.
[0033] In some examples, multiple logic pins of the power controller can be used in the manner described above to simultaneously shift programming information into the power controller, allowing multiple bits to be shifted in parallel. For example, if N logic pins (excluding the pin used for the clock signal) are used for programming, N bits of programming information can be shifted into the power controller simultaneously (in parallel) for each clock cycle (or half-cycle).
[0034] In some examples, programming the power controller in Operation 153 may involve setting / assigning an I2C bus address for the power controller. In other examples, programming the power controller in Operation 153 may involve other changes to the power controller's configuration, such as changes to an operating setpoint (e.g., target voltage), changes to which phases of a multiphase VR 130 are operating, changes to the switching frequencies of the VRs 130, changes to phase thresholds (e.g., to maximize efficiency for a particular processor SKU), or other changes to the power controller's configuration. In some examples, some of the power controller's configuration changes may be made dynamically (e.g., essentially in real time) based on changing conditions.
[0035] In the Fig. An example process for programming a power controller is described using an example of the computing device 100. In this example, a CPLD 250 is used to reprogram a VR controller 235, which controls a VR converter 231. The CPLD 250, the VR controller 235, and the VR converter 231 are example configurations of the logic device 150, the VR controller 135, and the VR converter 131 described above. Furthermore, the example of the Fig. Assuming that the programming takes place when the device is first switched on.
[0036] As in Fig. As shown, the computer system can be switched on at event 201, which causes the power supply to start supplying power (e.g., pwr_1 and pwr_2) to the CPLD 250, the VR controller 235, and the VR converter 231. Fig. This shows an initial state of the electrical device before event 201 (i.e., before the device is switched on). In this initial state, the CPLD 250 and the VR controller 235 are switched off, and the CPU is not powered by the VR converter 231. Fig. This shows a second state that follows event 201 (i.e., after the device is switched on). In this second state, the CPLD 250, the VR controller 235, and the VR converter 231 are powered by the power supply, as shown in Fig. as indicated by the darkened lines, but no current is output from the VR converter 231 to the CPU because the CPLD 250 has not yet sent an enable signal to the VR controller 250 via the enb pins, and therefore the VR controller 250 has not yet supplied a CTRL control signal to the VR converter 231. In some implementations, the VR converter 231 may, for example, include a switch 216 (e.g., a transistor), an inductor 214, a capacitor 218, and a diode 219, as detailed in Figure 235'. Fig. are shown arranged, and in which in Fig. In the state shown, the switch 216 is held in an OFF state (non-conducting) because the control signal CTRL is not activated, and therefore no current flows through the power converter 231 in this state, although input current (pwr_2) is supplied to the VR converter 231.
[0037] Back to Fig. In response to the initial power-on, the CPLD 250 begins a power sequencing process in event 202a. As mentioned earlier, this process can involve performing various checks and then, if everything is OK, sending enable signals to allow power to other components.
[0038] Simultaneously with event 202a, the VR controller can automatically enter a programming mode in event 202b. This can happen in this example because the VR controller 235 has been switched on, but has not yet received a release signal from the CPLD 250.
[0039] As part of the power sequencing process, the CPLD 250 can determine in event 203 whether the VR controller 235 needs to be programmed. In some examples, the CPLD 250 can determine that the VR controller 235 needs to be programmed if no I2C address has yet been programmed into it. If the CPLD 250 determines that the VR controller 235 needs to be programmed, it can withhold the enable signal (ENB) to keep the VR controller in programming mode.
[0040] The CPLD 250 can then send the programming information to the VR controller via one or more of the VR controller's logic pins. For example, illustrates Fig. a third state in which a bit of programming information is supplied from the CPLD 250 to the VR controller 235 via a first logic pin, which is in Fig. is labeled "prog", while a second logic pin, which is in Fig. is marked, indicating a clock signal. The one in Fig. The state shown can be repeated multiple times (e.g., once for each bit of program information), with the voltage applied to the prog pin varying depending on the bit being transmitted. The clock signal applied to the clk pin can change its values between each data transmission (either once or twice, depending on whether the data is sampled on rising edges, falling edges, or both). Although only one prog pin is shown, in some examples multiple pins can be used to transmit data simultaneously and in parallel. Although the prog pin is shown in the Fig. For better understanding, the fact that the prog pin is labelled "prog" does not necessarily mean that the prog pin is only intended for programming - in some examples the prog pin may be intended for programming, while in other examples it may be used for other functions during normal operation and only used for programming in programming mode.
[0041] Back to Fig. In event 204, the CPLD 250 detects that the programming of the VR controller 235 is complete (e.g., all data has been transferred), and therefore the CPLD 250 can return to normal power sequencing operations, including transmitting the enable signal ENB to the VR controller when the CPLD 250 deems it appropriate to do so. In response to receiving the enable signal ENB, the VR controller exits programming mode in event 205 and generates the control signal CTRL to instruct the VR to begin powering the CPU. The control signal CTRL could, for example, be a pulse-width modulation (PWM) signal applied to a control terminal (e.g., gate) of a switch 216 of the VR converter 231 (see Fig. ) is applied, causing switch 216 to toggle between the ON (conducting) and OFF (non-conducting) states. This causes current to flow through converter 231, thus supplying power P_cpu at a voltage that depends on the duty cycle of the CTRL signal. Fig. shows a fourth state, corresponding to event 206, in which the enable signal ENB is activated and consequently the control signal CTRL is generated and the output power p_cpu is delivered.
[0042] Fig. This illustrates an example process. The process is an example of how the data processing device 100 can program a power controller.
[0043] Block 401 receives the initial power to the CPLD when the computer is switched on.
[0044] In block 402, the CPLD begins a power-on sequence in response to receiving the initial power supply.
[0045] In block 404, the CPLD determines whether the electronic device's power controller needs to be programmed. Programming might be necessary, for example, if the power controller is being detected for the first time and a new I2C address needs to be assigned. If the controller needs to be programmed, the process continues via the YES branch to block 406. If the controller does not need to be programmed, the process continues via the NO branch to block 408.
[0046] In block 406, the CPLD can interrupt the rest of the power-on sequence, withhold the enable signal from the power controller to be programmed, and begin sending programming information to the power controller via one or more logic pins.
[0047] In block 408, after programming is complete, the CPLD can resume or continue the rest of the power-on sequence.
[0048] In block 410, the CPLD can send the enable signal to the power controller as part of the continuation of the power-on sequence.
[0049] In Fig. Another example of programming a power controller is described. This example differs from the example in Fig. This is because, in this example, the programming is carried out while the device is operating and not when it is first switched on. Thus, in Fig. The control signal CTRL_1 is fed to the VR converter and the VR converter delivers the output power p_cpu to the CPU before the programming takes place.
[0050] In event 301, the CPLD determines that the VR controller needs to be programmed (e.g., a configuration parameter needs to be changed). This determination can be made in response to sensor feedback, a detected event, a state change, or any other identified condition that, in the CPLD's opinion, justifies a change to the VR controller's configuration. The CPLD then sends a PROG_start command to the VR controller to put it into programming mode.
[0051] In event 302, the VR controller receives the PROG_start command and enters programming mode.
[0052] In event 303, the CPLD begins sending programming information to the VR controller via its logic pins.
[0053] In event 304, the CPLD determines that the programming is complete and sends a PROG_end command to the VR controller to end programming mode.
[0054] In event 305, the VR controller receives PROG_end and exits programming mode. After exiting programming mode, the VR controller applies the configuration changes made during programming. In some cases, applying the configuration changes may cause the control signal output by the VR controller to change according to the new configuration settings (e.g., a change in frequency), as shown in Fig. This is indicated by the change in the control signal from CTRL_1 to CTRL_2. Applying the configuration changes can also cause the power signal output by the VR converter to change, as shown in Fig. indicated by the change from p_cpu to p_cpu*.
[0055] In the Fig.In the sequence shown, the power controller configuration is dynamically changed in real time while the computer device is operating. This type of programming can be useful, for example, to dynamically change the power controller configuration in response to changing conditions and thus optimize the power efficiency of the power subsystem.
[0056] The above description covers various types of electronic circuits. The term "electronic" as used here is broad and encompasses all types of circuits that utilize electricity, including digital and analog circuits, direct current (DC) and alternating current (AC) circuits, as well as circuits for converting electricity into another form of energy and circuits for using electricity to perform other functions. In other words, no distinction is made here between "electronic" circuits and "electrical" circuits.
[0057] It is understood that both the general and detailed descriptions contain examples that are explanatory and intended to aid in understanding the present disclosure without limiting its scope. Various mechanical, compositional, structural, electronic, and operational modifications may be made without altering the scope of this description and the claims. In some cases, known circuits, structures, and techniques have not been shown or described in detail so as not to obscure the examples. Identical numbers in two or more figures represent identical or similar elements.
[0058] Furthermore, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context indicates otherwise. Additionally, the terms "comprises," "includes," "includes," and the like specify the presence of certain features, steps, processes, elements, and / or components, but do not preclude the presence or addition of one or more other features, steps, processes, elements, components, and / or groups. Components described as coupled may be directly coupled electronically or mechanically, or they may be coupled indirectly via one or more intermediate components, unless explicitly stated otherwise.Mathematical and geometric terms need not necessarily be used in accordance with their strict definitions unless the context of the description makes otherwise clear, because a person with normal technical knowledge would understand that, for example, an essentially similar element that functions in an essentially similar way could easily fall within the scope of a descriptive term, even if the term also has a strict definition.
[0059] And / or: Occasionally, the expression "and / or" is used here in conjunction with a list of elements. This phrasing means that any combination of elements in the list—from a single element to all elements and any permutation in between—can be included. For example, "A, B and / or C" means "one of {A}, {B}, {C}, {A, B}, {A, C}, {C, B} and {A, C, B}".
[0060] Elements and their associated aspects that are described in detail in one example may, whenever practical, be included in other examples where they are not specifically shown or described. For example, if an element is described in detail with reference to one example and not described with reference to a second example, the element may still be claimed to be included in the second example.
[0061] Unless otherwise stated herein or evident from the context, the use of approximate terms such as "essentially," "approximately," "about," "about," "roughly," and the like is to be understood as not requiring mathematical precision and instead referring to a range of variation that includes, but is not strictly limited to, the stated value, property, or ratio. In particular, the range of variation implied by the use of such an approximate term includes, in addition to any explicitly stated ranges herein (if any), at least all immaterial variations and also those variations that are typical in the relevant field for the type of item in question due to manufacturing or other tolerances.In any case, the range of variation may include values that are within ±1% of the specified value, property or ratio, unless otherwise stated.
Claims
[1] Computer device (100) comprising the following: a primary printed circuit board (110); one or more computer components mounted on the primary printed circuit board (110); a Baseboard Management Controller (140), hereinafter referred to as BMC, which is mounted on the primary printed circuit board (110); a power subsystem with a power controller (151) comprising a first logic pin (138); and a logic device (150) coupled to the primary circuit board (110) and connected to the first logic pin (138), wherein the logic device (150) is configured to program the power controller (151) by placing the power controller (151) into a programming mode and inputting programming information into the power controller (151) via the first logic pin (138), wherein the power subsystem comprises a voltage regulator (130), hereinafter referred to as VR, attached to the primary circuit board (110), the VR (130) comprising a VR converter (131) configured to supply electrical power to one of the computer components, and a VR controller (135) configured to control the VR converter (131), and the power controller (151) includes the VR controller (135). [2] Computer device (100) according to claim 1, wherein the one or more computer components comprise a central processing unit (120) and the VR converter (131) is configured to supply the CPU (120) with electrical power. [3] Computer device (100) according to claim 1, wherein the logic device (150) is configured to put the power controller (151) into programming mode by withholding a release signal from the power controller (151). [4] Computer device (100) according to claim 1, wherein the logic device (150) is configured to put the power controller (151) into programming mode by sending a command to the power controller (151) via a logic pin of the power controller (151), wherein the logic pin comprises the first logic pin (138) or another logic pin of the power controller (151). [5] Computer device (100) according to claim 1, wherein the logic device (150) is configured to input the programming information into the power controller (151) by supplying a clock signal to a second logic pin of the power controller (151) and to shift bits of the programming information into the power controller (151) by applying signals to the first logic pin (138) in synchronization with the clock signal. [6] Computer device (100) according to claim 1, wherein the logic device (150) is a complex programmable logic device configured to control a power-on sequence of the computer device (100). [7] Computer device (100) according to claim 6, wherein the logic device (150) is integrated into the primary circuit board (110). [8] Computer device (100) according to claim 6, wherein the logic device (150) is configured to program the power controller (151) as part of the power-on sequence in response to the power-on of the computer device (100). [9] Computer device (100) according to claim 8, wherein the computer device (100) further comprises a communication bus (145) that communicatively couples the BMC(140) to the power subsystem, and wherein the programming of the power controller (151) by the logic device (150) includes the programming of a bus address for the power controller (152). [10] Computer device (100) according to claim 1, wherein the power subsystem comprises a power supply unit (160) which is detachably connected to the primary circuit board (110). [11] Computer device (100) according to claim 1, wherein the logic device (150) is separate and distinct from the BMC (140) and the logic device (150) is configured to program the power controller (151) independently of the BMC (140). [12] Computer device (100) according to claim 1, wherein the computer device (100) further comprises a communication bus (145) that communicatively connects the BMC (140) to the power subsystem, and the programming of the power controller (151) by the logic device (150) does not depend on any messages sent via the communication bus (145). [13] Computer device (100) according to claim 1, wherein the logic device (150) comprises a logic output pin which is directly electrically coupled to the first logic pin (138) and the programming information is transferred from the logic output pin to the first logic pin (138).