Resource use transition hings

By introducing assertion, reception and prompt circuits into the control device of the data processing system, sending a preferred rejection prompt to the unresponsive user equipment, solving the problem of inefficient coordination of resource usage changes of multiple devices, and achieving efficiency improvement in the resource usage change process.

CN120225992APending Publication Date: 2025-06-27ARM LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380080002.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-25
Filing Date
2023-10-25
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

In a data processing system, the controller needs to coordinate resource usage changes of multiple usage devices, resulting in inefficient request and cancel request processes, especially when resource usage changes involve significant overhead.

Method used

By providing a control device, including an assertion circuit, a receiving circuit and a prompt circuit, a prompt is sent to an unresponsive usage device that indicates that rejecting the initial request is more preferred than accepting, thereby avoiding unnecessary resource usage changes.

Benefits of technology

This solution reduces overhead during resource usage changes, saves energy and time, avoids unnecessary resource expenditures, and improves the overall efficiency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120225992A_ABST
    Figure CN120225992A_ABST
Patent Text Reader

Abstract

A control apparatus is provided in which an assertion circuit takes effect a request to change its use of a resource from an initial use for a plurality of use devices. Receiving circuitry receives a response to the request from the using device, and cue circuitry validates cues issued to those of the plurality of using devices that have not received the response, the cues indicating that rejection to respond to the request is more preferred than acceptance. A use device is also provided in which receiving circuitry receives a request from a control apparatus to change use of a resource by the use device from an initial use, and receives a prompt from the control apparatus that a rejection in response to the request is selectable and preferred. A determination circuit makes a determination of whether the request is to be satisfied based on at least one of the request and the cue, and a response circuit provides a response to the request based on the determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present technology relates to resource control in, for example, a data processing device.

[0002] Resource usage among consuming devices in (for example) a data processing device may be coordinated by a central controller.

[0003] In a system such as a data processing system, a controller may be responsible for coordinating resource usage among other consuming devices in the system. Such a controller may issue requests to change their resource usage for a group of consuming devices (e.g., reducing their power consumption). However, these processes may have significant overhead. If new information appears at the controller, it is generally required that all consuming devices complete the change of their resource usage and then "cancel" the change. This back-and-forth can be particularly inefficient.

[0004] From a first example configuration, a control device is provided that includes: an assertion circuit configured to effect a request to change the usage of resources from an initial usage for a plurality of consuming devices; a receiving circuit configured to receive responses to the request from the plurality of consuming devices; and a prompting circuit configured to effect a prompt issued to those of the plurality of consuming devices that have not received the response, the prompt indicating that rejection of the request is more preferable than acceptance.

[0005] From a second example configuration, a method is provided that includes: effecting a request to change the usage of resources from an initial usage for a plurality of consuming devices; and effecting a prompt issued to those of the plurality of consuming devices that have not received a response to the request, the prompt indicating that rejection of the request is more preferable than acceptance.

[0006] From a third example configuration, a consuming device is provided that includes: a receiving circuit configured to receive a request to change the usage of resources of the consuming device from an initial usage from a control device, and to receive a prompt from the control device that rejection of the request is optional and preferable; a determining circuit configured to make a determination of whether to satisfy the request based on at least one of: the request and the prompt; and a responding circuit configured to provide a response to the request based on the determination.

[0007] From a fourth example configuration, a method is provided that includes: receiving from a control device a request to change the usage of resources of the consuming device from an initial usage; receiving from the control device a prompt that rejection of the request is optional and preferable; making a determination of whether to satisfy the request based on at least one of: the request and the prompt; and providing a response to the request based on the determination.

[0008] Reference will be made to embodiments of the present invention as illustrated in the accompanying drawings, and the technology will be further described by way of example only, wherein:

[0009] Figure 1 A system including a control device and a plurality of usage devices is illustrated;

[0010] Figure 2 An example of a process without a prompt provided is illustrated;

[0011] Figure 3 The same process with a positive usage prompt is illustrated;

[0012] Figure 4 An illustration of how to use the Q channel to implement the process;

[0013] Figure 5 An illustration of how to use the P channel to implement the process;

[0014] Figure 6 A flowchart showing an example of a decision-making process for determining whether a prompt should be followed is illustrated; and

[0015] Figure 7 A pair of flowcharts showing processes performed by the control device and the usage devices are illustrated.

[0016] Before discussing the embodiments with reference to the accompanying drawings, the following description of the embodiments and associated advantages is provided.

