Abstract:
A method for automatically determining whether power consumption devices can be powered up in a power consuming system having multiple power consumption devices to be powered up by one or several voltages among a set of voltages V 1 , V 2  . . . Vm. The set of voltages are provided by multiple power supplies, wherein each power supply provides at least one voltage. The power consuming system also includes a control point for controlling the power supplied to the power consumption devices. The method includes determining a set of linear inequations linking each variable P V1 , P V2  . . . P Vm  representing the power being consumed for each voltage, or combinations of several variables, to predetermined power limits PVC. Next, the real power value (P) requested for each voltage in order to power up each one of the first plurality of power consumption devices is determined. Subsequently, each real power value is divided by the number of power supplies (p) providing power for the associated voltage in order to determine the components of a power consumption vector (PC) for each power supply. Next, the variables P V1 , P V2  . . . P Vm  are replaced in the inequations by the corresponding components of the power consumption vector for each power supply (PC) in order to obtain a requested power value for each inequation. The requested power value is then compared to the predetermined power limits (PVC). The requested power value is then compared to the predetermined power limits (PVC) and the control point determines that a new power supply is requested if at least one of the requested power values is greater than the predetermined power limits.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application is related to co-pending U.S. application Ser. No. 09/621,395, filed on even date herewith and incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The invention relates to systems having hot-pluggable power consumption devices, hot-pluggable power supplies including a non-volatile memory storing their own characteristics and a power management unit providing the optimal power distribution to the power consumption devices as a function of the present power supplies. More particularly, the present invention relates to a method of managing the power supplies in a power consuming system. 
     2. Background 
     The system involved in the invention can be either a device used in telecommunication networks, such as a router or switching device, or a data processing device that includes a plurality of processors wherein one of the processors acts as a control processor managing the power consumption of the other processors. 
     Such a system as illustrated in FIG. 1 includes the following components. 
     (i) a set of power supplies  10 ,  12 ,  14  that may be of different types, supplying some or all of the various voltages required by the system (e.g. +3.3V, +5V, −48V, and +12V from 220V AC), and that can be inserted in or removed from the system at any time, 
     (ii) slots that can receive power consumption devices  16 ,  18 ,  20  which can be added or removed at any time, 
     (iii) a Control Point  22 , provided with a CPU and some memory, capable of reading information that comes from serial EEPROMs over an I 2 C serial bus  24  connecting the power supplies and the power consumption devices to the Control Point, and controlling the supply of power to the slots, and thus to the devices they contain, the Control Point being permanently powered, and 
     (iv) a power supply distribution network of the various voltages to the Control Point and to the slots, including the capability for the Control Point to control slot powering. 
     Additionally, the Control Point can access the required power information for any device and any voltage, either through an EEPROM located in the consumption device that contains this information, or through software tables that give this information based on the identification of the inserted device. The Control Point further has an operator interface means such as a console  26 . 
     The design and manufacturing cost of power supplies in the system is an important factor, because savings can be accomplished there. This is why a power supply is not designed straight away to withstand the maximum theoretical load of a system filled with the power consumption devices that have the highest power requirements, but rather to provide the ability to increase the system capability as its power requirements get higher. This way, the cost of small configurations remains competitive compared with their competitors. 
     The Control Point must, among other things, manage the feeding of slots and devices inserted into them based on the following parameters: 
     (a) consumption characteristics of power consumption devices, 
     (b) power priority assigned to the power consumption devices in case of a conflict, 
     (c) capability of power supplies to withstand the load required by the Control Point and by the power consumption devices inserted into the slots, and 
     (d) power redundancy if this one is desired for power supplies (i.e. should any of the power supplies fail, remaining power supplies will still withstand the load) 
     A conflict occurs when the system power supplies cannot withstand the overall load of the devices, because either there are too many devices compared with power supplies capability, or because one or several power supplies failed or were removed. In such a case, the Control Point switches off the devices having the lowest power priority, in order to meet each power supply capability and operating range. 
     The Control Point can use the console for showing devices not powered in case of a conflict, and requesting that an operator should either add one or more power supplies or remove these devices. The Control Point may also utilize the console for displaying the current redundancy status (i.e. whether redundancy still exists, further to a power supply failure or removal) and for displaying the remaining margin for feeding additional devices when there is no conflicts, so that the operator can decide whether he must plan the addition of one or several power supplies when he wants to add other devices. 
     Prior art solutions for performing the above tasks are based on: 
     1. either accessing a description of power maximum capability characteristics for any voltage powered by a power supply, or 
     2. a feedback mechanism from any power supply to the Control Point, enabling to determine the limit and the remaining margin (see, e.g., PCT application WO 96/19764). 
     Type  1  solutions have the following disadvantages: 
     (a) They impose constraints on power supplies design and manufacturing, requiring that the supplied voltages be independent. That is, the power used from a voltage does not affect the amount of power that remains available to another voltage. This kind of constraints substantially increases power supplies design and manufacturing costs, or 
     (b) they do not require any independence among voltages. However, in such a case, either the Control Point software features remain basic and do not get the most of the power supplies. For example, as it requires more power supplies than needed, the control point software cannot accurately estimate the remaining capability. Thus, it cannot enable an optimum redundancy operation within a system provided with different types of power supplies. This increases the overall cost of the system as the latter requires more power supplies than needed, or 
     (c) the Control Point software can manage optimally the different types of power supplies, but need to know each type. This results in a complexity that increases with the number of types to be managed. This, in turn, increases the testing costs of the system, along with maintenance costs if bugs occur that, in turn, increases directly or indirectly the system overall cost. 
     Additionally, when creating a new type of power supply (further to a technology improvement, a cost reduction action, or a system evolution), the Control Point software must be updated and the new release must be dispatched that, in turn, also involves additional costs. 
     Type  2  solutions are not satisfactory either, as they require some intelligence either in the power supplies or around them in the system, that generates a cost equal to or greater than the cost of type  1  solutions. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the present invention to provide an improved power managing system. 
     It is another object of the present invention to provide a method for managing power supplies in a power consumption system. 
     To achieve the foregoing objects, and in accordance with the invention as embodied and broadly described herein, a method for managing power supplies in a power consuming system having multiple power consumption devices to be powered up by one or several voltages among a set of voltages V 1 , V 2  . . . Vm is disclosed. The set of voltages are provided by multiple power supplies, wherein each power supply provides at least one voltage. The power consuming system also includes a control point for controlling the power supplied to the power consumption devices. The method includes determining a set of linear inequations linking each variable P V1 , P V2  . . . P Vm , representing the power being consumed for each voltage, or combinations of several variables, to predetermined power limits PVC. Next, the real power value (P) requested for each voltage in order to power up each one of the first plurality of power consumption devices is determined. Subsequently, each real power value is divided by the number of power supplies (p) providing power for the associated voltage in order to determine the components of a power consumption vector (PC) for each power supply. Next, the variables P V1 , P V2  . . . P Vm  are replaced in the inequations by the corresponding components of the power consumption vector for each power supply (PC) in order to obtain a requested power value for each inequation. The requested power value is then compared to the predetermined power limits (PVC) and the control point determines that a new power supply is requested if at least one of the requested power values is greater than the predetermined power limits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and advantages of the invention will be better understood by reading the following more particular description of the invention in conjunction with the accompanying drawings wherein: 
     FIG. 1 represents block-diagram of an exemplary system wherein the method according to the invention is implemented; 
     FIG. 2 is an exemplary flow chart, according to the principles of the present invention, representing the sequential steps used to check whether the power consumption devices of the system illustrated in FIG. 1 can be powered up; and 
     FIG. 3 is an exemplary flow chart representing the steps of the method used to manage the power supplies in the system either on a periodical basis or each time a power supply has failed or is added. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The method according to the invention is implemented in a system illustrated in FIG. 1 including a first plurality of power consumption devices or modules  16 ,  18 ,  20  which are powered up under a set of voltages (3,3 volts, 5 volts, −48 Volts, +12 Volts,) by a second plurality of power supplies  10 ,  12 ,  14  under the control of control point unit  22 . 
     Note that, in the following description, it is equivalent to talk about electrical current or power for a given voltage. Power will be used for simplification of the description. 
     The consumption characteristics of all modules of the system are available in EEPROMs included in each module or through software tables in the control point. It must be noted that the method hereafter disclosed is implemented by a program run in control point unit  22 . 
     The information to be stored and retrieved in each power supply EEPROM are a vector VS of m rows with values equal to 0 or 1, defining which voltage channels are supplied by this power supply, and a matrix PE of n rows and m columns filled with coefficients α ij =0 or 1 which describes power inequations that will be used for checking, where n=number of linear inequations for this power supply unit, and m=number of voltage channels in the system. The information stored in power supply EEPROM also includes a vector PV of n values which defines the verification values for each of the above power inequations. 
     A power supply holding that above information allows software code to manage the power budget, and to decide if it should give power or not to connected devices as a function of their power consumption on each voltage channel. Basically, each time a device is added, a vector P composed of m variables P Vj  which represent each of the sum of power consumed by the already powered on devices plus the added device on voltage channel j, must be used against matrix P to check that the equations: 
     
       
         α i1   ·PV   1 +α i2   ·P   V2 + . . . +α im   ·P   Vm   =PV   i   
       
     
     are satisfied for each i. An additional verification is needed to see if for each voltage channels j where P Vj ≠0 and VS j ≠0. 
     Before starting the method according to the invention, an initial step consists in building a matrix PEC, the coefficients of which will be named β ij  that is the composition of the PE matrices of all the power supplies present in the system. When a same power inequation is used for several power supplies, this inequation is used only one time in the PEC matrix. 
     Likewise, a vector PVC is built by composing the vectors PV of all the power supplies. When a component PV i  is different for several identical power inequations from the PE matrices, the minimum value is kept for the single inequation kept. 
     A vector p is built by adding the vectors VS of all the power supplies. This means that the components of vector p represent the number of power supplies supplying each voltage. Subsequently, a vector PC is built by adding the vector P corresponding to all the power supplies and dividing each component value by the associated component of p as shown below. 
     
       
         
           PC=ΣP/ 
           p 
         
       
     
     In summary the initial step consists in initializing PEC to null matrix and PVC to null vector (vertical dimension=0), initializing the vector p to vector  0 , and executing the following algorithm for each present power supply. 
     Algorithm 1: 
     (i) Get the VS, PE and PV information for a power supply from its corresponding EEPROM on the I2C Bus. 
     (ii) Use VS from the power supply to update the vector p. If this power supply supplies a voltage channel, increment by 1 the corresponding number in p. 
     (iii) Use PE and PV from this power supply to update PEC and PVC. 
     If an equation in PE is not in PEC, add it to PEC increasing its vertical dimension by one (1) and add the corresponding PV i  to PVC at the same vertical position. On the other hand, if an equation in PE is already in PEC but its corresponding PV i  is lower than the value for this equation in PVC, replace the value in PVC by this Pv i . 
     Such an algorithm is as follows when written in pseudo-language form: 
     /* Get VS, PE and PV from power supply EEPROM on I2C bus */ . code is implementation dependent. 
     /* Update number of power supplies supplying each voltage channel */ for each j in [1 . . . m], do 
     (Vs j  !=0) then set p j =p j +1 
     /* Add new equations to PEC and PVC, or update PVC if needed */ for each i in [1 . . . n], n being number of rows of PE, do 
     set already 13  there=FALSE 
     for each i′ in [1 . . . n PEC ], do 
     if ((α i1 , α i2 , . . . , α im )=(β i′1 , β i′2 , . . . , β i′m )) then 
     set already 13  there=TRUE 
     end loop for each i′ 
     if (!already 13  there) then /* Add new equation */ 
     set (β nPEC1 , β nPEC2 , . . . , β nPECm )=(α i1 , α i2 , . . . α im ) 
     set PVC nPEC =PV i    
     set n PEC =n PEC +1 else /* Update PVC i ,*/ 
     if (PV i &lt;PVC i ,) then 
     set PVC i ,=PV i    
     An alternative embodiment of the invention consists in using a power redundancy mode. In such a mode, it is assumed that a power supply k has failed and the remaining power supplies have to supply all voltages being used and the required power for each of them. In such a case, it is possible to determine matrix PEC k , and vectors PVC k  and p k  corresponding to PEC, PVC and p when power supply k has failed. 
     Accordingly, in power redundancy mode, the initial step consists in initializing PEC k , PVC k  and p k  for k going from 1 to K (number of present power supplies) and executing the above algorithm in a system where power supply k is missing. 
     The method used to determine whether the power consumption devices can be powered up is now described in reference to the flow chart illustrated in FIG.  2 . The method starts (step  30 ) either automatically on a periodical basis or when a new module has been added to the system. Next, vector P represents the power consumed by the modules is set to 0 (step  32 ). The information about modules (voltages being used, power consumed) is obtained either from an EEPROM in the module or from a software table (step  34 ). Next, it is checked whether there is a module to be powered up (step  36 ). If there is a module to be powered up, algorithm 2 or algorithm 3 (described below) is executed (step  40 ). The purpose of algorithm 2 is to verify that there is at least one power supply supplying each needed voltage and that a given power consumption load can be supported by the power supplies present in the system. Accordingly, the function of algorithm 2 consists in performing the following function detailed below. 
     Algorithm 2: 
     (i) Checking that for each value in P (“vector of needed power”), the corresponding value in p (“number of power supplies supplying each voltage channel”) is not 0. If it is 0, then the needed power cannot be supported, return KO. 
     (ii) Building PC vector of needed power per power supply where each term equals the corresponding term in P divided by the corresponding term in p. 
     (iii) Verifying that PEC . PC≦PVC 
     An exemplary psuedo-code for implementing algorithm 2 is as follows: 
     /* Build PC and check that needed voltage channels are supplied */ for each j in [1 . . . m], do 
     if (p j =0) then 
     if ( P   j +=≠0) then return check_KO 
     else set PC j =0 
     else set PC j =P j / p   j    
     /* Verify the checking equations */ for each i in [1 . . . n PEC ], being the number of rows of PEC, do 
     if (β i1 PC 1 + β   i2 PC 2 + . . . + β   im PC m &gt;PVC i ) then return check_KO 
     return check_OK 
     If the system is in power redundancy mode, algorithm 3 is to be used. The function of algorithm  3  consists in doing the following functions detailed below. 
     Algorithm 3: 
     (i) For each k going from  1  to K, using algorithm 2 on PEC k , PVC k  and p k , doing as if power supply k was not here for the calculation of PC. 
     (ii) If at least one returns KO, return KO, else (i.e. if every one returns OK) return OK. 
     An exemplary pseudo-code for implementing algorithm 3 is follows: 
     /* Apply algorithm 2 for each tuple (PEC k , PVC k , p k ) */ for each k in [1 . . . K], do 
     if (algorithm 13  2 (PEC k , PVC k , p k )=check_KO) then 
     return check_KO 
     Return Check_OK 
     The following step is to check whether algorithm 2 or algorithm 3 has returned ok (step  42 ). If not, the process is ended (step  38 ). If return OK, P is set to the current value to which is added the value of the power required by module to be powered up (step  44 ). Finally, the module is powered up (step  46 ) before returning to checking whether there is still another module to be powered up. 
     The method of managing the power supplies is now described with reference to FIG.  3 A and FIG.  3 B. First, it should be noted that the processing is started either automatically on a periodic basis (step  50 ), because a power supply has been added to the system (step  52 ) or because a power supply has failed (step  54 ). It also should be noted that starting the process periodically can be necessary insofar as the characteristics of the power consumption devices may change with time. 
     When the process is started because there is a new power supply, it is necessary to get characteristics of the added power supply from the EEPROM included therein. 
     After getting this information, or if the process is started because of power supply has failed, algorithm 1 described previously is executed (step  58 ) in order to initialize the parameters to be used in the following steps. 
     Next, when algorithm 1 has been executed or because the process has been automatically started (in such a case, algorithm 1 has already been executed and the parameters are already initialized), algorithm 2 or algorithm 3 (when in power redundancy mode) is executed (step  60 ). 
     The following step checks whether algorithm 2 or algorithm 3 has returned OK (step  62 ). If not, a test is made to check whether the system is in power redundancy mode (step  64 ). If it is the case, a command of “exit power redundancy mode” is performed (step  66 ) and algorithm 2 is executed (step  68 ). This way, it is possible that algorithm 3 does not return OK whereas algorithm 2 requiring less severe conditions than algorithm 3, returns OK after the power redundancy mode has been abandoned. If the execution of algorithm 2 returns OK (step  70 ) this means that the present power supplies are sufficient to provide power to the modules, and that a new module may be powered up (step  72 ). Note that the process goes directly to the step of powering up modules when the first execution of algorithm 2 returns OK (step  62 ). 
     When it is not possible to supply enough power with the present power supplies, the system being in power redundancy mode or not, it is necessary to power down at least one of the modules (step  74 ). 
     At this point, it is necessary to start again the process (FIG. 3A) after having added a new power supply to the system. The characteristics of this new supply can be determined by executing the following algorithm 4 detailed below. (step  76 ). 
     Algorithm 4 
     (i) Calculate PVdiff=PVC−PEC·PC. Now, look at the equations in PEC corresponding to the negative terms of PVdiff, and only at them. List all the voltage channels which are used by this equations (i.e. whose βi,j=1). 
     (ii) Calculate a VSreq. Where each term in VSreq equals 1 if corresponding voltage is in the list built in the preceding step, else it is equal to 0. 
     (iii) Calculate a new p′ where p′=p+VSreq. 
     (iv) Calculate a new PC′, where each term equals the corresponding term in P divided by the corresponding term in p′. 
     If PEC.PC′≦PVC, then a new power supply can be added to solve the problem. This new power supply would have as minimum characteristics the following: VSreq, PEreq defined by α ij =0 if i≠j, else α ij =1 if VSreq i =1, else α ij =0, and PVreq defined by PVreq i =0 if Vsreq i =0, else Pvreq i =PC i ,. In other words, this new power supply should supply at least the voltage channels where there is a 1 in VSreq, with at least the corresponding power in PC′. 
     Note that, after powering up the modules (step  72 ), it is able to execute algorithm 3 if the system is not in power redundancy mode and to enter this mode if the execution of algorithm 3 returns OK (step  78 ). 
     DETAILED EXAMPLE 
     The system being used as an example includes 2 power supplies providing the 4 following voltages: 
     V 1 =+3,3 volts 
     V 2 =+5 volts 
     V 3 =−48 volts 
     V 4 =+12 volts 
     Power supply  1  provides voltages V 1 , V 2 , V 3  and V 4  and is characterized by the following inequations: 
     
       
           P   V1   +P   V2   +P   V3   +P   V4 ≦590 W 
       
     
     
       
           P   V1 ≦444 W 
       
     
       P   V2 ≦306 W 
     
       
           P   V3 ≦144 W 
       
     
     
       
           P   V4 ≦84 W 
       
     
     and so thus VS=(1, 1, 1, 1),          PE   =     (         1       1       1       1           1       0       0       0           0       1       0       0           0       0       1       0           0       0       0       1         )       ,                          
     and        PV   =       (         590           444           306           144           84         )     .                            
     Power supply  2  provides voltages V 1 , V 2  and V 4  and is characterized by the following inequations: 
     
       
           P   V1   +P   V2 ≦450 W 
       
     
     
       
           P   V1 ≦444 W 
       
     
     
       
           P   V2 ≦280 W 
       
     
     
       
           P   V4 ≦120 W 
       
     
     thus VS=(1, 1, 0, 1),          PE   =     (         1       1       0       0           1       0       0       0           0       1       0       0           0       0       0       1         )       ,                          
     and        PV   =       (         446           444           280           120         )     .                            
     After power on of the system, PEC, PVC and p will be calculated by algorithm 1 as follows:          PEC   =     (         1       1       1       1           1       0       0       0           0       1       0       0           0       0       1       0           0       0       0       1           1       1       0       0         )       ,                                  PVC   =     (         590           444           280           144           84           446         )       ,                           
     and p=(2, 2, 1, 2). 
     For redundancy mode, since there are 2 power supplies, there will be 2 cases of failure, and then 2tuples:            PEC   1     =     (         1       1       0       0           1       0       0       0           0       1       0       0           0       0       0       1         )       ,                                    PVC   1     =     (         446           444           280           120         )       ,                           
     and p 1 =(1, 1, 0, 1) for 
     the case where power supply  1  fails, 
     and            PEC   2     =     (         1       1       1       1           1       0       0       0           0       1       0       0           0       0       1       0           0       0       0       1         )       ,                                    PVC   2     =     (         590           444           306           144           84         )       ,                           
     and 
     p 2 =(1, 1, 1, 1) for the case where power supply  2  fails. 
     Let&#39;s assume that the total power required by the Control 
     Point and the consumption devices is        P   =       (         200           150           80           120         )     .                            
     When algorithm 2 is executed to check which consumption device can be powered up, it will calculate        PC   =     (         100           75           80           60         )                            
     for the total load, using p. 
     Since PEC.          PC   =         (         315           100           75           80           60           175         )     ≤   PVC     =     (         590           444           280           144           84           446         )         ,                          
     all the compsumption 
     devices will be powered up. 
     As discussed previously, algorithm 3 is then executed (step  76  of FIG.  3 B). However, in the present case, power supply  2  alone does not supply voltage V 3  and therefore the execution of algorithm 3 returns KO. Consequently, the power redundancy mode will not be set. 
     The following two cases are given to illustrate the different possibilities of the invention. In the first case, the addition of a new module results in the addition of a power supply identical to a power supply already in the system whereas in the second case, the characteristics of a new power supply to be introduced are determined as a function of a new module added to the system. ps 1. Case 1 
     It is assumed that the new consumption device requires        P   =     (         10           18           50           54         )                            
     and has a power priority superior to any other device already powered up in the system. 
     The new total P will be          (         210           168           130           174         )     ,                          
     and when executing algorithm 2, the new PC will be             (         105           84           130           87         )                            
     which yields PEC.          PC   =     (         416           105           84           130           87           189         )       ,                          
     and since this is not≦PVC, the consumption device will not be powered up and will remain in the list of devices to be powered up. 
     Let us assume that the operator decides to add a new power supply  3 , identical to power supply  1 . Algorithm 1 is re-executed, and this leads to the same PEC and PVC than before (no new equation, no new limit), but p will be updated to (3, 3, 2, 3). It will also calculate PEC 1 =           PEC   3     =     (         1       1       1       1           1       0       0       0           0       1       0       0           0       0       1       0           0       0       0       1           1       1       0       0         )       ,                                    PVC   1     =       PVC   3     =     (         590           444           280           144           84           446         )         ,                           
     and p 1 =p 3 =(2, 2, 1, 2) for the case where power supply  1  or power supply  3  fails,            PEC   2     =     (         1       1       1       1           1       0       0       0           0       1       0       0           0       0       1       0           0       0       0       1         )       ,                                    PVC   2     =     (         590           444           306           144           84         )       ,                           
     and p 2 =(2, 2, 2, 2) for the case where power supply  2  fails. 
     Next, executing algorithm 2, we calculate        PC   =     (         70           56           65           58         )                            
     for the total power consumed plus the power required by the added device still waiting for power. 
     Since PEC.          PC   =       (         249           70           56           65           58           126         )     ≤   PVC       ,                          
     this device is now powered up. However, since in algorithm 3, the case  2  (where power supply  2  fails) does not pass the check, the system cannot be in power redundancy mode. 
     2. Case 2 
     It is assumed that the new power consumption device requires        P   =       (         274           270           0           0         )     .                            
     The new total P will be          (         474           420           80           120         )     ,                          
     and since p=(2, 2, 1,2),        PC   =       (         237           210           80           60         )     .                            
     Then PEC.          PC   =     (         587           237           210           80           60           447         )       ,                          
     which will not be          ≤   PVC     =       (         590           444           280           144           84           446         )     .                            
     If algorithm 4 is applied,          PVdiff   =     (         3           207           70           64           24             -   1           )       ,                          
     and then VSreq=(1, 1, 0, 0), since the only line in PEC where the result is negative is the last one. The new p′ is then (3, 3, 1, 2), and          PC   ′     =       (         158           140           80           60         )     .                            
     Therefore, PEC.            PC   ′     =       (         438           158           140           80           60           298         )     ≤   PVC       ,                          
     so the new power supply to add should have        PEreq   =     (         1       0       0       0           0       1       0       0         )                            
     and        PVreq   =     (         158           140         )                            
     as minimum characteristics (the lines with all 0&#39;s have been removed from PEC since they are of no use).