Embodiments herein generally relate to using power saving sleep modes in devices and more particularly to methods and system for optimizing the use of such power saving modes.
The reduction of energy consumption is becoming a major issue in many areas. In addition to high quality solutions, customers are expecting “greener” products. This is particularly true for Managed Print Services contracts where the goal is to minimize the energy consumption of fleets of printers, but also for other types of devices such as air conditioning systems for facilities or ticketing devices for public transportation.
In view of this, manufacturers of devices, such as printing devices, are making greater use of power-saving modes to allow their devices to consume less power. Power savings modes are reduced-power modes that use less power than ready modes; however, in power saving mode, most device functions are not available. When entering power-saving modes, most devices disconnect the power being supplied to all but a few devices needed to recover from the power saving mode.
For example, an “active mode” (sometimes referred to as an operational mode) can be defined as the mode in which the device, while connected to a power source, is producing useful work. To clarify, the low end or minimum power draw of active mode is idle. The high end of active mode would be the maximum power draw capable by the device. The “idle state” (sometimes referred to as a ready mode, idle mode, standby mode, etc.) is the state in which the operating system is operational and warmed-up, the machine is not asleep, and activity is limited to those basic functions that the device starts by default. Idle state is considered a subset of the active mode. A “sleep mode” (sometimes referred to as a reduced-power mode) is a lower power state that a device enters automatically after a period of inactivity or by manual selection. A device with sleep capability can quickly “wake” in response to inputs. Devices may have more than one sleep mode. The lowest power consumption mode which cannot be switched off (influenced) by the user and that may persist for an indefinite time when the device is connected to the main electricity supply and used in accordance with the manufacturer's instructions is an “off mode.”
Thus, power saving sleep modes only supply power to a few device elements to save power, yet allow the device to return to full operational mode (active mode) more quickly when compared to the time needed to reach full operational mode from a full off condition (where substantially all systems are disconnected from the power supply). The active power mode is one that provides the fastest operation, provides availability of all features, and consumes the most power. Different power saving modes consume different amounts of power, but all power saving modes consume less than the active mode, which consumes the most power. Such power saving sleep modes are begun when the device has not received any input from users or other devices within a specific time period (referred to commonly as a “time-out” period). Such sleep modes generally start a routine that saves certain information in the storage device, selects which items will be disconnected from the power supply, resets various flags, etc., and then disconnects the power supply from selected elements of the device that will not be powered during the sleep mode.
An exemplary method herein inputs an energy consumption profile for each of a plurality of different sleep modes available for a device, and inputs a probability distribution of interjob times for the device. This method then automatically computes the optimal time-out period for each sleep mode based on the energy consumption profile of each sleep mode and the probability distribution of interjob times. Further, such a method automatically monitors the usage of the device to determine the current interjob time, and automatically switches between sleep modes to relatively lower power sleep modes as the current interjob time becomes larger.
Another exemplary method inputs an energy consumption profile for each of the sleep modes, which is based on the power savings produced by the sleep mode and a transition power cost required to return from the sleep mode to the ready mode. Further, the method inputs the probability distribution of interjob times, which is based on historical training data and/or empirical data. An “interjob” time is the time period of inactivity between the end of a job and the beginning of a new job, triggered by a new request for activity made to the device. Strictly speaking, the time period between requests is the inter-arrival time: it is the period between the beginning of two consecutive non-overlapping jobs. If job time is considered negligible, then inter-arrival time is a good approximation of the inter-job time (period of inactivity between the end of a job and the beginning of the next).
The method then can automatically compute the optimal time-out period for each sleep mode based on the energy consumption profile of the sleep mode and a probability distribution of interjob times. The probability distribution of interjob times can be different for different times of the day, days of the week, days of the month, days of the year, etc. Therefore, the optimal time-out period for each of the sleep modes can also be different for different times of the day, days of the week, days of the month, days of the year, etc.
Once the optimal time-out period for each sleep mode has been computed, the method automatically monitors the current usage of the device to determine the current interjob time, and the method progressively automatically switches between the sleep modes (each time switching to a relatively lower power mode) as the current interjob time becomes larger. Therefore, the method first switches from the ready mode to one of the sleep modes when the current interjob time reaches the shortest optimal time-out period. Then, the method switches to a lower power sleep mode when the next shortest optimal period expires, and the method continues to switch down through successive sleep modes that have longer and longer optimal time-out periods until the method finally switches to the lowest power sleep mode when enough time-out time has expired.
These and other features are described in, or are apparent from, the following detailed description.
Various exemplary embodiments of the systems and methods are described in detail below, with reference to the attached drawing figures, in which:
As mentioned above, the reduction of energy consumption is becoming a major issue in many areas. In order to respond to this expectation, the methods and systems herein capitalize on the fact that devices have different levels of energy consumption which can be adjusted according to the expected usage: for example, a printer consumes less energy in sleep mode while it is waiting for a new document to print, but on the other hand, if this mode is used, additional energy will be needed to return to print mode (i.e. to “wake up” the device). In order to optimize the overall energy consumption, the methods and systems herein optimally adjust the time-out delay after which the device must be switched to a lower consumption mode. While a brute force search to reach this optimum is possible in the case of one sleep mode, it becomes prohibitively expensive in the case of K modes: the complexity is NK where N is the number of time-outs to test.
The methods and systems herein reduce the complexity of the optimal multi-time-out calculation, from NK to KN, where N is the number of different time-out accepted by the device and K the number of modes. The methods and systems herein work both when the timeouts are unconstrained and when they are constrained to a finite set of available values. Currently, for the most complex print devices, K does not exceed 2, but some accept up to 10 or more different time-outs. Furthermore, the methods and systems herein deliver optimal time-outs with an exemplary precision to the minute up to one hour, so N can be 60. With the methods and systems herein it is possible to have a much finer precision (even to the second) for every time-out, without impacting dramatically the calculation time: N becomes 3600, where, even in the simple case K=2, brute force search is computationally costly.
A brute force search method implements an oracle of the expected cost function and tries it on all the possible K-combinations of time-outs, hence with complexity NK. Even taking into account the constraint that the time-outs must be in increasing order does not significantly reduce the complexity (it is only divided by K but remains polynomial in N of the same degree). Even in an offline setting, where the computation of the optimal cost for one configuration is infrequent, it is useful to reduce its complexity, because it may need to be repeated for many configurations, corresponding to different device profiles, different conditions on the demand (e.g. per time of day or other observable conditions), etc. Furthermore, in the future, it may be that the devices are capable of running the computation of their optimal time-outs online, in which case the issue of complexity becomes crucial. The methods and systems herein express the expected cost function as a sum of independent terms, one for the time-out of each mode, coupled only by the constraint that these time-outs are in increasing order.
The methods and systems herein optimize use of energy saving modes of a device by controlling the device's time-out periods (the period of time after the end of a print job during which the device remains in “ready” mode). After the time-out, the device switches to a low energy consumption mode, usually called the “sleep” mode. The methods and systems herein generalize this result to the case of a device with multiple low energy consumption modes.
The controller is given a probability distribution P of inter-job times as well as a description of the energy consumption profile of each device mode. The inter-job time distribution P can be generic or conditioned to a specific observable state of the world in which the job demand occurs (time of day, of week, of year etc., but also other specific conditions could be used).
Making P conditional results in more accurate optimizations, since time-out and mode control can also be conditioned on the state. However, making P conditional is useful only if control can effectively be made dependent on the state. This may require extra communication between the controller and the device, to inform the latter of changes of state, which may simply be impossible, or may generate network traffic at a cost. Furthermore P is learnt from data, so the more restrictive the conditioning on the state, the less data will be available that match these conditions, hence the less accurate the estimation.
Strictly speaking, an inter-job time is the time between the end of a print phase and the start of the next print phase on the device. If this data is not directly available, it can be approximated by the time between job requests (inter-arrival time), which may be more readily available from print servers rather than the device: this amounts to ignoring the job printing time and potential queuing effects.
Some methods assume just two modes (other than the print mode): ready and sleep. For example, see U.S. Pat. No. 8,230,248, the disclosure of which is incorporated herein by reference. Instead, the methods and systems herein consider here a set of K+1 modes with a specific power level āk, assumed constant, for each mode k=1 . . . K+1. The methods and systems herein assume that the modes are sorted by decreasing power, i.e. (āk)k=1 . . . K+1 is strictly decreasing. If there were no mode transition costs, the optimal strategy would be to jump directly to the lowest consumption mode K+1. Some methods and systems herein assume that there is a fixed cost associated with each mode transition, which includes energy (e.g. to warm-up some components), user impact (waiting time) etc. The methods and systems herein further assume that the cost of mode transitions in the same direction is additive, i.e. the cost of the transition k1:k2 is the sum of the costs of transitions k1:h and h:k2, whenever k1,h,k2 are sorted (by increasing or decreasing values). In these conditions, it is easy to show that an optimal control is entirely given by a loosely increasing sequence (τk)k=1 . . . K of time-outs with the following meaning:
Immediately after a print (at time 0), set mode 1. For k=1 . . . K
Remain in mode k until time k then transition to mode k+1 Remain in mode K+1 forever after.
This loop is asynchronously interrupted and reset by the arrival of a print job. Note that setting τk=τk−1 (or 0 if k=1) amounts to skipping state k. The mode transition costs are entirely captured by a vector (bk)k=1 . . . K where each bk is the cumulated cost of transitions k:k+1 and k+1:k for k=1 . . . K. This is a simple way to account for the fact that the control must always return to mode 1 when a new job arrives, so each transition k:k+1 is always eventually compensated at the end by a transition k+1:k.
The solution is presented as follows:
Given P, (āk)k=1 . . . K+1 and (bk)k=1 . . . K, let c(x;τ) be the cost rate at time x under control τ=(τk)k=1 . . . K. The optimal control is obtained by minimizing over τ
The underlined term is in fact the complementary cumulative distribution function ψ′ associated to P, thus the objective function is ∫uψ′(u)c(u;τ)du. Function ψ′ and its primitive ψ are defined by:
ψ′(t)=def∫xI[t<x]dP(x)
ψ(t)=def∫0tψ′(u)du=∫xmin(x, t)dP(x)
Now, by definition, the cost rate function c is given by
where δ is the Dirac density, τ is implicitly extended with τ0=0 and τK+1=∞ and bK+1=0. Hence
Finally, the methods and systems herein get
The objective function in (1) looks like a decoupled sum of terms, so it is tempting to optimize separately each term in the sum. However, coupling is implicit through the constraint that τ must be non-decreasing. Still, the optimization can be performed incrementally as follows. The methods and systems herein use the following notations, for any k=0 . . . K and any function f of time:
Now, observe that the optimal value of the objective (1) is given by g*K(∞). The methods and systems herein first show that:
g*0=0
g*
k=↓(g*k−1+gk) (2)
Indeed, using the decomposition of the objective (1) into a sum of independent terms, the methods and systems herein have, for any k=1 . . . K and t≧0:g*k(t)=min0≦τ
Thus g*k can be computed by upward propagation (2) for k=1 . . . K, at the end of which the optimal value of the objective (1) can be computed as g*K(∞). Conversely, the argument τ* at which this optimum is reached can be obtained by downward propagation for k=K . . . 1:
τ*K+1=∞
τ*k=argmint≦τ*di k+1(g*k−1+gk)(t)=min argmint≦τ*
In one implementation (which is a generic solution) the methods and systems herein perform the following. Let be the space of functions (on R+) spanned by 1,ψ,ψ′. Let * be the space of functions that are piecewise , i.e. of the form Σi∈I1D
Space is stable by addition, and it is easy to show that so is space *. Indeed, the methods and systems herein have
This provides an implementation of the addition in * based on that in (the latter being straightforward).
Under the following assumption,
where (
{dot over (f)}
0=def0
By assumption (A), each
Hence, under Assumption (A), space * is stable by both addition and operator ↓. Therefore, by (2), all functions g*k are in *, and their representation can be computed.
This assumption (A) is rather mild and holds in most cases. Computationally, it is equivalent to having an implementation of procedure
Procedure
Procedure
where η is the hazard function associated with distribution P. Hence, procedure
Using primitives
Note that at line 10 in procedure
In some very specific cases, Equation (2) can be solved analytically.
If P is an exponential, i.e. dP(x)=exp(−λx)dx, the methods and systems herein have
In that case, g*k is an exponential of the form pkexp(−λt)+qk. Equation (2) gives:
The optimal solution can be reconstructed by
k*=min{k|∀h≧kph>0} τ*k=0 if k<k* else ∞
In other words, after a print phase, the device immediately jumps to mode k* and stays there forever (until the next print phase).
If P is discrete, i.e.
the methods and systems herein have
A remarkable aspect is that gk and g*k need only be computed at the points of the support set of the distribution, not in between. Hence gk and g*k can be identified to the n-dimensional vectors of their values on the support set of the distribution. Equation (2) becomes straight forward vector operations.
If P is a histogram distribution, i.e.
the solution is exactly similar to the previous case (discrete distributions): gk and g*k need only be computed at the change points (Ti)i=1n of the distribution and Equation (2) operates on n-dimension vectors. The complexity of the solution is of order nK, i.e. the dimension of the vectors times the number of iterations in Equation (2). This is to be compared to a brute force method for solving Equation (1) by searching all the space, of dimension nK (taking into account the constraint τ1≦ . . . ≦τK yields the same complexity in n, only divided by some function of the number of modes K).
In one example, the methods and systems herein assume given three sets
Each element in
Each element in
Each element in
The protocol computes a performance measure (the “regret” r at line 8) for each combination of
The optimal policy presented here performs consistently better than the other policies, when fitting histogram distributions. When fitting exponential distributions, the results are more variable, but the optimal policy remains consistently better. When the data is specifically simulated according to the class of distributions used for training, the superiority of the optimal policy becomes more acute.
Computing the optimal policy for Weibull distributions, as is possible in the methods and systems herein, does not have a specific simplified solution, so it has to rely on the generic solution described above, where procedures
Further, the time-out period that needs to expire before a sleep mode can be entered can be adjusted. A “time-out” period is an amount of time that the device performs no activity, after which the device is automatically changed from the ready mode (or from one of the sleep modes) to a relatively lower power sleep mode.
In item 100, this exemplary method inputs an energy consumption profile (that is specified by the manufacturer or previously computed by measurement) for each of the sleep modes based on the power savings produced by the sleep mode, and based on a transition power cost required to return from the sleep mode to the ready mode. Thus, as shown above, this energy consumption profile is the pair of vectors a1:K (power consumption costs) and b1:K (power transition costs, which can be user adjustable for user-specific optimization). Such vectors are of same length, and represent the energy profile of a device at its different modes.
Further, in item 102, this method inputs the probability distribution of interjob times that were previously computed based on historical training data and/or empirical data. As mentioned above each element in
The method then can automatically compute, in item 104, the optimal time-out period for each sleep mode based on the energy consumption profile of the sleep mode (100) and the probability distribution of interjob time (102). As shown above, each element in
There can be different probability distributions of interjob times for different times of the day, days of the week, days of the month, days of the year, etc. Therefore, in item 104, there can be multiple optimal time-out periods for each of the sleep modes, one optimal time-out period for each time of the day, day of the week, day of the month, day of the year, etc.
Once the optimal time-out period for each sleep mode has been computed, the method automatically monitors the current usage of the device in item 106 to determine the current interjob time. In other words, item 106 keeps a running time amount since the last request was made (or the last activity in the most recent operating mode of the device) to keep a running current interjob time.
Then, in items 108-110, this exemplary method progressively switches between the sleep modes (each time switching to a relatively lower power mode) as the current interjob time becomes larger (the current interjob time continues to run and get larger, until a request is made of the device) until finally all time-outs expire and the device is placed in the lowest-power sleep mode.
Therefore, in item 108, the method first automatically switches from the full power (ready or active) mode to one of the sleep modes when the current interjob time reaches the shortest optimal time-out period. More specifically, in item 108, the device is automatically switched from full power to the sleep mode associated with the shortest optimal time-out period when the shortest optimal time-out period expires.
Then, in item 110, the method automatically switches to a lower power sleep mode when the next shortest optimal period expires. More specifically, in item 110, the device is automatically switched from the previous sleep mode to a different sleep mode associated with the next shortest optimal time-out period when the next shortest optimal time-out period expires. This process continues as the running current interjob time increases to progressively automatically switch to successively lower-power sleep modes.
Item 110 does not need to switch to all sleep modes and can skip some sleep modes if, for example, some sleep modes have the same (or similarly close) optimal time-out periods. One sleep mode can be set to have the same time-out as the next highest power sleep mode if such a sleep mode does not have an optimal time-out period, to cause such a sleep mode to always be skipped. Also, if desired, a switch will only be made between sleep modes if the different sleep modes are more than a previously set percentage (e.g., 5%, 10%, 25%, etc.) different from one another. In other embodiments, there can be a limit (3, 5, 10, etc.) as to how many switches can be performed, and after that limit is reached, the device immediately goes to the lowest power sleep mode.
As shown in
The input/output device 226 is used for communications to and from the computerized device 200. The processor 224 controls the various actions of the computerized device. A non-transitory, tangible computer storage medium device 220 (which can be optical, magnetic, capacitor based, etc.) is readable by the processor 224 and stores instructions that the processor 224 executes to allow the computerized device to perform its various functions, such as those described herein. Thus, as shown in
Therefore,
The processor 224 receives, through the interface 226, a probability distribution of interjob times for the device 200, 204. An interjob time is the time period between requests for activity made to the device 200, 204. Further, the processor 224 computes an optimal time-out period for each sleep mode based on the energy consumption profile of each the sleep mode and the probability distribution of interjob times. Each device 200, 204 automatically monitors the usage of the device 200, 204 to determine a current interjob time. Further, the processor 224 controls the device 200, 204 to automatically switch the device 200, 204 between the sleep modes to relatively lower power sleep modes as the current interjob time becomes larger based the optimal time-out period for each the sleep mode. Thus, the processor 224 controls the device 200, 204 to automatically switch from the ready mode to one of the sleep modes when the current interjob time reaches a shortest optimal time-out period produced by the computing of the optimal time-out period for each the sleep mode.
Many computerized devices are discussed above. Computerized devices that include chip-based central processing units (CPU's), input/output devices (including graphic user interfaces (GUI), memories, comparators, processors, etc. are well-known and readily available devices produced by manufacturers such as Dell Computers, Round Rock Tex., USA and Apple Computer Co., Cupertino Calif., USA. Such computerized devices commonly include input/output devices, power supplies, processors, electronic storage memories, wiring, etc., the details of which are omitted herefrom to allow the reader to focus on the salient aspects of the embodiments described herein. Similarly, scanners and other similar peripheral equipment are available from Xerox Corporation, Norwalk, Conn., USA and the details of such devices are not discussed herein for purposes of brevity and reader focus.
The terms printer or printing device as used herein encompasses any apparatus, such as a digital copier, bookmaking machine, facsimile machine, multi-function machine, etc., which performs a print outputting function for any purpose. The details of printers, printing engines, etc., are well-known by those ordinarily skilled in the art and are discussed in, for example, U.S. Pat. Nos. 6,032,004, and 7,874,664 the complete disclosures of which are fully incorporated herein by reference. The embodiments herein can encompass embodiments that print in color, monochrome, or handle color or monochrome image data. All foregoing embodiments are specifically applicable to electrostatographic and/or xerographic machines and/or processes. Further, the terms automated or automatically mean that once a process is started (by a machine or a user) one or more machines perform the process without further input from any user.
It will be appreciated that the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims. Unless specifically defined in a specific claim itself, steps or components of the embodiments herein cannot be implied or imported from any above example as limitations to any particular order, number, position, size, shape, angle, color, or material.