[0017] According to one example configuration, a control device is provided, the control device including: an assertion circuit configured to effect a request for a plurality of usage devices to change their use of a resource from an initial use; a receiving circuit configured to receive, from the plurality of usage devices, a response to the request; and a prompting circuit configured to effect a prompt to those of the plurality of usage devices that have not received the response, the prompt indicating that rejection of the request is more preferable than acceptance.

[0018] The control device may be responsible for regulating the resource usage of the using device. In these cases, the initial request may have to be changed. For example, if new information appears at the controller, the initial request should not be complied with. In such a case, the using device may comply with the request and then revoke the request, so that the using device resumes its previous resource usage. This can be inefficient, especially when the process of changing resource usage involves a large amount of overhead. In this example, this is handled by transmitting a hint to the using device to those using devices that have not yet replied that they can (and preferably should) reject the initial request. This can save those devices from completing the preparations to satisfy the initial request. This hint is not a requirement and can be rejected (in other words, the initial request is still complied with). This can happen in a variety of situations - for example, if the using device has reached a limit point, it may then be infeasible for the device to reject the initial request. Those devices that reject the request to change their resource usage can then benefit from not having to respond to another request to restore their usage to the initial usage. Thus, energy / time can be saved. By collating information at the control device, it may be possible to avoid routing the results of requests at each device to each other device. This saves area and routing cost / complexity.

[0019] In some examples, the hint is effected in response to a rejection from one of the multiple using devices. Specifically, if one device rejects a group request, this may not be immediately known to the other using devices that may have started to comply with the request. This can lead to an expenditure of other resources, for example, because preparations have been made to change the resource usage. Once the transition is complete, the rejection may cause the entire group of devices to be required to revert to their previous (initial) usage, thus requiring another transition and potentially another expenditure of resources.

[0020] In some examples, the resource is energy. Thus, the request can be a request for the using device (the device using the resource) to change its energy usage. This can be by a fixed amount, a relative amount (e.g., percentage), or to a specific level.

[0021] In some examples, the request is for multiple using devices to change the energy level at which the multiple using devices operate. Multiple different and separate energy levels can be defined, rather than a free choice of energy (up to a specific limit). Thus, the request can target one of these specific energy levels, or can require an increase or decrease in the current level. Different energy levels can, for example, define the way a particular system is used. For example, a cache may be powered down at a specific energy level (when transitioning to those energy levels, data needs to be unloaded from the cache).

[0022] In some examples, the request is for multiple using devices to reduce their resource usage. In other examples, the request is for the using device to increase its resource usage.

[0023] In some examples, the assertion circuit is configured to: in response to receiving a response from each of the plurality of usage devices when the response from one of the usage devices in the usage devices is a rejection, effectuate another request to return the second usage device among the plurality of usage devices to an initial usage. In these examples, if one device transmits a rejection, the device that accepts the resource usage change is restored to its initial resource usage (e.g., restored to the point before the request to change the resource usage was made).

[0024] In some examples, the request is effectuated using a P-channel or a Q-channel. The Q-channel is mainly used in signaling where binary signaling semantics (e.g., start / stop) are appropriate. In contrast, the P-channel can be used for more complex scenarios with multiple transitions. Such a mechanism can be defined as part of a low-power interface, such as, for example, the AMBA low-power interface specification developed by in Cambridge, UK. More details can be found in the low-power interface specification https: / / developer.arm.com / documentation / ihi0068 / latest therein.

[0025] According to another example, a usage device is provided, the usage device including: a receiving circuit configured to receive from a control device a request to change the usage of a resource by the usage device from an initial usage, and a hint that it is optional and preferable that the control device receive a rejection in response to the request; a determination circuit configured to make a determination of whether to satisfy the request based on at least one of: the request and the hint; and a response circuit configured to provide a response to the request based on the determination.

[0026] In response to receiving a request to change the usage of a resource by the usage device from an initial usage, the device makes a decision as to whether it should follow the request. The request is not mandatory, such that the device can reject it (e.g., in the case where the request is to reduce the usage of a resource that is actively needed). At some point, the control device signals a hint to the usage device to indicate that its previous request can be rejected. The hint is also not mandatory, but rather recommended / preferable. The determination circuit is provided to determine (before and after receiving the hint) whether the initial request should be complied with. Based on the determination, a response is sent to the control device.

