ES2646663T3 - Dynamic low power mode implementation for computing devices - Google Patents

Dynamic low power mode implementation for computing devices Download PDF

Info

Publication number
ES2646663T3
ES2646663T3 ES11700483.8T ES11700483T ES2646663T3 ES 2646663 T3 ES2646663 T3 ES 2646663T3 ES 11700483 T ES11700483 T ES 11700483T ES 2646663 T3 ES2646663 T3 ES 2646663T3
Authority
ES
Spain
Prior art keywords
low power
resource
mode
modes
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES11700483.8T
Other languages
Spanish (es)
Inventor
Norman S. Gargash
Andrew J. Frantz
Brian J. Salsbery
Christopher A. Barrett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2646663T3 publication Critical patent/ES2646663T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

Un procedimiento para conservar energía en un dispositivo informático que tiene al menos un procesador, que comprende: establecer (14) un bit de indicador asociado con un recurso, en el que el recurso es uno de una pluralidad de recursos utilizados por un procesador; identificar (28) los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración de bit de indicador; registrar (30) un requisito de latencia para cada uno de los recursos identificados; seleccionar (30) un requisito de latencia más corto entre los requisitos de latencia registrados; evaluar (38) en los modos de baja potencia del dispositivo informático para cada recurso que se pueda colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda el requisito de latencia más corto seleccionado; seleccionar (38) una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales y tenga un requisito de latencia total que sea menor o igual al requisito de latencia más corto seleccionado; y entrar (40) en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función de entrada de cada uno de los modos de baja potencia seleccionados en cada uno de los recursos identificados; caracterizado por que el paso de establecer (14) el bit de indicador asociado con un recurso se realiza cuando el recurso no está en uso y el paso de identificar (28) los recursos que pueden colocarse en un modo de baja potencia basándose en la configuración de bit de indicador se realiza cuando el procesador puede entrar en un estado de inactividad.A method for conserving energy in a computing device having at least one processor, comprising: setting (14) an indicator bit associated with a resource, wherein the resource is one of a plurality of resources used by a processor; identify (28) the resources that can be placed in a low power mode based on the indicator bit configuration; register (30) a latency requirement for each of the identified resources; select (30) a shorter latency requirement among the registered latency requirements; evaluate (38) in the low power modes of the computing device for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a requirement of combined latency that exceeds the shortest latency requirement selected; select (38) a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the shortest latency requirement selected; and entering (40) in the selected combination of low power resource modes by executing an input function of each of the low power modes selected in each of the identified resources; characterized in that the step of setting (14) the indicator bit associated with a resource is performed when the resource is not in use and the step of identifying (28) the resources that can be placed in a low power mode based on the configuration Bit indicator is performed when the processor can enter an idle state.

Description

DESCRIPCIÓN DESCRIPTION

Implementación de modo dinámico de baja potencia para dispositivos informáticos Dynamic low power mode implementation for computing devices

ANTECEDENTES 5 BACKGROUND 5

[0001] Las tecnologías de comunicación inalámbrica han experimentado un crecimiento explosivo en los últimos años. Este crecimiento ha sido impulsado por los servicios inalámbricos que proporcionan libertad de movimiento al público móvil, y el corte de la atadura a los sistemas de comunicación cableados. Como resultado de las mejoras de servicio, se espera que la popularidad de los servicios inalámbricos continúe creciendo rápidamente. La duración de 10 la batería es un factor clave de los dispositivos electrónicos móviles, por lo que los procedimientos y dispositivos que permiten conservar la energía de la batería son consideraciones importantes en las tecnologías de dispositivos electrónicos. [0001] Wireless communication technologies have experienced explosive growth in recent years. This growth has been driven by wireless services that provide freedom of movement to the mobile public, and the cutting of the connection to wired communication systems. As a result of the service improvements, the popularity of wireless services is expected to continue to grow rapidly. Battery life is a key factor in mobile electronic devices, so the procedures and devices that allow battery power to be conserved are important considerations in electronic device technologies.

[0002] "Gestión de potencia proactiva dirigida por compilador para redes", F. Li et al, septiembre de 2005, propone 15 un enfoque proactivo dirigido por compilador para gestión de potencia de redes para la clase de aplicaciones de bucle intensivo que se ejecutan en redes de pequeño tamaño utilizadas exclusivamente por una sola aplicación integrada a la vez. La Patente de Estados Unidos 6 457 135 se refiere a un sistema y procedimiento para gestionar una pluralidad de estados de rendimiento del procesador. La Publicación de la Solicitud de Patente de Estados Unidos US 2003/0028711 se refiere a la supervisión del consumo de energía de zonas de memoria en uso. La 20 Publicación de la Solicitud de Patente Internacional n.º WO 2006/138687 se refiere a la reducción de potencia de un sistema informático mediante sincronización de inactividad. [0002] "Proactive power management directed by compiler for networks", F. Li et al, September 2005, proposes a proactive approach directed by compiler for power management of networks for the kind of intensive loop applications that run in small networks used exclusively by only one application integrated at a time. United States Patent 6 457 135 refers to a system and method for managing a plurality of processor performance states. US Patent Application Publication US 2003/0028711 refers to the monitoring of energy consumption of memory areas in use. The publication of International Patent Application No. WO 2006/138687 refers to the reduction of power of a computer system by means of inactivity synchronization.

RESUMEN SUMMARY

25  25

[0003] La presente invención proporciona un procedimiento para conservar la energía en un dispositivo informático que tiene al menos un procesador, y un dispositivo informático que tiene al menos un procesador tal como se define en las reivindicaciones adjuntas. Los diversos aspectos proporcionan datos y procedimientos que pueden ser utilizados o implementados por un procesador dentro de un dispositivo informático para seleccionar una combinación de modos de funcionamiento óptimos, o casi óptimos, de baja potencia para recursos en el dispositivo informático. 30 Los diversos aspectos permiten que los componentes de recursos tengan dos o más modos de energía de recurso y el procesador seleccione un modo de potencia para cada uno de los diversos recursos basándose en el estado de funcionamiento, las condiciones de funcionamiento, las características del ciclo de reposo y otros factores para configurar dinámicamente un modo de baja potencia del sistema en el momento en que el procesador entra en un estado de baja potencia o de reposo. Los diversos aspectos permiten a un procesador evaluar los modos de baja 35 potencia de diversos recursos y cualquier combinación de modos de baja potencia de recurso para identificar aquellos recursos o combinaciones de recursos cuya latencia efectiva no exceda los requisitos de latencia del sistema de todas las tareas activas. Los diversos aspectos permiten a un procesador seleccionar una combinación de modos de baja potencia de recurso para implementar en una configuración de baja potencia del sistema que maximiza los ahorros de energía cumpliendo al mismo tiempo con los requisitos de latencia del sistema de todas las 40 tareas activas y hacer esta selección dinámicamente (es decir, en el momento de un ciclo de reposo), en lugar de seleccionar de un conjunto de configuraciones predefinidas de baja potencia. Los diversos aspectos permiten a un procesador volver a calcular continuamente las tablas de búsqueda utilizadas por un proceso de solucionador para determinar una configuración óptima de baja potencia optimizada para las condiciones actuales y el estado de funcionamiento. Los diversos aspectos permiten a un procesador hacer uso de la información estadística relativa al 45 funcionamiento del dispositivo informático para determinar una configuración óptima de baja potencia adecuada para un estado actual, aplicaciones y dispositivos activos, y duración esperada del reposo. Los diversos aspectos permiten a un procesador seleccionar una configuración óptima de baja potencia basada en información ambiental y de uso actual y pasada. [0003] The present invention provides a method for conserving energy in a computing device that has at least one processor, and a computing device that has at least one processor as defined in the appended claims. The various aspects provide data and procedures that can be used or implemented by a processor within a computing device to select a combination of optimal, or almost optimal, low power operating modes for resources in the computing device. 30 The various aspects allow the resource components to have two or more resource power modes and the processor selects a power mode for each of the various resources based on the operating status, operating conditions, cycle characteristics idle and other factors to dynamically configure a low power mode of the system at the time the processor enters a low power or idle state. The various aspects allow a processor to evaluate the low power modes of various resources and any combination of low power power modes to identify those resources or combinations of resources whose effective latency does not exceed the system latency requirements of all tasks active. The various aspects allow a processor to select a combination of low power resource modes to implement in a low power system configuration that maximizes energy savings while complying with the system latency requirements of all 40 active tasks and make this selection dynamically (that is, at the time of a rest cycle), instead of selecting from a set of predefined low power configurations. The various aspects allow a processor to continually recalculate the search tables used by a solver process to determine an optimal low power configuration optimized for current conditions and operating status. The various aspects allow a processor to make use of the statistical information related to the operation of the computing device to determine an optimal low power configuration suitable for a current state, active applications and devices, and expected rest time. The various aspects allow a processor to select an optimal low power configuration based on current and past environmental and current information.

50  fifty

[0004] Los diversos aspectos incluyen procedimientos para conservar la energía en un dispositivo informático que incluyen el establecimiento de un bit de indicador asociado a un recurso cuando el recurso no está en uso, en el que el recurso es uno de una pluralidad de recursos, identificar los recursos que pueden colocarse en un modo de baja potencia basándose en la configuración del bit de indicador cuando un procesador puede entrar en un estado de inactividad, registrar un requisito de latencia para cada uno de los recursos identificados, seleccionar un requisito de 55 latencia más estricto de los requisitos de latencia registrados, evaluar en el dispositivo informático los modos de baja potencia para cada recurso que se puede colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda la tolerancia a la latencia más estricta seleccionada, seleccionar una combinación de los modos de recurso de baja potencia que maximiza los ahorros de energía potenciales y tiene un requisito de 60 latencia total que es menor o igual al requisito de latencia de peor caso seleccionado y entrar en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función de entrada en cada uno de los modos de baja potencia seleccionados en cada uno de los recursos identificados. En los procedimientos de aspecto, la selección de una combinación de modos de recurso de baja potencia puede incluir la ejecución de un algoritmo de solución de problemas de mochila para los diversos recursos y modos de baja potencia. Los procedimientos de 65 aspecto pueden incluir además la determinación de un tiempo que se espera que el procesador permanezca en un [0004] The various aspects include procedures for conserving energy in a computing device that include the establishment of an indicator bit associated with a resource when the resource is not in use, in which the resource is one of a plurality of resources, identify the resources that can be placed in a low power mode based on the configuration of the indicator bit when a processor can enter a state of inactivity, register a latency requirement for each of the identified resources, select a latency requirement more stringent of the registered latency requirements, evaluate in the computing device the low power modes for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low resource modes power that have a combined latency requirement that exceeds the strictest latency tolerance selected, select a combination of the low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the worst case latency requirement selected and enter the selected combination of mode modes. low power resource executing an input function in each of the low power modes selected in each of the identified resources. In the appearance procedures, the selection of a combination of low power resource modes may include the execution of a backpack troubleshooting algorithm for the various resources and low power modes. Aspect procedures may also include determining a time that the processor is expected to remain in a

estado de inactividad y la determinación de los ahorros de energía potenciales de cada uno de los modos evaluados de recursos de baja potencia basándose en unos ahorros de energía potenciales por unidad de tiempo a una temperatura actual multiplicados por un tiempo de inactividad esperado determinado. Los procedimientos de aspecto pueden incluir además medir, cuando el dispositivo está en un estado estable conocido, temperatura y corriente, o demanda de temperatura y potencia, seleccionar un recurso para la medición, colocar el recurso seleccionado en un 5 modo de recurso de baja potencia, medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia, y repetir los pasos de selección de un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia hasta que se haya medido la demanda de potencia o corriente durante un modo de recurso de baja potencia para todos los recursos que tienen un modo de 10 recurso de baja potencia, en los que la selección de una combinación de modos de recurso de baja potencia que maximiza los ahorros de energía potenciales incluye el uso de la demanda de potencia o corriente medida asociada a cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia. Los procedimientos de aspecto pueden incluir además repetir las operaciones expuestas en la reivindicación 3 a diferentes temperaturas y determinar una sensibilidad a la 15 temperatura de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia, en los que seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales incluye medir la temperatura del dispositivo informático y utilizar la sensibilidad a la temperatura determinada de la demanda de corriente o de potencia asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia a la 20 temperatura medida del dispositivo informático. En los procedimientos de aspecto, la evaluación de modos de recurso de baja potencia para cada recurso que se puede colocar en un modo de baja potencia puede incluir realizar un proceso de búsqueda en la tabla usando una tabla de datos de selección de modo de baja potencia utilizando ahorro de energía potencial, tiene de inactividad esperado y condiciones de funcionamiento, y las condiciones de funcionamiento pueden incluir un valor de temperatura. Los procedimientos de aspecto pueden incluir además 25 recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático y actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de las condiciones de funcionamiento recogidas. En los procedimientos de aspecto, las condiciones de funcionamiento pueden seleccionarse del grupo que incluye la temperatura, el consumo de energía de modos de recurso de baja potencia particulares, los tiempos de inactividad experimentados en diversos estados de funcionamiento y los patrones de uso de dispositivos típicos. 30 Los procedimientos de aspecto pueden incluir además determinar si el dispositivo informático está conectado a una alimentación externa, en los que la actualización de la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento se lleva a cabo cuando el dispositivo informático está conectado a energía externa. idle status and the determination of the potential energy savings of each of the evaluated modes of low power resources based on potential energy savings per unit of time at a current temperature multiplied by a given expected downtime. Appearance procedures may also include measuring, when the device is in a known stable state, temperature and current, or temperature and power demand, selecting a resource for measurement, placing the selected resource in a low power resource mode. , measure the power or current demand while the selected resource is in the low power resource mode, and repeat the selection steps of a next resource, place the selected resource in a low power resource mode and measure the demand for power or current while the selected resource is in the low power resource mode until the power or current demand has been measured during a low power resource mode for all resources that have a low power resource mode, in which the selection of a combination of low power resource modes that maximizes potential energy savings includes the use of d power demand or measured current associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes. The appearance procedures may further include repeating the operations set forth in claim 3 at different temperatures and determining a temperature sensitivity of the current or power demand associated with each low power resource mode, in which to select a combination of Low power resource modes that maximize potential energy savings include measuring the temperature of the computing device and utilizing the determined temperature sensitivity of current or power demand associated with each low power resource mode to determine energy savings. potential energy of a combination of low power resource modes at the measured temperature of the computing device. In the appearance procedures, the evaluation of low power resource modes for each resource that can be placed in a low power mode may include performing a table search process using a low power mode selection data table. Using potential energy savings, it has expected inactivity and operating conditions, and operating conditions may include a temperature value. The appearance procedures may also include collecting statistics on the operating conditions in the computing device and updating the low power mode selection data table based on the statistics of the collected operating conditions. In the appearance procedures, the operating conditions can be selected from the group that includes the temperature, the energy consumption of particular low power resource modes, the idle times experienced in various operating states and the usage patterns of typical devices . The appearance procedures may also include determining whether the computing device is connected to an external power supply, in which the updating of the low power mode selection data table based on the statistics of operating conditions is carried out when The computing device is connected to external power.

35  35

[0005] Los diversos aspectos también incluyen un dispositivo informático que incluye medios para realizar las funciones de los procedimientos aspecto descritos anteriormente. [0005] The various aspects also include a computing device that includes means for performing the functions of the aspect procedures described above.

[0006] Los diversos aspectos también incluyen un aparato para la conservación de energía en un dispositivo informático que incluye una memoria intermedia y un procesador acoplado a la memoria intermedia, en el que el 40 procesador está configurado con instrucciones ejecutables por procesador para llevar a cabo las operaciones de los procedimientos de aspecto descritos arriba. [0006] The various aspects also include an apparatus for conserving energy in a computing device that includes a buffer and a processor coupled to the buffer, wherein the processor is configured with instructions executable by processor to perform the operations of the appearance procedures described above.

[0007] Los diversos aspectos también incluyen un medio de almacenamiento no transitorio que tiene almacenado en el mismo instrucciones de software ejecutables por procesador configuradas para hacer que un procesador realice 45 operaciones de conservación de potencia en un dispositivo informático que incluyen las operaciones de los procedimientos de aspecto descritos anteriormente. [0007] The various aspects also include a non-transient storage medium having stored in the same processor-executable software instructions configured to cause a processor to perform power conservation operations on a computing device that include the operations of the procedures. of appearance described above.

BREVE DESCRIPCIÓN DE LOS DIBUJOS BRIEF DESCRIPTION OF THE DRAWINGS

50  fifty

[0008] Los dibujos adjuntos, que se incorporan en el presente documento y constituyen parte de esta memoria descriptiva, ilustran modos de realización a modo de ejemplo de la invención, y junto con la descripción general dada anteriormente y la descripción detallada dada a continuación, sirven para explicar las características de la invención. [0008] The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary embodiments of the invention, and together with the general description given above and the detailed description given below, they serve to explain the characteristics of the invention.

La FIG. 1 es un diagrama de un recurso controlado por un nodo de programación para entrar en uno de los dos 55 modos de baja potencia en un aspecto. FIG. 1 is a diagram of a resource controlled by a programming node to enter one of the two 55 low power modes in one aspect.

La FIG. 2 es un diagrama de flujo de proceso de un procedimiento mediante el cual un recurso compartido registra su capacidad para entrar en un modo de baja potencia de acuerdo con un aspecto. FIG. 2 is a process flow diagram of a procedure whereby a shared resource records its ability to enter a low power mode according to one aspect.

60  60

La FIG. 3 es un diagrama de flujo de proceso de un procedimiento por el cual un recurso compartido registra salidas a un modo de baja potencia de acuerdo con un aspecto. FIG. 3 is a process flow diagram of a procedure whereby a shared resource registers outputs at a low power mode according to one aspect.

La FIG. 4 es un diagrama de flujo de proceso de un procedimiento para seleccionar y entrar en un modo de baja potencia de acuerdo con un aspecto. 65 FIG. 4 is a process flow diagram of a procedure for selecting and entering a low power mode according to one aspect. 65

La FIG. 5 es un nodo de programación y un diagrama de recursos que ilustran un procedimiento de aspecto para seleccionar y entrar en un modo de baja potencia. FIG. 5 is a programming node and a resource diagram illustrating an aspect procedure for selecting and entering a low power mode.

La FIG. 6 es un nodo de programación y un diagrama de recursos que ilustran otro procedimiento de aspecto para seleccionar y entrar en un modo de baja potencia. 5 FIG. 6 is a programming node and a resource diagram illustrating another aspect procedure for selecting and entering a low power mode. 5

La FIG. 7 es un diagrama de flujo de proceso de un procedimiento de aspecto para seleccionar un modo óptimo de baja potencia. FIG. 7 is a process flow diagram of an aspect procedure for selecting an optimal low power mode.

Las FIGs. 8A y 8B son gráficos de ahorros de energía frente a tiempo de inactividad de tres modos alternativos 10 de baja potencia que ilustran un procedimiento de aspecto para seleccionar un modo óptimo de baja potencia basado en el tiempo de inactividad esperado. FIGs. 8A and 8B are graphs of energy savings versus downtime of three alternative low power modes 10 illustrating an aspect procedure for selecting an optimal low power mode based on the expected downtime.

La FIG. 9A y 9B son diagramas de flujo de proceso de procedimientos de aspecto alternativos para seleccionar un modo óptimo de baja potencia. 15 FIG. 9A and 9B are process flow diagrams of alternative aspect procedures for selecting an optimal low power mode. fifteen

La FIG. 10 es un diagrama de flujo de proceso de un procedimiento de aspecto alternativo para seleccionar un modo óptimo de baja potencia. FIG. 10 is a process flow diagram of an alternative aspect procedure for selecting an optimal low power mode.

La FIG. 11 es un diagrama de flujo de proceso de un procedimiento de aspecto alternativo para seleccionar un 20 modo óptimo de baja potencia o actualizar una tabla de selección de modo de baja potencia basándose en si el dispositivo informático está conectado a una alimentación externa. FIG. 11 is a process flow diagram of an alternative aspect procedure for selecting an optimal low power mode or updating a low power mode selection table based on whether the computing device is connected to an external power.

La FIG. 12 es un diagrama de flujo de proceso de un procedimiento de aspecto para actualizar parámetros de ahorro de energía de recursos basados en estadísticas recopiladas por el dispositivo móvil. 25 FIG. 12 is a process flow diagram of an aspect procedure for updating energy-saving parameters of resources based on statistics collected by the mobile device. 25

La FIG. 13 es un diagrama de flujo de proceso de un procedimiento de aspecto mediante el cual un dispositivo móvil puede recopilar estadísticas sobre los ahorros de energía obtenidos por varios modos de baja potencia así como estadísticas relativas a la distribución de interrupciones y temporizadores que afectan a los ahorros de energía en modo inactivo. 30 FIG. 13 is a process flow diagram of an aspect procedure whereby a mobile device can collect statistics on energy savings obtained by various low power modes as well as statistics relating to the distribution of interruptions and timers that affect savings of power in idle mode. 30

La FIG. 14 es un diagrama de flujo de proceso de un procedimiento de aspecto mediante el cual un dispositivo móvil puede recopilar los ahorros de energía de medición conseguidos por cada modo de recurso de baja potencia. FIG. 14 is a process flow diagram of an aspect procedure whereby a mobile device can collect the measured energy savings achieved by each low power resource mode.

35  35

La FIG. 15 es un diagrama de bloques de componentes de un dispositivo móvil adecuado para el uso en un aspecto. FIG. 15 is a block diagram of components of a mobile device suitable for use in one aspect.

DESCRIPCIÓN DETALLADA DETAILED DESCRIPTION

40  40

[0009] Los diversos aspectos se describirán en detalle con referencia a los dibujos adjuntos. Siempre que sea posible, se usarán los mismos números de referencia a lo largo de los dibujos para referirse a las mismas partes o similares. Las referencias hechas de ejemplos e implementaciones particulares son con fines ilustrativos, y no pretenden limitar el alcance de la invención o las reivindicaciones. [0009] The various aspects will be described in detail with reference to the attached drawings. Whenever possible, the same reference numbers will be used throughout the drawings to refer to the same or similar parts. References made from particular examples and implementations are for illustrative purposes, and are not intended to limit the scope of the invention or the claims.

45  Four. Five

[0010] La expresión "a modo de ejemplo" se usa en el presente documento para significar "que sirve como ejemplo, instancia o ilustración". No ha de interpretarse necesariamente cualquier implementación descrita en el presente documento como "a modo de ejemplo" como preferente o ventajosa con respecto a otras implementaciones. [0010] The expression "by way of example" is used herein to mean "serving as an example, instance or illustration". Any implementation described in this document should not necessarily be construed as "by way of example" as preferred or advantageous with respect to other implementations.

[0011] Los términos "dispositivo móvil" y "dispositivo informático" se usan indistintamente en el presente documento 50 para referirse a uno cualquiera o todos los teléfonos celulares, asistentes de datos personales (PDA), miniordenadores portátiles, receptores de correo electrónico inalámbricos (por ejemplo, los dispositivos Blackberry® y Treo®), teléfonos celulares con Internet multimedia (por ejemplo, Blackberry Storm®), receptores del Sistema de Posicionamiento Global (GPS), controladores de juegos inalámbricos y dispositivos electrónicos personales similares que incluyen un procesador programable y funcionan bajo energía de la batería tal que los procedimientos de 55 conservación de energía son beneficiosos. [0011] The terms "mobile device" and "computing device" are used interchangeably herein to refer to any one or all cell phones, personal data assistants (PDAs), portable mini-computers, wireless email receivers ( for example, Blackberry® and Treo® devices), cell phones with multimedia Internet (for example, Blackberry Storm®), Global Positioning System (GPS) receivers, wireless game controllers and similar personal electronic devices that include a programmable processor and they operate under battery power such that energy conservation procedures are beneficial.

[0012] Tal como se utiliza en el presente documento, el término "recurso" se utiliza en el presente documento para referirse a cualquiera de una amplia variedad de circuitos (por ejemplo, puertos, relojes, autobuses, osciladores, etc.), componentes (por ejemplo, memoria), señales (por ejemplo, señales de reloj), y voltajes (por ejemplo, carriles 60 de voltaje) que se utilizan para soportar procesadores y clientes que se ejecutan en un dispositivo informático. [0012] As used herein, the term "resource" is used herein to refer to any of a wide variety of circuits (eg, ports, clocks, buses, oscillators, etc.), components (for example, memory), signals (for example, clock signals), and voltages (for example, voltage lanes 60) that are used to support processors and clients running on a computing device.

[0013] La maximización de la duración de la batería de dispositivos inalámbricos es un criterio de diseño importante. La mayor duración de la batería maximiza la experiencia del usuario al permitir a los usuarios hacer más con un dispositivo inalámbrico durante períodos de tiempo más largos. Sin embargo, para maximizar verdaderamente la 65 experiencia del usuario, se deben implementar estrategias de ahorro de energía para que no alteren la funcionalidad [0013] Maximizing the battery life of wireless devices is an important design criterion. The longer battery life maximizes the user experience by allowing users to do more with a wireless device for longer periods of time. However, to truly maximize the user experience, energy saving strategies must be implemented so that they do not alter functionality

o fiabilidad del dispositivo. Como tal, el diseño eficiente y eficaz de los esquemas de ahorro de energía que no alteran la funcionalidad es un objetivo importante para los proveedores de dispositivos móviles e inalámbricos. or device reliability. As such, the efficient and effective design of energy-saving schemes that do not alter functionality is an important objective for mobile and wireless device providers.

[0014] Para maximizar la duración de la batería, la mayoría de los receptores de radiodifusión móvil están configurados para colocar los uno o más procesadores y los recursos de dispositivo en un estado de baja potencia 5 siempre que sea posible, por ejemplo cuando un procesador está en un estado de inactividad. La colocación de recursos de dispositivo en un estado de baja potencia típicamente consiste en desactivar los distintos recursos de dispositivo siempre que el procesador no esté procesando activamente las tareas, y/o esté en un estado de inactividad. Los recursos que se pueden desactivar o se coloquen en uno o más estados de baja potencia y/o inactivos, cuando el procesador no está procesando tareas y/o está en un estado de inactividad, se denominan en el 10 presente documento recursos de baja potencia o LPR. En dispositivos de multiprocesador, tales como teléfonos inteligentes que pueden tener un procesador de módem inalámbrico y un procesador de aplicación, las operaciones de implementación de modos de baja potencia pueden ser realizadas por cada procesador de forma independiente o coordinada. [0014] To maximize battery life, most mobile broadcast receivers are configured to place the one or more processors and device resources in a low power state 5 whenever possible, for example when a processor It is in a state of inactivity. Placing device resources in a low power state typically consists of deactivating the different device resources as long as the processor is not actively processing the tasks, and / or is in a state of inactivity. Resources that can be deactivated or placed in one or more low power and / or inactive states, when the processor is not processing tasks and / or is in an inactive state, are referred to herein as low power resources or LPR. In multiprocessor devices, such as smartphones that can have a wireless modem processor and an application processor, low power mode implementation operations can be performed by each processor independently or in a coordinated manner.

15  fifteen

[0015] Un dispositivo informático móvil incluye típicamente un número de recursos que utiliza el procesador del dispositivo, tales como un oscilador de cristal, carriles de voltaje, una o más unidades de memoria, buses de comunicación, etc. Con los dispositivos informáticos cada vez más complejos, el número de los recursos utilizados o administrados por los procesadores del dispositivo está aumentando cada año. Por ejemplo, muchos dispositivos informáticos móviles incluyen ahora múltiples osciladores de cristal, múltiples carriles de voltaje y múltiples 20 memorias, cada una de las cuales puede ser controlada independientemente. Consecuentemente, hay muchos recursos diferentes que un procesador de dispositivo informático puede desactivar o colocar en un modo de baja potencia con el fin de ahorrar energía. Además, los dispositivos informáticos pueden tener varios procesadores que utilizan los distintos recursos de dispositivo y realizan diferentes tareas (y, por lo tanto, no pueden estar inactivos al mismo tiempo). Por estas razones, se debe ejercer un cierto grado de control ejecutivo cuando se seleccionan 25 recursos para ser colocados en un modo de baja potencia. La elección de los recursos a colocar en los modos de baja potencia se conoce como el "problema de reposo". [0015] A mobile computing device typically includes a number of resources used by the device's processor, such as a crystal oscillator, voltage lanes, one or more memory units, communication buses, etc. With increasingly complex computing devices, the number of resources used or managed by the device processors is increasing every year. For example, many mobile computing devices now include multiple crystal oscillators, multiple voltage rails and multiple memories, each of which can be independently controlled. Consequently, there are many different resources that a computer device processor can disable or place in a low power mode in order to save energy. In addition, computing devices may have several processors that use different device resources and perform different tasks (and therefore cannot be inactive at the same time). For these reasons, a certain degree of executive control must be exercised when 25 resources are selected to be placed in a low power mode. The choice of resources to be placed in low power modes is known as the "rest problem."

[0016] En general, los procesadores pueden desactivar, deshabilitar, inactivar, o de otro modo reducir las necesidades de consumo de energía de los recursos de baja potencia cuando el procesador ya no necesite un 30 recurso, tal como cuando el procesador entra en un estado de inactividad estable. Cuando el procesador se "activa" (por ejemplo, deja el estado de inactividad para realizar otro proceso), los recursos deben activarse de nuevo, rehabilitarse y/o devolverse a un estado de funcionamiento aceptable. Sin embargo, cada recurso de baja potencia puede tener diferentes niveles de consumo de energía y características de latencia (es decir, el tiempo requerido para devolver el recurso a un modo de potencia completa), y tales características pueden cambiar con la 35 temperatura y el estado de funcionamiento. Es decir, cada recurso puede consumir una cantidad diferente de energía en sus diversos modos de baja potencia, puede requerir una cantidad de tiempo diferente para entrar y salir de los estados de desactivación, inactivación y/o baja potencia, y puede consumir una cantidad diferente de potencia al entrar y salir de tales estados. En aras de la claridad, los diversos modos de baja potencia disponibles para cada uno de los recursos se denominan en la presente memoria modos de recurso de baja potencia o LPRM. 40 [0016] In general, processors can deactivate, disable, inactivate, or otherwise reduce the energy consumption needs of low power resources when the processor no longer needs a resource, such as when the processor enters a stable idle state. When the processor is "activated" (for example, it leaves the idle state to perform another process), the resources must be activated again, rehabilitated and / or returned to an acceptable operating state. However, each low power resource may have different levels of power consumption and latency characteristics (i.e., the time required to return the resource to a full power mode), and such characteristics may change with temperature and temperature. operating status That is, each resource can consume a different amount of energy in its various low power modes, may require a different amount of time to enter and exit the deactivation, inactivation and / or low power states, and may consume a different amount. of power when entering and leaving such states. For the sake of clarity, the various low power modes available for each of the resources are referred to herein as low power resource modes or LPRM. 40

[0017] Si la potencia necesaria para devolver un recurso a su estado de funcionamiento requerido es mayor que la energía ahorrada por tener el recurso en un modo de baja potencia durante la duración estimada del estado de inactividad del procesador, entonces tal vez la duración de la batería del dispositivo inalámbrico no se maximice simplemente desactivando el recurso y/o colocándolo en un estado de baja potencia siempre que el procesador esté 45 inactivo. Por lo tanto, el problema del reposo de determinar qué recursos de baja potencia deben ser desactivados y/o colocados en modos de baja potencia, así como los modos particulares de baja potencia en los que cada recurso debe colocarse requiere típicamente análisis del estado del procesador así como estados de otros procesadores de dispositivos, junto con las características de modo de baja potencia de cada recurso, como la latencia, el ahorro de energía potencial, el consumo de energía y las interdependencias. Además, las características del modo de baja 50 potencia de recurso pueden verse afectadas por condiciones de funcionamiento tales como la temperatura, por lo que también se deben evaluar tales condiciones. [0017] If the power required to return a resource to its required operating state is greater than the energy saved by having the resource in a low power mode for the estimated duration of the processor idle state, then perhaps the duration of The battery of the wireless device is not maximized simply by deactivating the resource and / or placing it in a low power state as long as the processor is idle. Therefore, the problem of resting to determine which low power resources should be deactivated and / or placed in low power modes, as well as the particular low power modes in which each resource should be placed typically requires processor status analysis. as well as states of other device processors, together with the low power mode characteristics of each resource, such as latency, potential energy savings, energy consumption and interdependencies. In addition, the characteristics of the low power resource mode 50 may be affected by operating conditions such as temperature, so that such conditions must also be evaluated.

