ES2646663T3 - Implementación de modo dinámico de baja potencia para dispositivos informáticos - Google Patents

Implementación de modo dinámico de baja potencia para dispositivos informáticos 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
English (en)
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/es
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

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.

Description

DESCRIPCIÓN
Implementación de modo dinámico de baja potencia para dispositivos informáticos
ANTECEDENTES 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.
[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.
RESUMEN
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.
50
[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
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.
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.
[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.
[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.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
50
[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.
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.
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.
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.
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
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.
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
La FIG. 7 es un diagrama de flujo de proceso de un procedimiento de aspecto para seleccionar un modo óptimo de baja potencia.
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.
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
La FIG. 10 es un diagrama de flujo de proceso de un procedimiento de aspecto alternativo para seleccionar un modo óptimo de baja potencia.
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.
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
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
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.
35
La FIG. 15 es un diagrama de bloques de componentes de un dispositivo móvil adecuado para el uso en un aspecto.
DESCRIPCIÓN DETALLADA
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.
45
[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.
[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.
[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.
[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
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.
[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.
15
[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".
[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
[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.
[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
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.
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".
20
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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
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.
[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.
[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.
[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.
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
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
[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.
[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
[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.
[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.
[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
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.
10
typedef struct
{
/* El nombre de este recurso de baja potencia, por ejemplo, "voltaje de núcleo de aplicaciones". */
const char *resource_name;
/* El número de modos de baja potencia en lo que este recurso puede entrar. */ 15
uint32_t mode_count;
/* La lista de modos de baja potencia en los que este recurso puede entrar. */
LPM_Resource_Mode *modos;
} LPM_Resource;
20
[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:
typedef uint32_t (*LPRM_PowerSavingsFcn) 25
(uint32_t duration_us, int32_t temp_c);
typedef struct
{
uint32_t enter;
uint32_t exit; 30
}
sleep_latency_type;
typedef uint32_t (*sleep_power_func) (uint32_t duration_us, int32_t temp_c);
typedef struct LPRM
{ 35
/* El nombre de este modo de baja potencia (por ejemplo, "minimización"). */
const char *mode_name;
/* Funciones que describen las características del modo. */
LPRM_PowerSavingsFcn power_savings;
LPRM_LatencyFcn latency; 40
/* Funciones que implementan la configuración real y el desmontaje de un modo. */
LPRM_EnterFcn enter;
LPRM_ExitFcn exit;
/* Los LRR que se habilitan en gran medida para que este modo ocurra. */
uint32_t lpr_dependency_count; 45
const char *lpr_dependencies;
/* Los LPR a los no se puede entrar si se selecciona este modo. */
uint32_t lpr_exclusion_count;
const char *lpr_exclusions;
/* Algunos campos reservados de contabilidad después de inicializar este punto a 0. */ 50
}
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).
const char *cxo_gated_deps [] = {"lpr: // cxo"};
LPM_Resource_Mode cxo_gated =
{ 65
.mode_name = "gated"; /* lo que está bloqueado es en LPR */
.power_savings = cxo_gated_power; /* basado en datos */
.latency = cxo_gated_latency; /* basado en datos */
.enter = cxo_gated_enter; /* llama al controlador mpm */
.exit = cxo_gated_exit; /* llama a la limpieza del controlador mpm */ 5
LPRM _DEPENDENCY_ARRAY (cxo_gated_deps);
LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */
}
const char *cxo_stdn_deps [] = {"lpr://cxo"};
LPM_Resource_Mode cxo_shutdown = 10
{
.mode_name = "shutdown";
.power_savings = cxo_stdn_power; /* basado en datos */
.latency = cxo_stdn_latency; /* basado en datos */
.enter = cxo_stdn_enter; /* llamada mpm diferente */ 15
.exit = cxo_stdn_exit; /* llamada de limpieza de mpm */
LPRM_DEPENDENCY_ARRAY (cxo_stdn_deps); /* igual que cerrado */
LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */
}
LPM_Resource_Mode *cxo_modes [] = {&cxo_gated, &cxo_shutdown}; 20
LPM_Resource cxo =
{
.resource_name = "CXO";
LPM_MODE_ARRAY (cxo_modes);
}; 25
// En la puesta en funcionamiento:
sleep_define_lpr (& cxo);
// Los modos CXO ahora están registrados con /sleep/lpr y puesta en funcionamiento deshabilitados.
// A continuación, cómo un nodo NPA de control puede habilitarlos.
// Puesta en funcionamiento: 30
client = npa_create_sync_client ("/sleep/ lpr", "/xo/cxo",
NPA_CLIENT_REQUIRED);
npa_query_type q;
q.reference = "lpr: //cxo";
npa_query_by_client (client, SLEEP_QUERY_LPRM_BITMASK, &q); 35
uint32 bitmask = q.value;
// Habilitar:
npa_issue_required_request (client, bitmask)
// Deshabilitar:
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.
[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.
const char *dig_mem_deps [] = {"lpr://vdd_dig", "lpr://vdd_mem"}; 60
LPM_Resource_Mode dig_mem =
{
.mode_name = "Dig/Mem Min";
.power_savings = dig_mem_power;
.latency = dig_mem_latency; /* esto es aproximadamente equivalente a dig_latency o 65
mem_latency-ellos podrían compartir este */
.enter = dig_mem_enter; /* llama al controlador mpm */
.exit = dig_mem_exit; /* llama a la limpieza del controlador mpm */
LPRM_DEPENDENCY_ARRAY (dig_mem_deps);
LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */
const char *mem_deps[] = {"lpr://vdd_mem"}; LPM_Resource_Mode mem_min 5
{
.mode_name = "Mem Min";
.power_savings = mem_power;
.latency = mem_latency;
.enter = mem_enter; /* llama al controlador mpm */ 10
.exit = mem_exit; /* llama a la limpieza del controlador mpm */
LPRM_DEPENDENCY_ARRAY (mem_deps);
LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */
}
const char *dig_deps [] = {"lpr://vdd_dig"}; LPM_Resource_Mode dig_min = 15
{
.mode_name = "Dig Min";
.power_savings = dig_power;
.latency = dig_latency;
.enter = dig_enter; /* llama al controlador mpm */ 20
.exit = dig_exit; /* llama a la limpieza del controlador mpm */
LPRM_DEPENDENCY_ARRAY (dig_deps);
LPRM_EMPTY_ARRAY (); /* sin exclusiones en este modo */
}
LPM_Resource_Mode *sys_vdds_modes[] = {mem_dig, mem_min, dig_min}; 25
LPM_Resource sys_vdds =
{
.resource_name = "System Vdds";
LPM_MODE_ARRAY (sys_vdds_modes); 30
};
// En la puesta en funcionamiento:
sleep_define_lpr (&sys_vdds);
// Los modos ahora están registrados con /sleep/lpr y puesta en funcionamiento deshabilitados.
// A continuación, cómo un nodo NPA de control puede habilitarlos. 35
// Puesta en funcionamiento:
dig_client = npa_create_sync_client ("/sleep/lpr", "/rail/vdd_dig",
NPA_CLIENT_REQUIRED);
mem_client = npa_create_sync_client ("/sleep/lpr", "/rail/vdd_mem",
NPA_CLIENT_REQUIRED); 40
npa_query_type q;
q.reference = "lpr: // vdd_dig";
npa_query_by_client (dig_client, SLEEP_QUERY_LPRM_BITMASK, & q);
uint32 dig_bitmask = q.value;
q.reference = "lpr: // vdd_mem"; 45
npa_query_by_client (mem_client, SLEEP_QUERY_LPRM_BITMASK, & q);
uint32 mem_bitmask = q.value;
npa_issue_required_request (mem_client, mem_bitmask);
// Solo el modo "Mem Min" habilitado ahora
npa_issue_required_request (dig_client, dig_bitmask); 50
// Todos los tres modos habilitados ahora
npa_complete_request (mem_client)
// Solo el modo "Dig Min" habilitado ahora
npa_complete_request (dig_client)
// Volver a ningún modo habilitado 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
[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.
[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
[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.
[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
[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
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.
[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.
[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.
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
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.
[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).
[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".
[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
[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.
[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
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.
[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.
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.
45
[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
[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
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.
[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.
[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
[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.
65
[0065]Mientras que un algoritmo de cálculo combinatorio, como la que se ilustra en la FIG. 7, puede ser capaz de
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.
[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.
[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.
[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.
[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
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
[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.
[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.
[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.
[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
[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.
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.
[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.
[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.
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
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
[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.
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.
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
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.
[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.
[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.
[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
[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
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.
15
[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
[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.
[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.
45
[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
[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
[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.
[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.
[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.
[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.
45
[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.
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
[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:
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;
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;
20
medios para registrar un requisito de latencia para cada uno de los recursos identificados;
medios para seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados;
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;
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
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.
[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
[0098] El dispositivo informático puede comprender además:
medios para determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y 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.
50
[0099] El dispositivo informático puede comprender además:
medios para medir, cuando el dispositivo está en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente;
55
medios para seleccionar un recurso para la medición;
medios para colocar el recurso seleccionado en un modo de recurso de baja potencia;
medios para medir la demanda de corriente o potencia mientras el recurso seleccionado está en el modo de 60 recurso de baja potencia; 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,
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.
5
[0100] El dispositivo informático puede comprender además:
medios para repetir las operaciones expuestas en la reivindicación 3 a diferentes temperaturas; 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,
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:
medios para medir una temperatura del dispositivo informático; y 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.
20
[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.
25
[0102] Las condiciones de funcionamiento pueden incluir un valor de temperatura.
[0103] El dispositivo informático puede comprender además:
medios para recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y 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.
[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.
[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.
[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
una memoria intermedia; 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
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;
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;
registrar un requisito de latencia para cada uno de los recursos identificados;
seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados; 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
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
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.
[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:
determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; 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.
[0108] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además: 20
medir, cuando el dispositivo se encuentra en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente;
seleccionar un recurso para la medición; 25
colocar el recurso seleccionado en un modo de recurso de baja potencia;
medir la corriente o la demanda de potencia mientras el recurso seleccionado está en el modo de recurso de baja potencia; y 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
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.
40
[0109] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además:
repetir las operaciones indicadas en la reivindicación 3 a diferentes temperaturas; y
45
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:
medir una temperatura del dispositivo informático; y 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.
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
[0111] El procesador puede estar configurado con instrucciones ejecutables por procesador de tal manera que las condiciones de funcionamiento incluyan un valor de temperatura.
[0112] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar 65 operaciones que comprenden además:
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 condiciones de funcionamiento recopiladas. 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
[0114] El procesador puede estar configurado con instrucciones ejecutables por procesador para realizar operaciones que comprenden además:
determinar si el dispositivo informático está conectado a una alimentación externa, 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.
20
[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:
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;
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
registrar un requisito de latencia para cada uno de los recursos identificados;
seleccionar un requisito de latencia más estricto entre los requisitos de latencia registrados;
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;
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
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.
[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.
[0117] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además:
55
determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; 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
[0118] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además:
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;
colocar el recurso seleccionado en un modo de recurso de baja potencia;
medir la corriente o la demanda de potencia mientras el recurso seleccionado está en el modo de recurso de baja potencia; y 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
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.
15
[0119] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además:
repetir las operaciones indicadas en la reivindicación 3 a diferentes temperaturas; y
20
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:
medir una temperatura del dispositivo informático; y 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.
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
[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.
40
[0122] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para hacer que un procesador realice operaciones que comprenden además:
recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y
45
actualizar la tabla de datos de selección de modo de baja potencia basándose en las estadísticas de condiciones de funcionamiento recopiladas.
[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.
[0124] Las instrucciones de software ejecutables por procesador almacenadas pueden estar configuradas para 55 hacer que un procesador realice operaciones que comprenden además:
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

Claims (15)

  1. REIVINDICACIONES
    1. Un procedimiento para conservar energía en un dispositivo informático que tiene al menos un procesador, que comprende:
    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;
    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
    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;
    15
    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;
    20
    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 25 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 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.
  2. 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.
  3. 3. El procedimiento según la reivindicación 1, que comprende además:
    determinar (34) un tiempo en el que se espera que el procesador permanezca en un estado de 40 inactividad; 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
  4. 4. El procedimiento según la reivindicación 1, que comprende además:
    medir (241), cuando el dispositivo está en un estado estable conocido, la demanda de temperatura y potencia o temperatura y corriente; 50
    seleccionar (242) un recurso para la medición;
    colocar (243) el recurso seleccionado en un modo de recurso de baja potencia;
    55
    medir (244) la demanda de corriente o potencia mientras el recurso seleccionado esté en el modo de recurso de baja potencia; 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,
    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
    una combinación de modos de recurso de baja potencia.
  5. 5. El procedimiento según la reivindicación 4, que comprende además:
    repetir las operaciones enumeradas en la reivindicación 3 a diferentes temperaturas; y 5
    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 la selección de una combinación de modos de recurso de baja potencia que maximice los ahorros de energía potenciales comprende: 10
    medir una temperatura del dispositivo informático; 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.
  6. 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.
  7. 7. El procedimiento según la reivindicación 6, en el que las condiciones de funcionamiento incluyen un valor de temperatura. 25
  8. 8. El procedimiento según la reivindicación 6, que comprende además:
    recopilar estadísticas sobre las condiciones de funcionamiento en el dispositivo informático; y
    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.
  9. 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.
  10. 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.
  11. 11. Un dispositivo informático que tiene al menos un procesador, que comprende:
    45
    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;
    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
    medios para registrar un requisito de latencia para cada uno de los recursos identificados;
    medios para seleccionar un requisito de latencia más corto entre los requisitos de latencia registrados;
    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;
    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
    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
    recursos identificados;
    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.
  12. 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
  13. 13. El dispositivo informático de la reivindicación 11, que comprende adicionalmente:
    medios para determinar un tiempo en el que se espera que el procesador permanezca en un estado de inactividad; y 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.
    20
  14. 14. El dispositivo informático de la reivindicación 11, que comprende adicionalmente:
    medios para medir, cuando el dispositivo está en un estado estable conocido, demanda de temperatura y potencia o temperatura y corriente;
    25
    medios para seleccionar un recurso para la medición;
    medios para colocar el recurso seleccionado en un modo de recurso de baja potencia;
    medios para medir la demanda de corriente o potencia mientras el recurso seleccionado está en el modo 30 de recurso de baja potencia; 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,
    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.
  15. 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
ES11700483.8T 2010-01-11 2011-01-10 Implementación de modo dinámico de baja potencia para dispositivos informáticos Active ES2646663T3 (es)

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 (es) 2017-12-14

Family

ID=44259448

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11700483.8T Active ES2646663T3 (es) 2010-01-11 2011-01-10 Implementación de modo dinámico de baja potencia para dispositivos informáticos

Country Status (8)

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

Families Citing this family (54)

* 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
JP5251969B2 (ja) * 2010-12-20 2013-07-31 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
US20120159219A1 (en) * 2010-12-20 2012-06-21 Lilly Huang Vr power mode interface
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 (ja) * 2011-10-24 2016-03-23 キヤノン株式会社 電源制御装置、電源制御装置の制御方法、およびプログラム
TWI493332B (zh) 2011-11-29 2015-07-21 Intel Corp 用於電力管理的方法與設備及其平台與電腦可讀取媒體
US9507403B2 (en) * 2011-12-27 2016-11-29 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 (ko) * 2012-07-27 2014-02-06 삼성전자주식회사 휴대 단말기의 배터리 절약 방법 및 장치
KR101951171B1 (ko) * 2012-08-09 2019-02-25 삼성전자 주식회사 멀티미디어 프로세싱 시스템 및 그 동작 방법
JP2014081688A (ja) * 2012-10-12 2014-05-08 Canon Inc 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
US9213390B2 (en) * 2012-12-28 2015-12-15 Intel Corporation Periodic activity alignment
US9164565B2 (en) * 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
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
EP3008930B1 (en) * 2013-06-14 2019-07-24 Microsoft Technology Licensing, LLC Framework and applications for proximity-based social 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 (ko) * 2014-08-05 2021-03-04 삼성전자주식회사 전자 기기의 어플리케이션 동기화 방법 및 장치
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 (zh) * 2014-09-18 2016-03-30 联发科技(新加坡)私人有限公司 具有定位功能的电子装置及其省电管理方法
TWI653527B (zh) * 2014-12-27 2019-03-11 美商英特爾公司 當計算元件運作時致能系統低電力狀態之技術
EP3251421B1 (en) * 2015-01-26 2019-10-30 Hewlett-Packard Enterprise Development LP Regulating a power consumption state of a cellular radio
JP6276212B2 (ja) 2015-03-25 2018-02-07 株式会社東芝 半導体装置、電力制御方法及びプログラム
KR101960507B1 (ko) * 2015-04-08 2019-03-20 삼성전자주식회사 디스플레이 장치 및 디스플레이 방법
US9846470B2 (en) 2015-08-06 2017-12-19 Seagate Technology Llc Data storage power management
CN105700665B (zh) * 2016-01-15 2018-10-16 致象尔微电子科技(上海)有限公司 基于嵌入式系统功耗模式的选择方法及系统,嵌入式系统
US9965220B2 (en) * 2016-02-05 2018-05-08 Qualcomm Incorporated Forced idling of memory subsystems
CN106055079B (zh) * 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 一种中央处理器的管理方法、及装置
KR101694493B1 (ko) * 2016-08-04 2017-01-10 주식회사 삼보컴퓨터 컴퓨팅 디바이스 및 컴퓨팅 디바이스에서의 전력 관리 방법
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 (ko) * 2018-02-22 2022-08-05 삼성전자주식회사 저전력 표시 모드를 적응적으로 제어하기 위한 방법 및 그 전자 장치
US10359959B1 (en) * 2018-03-06 2019-07-23 Western Digital Technologies, Inc. Energy optimized power state declarations for solid state drives
JP2019159802A (ja) * 2018-03-13 2019-09-19 東芝メモリ株式会社 記憶装置の電力制御方法および記憶装置
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 (ko) 2020-07-02 2022-01-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN112399536A (zh) * 2020-11-26 2021-02-23 深圳北斗通信科技有限公司 枪支定位终端功耗管理方法、系统及存储介质
KR20230094565A (ko) * 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 복수의 서브 회로들의 상태를 기초로 활성화 모드 또는 저전력 모드로 동작하는 컨트롤러 및 그 방법
US20240231962A1 (en) * 2023-01-09 2024-07-11 Western Digital Technologies, Inc. Notifications for avoiding thermal shutdown

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11507748A (ja) 1995-06-07 1999-07-06 セイコーエプソン株式会社 節電モードを有するビデオ表示コントローラを備えたコンピュータ
JPH10268987A (ja) 1997-03-25 1998-10-09 Ricoh Co Ltd バッテリ駆動式電子機器
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 (ja) 2001-02-14 2002-08-30 Mitsubishi Electric Corp 半導体集積回路
JP2002258997A (ja) 2001-02-28 2002-09-13 Sharp Corp 手書き入力機能付き装置
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 (ja) 2002-12-10 2004-07-08 Seiko Epson Corp ネットワークコントローラ
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 (ja) 2004-02-18 2009-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム、記録媒体、制御方法、及び情報処理装置
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 (ja) 2004-12-03 2006-06-22 Sony Computer Entertainment Inc 電源制御装置、データ読出装置および電源制御方法
US20060136919A1 (en) 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
CN101120298A (zh) 2005-02-16 2008-02-06 松下电器产业株式会社 电源控制电路和电子电路
JP2006254185A (ja) 2005-03-11 2006-09-21 Orion Denki Kk 節電機能を有する電子機器
US7454631B1 (en) 2005-03-11 2008-11-18 Sun Microsystems, Inc. Method and apparatus for controlling power consumption in multiprocessor chip
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 (ja) 2006-11-30 2009-06-10 シャープ株式会社 Nicを備えるシステム機器および同システム機器の省電力制御方法
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
US8601296B2 (en) 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency 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
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
US20130290758A1 (en) 2010-01-11 2013-10-31 Qualcomm Incorporated Sleep mode latency scaling and dynamic run time adjustment
US8504855B2 (en) 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
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
WO2011085330A1 (en) 2011-07-14
US20110173474A1 (en) 2011-07-14
EP2524273A1 (en) 2012-11-21
KR101411807B1 (ko) 2014-06-24
KR20120117015A (ko) 2012-10-23
HUE036348T2 (hu) 2018-07-30
JP2013516025A (ja) 2013-05-09
US9235251B2 (en) 2016-01-12
EP2524273B1 (en) 2017-08-23
JP5710642B2 (ja) 2015-04-30
CN102667668A (zh) 2012-09-12
CN102667668B (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
ES2646663T3 (es) Implementación de modo dinámico de baja potencia para dispositivos informáticos
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 (ko) 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit
JP5460565B2 (ja) 非効率なコアホッピングを回避し、ハードウェア(補助)による低電力状態選択を提供するメカニズム
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
Paul Real-time power management for embedded M2M using intelligent learning methods
US10275007B2 (en) Performance management for a multiple-CPU platform
US9606842B2 (en) Resource and core scaling for improving performance of power-constrained multi-core processors
US9921638B2 (en) Data processing system with selective engagement of standby mode based on comparison with a break-even time
US9417679B2 (en) Adaptive connected standby for a computing device
KR100830747B1 (ko) 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리
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
Spanos Operating System Environment for Frequency Scaling and Segmentwise Software Power Measurement
Cheng Energy-efficient scheduling algorithms for real-time systems