[0027] In some examples, the resource is energy. Thus, the request can be a request for the usage device to change its energy usage. This can be by a fixed amount, a relative amount (e.g., percentage), or to a specific level.

[0028] In some examples, the request is to use the device to change the energy level of its operation. Multiple different and separate energy levels can be defined, rather than enabling free selection of energy (up to a certain limit). Thus, the request can target a specific one of these specific energy levels, or can call for an increase or decrease in the current level. Different energy levels can, for example, define the way a particular system is used. For example, a cache may be powered down at a particular energy level (data needs to be unloaded from the cache when a transition to those energy levels occurs).

[0029] In some examples, the request is to use the device to reduce its use of resources. In other examples, the request is to use the device to increase its use of resources.

[0030] In some examples, the request is effected using a P-channel or a Q-channel. The Q-channel is used in signaling where binary signaling semantics (e.g., start / stop) are appropriate. In contrast, the P-channel can be used for more complex scenarios with multiple transitions. Such mechanisms can be defined as part of a low-power interface, such as, for example, the AMBA low-power interface specification developed by in Cambridge, UK.

[0031] More details can be found in the low-power interface specification https: / / developer.arm.com / documentation / ihi0068 / latest therein.

[0032] In some examples, the determination circuit is configured to make a determination based on a ratio of the use of resources by the using device, the ratio having changed between the request received by the receiving circuit and the hint. These examples can actually consider how complete the process of changing resource use is. For example, in some of these embodiments, if the change in energy use is almost complete, the process may be allowed to end. Although this may result in wasted extra work, this approach may be appropriate where it is costly to revoke the change process itself mid-way.

[0033] In some examples, the determination circuit is configured to make a determination based on an estimated cost difference between: the cost of complying with the request received by the receiving circuit between the request and the hint; and the cost of reverting to the initial usage after the request has been complied with. There is a certain amount of overhead incurred when meeting the requirements of the initial request. For example, the initial request may be for a reduction in power level, which will cause the cache to be disabled - disabling the cache may require unloading data from the cache, which will result in a short-term increase in power usage. Thus, in these examples, whether to follow the hint is simply a comparison between the cost of continuing to comply with the request (e.g., energy expenditure or the cost of another resource) and the cost of having to revert to the initial resource usage (when the request is complied with and the controller withdraws the initial request). In some examples, the comparison may also take into account cost savings achieved between completing the initial request and reverting to the initial request. Of course, in these examples, if the device is already designed to reject the request, issuing the request may be meaningless.

[0034] Specific embodiments will now be described with reference to the accompanying drawings.

[0035] Figure 1 System 100 is illustrated that includes a control device 110 and a plurality of usage devices 120a, 120b, 120c. Here, the control device is responsible for managing the usage of a specific resource used by the plurality of usage devices 120a, 120b, 120c. Subsequent drawings will consider examples where the resource is energy (as defined by a plurality of energy levels) but other resources such as a clock or even a bridge between different domains are open and closed.

[0036] Generally, the assertion circuit 160 signals a request to change resource usage (e.g., energy) to the usage devices 120a, 120b, 120c. The request is received by receiving circuits 130a, 130b, 130c at each of the usage devices 120a, 120b, 120c. In response to receiving the request, the determination circuits 140a, 140b, 140c at each usage device 120a, 120b, 120c may decide whether the request should be complied with. Once a determination is made, the response circuits 150a, 150b, 150c provide a response to the control device 110. Additionally, those usage devices among 120b, 120c that agree to the request will begin the process of changing their resource usage. As a result of certain actions that must be performed, this transition process may be time-consuming and may itself be resource-intensive. For example, a transition to lower energy usage may cause the cache to be deactivated. Deactivating the cache generally will require backing up dirty data (e.g., writing to another cache and / or main memory). This process may take time and may result in an increase in energy usage due to the need to perform multiple memory operations in a short period of time.

[0037] During all of these processes, the decision-making process that may occur at the control device that initiated the initial request will determine that the initial request should not actually be complied with. This may occur because the control device has received new information indicating that the initial request is not desired (or unnecessary) to be executed. For example, the initial request may be to reduce the energy level in order to reduce the overall energy consumption of the system. If, after the request is issued, a power-on request becomes active (e.g., from an interruption), then it may not be desirable to execute the initial request.