[0018] Como se ha analizado anteriormente, cada recurso puede tener un conjunto de modos de baja potencia o LPRMs en los que el recurso puede colocarse. Cada modo de recurso de baja potencia de cada recurso puede 55 caracterizarse en términos de latencia, ahorros de energía potenciales, consumo de energía de transición, criterios de entrada en modo de baja potencia, criterios de salida de modo e interdependencias de recursos, algunos o todos los cuales pueden variar con la temperatura y otras condiciones de funcionamiento. Los recursos pueden tener más de un modo de recurso de baja potencia, cada uno de los cuales puede tener diferentes características de ahorro de energía y tiempos de latencia. Por ejemplo, un modo de recurso de baja potencia para un recurso puede deshabilitar 60 completamente el recurso (por ejemplo, desactivar la energía), mientras que un segundo modo de recurso de baja potencia puede implicar una funcionalidad reducida o un funcionamiento periódico del recurso. Cada modo de recurso de baja potencia puede tener diferentes características de funcionamiento, tales como proporcionar diferentes ahorros de energía por unidad de tiempo y requerir diferentes cantidades de tiempo para entrar y salir del modo (es decir, diferentes requisitos de latencia). Por ejemplo, un chip de memoria volátil puede tener dos modos de 65 recurso de baja potencia; un modo de desconexión profunda que consume la menor cantidad de energía pero que [0018] As discussed above, each resource can have a set of low power modes or LPRMs in which the resource can be placed. Each low power resource mode of each resource can be characterized in terms of latency, potential energy savings, transition energy consumption, low power mode input criteria, mode output criteria and resource interdependencies, some or all of which may vary with temperature and other operating conditions. Resources can have more than one low power resource mode, each of which can have different energy saving characteristics and latency times. For example, a low power resource mode for a resource may completely disable the resource (for example, disable power), while a second low power resource mode may involve reduced functionality or periodic operation of the resource. Each low power resource mode may have different operating characteristics, such as providing different energy savings per unit of time and requiring different amounts of time to enter and exit the mode (i.e. different latency requirements). For example, a volatile memory chip may have two modes of low power resource; a deep disconnect mode that consumes the least amount of energy but that

requiere un mayor tiempo para volver a un estado de funcionamiento (es decir, una mayor latencia) y un modo de auto-actualización que continúa consumiendo alguna energía de la batería pero que tiene menor latencia (es decir, puede volver al estado de pleno funcionamiento muy rápidamente). Además, los ahorros de energía proporcionados por cada modo de recurso de baja potencia pueden depender de las condiciones de funcionamiento, tales como la temperatura y el tiempo de inactividad esperado. Por lo tanto, en algunos aspectos, los modos de potencia de bajo 5 recurso pueden calcular los ahorros de energía esperados como el producto de los ahorros de energía potenciales por unidad de tiempo a una temperatura actual, multiplicados por el tiempo de inactividad esperado determinado. En otros aspectos, los ahorros de energía esperados pueden determinarse como otra función de la temperatura, tiempo de inactividad esperado y otras variables. it requires more time to return to a functioning state (i.e. a higher latency) and a self-update mode that continues to consume some battery power but has lower latency (i.e., it can return to the fully functioning state very quickly). In addition, the energy savings provided by each low power resource mode may depend on operating conditions, such as temperature and expected downtime. Therefore, in some aspects, the low resource power modes can calculate the expected energy savings as the product of the potential energy savings per unit of time at a current temperature, multiplied by the expected expected downtime. In other aspects, the expected energy savings can be determined as another function of temperature, expected downtime and other variables.

10  10

[0019] Como se mencionó anteriormente, la colocación de un recurso en un modo de baja potencia y su restauración a un modo normal tras la activación del procesador a menudo requiere algo de trabajo, que requiere potencia y tiempo (es decir, la latencia) para conseguirse. La potencia adicional y el tiempo necesario para entrar en un modo de recurso de baja potencia tal vez no den como resultado ahorros reales de energía si la cantidad de tiempo que el sistema permanece en un estado de inactividad es demasiado corta. En otras palabras, la potencia 15 consumida al colocar el recurso en un modo de recurso de baja potencia y devolverlo a pleno funcionamiento puede ser mayor que la potencia ahorrada durante el corto tiempo que estuvo en el modo de baja potencia. Por lo tanto, el beneficio de entrar en un modo de recurso de baja potencia particular puede depender del tiempo esperado en que el procesador pueda permanecer inactivo. Este tiempo se refiere aquí como el "tiempo de inactividad esperado". [0019] As mentioned earlier, placing a resource in a low power mode and restoring it to a normal mode after processor activation often requires some work, which requires power and time (ie latency) to get. The additional power and time required to enter a low power resource mode may not result in real energy savings if the amount of time the system remains in a state of inactivity is too short. In other words, the power 15 consumed by placing the resource in a low power resource mode and returning it to full operation may be greater than the power saved during the short time it was in the low power mode. Therefore, the benefit of entering a particular low power resource mode may depend on the expected time in which the processor can remain idle. This time is referred to here as the "expected downtime."

20  twenty

[0020] La cantidad de potencia que puede guardarse mediante la colocación de un recurso en un modo de recurso de baja potencia variará basándose en las características del modo de funcionamiento y de los recursos necesarios, así como la cantidad de tiempo que el recurso permanecerá en ese modo. Por ejemplo, la colocación de un chip de memoria en un modo de auto-actualización de baja potencia puede consumir energía asociada con los procesos de auto-actualización, así como requerir la disponibilidad de energía al chip. Por lo tanto, los ahorros de energía 25 disponibles en un modo particular de recursos de baja potencia es una característica importante a considerar al seleccionar entre una pluralidad de modos de recurso de baja potencia para decidir una combinación de modos de recurso de baja potencia para implementar en un ciclo de reposo dado. [0020] The amount of power that can be saved by placing a resource in a low power resource mode will vary based on the characteristics of the mode of operation and the necessary resources, as well as the amount of time the resource will remain in that way. For example, placing a memory chip in a low power auto-update mode can consume energy associated with the auto-update processes, as well as require the availability of power to the chip. Therefore, the energy savings available in a particular mode of low power resources is an important feature to consider when selecting from a plurality of low power resource modes to decide a combination of low power resource modes to implement. in a given rest cycle.

[0021] Como se mencionó anteriormente, la cantidad de potencia que puede guardarse mediante la colocación de 30 un recurso en un modo de recurso de baja potencia particular puede también depender de factores ambientales y de funcionamiento, tales como la temperatura. La temperatura afecta a la resistencia eléctrica dentro del dispositivo. Por lo tanto, los ahorros de energía asociados con los diferentes modos de recurso de baja potencia de cada recurso a temperatura ambiente (como se debe suponer cuando se desarrollan por adelantado configuraciones de baja potencia) puede ser muy diferente sobre el terreno cuando el dispositivo está mucho más frío (por ejemplo, durante 35 el invierno en Alaska) o más cálido (por ejemplo, durante el verano en Texas). En consecuencia, los ahorros de energía de diferentes configuraciones de baja potencia (es decir, un conjunto seleccionado de modos de recurso de baja potencia) en condiciones de la vida real puede significar que el modo real óptimo de baja potencia es diferente de lo que se puede prever con antelación. Dado que la temperatura de un dispositivo no puede conocerse con antelación, esta característica importante no puede utilizarse para seleccionar una combinación de modos de 40 recurso de baja potencia para los recursos de baja potencia disponibles usando procedimientos convencionales para organizar y seleccionar modos de baja potencia. [0021] As mentioned above, the amount of power that can be saved by placing a resource in a particular low power resource mode may also depend on environmental and operational factors, such as temperature. The temperature affects the electrical resistance inside the device. Therefore, the energy savings associated with the different low power resource modes of each resource at room temperature (as should be assumed when low power configurations are developed in advance) can be very different on the ground when the device is much colder (for example, during winter 35 in Alaska) or warmer (for example, during summer in Texas). Consequently, the energy savings of different low power configurations (i.e. a selected set of low power resource modes) under real life conditions may mean that the optimal real low power mode is different from what is You can anticipate in advance. Since the temperature of a device cannot be known in advance, this important feature cannot be used to select a combination of low power resource modes for the low power resources available using conventional procedures for organizing and selecting low power modes.

[0022] Mientras que el ahorro de energía es un objetivo importante en la configuración de los modos de baja potencia para dispositivos electrónicos, también hay que considerar el aseguramiento de que el dispositivo siga 45 funcionando correctamente después de entrar en un modo de baja potencia. Por lo tanto, también es importante la consideración de las latencias asociadas con cada modo de recurso de baja potencia. Como se mencionó anteriormente, se requiere una cierta cantidad de tiempo para entrar y salir de un modo de recurso de baja potencia y devolver el recurso a un modo de funcionamiento normal. Este tiempo de latencia debe ser menor que el tiempo de inactividad esperado o el modo de baja potencia será poco beneficioso. Más significativamente, la latencia asociada 50 con la salida del modo de recurso de baja potencia, o una combinación seleccionada de modos de recurso de baja potencia, debe ser menor que la latencia máxima permitida del sistema de cualquier cliente o procesador que pueda requerir el recurso o los recursos cuando está en modo de baja potencia. Si la latencia asociada con dejar un modo de recurso de baja potencia particular o una combinación de modos de recurso de baja potencia supera la latencia aceptable del sistema, entonces la configuración de baja potencia del sistema particular puede no ser aceptable 55 porque podría ocasionar un error de funcionamiento o hacer que alguna tecnología no relacionada funcione incorrectamente. [0022] While energy saving is an important objective in the configuration of low power modes for electronic devices, one must also consider ensuring that the device continues to function properly after entering a low power mode. Therefore, consideration of the latencies associated with each low power resource mode is also important. As mentioned earlier, a certain amount of time is required to enter and exit a low power resource mode and return the resource to a normal operating mode. This latency time must be less than the expected downtime or the low power mode will be of little benefit. More significantly, the latency associated with the output of the low power resource mode, or a selected combination of low power resource modes, must be less than the maximum allowed system latency of any client or processor that may require the resource. or resources when in low power mode. If the latency associated with leaving a particular low power resource mode or a combination of low power resource modes exceeds the acceptable system latency, then the low power configuration of the particular system may not be acceptable 55 because it could cause an error of operation or make some unrelated technology work incorrectly.

[0023] Un ejemplo de una situación en la que los requisitos de latencia son una consideración importante en el problema del reposo es cuando un conector de bus serie universal (USB) está conectado a un dispositivo móvil. El 60 protocolo USB típicamente tiene un requisito de latencia muy corto y si el dispositivo principal no recibe una respuesta a una solicitud de recursos dentro de esa latencia, el dispositivo principal puede concluir que el dispositivo no funciona correctamente. Por lo tanto, no se debe entrar en ningún modo de recurso de baja potencia de un recurso, o cualquier combinación de modos de recurso de baja potencia, con una latencia de salida mayor que el requisito de latencia USB, cuando una configuración de funcionamiento actual incluye conexión a un dispositivo 65 USB. [0023] An example of a situation where latency requirements are an important consideration in the idle problem is when a universal serial bus (USB) connector is connected to a mobile device. The USB protocol typically has a very short latency requirement and if the main device does not receive a response to a request for resources within that latency, the main device may conclude that the device is not functioning properly. Therefore, you should not enter any low power resource mode of a resource, or any combination of low power resource modes, with an output latency greater than the USB latency requirement, when a current operating configuration Includes connection to a 65 USB device.

[0024] Además de las condiciones de latencia y funcionamiento, los modos de baja potencia de un recurso pueden depender también de otros recursos y/o condiciones. Tales consideraciones de interdependencia de recursos se denominan en general en el presente documento "dependencias". Estas dependencias pueden ser interdependientes (es decir, el modo solo se puede habilitar si otro recurso permanece disponible), exclusivas (es 5 decir, no puede entrarse en el modo si otro recurso particular está en un modo de baja potencia o no en un modo de alta potencia) u ortogonales (es decir, los modos no tienen relación entre sí y pueden habilitarse independientemente). Las dependencias de modo de baja potencia también se pueden clasificar como "estáticas" o "dinámicas". Las dependencias estáticas son aquellas que definen las condiciones que deben cumplirse antes de que un recurso pueda incluso considerar la implementación de un funcionamiento de modo de baja potencia 10 particular. Las dependencias dinámicas, por otro lado, surgen cuando un modo solo puede implementarse en conjunción con otro modo en el sistema, que típicamente solo es determinable en el tiempo de ejecución. [0024] In addition to the latency and operating conditions, the low power modes of a resource may also depend on other resources and / or conditions. Such considerations of resource interdependence are generally referred to herein as "dependencies." These dependencies can be interdependent (that is, the mode can only be enabled if another resource remains available), exclusive (that is, the mode cannot be entered if another particular resource is in a low power mode or not in a mode high power) or orthogonal (that is, the modes have no relation to each other and can be enabled independently). Low power mode dependencies can also be classified as "static" or "dynamic". Static dependencies are those that define the conditions that must be met before a resource can even consider the implementation of a particular low power mode operation. Dynamic dependencies, on the other hand, arise when one mode can only be implemented in conjunction with another mode in the system, which is typically only determinable at runtime.

[0025] Mientras que las dependencias estáticas se pueden prever con algún grado de certeza, las dependencias dinámicas son difíciles de determinar de antemano. Además, las dependencias dinámicas se vuelven 15 exponencialmente más complejas a medida que aumenta el número de componentes y/o recursos. La gestión eficaz de las dependencias dinámicas de los modos de baja potencia será cada vez más importante a medida que los dispositivos inalámbricos modernos continúen creciendo en complejidad e incluyan más componentes y recursos. [0025] While static dependencies can be predicted with some degree of certainty, dynamic dependencies are difficult to determine in advance. In addition, dynamic dependencies become exponentially more complex as the number of components and / or resources increases. Effective management of the dynamic dependencies of low power modes will become increasingly important as modern wireless devices continue to grow in complexity and include more components and resources.

[0026] Por lo tanto, la configuración de un dispositivo para conservar la vida útil de la batería mediante la 20 inactivación y/o deshabilitación de recursos consiste en seleccionar, entre los diferentes modos de recurso de baja potencia de los recursos con el fin de equilibrar las diferentes características de modo de baja potencia de ahorros de energía, latencias e interdependencias de los diversos recursos, así como los requisitos de clientes, procesadores y aplicaciones que pueden estar ejecutándose simultáneamente. Este proceso de selección es una tarea difícil desde el punto de vista computacional (similar al problema clásico de "mochila") debido al número de 25 variables y permutaciones que pueden considerarse, especialmente a medida que aumenta la complejidad de los dispositivos informáticos. [0026] Therefore, the configuration of a device to conserve battery life by means of inactivating and / or disabling resources consists in selecting, among the different resource modes of low power of the resources in order to balance the different low power mode features of energy savings, latencies and interdependencies of the various resources, as well as the requirements of customers, processors and applications that may be running simultaneously. This selection process is a difficult task from the computational point of view (similar to the classic "backpack" problem) due to the number of 25 variables and permutations that can be considered, especially as the complexity of the computing devices increases.

[0027] En la actualidad, los modos de baja potencia para procesadores y dispositivos están configurados de antemano por los desarrolladores basándose en un conjunto estático de prioridades y características predecibles. 30 Uno o algunos conjuntos de configuraciones de baja potencia pueden codificarse en un procesador o sistema durante el desarrollo. La selección de una configuración de baja potencia a partir de un conjunto de modos de baja potencia se controla actualmente mediante la programación en árbol de decisión si-entonces/en caso contrario codificada. Cuando se proporcionan varios modos predefinidos de baja potencia del sistema, el procesador puede seleccionar entre los diversos modos predefinidos permitiendo a los clientes de funcionamiento indicar sus diversos 35 requisitos de recursos o condiciones de funcionamiento mediante "votación". El resultado de la votación del cliente puede ser deshabilitar explícitamente uno o más modos de baja potencia. [0027] At present, low power modes for processors and devices are set up in advance by developers based on a static set of predictable priorities and features. 30 One or some sets of low power configurations can be encoded in a processor or system during development. The selection of a low-power configuration from a set of low-power modes is currently controlled by programming in a yes-then / otherwise coded decision tree. When several predefined low power system modes are provided, the processor can select from the various predefined modes allowing operating customers to indicate their various resource requirements or operating conditions by "voting." The result of customer voting may be explicitly disabling one or more low power modes.

[0028] Los procesos conocidos para seleccionar un modo de baja potencia del sistema a implementar entre varios modos de baja potencia del sistema predefinidos pueden considerar la temperatura, el tiempo de inactividad 40 esperado y los requisitos de latencia. Sin embargo, dicho procedimiento conocido requiere que el desarrollador del sistema, del procesador o de la aplicación predefina una serie de modos de sistema opcionales previendo combinaciones de recursos que se pueden colocar en un modo de baja potencia, evaluar sus interdependencias probables, totalizar sus latencias y prever los requisitos y limitaciones del sistema en el momento en que pudiera entrarse en dicho modo. Mientras que el proceso de prever condiciones de modo de baja potencia y predefinición de 45 un conjunto de modos de sistema desde el que se pudiera hacer una selección era posible cuando los procesadores y dispositivos eran relativamente sencillos, se prevé que este problema de diseño resultará prohibitivamente difícil a medida que aumente la complejidad del sistema y del procesador en el futuro. [0028] The known processes for selecting a low power mode of the system to be implemented among several predefined low power modes of the system may consider the temperature, expected downtime and latency requirements. However, said known procedure requires that the system, processor or application developer predefines a series of optional system modes by providing combinations of resources that can be placed in a low power mode, assessing their probable interdependencies, totaling their latencies. and provide for the requirements and limitations of the system at the time that mode could be entered. While the process of anticipating low power mode conditions and presetting a set of system modes from which a selection could be made was possible when processors and devices were relatively simple, it is anticipated that this design problem will result prohibitively difficult as the complexity of the system and processor increases in the future.

[0029] Los procedimientos de hoy en día para el desarrollo y la implementación de los modos de baja potencia del 50 sistema en dispositivos informáticos no pueden tener en cuenta la corriente, el tiempo de ejecución, las condiciones de funcionamiento (por ejemplo, temperatura), los requisitos de latencia o las dependencias del dispositivo Además, las implementaciones actuales de configuraciones de baja potencia no están ajustadas a configuraciones de dispositivo particulares y no pueden abordar explícitamente los requisitos de latencia dinámica de cada uno de los modos de recurso de baja potencia de cada cliente particular, ya que el estado de funcionamiento de dichos 55 componentes no puede predecirse con antelación. Como tal, el actual procedimiento de desarrollo e implementación de modos de baja potencia típicamente requiere configurar un número preestablecido de configuraciones de baja potencia del sistema (por ejemplo, modo de inactividad, modo de reposo, modo de reposo profundo, etc.) basándose en presunciones que se puedan hacer de antemano y colocando el sistema en uno de los mejores modos de baja potencia del sistema basándose en criterios de selección definidos por el desarrollador. Los procedimientos actuales 60 no pueden generar dinámicamente una configuración de baja potencia en tiempo real compuesta por una combinación de modos de recurso de baja potencia que coloca cada uno de los recursos de baja potencia, así como a los procesadores, en un estado que maximiza completamente los ahorros de energía. [0029] Today's procedures for the development and implementation of the low power modes of the system in computing devices cannot take into account current, runtime, operating conditions (eg temperature) , latency requirements or device dependencies In addition, current implementations of low power configurations are not adjusted to particular device configurations and cannot explicitly address the dynamic latency requirements of each of the low power resource modes of each individual customer, since the operating status of said 55 components cannot be predicted in advance. As such, the current process of developing and implementing low power modes typically requires configuring a preset number of low power system configurations (e.g., idle mode, sleep mode, deep sleep mode, etc.) based on assumptions that can be made in advance and placing the system in one of the best low power modes of the system based on selection criteria defined by the developer. The current procedures 60 cannot dynamically generate a low power configuration in real time consisting of a combination of low power resource modes that places each of the low power resources, as well as the processors, in a state that fully maximizes Energy savings

[0030] En las generaciones anteriores de dispositivos, la configuración de modos de baja potencia con antelación 65 era razonable porque el número de diferentes recursos y clientes que pueden interactuar con el procesador era [0030] In previous generations of devices, the configuration of low power modes in advance was reasonable because the number of different resources and clients that can interact with the processor was

limitado, de tal manera que podía preverse un pequeño número de diferentes estados de funcionamiento. Sin embargo, los dispositivos electrónicos modernos se están volviendo cada vez más sofisticados, involucrando múltiples procesadores, numerosos recursos y clientes concurrentes, de tal manera que ya no será posible definir modos de baja potencia óptimos que puedan ser codificados en los procesadores. Además, la selección de un modo de baja potencia del sistema previamente definido utilizando programación de árbol de decisión si-entonces/en caso 5 contrario varía aproximadamente de acuerdo con 2n donde "n" es el número de recursos y clientes implicados en la determinación. Como resultado, los desarrolladores tienen que comprometerse en un subconjunto de configuraciones de baja potencia que pueden codificarse de antemano, que pueden ser sub-óptimas en algunos estados de funcionamiento, si no en todos. Exigir a los desarrolladores que adopten configuraciones de baja potencia sub-óptimas da como resultado dispositivos electrónicos que consiguen menos ahorro de energía de lo que 10 de otro modo sería alcanzable si se pudieran definir e implementar modos de baja potencia óptimos para condiciones de funcionamiento particulares. limited, so that a small number of different operating states could be foreseen. However, modern electronic devices are becoming increasingly sophisticated, involving multiple processors, numerous resources and concurrent clients, so that it will no longer be possible to define optimal low power modes that can be encoded in processors. In addition, the selection of a low power mode of the system previously defined using decision tree programming if-then / otherwise 5 varies approximately according to 2n where "n" is the number of resources and clients involved in the determination. As a result, developers have to commit to a subset of low power configurations that can be coded in advance, which can be sub-optimal in some operating states, if not all. Requiring developers to adopt sub-optimal low power configurations results in electronic devices that achieve less energy savings than would otherwise be achievable if optimal low power modes could be defined and implemented for particular operating conditions.

[0031] Además de las limitaciones de funcionamiento de la programación actual de configuraciones de baja potencia, el esfuerzo de definir de antemano un conjunto de modos de baja potencia y/o configuraciones del sistema 15 (por ejemplo, inactividad, reposo, reposo profundo) y la codificación de forma rígida de los modos en un procesador o una aplicación implica un esfuerzo significativo del desarrollador. Además, la codificación de forma rígida del conjunto avanzado de modos de baja potencia no se ocupa de los diversos estados de funcionamiento en los que cada uno de los recursos podría estar en un momento dado y no puede responder dinámicamente a los niveles de consumo de potencia total y estados de funcionamiento de todos los componentes del sistema. Dado que la 20 definición de los modos de baja potencia del sistema está dirigida por código y no por datos, pequeños cambios realizados en las configuraciones del dispositivo y los pequeños cambios realizados en el conjunto de modos de baja potencia de recurso requieren unas nuevas pruebas completas para confirmar que los cambios de código no ocasionan errores del dispositivo. Por lo tanto, los procedimientos actuales para implementar modos de baja potencia no pueden seguir el ritmo de los cambios en las configuraciones del dispositivo (por ejemplo, componentes, 25 software, etc.) que pueden ocurrir durante la producción de un producto. [0031] In addition to the operating limitations of the current programming of low power configurations, the effort to define in advance a set of low power modes and / or system configurations 15 (for example, inactivity, rest, deep rest) and rigidly coding the modes in a processor or an application implies a significant effort from the developer. In addition, the rigid coding of the advanced set of low power modes does not address the various operating states in which each of the resources could be at a given time and cannot dynamically respond to power consumption levels total and operating states of all system components. Since the definition of the low power modes of the system is directed by code and not by data, small changes made to the device configurations and small changes made to the set of low power resource modes require new complete tests. to confirm that code changes do not cause device errors. Therefore, current procedures for implementing low power modes cannot keep up with changes in device configurations (e.g., components, software, etc.) that may occur during the production of a product.

[0032] Para abordar estos y otros problemas, los diversos aspectos se ocupan de generar dinámicamente una configuración de baja potencia sistema compuesta de una combinación de modos de recurso de baja potencia seleccionados entre múltiples recursos de baja potencia, para colocar cada uno de los recursos individuales de baja 30 potencia, así como los procesadores, en un estado de funcionamiento que maximice totalmente el ahorro de energía en todo el sistema. Los diversos aspectos proporcionan procedimientos que permiten simplificar el problema del reposo para los procesadores del dispositivo de modo que más selecciones de configuración de baja potencia óptimas pueden ser realizadas por los procesadores en tiempo real, para ofrecer un gran número de configuraciones de baja potencia que puedan ajustarse perfectamente al nivel de los ahorros de energía actualmente alcanzables. 35 Los diversos aspectos permiten a los desarrolladores de componentes definir varios modos de recurso de baja potencia para cada uno de sus componentes que toman en consideración varios factores, como el tipo de recursos en uso, la latencia del peor caso que se puede tolerar, las condiciones de funcionamiento dinámicas (por ejemplo, la temperatura), el tiempo de inactividad esperado y la latencia del componente. Los modos de recurso de baja potencia definidos para cada recurso también pueden definir dependencias estáticas y dinámicas. Los procesadores 40 de dispositivos pueden a continuación seleccionar cualquier combinación de modos de recurso de baja potencia dinámicamente, en tiempo de ejecución. En un aspecto, los procesadores de dispositivos pueden calcular y seleccionar una combinación de modos de baja potencia que da como resultado una configuración de baja potencia o un estado de reposo del sistema que maximiza los ahorros de energía y/o la velocidad de funcionamiento satisfaciendo al mismo tiempo los requisitos de funcionamiento actuales, incluidos los requisitos de otros 45 procesadores y componentes en el sistema. [0032] To address these and other problems, the various aspects deal with dynamically generating a low power configuration system composed of a combination of low power resource modes selected from multiple low power resources, to place each of the resources Low power individual, as well as processors, in a state of operation that fully maximizes energy savings throughout the system. The various aspects provide procedures that simplify the idle problem for the processors of the device so that more optimal low power configuration selections can be made by the processors in real time, to offer a large number of low power configurations that can Perfectly match the level of energy savings currently achievable. 35 The various aspects allow component developers to define various low-power resource modes for each of their components that take into account several factors, such as the type of resources in use, the latency of the worst case that can be tolerated, dynamic operating conditions (e.g. temperature), expected downtime and component latency. The low power resource modes defined for each resource can also define static and dynamic dependencies. The device processors 40 can then select any combination of low power resource modes dynamically, at runtime. In one aspect, device processors can calculate and select a combination of low power modes that results in a low power configuration or a system idle state that maximizes energy savings and / or operating speed by satisfying the at the same time the current operating requirements, including the requirements of 45 other processors and components in the system.

[0033] Los diversos aspectos también permiten a los dispositivos seleccionar uno o más modos de recurso de baja potencia mediante la identificación de los recursos que se pueden deshabilitar, así como los recursos que deben permanecer durante una configuración de baja potencia del dispositivo. Los diversos aspectos proporcionan datos y 50 procedimientos que pueden ser utilizados por un procesador dentro de un dispositivo informático para seleccionar un conjunto de modos de recurso de baja potencia óptimos o casi óptimos para recursos cuando el procesador entra en un estado de inactividad, soportando al mismo tiempo la fiabilidad de funcionamiento sin requerir una interacción significativa del cliente y una acción adicional del procesador. Los aspectos permiten a un procesador determinar una configuración de baja potencia del sistema que proporcione la mayor cantidad de ahorros de energía del 55 sistema mientras continúa funcionando fiablemente, dependiendo de los recursos en uso, la latencia en el peor caso que se pueda tolerar, las condiciones de funcionamiento dinámicas (por ejemplo, la temperatura) , el tiempo de inactividad esperado, el tiempo requerido para entrar y salir de los modos de baja potencia, y las características eléctricas únicas del dispositivo electrónico particular. [0033] The various aspects also allow devices to select one or more low power resource modes by identifying the resources that can be disabled, as well as the resources that must remain during a low power configuration of the device. The various aspects provide data and 50 procedures that can be used by a processor within a computing device to select a set of optimal or almost optimal low power resource modes for resources when the processor enters a state of inactivity, supporting it operating reliability time without requiring significant customer interaction and additional processor action. The aspects allow a processor to determine a low power configuration of the system that provides the greatest amount of energy savings of the system while continuing to operate reliably, depending on the resources in use, the latency in the worst case that can be tolerated, dynamic operating conditions (e.g. temperature), expected downtime, the time required to enter and exit low power modes, and the unique electrical characteristics of the particular electronic device.

60  60

[0034] Los diversos aspectos proporcionan un mecanismo para la determinación de una configuración de baja potencia óptima del sistema compuesta por un conjunto de modos de recurso de baja potencia para los diversos recursos dentro del dispositivo informático determinando cuál de los modos de recurso de baja potencia del recurso son válidos en el momento en que el procesador entra en un estado de inactividad, clasificando los modos de recurso de baja potencia válidos por ahorros de energía esperados dadas las condiciones del dispositivo actuales, 65 determinando cuál de los modos de recurso de baja potencia válidos proporciona los mayores ahorros de energía [0034] The various aspects provide a mechanism for determining an optimal low power configuration of the system composed of a set of low power resource modes for the various resources within the computing device determining which of the low power resource modes of the resource are valid at the moment the processor enters a state of inactivity, classifying the low power resource modes valid by expected energy savings given the current device conditions, 65 determining which of the low power resource modes valid provides the greatest energy savings

satisfaciendo al mismo tiempo los requisitos de latencia y seleccionando un modo de recurso de baja potencia particular para cada recurso en el que desee entrar. De esta manera, los diversos aspectos eliminan el concepto de configuraciones de baja potencia predefinidas fijas del sistema, simplificando así el problema del desarrollador permitiendo a los desarrolladores abordar cada recurso por separado y desplazar el problema del reposo al tiempo de ejecución permitiendo al procesador seleccionar el conjunto de modos de recurso de baja potencia a implementar 5 cuando el procesador entra en un estado de inactividad. Esto permite que la implementación de modos de baja potencia sea impulsada por datos operacionales, y da a los procesadores la capacidad de auto-optimizar los modos de baja potencia del sistema al aprender acerca de cómo se usa y hace funcionar el dispositivo. Además de proporcionar mayores ahorros de energía en una implementación típica en comparación con los procedimientos actuales, los diversos aspectos también simplifican el desarrollo de dispositivos electrónicos. 10 while satisfying the latency requirements and selecting a particular low power resource mode for each resource you wish to enter. In this way, the various aspects eliminate the concept of fixed predefined low power configurations of the system, thus simplifying the developer's problem by allowing developers to address each resource separately and move the problem from rest to runtime allowing the processor to select the set of low power resource modes to implement 5 when the processor enters a state of inactivity. This allows the implementation of low power modes to be driven by operational data, and gives processors the ability to self-optimize the low power modes of the system by learning about how the device is used and operated. In addition to providing greater energy savings in a typical implementation compared to current procedures, the various aspects also simplify the development of electronic devices. 10

[0035] En aras de la claridad y para eliminar cualquier ambigüedad entre "modos de baja potencia" y "recursos de baja potencia", debe entenderse que cada recurso de baja potencia puede tener varios modos de baja potencia. Pueden activarse, habilitarse, desactivarse y/o deshabilitarse múltiples recursos de baja potencia en un estado de inactividad dado. Por lo tanto, una "configuración general de baja potencia del sistema" se define mediante una 15 selección de modos de baja potencia para cada uno de los recursos disponibles para entrar en un modo de baja potencia basándose en el estado y las condiciones de funcionamiento actuales. También debe observarse que debido a restricciones de latencia y dependencias de recursos (como se describe más adelante), la configuración óptima de baja potencia del sistema puede no implicar colocar cada uno de la pluralidad de recursos disponibles para inactivación en un modo de baja potencia. Por lo tanto, la selección de una configuración óptima de baja 20 potencia del sistema puede identificar algunos recursos que deben permanecer en estado de funcionamiento para la latencia, disponibilidad estadística y otras razones. [0035] For the sake of clarity and to eliminate any ambiguity between "low power modes" and "low power resources", it should be understood that each low power resource may have several low power modes. Multiple low power resources can be activated, enabled, disabled and / or disabled in a given state of inactivity. Therefore, a "general low power system configuration" is defined by a selection of low power modes for each of the resources available to enter a low power mode based on the current state and operating conditions. . It should also be noted that due to latency restrictions and resource dependencies (as described below), the optimal low power configuration of the system may not involve placing each of the plurality of resources available for inactivation in a low power mode. Therefore, the selection of an optimal low power configuration of the system can identify some resources that must remain in operating state for latency, statistical availability and other reasons.