[0038] The problem that occurs when this situation arises is that multiple requests may ultimately be issued by the control device 110 - one request to initiate the first change, and another request to initiate the second change caused by the new information becoming available. Therefore, this can be time- and / or resource-intensive and may result in a waste of resources. For example, if the request is to power down a usage device in the form of a processor core, this may cause dirty data to be written back to the memory. However, if the control device 110 subsequently determines that powering down the core is not necessary, the transfer of the data has occurred unnecessarily. This is clearly not desirable. One situation in which the new information may arise is if, in response to the request, one of the usage devices 120a in the usage devices 120a, 120b, 120c rejects the request. In this case, the rejection may prevent the control device's plan from being formulated, thereby eliminating the need for any of the usage devices 120a, 120b, 120c to participate. Therefore, the initial request can be restored.

[0039] The present technology introduces a mechanism for the control device 110 to transmit a subsequent prompt signal to each of the usage devices 120a, 120b, 120c that have not yet responded to the request, i.e., it is preferred in response to the rejection of the previous request. This does not mean that the rejection is mandatory - only that it is more preferred than acceptance.

[0040] It is determined by the determination circuits 140a, 140b, 140c in each of the receiving usage devices 120a, 120b, 120c whether to comply with the prompt. This may depend on the nature of the initial request and the extent to which any processing has been performed for that request. For example, one of the usage devices 120c may have passed the "limit point" of complying with the initial request such that it cannot be revoked until the process is complete. In this case, acceptance may still occur. In other cases, the issue may depend on how much of the transition has been completed, or whether acceptance (which may be revoked later) or rejection (where part of the process has been performed) will be more efficient overall. This can be determined based on knowledge of the resources consumed by the various processes at different stages.

[0041] Figure 2An example of a process without a hint provided is illustrated. Here, the controller 110 sends a request to each of the consuming devices 120a, 120b, 120c. The request is immediately negated by the consuming device 0 120a. The request is later (due to increased time taken for communication) accepted by the consuming device 2 120c, and even later (due to a delay in the transition process of performing cache flushing) accepted by the consuming device 1 120b. Due to the negation, a return to the previous operating state (for state consistency) then occurs. In this case, the return to the previous state is accepted by the consuming device 2 120c and the consuming device 1 120b. A delay is again experienced at the consuming device 1 120b to establish coherence. The negated state is maintained at the controller until all of the consuming devices 120a, 120b, 120c have returned to their initial states.

[0042] Figure 3 An example of the same process with a hint for positive consumption is illustrated. Again, the same request is made from the controller 110 to the three consuming devices 120a, 120b, 120c. However, in response to the rejection from the consuming device 0 120a, a hint is sent to the remaining consuming devices 120b, 120c. The hint is a suggestion that rejection would be preferable (but not necessarily required). In this example, the hint is received by the consuming device 2 120c after the limit point. That is, at the consuming device 2 120c, most of the transition process for responding to the initial request has been performed such that the consuming device can only accept the initial request (i.e., reject the hint). In contrast, at the consuming device 1 120b, the limit point has not been reached. Here, a determination is made that the request can be rejected. Accordingly, the cache flushing process terminates (or does not start), and a rejection is sent. Since the controller 110 receives a negation, a return to the previous state then occurs, but this time only for the consuming device 2 120c.

[0043] Therefore, since the cache flushing process is not fully executed by the consuming device 1 120b, resources are saved. Additionally, no loss of capacity is experienced while waiting for the return to the previous state at the consuming device 1 120b. Also, no resources are consumed when undoing the change at the consuming device 1 120b. The return to the previous state is still performed for the consuming device 120c, but this would occur anyway even without the hint being sent.

[0044] Figure 4 An example of how to use the Q channel to implement this process is illustrated. The Q channel handshake can be used for components or resources with on / off semantics. This is a robust signaling process that places specific conditions on how signals are responded to and the order in which signals are made valid / invalid. This helps to avoid race conditions and uncertainties in the signal order, especially in cases where multiple clock domains may be used. Here, multiple signals are used:

[0045] ●QREQn: A request from controller 110 to one or more usage devices 120a, 120b,

[0046] 120c to stop (or start) using a resource (e.g., power off and stop using electricity). This request is issued when the signal is low. When the signal is high, this request is not issued.

[0047] ●QACCEPTn: A response from usage device 120a regarding whether a request received from controller 110

[0048] is accepted. When the signal is low, the request is accepted. When the signal is high, the request has not been accepted (but may not have been rejected either).

[0049] ●QDENY: A response from usage device 120a regarding whether a request received from controller 110

[0050] is rejected. When the signal is high, the request is rejected. When the signal is low, the request has not been rejected (but may not have been accepted either).

[0051] ●QDENYHINT: A signal indicating a hint (but not mandatory) as to whether it is preferable to reject a previously issued request.

[0052] The restrictions on being valid / invalid can be summarized as follows:

[0053] ●QREQn can only transition from low to high when at least the following conditions are met:

[0054] ○ QDENYHINT is low, and

[0055] ○ ((QACCEPTn is low and QDENY is high) or

[0056] (QACCEPTn is low and QDENY is low))

[0057] ●QREQn can only transition from high to low when at least the following conditions are met:

[0058] ○ QDENYHINT is low, and

[0059] ○ QACCEPTn is high, and

[0060] ○ QDENY is low

[0061] ●QACCEPTn can only transition from low to high when at least the following conditions are met:

[0062] ○ QREQn is high

[0063] ● QACCEPTn can only transition from high to low when at least the following conditions are met:

[0064] ○ QREQn is low, and

[0065] ○ QDENY is low

[0066] ● QDENY can only transition from low to high when at least the following conditions are met:

[0067] ○ QREQn is low, and

[0068] ○ QACCEPTn is high

[0069] ● QDENY can only transition from high to low when at least the following conditions are met:

[0070] ○ QREQn is high

[0071] ● QDENYHINT can only transition from low to high when at least the following conditions are met:

[0072] ○ QREQn is low, and

[0073] ○ QACCEPTn is high, and

[0074] ○ QDENY is low

[0075] ● QDENYHINT can only transition from high to low when at least the following conditions are met:

[0076] ○ QREQn is low, QDENY is high, and QACCEPTn is high

[0077] ○ QREQn is low, QDENY is low, and QACCEPTn is low

[0078] For example, once the QREQn signal is lowered to indicate a request to stop using power (e.g.), the request cannot be simply withdrawn by raising the signal again. Instead, the QREQn signal cannot be changed until a response is received from each of the consuming devices 120a, 120b, 120c (appropriately via QACCEPTn or QDENY).

[0079] In these examples, the QREQn signal is lowered to indicate a request to stop using a given resource for consuming devices 120a, 120b, 120c. In Figure 4 each of the two examples, the QDENYHINT signal is then made active (raised) to indicate that a denial would be preferred.

[0080] In the first example, the QDENY signal is then raised, indicating that the prompt has been complied with (i.e., the request is rejected) and the power-off is not performed. This causes the QDENYHINT signal to be invalid, which causes the QREQn signal to be raised, and ultimately causes the QDENY signal to be lowered - in other words, the signaling process ends.

[0081] In the second example, the QACCEPTn signal is lowered, indicating that the prompt has not been complied with (i.e., the request is accepted) and the power-off is performed. This causes the Q channel to enter a stopped state (all signals are low, simple isolation rules), and the handshake is complete and stable. When the controller wants to return to the running state, QREQn will go high. QREQn cannot go high again until QDENYHINT has gone low (to ensure the order of requests).

[0082] Figure 5 Illustrates how to use the P channel to implement this process. The P channel handshake can be used for components or resources with more complex semantics than just on / off. Therefore, it enables more fine-grained control. For example, the P channel can be used to express a specific level to which resource usage should change. Like the Q channel, the P channel signaling process is robust and is used to avoid race conditions. The P channel handshake is considered to be in progress when any of PREQ, PACCEPT, or PDENY is high and the next request cannot start again until they all return to the low state. The following signals are used:

[0083] ● PREQ: A request from the controller 110 to one or more consuming devices 120a, 120b, 120c to change the use of a resource (e.g., power off and stop using power).

[0084] When the signal is high, the request is issued. When the signal is low, the request is not issued.

[0085] ● PSTATE: The new state required as part of this request. In fact, PSTATE can consist of multiple binary signals (e.g., M signals can be used to express 2 M different states)

[0086] ● PACCEPT: A response from the consuming device 120a as to whether the request received from the controller 110 is

[0087] accepted. When the signal is high, the request is accepted. When the signal is low, the request has not been accepted (but may also not have been rejected).

[0088] ● PDENY: A response from the consuming device 120 as to whether the request received from the controller 110 is

[0089] Rejected response. When the signal is high, the request is rejected. When the signal is low, the request has not been rejected (but may not have been accepted either).