[0036] Los diversos aspectos también permiten definir modos de recurso de baja potencia para aquellos recursos que son utilizados por los procesadores, y por lo tanto no se pueden deshabilitar simplemente cuando ya no estén 25 en uso. Es necesario habilitar y deshabilitar los recursos utilizados por un procesador de manera controlada para que el sistema funcione correctamente. Teniendo en cuenta este requisito, la deshabilitación de dichos recursos después de que ya no están en uso debe diferirse hasta que el procesador entre en un estado de inactividad en el que el recurso puede ser deshabilitado. El proceso de entrar en una configuración o modo de baja potencia del sistema se conoce como entrar en un estado de baja potencia. 30 [0036] The various aspects also allow defining low power resource modes for those resources that are used by the processors, and therefore cannot be disabled simply when they are no longer in use. It is necessary to enable and disable the resources used by a processor in a controlled manner for the system to function properly. With this requirement in mind, disabling these resources after they are no longer in use should be deferred until the processor enters an idle state in which the resource can be disabled. The process of entering a low power configuration or mode of the system is known as entering a low power state. 30

[0037] Los diversos aspectos permiten a los recursos indicar cuándo están disponibles para entrar en un estado de baja potencia mediante habilitación de un bit de indicador dentro de una máscara de modo de baja potencia ("máscara LPM") que puede ser utilizada por el procesador para seleccionar una combinación apropiada de LPRM para implementar en una configuración de baja potencia del sistema cuando el procesador entra en un estado de 35 inactividad. Cuando un recurso está en uso, el recurso puede deshabilitar el bit de indicador en la máscara LPM. En varios aspectos, la habilitación y deshabilitación de los bits dentro de la máscara LPM puede realizarse mediante una función de controlador dentro de nodos de programación de recursos dependientes del procesador que pueden llamar a una interfaz de programación de aplicaciones (API), tal como se describe más adelante. Así, en el instante en que un procesador es capaz de entrar en un estado de inactividad, se puede acceder a la máscara LPM para 40 determinar qué recursos se pueden colocar en un modo de baja potencia. [0037] The various aspects allow resources to indicate when they are available to enter a low power state by enabling an indicator bit within a low power mode mask ("LPM mask") that can be used by the processor to select an appropriate combination of LPRM to implement in a low system power configuration when the processor enters a state of inactivity. When a resource is in use, the resource can disable the indicator bit in the LPM mask. In several aspects, the enabling and disabling of the bits within the LPM mask can be performed by a controller function within programming nodes of processor-dependent resources that can call an application programming interface (API), such as describe later. Thus, at the moment when a processor is able to enter a state of inactivity, the LPM mask can be accessed to determine which resources can be placed in a low power mode.

[0038] Como se analizó anteriormente, cuando un recurso ya no está en uso es y el procesador está entrando en un estado de inactividad, el recurso puede colocarse en un modo de baja potencia, tal como uno de los modos de recurso de baja potencia del recurso. Sin embargo, solo porque un recurso ya no está en uso y el procesador está 45 entrando en un estado de inactividad no siempre es una base suficiente para colocar el recurso en un modo de baja potencia. Además, para los recursos que soportan diferentes tipos de modos de recurso de baja potencia, el procesador debe hacer una selección entre los modos alternativos de recursos de baja potencia basándose en las condiciones de funcionamiento actuales (por ejemplo, temperatura), abordando los ahorros de energía totales que se pueden lograr dentro del tiempo de inactividad esperado, los requisitos de latencia de clientes actuales y otros 50 procesadores, y varios otros factores. En varios aspectos, los ahorros de energía para un modo particular de recursos de baja potencia para un recurso particular puede depender de la temperatura y el tiempo, de tal manera que los ahorros de energía potenciales de cada modo de recurso de baja potencia evaluado se puede determinar multiplicando unos ahorros de energía potenciales por unidad de tiempo a una temperatura actual (que es un factor que puede incluirse en la definición de modo de baja potencia) por el tiempo de inactividad esperado determinado. 55 Además, la selección del modo de baja potencia también debe tener en cuenta otras variables, incluyendo las características particulares del dispositivo electrónico, la implementación del software del dispositivo, el tiempo esperado en la condición inactiva y el estado del dispositivo, como la velocidad del reloj, etc. [0038] As discussed above, when a resource is no longer in use and the processor is entering a state of inactivity, the resource can be placed in a low power mode, such as one of the low power resource modes of the resource However, just because a resource is no longer in use and the processor is entering a state of inactivity is not always a sufficient basis to place the resource in a low power mode. In addition, for resources that support different types of low power resource modes, the processor must make a selection among alternative modes of low power resources based on current operating conditions (e.g. temperature), addressing the savings of Total energy that can be achieved within the expected downtime, the latency requirements of current customers and 50 other processors, and several other factors. In several aspects, the energy savings for a particular mode of low power resources for a particular resource may depend on temperature and time, such that the potential energy savings of each mode of low power resource evaluated can be determine by multiplying potential energy savings per unit of time at a current temperature (which is a factor that can be included in the definition of low power mode) by the expected expected downtime. 55 In addition, the selection of the low power mode must also take into account other variables, including the particular characteristics of the electronic device, the implementation of the device software, the expected time in the inactive condition and the status of the device, such as the speed of the device. clock, etc.

[0039] Cuando el procesador está preparado para entrar en una configuración de baja potencia del sistema, tal 60 como cuando el procesador está preparado para entrar en un estado de inactividad, una tarea de baja potencia pueden acceder a la máscara LPM para identificar los recursos que se pueden colocar en un estado de baja potencia y determinar los modos de recurso de baja potencia apropiados para entrar en esos recursos basándose en un estado de sistema dinámico dado (por ejemplo, clientes activos actuales, latencia requerida, tiempo de inactividad esperado y temperatura). Para permitir que el procesador lleve a cabo esta determinación, cada recurso puede 65 definir datos de características de modo de recurso de baja potencia que especifican la información requerida para [0039] When the processor is ready to enter a low power configuration of the system, such as when the processor is ready to enter a state of inactivity, a low power task can access the LPM mask to identify resources which can be placed in a low power state and determine the appropriate low power resource modes to enter those resources based on a given dynamic system state (e.g., current active customers, required latency, expected downtime and temperature ). To allow the processor to perform this determination, each resource may define low power resource mode feature data that specifies the information required for

seleccionar un conjunto óptimo de modos de recurso de baja potencia que se implementarán para un estado dado. Esta información especificada puede incluir una lista de cada modo de recurso de baja potencia disponible para el recurso, ahorros de energía potenciales para cada modo de recurso de baja potencia en función del tiempo o por unidad de tiempo, características de latencia para cada modo de recurso de baja potencia (es decir, tiempo de salida del modo de baja potencia), efectos de temperatura en los ahorros de energía potenciales, dependencias (es decir, 5 interdependencias con otros recursos que no sean los clientes), y otra información que puede ser relevante para seleccionar un modo de recurso de baja potencia óptimo para cada recurso. Tal información puede ser especificada para un recurso en una variedad de formas y estructuras de datos, un ejemplo de código C del cual se enumera a continuación. select an optimal set of low power resource modes that will be implemented for a given state. This specified information may include a list of each low power resource mode available for the resource, potential energy savings for each low power resource mode as a function of time or unit of time, latency characteristics for each resource mode Low power (i.e. low power mode exit time), temperature effects on potential energy savings, dependencies (i.e. 5 interdependencies with resources other than customers), and other information that can be relevant to select an optimal low power resource mode for each resource. Such information can be specified for a resource in a variety of forms and data structures, an example of C code of which is listed below.

10  10

typedef struct typedef struct

{ {

/* El nombre de este recurso de baja potencia, por ejemplo, "voltaje de núcleo de aplicaciones". */ / * The name of this low power resource, for example, "application core voltage". * /

const char *resource_name; const char * resource_name;

/* El número de modos de baja potencia en lo que este recurso puede entrar. */ 15 / * The number of low power modes this resource can enter. */ fifteen

uint32_t mode_count; uint32_t mode_count;

/* La lista de modos de baja potencia en los que este recurso puede entrar. */ / * The list of low power modes in which this resource can enter. * /

LPM_Resource_Mode *modos; LPM_Resource_Mode * modes;

} LPM_Resource; } LPM_Resource;

20  twenty

[0040] En esta definición, la mayor parte de los datos de recursos está incluida dentro de las definiciones de los modos de baja potencia de recurso. Las definiciones de los modos de baja potencia para los recursos se pueden escribir en código C de la siguiente manera: [0040] In this definition, most of the resource data is included within the definitions of low resource power modes. Definitions of low power modes for resources can be written in C code as follows:

typedef uint32_t (*LPRM_PowerSavingsFcn) 25 typedef uint32_t (* LPRM_PowerSavingsFcn) 25

(uint32_t duration_us, int32_t temp_c); (uint32_t duration_us, int32_t temp_c);

typedef struct typedef struct

{ {

uint32_t enter; uint32_t enter;

uint32_t exit; 30 uint32_t exit; 30

} }

sleep_latency_type; sleep_latency_type;

typedef uint32_t (*sleep_power_func) (uint32_t duration_us, int32_t temp_c); typedef uint32_t (* sleep_power_func) (uint32_t duration_us, int32_t temp_c);

typedef struct LPRM typedef struct LPRM

{ 35 {35

/* El nombre de este modo de baja potencia (por ejemplo, "minimización"). */ / * The name of this low power mode (for example, "minimization"). * /

const char *mode_name; const char * mode_name;

/* Funciones que describen las características del modo. */ / * Functions that describe the characteristics of the mode. * /

LPRM_PowerSavingsFcn power_savings; LPRM_PowerSavingsFcn power_savings;

LPRM_LatencyFcn latency; 40 LPRM_LatencyFcn latency; 40

/* Funciones que implementan la configuración real y el desmontaje de un modo. */ / * Functions that implement the actual configuration and disassembly of a mode. * /

LPRM_EnterFcn enter; LPRM_EnterFcn enter;

LPRM_ExitFcn exit; LPRM_ExitFcn exit;

/* Los LRR que se habilitan en gran medida para que este modo ocurra. */ / * The LRRs that are largely enabled for this mode to occur. * /

uint32_t lpr_dependency_count; 45 uint32_t lpr_dependency_count; Four. Five

const char *lpr_dependencies; const char * lpr_dependencies;

/* Los LPR a los no se puede entrar si se selecciona este modo. */ / * LPRs cannot be entered if this mode is selected. * /

uint32_t lpr_exclusion_count; uint32_t lpr_exclusion_count;

const char *lpr_exclusions; const char * lpr_exclusions;

/* Algunos campos reservados de contabilidad después de inicializar este punto a 0. */ 50 / * Some reserved accounting fields after initializing this point to 0. * / 50

} }

LPM_Resource_Mode. LPM_Resource_Mode.

[0041] El código C anterior está escrito para el caso general. El código del ejemplo C para definir los modos de baja potencia para el caso específico de un recurso de carril de voltaje se presenta a continuación. A continuación se 55 muestra un ejemplo de las definiciones de código C para los modos de baja potencia de recurso de osciladores de cristal (CXO). En este ejemplo, el procesador soporta dos opciones para hacer funcionar el recurso de oscilador de cristal en modo de baja potencia: un modo cerrado que ahorra energía del árbol de reloj pero que todavía consume energía que hace funcionar el oscilador; y un modo de desactivación que ahorra la energía del árbol del reloj y la potencia del oscilador, pero requiere un tiempo de calentamiento significativo después de salir de este modo de baja 60 potencia (es decir, tiene una latencia relativamente larga). [0041] The above C code is written for the general case. The code in Example C to define low power modes for the specific case of a voltage rail resource is presented below. An example of the C code definitions for the low power crystal oscillator resource (CXO) modes is shown below. In this example, the processor supports two options for operating the crystal oscillator resource in low power mode: a closed mode that saves energy from the clock tree but still consumes energy that operates the oscillator; and a deactivation mode that saves clock tree energy and oscillator power, but requires a significant warm-up time after exiting this low power mode (ie, it has a relatively long latency).

const char *cxo_gated_deps [] = {"lpr: // cxo"}; const char * cxo_gated_deps [] = {"lpr: // cxo"};

LPM_Resource_Mode cxo_gated = LPM_Resource_Mode cxo_gated =

{ 65  {65

.mode_name = "gated"; /* lo que está bloqueado es en LPR */ .mode_name = "gated"; / * what is locked is in LPR * /

.power_savings = cxo_gated_power; /* basado en datos */ .power_savings = cxo_gated_power; / * based on data * /

.latency = cxo_gated_latency; /* basado en datos */ .latency = cxo_gated_latency; / * based on data * /

.enter = cxo_gated_enter; /* llama al controlador mpm */ .enter = cxo_gated_enter; / * call the mpm controller * /

.exit = cxo_gated_exit; /* llama a la limpieza del controlador mpm */ 5 .exit = cxo_gated_exit; / * call the cleaning of the mpm controller * / 5

LPRM _DEPENDENCY_ARRAY (cxo_gated_deps); LPRM _DEPENDENCY_ARRAY (cxo_gated_deps);

LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */  LPRM_EMPTY_ARRAY (); / * without exclusions in this mode * /

} }

const char *cxo_stdn_deps [] = {"lpr://cxo"}; const char * cxo_stdn_deps [] = {"lpr: // cxo"};

LPM_Resource_Mode cxo_shutdown = 10 LPM_Resource_Mode cxo_shutdown = 10

{  {

.mode_name = "shutdown"; .mode_name = "shutdown";

.power_savings = cxo_stdn_power; /* basado en datos */ .power_savings = cxo_stdn_power; / * based on data * /

.latency = cxo_stdn_latency; /* basado en datos */ .latency = cxo_stdn_latency; / * based on data * /

.enter = cxo_stdn_enter; /* llamada mpm diferente */ 15 .enter = cxo_stdn_enter; / * different mpm call * / 15

.exit = cxo_stdn_exit; /* llamada de limpieza de mpm */ .exit = cxo_stdn_exit; / * mpm cleaning call * /

LPRM_DEPENDENCY_ARRAY (cxo_stdn_deps); /* igual que cerrado */ LPRM_DEPENDENCY_ARRAY (cxo_stdn_deps); / * same as closed * /

LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */  LPRM_EMPTY_ARRAY (); / * without exclusions in this mode * /

}  }

LPM_Resource_Mode *cxo_modes [] = {&cxo_gated, &cxo_shutdown}; 20 LPM_Resource_Mode * cxo_modes [] = {& cxo_gated, &cxo_shutdown}; twenty

LPM_Resource cxo = LPM_Resource cxo =

{  {

.resource_name = "CXO"; .resource_name = "CXO";

LPM_MODE_ARRAY (cxo_modes); LPM_MODE_ARRAY (cxo_modes);

}; 25  }; 25

// En la puesta en funcionamiento: // On commissioning:

sleep_define_lpr (& cxo); sleep_define_lpr (&cxo);

// Los modos CXO ahora están registrados con /sleep/lpr y puesta en funcionamiento deshabilitados. // CXO modes are now registered with / sleep / lpr and commissioning disabled.

// A continuación, cómo un nodo NPA de control puede habilitarlos. // Next, how an NPA control node can enable them.

// Puesta en funcionamiento: 30 // Commissioning: 30

client = npa_create_sync_client ("/sleep/ lpr", "/xo/cxo", client = npa_create_sync_client ("/ sleep / lpr", "/ xo / cxo",

NPA_CLIENT_REQUIRED); NPA_CLIENT_REQUIRED);

npa_query_type q; npa_query_type q;

q.reference = "lpr: //cxo"; q.reference = "lpr: // cxo";

npa_query_by_client (client, SLEEP_QUERY_LPRM_BITMASK, &q); 35 npa_query_by_client (client, SLEEP_QUERY_LPRM_BITMASK, &q); 35

uint32 bitmask = q.value; uint32 bitmask = q.value;

// Habilitar: // Enable:

npa_issue_required_request (client, bitmask) npa_issue_required_request (client, bitmask)

// Deshabilitar: // To disable:

npa_complete_request (client) 40 npa_complete_request (client) 40

[0042] Hay que señalar que la parte del código de ejemplo relacionado con el control de un nodo de arquitectura de potencia de nodo (NPA) y otras referencias a un nodo de NPA o procedimientos NPA en presente documento son solo para fines ilustrativos. Los diversos aspectos no se limitan a realizar la habilitación y deshabilitación de recursos a través de un nodo NPA o utilizando una arquitectura de potencia de nodo. Por lo tanto, el alcance de las 45 reivindicaciones no debe interpretarse que requiere un nodo NPA o un proceso NPA a menos que específicamente se diga en las reivindicaciones. [0042] It should be noted that the part of the sample code related to the control of a node power architecture (NPA) node and other references to an NPA node or NPA procedures herein are for illustrative purposes only. The various aspects are not limited to enabling and disabling resources through an NPA node or using a node power architecture. Therefore, the scope of the claims should not be construed as requiring an NPA node or an NPA process unless specifically stated in the claims.

[0043] Otro ejemplo de código C apropiado para definir los modos de baja potencia para fuentes de voltaje (VDD) se presenta a continuación. En este ejemplo, el procesador tiene dos carriles de voltaje de nivel de sistema que 50 suministran Vdd que son controlados para los circuitos lógicos digitales y de memoria, denominados en el código como "dig" y "mem". Colocar los carriles de voltaje en modo de baja potencia requiere una penalización de latencia asociada con la nueva puesta en línea del recurso al salir del modo de baja potencia. El control de estos dos carriles de voltaje está acoplado porque si se coloca un carril de voltaje en un modo de baja potencia, el otro carril de voltaje también se puede colocar en un modo de baja potencia sin incurrir en una penalización de latencia adicional ya que 55 los dos recursos pueden "calentarse" en paralelo. Para manejar esta interdependencia, el siguiente código define tres modos de baja potencia para un único recurso "system Vdds", a saber: minimización de dig y mem; minimización de mem-only; y la minimización de dig-only. [0043] Another example of C code suitable for defining low power modes for voltage sources (VDD) is presented below. In this example, the processor has two system level voltage rails that supply Vdd that are controlled for the digital and memory logic circuits, referred to in the code as "dig" and "mem". Placing the voltage lanes in low power mode requires a latency penalty associated with the new online bringing of the resource when exiting the low power mode. The control of these two voltage lanes is coupled because if a voltage lane is placed in a low power mode, the other voltage lane can also be placed in a low power mode without incurring an additional latency penalty since 55 the two resources can be "heated" in parallel. To handle this interdependence, the following code defines three low power modes for a single "system Vdds" resource, namely: minimization of dig and mem; mem-only minimization; and the minimization of dig-only.

const char *dig_mem_deps [] = {"lpr://vdd_dig", "lpr://vdd_mem"}; 60 const char * dig_mem_deps [] = {"lpr: // vdd_dig", "lpr: // vdd_mem"}; 60

LPM_Resource_Mode dig_mem = LPM_Resource_Mode dig_mem =