[0090] ● PDENYHINT: A signal indicating whether the rejection of a previously issued request is a preferred (but not mandatory) hint.

[0091]

[0092] The restrictions on enabled / disabled can be summarized as follows:

[0093] ● PREQ can only transition from low to high when at least the following conditions are met:

[0094] ○ PDENYHINT is low, and

[0095] ○ PACCEPTn is low, and

[0096] ○ PDENY is low

[0097] ● PREQ can only transition from high to low when at least the following conditions are met:

[0098] ○ PDENYHINT is low, and

[0099] ○ ((PACCEPT is high and PDENY is low) or

[0100] (PACCEPT is low and PDENY is high))

[0101] ● PACCEPT can only transition from low to high when at least the following conditions are met:

[0102] ○ PREQ is high, and

[0103] ○ PDENY is low

[0104] ● PACCEPT can only transition from high to low when at least the following conditions are met:

[0105] ○ PREQ is low

[0106] ● PDENY can only transition from low to high when at least the following conditions are met:

[0107] ○ PREQ is high, and

[0108] ○ PACCEPT is low

[0109] ● PDENY can only transition from high to low when at least the following conditions are met:

[0110] ○ PREQ is low

[0111] ​●PDENYHINT can only transition from low to high when at least the following conditions are met:

[0112] ○PREQ is high, and

[0113] ○PACCEPT is low, and

[0114] ○PDENY is low

[0115] ●PDENYHINT can only transition from high to low when at least the following conditions are met:

[0116] ○PREQ is high