{ {

.mode_name = "Dig/Mem Min"; .mode_name = "Dig / Mem Min";

.power_savings = dig_mem_power; .power_savings = dig_mem_power;

.latency = dig_mem_latency; /* esto es aproximadamente equivalente a dig_latency o 65 .latency = dig_mem_latency; / * this is approximately equivalent to dig_latency or 65

mem_latency-ellos podrían compartir este */ mem_latency-they could share this * /

.enter = dig_mem_enter; /* llama al controlador mpm */ .enter = dig_mem_enter; / * call the mpm controller * /

.exit = dig_mem_exit; /* llama a la limpieza del controlador mpm */ .exit = dig_mem_exit; / * call the cleaning of the mpm controller * /

LPRM_DEPENDENCY_ARRAY (dig_mem_deps); LPRM_DEPENDENCY_ARRAY (dig_mem_deps);

LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */ LPRM_EMPTY_ARRAY (); / * without exclusions in this mode * /

const char *mem_deps[] = {"lpr://vdd_mem"}; LPM_Resource_Mode mem_min 5 const char * mem_deps [] = {"lpr: // vdd_mem"}; LPM_Resource_Mode mem_min 5

{ {

.mode_name = "Mem Min"; .mode_name = "Mem Min";

.power_savings = mem_power; .power_savings = mem_power;

.latency = mem_latency; .latency = mem_latency;

.enter = mem_enter; /* llama al controlador mpm */ 10 .enter = mem_enter; / * call the mpm controller * / 10

.exit = mem_exit; /* llama a la limpieza del controlador mpm */ .exit = mem_exit; / * call the cleaning of the mpm controller * /

LPRM_DEPENDENCY_ARRAY (mem_deps); LPRM_DEPENDENCY_ARRAY (mem_deps);

LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */ LPRM_EMPTY_ARRAY (); / * without exclusions in this mode * /

} }

const char *dig_deps [] = {"lpr://vdd_dig"}; LPM_Resource_Mode dig_min = 15 const char * dig_deps [] = {"lpr: // vdd_dig"}; LPM_Resource_Mode dig_min = 15

{ {

.mode_name = "Dig Min"; .mode_name = "Dig Min";

.power_savings = dig_power; .power_savings = dig_power;

.latency = dig_latency; .latency = dig_latency;

.enter = dig_enter; /* llama al controlador mpm */ 20 .enter = dig_enter; / * call the mpm controller * / 20

.exit = dig_exit; /* llama a la limpieza del controlador mpm */ .exit = dig_exit; / * call the cleaning of the mpm controller * /

LPRM_DEPENDENCY_ARRAY (dig_deps); LPRM_DEPENDENCY_ARRAY (dig_deps);

LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */ LPRM_EMPTY_ARRAY (); / * without exclusions in this mode * /

} }

LPM_Resource_Mode *sys_vdds_modes[] = {mem_dig, mem_min, dig_min}; 25 LPM_Resource_Mode * sys_vdds_modes [] = {mem_dig, mem_min, dig_min}; 25

LPM_Resource sys_vdds = LPM_Resource sys_vdds =

{ {

.resource_name = "System Vdds"; .resource_name = "System Vdds";

LPM_MODE_ARRAY (sys_vdds_modes); 30 LPM_MODE_ARRAY (sys_vdds_modes); 30

}; };

// En la puesta en funcionamiento: // On commissioning:

sleep_define_lpr (&sys_vdds); sleep_define_lpr (&sys_vdds);

// Los modos ahora están registrados con /sleep/lpr y puesta en funcionamiento deshabilitados. // The modes are now registered with / sleep / lpr and commissioning disabled.

// A continuación, cómo un nodo NPA de control puede habilitarlos. 35 // Next, how an NPA control node can enable them. 35

// Puesta en funcionamiento: // Set up:

dig_client = npa_create_sync_client ("/sleep/lpr", "/rail/vdd_dig", dig_client = npa_create_sync_client ("/ sleep / lpr", "/ rail / vdd_dig",

NPA_CLIENT_REQUIRED); NPA_CLIENT_REQUIRED);

mem_client = npa_create_sync_client ("/sleep/lpr", "/rail/vdd_mem", mem_client = npa_create_sync_client ("/ sleep / lpr", "/ rail / vdd_mem",

NPA_CLIENT_REQUIRED); 40 NPA_CLIENT_REQUIRED); 40

npa_query_type q; npa_query_type q;

q.reference = "lpr: // vdd_dig"; q.reference = "lpr: // vdd_dig";

npa_query_by_client (dig_client, SLEEP_QUERY_LPRM_BITMASK, & q); npa_query_by_client (dig_client, SLEEP_QUERY_LPRM_BITMASK, &q);

uint32 dig_bitmask = q.value; uint32 dig_bitmask = q.value;

q.reference = "lpr: // vdd_mem"; 45 q.reference = "lpr: // vdd_mem"; Four. Five

npa_query_by_client (mem_client, SLEEP_QUERY_LPRM_BITMASK, & q); npa_query_by_client (mem_client, SLEEP_QUERY_LPRM_BITMASK, &q);

uint32 mem_bitmask = q.value; uint32 mem_bitmask = q.value;

npa_issue_required_request (mem_client, mem_bitmask); npa_issue_required_request (mem_client, mem_bitmask);

// Solo el modo "Mem Min" habilitado ahora // Only "Mem Min" mode enabled now

npa_issue_required_request (dig_client, dig_bitmask); 50 npa_issue_required_request (dig_client, dig_bitmask); fifty

// Todos los tres modos habilitados ahora // All three modes enabled now

npa_complete_request (mem_client) npa_complete_request (mem_client)

// Solo el modo "Dig Min" habilitado ahora // Only "Dig Min" mode enabled now

npa_complete_request (dig_client) npa_complete_request (dig_client)

// Volver a ningún modo habilitado 55 // Return to no mode enabled 55

[0044] El mecanismo de registro de recurso de baja potencia dinámico descrito e ilustrado anteriormente permite que el conjunto de recursos y modos de baja potencia se extienda de forma dinámica. Esta capacidad incluye proporcionar "modos virtuales de baja potencia", que son estados de funcionamiento de baja potencia que no son para recursos, pero si se manejan de manera similar, pueden permitir funcionamientos de potencia reducidas. Un 60 ejemplo de tales modos virtuales de baja potencia incluye suspender los procesos de actualización de visualización cuando el procesador entra en un estado de inactividad puesto que no se generará ningún contenido nuevo que requiera una actualización. Por lo tanto, otras operaciones y componentes de dispositivos pueden gestionarse utilizando los diversos aspectos para permitir un consumo de energía reducido aunque los componentes no sean recursos per se. 65 [0044] The low dynamic power resource registration mechanism described and illustrated above allows the set of low power resources and modes to be dynamically extended. This capability includes providing "low power virtual modes", which are low power operating states that are not for resources, but if handled in a similar manner, may allow reduced power operations. An example of such low power virtual modes includes suspending display update processes when the processor enters an idle state since no new content will be generated that requires an update. Therefore, other operations and device components can be managed using the various aspects to allow reduced energy consumption even if the components are not resources per se. 65

[0045] En los diversos aspectos, cuando un procesador es capaz de entrar en un estado de inactividad, una tarea de baja potencia puede ejecutar un proceso de "solucionador" para determinar a qué modos de baja potencia para los diversos recursos debe entrarse como parte de una configuración de baja potencia del sistema para un determinado ciclo de reposo. En tales casos, tal vez sea necesario recopilar los modos de baja potencia y las características de esos modos de baja potencia para los diferentes recursos para ser utilizados por una tarea de reposo para ser 5 evaluados cuando sea hora de entrar en el estado de inactividad. En un aspecto, esto puede implementarse en una arquitectura de potencia de nodo (NPA) a través de un nodo NPA "/sleep/lpr". Las solicitudes de "/sleep/lpr" pueden hacerse en forma de máscaras de bits que permiten modos de recurso de baja potencia. En varios aspectos, los desarrolladores pueden registrar un modo de recurso de baja potencia a través de una función sleep_define_lpr() que alista el modo de recurso de baja potencia (y sus máscaras de bits de recurso de baja potencia) con el nodo 10 NPA "/sleep/lpr". En varios aspectos, el nodo NPA "/sleep/lpr" puede ser consultado en cualquier momento para la máscara de bits que representa los modos de recurso de baja potencia de recurso que están interesados en habilitar/deshabilitar. Los recursos NPA también pueden solicitar que sus modos de recurso de baja potencia de recurso sean habilitados en el tiempo de inactividad haciendo una solicitud en "/sleep/lpr" con la máscara de bits correcta. El solucionador de reposo puede entonces consultar "/sleep/lpr" en el tiempo de inactividad para la lista de 15 modos de recurso de baja potencia y la máscara cuáles están habilitados actualmente. [0045] In the various aspects, when a processor is able to enter a state of inactivity, a low power task may execute a "solver" process to determine at which low power modes for the various resources it should be entered as part of a low power system configuration for a given idle cycle. In such cases, it may be necessary to collect the low power modes and the characteristics of those low power modes for the different resources to be used by a rest task to be evaluated when it is time to enter the idle state. In one aspect, this can be implemented in a node power architecture (NPA) through an NPA node "/ sleep / lpr". Requests for "/ sleep / lpr" can be made in the form of bit masks that allow low power resource modes. In several ways, developers can register a low power resource mode through a sleep_define_lpr () function that lists the low power resource mode (and its low power resource bit masks) with node 10 NPA " / sleep / lpr ". In several respects, the NPA node "/ sleep / lpr" can be consulted at any time for the bitmask that represents the low resource power resource modes that are interested in enabling / disabling. NPA resources can also request that their low resource power resource modes be enabled at idle time by making a request in "/ sleep / lpr" with the correct bit mask. The standby solver can then query "/ sleep / lpr" at idle time for the list of 15 low power resource modes and the mask which are currently enabled.

[0046] Como se ha analizado anteriormente, en los diversos aspectos, cuando un procesador es capaz de entrar en un estado de inactividad, una tarea de baja potencia puede ejecutar un proceso de "solucionador" para determinar a qué modos de recurso de baja potencia para los diversos recursos se debería entrar. Un ejemplo de esto se ilustra 20 en la FIG. 1 que ilustra cómo un proceso (es decir, nodo) dentro de una arquitectura de potencia de nodo (NPA) 2 determina para un recurso, tal como un oscilador de cristal 4, en cuál de los dos modos de baja potencia disponibles 6, 8 puede entrarse. En el ejemplo ilustrado en la FIG. 1, el recurso de oscilador de cristal 4 tiene dos modos alternativos de baja potencia, a saber, un estado de funcionamiento cerrado 6 y una parada completa 8. Seleccionar un conjunto óptimo de modos de baja potencia para cada uno de los diversos recursos necesarios para ser 25 colocados en un modo de baja potencia implica seleccionar uno de los modos disponibles para cada uno de los recursos necesarios. En un aspecto, se puede entrar en cada uno de los modos de recurso de baja potencia seleccionados llamando a una función "entrar" del modo de recurso de baja potencia. Una vez que se llama a la función de entrada del modo de recurso de baja potencia, el recurso puede colocarse en un estado de ahorros de energía definido por su modo de recurso de baja potencia seleccionado. Mientras el procesador está inactivo, el 30 procesador puede realizar un proceso de espera para interrupción (WFI) y/o un proceso de inactividad. El procesador y los recursos seleccionados pueden permanecer en este estado hasta que se produzca un evento de activación. Cuando se produce un evento de activación, para cada recurso seleccionado, se puede llamar a una función de "salida" asociada para devolver el recurso al estado de funcionamiento deseado (por ejemplo, un estado de alimentación normal o completo). 35 [0046] As discussed above, in the various aspects, when a processor is able to enter a state of inactivity, a low power task may execute a "solver" process to determine at which low power resource modes. for the various resources you should enter. An example of this is illustrated in FIG. 1 illustrating how a process (i.e. node) within a node power architecture (NPA) 2 determines for a resource, such as a crystal oscillator 4, in which of the two available low power modes 6, 8 It can be entered. In the example illustrated in FIG. 1, the crystal oscillator resource 4 has two alternative low power modes, namely a closed operating state 6 and a complete stop 8. Select an optimal set of low power modes for each of the various resources necessary for Being placed in a low power mode implies selecting one of the modes available for each of the necessary resources. In one aspect, each of the selected low power resource modes can be entered by calling a "enter" function of the low power resource mode. Once the low power resource mode input function is called, the resource can be placed in a state of energy savings defined by its selected low power resource mode. While the processor is idle, the processor can perform an interrupt wait process (WFI) and / or an inactivity process. The selected processor and resources can remain in this state until an activation event occurs. When an activation event occurs, for each selected resource, an associated "output" function can be called to return the resource to the desired operating state (for example, a normal or full power state). 35

[0047] Los procesos para implementar los diversos aspectos se ilustran en las FIGs. 2-4. Con referencia a la FIG. 2, en el procedimiento de aspecto 10, cuando un recurso ya no está en uso porque un cliente ha liberado el recurso en el bloque 12, el indicador de modo de recurso de baja potencia puede habilitarse en la máscara LPM en el bloque 14, por ejemplo implementando un funcionamiento como se ilustra en los ejemplos enumerados anteriormente. En 40 este punto, el recurso ha indicado que está disponible para ser colocado en un modo de recurso de baja potencia. Cuando se produce un evento de activación y un cliente solicita acceso a un recurso, el procedimiento 16 ilustrado en la FIG. 3 puede implementarse. Cuando un cliente solicita un recurso en el bloque 18, el indicador de modo de recurso de baja potencia para el recurso puede ser deshabilitado en la máscara LPM en el bloque 20, tal como implementando un funcionamiento como se ilustra en los ejemplos enumerados anteriormente. En el bloque 22, el 45 recurso puede entonces activarse tal como realizando una función de "salida" asociada como se ha mencionado anteriormente. [0047] The processes for implementing the various aspects are illustrated in FIGs. 2-4. With reference to FIG. 2, in the aspect procedure 10, when a resource is no longer in use because a client has released the resource in block 12, the low power resource mode indicator can be enabled in the LPM mask in block 14, by example implementing an operation as illustrated in the examples listed above. At this point, the resource has indicated that it is available to be placed in a low power resource mode. When an activation event occurs and a client requests access to a resource, the procedure 16 illustrated in FIG. 3 can be implemented. When a client requests a resource in block 18, the low power resource mode indicator for the resource may be disabled in the LPM mask in block 20, such as by implementing an operation as illustrated in the examples listed above. In block 22, the resource can then be activated such as performing an associated "exit" function as mentioned above.

[0048] La FIG. 4 ilustra un procedimiento de aspecto 24 mediante el cual un procesador puede identificar una configuración óptima de baja potencia del sistema (es decir, un conjunto óptimo de modos de recurso de baja 50 potencia) para implementar en un estado de inactividad y/o baja potencia particular. Cuando se inicia una tarea de inactividad y/o reposo para colocar un procesador en un estado de baja potencia en el bloque 26, el procesador puede identificar aquellos recursos que se pueden colocar en un modo de recurso de baja potencia comprobando la máscara de recursos de baja potencia para indicadores de modo de recurso de baja potencia de recurso. En el bloque 28, el procesador puede comprobar las máscaras LPM para indicadores de modo de recurso de baja 55 potencia para identificar los recursos que se pueden colocar en un modo de recurso de baja potencia. En el bloque 30, el procesador puede comprobar los requisitos de latencia de clientes activos, tareas o subsistemas que se ejecutan en el sistema. Por ejemplo, el procesador puede acceder a una estructura de datos definida para un cliente y utilizar esa información para determinar un presupuesto de latencia. El presupuesto de latencia puede definir la latencia total que el sistema puede contener durante una activación desde un estado de baja potencia del sistema. 60 [0048] FIG. 4 illustrates an aspect procedure 24 by which a processor can identify an optimal low power configuration of the system (ie, an optimal set of low power 50 resource modes) to implement in a state of inactivity and / or low power particular. When an idle and / or idle task is initiated to place a processor in a low power state in block 26, the processor can identify those resources that can be placed in a low power resource mode by checking the resource mask of low power for resource mode indicators of low resource power. In block 28, the processor can check the LPM masks for low power resource mode indicators to identify the resources that can be placed in a low power resource mode. In block 30, the processor can check the latency requirements of active clients, tasks or subsystems that are executed in the system. For example, the processor can access a defined data structure for a customer and use that information to determine a latency budget. The latency budget can define the total latency that the system may contain during an activation from a state of low system power. 60

[0049] En un aspecto, el presupuesto de latencia puede definirse como el mínimo de todas las latencias aceptables para todos los clientes y procesadores concurrentes, o la latencia de peor caso, o la latencia más estricta. Por ejemplo, puede ser necesario que un recurso de USB conectado a un dispositivo principal responda antes de 1 milisegundo cuando el dispositivo principal inicie una comunicación con el USB. En este ejemplo, el requisito de 65 latencia del dispositivo principal es 1 milisegundo. Por lo tanto, cuando el sistema está inactivo, el procesador tal vez [0049] In one aspect, the latency budget can be defined as the minimum of all acceptable latencies for all concurrent clients and processors, or the worst case latency, or the strictest latency. For example, it may be necessary for a USB resource connected to a main device to respond within 1 millisecond when the main device initiates a communication with the USB. In this example, the requirement of 65 latency of the main device is 1 millisecond. Therefore, when the system is idle, the processor may

no pueda desactivar los recursos, o cualquier combinación de recursos, que requieran más de un milisegundo para activarse de nuevo. Esto se debe a que, en cualquier momento dado, el dispositivo principal puede emitir una interrupción para volver a activar el sistema, requiriendo que los recursos vuelvan a un estado de funcionamiento capaz de manejar la tarea solicitada. Es decir, el sistema se limita a implementar modos de recurso de baja potencia que no requieran, en conjunto, más de 1 milisegundo para salir cuando el dispositivo principal emite una 5 interrupción. Si, en algún momento futuro, el USB se desconecta del dispositivo principal, el tiempo de respuesta de 1 milisegundo ya no es necesario porque USB ya no es una tarea que se esté realizando. En esta circunstancia, la latencia de peor caso podría cambiar a algún otro valor (por ejemplo, 5 milisegundos) porque puede haber alguna otra tarea que se haya estado ejecutando todo el tiempo con un mayor requisito de latencia. Por lo tanto, en los diversos aspectos, los requisitos de latencia pueden ser una propiedad dinámica dependiendo del estado del 10 sistema que se pueda evaluar en ese momento, de modo que se pueda determinar una configuración de modo de baja potencia del sistema basándose en los requisitos del estado de funcionamiento actual. Además, los modos de recurso de baja potencia pueden tener sus propios requisitos de latencia, así como latencias interdependientes. Por lo tanto, en ciertas situaciones, no se puede entrar en todos los modos de recurso de baja potencia disponibles para entrar. Esto se debe a que la entrada en ciertos modos de recurso de baja potencia puede dar como resultado una 15 latencia total del sistema que viola los requisitos de latencia de peor caso del estado de funcionamiento actual. You cannot deactivate resources, or any combination of resources, that require more than one millisecond to activate again. This is because, at any given time, the main device may issue an interruption to reactivate the system, requiring that the resources return to a functioning state capable of handling the requested task. That is, the system is limited to implementing low power resource modes that do not require, together, more than 1 millisecond to exit when the main device emits an interruption. If, at some future time, the USB is disconnected from the main device, the response time of 1 millisecond is no longer necessary because USB is no longer a task that is being performed. In this circumstance, the worst case latency could change to some other value (for example, 5 milliseconds) because there may be some other task that has been running all the time with a higher latency requirement. Therefore, in the various aspects, the latency requirements can be a dynamic property depending on the state of the system that can be evaluated at that time, so that a low power mode configuration of the system can be determined based on the Current operating status requirements. In addition, low power resource modes can have their own latency requirements, as well as interdependent latencies. Therefore, in certain situations, you cannot enter all available low power resource modes to enter. This is because the entry into certain low power resource modes can result in a total system latency that violates the worst case latency requirements of the current operating state.

[0050] Volviendo a la FIG. 4, en el bloque 32, el procesador puede comprobar los datos de definición de recursos para los tiempos de latencia de entrada de inactividad del modo y salida de inactividad para los diversos modos de recurso de baja potencia. En el bloque 34, el procesador puede determinar el tiempo de inactividad esperado (es 20 decir, la duración en la que se espera que el procesador permanezca en el estado de inactividad antes de un evento de activación dadas las condiciones y el estado de funcionamiento actuales). En el bloque 36, el procesador puede determinar las condiciones del estado actual, tales como el acceso a un registro de datos que almacena la temperatura actual y otros valores del sensor. Utilizando el estado actual y los datos de modo de recurso de baja potencia recopilados en los bloques 28-36, el procesador puede ejecutar una función de "solucionador" para 25 identificar una configuración óptima de baja potencia en el bloque 38. La función de solucionador puede utilizar una serie de aproximaciones diferentes para equilibrar las diversas consideraciones necesarias para identificar una configuración óptima de baja potencia aceptable, algunos ejemplos de los cuales se describen a continuación haciendo referencia a la FIG. 7-10. Como parte de uno o más de los bloques 28-38, el procesador puede calcular los ahorros de energía potenciales que pueden esperarse para cada modo de recurso de baja potencia y cada 30 combinación de modos de recurso de baja potencia, tal como calculando los ahorros de energía por unidad de tiempo potenciales en una temperatura actual (y otras condiciones de funcionamiento) multiplicados por el tiempo de inactividad esperado, y utilizar este valor como parte del proceso de solucionador en el bloque 38. Una vez que se ha identificado una configuración óptima de baja potencia, se seleccionan uno o más modos de recurso de baja potencia para cada recurso, tarea y/o subsistema, el procesador puede entrar en esa configuración de baja potencia 35 en el bloque 40, haciendo que cada modo de recurso de baja potencia seleccionado ejecute una función de entrada asociada. El sistema permanecerá en este estado de inactividad y/o estado de baja potencia hasta que se produzca un evento de activación, tal como una interrupción del temporizador. Cuando se produzca un evento de activación o una interrupción, el procesador y los recursos asociados saldrán del estado de inactividad en el bloque 42, tal como ejecutando una serie de funciones de salida para cada uno de los recursos en modos de recurso de baja potencia 40 que devuelven dichos recursos a su estado de funcionamiento normal. [0050] Returning to FIG. 4, in block 32, the processor can check the resource definition data for the idle input latency times of the mode and inactivity output for the various low power resource modes. In block 34, the processor can determine the expected downtime (that is, the duration in which the processor is expected to remain in the idle state before an activation event given the current conditions and operating status ). In block 36, the processor can determine the conditions of the current state, such as access to a data record that stores the current temperature and other sensor values. Using the current status and low power resource mode data collected in blocks 28-36, the processor can execute a "solver" function to identify an optimal low power configuration in block 38. The solver function You can use a number of different approaches to balance the various considerations necessary to identify an optimal acceptable low power configuration, some examples of which are described below with reference to FIG. 7-10. As part of one or more of blocks 28-38, the processor can calculate the potential energy savings that can be expected for each low power resource mode and every 30 combination of low power resource modes, such as calculating the savings of potential energy per unit of time at a current temperature (and other operating conditions) multiplied by the expected downtime, and use this value as part of the solver process in block 38. Once an optimal configuration has been identified low power, one or more low power resource modes are selected for each resource, task and / or subsystem, the processor can enter that low power configuration 35 in block 40, making each low power resource mode selected execute an associated input function. The system will remain in this idle state and / or low power state until an activation event occurs, such as a timer interrupt. When an activation or interruption event occurs, the processor and associated resources will exit the idle state in block 42, such as executing a series of output functions for each of the resources in low power resource modes 40 that return these resources to their normal operating state.

[0051] En los diversos aspectos, puede haber un evento de activación conocido que está asociado con el sub-sistema de temporizador que se conoce directamente en el bloque 42. Los diversos aspectos también pueden incluir un recurso de activación que permite a los clientes "sugerir" que creen que se producirá un evento de activación 45 dentro de un cierto tiempo. En varios aspectos, el sistema puede incluir mecanismos que predicen y/o controlan cuánto tiempo los recursos y/o procesadores pueden permanecer en un estado de reposo dado. En estos aspectos, el procesador puede posponer ciertos eventos para controlar cuánto tiempo los recursos pueden esperar estar en reposo. En varios aspectos, puede haber un punto de activación rígida en el que los recursos se vean obligados a activarse. En varios aspectos, el sistema puede usar las "sugerencias" de los recursos para determinar un período 50 de tiempo de activación esperado. Los diversos aspectos pueden implementar algoritmos predictivos que pueden ser utilizados por el procesador para estimar el tiempo de activación más eficiente. Los diversos aspectos pueden utilizar una combinación de un límite rígido, sugerencias y mecanismos de aprendizaje para determinar el tiempo de activación esperado. Los diversos aspectos pueden usar el tiempo de activación esperado para determinar cuánta energía se ahorraría si los diversos recursos se colocan en modos de recurso de baja potencia hasta el tiempo de 55 activación esperado determinado. Dichos ahorros de energía esperados pueden utilizarse a continuación en el proceso de selección de recursos particulares para colocar en un modo de baja potencia (es decir, seleccionar modos de recurso de baja potencia) para implementar en una configuración de modo de baja potencia del sistema para un ciclo de reposo inminente. [0051] In the various aspects, there may be a known activation event that is associated with the timer sub-system that is known directly in block 42. The various aspects may also include an activation resource that allows customers to " suggest "that they believe an activation event will occur within a certain time. In several aspects, the system may include mechanisms that predict and / or control how long the resources and / or processors can remain in a given state of rest. In these aspects, the processor can postpone certain events to control how long the resources can wait to be at rest. In several respects, there may be a rigid activation point where resources are forced to activate. In several respects, the system can use the "suggestions" of the resources to determine an expected activation time period 50. The various aspects can implement predictive algorithms that can be used by the processor to estimate the most efficient activation time. The various aspects can use a combination of a rigid limit, suggestions and learning mechanisms to determine the expected activation time. The various aspects can use the expected activation time to determine how much energy would be saved if the various resources are placed in low power resource modes up to the determined expected activation time. Such expected energy savings can then be used in the process of selecting particular resources to place in a low power mode (i.e. select low power resource modes) to implement in a low power mode configuration of the system to an impending rest cycle.

60  60

[0052] Los diversos aspectos pueden utilizar tanto la suma de los ahorros de energía como el costo de la energía de sacar los recursos y volver a ponerlos en funcionamiento para determinar una función de potencia. Los diversos aspectos pueden utilizar la función de potencia para determinar qué recursos, si los hay, deben colocarse en un modo de recurso de baja potencia. Los diversos aspectos también pueden utilizar la función de potencia para determinar los ahorros de energía netos asociados con cada una de las potenciales configuraciones de baja 65 potencia del sistema proporcionadas por diversas combinaciones de modos de recurso de baja potencia [0052] The various aspects can use both the sum of energy savings and the cost of energy to extract resources and put them back into operation to determine a power function. The various aspects can use the power function to determine which resources, if any, should be placed in a low power resource mode. The various aspects can also use the power function to determine the net energy savings associated with each of the potential low power configurations of the system provided by various combinations of low power resource modes.

implementados. Los diferentes aspectos pueden calcular los ahorros netos de energía como la cantidad de energía ahorrada durante un período de tiempo calculado, compensada por la cantidad de trabajo requerido para colocar los diversos recursos en un modo de recurso de baja potencia y devolverlos a un modo de funcionamiento. En varios aspectos, los ahorros netos de potencia pueden calcularse mediante una función que utiliza un módulo polinomial lineal simple, que tiene un tiempo de inactividad X esperado con una pendiente M y un desplazamiento B, en el que 5 los ahorros de energía de cálculo son MX + B. Los diferentes aspectos pueden calcular los ahorros netos de energía periódicamente basándose en valores almacenados en parámetros configurables del sistema. implemented Different aspects can calculate net energy savings as the amount of energy saved over a calculated period of time, offset by the amount of work required to place the various resources in a low power resource mode and return them to an operating mode . In several aspects, the net power savings can be calculated using a function that uses a simple linear polynomial module, which has an expected downtime X with a slope M and a displacement B, in which the calculation energy savings are MX + B. Different aspects can calculate net energy savings periodically based on values stored in configurable system parameters.

[0053] En varios aspectos, los ahorros de energía netos pueden ser tabulados para cada recurso. Es decir, los diversos aspectos pueden pre-calcular una tabla que contiene los diversos ahorros de energía netos asociados con 10 cada uno de los modos de recurso de baja potencia disponibles. Los diversos aspectos también pueden generar una lista tabulada al vuelo, de forma continua o periódica, de acuerdo con valores almacenados en parámetros de sistema configurables. En varios aspectos, los límites entre las decisiones se pueden almacenar en una tabla y consultarse cuando se hace una determinación de qué potencial configuración de baja potencia del sistema se adapta mejor a las necesidades actuales del sistema y al estado de funcionamiento. Por ejemplo, el sistema puede 15 almacenar información que indica un número de configuraciones de baja potencia preferidas basadas en el tiempo (por ejemplo, preferencia para el modo A hasta el tiempo X, preferencia para el modo B hasta el tiempo Y, preferencia para los modos A y B). [0053] In several respects, net energy savings can be tabulated for each resource. That is, the various aspects can pre-calculate a table containing the various net energy savings associated with each of the available low power resource modes. The various aspects can also generate a tabulated list on the fly, continuously or periodically, according to values stored in configurable system parameters. In several respects, the boundaries between decisions can be stored in a table and consulted when a determination is made of what potential low power configuration of the system is best suited to the current needs of the system and the operating status. For example, the system may store information indicating a number of preferred low power configurations based on time (e.g., preference for mode A to time X, preference for mode B to time Y, preference for modes A and B).

[0054] En los diversos aspectos, los indicadores LPM no se restringen a regular un recurso explícitamente, porque el 20 proceso de comprobación de dependencias puede llevarse hasta el nivel en el que se seleccionan los modos de recurso de baja potencia para definir una configuración de modo de baja potencia óptimo del sistema. Por ejemplo, suponga que el recurso "A" tiene dos modos de recurso de baja potencia "1" y "2". Puesto que ambos modos "1" y "2" son del mismo recurso, pueden compartir un bit de máscara LPM común que indica que el recurso puede ponerse en un modo de recurso de baja potencia. Por lo tanto, en este ejemplo los modos "1" y "2" dependen del bit 25 "A" dentro de la máscara LPM, y el bit "A" es controlado por el controlador de recursos NPA para el recurso. Sin embargo, puede haber una complicación adicional en que el modo "2" podría ser una forma especializada de modo "1" que tiene una dependencia de que el recurso "A" pueda pasar a estar en reposo (es decir, no ser utilizado por ningún cliente o procesador) y el recurso "B" pueda también pasar a estar en reposo. En otras palabras, el modo de recurso de baja potencia "2" del recurso "A" puede depender de que el recurso "B" también se ponga en un modo de 30 baja potencia. Por lo tanto, en este ejemplo, el modo "2" dependerá de los bits de máscara LPM de ambos recursos "A" y "B". Por lo tanto, en este ejemplo, los indicadores LPM no regulan explícitamente el recurso debido a la dependencia del modo "2". [0054] In various aspects, the LPM indicators are not restricted to regulating a resource explicitly, because the dependency checking process can be taken to the level at which the low power resource modes are selected to define a configuration of Optimal low power mode of the system. For example, suppose resource "A" has two low power resource modes "1" and "2". Since both modes "1" and "2" are of the same resource, they can share a common LPM mask bit that indicates that the resource can be put into a low power resource mode. Therefore, in this example modes "1" and "2" depend on bit 25 "A" within the LPM mask, and bit "A" is controlled by the NPA resource controller for the resource. However, there may be an additional complication in that mode "2" could be a specialized form of mode "1" that has a dependency that resource "A" may become at rest (ie not be used by no client or processor) and resource "B" can also become idle. In other words, the low power resource mode "2" of the resource "A" may depend on the resource "B" also being set to a low power mode. Therefore, in this example, mode "2" will depend on the LPM mask bits of both resources "A" and "B". Therefore, in this example, the LPM indicators do not explicitly regulate the resource due to the "2" mode dependency.

[0055] Para ilustrar dependencias estáticas y dinámicas, consideremos el ejemplo de un recurso regulador de voltaje 35 que proporcione alimentación a un recurso de controlador de reloj y algún otro recurso de hardware diverso. El regulador de voltaje puede tener dos modos de funcionamiento: normal y baja potencia (es decir, su modo de recurso de baja potencia). Poner el regulador de voltaje en un estado de baja potencia puede reducir la cantidad de sobrecarga de energía consumida por el regulador de voltaje, dando como resultado una demanda de potencia del sistema globalmente menor. Sin embargo, si se extrae más potencia del regulador de voltaje de lo que se permite en 40 su modo de baja potencia, el regulador de voltaje podría fallar y potencialmente dañar el hardware del dispositivo. Por ejemplo, el controlador de reloj puede consumir más potencia de la que el regulador de voltaje puede proporcionar en su modo de baja potencia. En este caso, el regulador de voltaje puede tener una dependencia estática con respecto al controlador de reloj (es decir, el reloj debe ser capaz de ser desactivado), y otra dependencia estática con respecto al otro hardware diverso (es decir, el hardware misceláneo debe desactivarse). 45 Además, el regulador de voltaje puede tener una dependencia dinámica: mientras el controlador de reloj permanezca activado, habrá demasiada potencia extraída del regulador de voltaje para que entre en un modo de baja potencia. Tan pronto como el controlador de reloj se desactive, entonces no habrá carga en el regulador de voltaje y será capaz de entrar en un modo de baja potencia. Por lo tanto, el modo de desactivación del controlador de reloj es una dependencia dinámica de los modos de recurso de baja potencia del regulador de voltaje. 50 [0055] To illustrate static and dynamic dependencies, consider the example of a voltage regulator resource 35 that provides power to a clock controller resource and some other diverse hardware resource. The voltage regulator can have two modes of operation: normal and low power (that is, its low power resource mode). Putting the voltage regulator in a low power state can reduce the amount of power overload consumed by the voltage regulator, resulting in a globally lower system power demand. However, if more power is extracted from the voltage regulator than is allowed in its low power mode, the voltage regulator could fail and potentially damage the device hardware. For example, the clock controller may consume more power than the voltage regulator can provide in its low power mode. In this case, the voltage regulator may have a static dependence with respect to the clock controller (i.e., the clock must be able to be deactivated), and another static dependence with respect to the other diverse hardware (i.e., the miscellaneous hardware must be deactivated). In addition, the voltage regulator may have a dynamic dependence: as long as the clock controller remains activated, there will be too much power extracted from the voltage regulator to enter a low power mode. As soon as the clock controller is deactivated, then there will be no load on the voltage regulator and it will be able to enter a low power mode. Therefore, the deactivation mode of the clock controller is a dynamic dependence of the low power resource modes of the voltage regulator. fifty

[0056] Como se analizó anteriormente, mientras que las dependencias estáticas se pueden prever con algún grado de certeza, las dependencias dinámicas son difíciles de determinar de antemano. Además, las dependencias dinámicas se vuelven exponencialmente más complejas a medida que aumenta el número de componentes y/o recursos. En varios aspectos, un proceso de solucionador se utiliza para administrar las diversas dependencias 55 dinámicas. En varios aspectos, se utiliza una tarea de inactividad para gestionar las distintas dependencias dinámicas. [0056] As discussed above, while static dependencies can be predicted with some degree of certainty, dynamic dependencies are difficult to determine in advance. In addition, dynamic dependencies become exponentially more complex as the number of components and / or resources increases. In several aspects, a solver process is used to manage the various dynamic dependencies. In several aspects, an inactivity task is used to manage the different dynamic dependencies.

[0057] Las operaciones de varios aspectos se ilustran en la FIG. 5, que muestra una ilustración de gráficos de recursos y nodos de programación. La FIG. 5 ilustra un estado de funcionamiento en el que tres clientes 50, 52, 54 60 están activos y tres recursos están disponibles para ser colocados en un modo de recurso de baja potencia, específicamente la memoria 70, un oscilador de reloj 78 y un carril de voltaje 76. En esta ilustración, los nodos de procesamiento 58, 69, 70, 72, 74, 76 y 78 representan procesos que son atravesados cuando el sistema está preparado para entrar en un modo de recurso de baja potencia ejecutando una tarea de inactividad 60. En lugar de sondear a los clientes 50, 52, 54 en lo que respecta a votos, dicho proceso se elimina y se sustituye por un cliente 65 de reposo 64 que recorre el diagrama de nodos para poner el sistema en un estado de baja potencia basado en una [0057] Operations of various aspects are illustrated in FIG. 5, which shows an illustration of resource graphs and programming nodes. FIG. 5 illustrates an operating state in which three clients 50, 52, 54 60 are active and three resources are available to be placed in a low power resource mode, specifically memory 70, a clock oscillator 78 and a rail of voltage 76. In this illustration, the processing nodes 58, 69, 70, 72, 74, 76 and 78 represent processes that are traversed when the system is ready to enter a low power resource mode by executing an idle task 60 Instead of probing the clients 50, 52, 54 with respect to votes, said process is eliminated and replaced by a resting client 65 that runs through the node diagram to put the system in a low power state. based on a

configuración de baja potencia. En esta ilustración, el cliente 1 50 (que estaba utilizando la memoria) libera la memoria, como se indica mediante la flecha al nodo 70, y establece el bit de habilitación de modo de recurso de baja potencia apropiado en la máscara LPM. De forma similar, el cliente 2 52 puede liberar el recurso de carril de voltaje y el reloj como se indica mediante las flechas a los nodos 74 y 76, que establecen los bits de habilitación de modo de recurso de baja potencia apropiados en la máscara LPM. Cuando el cliente 3 54 libera el procesador como se indica 5 mediante la flecha al nodo 69, el procesador puede ejecutar la tarea de inactividad 60 comprobando la máscara LPM, comprobando la latencia del sistema y comprobando el tiempo de inactividad esperado antes de ejecutar un proceso de solucionador de modo de baja potencia 66. Después de que se ha recorrido el gráfico completo, el cliente de reposo 64 puede invocar las funciones de "entrada" del modo de recurso de baja potencia con el conjunto de modos activos de recursos de baja potencia seleccionados para los recursos basándose en las condiciones 10 dinámicas actuales dadas. low power setting. In this illustration, client 1 50 (which was using the memory) releases the memory, as indicated by the arrow to node 70, and sets the appropriate low power resource mode enable bit in the LPM mask. Similarly, the client 2 52 can release the voltage rail resource and the clock as indicated by the arrows to nodes 74 and 76, which set the appropriate low power resource mode enable bits in the LPM mask . When the client 3 54 releases the processor as indicated by the arrow to node 69, the processor can execute the idle task 60 by checking the LPM mask, checking the latency of the system and checking the expected downtime before executing a process of low power mode solver 66. After the full graph has been traversed, idle client 64 can invoke the "input" functions of the low power resource mode with the set of active modes of low power resources selected for resources based on the current dynamic conditions given.

[0058] La FIG. 6 ilustra un nodo de proceso y un gráfico de recursos similares para otro procedimiento de aspecto. Este procedimiento de aspecto proporciona el beneficio adicional de eliminar el recorrido del gráfico del procesador desde la línea de tiempo de reposo. Como se ilustra en la FIG. 6, las dependencias del procesador (ilustradas por la 15 flecha 48 en la FIG. 5) puede omitirse en el gráfico del nodo de proceso al permitir que los recursos del procesador utilicen una API especial para interactuar directamente con las máscaras de modo de recurso de baja potencia. La FIG. 6 ilustra también que la máscara 80 de LMP (ilustrada en la FIG. 5) se puede reemplazar por una máscara LPM para un estado de baja potencia 90 del sistema, una máscara LPM para un estado de inactividad de baja potencia 92 y una máscara LPM para un estado de baja potencia 94. En este aspecto, los recursos disponibles para ser 20 colocados en un modo de recurso de baja potencia (por ejemplo, la memoria 70, el oscilador de reloj 78 y el carril de voltaje 76) pueden establecer directamente (el bit de) habilitación de LPM y/o (el bit de) deshabilitación de LPM en la máscara LPM para un estado de baja potencia del sistema 90. Cuando un cliente 3 54 libera el procesador como se indica mediante la flecha al nodo 69, el procesador puede ejecutar la tarea de inactividad 60 comprobando la máscara LPM para el estado de baja potencia de inactividad 92, comprobando la latencia del sistema y 25 comprobando el tiempo de inactividad esperado. Las funciones de "entrada" de modo de recurso de baja potencia 86 de la tarea de inactividad 60 pueden invocarse con el conjunto de modos activos de recursos de baja potencia seleccionados para las condiciones dinámicas actuales dadas a través de la máscara LPM para un estado de baja potencia 94. [0058] FIG. 6 illustrates a process node and a graph of similar resources for another aspect procedure. This aspect procedure provides the additional benefit of eliminating the path of the processor graph from the idle timeline. As illustrated in FIG. 6, the processor dependencies (illustrated by arrow 48 in FIG. 5) can be omitted in the process node chart by allowing the processor resources to use a special API to directly interact with the resource mode masks of low power. FIG. 6 also illustrates that the LMP mask 80 (illustrated in FIG. 5) can be replaced by an LPM mask for a low power state 90 of the system, an LPM mask for a low power idle state 92 and an LPM mask for a low power state 94. In this aspect, the resources available to be placed in a low power resource mode (for example, memory 70, clock oscillator 78 and voltage rail 76) can directly establish (the bit of) LPM enable and / or (the bit of) disable LPM in the LPM mask for a low power state of the system 90. When a client 3 54 releases the processor as indicated by the arrow to node 69 , the processor can execute the idle task 60 by checking the LPM mask for the low idle power state 92, checking the latency of the system and 25 checking the expected downtime. The low power resource mode "input" functions 86 of the idle task 60 can be invoked with the set of active low power resource modes selected for the current dynamic conditions given through the LPM mask for a state of low power 94.

30  30

[0059] En un aspecto de ejemplo, los modos de recurso de baja potencia pueden implementarse como una serie de vectores de bits. Por ejemplo, puede haber vectores de bits para: el estado de baja potencia del sistema (es decir, los estados de baja potencia actualmente activos debidos al uso de recursos y clientes fuera del contexto de la ruta del cliente); el estado de inactividad de baja potencia (es decir, los estados de modo de baja potencia actualmente activos debido a las condiciones dinámicas del sistema descubiertas en la tarea de inactividad, tales como latencia y 35 tiempo de inactividad esperado); las condiciones de depurado/introducción (por ejemplo, a través de elementos no volátiles o similares); y un bit para cada dependencia del nodo del procesador principal. El estado predeterminado para cada bit puede ser el modo de recurso de baja potencia deshabilitado. Los clientes que establecen requisitos de uso de recursos transitando el gráfico de nodos ilustrado en la FIG. 5 o 6 pueden hacer que cualquiera de los bits de baja potencia sea habilitado, permitiendo de este modo que un recurso particular sea colocado en un modo de 40 recurso de baja potencia. En un aspecto, la tarea de inactividad puede recopilar datos sobre otros factores, como las dependencias entre modos, la latencia, el tiempo de inactividad esperado y la temperatura, y establecer su propia máscara de bits. En este aspecto, que no se muestra en las figuras, la configuración final de máscara LPM puede determinarse mediante una adición bit a bit del sistema y las máscaras inactivas. [0059] In an example aspect, low power resource modes can be implemented as a series of bit vectors. For example, there may be bit vectors for: the low power state of the system (ie, the currently active low power states due to the use of resources and clients outside the context of the client's path); the low power idle state (that is, the low power mode states currently active due to dynamic system conditions discovered in the idle task, such as latency and expected downtime); debugging / introduction conditions (for example, through non-volatile or similar elements); and one bit for each dependency of the main processor node. The default state for each bit can be the low power resource mode disabled. Clients that establish resource use requirements by transiting the node chart illustrated in FIG. 5 or 6 can cause any of the low power bits to be enabled, thereby allowing a particular resource to be placed in a low power resource mode. In one aspect, the inactivity task can collect data on other factors, such as dependencies between modes, latency, expected downtime and temperature, and set its own bit mask. In this aspect, which is not shown in the figures, the final LPM mask configuration can be determined by a bitwise addition of the system and inactive masks.

45  Four. Five

[0060] En los diversos aspectos, una serie de mecanismos pueden ser usados en el solucionador de selecciones de modo de recurso de baja potencia para identificar un conjunto óptimo de modos de recurso de baja potencia de recurso basándose en las condiciones y el estado de funcionamiento actuales. En términos generales, el problema de seleccionar el conjunto óptimo de modos de recurso de baja potencia es una forma del "problema de mochila" que es un problema bien conocido en la optimización combinatoria. Una variedad de soluciones heurísticas o 50 algoritmos conocidos para el problema de mochila se pueden implementar en el solucionador de selecciones de modo de recurso de baja potencia. Tales procedimientos pueden implicar algoritmos de árbol lógico si/entonces/en caso contrario, un algoritmo de búsqueda en la tabla y procedimientos de comparación que funcionan sistemáticamente a través de las permutaciones y combinaciones alternativas de modos de recurso de baja potencia alternativos de diferentes recursos. 55 [0060] In various aspects, a series of mechanisms can be used in the low power resource mode selection solver to identify an optimal set of low power resource modes based on the conditions and operating status. current. In general terms, the problem of selecting the optimal set of low power resource modes is a form of the "backpack problem" which is a well known problem in combinatorial optimization. A variety of heuristic solutions or 50 known algorithms for the backpack problem can be implemented in the low power resource mode selection solver. Such procedures may involve logical tree algorithms if / then / otherwise, a table search algorithm and comparison procedures that function systematically through the permutations and alternative combinations of alternative low power resource modes of different resources. 55

[0061] A modo de ejemplo, la FIG. 7 ilustra un procedimiento de aspecto 38a para seleccionar un conjunto óptimo de modos de recurso de baja potencia trabajando a través de los diversos recursos y modos alternativos de recursos de baja potencia. El procedimiento 38a puede realizarse como parte del procedimiento 24, descrito anteriormente con referencia a la FIG. 4 y, por lo tanto, se puede asumir que ya se ha accedido a los mapas de bits y las características 60 de modo de recurso de baja potencia, incluyendo los ahorros de energía potenciales, el tiempo de latencia de salida y las dependencias. Para evaluar todos los modos de recurso de baja potencia de todos los recursos que se pueden colocar en un modo de recurso de baja potencia, en el momento del estado de inactividad actual, el procesador puede seleccionar incrementalmente cada recurso para el cual un indicador LPM está habilitado en el bloque 100 y a continuación seleccionar incrementalmente cada modo de recurso de baja potencia para el recurso seleccionado en 65 el bloque 102. La forma en que los indicadores establecidos en la máscara LPM se comprueban puede variar [0061] By way of example, FIG. 7 illustrates an aspect procedure 38a for selecting an optimal set of low power resource modes working through the various resources and alternative modes of low power resources. The procedure 38a can be performed as part of the procedure 24, described above with reference to FIG. 4 and, therefore, it can be assumed that the bitmaps and features 60 of low power resource mode have already been accessed, including potential energy savings, output latency time and dependencies. To evaluate all low power resource modes of all resources that can be placed in a low power resource mode, at the time of the current idle state, the processor can incrementally select each resource for which an LPM indicator is enabled in block 100 and then incrementally select each low power resource mode for the resource selected in block 102. The way in which the indicators set in the LPM mask are checked may vary.

dependiendo de la implementación y de las interdependencias de los diversos recursos. En una implementación, el procesador puede comprobar los indicadores en la máscara LPM y no considerar ninguno de los modos de recurso de baja potencia para ese recurso si ese bit no está establecido. Por ejemplo, si el procesador sabe que todos los modos de recurso de baja potencia "A" de recurso requieren que se establezca el bit "A", el procesador puede comprobar la existencia del bit "A" en la casilla 100 y no considerar ninguno de los modos de recurso de baja 5 potencia para ese recurso si ese bit no está establecido. Sin embargo, el procesador puede todavía necesitar comprobar la máscara LPM en el bloque 102 porque algunos modos de recurso de baja potencia para el recurso seleccionado pueden requerir que bits de recursos adicionales también se establezcan (o no se establezcan) de acuerdo con sus dependencias. Por lo tanto, en un aspecto, antes de seleccionar un modo particular de recurso de baja potencia para un recurso seleccionado en el bloque 102, el procesador puede comprobar si otros indicadores 10 LPM de recurso que son requeridos por un modo de recurso de baja potencia también se ajustan a los valores requeridos. depending on the implementation and interdependencies of the various resources. In one implementation, the processor can check the indicators in the LPM mask and not consider any of the low power resource modes for that resource if that bit is not set. For example, if the processor knows that all resource "A" low power resource modes require that bit "A" be set, the processor can check for the existence of bit "A" in box 100 and not consider any of the low power 5 resource modes for that resource if that bit is not set. However, the processor may still need to check the LPM mask in block 102 because some low power resource modes for the selected resource may require additional resource bits to also be set (or not set) according to their dependencies. Therefore, in one aspect, before selecting a particular low power resource mode for a resource selected in block 102, the processor can check whether other resource 10 LPM indicators that are required by a low power resource mode They also conform to the required values.

[0062] En un aspecto adicional, como puede ser aplicable para el uso con los recursos virtuales, la determinación de si un recurso está disponible para ser colocado en un modo de recurso de baja potencia puede depender de 15 indicadores LPM establecidos para otros recursos. Por ejemplo, si existe un recurso virtual "C" para el cual se definen modos de recurso de baja potencia "3" y "4", podría ser que la disponibilidad del modo de baja potencia '"3" dependa del bit de máscara LPM para el recurso "A" mientras que la disponibilidad del modo de baja potencia "4" dependería del bit de máscara LPM para el recurso "B". Por lo tanto, en este ejemplo, la disponibilidad de colocar el recurso virtual "C" en un modo de baja potencia explícitamente depende de un bit de máscara LPM para el recurso 20 "C", ya que es un recurso virtual que entra en uno de los modos de baja potencia "3" o "4" dependiendo del estado de los recursos "A" y "B". Por lo tanto, en un aspecto, el procesador puede seleccionar recursos para evaluación considerando los bits de máscara LPM en ambos bloques 100 y 102. [0062] In a further aspect, as may be applicable for use with virtual resources, the determination of whether a resource is available to be placed in a low power resource mode may depend on 15 LPM indicators set for other resources. For example, if there is a virtual resource "C" for which low power resource modes "3" and "4" are defined, it could be that the availability of low power mode '"3" depends on the LPM mask bit for resource "A" while the availability of low power mode "4" would depend on the LPM mask bit for resource "B". Therefore, in this example, the availability of placing virtual resource "C" in a low power mode explicitly depends on a bit of LPM mask for resource 20 "C", since it is a virtual resource that enters one of the low power modes "3" or "4" depending on the status of resources "A" and "B". Therefore, in one aspect, the processor can select resources for evaluation considering the LPM mask bits in both blocks 100 and 102.

[0063] En el bloque de determinación 104, el procesador puede comparar la latencia de modo de recurso de baja 25 potencia de recurso seleccionado con el presupuesto de latencia (que se determina en el paso 30 descrito anteriormente) para determinar si el modo de recurso de baja potencia sería compatible con los requisitos de latencia del sistema actual. Si la latencia de salida del modo de recurso de baja potencia seleccionado del recurso seleccionado excede el presupuesto de latencia (es decir, el paso de determinación 104 = "No"), el procesador puede determinar si existe otro modo de recurso de baja potencia para el recurso seleccionado en el bloque de 30 determinación 112. Si, por otra parte, la latencia de salida del modo de recurso de baja potencia seleccionado del recurso seleccionado está dentro del presupuesto de latencia (es decir, el paso de determinación 104 = "Sí"), el procesador puede añadir los ahorros de energía asociados con el modo de recurso de baja potencia seleccionado a los ahorros de energía para el modo seleccionado para obtener unos nuevos ahorros netos (es decir, ahorros de energía estimados para la configuración de baja potencia que incluye el modo de baja potencia que se está 35 evaluando) en el paso 106. En otras palabras, los ahorros de energía proyectados del modo de recurso de baja potencia seleccionado se pueden añadir a los ahorros de energía de otros modos de recurso de baja potencia de recuso que ya han sido evaluados para determinar unos ahorros de energía netos que serían proporcionados por el conjunto de modos de recurso de baja potencia incluyendo el modo de recurso de baja potencia de recurso particular que se está evaluando. En un aspecto, los ahorros de energía proyectados para cada modo de recurso de 40 baja potencia pueden determinarse como el producto de los ahorros de energía potenciales por unidad de tiempo (o en función del tiempo) a una temperatura actual (y/u otras condiciones de funcionamiento) multiplicados por el tiempo de inactividad esperado, o alguna función. En el bloque de determinación 108, el procesador puede comparar la suma obtenida en el bloque 106 con los ahorros totales de energía de un mejor conjunto previamente seleccionado de modos de recurso de baja potencia para determinar si incluir el modo de recurso de baja potencia 45 de recurso seleccionado da como resultado unos mayores ahorros de energía. Si la combinación que incluye el modo de recurso de baja potencia de recurso seleccionado da como resultado mayores ahorros de energía (es decir, bloque de determinación 108 = "Sí"), el dispositivo informático puede incluir el modo de recurso de baja potencia seleccionado para el recurso en el conjunto seleccionado de modos de recurso de baja potencia en el bloque 110. 50 [0063] In the determination block 104, the processor can compare the low resource mode latency of selected resource power with the latency budget (which is determined in step 30 described above) to determine whether the resource mode Low power would be compatible with the latency requirements of the current system. If the output latency of the selected low power resource mode of the selected resource exceeds the latency budget (ie, determination step 104 = "No"), the processor can determine whether there is another low power resource mode for the resource selected in the determination block 112. If, on the other hand, the output latency of the selected low power resource mode of the selected resource is within the latency budget (ie, the determination step 104 = "Yes "), the processor can add the energy savings associated with the selected low power resource mode to the energy savings for the selected mode to obtain new net savings (ie, estimated energy savings for the low power configuration which includes the low power mode being evaluated) in step 106. In other words, the projected energy savings of the low power resource mode s selected can be added to the energy savings of other recourse low power resource modes that have already been evaluated to determine net energy savings that would be provided by the set of low power resource modes including the resource resource mode. low power of particular resource being evaluated. In one aspect, the projected energy savings for each low power resource mode can be determined as the product of potential energy savings per unit of time (or as a function of time) at a current temperature (and / or other conditions). of operation) multiplied by the expected downtime, or some function. In the determination block 108, the processor can compare the sum obtained in block 106 with the total energy savings of a better previously selected set of low power resource modes to determine whether to include the low power resource mode 45 of Selected resource results in greater energy savings. If the combination that includes the selected resource low power resource mode results in greater energy savings (ie, determination block 108 = "Yes"), the computing device may include the low power resource mode selected for the resource in the selected set of low power resource modes in block 110. 50

[0064] Si la combinación incluyendo el modo de recurso de baja potencia de recurso seleccionado da como resultado menos ahorros de energía (es decir, bloque de determinación 108 = "No"), el procesador puede determinar si hay otro modo de recurso de baja potencia para el recurso seleccionado en el bloque de determinación 112. Si hay otro modo de recurso de baja potencia asociado con el recurso seleccionado (es decir, el bloque de 55 determinación 112 = "Sí"), el procesador puede volver al bloque 102 para seleccionar el siguiente modo de recurso de baja potencia para la evaluación. Si se han evaluado todos los modos de recurso de baja potencia del recurso seleccionado (es decir, el bloque de determinación 112 = "No"), el procesador puede determinar si hay otro recurso que se puede colocar en un modo de recurso de baja potencia en el bloque de determinación 114. Si hay otro recurso que se va a evaluar (es decir, el bloque de determinación 114 = "Sí"), el procesador puede volver al bloque 60 100 para seleccionar el siguiente recurso para la evaluación. Una vez que se hayan evaluado todos los recursos (es decir, el bloque de determinación 114 = "No"), el algoritmo debería haber identificado un conjunto óptimo de modos de recurso de baja potencia a implementar, de modo que puede proceder a implementar el conjunto seleccionado de modos de recurso de baja potencia, con referencia a la FIG. 4 y el bloque 40. [0064] If the combination including the selected resource low power resource mode results in less energy savings (ie, determination block 108 = "No"), the processor can determine if there is another low resource mode power for the selected resource in the determination block 112. If there is another low power resource mode associated with the selected resource (ie, the determination block 112 = "Yes"), the processor may return to block 102 for Select the next low power resource mode for evaluation. If all the low power resource modes of the selected resource have been evaluated (ie the determination block 112 = "No"), the processor can determine if there is another resource that can be placed in a low power resource mode in the determination block 114. If there is another resource to be evaluated (ie, the determination block 114 = "Yes"), the processor may return to block 60 100 to select the next resource for the evaluation. Once all the resources have been evaluated (that is, the determination block 114 = "No"), the algorithm should have identified an optimal set of low power resource modes to implement, so that it can proceed to implement the selected set of low power resource modes, with reference to FIG. 4 and block 40.

65  65

[0065]Mientras que un algoritmo de cálculo combinatorio, como la que se ilustra en la FIG. 7, puede ser capaz de [0065] While a combinatorial calculation algorithm, such as that illustrated in FIG. 7, may be able to

identificar un conjunto óptimo de modos de recurso de baja potencia para una condición de funcionamiento dada, tales cálculos pueden ser computacionalmente demasiado difíciles de implementar, particularmente cuando los tiempos de inactividad esperados pueden ser solo unos pocos milisegundos y el número de recursos es grande. Por lo tanto, en varios aspectos, se pueden implementar soluciones aproximadas al problema de mochila y soluciones que se pueden determinar de antemano. Un ejemplo de una solución que puede ser determinada por el procesador 5 antes de un ciclo de reposo es una que use un procedimiento de búsqueda en la tabla. En un procedimiento de búsqueda en la tabla, el procesador puede calcular el rendimiento de varios modos de recurso de baja potencia en tiempo de ejecución (es decir, no definido de antemano por un desarrollador), en términos de tiempo de inactividad esperado, temperatura, configuración actual del sistema y otros parámetros. Los resultados de estos cálculos pueden proporcionarse en forma de una tabla o gráfico que puede ser utilizado por el procesador para identificar 10 rápidamente un conjunto aproximadamente óptimo de modos de recurso de baja potencia en el momento de un ciclo de reposo. To identify an optimal set of low power resource modes for a given operating condition, such calculations may be computationally too difficult to implement, particularly when the expected downtimes may be only a few milliseconds and the number of resources is large. Therefore, in several aspects, approximate solutions to the backpack problem and solutions that can be determined beforehand can be implemented. An example of a solution that can be determined by processor 5 before a rest cycle is one that uses a search procedure in the table. In a search procedure in the table, the processor can calculate the performance of several low power resource modes at runtime (ie, not defined in advance by a developer), in terms of expected downtime, temperature, Current system configuration and other parameters. The results of these calculations can be provided in the form of a table or graph that can be used by the processor to quickly identify an approximately optimal set of low power resource modes at the time of a standby cycle.

[0066]La FIG. 8A ilustra un gráfico unidimensional de tres conjuntos alternativos de configuraciones de baja potencia de funcionamiento 120, 122, 124 representadas gráficamente en términos de ahorros de energía frente a tiempo de 15 inactividad esperado. Como se desprende del gráfico, las tres configuraciones alternativas de baja potencia pueden producir diferentes ahorros de energía relativa en diferentes intervalos de tiempos de inactividad esperados. La FIG. 8A ilustra que la configuración 120 de baja potencia alternativa da como resultado inicialmente ahorros de energía negativos (por ejemplo, desde el inicio del tiempo de inactividad hasta el tiempo indicado por la flecha 126), pero ahorros de energía positivos más adelante. De este modo, entre el inicio de un ciclo de reposo de procesador y el 20 tiempo indicado por la flecha 126, solo las configuraciones de baja potencia 122 y 124 producen ahorros de energía, como se indica mediante el elemento 128. La FIG. 8A ilustra también que, en el período comprendido entre el inicio de un ciclo de reposo y el tiempo indicado por la flecha 126, la configuración de baja potencia 122 proporcionaría mayores ahorros de energía que la configuración de baja potencia 124. Desde el tiempo entre la flecha 126 y la flecha 130, las tres configuraciones de baja potencia producirían ahorros de energía positivos, con la configuración 25 de baja potencia 122 que proporciona los mayores ahorros de energía potenciales, seguida por 124 y 120, respectivamente. Esto se ilustra mediante el elemento 132, que muestra que la configuración de baja potencia 122 tiene unos ahorros de energía mayores que 124, que a su vez tiene unos ahorros de energía mayores que 120. En el intervalo de tiempo entre la flecha 130 y la flecha 136, las tres configuraciones de baja potencia proporcionan ahorros de energía positivos, con las tres alternativas que proporcionan unos ahorros de energía potenciales del 30 orden de 122, 120 y 124, como se indica mediante el elemento 134. Después del tiempo indicado por la flecha 136, las tres alternativas tienen unos ahorros de energía potenciales del orden de 120, 122 y 124, como se indica mediante el elemento 138. [0066] FIG. 8A illustrates a one-dimensional graph of three alternative sets of low operating power configurations 120, 122, 124 plotted in terms of energy savings versus expected downtime. As shown in the graph, the three alternative low power configurations can produce different relative energy savings at different intervals of expected downtime. FIG. 8A illustrates that the alternative low power configuration 120 initially results in negative energy savings (for example, from the start of idle time to the time indicated by arrow 126), but positive energy savings later. Thus, between the start of a processor idle cycle and the time indicated by arrow 126, only the low power configurations 122 and 124 produce energy savings, as indicated by item 128. FIG. 8A also illustrates that, in the period between the start of a rest cycle and the time indicated by arrow 126, the low power configuration 122 would provide greater energy savings than the low power configuration 124. From the time between the arrow 126 and arrow 130, the three low power configurations would produce positive energy savings, with the low power configuration 25 122 providing the greatest potential energy savings, followed by 124 and 120, respectively. This is illustrated by element 132, which shows that the low power configuration 122 has energy savings greater than 124, which in turn has energy savings greater than 120. In the time interval between arrow 130 and the arrow 136, the three low power configurations provide positive energy savings, with the three alternatives that provide potential energy savings of the order of 122, 120 and 124, as indicated by item 134. After the time indicated by the arrow 136, the three alternatives have potential energy savings of the order of 120, 122 and 124, as indicated by item 138.

[0067] En el aspecto ilustrado en la FIG. 8A, el procesador puede determinar un orden priorizado de configuraciones 35 alternativas de baja potencia usando el tiempo de inactividad esperado como un valor de búsqueda. Aunque la FIG. 8A ilustra este aspecto en un gráfico bidimensional (es decir, ahorros de energía frente a tiempo de inactividad esperado), el procedimiento de aspecto puede implementarse con un gráfico multidimensional, incluyendo parámetros tales como temperatura, latencia, etc. En un aspecto, el procesador puede utilizar algoritmos de análisis de gráficos tridimensionales conocidos para identificar una configuración de baja potencia aproximadamente óptima 40 o un orden prioritario de configuraciones basándose en múltiples parámetros. De nuevo, tal representación gráfica puede ser realizada por el procesador en tiempo de ejecución, y no definida de antemano por un desarrollador. [0067] In the aspect illustrated in FIG. 8A, the processor can determine a prioritized order of low power alternative configurations using the expected downtime as a search value. Although FIG. 8A illustrates this aspect in a two-dimensional graph (that is, energy savings versus expected downtime), the aspect procedure can be implemented with a multidimensional graph, including parameters such as temperature, latency, etc. In one aspect, the processor can use known three-dimensional graph analysis algorithms to identify an approximately optimal low power configuration 40 or a priority order of configurations based on multiple parameters. Again, such graphic representation can be performed by the processor at runtime, and not defined in advance by a developer.

[0068] A pesar de que el pre-cálculo reduce el trabajo requerido en el proceso de búsqueda, el número de puntos de transición aumenta junto con el número de diferentes modos de baja potencia (que está ligado al número de 45 diferentes recursos) y el número de dimensiones (es decir, los parámetros utilizados para seleccionar la configuración óptima del modo de baja potencia del sistema). En tales casos, el espacio necesario para almacenar tal tabla de búsqueda puede llegar a ser prohibitivo. Por lo tanto, en un aspecto adicional, la heurística puede usarse para consolidar diferentes regiones de la tabla de búsqueda para reducir el número de regiones discretas que necesitan ser rastreadas, reduciendo así el tamaño de la tabla de búsqueda. La FIG. 8B muestra un aspecto de 50 ejemplo en el que el orden clasificado de las configuraciones de baja potencia puede presentarse en forma de una o dos listas de clasificación alternativas (ilustradas por 140) en algunas regiones de parámetros de entrada (por ejemplo, la región entre las flechas 126 y 136). La FIG. 8B ilustra que la consolidación de las diferentes regiones puede producir resultados subóptimos para algunos conjuntos de condiciones. Por ejemplo, en la región de tiempo entre las flechas 126 y 136, los resultados óptimos para el área más próxima a la flecha 126 difieren de los 55 resultados óptimos para el área cercana a la flecha 136. Para reducir el impacto de estos resultados subóptimos, en varios aspectos, el procesador puede colocar las clasificaciones incorrectas en regiones que son relativamente poco interesantes. Las regiones pueden clasificarse como poco interesantes si describen condiciones que son poco frecuentes (por ejemplo, temperaturas extremas). En varios aspectos, el procesador puede determinar que los resultados subóptimos son aceptables evaluando el error en las clasificaciones no óptimas, y determinando que los 60 errores son mínimos o inferiores a cierto umbral establecido. El desarrollo de tales reglas heurísticas puede ser realizado por el procesador en tiempo de ejecución, y no definido de antemano por un desarrollador. [0068] Although the pre-calculation reduces the work required in the search process, the number of transition points increases along with the number of different low power modes (which is linked to the number of 45 different resources) and the number of dimensions (that is, the parameters used to select the optimal configuration of the low power mode of the system). In such cases, the space required to store such a search table may become prohibitive. Therefore, in a further aspect, heuristics can be used to consolidate different regions of the search table to reduce the number of discrete regions that need to be tracked, thereby reducing the size of the search table. FIG. 8B shows an example aspect in which the classified order of the low power configurations can be presented in the form of one or two alternative classification lists (illustrated by 140) in some regions of input parameters (for example, the region between arrows 126 and 136). FIG. 8B illustrates that consolidation of different regions can produce suboptimal results for some sets of conditions. For example, in the time region between arrows 126 and 136, the optimal results for the area closest to arrow 126 differ from the 55 optimal results for the area near arrow 136. To reduce the impact of these suboptimal results In several respects, the processor may place the incorrect classifications in regions that are relatively uninteresting. Regions can be classified as uninteresting if they describe conditions that are rare (for example, extreme temperatures). In several respects, the processor can determine that suboptimal results are acceptable by evaluating the error in the non-optimal classifications, and determining that the 60 errors are minimum or lower than a certain set threshold. The development of such heuristic rules can be performed by the processor at runtime, and not defined in advance by a developer.

[0069] Como una extensión de este aspecto, el procesador puede recopilar estadísticas sobre qué condiciones el dispositivo experimenta con mayor frecuencia, y volver a calcular las tablas de búsqueda, como se describe más 65 completamente a continuación, para personalizar las tablas a las condiciones más frecuentes experimentados por el [0069] As an extension of this aspect, the processor can collect statistics on what conditions the device experiences most frequently, and recalculate the search tables, as described more fully below, to customize the tables to the conditions most frequent experienced by the

dispositivo informático concreto. Por ejemplo, un teléfono celular utilizado en Alaska puede calcular una tabla de búsqueda que asigna más de su espacio de tabla a regiones de temperatura fría en comparación con un teléfono celular utilizado en el Sahara. Este aspecto permite que cada dispositivo informático tome decisiones de configuración de baja potencia que se optimicen a sus condiciones típicas en términos tanto de ambiente (es decir, temperatura) como de patrones de uso medidos (por ejemplo, tiempo de inactividad esperado). 5 concrete computing device For example, a cell phone used in Alaska can calculate a search table that allocates more of its table space to regions of cold temperature compared to a cell phone used in the Sahara. This aspect allows each computing device to make low power configuration decisions that are optimized to their typical conditions in terms of both environment (i.e. temperature) and measured usage patterns (e.g. expected downtime). 5

[0070]La FIG. 9A ilustra un procedimiento de aspecto 38b para implementar un procedimiento de búsqueda en la tabla para el proceso de solucionador descrito anteriormente. En el procedimiento 38b en el bloque 150 el procesador puede utilizar los parámetros determinados en los bloques 28-36 (como se ha descrito anteriormente con referencia a la FIG. 4) para seleccionar una configuración de baja potencia. Como se mencionó anteriormente, en un 10 aspecto, este proceso de búsqueda en la tabla puede implicar el uso de un algoritmo de análisis de asignación 3-D. Una vez que se identifica una configuración óptima de baja potencia, el procesador puede entrar en el modo seleccionado en el paso 40 como se ha descrito anteriormente. [0070] FIG. 9A illustrates an aspect procedure 38b for implementing a search procedure in the table for the solver process described above. In the procedure 38b in block 150 the processor can use the parameters determined in blocks 28-36 (as described above with reference to FIG. 4) to select a low power configuration. As mentioned earlier, in one aspect, this search process in the table may involve the use of a 3-D assignment analysis algorithm. Once an optimal low power configuration is identified, the processor can enter the mode selected in step 40 as described above.

[0071]La FIG. 9B ilustra un procedimiento de aspecto alternativo 38c para implementar un procedimiento de 15 búsqueda en la tabla que proporciona una lista clasificada de configuraciones alternativas para una evaluación posterior. En el procedimiento 38c en el bloque 152, el procesador puede utilizar los parámetros determinados en los bloques 28-36 (como se ha descrito anteriormente) para obtener una lista clasificada de configuraciones alternativas de baja potencia basadas en ahorros potenciales de potencia. En el bloque 154, el procesador puede seleccionar una configuración de baja potencia alternativa de mayor clasificación para su evaluación. En el bloque de 20 determinación 156, el procesador puede determinar si la latencia de salida de modo de la configuración seleccionada es menor que la latencia de sistema máxima aceptable. Si la latencia de la configuración de baja potencia seleccionada satisface el requisito del sistema (es decir, el bloque de determinación 156 = "Sí"), el procesador puede entrar en el modo seleccionado en el paso 40 como se ha descrito anteriormente. Si la latencia de la configuración de baja potencia seleccionada no satisface el requisito de latencia del sistema (es decir, el bloque 25 de determinación 156 = "No"), el procesador puede seleccionar la siguiente configuración de baja potencia para la evaluación. Este proceso puede continuar hasta que se eliminen todas las configuraciones de baja potencia inaceptables o hasta que se identifiquen una o más configuraciones de baja potencia que satisfagan los requisitos de latencia del sistema. Si se eliminan todas las configuraciones de baja potencia o no se identifica ninguna configuración de baja potencia satisfactoria, el procesador puede determinar si debe entrar en una configuración de 30 baja potencia o permanecer en un estado de funcionamiento basándose en los ahorros de energía esperados disponibles, los requisitos de funcionamiento y otros factores descritos anteriormente. [0071] FIG. 9B illustrates an alternative aspect procedure 38c for implementing a table search procedure that provides a classified list of alternative configurations for further evaluation. In procedure 38c in block 152, the processor can use the parameters determined in blocks 28-36 (as described above) to obtain a classified list of alternative low power configurations based on potential power savings. In block 154, the processor can select a low power alternative configuration of higher classification for evaluation. In block 20 of determination 156, the processor can determine whether the mode output latency of the selected configuration is less than the maximum acceptable system latency. If the latency of the selected low power configuration satisfies the system requirement (ie, determination block 156 = "Yes"), the processor may enter the mode selected in step 40 as described above. If the latency of the selected low power configuration does not satisfy the system latency requirement (ie, block 25 of determination 156 = "No"), the processor can select the following low power configuration for evaluation. This process can continue until all unacceptable low power settings are removed or until one or more low power settings that meet the system's latency requirements are identified. If all low power settings are eliminated or no satisfactory low power settings are identified, the processor can determine whether it should enter a low power setting or remain in an operating state based on the expected energy savings available, the operating requirements and other factors described above.

[0072] El enfoque de solucionador de búsqueda en la tabla descrito anteriormente puede proporcionar un enfoque basado en datos flexible para la eliminación de las configuraciones de baja potencia del sistema y la identificación de 35 una o más configuraciones de baja potencia óptimas que se pueden calcular con relativa rapidez. Sin embargo, en ciertas situaciones, este enfoque tal vez no sea capaz de identificar una configuración óptima de baja potencia en todos los estados y condiciones de funcionamiento, ya que se basa en cálculos realizados con antelación. La FIG. 10 ilustra un procedimiento de aspecto alternativo 38d que puede implementarse para hacer uso tanto del procedimiento de algoritmo de cálculo combinatorio como del procedimiento de búsqueda en la tabla dependiendo 40 del tiempo de inactividad esperado. En el bloque de determinación 160 el procesador determina si el tiempo de inactividad esperado va a ser suficientemente largo (es decir, más largo que un umbral predeterminado) para justificar el tiempo de cálculo requerido para determinar directamente una configuración óptima, o si debería implementarse un procedimiento de búsqueda en la tabla más rápido. Si el procesador determina que el tiempo de inactividad esperado excede el umbral y justifica así el tiempo de cálculo adicional requerido para completar el 45 algoritmo de solucionador más riguroso (es decir, el bloque de determinación 160 = "Sí"), el procesador puede realizar el algoritmo descrito anteriormente con referencia a la FIG. 7 para determinar la configuración óptima de baja potencia para implementar en el bloque 40. Por otra parte, si el procesador determina que el tiempo de inactividad esperado es menor que el umbral (es decir, el bloque de determinación 160 = "No"), el procesador puede realizar el procedimiento de búsqueda en la tabla descrito anteriormente con referencia a las FIGs. 9A o 9B. De esta manera, 50 el dispositivo informático puede tener el beneficio de ambos procedimientos de solucionador dependiendo del tiempo que se espera que el procesador permanezca en el estado de inactividad. [0072] The search solver approach in the table described above can provide a flexible data-based approach for the elimination of the low power settings of the system and the identification of one or more optimal low power configurations that can be calculated. relatively quickly. However, in certain situations, this approach may not be able to identify an optimal low power configuration in all operating states and conditions, since it is based on calculations made in advance. FIG. 10 illustrates an alternative aspect procedure 38d that can be implemented to make use of both the combinatorial calculation algorithm procedure and the search procedure in the table depending on the expected downtime. In the determination block 160 the processor determines whether the expected idle time is going to be long enough (ie, longer than a predetermined threshold) to justify the calculation time required to directly determine an optimal configuration, or if a faster table search procedure. If the processor determines that the expected idle time exceeds the threshold and thus justifies the additional calculation time required to complete the most rigorous solver algorithm (ie, the determination block 160 = "Yes"), the processor can perform the algorithm described above with reference to FIG. 7 to determine the optimal low power configuration to be implemented in block 40. On the other hand, if the processor determines that the expected idle time is less than the threshold (ie, the determination block 160 = "No"), The processor can perform the search procedure in the table described above with reference to FIGs. 9A or 9B. In this way, the computing device can have the benefit of both solver procedures depending on how long the processor is expected to remain in the idle state.

[0073] En un aspecto, el dispositivo informático puede de vez en cuando volver a calcular las tablas de búsqueda utilizadas en solucionador para determinar una configuración óptima de baja potencia para una gama de condiciones 55 y estados con el fin de hacer uso de la información estadística recogida en relación con el funcionamiento del dispositivo informático. Al volver a calcular periódicamente las características de las tablas de búsqueda, este aspecto permite al dispositivo informático aprender de sus operaciones actuales y pasadas para optimizar mejor los ahorros de energía potenciales obtenidos por las futuras configuraciones de baja potencia. Para calcular las tablas de búsqueda, el dispositivo informático puede configurarse para evaluar los ahorros de energía relativos que pueden 60 alcanzarse para cada una de las diversas condiciones de funcionamiento (por ejemplo, diferentes condiciones de temperatura y diferentes estados de cliente y de aplicación) y cada uno de los diferentes recursos y modos de baja potencia de recurso. Dichos cálculos pueden ser similares a los que se han descrito anteriormente con referencia a la FIG. 7, y pueden ser realizados por el procesador para una serie de diferentes configuraciones y temperatura y otros valores de condiciones de funcionamiento del sistema. 65 [0073] In one aspect, the computing device may occasionally recalculate the search tables used in solver to determine an optimal low power configuration for a range of conditions 55 and states in order to make use of the information. statistics collected in relation to the operation of the computing device. By periodically recalculating the characteristics of the search tables, this aspect allows the computing device to learn from its current and past operations to better optimize the potential energy savings obtained by future low power configurations. To calculate the search tables, the computing device can be configured to assess the relative energy savings that can be achieved for each of the various operating conditions (e.g., different temperature conditions and different customer and application states) and each of the different resources and modes of low power of resource. Such calculations may be similar to those described above with reference to FIG. 7, and can be performed by the processor for a series of different configurations and temperature and other values of system operating conditions. 65

[0074] En varios aspectos, el procesador de dispositivo informático puede estar configurado para calcular las tablas de búsqueda como una tarea de fondo. Es decir, puesto que es probable que los cálculos impliquen una cantidad significativa de procesamiento, pueden configurarse para que se lleven a cabo cuando el procesador no está implicado en la realización de operaciones de prioridad más alta. Por ejemplo, el dispositivo informático puede estar configurado para realizar los cálculos cuando uno o más procesadores estarían de otro modo en un estado de 5 inactividad. Dado que tales cálculos consumen probablemente una potencia significativa, el dispositivo informático puede configurarse adicionalmente para realizar estos cálculos solo cuando el dispositivo está enchufado a energía externa (por ejemplo, al cargar la batería) y, por lo tanto, cuando la conservación de potencia no es una prioridad de funcionamiento y el consumo de energía no es un problema. [0074] In several aspects, the computer device processor may be configured to calculate the search tables as a background task. That is, since the calculations are likely to involve a significant amount of processing, they can be configured to be carried out when the processor is not involved in performing higher priority operations. For example, the computing device may be configured to perform the calculations when one or more processors would otherwise be in a state of inactivity. Since such calculations probably consume significant power, the computing device can be additionally configured to perform these calculations only when the device is plugged into external power (for example, when charging the battery) and, therefore, when the power conservation is not It is a functioning priority and energy consumption is not a problem.

10  10

[0075]La FIG. 11 ilustra un procedimiento de aspecto 178 para calcular las tablas de búsqueda cuando el dispositivo informático está conectado a una alimentación externa. En el procedimiento 178 en el bloque de determinación 180, el procesador puede determinar si el dispositivo está conectado a una alimentación externa cuando el procesador entra en un estado de inactividad. Si el procesador determina que el dispositivo no está conectado a una alimentación externa (es decir, bloque de determinación 180 = "No"), el procesador puede realizar los procesos 15 descritos anteriormente con referencia a las FIGs. 4 y 9A para identificar una configuración óptima de baja potencia y entrar en el conjunto de modos de recurso de baja potencia que constituyen la configuración de baja potencia en el bloque 40. Si el procesador determina que el dispositivo está conectado a una alimentación externa (es decir, bloque de determinación 180 = "Sí"), el procesador puede realizar los cálculos necesarios para actualizar las tablas de búsqueda. En el bloque 182, el procesador puede seleccionar un estado de funcionamiento y una condición 20 particulares para calcular la configuración óptima de baja potencia. En el bloque 184, el procesador puede seleccionar un primer recurso para la evaluación, y en el bloque 186, seleccionar un primer modo de recurso de baja potencia para el recurso seleccionado. En el bloque 188, el procesador puede determinar las latencias totales de recursos de una configuración de baja potencia que incluye el modo seleccionado utilizando la latencia de los modos de recurso de baja potencia seleccionados. En el bloque 190, el procesador puede añadir los ahorros de energía 25 asociados con el modo de recurso de baja potencia seleccionado a los ahorros de energía asociados con un conjunto seleccionado de modos de baja potencia para obtener un nuevo ahorro de energía de modo. [0075] FIG. 11 illustrates an aspect procedure 178 for calculating the search tables when the computing device is connected to an external power supply. In procedure 178 in the determination block 180, the processor can determine if the device is connected to an external power when the processor enters an idle state. If the processor determines that the device is not connected to an external power supply (ie, determination block 180 = "No"), the processor can perform the processes described above with reference to FIGs. 4 and 9A to identify an optimal low power configuration and enter the set of low power resource modes that constitute the low power configuration in block 40. If the processor determines that the device is connected to an external power supply (it is that is, block 180 = "Yes"), the processor can perform the calculations necessary to update the search tables. In block 182, the processor can select a particular operating state and condition 20 to calculate the optimal low power configuration. In block 184, the processor can select a first resource for evaluation, and in block 186, select a first low power resource mode for the selected resource. In block 188, the processor can determine the total resource latencies of a low power configuration that includes the selected mode using the latency of the selected low power resource modes. In block 190, the processor may add the energy savings associated with the selected low power resource mode to the energy savings associated with a selected set of low power modes to obtain a new mode energy saving.

[0076] En el bloque de determinación 192, el procesador puede determinar si los nuevos ahorros de energía de modo superan los ahorros de una configuración de baja potencia previamente seleccionada. Si el modo de recurso 30 de baja potencia seleccionado da como resultado un aumento en el ahorro de energía (es decir, el bloque de determinación 192 = "Sí"), el procesador puede utilizar el modo de recurso de baja potencia seleccionado en una configuración provisional de baja potencia en el bloque 194. Después, o si el modo de recurso de baja potencia seleccionado no da como resultado un aumento en los ahorros de energía (es decir, el bloque de determinación 192 = "No"), el procesador puede determinar si hay otro modo de recurso de baja potencia asociado con el recurso 35 seleccionado en el bloque de determinación 196. Si hay otro modo de recurso de baja potencia asociado con el recurso (es decir, el bloque de determinación 196 = "Sí"), el procesador puede volver al bloque 186 para seleccionar el siguiente modo de recurso de baja potencia para el recurso seleccionado. Si se han evaluado todos los modos de recurso de baja potencia para el recurso seleccionado (es decir, el bloque de determinación 196 = "No"), el procesador puede determinar si hay otro recurso a evaluar para las condiciones seleccionadas actualmente en el 40 bloque de determinación 198. [0076] In the determination block 192, the processor can determine whether the new mode energy savings exceed the savings of a previously selected low power configuration. If the selected low power resource mode 30 results in an increase in energy saving (ie, the determination block 192 = "Yes"), the processor can use the selected low power resource mode in a configuration provisional low power in block 194. Then, or if the selected low power resource mode does not result in an increase in energy savings (ie, the determination block 192 = "No"), the processor can determine if there is another low power resource mode associated with the resource 35 selected in the determination block 196. If there is another low power resource mode associated with the resource (ie, the determination block 196 = "Yes") , the processor may return to block 186 to select the next low power resource mode for the selected resource. If all the low power resource modes have been evaluated for the selected resource (ie the determination block 196 = "No"), the processor can determine if there is another resource to be evaluated for the conditions currently selected in the block 40 of determination 198.

[0077] Si el procesador determina que hay otro recurso a evaluar (es decir, bloque de determinación 198 = "Sí"), el procesador puede volver al bloque 184 para seleccionar el siguiente recurso para evaluación. Si el procesador determina que todos los recursos han sido evaluados para las condiciones seleccionadas actualmente (es decir, el 45 bloque de determinación 198 = "No"), el procesador puede actualizar la tabla de selección con la configuración de baja potencia potencial, incluyendo valores para los ahorros potenciales determinados en el bloque 190 y las latencias de los diversos modos de recurso de baja potencia determinados en el bloque 188. A continuación, el procesador puede determinar si hay otra condición a evaluar en el bloque de determinación 202. Si el procesador determina que se ha de evaluar otra condición (es decir, el bloque de determinación 202 = "Sí"), el procesador 50 puede volver al bloque 182 para seleccionar la siguiente condición a evaluar. Una vez que todas las condiciones han sido evaluadas y la tabla de búsqueda ha sido actualizada de la forma correspondiente (es decir, el bloque de determinación 202 = "No"), el procesador puede continuar con procesos de inactividad normales apropiados para la condición actual (incluyendo estar conectado a una alimentación externa) en el bloque 204. [0077] If the processor determines that there is another resource to be evaluated (ie, determination block 198 = "Yes"), the processor may return to block 184 to select the next resource for evaluation. If the processor determines that all resources have been evaluated for the currently selected conditions (ie, the determination block 198 = "No"), the processor can update the selection table with the potential low power configuration, including values for the potential savings determined in block 190 and the latencies of the various low power resource modes determined in block 188. The processor can then determine if there is another condition to be evaluated in the determination block 202. If the processor determines that another condition has to be evaluated (ie, the determination block 202 = "Yes"), the processor 50 may return to block 182 to select the next condition to be evaluated. Once all the conditions have been evaluated and the search table has been updated accordingly (ie, the determination block 202 = "No"), the processor can continue with normal inactivity processes appropriate for the current condition (including being connected to an external power supply) in block 204.

55  55

[0078] En un aspecto adicional, el procesador puede estar configurado para tomar nota de las estadísticas de funcionamiento con el fin de ajustar los parámetros utilizados para determinar la configuración óptima de baja potencia. Como se ilustra en la FIG. 12, en el procedimiento de aspecto 210 en el bloque 212, el procesador puede observar la configuración de baja potencia implementada, el tiempo de inactividad estimado utilizado en la determinación de la configuración de baja potencia y la hora de inicio de la configuración de baja potencia. Cuando 60 el procesador sale de la configuración de baja potencia (es decir, se activa), el procesador puede tener en cuenta el momento en el que el procesador sale de la configuración de baja potencia, los recursos necesarios y el procesador o cliente que requiere los recursos que provocaron el evento de activación en el bloque 214. En el bloque 216, el procesador puede usar la información obtenida en el bloque 214 para calcular o refinar estadísticas con respecto al tiempo de inactividad de recursos para el recurso, procesadores, clientes y/o configuración de baja potencia 65 particulares. Dichas estadísticas pueden referirse a cuánta precisión tiende a estimar el tiempo de inactividad [0078] In a further aspect, the processor may be configured to take note of the operation statistics in order to adjust the parameters used to determine the optimum low power setting. As illustrated in FIG. 12, in the aspect procedure 210 in block 212, the processor can observe the low power configuration implemented, the estimated idle time used in the determination of the low power configuration and the start time of the low power configuration . When the processor leaves the low power configuration (that is, it activates), the processor can take into account the moment when the processor leaves the low power configuration, the necessary resources and the processor or client it requires the resources that caused the activation event in block 214. In block 216, the processor can use the information obtained in block 214 to calculate or refine statistics regarding the time of inactivity of resources for the resource, processors, clients and / or low power configuration 65 individuals. These statistics can refer to how much accuracy the downtime tends to estimate

esperado, como generar un factor de corrección, identificar las procesadores o clientes particulares que inician eventos de activación e identificar las características de tiempo de inactividad de configuraciones de baja potencia particulares. En el bloque 218, el procesador puede actualizar los parámetros de datos de modo de recurso de baja potencia de recurso con probabilidades o factores de corrección para latencias, estimaciones de tiempo de inactividad esperadas o ahorros de energía ajustados basados en las estadísticas de uso calculadas en el bloque 5 216. En este aspecto, se puede recopilar una amplia gama de estadísticas con respecto a las operaciones típicas del dispositivo informático, utilizándose la información resultante para permitir al módulo solucionador determinar mejor la configuración de baja potencia más adecuada. De esta manera, el dispositivo informático puede adaptarse a sus condiciones de uso y funcionamiento típicas con el fin de optimizar aún más la potencia que se puede ahorrar mediante la implementación de modos de recurso de baja potencia y/o configuraciones de baja potencia. 10 expected, such as generating a correction factor, identifying the processors or particular clients that initiate activation events and identifying the idle time characteristics of particular low power configurations. In block 218, the processor can update the resource mode data parameters of low resource power with probabilities or correction factors for latencies, expected downtime estimates or adjusted energy savings based on usage statistics calculated in block 5 216. In this regard, a wide range of statistics can be collected with respect to the typical operations of the computing device, the resulting information being used to allow the solver module to better determine the most suitable low power configuration. In this way, the computing device can be adapted to its typical conditions of use and operation in order to further optimize the power that can be saved by implementing low power resource modes and / or low power settings. 10

[0079] En varios aspectos, un procesador puede ser capaz de utilizar las estadísticas con respecto a funcionamiento normal de los diferentes procesadores con el fin de seleccionar las configuraciones de baja potencia que producen unos mayores ahorros de energía en promedio que la configuración que de otro modo se seleccionaría basándose en los parámetros de recursos y el estado de funcionamiento del procesador. Esto se puede aclarar haciendo 15 referencia a un ejemplo en el que, para un periodo de inactividad dado, un procesador A puede elegir entre el modo de baja potencia para recurso S (recurso compartido) o recurso L (local), pero tiene requisitos de latencia dinámica que no permiten entrar en ambos modos de baja potencia (es decir, para este periodo de inactividad particular, los modos son mutuamente exclusivos funcionalmente). En términos absolutos, el recurso S ahorraría más energía colocando el recurso S en un estado de baja potencia, pero existe una probabilidad no nula de que el procesador B 20 requiera el recurso S durante el tiempo de inactividad del procesador A. Dependiendo de cuánto tiempo el recurso S sea usado por el procesador B, el estado óptimo de baja potencia para el procesador A podría ser entrar en un modo de recurso de baja potencia para el recurso L, aunque en teoría ahorra menos energía. Para tener en cuenta esto, el modelo de potencia para el recurso S podría ser descalificado por la probabilidad de que será globalmente inactivo, dado que el procesador A está inactivo mientras que el procesador B no lo está. Es decir, en lugar de que el cálculo 25 del modelo de potencia para el recurso S sea power_model(idle, temp), el cálculo puede convertirse en E[power_model(idle, temp)|Proc A idle]. En varios aspectos, la distribución de probabilidad para el cálculo de la expectativa puede definirse estáticamente, ya sea por dominio, por perfil o empíricamente determinada en tiempo de ejecución mediante la recopilación de estadísticas de uso reales. [0079] In several aspects, a processor may be able to use the statistics regarding normal operation of the different processors in order to select low power configurations that produce greater energy savings on average than the configuration of another mode would be selected based on the resource parameters and the operating status of the processor. This can be clarified by referring to an example in which, for a given period of inactivity, a processor A can choose between low power mode for resource S (shared resource) or resource L (local), but has requirements for dynamic latency that does not allow entering both low power modes (that is, for this particular period of inactivity, the modes are mutually functionally exclusive). In absolute terms, resource S would save more energy by placing resource S in a low power state, but there is a non-zero probability that processor B 20 requires resource S during processor idle time A. Depending on how much time resource S is used by processor B, the optimal low power state for processor A could be to enter a low power resource mode for resource L, although in theory it saves less energy. To take this into account, the power model for resource S could be disqualified by the probability that it will be globally inactive, given that processor A is inactive while processor B is not. That is, instead of the calculation 25 of the power model for resource S being power_model (idle, temp), the calculation can be converted to E [power_model (idle, temp) | Proc A idle]. In several aspects, the probability distribution for the calculation of the expectation can be statically defined, either by domain, by profile or empirically determined at runtime by collecting actual usage statistics.

30  30

[0080] El proceso de aplicar algoritmos de aprendizaje para recopilar información estadística respecto a las condiciones, el rendimiento, duraciones, y otras características relacionadas con la aplicación y el rendimiento de las configuraciones de baja potencia pueden aplicarse en general para permitir que el rendimiento de ahorros de energía de configuraciones de baja potencia sea optimizado a las características de un dispositivo informático particular, así como a los patrones de uso de un usuario particular. Para llevar a cabo dicho aprendizaje, el 35 procesador puede realizar algoritmos de análisis estadísticos usando los diversos datos obtenidos de operaciones de modo de baja potencia para ajustar los procedimientos de selección de modo, valores de rendimiento de recursos y de otro modo ajustar los algoritmos implementados en el solucionador para reflejar la información obtenida de la supervisión de las operaciones del dispositivo. [0080] The process of applying learning algorithms to gather statistical information regarding the conditions, performance, durations, and other features related to the application and performance of low power configurations can be applied in general to allow the performance of Energy savings of low power configurations are optimized to the characteristics of a particular computing device, as well as to the usage patterns of a particular user. To carry out such learning, the processor can perform statistical analysis algorithms using the various data obtained from low power mode operations to adjust mode selection procedures, resource performance values and otherwise adjust the implemented algorithms. in the solver to reflect the information obtained from the supervision of the device operations.

40  40

[0081] En un procedimiento de aspecto adicional 220 que se ilustra en la FIG. 13, puede configurarse un procesador para recopilar estadísticas sobre los ahorros de energía reales conseguidos por varias configuraciones de baja potencia para basar la selección de modo en las características reales de consumo de energía del dispositivo. En el bloque 222, el procesador puede tener en cuenta la configuración particular de baja potencia a la que hay que acceder, la temperatura del dispositivo, el tiempo de inactividad esperado y el tiempo al comienzo de un estado de 45 inactividad. En el bloque 224, el procesador puede medir y almacenar el drenaje de potencia real a través del sistema cuando ha entrado en la configuración de baja potencia seleccionada. Esta medición puede realizarse al inicio del estado de baja potencia, durante todo el ciclo de inactividad, o al final del ciclo de inactividad, tal como parte del proceso de salir del estado de inactividad. En el paso 226, el procesador puede tener en cuenta la activación de interrupción y/o la activación del temporizador al final del estado de baja potencia. En el bloque 228, el 50 procesador puede actualizar los parámetros de datos de modo de recurso de baja potencia de recurso y/o la tabla de selección de modo de recurso de baja potencia para reflejar los ahorros reales de energía conseguidos en la configuración de baja potencia particular a la temperatura actual basándose en la información recopilada en el bloque 222 -226. En el bloque 230, el procesador puede calcular o actualizar estadísticas relativas a la distribución de interrupciones y activaciones de temporizador y utilizar esta información para actualizar la tabla de selección de 55 modo de recurso de baja potencia en el bloque 232. De esta manera, los parámetros utilizados por el procesador para seleccionar la configuración óptima de baja potencia basándose en los datos de configuración y condición de funcionamiento pueden refinarse basándose en el rendimiento real del dispositivo. Los ahorros de energía que pueden obtenerse en varios modos de recurso de baja potencia pueden variar dependiendo de la temperatura, la producción, la edad, la configuración de componentes específicos y muchos otros factores que no se pueden prever 60 con antelación. Además, este aspecto permite al procesador refinar los cálculos o las tablas de selección de modo de recurso de baja potencia utilizadas para seleccionar configuraciones de funcionamiento de inactividad basadas en el uso real. Por lo tanto, si un dispositivo informático experimenta típicamente temperaturas frías (por ejemplo, el propietario del dispositivo informático reside en Alaska), la tabla de selección de modo de recurso de baja potencia puede refinarse para proporcionar una mayor granularidad dentro del intervalo de temperaturas típicamente 65 experimentado por el dispositivo informático, en lugar de tratar de cubrir todo el intervalo potencial de temperaturas [0081] In an additional aspect procedure 220 illustrated in FIG. 13, a processor can be configured to collect statistics on the actual energy savings achieved by various low power configurations to base the mode selection on the actual power consumption characteristics of the device. In block 222, the processor can take into account the particular low power configuration to be accessed, the temperature of the device, the expected idle time and the time at the beginning of a state of inactivity. In block 224, the processor can measure and store the actual power drain through the system when it has entered the selected low power configuration. This measurement can be performed at the beginning of the low power state, during the entire idle cycle, or at the end of the idle cycle, as part of the process of exiting the idle state. In step 226, the processor may take into account interrupt activation and / or timer activation at the end of the low power state. In block 228, the processor may update the low power resource resource mode data parameters and / or the low power resource mode selection table to reflect the actual energy savings achieved in the low power configuration. particular power at the current temperature based on the information collected in block 222-226. In block 230, the processor can calculate or update statistics regarding the distribution of interruptions and timer activations and use this information to update the selection table of low power resource mode in block 232. In this way, the Parameters used by the processor to select the optimal low power configuration based on the configuration data and operating condition can be refined based on the actual performance of the device. The energy savings that can be obtained in various low power resource modes may vary depending on temperature, production, age, specific component configuration and many other factors that cannot be anticipated 60 in advance. In addition, this aspect allows the processor to refine the calculations or low power resource mode selection tables used to select inactivity operating configurations based on actual use. Therefore, if a computing device typically experiences cold temperatures (for example, the owner of the computing device resides in Alaska), the low power resource mode selection table can be refined to provide greater granularity within the temperature range typically 65 experienced by the computing device, instead of trying to cover the entire potential temperature range

que el dispositivo podría experimentar en otros lugares. De este modo, este procedimiento de aspecto permite al procesador determinar una configuración óptima de baja potencia basada en las características de funcionamiento reales del dispositivo en el momento y bajo las condiciones de funcionamiento. that the device could experience elsewhere. Thus, this aspect procedure allows the processor to determine an optimal low power configuration based on the actual operating characteristics of the device at the time and under the operating conditions.

[0082] En un procedimiento de aspecto adicional 240 que se ilustra en la FIG. 14, un procesador puede medir las 5 características de ahorro de energía de cada modo de recurso de baja potencia (es decir, cada modo de baja potencia de cada recurso) implementando selectivamente cada modo y midiendo el cambio resultante en la demanda de corriente o potencia. Mediante la medición de los ahorros reales de potencia conseguidos por cada modo de recurso de baja potencia, el dispositivo informático puede recopilar estadísticas útiles para seleccionar una configuración óptima de modo de baja potencia del sistema. Dado que los cambios de configuración y la edad del 10 dispositivo pueden afectar a los ahorros de energía conseguidos por modos de recurso de baja potencia particulares, este procedimiento permite al dispositivo informático tomar decisiones de configuración de baja potencia basadas en la configuración y condiciones de funcionamiento actuales que pueden haber cambiado desde que el dispositivo fue fabricado. Tales mediciones pueden realizarse también a diferentes temperaturas con el fin de obtener o actualizar información sobre las sensibilidades a la temperatura de los ahorros de energía potenciales de 15 los diversos modos de recurso de baja potencia. [0082] In an additional aspect procedure 240 illustrated in FIG. 14, a processor can measure the 5 energy saving characteristics of each low power resource mode (i.e., each low power mode of each resource) by selectively implementing each mode and measuring the resulting change in current or power demand . By measuring the actual power savings achieved by each low power resource mode, the computing device can collect useful statistics to select an optimal low power mode configuration of the system. Since configuration changes and the age of the device can affect the energy savings achieved by particular low power resource modes, this procedure allows the computing device to make low power configuration decisions based on the configuration and operating conditions. current that may have changed since the device was manufactured. Such measurements can also be made at different temperatures in order to obtain or update information on the temperature sensitivities of the potential energy savings of the various low power resource modes.

[0083] Haciendo referencia a la FIG. 14, en el procedimiento 240 en el bloque 241, cuando el procesador del dispositivo informático determina que está en un estado estable conocido y en una condición de funcionamiento que es propicia a realizar las mediciones, el procesador puede medir la temperatura del dispositivo y la demanda de 20 corriente o potencia usando sensores incluidos en el dispositivo. En este bloque, el procesador puede medir otras condiciones de funcionamiento que pueden influir en los ahorros de energía alcanzable con cada modo de recurso de baja potencia. En el bloque 242, el procesador puede seleccionar para la medición un recurso que tiene un modo de baja potencia. En el bloque 243, el procesador puede colocar el recurso seleccionado en uno seleccionado de sus modos de recurso de baja potencia. En el bloque 244, el procesador puede entonces medir la demanda de 25 corriente o potencia del sistema con el modo de recurso de baja potencia implementado. En el bloque 245, el procesador puede calcular los ahorros de energía conseguidos colocando el recurso seleccionado en el modo de recurso de baja potencia seleccionado. Esto puede lograrse restando la potencia medida en el bloque 244 de la potencia inicial medida en el bloque 241. En el bloque de determinación 246, el procesador puede determinar si hay otro recurso a medir. Si es así (es decir, el bloque de determinación 246 = "Sí"), el procesador puede volver al 30 bloque 242 para seleccionar el siguiente recurso para la medición. Una vez seleccionados todos los recursos y medidos los correspondientes ahorros de energía de modo de recurso de baja potencia (es decir, el bloque de determinación 246 = "No"), el procesador puede usar los ahorros de energía medidos para actualizar la tabla de selección de modo de baja potencia en el bloque 247. La tabla de selección de modo de baja potencia actualizada puede utilizarse para seleccionar una configuración de modo de baja potencia del sistema la próxima vez que el 35 procesador entre en un ciclo de reposo. En un aspecto, el procedimiento 240 puede repetirse periódicamente, especialmente cuando el procesador observe que la temperatura del sistema es diferente que en un proceso de medición anterior. Mediante la medición de los ahorros de energía conseguidos por cada uno de los modos de recurso de baja potencia a diferentes temperaturas, el procesador puede calcular o estimar sensibilidades a la temperatura de ahorros de energía potenciales de cada modo de recurso de baja potencia mediante análisis 40 aritméticos bien conocidos, como algoritmos de ajuste de curvas. Tales sensibilidades a la temperatura pueden utilizarse entonces en el proceso de selección de modos de recurso de baja potencia que se implementarán en una configuración de modo de baja potencia del sistema. [0083] Referring to FIG. 14, in procedure 240 in block 241, when the processor of the computing device determines that it is in a known stable state and in an operating condition that is conducive to the measurements, the processor can measure the temperature of the device and the demand of 20 current or power using sensors included in the device. In this block, the processor can measure other operating conditions that can influence the energy savings achievable with each low power resource mode. In block 242, the processor can select for measurement a resource that has a low power mode. In block 243, the processor can place the selected resource in a selected one of its low power resource modes. In block 244, the processor can then measure the system's current or power demand with the low power resource mode implemented. In block 245, the processor can calculate the energy savings achieved by placing the selected resource in the selected low power resource mode. This can be achieved by subtracting the power measured in block 244 from the initial power measured in block 241. In the determination block 246, the processor can determine if there is another resource to be measured. If so (ie, the determination block 246 = "Yes"), the processor may return to 30 block 242 to select the next resource for measurement. Once all resources have been selected and the corresponding low-power resource mode energy savings have been measured (that is, block 246 = "No"), the processor can use the measured energy savings to update the selection table Low power mode in block 247. The updated low power mode selection table can be used to select a low power mode setting of the system the next time the processor enters a standby cycle. In one aspect, procedure 240 may be repeated periodically, especially when the processor observes that the system temperature is different than in a previous measurement process. By measuring the energy savings achieved by each of the low power resource modes at different temperatures, the processor can calculate or estimate temperature sensitivities of potential energy savings of each low power resource mode by analysis 40 well-known arithmetic, such as curve fitting algorithms. Such temperature sensitivities can then be used in the process of selecting low power resource modes that will be implemented in a low power mode configuration of the system.

[0084] Los diversos aspectos proporcionan una serie de beneficios útiles a los usuarios y desarrolladores más allá 45 de simplemente ahorrar energía de la batería adicional. Como ventaja, los modos de recurso de baja potencia de varios recursos y sus definiciones son en su mayoría independientes del código que implementa los modos. Las llamadas de controlador relevantes pueden incluirse dentro de las funciones de "entrada" y "salida", por lo que el modo de recurso de baja potencia no se ve afectado. El proceso de solucionador (es decir, el bloque 38 en el procedimiento 26 descrito anteriormente) puede hacerse cargo de determinar cuándo debe entrarse o salirse del 50 modo de recurso de baja potencia basándose en datos fidedignos, tales como los datos de potencia y latencia de cada modo de recurso de baja potencia y las restricciones dinámicas (por ejemplo, requisitos de latencia) y las condiciones de funcionamiento presentes en el estado de funcionamiento actual. Por lo tanto, el desarrollador no tiene que tratar de prever combinaciones de tales parámetros con el fin de codificar adecuadamente los modos de recurso de baja potencia adecuados en el dispositivo. 55 [0084] The various aspects provide a number of useful benefits to users and developers beyond 45 of simply saving additional battery power. As an advantage, the low power resource modes of various resources and their definitions are mostly independent of the code that implements the modes. Relevant controller calls can be included within the "input" and "output" functions, so the low power resource mode is not affected. The solver process (i.e. block 38 in the procedure 26 described above) can be responsible for determining when the low power resource mode should be entered or exited based on reliable data, such as power and latency data of each low power resource mode and dynamic constraints (e.g. latency requirements) and operating conditions present in the current operating state. Therefore, the developer does not have to attempt to provide combinations of such parameters in order to properly encode the appropriate low power resource modes in the device. 55

[0085] Otra de las ventajas de los aspectos descritos anteriormente es que el dispositivo informático no está obligado a seleccionar un solo modo de recurso de baja potencia definido a partir de un conjunto preconfigurado o predefinido de modos del sistema, pero puede seleccionar una combinación de modos de recurso de baja potencia para implementar dinámicamente una configuración de baja potencia para el sistema basándose en el estado de 60 funcionamiento actual, los recursos, la condición de funcionamiento, el ciclo de reposo estimado, la configuración del dispositivo, etc. Esto es ventajoso porque los sistemas de gestión de potencia conocidos anteriores están configurados para seleccionar entre un conjunto de configuraciones predefinidas de baja potencia (por ejemplo, uno de modo 1, modo 2 o modo 3), mientras que los aspectos descritos anteriormente permiten a un dispositivo seleccionar dinámicamente uno o más modos de recurso de baja potencia para cada recurso disponible para entrar 65 en un modo de baja potencia, proporcionando una mayor flexibilidad para implementar las configuraciones de baja [0085] Another advantage of the aspects described above is that the computing device is not required to select a single low power resource mode defined from a pre-configured or predefined set of system modes, but can select a combination of Low power resource modes to dynamically implement a low power configuration for the system based on the current operating status, resources, operating condition, estimated idle cycle, device configuration, etc. This is advantageous because the above known power management systems are configured to select from a set of predefined low power configurations (for example, one of mode 1, mode 2 or mode 3), while the aspects described above allow a device dynamically select one or more low power resource modes for each available resource to enter 65 in a low power mode, providing greater flexibility to implement low power settings

potencia del sistema que mejor se adapten a las condiciones y estados actuales. Por ejemplo, supongamos que un procesador en particular tiene tres recursos A, B y C que tienen modos de recurso de baja potencia A', B' y C' respectivamente. Los modos de recurso de baja potencia pueden tener diferentes latencias, como el modo de recurso de baja potencia A' puede tener 0,4 ms de latencia, el modo de recurso de baja potencia B' puede tener 0,5 ms de latencia y el modo de recurso de baja potencia C' puede tener 0,6 ms de latencia. Si un cliente USB está 5 activo para que exista un requisito de latencia de 1 milisegundo en el sistema (por ejemplo, una latencia permisible de peor caso de 1 ms), los modos de baja potencia de los recursos A, B y C pueden ser habilitados o deshabilitados independientemente entre sí en tanto que la combinación de los modos de baja potencia seleccionados cumpla con el requisito de latencia de peor caso. Por ejemplo, si el procesador entra en un estado de inactividad y los recursos A, B y C están todos habilitados, el sistema puede seleccionar el modo de recurso de baja potencia A' (0,4 ms de 10 latencia), el modo de recurso de baja potencia B' (0,5 ms de latencia), el modo de recurso de baja potencia C' (0,6 ms de latencia), los modos A y B (0,9 ms de latencia) o los modos A y C (1 ms de latencia). Por lo tanto, en los diversos aspectos, una tarea de solucionador puede escoger el mejor conjunto de modos de recurso de baja potencia para ahorrar la mayor cantidad de energía dada la tolerancia a la latencia de peor caso de 1 ms. system power that best suits current conditions and conditions. For example, suppose a particular processor has three resources A, B and C that have low power resource modes A ', B' and C 'respectively. The low power resource modes may have different latencies, as the low power resource mode A 'may have 0.4 ms latency, the low power resource mode B' may have 0.5 ms latency and the Low power resource mode C 'may have 0.6 ms latency. If a USB client is active so that there is a latency requirement of 1 millisecond in the system (for example, an allowable worst case latency of 1 ms), the low power modes of resources A, B and C can be enabled or disabled independently of each other as long as the combination of the selected low power modes meets the worst case latency requirement. For example, if the processor enters an idle state and resources A, B and C are all enabled, the system can select the low power resource mode A '(0.4 ms of 10 latency), the mode of low power resource B '(0.5 ms latency), low power resource mode C' (0.6 ms latency), modes A and B (0.9 ms latency) or modes A and C (1 ms of latency). Therefore, in the various aspects, a solver task can choose the best set of low power resource modes to save the most energy given the worst case latency tolerance of 1 ms.

15  fifteen

[0086] Además, los sistemas típicos de administración de energía requieren que los clientes tengan un modo inactivo y un modo activo, y la tolerancia a la latencia depende de un estado de rendimiento actual. En los diversos aspectos descritos anteriormente, los mecanismos de cliente pueden estar "presentes" o "no presentes" en lugar de "activos" o "inactivos". Es decir, en los diversos aspectos, pueden atravesarse los diversos modos de recurso de baja potencia para eliminar estados posibles, en lugar de seleccionarse basándose en un estado de funcionamiento 20 (por ejemplo, activo o inactivo). Además, los diversos aspectos permiten a los clientes crear, registrar y/o ignorar modos de recurso de baja potencia para los diversos recursos y seleccionar dinámicamente una combinación de modos de recurso de baja potencia para permitir un gran número de posibles configuraciones de baja potencia del sistema. Esto permite a los clientes del sistema controlar adicionalmente, y afinar, los estados de baja potencia del dispositivo. 25 [0086] In addition, typical power management systems require customers to have an inactive mode and an active mode, and latency tolerance depends on a current performance status. In the various aspects described above, customer mechanisms may be "present" or "not present" instead of "active" or "inactive". That is, in the various aspects, the various low power resource modes can be traversed to eliminate possible states, instead of being selected based on an operating state 20 (for example, active or inactive). In addition, the various aspects allow customers to create, register and / or ignore low power resource modes for the various resources and dynamically select a combination of low power resource modes to allow a large number of possible low power configurations of the system. This allows system customers to additionally control and fine tune the low power states of the device. 25

[0087] Otra ventaja de los aspectos descritos anteriormente es que el procesador de dispositivo informático no necesita conocer los distintos modos de funcionamiento de los clientes del sistema. En los diversos aspectos, los clientes pueden enviar directamente solo su tolerancia a la latencia. Como tal, el procesador no necesita conocer los diversos detalles asociados con los estados de funcionamiento de cada cliente. El procesador solo necesita conocer 30 las tolerancias a la latencia registradas de los clientes y seleccionar los recursos de baja potencia para entrar en un modo de recurso de baja potencia basándose en las tolerancias a la latencia indicadas. En los diversos aspectos, el ajuste de las tolerancias y los modos de baja potencia pueden ser mediante entidades discretas. Por ejemplo, un cliente USB puede establecer una tolerancia a la latencia, pero no necesariamente un modo de baja potencia. Cada modo de recurso de baja potencia puede tener un conjunto de mecanismos de señalización para indicar si se puede 35 entrar en los mismos en cualquier ciclo de reposo dado que sea completamente independiente de la consideración de latencia. [0087] Another advantage of the aspects described above is that the computer device processor does not need to know the different modes of operation of the clients of the system. In various aspects, customers can directly send only their latency tolerance. As such, the processor does not need to know the various details associated with the operating states of each client. The processor only needs to know the registered latency tolerances of the customers and select the low power resources to enter a low power resource mode based on the indicated latency tolerances. In various aspects, the adjustment of tolerances and low power modes can be by discrete entities. For example, a USB client may establish a latency tolerance, but not necessarily a low power mode. Each low power resource mode may have a set of signaling mechanisms to indicate whether they can be entered in any idle cycle since it is completely independent of the latency consideration.

[0088] Como una ventaja adicional, puede proporcionarse un nuevo nodo de programación NPA en un aspecto para permitir a los clientes especificar el tiempo que esperan estar en reposo. Por ejemplo, se puede proporcionar el nodo 40 de programación NPA "/núcleo/procesador/activación" para permitir que los clientes especifiquen que esperan estar en reposo (es decir, sin utilizar el procesador o los recursos) durante no más de "X" microsegundos (hasta 71 horas). Dicha capacidad de programación puede simplificar el desarrollo de aplicaciones de cliente para compatibilidad con estados inactivos del procesador y configuraciones de baja potencia. [0088] As an additional advantage, a new NPA programming node can be provided in one aspect to allow customers to specify the time they expect to be at rest. For example, NPA programming node 40 / "core / processor / activation" can be provided to allow customers to specify that they expect to be at rest (that is, without using the processor or resources) for no more than "X" microseconds (up to 71 hours). Such programming capability can simplify the development of client applications for compatibility with inactive processor states and low power configurations.

45  Four. Five

[0089] En un aspecto adicional, los resultados de los cálculos de solucionador, tales como los descritos anteriormente con referencia a la FIG. 7, tal vez almacenados en memoria caché de modo que la configuración óptima de baja potencia pueda ser reutilizada sin tener que volver a realizar el algoritmo de solucionador cuando las mismas o similares condiciones de funcionamiento (por ejemplo, estado de funcionamiento, temperatura y restricciones de latencia) están presentes en el momento en que se puede entrar en un estado de inactividad. De 50 esta manera, el procesador puede acceder rápidamente al estado de inactividad omitiendo el proceso de realizar el algoritmo de solucionador, al tiempo que se obtienen unos ahorros de energía óptimos o casi óptimos. En un aspecto adicional, las condiciones y el estado de funcionamiento pueden ser analizados estadísticamente de manera que las configuraciones óptimas de baja potencia almacenadas en memoria caché puedan estar relacionadas con intervalos de condiciones y estados determinados estadísticamente. 55 [0089] In a further aspect, the results of the solver calculations, such as those described above with reference to FIG. 7, perhaps cached so that the optimal low power configuration can be reused without having to redo the solver algorithm when the same or similar operating conditions (for example, operating status, temperature and restrictions of latency) are present at the moment when you can enter a state of inactivity. In this way, the processor can quickly access the idle state by omitting the process of performing the solver algorithm, while obtaining optimal or almost optimal energy savings. In a further aspect, the conditions and the operating status can be statistically analyzed so that the optimal low power configurations stored in cache memory can be related to statistically determined condition ranges and conditions. 55

[0090] Los dispositivos móviles típicos 250 adecuados para el uso con los diversos aspectos tendrán en común los componentes ilustrados en la FIG. 15. Por ejemplo, un dispositivo receptor móvil a modo de ejemplo 250 puede incluir un procesador 251 acoplado a la memoria interna 252, a una pantalla 253 y a un altavoz 259. Adicionalmente, el dispositivo móvil 250 puede tener una antena 254 para enviar y recibir radiación electromagnética que se conecta 60 a un receptor multimedia móvil 256 acoplado al procesador 251. En algunos aspectos, el receptor multimedia móvil 256 puede incluir un procesador interno 258, tal como un procesador de señal digital (DSP) para controlar las operaciones del receptor 256 y comunicarse con el procesador de dispositivo 251. Típicamente, los dispositivos móviles también incluyen un teclado 256 o un teclado en miniatura y botones o interruptores oscilantes de selección de menú 257 para recibir las entradas de usuario. 65 [0090] Typical mobile devices 250 suitable for use with the various aspects will have in common the components illustrated in FIG. 15. For example, an exemplary mobile receiving device 250 may include a processor 251 coupled to internal memory 252, a screen 253 and a speaker 259. Additionally, mobile device 250 may have an antenna 254 for sending and receiving electromagnetic radiation that connects 60 to a mobile multimedia receiver 256 coupled to processor 251. In some aspects, mobile multimedia receiver 256 may include an internal processor 258, such as a digital signal processor (DSP) to control the operations of receiver 256 and communicate with the device processor 251. Typically, mobile devices also include a 256 keypad or a miniature keyboard and oscillating buttons or menu selection switches 257 to receive user inputs. 65

[0091] El procesador 251 puede ser cualquier microprocesador programable, microordenador o chip o chips de múltiples procesadores que pueden configurarse mediante instrucciones (aplicaciones) de software ejecutables por procesador para realizar una diversidad de funciones, incluyendo las funciones de los diversos aspectos que se han descrito en el presente documento. Además, las funciones de los diversos aspectos pueden implementarse en un procesador DSP 258 dentro del receptor 256 configurado con instrucciones ejecutables por DSP. Típicamente, las 5 aplicaciones de software y las instrucciones ejecutables por procesador pueden almacenarse en la memoria interna 252 antes de accederse a las mismas y cargarse en el procesador 251. En algunos dispositivos móviles, el procesador 251 puede incluir una memoria interna suficiente para almacenar las instrucciones del software de aplicación. En algunos dispositivos móviles, la memoria segura puede estar en un chip de memoria independiente acoplado al procesador 251. En muchos dispositivos móviles 250, la memoria interna 252 puede ser una memoria 10 volátil o no volátil, tal como una memoria flash, o una mezcla de ambas. Para los fines de esta descripción, una referencia general a la memoria se refiere a toda memoria accesible por el procesador 251, incluyendo una memoria interna 252, una memoria extraíble conectada al dispositivo móvil y una memoria en el propio procesador 251. [0091] The processor 251 can be any programmable microprocessor, microcomputer or chip or multi-processor chips that can be configured by processor-executable software instructions (applications) to perform a variety of functions, including the functions of the various aspects that have been described in this document. In addition, the functions of the various aspects can be implemented in a DSP 258 processor within receiver 256 configured with instructions executable by DSP. Typically, the 5 software applications and instructions executable by processor can be stored in internal memory 252 before being accessed and loaded into processor 251. In some mobile devices, processor 251 may include sufficient internal memory to store the Application software instructions. In some mobile devices, the secure memory may be in a separate memory chip coupled to the processor 251. In many mobile devices 250, the internal memory 252 may be a volatile or non-volatile memory 10, such as a flash memory, or a mixture of both. For the purposes of this description, a general reference to the memory refers to any memory accessible by the processor 251, including an internal memory 252, a removable memory connected to the mobile device and a memory in the processor 251 itself.

[0092] Las descripciones de los procedimientos anteriores y los diagramas de flujo de proceso se proporcionan 15 simplemente como ejemplos ilustrativos y no están destinados a requerir o implicar que los pasos de los diversos aspectos se deban realizar en el orden presentado. Como apreciará un experto en la técnica, los pasos en los aspectos anteriores se pueden realizar en cualquier orden. Las palabras tales como "a partir de entonces", "entonces", "siguiente", etc. no pretenden limitar el orden de los pasos; estas palabras se utilizan simplemente para guiar al lector a través de la descripción de los procedimientos. Además, cualquier referencia a elementos de 20 reivindicación en singular, por ejemplo, utilizando los artículos "un", "una", "unos", "unas", "el", "la", "los" o "las" no debe interpretarse como limitación del elemento al singular. [0092] The descriptions of the foregoing procedures and process flow diagrams are provided simply as illustrative examples and are not intended to require or imply that the steps of the various aspects should be performed in the order presented. As one skilled in the art will appreciate, the steps in the above aspects can be performed in any order. Words such as "thereafter", "then", "next", etc. they are not intended to limit the order of the steps; These words are simply used to guide the reader through the description of the procedures. In addition, any reference to elements of the singular claim, for example, using the articles "a", "a", "ones", "ones", "the", "the", "the" or "the" no It should be interpreted as limiting the element to the singular.

[0093]Los diversos bloques lógicos, módulos, circuitos y pasos de algoritmo ilustrativos, descritos en relación con los aspectos divulgados en el presente documento pueden implementarse como hardware electrónico, software 25 informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito, en general, diversos componentes, bloques, módulos, circuitos y pasos ilustrativos en lo que respecta a su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicación específica y las restricciones de diseño impuestas al sistema completo. Los expertos en la técnica pueden implementar la funcionalidad descrita de formas distintas para cada aplicación particular, pero no debe interpretarse 30 que dichas decisiones de implementación suponen una salida del alcance de la presente invención. [0093] The various logical blocks, modules, circuits and illustrative algorithm steps described in relation to the aspects disclosed herein can be implemented as electronic hardware, computer software or combinations of both. To clearly illustrate this interchangeability of hardware and software, previously described, in general, various components, blocks, modules, circuits and illustrative steps in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design restrictions imposed on the entire system. Those skilled in the art can implement the described functionality in different ways for each particular application, but it should not be interpreted that such implementation decisions imply an exit from the scope of this invention.

[0094] El hardware utilizado para implementar las diversas lógicas, bloques lógicos, módulos y circuitos ilustrativos descritos en relación con los aspectos divulgados en el presente documento pueden implementarse o realizarse con un procesador de propósito general, un procesador de señales digitales (DSP), un DSP en un chip de receptor de 35 radiodifusión multimedia, un circuito integrado específico de aplicación (ASIC), una matriz de puertas programables de campo (FPGA) u otro dispositivo de lógica programable, lógica de transistor o puertas discretas, componentes de hardware discretos, o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de uso general puede ser un microprocesador pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un 40 procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. De forma alternativa, algunos pasos o procedimientos pueden realizarse mediante circuitería que es específica para una función dada. [0094] The hardware used to implement the various logic, logic blocks, modules and illustrative circuits described in relation to the aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), a DSP on a multimedia broadcasting receiver chip, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, transistor logic or discrete gates, discrete hardware components , or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor but, alternatively, the processor may be any conventional processor, controller, microcontroller or state machine. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors together with a DSP core or any other such configuration. Alternatively, some steps or procedures may be performed by circuitry that is specific to a given function.

45  Four. Five

[0095] En uno o más aspectos a modo de ejemplo, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de estos. Si se implementan en software, las funciones pueden almacenarse o transmitirse como una o varias instrucciones o código en un medio legible por ordenador. Los pasos de un procedimiento o algoritmo divulgados en el presente documento pueden implementarse en un módulo de software ejecutable por un procesador que pueda residir en un medio legible por ordenador. Los medios legibles por 50 ordenador incluyen tanto medios de almacenamiento informático como medios de comunicación, incluido cualquier medio que facilite la transferencia de un programa informático de un lugar a otro. Un medio de almacenamiento puede ser cualquier medio disponible al que pueda accederse mediante un ordenador. A modo de ejemplo, y no de limitación, dichos medios legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otros dispositivos de almacenamiento de disco óptico, de almacenamiento de disco magnético u otros dispositivos de 55 almacenamiento magnético o cualquier otro medio que pueda usarse para transportar o almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medios legibles por ordenador. Por ejemplo, si el software se transmite desde un sitio web, un servidor u otra fuente remota, usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas 60 tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas, se incluyen en la definición de medio. El término disco, como se usa en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray donde los discos reproducen usualmente datos de forma magnética, mientras que el resto de los discos reproducen datos de forma óptica con láseres. Las 65 combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador. [0095] In one or more aspects by way of example, the described functions may be implemented in hardware, software, firmware or any combination thereof. If implemented in software, the functions can be stored or transmitted as one or more instructions or code in a computer-readable medium. The steps of a procedure or algorithm disclosed herein can be implemented in a software module executable by a processor that can reside in a computer-readable medium. Computer-readable media includes both computer storage media and communication media, including any media that facilitates the transfer of a computer program from one place to another. A storage medium can be any available media that can be accessed by a computer. By way of example, and not limitation, said computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage or other magnetic storage devices or any other means that can be used to transport or store a desired program code in the form of instructions or data structures and which can be accessed by a computer. In addition, any connection properly receives the name of computer readable media. For example, if the software is transmitted from a website, server or other remote source, using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technologies 60 such as infrared , radio and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwave, are included in the definition of medium. The term disc, as used herein, includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a flexible disc and a Blu-ray disc where the discs usually play data magnetically, while the rest of the discs reproduce data optically with lasers. The 65 combinations of the above should also be included within the scope of computer readable media.

Adicionalmente, las operaciones de un procedimiento o algoritmo pueden residir como un código o como cualquier combinación o conjunto de códigos e instrucciones en un medio legible por máquina y un medio legible por ordenador, que puedan incorporarse a un producto de programa informático. La anterior descripción de los modos de realización divulgados se proporciona para permitir que cualquier experto en la técnica realice o use la presente invención. Diversas modificaciones de estos modos de realización resultarán fácilmente evidentes a los expertos en 5 la técnica, y los principios genéricos definidos en el presente documento pueden aplicarse a otros modos de realización sin apartarse del espíritu o el alcance de la invención. Por lo tanto, la presente invención no pretende limitarse a los modos de realización mostrados en el presente documento, sino que se le concede el alcance más amplio compatible con las siguientes reivindicaciones y los principios y características novedosos divulgados en el presente documento. 10 Additionally, the operations of a procedure or algorithm may reside as a code or as any combination or set of codes and instructions in a machine-readable medium and a computer-readable medium, which may be incorporated into a computer program product. The foregoing description of the disclosed embodiments is provided to allow any person skilled in the art to make or use the present invention. Various modifications of these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein can be applied to other embodiments without departing from the spirit or scope of the invention. Therefore, the present invention is not intended to be limited to the embodiments shown herein, but is granted the broadest scope compatible with the following claims and the novel principles and features disclosed herein. 10

[0096] De acuerdo con un aspecto de la presente invención, se proporciona un dispositivo informático que tiene al menos un procesador, que comprende: [0096] In accordance with one aspect of the present invention, a computer device is provided having at least one processor, comprising:

medios para establecer un bit de indicador asociado con un recurso cuando el recurso no está en uso, en los que 15 el recurso es uno de una pluralidad de recursos; means for setting a flag bit associated with a resource when the resource is not in use, in which the resource is one of a plurality of resources;

medios para identificar los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración de bits de indicador cuando un procesador puede entrar en un estado de inactividad; means for identifying resources that can be placed in a low power mode based on the configuration of indicator bits when a processor can enter a state of inactivity;

20  twenty

medios para registrar un requisito de latencia para cada uno de los recursos identificados; means to record a latency requirement for each of the identified resources;

medios para seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados; means for selecting a more stringent latency requirement among the registered latency requirements;

medios para evaluar en el dispositivo informático los modos de baja potencia para cada recurso que se puede 25 colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda la tolerancia a la latencia más estricta seleccionada; means for evaluating in the computing device the low power modes for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a requirement of combined latency that exceeds the strictest latency tolerance selected;

medios para seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de 30 energía potenciales y tenga un requisito de latencia total que sea menor o igual que el requisito de latencia de peor caso seleccionado; y means for selecting a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the worst case latency requirement selected; Y

medios para entrar en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función de entrada de cada uno de los modos de baja potencia seleccionados en cada uno de los recursos 35 identificados. means for entering the selected combination of low power resource modes by executing an input function of each of the low power modes selected in each of the resources identified.

[0097] El medio para seleccionar una combinación de modos de recurso de baja potencia puede comprender medios para la ejecución de un algoritmo de solución de problemas de mochila para los distintos recursos y modos de baja potencia. 40 [0097] The means for selecting a combination of low power resource modes may comprise means for executing a backpack troubleshooting algorithm for the various resources and low power modes. 40

[0098] El dispositivo informático puede comprender además: [0098] The computing device may further comprise:

medios para determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y 45 means for determining a time in which the processor is expected to remain in a state of inactivity; and 45

medios para determinar los ahorros de energía potenciales de cada modo de recurso de baja potencia evaluado basándose en unos ahorros de energía por unidad de tiempo potenciales a una temperatura actual multiplicados por el tiempo de inactividad esperado determinado. means for determining the potential energy savings of each low power resource mode evaluated based on potential energy savings per unit of time at a current temperature multiplied by the expected expected downtime.

50  fifty

[0099] El dispositivo informático puede comprender además: [0099] The computing device may further comprise:

medios para medir, cuando el dispositivo está en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente; means for measuring, when the device is in a known stable state, demand for temperature and power or temperature and current;

55  55

medios para seleccionar un recurso para la medición; means to select a resource for measurement;

medios para colocar el recurso seleccionado en un modo de recurso de baja potencia; means for placing the selected resource in a low power resource mode;

medios para medir la demanda de corriente o potencia mientras el recurso seleccionado está en el modo de 60 recurso de baja potencia; y means for measuring the demand for current or power while the selected resource is in the low power 60 mode; Y

medios para repetir los pasos de seleccionar un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia hasta que la demanda de corriente o potencia durante un modo de recurso 65 de baja potencia se haya medido para todos los recursos que tienen un modo de recurso de baja potencia, means for repeating the steps of selecting a next resource, placing the selected resource in a low power resource mode and measuring the power or current demand while the selected resource is in the low power resource mode until the current demand or power during a low power resource mode 65 has been measured for all resources that have a low power resource mode,

en el que medios para seleccionar una combinación de modos de recurso de baja potencia que maximicen los ahorros de energía potenciales comprenden medios para utilizar la demanda de potencia o corriente medida asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia. wherein means for selecting a combination of low power resource modes that maximize potential energy savings comprise means for utilizing the power demand or measured current associated with each low power resource mode for determining potential energy savings of a combination of low power resource modes.

5  5

[0100] El dispositivo informático puede comprender además: [0100] The computing device may further comprise:

medios para repetir las operaciones expuestas en la reivindicación 3 a diferentes temperaturas; y means for repeating the operations set forth in claim 3 at different temperatures; Y

medios para determinar una sensibilidad a la temperatura de la demanda de corriente o potencia asociada con 10 cada modo de recurso de baja potencia, means for determining a temperature sensitivity of the current or power demand associated with each mode of low power resource,

en el que los medios para seleccionar una combinación de modos de recurso de baja potencia que maximizan los ahorros de energía potenciales comprenden: wherein the means for selecting a combination of low power resource modes that maximize potential energy savings include:

medios para medir una temperatura del dispositivo informático; y 15 means for measuring a temperature of the computing device; and 15

medios para utilizar la sensibilidad a la temperatura determinada de la demanda de potencia o corriente asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia a la temperatura del dispositivo informático medida. means for utilizing the determined temperature sensitivity of the power or current demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes at the temperature of the measured computing device.

20  twenty

[0101] Los medios para la evaluación de modos de recurso de baja potencia para cada recurso que se puede colocar en un modo de baja potencia puede comprender medios para llevar a cabo un proceso de búsqueda en la tabla utilizando la tabla de datos de selección del modo de baja potencia utilizando el ahorro de energía potencial, el tiempo de inactividad estimado y las condiciones de funcionamiento. [0101] The means for the evaluation of low power resource modes for each resource that can be placed in a low power mode may comprise means for carrying out a search process in the table using the data selection table of the Low power mode using potential energy savings, estimated downtime and operating conditions.

25  25

[0102] Las condiciones de funcionamiento pueden incluir un valor de temperatura. [0102] Operating conditions may include a temperature value.

[0103] El dispositivo informático puede comprender además: [0103] The computing device may further comprise:

medios para recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y 30 means for collecting statistics on the operating conditions in the computing device; and 30

medios para actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento recopiladas. means for updating the low power mode selection data table based on the statistics of operating conditions collected.

[0104] Las condiciones de funcionamiento pueden seleccionarse del grupo que incluye la temperatura, el consumo 35 de energía de determinados modos de recurso de baja potencia, los tiempos de inactividad experimentados en diferentes estados de funcionamiento y los patrones típicos de uso de dispositivos. [0104] The operating conditions can be selected from the group that includes temperature, power consumption of certain low power resource modes, idle times experienced in different operating states, and typical device usage patterns.

[0105] El dispositivo informático puede comprender además medios para determinar si el dispositivo informático está conectado a la alimentación externa, en el que los medios para la actualización de la tabla de datos de selección del 40 modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento se obtienen cuando el dispositivo informático está conectado a la alimentación externa. [0105] The computing device may further comprise means for determining if the computing device is connected to external power, in which the means for updating the selection data table of the low power mode based on the condition statistics Operational are obtained when the computing device is connected to external power.

[0106] De acuerdo con un aspecto de la presente invención, se proporciona un aparato para conservar la energía en un dispositivo informático, que comprende: 45 [0106] In accordance with one aspect of the present invention, an apparatus for conserving energy in a computer device is provided, comprising:

una memoria intermedia; y a buffer; Y

un procesador acoplado a la memoria intermedia, en el que el procesador está configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden: 50 a processor coupled to the buffer, in which the processor is configured with instructions executable by processor to perform operations comprising: 50

establecer un bit de indicador asociado con un recurso cuando el recurso no está en uso, en el que el recurso es uno de una pluralidad de recursos; establish a flag bit associated with a resource when the resource is not in use, in which the resource is one of a plurality of resources;

identificar los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración 55 del bit indicador cuando un procesador puede entrar en un estado de inactividad; identify the resources that can be placed in a low power mode based on the configuration 55 of the indicator bit when a processor can enter an idle state;

registrar un requisito de latencia para cada uno de los recursos identificados; register a latency requirement for each of the identified resources;

seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados; 60 select a more stringent latency requirement among the registered latency requirements; 60

evaluar en el dispositivo informático los modos de baja potencia para cada recurso que se puede colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda la tolerancia a la latencia más estricta seleccionada; 65 evaluate in the computing device the low power modes for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a combined latency requirement that exceed the most strict latency tolerance selected; 65

seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales y tenga un requisito de latencia total que sea menor o igual que el requisito de latencia de peor caso seleccionado; y select a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the worst case latency requirement selected; Y

entrar en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función de 5 entrada de cada uno de los modos de baja potencia seleccionados en cada uno de los recursos identificados. enter the selected combination of low power resource modes by executing a function of 5 input of each of the low power modes selected in each of the identified resources.

[0107] El procesador puede estar configurado además con instrucciones ejecutables por procesador tales que la selección de una combinación de modos de recurso de baja potencia comprenda la ejecución de un algoritmo de solución de problemas de mochila para los distintos recursos y modos de baja potencia. El procesador puede 10 configurarse con instrucciones ejecutables por el procesador para realizar operaciones que comprenden además: [0107] The processor may also be configured with instructions executable by processor such that the selection of a combination of low power resource modes comprises the execution of a backpack troubleshooting algorithm for the various resources and low power modes. The processor can be configured with instructions executable by the processor to perform operations that further comprise:

determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y determine a time in which the processor is expected to remain in a state of inactivity; Y

determinar los ahorros de energía potenciales de cada uno de los modos de recurso de baja potencia evaluados 15 basándose en unos ahorros de energía por unidad de tiempo a una temperatura actual multiplicados por el tiempo de inactividad esperado determinado. determine the potential energy savings of each of the low power resource modes evaluated 15 based on energy savings per unit of time at a current temperature multiplied by the expected expected downtime.

[0108] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además: 20 [0108] The processor may be configured with instructions executable by processor to perform operations that further comprise:

medir, cuando el dispositivo se encuentra en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente; measure, when the device is in a known stable state, demand for temperature and power or temperature and current;

seleccionar un recurso para la medición; 25 select a resource for measurement; 25

colocar el recurso seleccionado en un modo de recurso de baja potencia; place the selected resource in a low power resource mode;

medir la corriente o la demanda de potencia mientras el recurso seleccionado está en el modo de recurso de baja potencia; y 30 measure the current or power demand while the selected resource is in the low power resource mode; and 30

repetir los pasos de seleccionar un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia hasta que se haya medido la demanda de corriente o potencia durante un modo de recurso de baja potencia para todos los recursos que tienen un modo de recurso de baja potencia, 35 Repeat the steps to select a next resource, place the selected resource in a low power resource mode and measure the power or current demand while the selected resource is in the low power resource mode until the demand for current or power during a low power resource mode for all resources that have a low power resource mode, 35

en el que la selección de una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende el uso de la demanda de potencia o corriente medida asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia. wherein the selection of a combination of low power resource modes that maximizes potential energy savings comprises the use of the measured power or current demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes.

40  40

[0109] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además: [0109] The processor may be configured with instructions executable by processor to perform operations that further comprise:

repetir las operaciones indicadas en la reivindicación 3 a diferentes temperaturas; y repeat the operations indicated in claim 3 at different temperatures; Y

45  Four. Five

determinar una sensibilidad a la temperatura de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia, en el que seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende: determining a temperature sensitivity of the current or power demand associated with each low power resource mode, in which to select a combination of low power resource modes that maximizes potential energy savings comprises:

medir una temperatura del dispositivo informático; y 50 measure a temperature of the computing device; and 50

utilizar la sensibilidad a la temperatura determinada de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia a la temperatura del dispositivo informático medida. use the determined temperature sensitivity of the current or power demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes at the temperature of the measured computing device.

55  55

[0110] El procesador puede estar configurado con instrucciones ejecutables por procesador de tal manera que la evaluación de modos de recurso de baja potencia para cada recurso que pueda colocarse en un modo de baja potencia comprenda llevar a cabo un proceso de búsqueda en la tabla utilizando la tabla de datos de selección del modo de baja potencia utilizando el ahorro de energía potencial, el tiempo de inactividad estimado y las condiciones de funcionamiento. 60 [0110] The processor may be configured with instructions executable by processor in such a way that the evaluation of low power resource modes for each resource that can be placed in a low power mode comprises carrying out a table search process using the low power mode selection data table using the potential energy savings, estimated downtime and operating conditions. 60

[0111] El procesador puede estar configurado con instrucciones ejecutables por procesador de tal manera que las condiciones de funcionamiento incluyan un valor de temperatura. [0111] The processor may be configured with instructions executable by processor such that the operating conditions include a temperature value.

[0112] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar 65 operaciones que comprenden además: [0112] The processor may be configured with instructions executable by processor to perform 65 operations which further comprise:

recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y collect statistics on the operating conditions in the computing device; Y

actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento recopiladas. 5 update the low power mode selection data table based on the statistics of operating conditions collected. 5

[0113] El procesador puede estar configurado con instrucciones ejecutables por procesador de tal manera que las condiciones de funcionamiento se seleccionan entre el grupo incluyendo la temperatura, el consumo de energía de determinados modos de recurso de baja potencia, los tiempos de inactividad experimentados en diferentes estados de funcionamiento y los patrones típicos de uso de dispositivos. 10 [0113] The processor can be configured with instructions executable by processor in such a way that the operating conditions are selected from the group including temperature, power consumption of certain low power resource modes, idle times experienced in different operating states and typical device usage patterns. 10

[0114] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además: [0114] The processor may be configured with instructions executable by processor to perform operations that further comprise:

determinar si el dispositivo informático está conectado a una alimentación externa, 15 determine if the computing device is connected to an external power supply, 15

en el que la actualización de la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento se lleva a cabo cuando el dispositivo informático está conectado a una alimentación externa. in which the updating of the low power mode selection data table based on the operating condition statistics is carried out when the computing device is connected to an external power supply.

20  twenty

[0115] De acuerdo con un aspecto de la presente invención, se proporciona un medio de almacenamiento no transitoria que tiene almacenado en el mismo instrucciones de software ejecutables por procesador configurado para hacer que un procesador realice operaciones de conservación de potencia en un dispositivo informático, operaciones que comprenden: [0115] In accordance with one aspect of the present invention, a non-transient storage medium is provided having stored in the same software executable instructions per processor configured to cause a processor to perform power conservation operations on a computing device, operations comprising:

25  25

establecer un bit de indicador asociado con un recurso cuando el recurso no está en uso, en el que el recurso es uno de una pluralidad de recursos; establish a flag bit associated with a resource when the resource is not in use, in which the resource is one of a plurality of resources;

identificar los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración del bit indicador cuando un procesador puede entrar en un estado de inactividad; 30 identify the resources that can be placed in a low power mode based on the configuration of the indicator bit when a processor can enter an idle state; 30

registrar un requisito de latencia para cada uno de los recursos identificados; register a latency requirement for each of the identified resources;

seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados; select a more stringent latency requirement among the registered latency requirements;

35  35

evaluar en el dispositivo informático los modos de baja potencia para cada recurso que se puede colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda la tolerancia a la latencia más estricta seleccionada; evaluate in the computing device the low power modes for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a combined latency requirement that exceed the most strict latency tolerance selected;

40  40

seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales y tenga un requisito de latencia total que sea menor o igual que el requisito de latencia de peor caso seleccionado; y select a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the worst case latency requirement selected; Y

entrar en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función de entrada 45 de cada uno de los modos de baja potencia seleccionados en cada uno de los recursos identificados. enter the selected combination of low power resource modes by executing an input function 45 of each of the low power modes selected in each of the identified resources.

[0116] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones tales que la selección de una combinación de modos de recurso de baja potencia comprende la ejecución de un algoritmo de solución de problemas de mochila para los distintos 50 recursos y modos de baja potencia. [0116] The stored processor-executable software instructions may be configured to cause a processor to perform operations such that the selection of a combination of low power resource modes comprises the execution of a backpack troubleshooting algorithm for the various 50 resources and low power modes.

[0117] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además: [0117] The stored processor-executable software instructions may be configured to cause a processor to perform operations that further comprise:

55  55

determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y determine a time in which the processor is expected to remain in a state of inactivity; Y

determinar los ahorros de energía potenciales de cada uno de los modos de recurso de baja potencia evaluados basándose en unos ahorros de energía por unidad de tiempo a una temperatura actual multiplicados por el tiempo de inactividad esperado determinado. 60 determine the potential energy savings of each of the low power resource modes evaluated based on energy savings per unit of time at a current temperature multiplied by the expected expected downtime. 60

[0118] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además: [0118] Stored processor executable software instructions may be configured to cause a processor to perform operations that further comprise:

medir, cuando el dispositivo se encuentra en un estado estable conocido, demanda de temperatura y potencia o 65 temperatura y corriente; seleccionar un recurso para la medición; measure, when the device is in a known stable state, demand for temperature and power or temperature and current; select a resource for measurement;

colocar el recurso seleccionado en un modo de recurso de baja potencia; place the selected resource in a low power resource mode;

medir la corriente o la demanda de potencia mientras el recurso seleccionado está en el modo de recurso de baja potencia; y 5 measure the current or power demand while the selected resource is in the low power resource mode; and 5

repetir los pasos de seleccionar un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia hasta que se haya medido la demanda de corriente o potencia durante un modo de recurso de baja potencia para todos los recursos que tienen un modo de recurso de baja potencia, 10 Repeat the steps to select a next resource, place the selected resource in a low power resource mode and measure the power or current demand while the selected resource is in the low power resource mode until the demand for current or power during a low power resource mode for all resources that have a low power resource mode, 10

en el que la selección de una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende el uso de la demanda de potencia o corriente medida asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia. wherein the selection of a combination of low power resource modes that maximizes potential energy savings comprises the use of the measured power or current demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes.

15  fifteen

[0119] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además: [0119] Stored processor executable software instructions may be configured to cause a processor to perform operations that further comprise:

repetir las operaciones indicadas en la reivindicación 3 a diferentes temperaturas; y repeat the operations indicated in claim 3 at different temperatures; Y

20  twenty

determinar una sensibilidad a la temperatura de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia, en el que seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende: determining a temperature sensitivity of the current or power demand associated with each low power resource mode, in which to select a combination of low power resource modes that maximizes potential energy savings comprises:

medir una temperatura del dispositivo informático; y 25 measure a temperature of the computing device; and 25

utilizar la sensibilidad a la temperatura determinada de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de una combinación de modos de recurso de baja potencia a la temperatura del dispositivo informático medida. use the determined temperature sensitivity of the current or power demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes at the temperature of the measured computing device.

30  30

[0120] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones tales que la evaluación de modos de recurso de baja potencia para cada recurso que pueda colocarse en un modo de baja potencia comprenda llevar a cabo un proceso de búsqueda en la tabla utilizando la tabla de datos de selección del modo de baja potencia utilizando el ahorro de energía potencial, el tiempo de inactividad estimado y las condiciones de funcionamiento. 35 [0120] The stored processor-executable software instructions may be configured to cause a processor to perform operations such that the evaluation of low power resource modes for each resource that can be placed in a low power mode comprises carrying out a process. Search in the table using the low power mode selection data table using the potential energy savings, estimated downtime and operating conditions. 35

[0121] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones de tal manera que las condiciones de funcionamiento incluyan un valor de temperatura. [0121] The stored processor executable software instructions may be configured to cause a processor to perform operations such that the operating conditions include a temperature value.

40  40

[0122] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además: [0122] The stored processor-executable software instructions may be configured to cause a processor to perform operations that further comprise:

recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y collect statistics on the operating conditions in the computing device; Y

45  Four. Five

actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento recopiladas. update the low power mode selection data table based on the statistics of operating conditions collected.

[0123] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones de tal manera que las condiciones de funcionamiento se seleccionan 50 entre el grupo incluyendo la temperatura, el consumo de energía de determinados modos de recurso de baja potencia, los tiempos de inactividad experimentados en diferentes estados de funcionamiento, y los patrones típicos de uso del dispositivo. [0123] The stored processor-executable software instructions may be configured to cause a processor to perform operations such that the operating conditions are selected from the group including the temperature, the power consumption of certain low resource resource modes. power, idle times experienced in different operating states, and typical device usage patterns.

[0124] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para 55 hacer que un procesador realice operaciones que comprenden además: [0124] The stored processor-executable software instructions may be configured to cause a processor to perform operations that further comprise:

determinar si el dispositivo informático está conectado a una alimentación externa, en el que la actualización de la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento se lleva a cabo cuando el dispositivo informático está conectado a una alimentación externa. 60 determine if the computing device is connected to an external power supply, in which the updating of the low power mode selection data table based on the operating condition statistics is carried out when the computing device is connected to a power supply external 60

Claims (15)

REIVINDICACIONES 1. Un procedimiento para conservar energía en un dispositivo informático que tiene al menos un procesador, que comprende: 1. A method for conserving energy in a computing device that has at least one processor, comprising: 5  5 establecer (14) un bit de indicador asociado con un recurso, en el que el recurso es uno de una pluralidad de recursos utilizados por un procesador; establish (14) an indicator bit associated with a resource, in which the resource is one of a plurality of resources used by a processor; identificar (28) los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración de bit de indicador; 10 identify (28) the resources that can be placed in a low power mode based on the indicator bit configuration; 10 registrar (30) un requisito de latencia para cada uno de los recursos identificados; register (30) a latency requirement for each of the identified resources; seleccionar (30) un requisito de latencia más corto entre los requisitos de latencia registrados; select (30) a shorter latency requirement among the registered latency requirements; 15  fifteen evaluar (38) en los modos de baja potencia del dispositivo informático para cada recurso que se pueda colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda el requisito de latencia más corto seleccionado; evaluate (38) in the low power modes of the computing device for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a requirement of combined latency that exceeds the shortest latency requirement selected; 20  twenty seleccionar (38) una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales y tenga un requisito de latencia total que sea menor o igual al requisito de latencia más corto seleccionado; y select (38) a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the shortest latency requirement selected; Y entrar (40) en la combinación seleccionada de modos de recurso de baja potencia ejecutando una función 25 de entrada de cada uno de los modos de baja potencia seleccionados en cada uno de los recursos identificados; enter (40) in the selected combination of low power resource modes by executing an input function 25 of each of the low power modes selected in each of the identified resources; caracterizado por que el paso de establecer (14) el bit de indicador asociado con un recurso se realiza cuando el recurso no está en uso y el paso de identificar (28) los recursos que pueden colocarse en un 30 modo de baja potencia basándose en la configuración de bit de indicador se realiza cuando el procesador puede entrar en un estado de inactividad. characterized in that the step of setting (14) the indicator bit associated with a resource is performed when the resource is not in use and the step of identifying (28) the resources that can be placed in a low power mode based on the Indicator bit setting is done when the processor can enter an idle state. 2. El procedimiento según la reivindicación 1, en el que seleccionar una combinación de modos de recurso de baja potencia comprende ejecutar un algoritmo de solución de problemas de mochila para los diversos 35 recursos y modos de baja potencia. 2. The method according to claim 1, wherein selecting a combination of low power resource modes comprises executing a backpack troubleshooting algorithm for the various low power resources and modes. 3. El procedimiento según la reivindicación 1, que comprende además: 3. The method according to claim 1, further comprising: determinar (34) un tiempo en el que se espera que el procesador permanezca en un estado de 40 inactividad; y determine (34) a time in which the processor is expected to remain in a state of inactivity; Y determinar (38) los ahorros de energía potenciales de cada modo de recurso de baja potencia evaluado basándose en unos ahorros de energía por unidad de tiempo potenciales a una temperatura actual multiplicados por el tiempo de inactividad esperado determinado. 45 determine (38) the potential energy savings of each low power resource mode evaluated based on potential energy savings per unit time at a current temperature multiplied by the expected expected downtime. Four. Five 4. El procedimiento según la reivindicación 1, que comprende además: 4. The method according to claim 1, further comprising: medir (241), cuando el dispositivo está en un estado estable conocido, la demanda de temperatura y potencia o temperatura y corriente; 50 measure (241), when the device is in a known stable state, the demand for temperature and power or temperature and current; fifty seleccionar (242) un recurso para la medición; select (242) a resource for measurement; colocar (243) el recurso seleccionado en un modo de recurso de baja potencia; placing (243) the selected resource in a low power resource mode; 55  55 medir (244) la demanda de corriente o potencia mientras el recurso seleccionado esté en el modo de recurso de baja potencia; y measure (244) the current or power demand while the selected resource is in the low power resource mode; Y repetir (246) los pasos de seleccionar un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado 60 está en el modo de recurso de baja potencia hasta que la demanda de corriente o potencia durante un modo de recurso de baja potencia se haya medido para todos los recursos que tienen un modo de recurso de baja potencia, repeat (246) the steps of selecting a next resource, placing the selected resource in a low power resource mode and measuring the power or current demand while the selected resource 60 is in the low power resource mode until the demand of current or power during a low power resource mode has been measured for all resources that have a low power resource mode, en el que la selección de una combinación de modos de recurso de baja potencia que maximiza los ahorros de energía potenciales comprende el uso de la demanda de potencia o corriente medida asociada 65 con cada modo de recurso de baja potencia para determinar (245) los ahorros de energía potenciales de wherein the selection of a combination of low power resource modes that maximizes potential energy savings comprises the use of the power demand or measured current associated with each low power resource mode to determine (245) the savings potential energy of una combinación de modos de recurso de baja potencia. a combination of low power resource modes. 5. El procedimiento según la reivindicación 4, que comprende además: 5. The method according to claim 4, further comprising: repetir las operaciones enumeradas en la reivindicación 3 a diferentes temperaturas; y 5 repeat the operations listed in claim 3 at different temperatures; and 5 determinar una sensibilidad a la temperatura de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia, determine a temperature sensitivity of the current or power demand associated with each low power resource mode, en el que la selección de una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende: 10 in which the selection of a combination of low power resource modes that maximizes potential energy savings comprises: 10 medir una temperatura del dispositivo informático; y measure a temperature of the computing device; Y utilizar la sensibilidad a la temperatura determinada de la demanda de corriente o potencia asociada con cada modo de recurso de baja potencia para determinar los ahorros de energía potenciales de 15 una combinación de modos de recurso de baja potencia a la temperatura del dispositivo informático medida. use the determined temperature sensitivity of the current or power demand associated with each low power resource mode to determine the potential energy savings of a combination of low power resource modes at the temperature of the measured computing device. 6. El procedimiento según la reivindicación 1, en el que la evaluación de modos de recurso de baja potencia para cada recurso que se pueda colocar en un modo de baja potencia comprende realizar (150) un proceso 20 de búsqueda en la tabla utilizando una tabla de datos de selección de modo de baja potencia utilizando ahorro de energía potencial, tiempo de inactividad estimado y condiciones de funcionamiento. 6. The method according to claim 1, wherein the evaluation of low power resource modes for each resource that can be placed in a low power mode comprises performing (150) a table search process 20 using a table Low power mode selection data using potential energy savings, estimated downtime and operating conditions. 7. El procedimiento según la reivindicación 6, en el que las condiciones de funcionamiento incluyen un valor de temperatura. 25 7. The method according to claim 6, wherein the operating conditions include a temperature value. 25 8. El procedimiento según la reivindicación 6, que comprende además: 8. The method according to claim 6, further comprising: recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y collect statistics on the operating conditions in the computing device; Y 30  30 actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento recopiladas. update the low power mode selection data table based on the statistics of operating conditions collected. 9. El procedimiento según la reivindicación 8, en el que las condiciones de funcionamiento se seleccionan del grupo que incluye temperatura, consumo de energía de modos de recurso de baja potencia particulares, 35 tiempos de inactividad experimentados en diversos estados de funcionamiento y patrones típicos de uso de dispositivos. 9. The method according to claim 8, wherein the operating conditions are selected from the group including temperature, energy consumption of particular low power resource modes, 35 idle times experienced in various operating states and typical patterns of use of devices 10. El procedimiento según la reivindicación 8, que comprende además determinar (180) si el dispositivo informático está conectado a una alimentación externa, en el que la actualización de la tabla de datos de 40 selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento se logra cuando el dispositivo informático está conectado a energía externa. 10. The method according to claim 8, further comprising determining (180) if the computing device is connected to an external power supply, in which the updating of the data table of low power mode selection based on the statistics of Operating conditions are achieved when the computing device is connected to external power. 11. Un dispositivo informático que tiene al menos un procesador, que comprende: 11. A computing device that has at least one processor, comprising: 45  Four. Five medios para establecer un bit de indicador asociado con un recurso, en el que el recurso es uno de una pluralidad de recursos utilizados por un procesador; means for setting an indicator bit associated with a resource, in which the resource is one of a plurality of resources used by a processor; medios para identificar los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración de bit de indicador; 50 means for identifying the resources that can be placed in a low power mode based on the indicator bit configuration; fifty medios para registrar un requisito de latencia para cada uno de los recursos identificados; means to record a latency requirement for each of the identified resources; medios para seleccionar un requisito de latencia más corto entre los requisitos de latencia registrados; means for selecting a shorter latency requirement among the registered latency requirements; 55  55 medios para evaluar en el dispositivo informático los modos de baja potencia para cada recurso que se pueda colocar en un modo de baja potencia para eliminar cualquier modo de recurso de baja potencia o cualquier combinación de modos de recurso de baja potencia que tengan un requisito de latencia combinado que exceda el requisito de latencia más corto seleccionado; means for evaluating in the computing device the low power modes for each resource that can be placed in a low power mode to eliminate any low power resource mode or any combination of low power resource modes that have a latency requirement combined that exceeds the shortest latency requirement selected; 60  60 medios para seleccionar una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales y que tenga un requisito de latencia total que sea menor o igual al requisito de latencia más corto seleccionado; y means for selecting a combination of low power resource modes that maximizes potential energy savings and has a total latency requirement that is less than or equal to the shortest latency requirement selected; Y medios para entrar en la combinación seleccionada de modos de recurso de baja potencia ejecutando 65 una función de entrada de cada uno de los modos de baja potencia seleccionados en cada uno de los means for entering the selected combination of low power resource modes by executing an input function of each of the low power modes selected in each of the recursos identificados; identified resources; caracterizado por que los medios para establecer el bit de indicador asociado con un recurso establecen el bit de indicador cuando el recurso no está en uso y los medios para identificar los recursos que se pueden colocar en un modo de baja potencia basándose en la configuración de bit de indicador identifican 5 los recursos cuando el procesador puede entrar en un estado de inactividad. characterized in that the means to set the indicator bit associated with a resource set the indicator bit when the resource is not in use and the means to identify the resources that can be placed in a low power mode based on the bit configuration Indicator identifies 5 resources when the processor can enter a state of inactivity. 12. El dispositivo informático de la reivindicación 11, en el que medios para seleccionar una combinación de modos de recurso de baja potencia comprenden medios para ejecutar un algoritmo de solución de problemas de mochila para los diversos recursos y modos de baja potencia. 10 12. The computing device of claim 11, wherein means for selecting a combination of low power resource modes comprises means for executing a backpack troubleshooting algorithm for the various resources and low power modes. 10 13. El dispositivo informático de la reivindicación 11, que comprende adicionalmente: 13. The computing device of claim 11, further comprising: medios para determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y 15 means for determining a time in which the processor is expected to remain in a state of inactivity; and 15 medios para determinar los ahorros de energía potenciales de cada modo de recurso de baja potencia evaluado basándose en unos ahorros de energía por unidad de tiempo potenciales a una temperatura actual multiplicados por el tiempo de inactividad esperado determinado. means for determining the potential energy savings of each low power resource mode evaluated based on potential energy savings per unit of time at a current temperature multiplied by the expected expected downtime. 20  twenty 14. El dispositivo informático de la reivindicación 11, que comprende adicionalmente: 14. The computing device of claim 11, further comprising: medios para medir, cuando el dispositivo está en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente; means for measuring, when the device is in a known stable state, demand for temperature and power or temperature and current; 25  25 medios para seleccionar un recurso para la medición; means to select a resource for measurement; medios para colocar el recurso seleccionado en un modo de recurso de baja potencia; means for placing the selected resource in a low power resource mode; medios para medir la demanda de corriente o potencia mientras el recurso seleccionado está en el modo 30 de recurso de baja potencia; y means for measuring current or power demand while the selected resource is in low power resource mode 30; Y medios para repetir los pasos de seleccionar un recurso siguiente, colocar el recurso seleccionado en un modo de recurso de baja potencia y medir la demanda de potencia o corriente mientras el recurso seleccionado está en el modo de recurso de baja potencia hasta que la demanda de corriente o potencia 35 durante un modo de recurso de baja potencia se haya medido para todos los recursos que tienen un modo de recurso de baja potencia, means for repeating the steps of selecting a next resource, placing the selected resource in a low power resource mode and measuring the power or current demand while the selected resource is in the low power resource mode until the current demand or power 35 during a low power resource mode has been measured for all resources that have a low power resource mode, en el que medios para seleccionar una combinación de modos de recurso de baja potencia que maximicen los ahorros de energía potenciales comprenden medios para utilizar la demanda de potencia o corriente medida asociada con cada modo de recurso de baja potencia para determinar los ahorros de 40 energía potenciales de una combinación de modos de recurso de baja potencia. wherein means for selecting a combination of low power resource modes that maximize potential energy savings comprise means for utilizing the measured power or current demand associated with each low power resource mode to determine potential energy savings. of a combination of low power resource modes. 15. Un medio de almacenamiento no transitorio que tiene almacenadas en el mismo instrucciones de software ejecutables por procesador configuradas para hacer que un procesador implemente un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 10. 45 15. A non-transient storage medium having stored in the same processor-executable software instructions configured to cause a processor to implement a method according to any one of claims 1 to 10. 45
ES11700483.8T 2010-01-11 2011-01-10 Dynamic low power mode implementation for computing devices Active ES2646663T3 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29405510P 2010-01-11 2010-01-11
US294055P 2010-01-11
US965008 2010-12-10
US12/965,008 US9235251B2 (en) 2010-01-11 2010-12-10 Dynamic low power mode implementation for computing devices
PCT/US2011/020710 WO2011085330A1 (en) 2010-01-11 2011-01-10 Dynamic low power mode implementation for computing devices

Publications (1)

Publication Number Publication Date
ES2646663T3 true ES2646663T3 (en) 2017-12-14

Family

ID=44259448

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11700483.8T Active ES2646663T3 (en) 2010-01-11 2011-01-10 Dynamic low power mode implementation for computing devices

Country Status (8)

Country Link
US (1) US9235251B2 (en)
EP (1) EP2524273B1 (en)
JP (1) JP5710642B2 (en)
KR (1) KR101411807B1 (en)
CN (1) CN102667668B (en)
ES (1) ES2646663T3 (en)
HU (1) HUE036348T2 (en)
WO (1) WO2011085330A1 (en)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504855B2 (en) * 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
US9311102B2 (en) * 2010-07-13 2016-04-12 Advanced Micro Devices, Inc. Dynamic control of SIMDs
US20120159219A1 (en) * 2010-12-20 2012-06-21 Lilly Huang Vr power mode interface
JP5251969B2 (en) * 2010-12-20 2013-07-31 コニカミノルタビジネステクノロジーズ株式会社 Image forming apparatus
US20130007492A1 (en) * 2011-06-30 2013-01-03 Sokol Jr Joseph Timer interrupt latency
US8954017B2 (en) * 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
US8862917B2 (en) 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
JP5893336B2 (en) * 2011-10-24 2016-03-23 キヤノン株式会社 Power supply control device, control method for power supply control device, and program
TWI493332B (en) 2011-11-29 2015-07-21 Intel Corp Method and apparatus with power management and a platform and computer readable storage medium thereof
EP2798436B1 (en) * 2011-12-27 2017-05-17 INTEL Corporation Power management using reward-based sleep state selection
US8775838B2 (en) * 2012-02-01 2014-07-08 Texas Instruments Incorporated Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
US9395807B2 (en) * 2012-05-23 2016-07-19 Canon Kabushiki Kaisha Power management apparatus, image forming apparatus and power management method
US9477287B1 (en) * 2012-06-28 2016-10-25 Amazon Technologies, Inc. Optimizing computing resources
KR20140014895A (en) * 2012-07-27 2014-02-06 삼성전자주식회사 Method and apparatus for saving battery of portable terminal
KR101951171B1 (en) * 2012-08-09 2019-02-25 삼성전자 주식회사 Multimedia processing system and operating method thereof
JP2014081688A (en) * 2012-10-12 2014-05-08 Canon Inc Information processing device and method of controlling the same; and program thereof and storage medium
US9164565B2 (en) * 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9213390B2 (en) * 2012-12-28 2015-12-15 Intel Corporation Periodic activity alignment
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US20140245044A1 (en) * 2013-02-28 2014-08-28 Barnesandnoble.com IIc Method for hibernation control based on usage pattern
US9021280B1 (en) * 2013-03-12 2015-04-28 Pmc-Sierra Us, Inc. Power saving for FIFO buffer without performance degradation
CN105379317B (en) * 2013-06-14 2019-05-28 微软技术许可有限责任公司 Method and system based on neighbouring social activity interaction
US9430014B2 (en) 2013-07-18 2016-08-30 Qualcomm Incorporated System and method for idle state optimization in a multi-processor system on a chip
WO2015038106A1 (en) * 2013-09-11 2015-03-19 Hewlett-Packard Development Company, L.P. Mobile device power control
GB2519804A (en) * 2013-10-31 2015-05-06 Nec Corp Power saving in mobile radio communications device
US9552033B2 (en) 2014-04-22 2017-01-24 Qualcomm Incorporated Latency-based power mode units for controlling power modes of processor cores, and related methods and systems
US9343116B2 (en) * 2014-05-28 2016-05-17 Micron Technology, Inc. Providing power availability information to memory
GB2528115B (en) * 2014-07-11 2021-05-19 Advanced Risc Mach Ltd Dynamic saving of registers in transactions
KR102222337B1 (en) * 2014-08-05 2021-03-04 삼성전자주식회사 Apparatus and method for synchronizing among applications
EP3191948A1 (en) * 2014-09-10 2017-07-19 Amazon Technologies Inc. Computing instance launch time
US10402746B2 (en) 2014-09-10 2019-09-03 Amazon Technologies, Inc. Computing instance launch time
CN105446452A (en) * 2014-09-18 2016-03-30 联发科技(新加坡)私人有限公司 Electronic device with locating function and power saving management method of electronic device
TWI653527B (en) * 2014-12-27 2019-03-11 美商英特爾公司 Techniques for enabling low power states of a system when computing components operate
WO2016122444A1 (en) * 2015-01-26 2016-08-04 Hewlett Packard Enterprise Development Lp Regulating a power consumption state of a cellular radio
JP6276212B2 (en) 2015-03-25 2018-02-07 株式会社東芝 Semiconductor device, power control method and program
KR101960507B1 (en) * 2015-04-08 2019-03-20 삼성전자주식회사 A display apparatus and a display method
US9846470B2 (en) * 2015-08-06 2017-12-19 Seagate Technology Llc Data storage power management
CN105700665B (en) * 2016-01-15 2018-10-16 致象尔微电子科技(上海)有限公司 Selection method based on power consumption of embedded system pattern and system, embedded system
US9965220B2 (en) * 2016-02-05 2018-05-08 Qualcomm Incorporated Forced idling of memory subsystems
CN106055079B (en) * 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 The management method and device of a kind of central processing unit
KR101694493B1 (en) * 2016-08-04 2017-01-10 주식회사 삼보컴퓨터 Power management method and computing device thereof
US20180188797A1 (en) * 2016-12-29 2018-07-05 Intel Corporation Link power management scheme based on link's prior history
US11032047B2 (en) 2017-09-29 2021-06-08 Qualcomm Incorporated Techniques and apparatuses for wakeup signal design and resource allocation
US10732871B2 (en) * 2017-11-01 2020-08-04 Western Digital Technologies, Inc. Storage device and method for adaptive sleep mode transitions
KR102429801B1 (en) * 2018-02-22 2022-08-05 삼성전자주식회사 Method for adaptively controlling low power display mode and electronic device thereof
US10359959B1 (en) 2018-03-06 2019-07-23 Western Digital Technologies, Inc. Energy optimized power state declarations for solid state drives
JP2019159802A (en) * 2018-03-13 2019-09-19 東芝メモリ株式会社 Power control method of storage device and storage device
US11243598B2 (en) * 2018-06-01 2022-02-08 Apple Inc. Proactive power management of a graphics processor
EP3649959A1 (en) * 2018-11-06 2020-05-13 Koninklijke Philips N.V. Ultrasound control unit
US11086384B2 (en) * 2019-11-19 2021-08-10 Intel Corporation System, apparatus and method for latency monitoring and response
KR20220003837A (en) 2020-07-02 2022-01-11 에스케이하이닉스 주식회사 Storage device and operating method thereof
CN112399536A (en) * 2020-11-26 2021-02-23 深圳北斗通信科技有限公司 Gun positioning terminal power consumption management method and system and storage medium
KR20230094565A (en) * 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 Controller executing active mode or low power mode based on state of multiple sub-circuits and operating method thereof

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0834106B1 (en) * 1995-06-07 2000-02-23 Seiko Epson Corporation Computer system with video display controller having power saving modes
JPH10268987A (en) 1997-03-25 1998-10-09 Ricoh Co Ltd Battery driven electronic equipment
US6457135B1 (en) * 1999-08-10 2002-09-24 Intel Corporation System and method for managing a plurality of processor performance states
US7539885B2 (en) * 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2002244761A (en) 2001-02-14 2002-08-30 Mitsubishi Electric Corp Semiconductor integrated circuit
JP2002258997A (en) 2001-02-28 2002-09-13 Sharp Corp Device with handwriting inputting function
US20030028711A1 (en) * 2001-07-30 2003-02-06 Woo Steven C. Monitoring in-use memory areas for power conservation
US6795781B2 (en) * 2002-06-27 2004-09-21 Intel Corporation Method and apparatus for compiler assisted power management
JP2004192256A (en) 2002-12-10 2004-07-08 Seiko Epson Corp Network controller
US7065663B2 (en) * 2002-12-19 2006-06-20 Intel Corporation Methods and apparatus to control power state transitions
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7117380B2 (en) * 2003-09-30 2006-10-03 International Business Machines Corporation Apparatus, system, and method for autonomic power adjustment in an electronic device
US7281144B2 (en) * 2004-02-17 2007-10-09 Intel Corporation Power management in communication devices
JP4316399B2 (en) 2004-02-18 2009-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーション Program, recording medium, control method, and information processing apparatus
US7366921B2 (en) * 2004-04-23 2008-04-29 Hewlett-Packard Development Company, L.P. Selecting input/output devices to control power consumption of a computer system
US7343502B2 (en) 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7360106B2 (en) * 2004-08-05 2008-04-15 Matsushita Electric Industrial Co., Ltd. Power-saving processing unit, power-saving processing method and program record medium
US7246181B2 (en) * 2004-09-14 2007-07-17 Hewlett-Packard Development Company, L.P. Device and method for identifying a communication interface that performs an operating parameter closer to a desired performance level than another communication interface performs the operating parameter
JP2006163643A (en) 2004-12-03 2006-06-22 Sony Computer Entertainment Inc Power controller, data reading apparatus, and power control method
US20060136919A1 (en) 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
CN101120298A (en) 2005-02-16 2008-02-06 松下电器产业株式会社 Power supply control circuit and electronic circuit
US7454631B1 (en) * 2005-03-11 2008-11-18 Sun Microsystems, Inc. Method and apparatus for controlling power consumption in multiprocessor chip
JP2006254185A (en) 2005-03-11 2006-09-21 Orion Denki Kk Electronic apparatus with power saving function
US7386747B2 (en) * 2005-05-10 2008-06-10 Qualcomm Incorporated Method and system for reducing power consumption of a programmable processor
US7836284B2 (en) * 2005-06-09 2010-11-16 Qualcomm Incorporated Microprocessor with automatic selection of processing parallelism mode based on width data of instructions
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7536573B2 (en) 2005-07-29 2009-05-19 Hewlett-Packard Development Company, L.P. Power budgeting for computers
US7647078B2 (en) * 2006-03-07 2010-01-12 Samsung Electronics Co., Ltd. Power-saving method for wireless sensor network
US7752468B2 (en) * 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7783905B2 (en) * 2006-06-13 2010-08-24 Via Technologies Inc. Method for reducing power consumption of a computer system in the working state
US7529956B2 (en) * 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) * 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
JP4275168B2 (en) 2006-11-30 2009-06-10 シャープ株式会社 System device including NIC and power saving control method of the system device
US7716506B1 (en) * 2006-12-14 2010-05-11 Nvidia Corporation Apparatus, method, and system for dynamically selecting power down level
US20090172434A1 (en) * 2007-12-31 2009-07-02 Kwa Seh W Latency based platform coordination
US8176341B2 (en) 2008-03-31 2012-05-08 Intel Corporation Platform power management based on latency guidance
US8315746B2 (en) * 2008-05-30 2012-11-20 Apple Inc. Thermal management techniques in an electronic device
US8255713B2 (en) 2008-06-26 2012-08-28 Intel Corporation Management of link states using plateform and device latencies
US8086882B2 (en) * 2008-06-29 2011-12-27 Microsoft Corporation Energy measurement techniques for computing systems
US8112645B2 (en) * 2008-07-25 2012-02-07 Freescale Semiconductor, Inc. System and method for power management
US20100162256A1 (en) * 2008-12-18 2010-06-24 Alexander Branover Optimization of application power consumption and performance in an integrated system on a chip
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
US8065542B2 (en) * 2008-12-31 2011-11-22 Synopsys, Inc. Distributed table-driven power mode computation for controlling optimal clock and voltage switching
US8601296B2 (en) 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency reporting for power management
US8566628B2 (en) 2009-05-06 2013-10-22 Advanced Micro Devices, Inc. North-bridge to south-bridge protocol for placing processor in low power state
US8341628B2 (en) 2009-12-23 2012-12-25 International Business Machines Corporation Controlling depth and latency of exit of a virtual processor's idle state in a power management environment
US8504855B2 (en) * 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
US20130290758A1 (en) * 2010-01-11 2013-10-31 Qualcomm Incorporated Sleep mode latency scaling and dynamic run time adjustment
US20130007492A1 (en) 2011-06-30 2013-01-03 Sokol Jr Joseph Timer interrupt latency
US8862917B2 (en) 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
US8782454B2 (en) 2011-10-28 2014-07-15 Apple Inc. System and method for managing clock speed based on task urgency

Also Published As

Publication number Publication date
JP2013516025A (en) 2013-05-09
HUE036348T2 (en) 2018-07-30
KR101411807B1 (en) 2014-06-24
US9235251B2 (en) 2016-01-12
CN102667668B (en) 2015-12-16
EP2524273A1 (en) 2012-11-21
US20110173474A1 (en) 2011-07-14
WO2011085330A1 (en) 2011-07-14
JP5710642B2 (en) 2015-04-30
KR20120117015A (en) 2012-10-23
CN102667668A (en) 2012-09-12
EP2524273B1 (en) 2017-08-23

Similar Documents

Publication Publication Date Title
ES2646663T3 (en) Dynamic low power mode implementation for computing devices
US20130290758A1 (en) Sleep mode latency scaling and dynamic run time adjustment
US8862917B2 (en) Dynamic sleep for multicore computing devices
US7360106B2 (en) Power-saving processing unit, power-saving processing method and program record medium
KR101411756B1 (en) Domain specific language, compiler and jit for dynamic power management
JP5460565B2 (en) A mechanism that avoids inefficient core hopping and provides hardware (auxiliary) low power state selection
US9074947B2 (en) Estimating temperature of a processor core in a low power state without thermal sensor information
US20140344599A1 (en) Method and System for Power Management
US9829902B2 (en) Systems and methods for dynamic temporal power steering
US10275007B2 (en) Performance management for a multiple-CPU platform
US9921638B2 (en) Data processing system with selective engagement of standby mode based on comparison with a break-even time
US9606842B2 (en) Resource and core scaling for improving performance of power-constrained multi-core processors
US9417679B2 (en) Adaptive connected standby for a computing device
KR100830747B1 (en) Intelligent power management for distributed processing systems
US8751841B2 (en) Data processing system, method for processing data and computer program product
Hou et al. A new optimal algorithm for energy saving in embedded system with multiple sleep modes
Pelogeiko et al. On stochastic optimization for smartphone CPU energy consumption decrease