[0117] ○((PACCEPT is high and PDENY is low) or

[0118] (PACCEPT is low and PDENY is high)

[0119] Note that Figure 5 refers to the state P{DENY, ACCEPT}, where the state P refers to a pair of signals, and only one of PACCEPT or PDENY can be active at a time. Different from QACCEPTn and QDENY, the PACCEPT / PDENY timing is the same.

[0120] In the Figure 5 example, PREQ is made active. Additionally, the value of PSTATE (not shown) is set to the desired new state that the controller 110 wishes to use the device 120a to adopt. In this example, the value of PDENYHINT is raised, indicating that the request should be rejected (if possible). The value of P{DENY, ACCEPT} is set to high, indicating acceptance or rejection of the request. This causes PDENYHINT to become inactive. Then, the value of PREQ is made inactive, and in response, P{DENY, ACCEPT} is lowered.

[0121] Figure 6FIG. 600 is a flow chart illustrating an example of a decision process for determining whether a hint should be followed. The process starts at step 610 where a hint is received. In this example, the system is capable of operating in two different modes: a completion ratio mode, where a decision is made based on the ratio of resource changes that have occurred; and a resource cost mode, where a decision is made by comparing the cost of compliance with the cost of recovery. If the mode is the completion ratio mode, the process proceeds to step 630 where the ratio of resource usage that has changed (between making the request and receiving the hint) is determined. That is, the amount of the transition that has been performed so far is considered. At step 640, if the ratio is below a certain threshold, then at step 650, the request is rejected. Otherwise, at step 690, the request is accepted. Thus, in this mode, if the amount of the transition is below the threshold (as measured by the amount of resource usage - or in other embodiments, by the amount of time or the number of operations to be performed), the transition is stopped.

[0122] In an alternative mode (resource cost mode), at step 660, the cost of complying with the initial request is calculated. Then, at step 670, the cost of recovering the request is calculated. These costs can be in terms of resources, or they can be all resource aspects. This information can be determined based on the system's previous experience, or it can be hard-coded (e.g., by a designer using theoretical values). In any case, if the cost of recovery is smaller, then at step 690, the initial request is accepted (i.e., the hint is ignored), otherwise at step 650, the initial request is rejected (the hint is followed). Thus, if recovery is cheaper, the initial request is followed. Thus, the hint is ignored (remembering that there will likely be a recovery situation later). Otherwise, the initial request is rejected and the hint is followed (because there will be no recovery situation later).

[0123] Other techniques will be known to those skilled in the art.

[0124] Figure 7A pair of flowcharts 700, 730 are shown that illustrate processes performed by the control device 110 and the usage devices 120a, 120b, 120c. At step 710, the control device 110 causes a request to change the usage of the usage devices 120a, 120b, 120c to take effect. Then at step 720, a prompt that the request should be rejected is caused to take effect (if possible). The prompt is issued to those usage devices among the plurality of usage devices 120a, 120b, 120c that have not yet responded (and thus one or more responses may occur after the request takes effect and before the prompt takes effect). At step 740, the usage devices 120a, 120b, 120c receive the request to change the usage. Then, at step 750, the prompt (sent by the control device 110 in step 720) is received. Then, at step 760, the usage devices 120a, 120b, 120c use the request and / or the prompt to determine how to respond to the request.

[0125] The above example mainly focuses on resources in the form of energy. However, the same mechanism can be used to control the usage of other resources. For example, the resource can be a bridge between different domains, the usage of a specific circuit, or actually other situations where preparations are made to enable or disable resource usage.

[0126] For the above reasons, the negative impacts associated with requests that are complied with and then revoked may be limited.

[0127] In this application, the term "configured to..." is used to mean that an element of a device has a configuration capable of performing the defined operation. In this context, "configuration" means the arrangement or manner of interconnection of hardware or software. For example, the device may have dedicated hardware that provides the defined operation, or a processor or other processing device may be programmed to perform the function. "Configured to" does not mean that the device element needs to be changed in any way to provide the defined operation.

[0128] Although the exemplary embodiments of the present invention have been described in detail herein with reference to the accompanying drawings, it should be understood that the present invention is not limited to those exact embodiments, and various changes, additions, and modifications can be made by those skilled in the art without departing from the scope and essence of the present invention as defined by the appended claims. For example, the features of the dependent claims can be combined with the features of the independent claims in various ways without departing from the scope of the present invention.

Claims

1. A control device, the control device comprising: An assertion circuit configured to effectuate a request for a plurality of consuming devices to change their use of a resource from an initial use; A receiving circuit configured to receive a response to the request from the plurality of consuming devices; And A prompting circuit configured to effectuate a prompt issued to those of the plurality of consuming devices that have not received the response, the prompt indicating that a rejection in response to the request is more preferable than an acceptance.

2. The device according to claim 1, wherein The prompt is effectuated in response to a rejection from one of the plurality of consuming devices.

3. The device according to any one of the preceding claims, wherein The resource is energy.

4. The device according to any one of the preceding claims, wherein The request is for the plurality of consuming devices to change an energy level at which the plurality of consuming devices operate.

5. The device according to any one of the preceding claims, wherein The request is for the plurality of consuming devices to reduce their use of the resource.

6. The device according to any one of the preceding claims, wherein The assertion circuit is configured to effectuate another request for a second one of the plurality of consuming devices to return to the initial use in response to receiving the response from each of the plurality of consuming devices when the response from one of the consuming devices is a rejection.

7. The device according to any one of the preceding claims, wherein The request is effectuated using a P channel or a Q channel.

8. A method, the method comprising: Effectuating a request for a plurality of consuming devices to change their use of a resource from an initial use; And Effectuating a prompt issued to those of the plurality of consuming devices that have not received a response to the request, the prompt indicating that a rejection in response to the request is more preferable than an acceptance.

9. A consuming device, the consuming device comprising: A receiving circuit configured to receive from a control device a request to change the consuming device's use of a resource from an initial use, and a prompt from the control device indicating that a rejection in response to the request is optional and preferable; A determining circuit configured to make a determination as to whether to satisfy the request based on at least one of: the request and the prompt; And A responding circuit configured to provide a response to the request based on the determination.

10. The consuming device according to claim 9, wherein The resource is energy.

11. The consuming device according to any one of claims 9 to 10, wherein The request is for the consuming device to change an energy level at which the consuming device operates.

12. The consuming device according to any one of claims 9 to 11, wherein The request is for the consuming device to reduce its use of the resource.

13. The consuming device according to any one of claims 9 to 12, wherein The request is effectuated using a P channel or a Q channel.

14. The usage device according to any one of claims 9 to 13, wherein the determination circuit is configured to make the determination based on a proportion of the usage of the resource by the usage device, the proportion having changed between the request received by the receiving circuit and the hint.

15. The usage device according to any one of claims 9 to 14, wherein the determination circuit is configured to make the determination based on an estimated cost difference between the cost of complying with the request between the request received by the receiving circuit and the hint; and the cost of reverting to the initial usage after the request has been complied with.

16. A method, the method comprising: receiving, from a control device, a request to change the usage of a resource by the usage device from an initial usage; receiving, from the control device, a hint that a rejection of the request is optional and preferable; making a determination as to whether to satisfy the request based on at least one of the request and the hint; and providing a response to the request based on the determination.