stringtranslate.com

Estimación del consumo de energía a nivel de sistema y subsistema en tiempo de ejecución

El consumo de energía de los sistemas electrónicos ha sido un verdadero desafío para los diseñadores de hardware y software, así como para los usuarios, especialmente en dispositivos portátiles como teléfonos celulares y computadoras portátiles. El consumo de energía también ha sido un problema para muchas industrias que utilizan sistemas informáticos de forma intensiva, como los proveedores de servicios de Internet que utilizan servidores o las empresas con muchos empleados que utilizan computadoras y otros dispositivos computacionales. [1] Los investigadores han descubierto muchos enfoques diferentes (durante el diseño de hardware, software o estimación en tiempo real) para estimar el consumo de energía de manera eficiente. Este artículo de investigación se centra en los diferentes métodos con los que se puede estimar o medir el consumo de energía en tiempo real.

La medición de la disipación de energía en tiempo real es fundamental en el análisis térmico de un nuevo diseño de hardware como procesadores (CPU), así como es importante para los programadores de sistemas operativos que escriben programadores de procesos. [2] [3] Los investigadores descubrieron que conocer el consumo de energía en tiempo real a nivel de subsistema como CPU, discos duros, memoria y otros dispositivos puede ayudar a optimizar la energía en aplicaciones como el cifrado de almacenamiento, la virtualización y el sandbox de aplicaciones, así como a realizar compensaciones entre aplicaciones. [4]

Se han descubierto diferentes tecnologías que permiten medir el consumo de energía en tiempo real. Estas tecnologías se pueden clasificar en dos categorías principales: medición directa mediante sensores y medidores de potencia del subsistema o estimación indirecta basada en información proporcionada, como la temperatura o los contadores de rendimiento. [4] También existen diferentes métodos dentro de cada categoría; por ejemplo, se han desarrollado diferentes modelos para utilizar contadores de rendimiento para la estimación de la energía. Cada uno de estos métodos tiene sus propias ventajas y desventajas. El objetivo de este artículo es examinar los diferentes métodos en cada categoría.

Estimación del consumo de energía a nivel de sistema y subsistema en tiempo de ejecución

El consumo de energía puede ser diferente para el mismo tipo de sistema debido a las diferencias en la fabricación del hardware y en las condiciones de temperatura en las que va a funcionar el dispositivo. La gestión de energía en tiempo real se puede utilizar para optimizar el sistema o los subsistemas a fin de minimizar el consumo de energía, lo que puede, por ejemplo, extender la vida útil de la batería de los dispositivos móviles o generar ahorros de energía para las empresas de Internet que operan con muchos servidores informáticos. [4] Las siguientes secciones son tecnologías descubiertas para permitir la estimación de energía en tiempo real.

Medición de potencia indirecta

La medición indirecta de potencia, como el uso de una unidad de monitoreo de rendimiento de CPU (PMU), [5] o contadores de rendimiento para estimar el consumo de energía de CPU y memoria en tiempo de ejecución [6] , se utilizan ampliamente debido a su bajo costo.

Contadores de rendimiento

Los contadores de rendimiento de hardware (HPC) son un conjunto de registros de propósito especial integrados en los microprocesadores modernos para almacenar los recuentos de actividades relacionadas con el hardware para eventos relacionados con el hardware y el software. [4] Los diferentes modelos de procesadores tienen una cantidad limitada de contadores de hardware con diferentes eventos que satisfarán el requisito de la CPU. Estos contadores de rendimiento suelen ser precisos y brindan información detallada importante sobre el rendimiento del procesador en la granularidad del ciclo de reloj. [7] Los investigadores pudieron crear diferentes modelos que utilizan el evento HPC para estimar el consumo de energía del sistema en tiempo real.

Modelo de estimación de potencia lineal de primer orden utilizando contadores de rendimiento

El modelo lineal de primer orden fue desarrollado por G. Contreras y M. Martonosi en la Universidad de Princeton utilizando el procesador Intel PXA255 para estimar el consumo de energía de la CPU y la memoria. [6] Esto es distinto del trabajo previo que utiliza HPC para estimar la energía porque el requisito de energía del procesador Intel PXA255 era más estricto y ofrecía menos eventos de rendimiento disponibles en comparación con los procesadores de gama media y alta. [6] Este método tampoco está vinculado a la tecnología de procesador específica y al diseño de HPC para la estimación de energía, sino que se puede utilizar para cualquier tipo de procesador con HPC.

Este modelo de potencia lineal utiliza cinco eventos de rendimiento, como se indica a continuación: instrucción ejecutada, dependencias de datos, error de caché de instrucciones, errores de TLB de datos y errores de TLB de instrucciones. Se deriva una expresión de modelo lineal (ecuación 1) como se indica a continuación, suponiendo una correlación lineal entre los valores de los contadores de rendimiento y el consumo de energía. [6]

(1)

Donde, son pesos de potencia y es una constante para el consumo de energía del procesador durante el tiempo de inactividad.

También se puede estimar el consumo de energía de la memoria (RAM externa) mediante el seguimiento de los eventos de rendimiento si están disponibles en el procesador diseñado. [6] El procesador PXA255, por ejemplo, no tiene eventos de rendimiento directos que tengan en cuenta la RAM externa, pero se pueden utilizar los errores de caché de instrucciones, los errores de caché de datos y la cantidad de dependencias de datos en el procesador para estimar el consumo de energía de la memoria. Nuevamente, se deriva un modelo lineal a partir de la información proporcionada (ecuación 2) para estimar el consumo de energía de la memoria. [6]

(2)

Donde, son pesos de potencia y es una constante de consumo de potencia durante el tiempo de inactividad.

El principal desafío de este método es calcular los pesos de potencia utilizando un modelo matemático (estimación de mínimos cuadrados ordinarios) en diferentes puntos de voltaje/frecuencia. Estos valores constantes en las ecuaciones 1 y 2 dependen del voltaje y la frecuencia y deben calcularse durante las pruebas de referencia. Después de construir una tabla de este tipo para los parámetros de pesos de potencia, la tabla se puede implementar en software o hardware para estimar la potencia en tiempo real. [6] El otro desafío es el acceso a los HPC; por ejemplo, en este caso se leen al comienzo de la interrupción del temporizador del sistema operativo principal, lo que requiere una modificación del software. Se puede escribir un programa de software utilizando las ecuaciones 1 y 2 y los pesos de potencia estimados derivados de la tabla para estimar el consumo de energía en tiempo de ejecución. Para la ecuación 1, el programa también necesita 5 muestras de HPC, pero en este ejemplo, el procesador PXA255 solo puede muestrear 2 eventos en un momento dado, por lo que se requiere la ejecución de múltiples códigos, así como la alineación de los datos. [6]

En resumen, los principales beneficios de este enfoque son que es fácil de implementar, tiene un bajo costo y no requiere modificaciones especiales de hardware. Los diseñadores de software pueden beneficiarse de este modelo al tener una estimación rápida de la potencia para sus aplicaciones sin ningún requisito de hardware adicional. [6]

La principal desventaja de este método es que: los procesadores del mundo real no son perfectos y este modelo no tiene en cuenta las relaciones no lineales en esos procesadores. Otro problema es también la sobrecarga del software que se ejecuta en el procesador y que consume energía. Este enfoque tampoco proporciona información detallada sobre el consumo de energía en cada unidad funcional arquitectónica, por lo que los diseñadores no pueden ver la diferencia entre cada módulo al ejecutar diferentes partes del software. Este método no puede ser utilizado por programadores de SO o desarrolladores de software que ejecuten programas multiproceso porque necesita recopilar datos ejecutando pruebas comparativas varias veces. [2] Este trabajo también es bueno para procesadores de un solo núcleo, pero no para procesadores multinúcleo.

Modelo de estimación de potencia lineal por partes utilizando contadores de rendimiento

El modelo por partes se desarrolló para estimar el consumo de energía con precisión utilizando contadores de rendimiento. Este método fue desarrollado por K. Singh, M. Bhadauria en la Universidad de Cornell y SAMcKee en la Universidad Tecnológica de Chalmers independientemente del comportamiento del programa para los conjuntos de pruebas de rendimiento SPEC 2006, SPEC-OMP y NAS. Este método se desarrolló para analizar los efectos de los recursos compartidos y la temperatura en el consumo de energía para multiprocesadores de chip. [2]

Este método utiliza 4 contadores de rendimiento del procesador AMD Phenom. Los contadores de rendimiento son los siguientes: : L2_CACHE_MISS: ALL, : RETRIED_UOPS, : RETIRED_MMX_AND_FP_INSTRUCTIONS: ALL, : DISPATCH_STALLS. Estos contadores de rendimiento son específicos de la arquitectura de AMD Phenom y pueden ser diferentes para otros procesadores. AMD permite recopilar datos de esos cuatro HPC simultáneamente. [2] Un microbenchmarks, que es un programa pequeño, intenta recopilar datos de los HPC seleccionados anteriormente. Los datos recopilados sobre cada núcleo de procesador se utilizan en la siguiente ecuación. [2]

(3)

Dónde (4)

La transformación de la ecuación 4 puede ser lineal, inversa, logarítmica, exponencial o de raíz cuadrada; depende de lo que haga que la predicción de potencia sea más precisa. Se eligió la función lineal por partes para analizar la ecuación 4 a partir de los datos recopilados porque capturará más detalles sobre la potencia de cada núcleo del procesador. Finalmente, el análisis de los datos recopilados de HPC con el método lineal por partes proporciona el consumo de energía detallado (por ejemplo, las fallas de caché L2 tienen la mayor contribución en el consumo de energía en comparación con L3).

El método anterior se utilizó para programar cada núcleo del procesador AMD Phenom en un rango de potencia definido. El núcleo del procesador se suspende cuando excede el rango de potencia disponible y vuelve a estar disponible cuando hay suficiente potencia disponible. [2]

Este método tiene algunas restricciones y problemas; por ejemplo, no tiene en cuenta el efecto de la temperatura. Existe una relación directa entre la temperatura y el consumo total de energía (porque a medida que aumenta la temperatura, aumenta la potencia de fuga) que este modelo no tiene en cuenta porque AMD Phenom no tiene sensores de temperatura por núcleo. Una segunda desventaja es que los microbenchmarks no son completos para obtener una mejor estimación de la energía (por ejemplo, no cubren el DISPATCH_STALLS HPC). Un microbenchmark más completo causará problemas de sincronización. Es necesario realizar trabajos futuros para incorporar datos térmicos en el modelo y las estrategias de programación de subprocesos, así como para reducir la frecuencia (DVFS) de cada núcleo en lugar de suspender el núcleo. [2] Este método solo cubre los procesadores, pero hay otros subsistemas, como la memoria y los discos, que también deben considerarse en la energía total.

Este método es diferente de muchos otros métodos que utilizan contadores de rendimiento porque se consideran todos los núcleos en procesadores multinúcleo, los contadores de rendimiento que se utilizan no tienen individualmente un gran efecto en el consumo de energía y estiman el consumo de energía para cada núcleo que se puede usar para la programación en tiempo real de cada núcleo para estar dentro del límite de energía. [2]

Modelo de estimación de potencia adaptativa mediante contadores de rendimiento

La mayoría de los modelos como el anterior no tienen la capacidad de medir el consumo de energía a nivel de componente o subsistema. DiPART (Análisis de potencia desagregado en tiempo real) desarrollado por el profesor M. Srivastava, Y. Sun y L. Wanner en la Universidad de California, Los Ángeles, permite esta capacidad para estimar el consumo de energía en función de los contadores de rendimiento del hardware y utilizando solo un sensor de potencia para todo el sistema. [4] Se requieren modelos para estimar el consumo de energía en función de los contadores de rendimiento. Estos modelos correlacionan los datos de diferentes contadores de rendimiento con el consumo de energía y los modelos estáticos como los ejemplos anteriores (de primer orden y lineal por partes) tienen diferentes errores de estimación debido a las variaciones en el hardware idéntico. [4] DiPART es una solución a este problema porque es un modelo autoadaptativo que se puede calibrar una vez y aplicar en diferentes plataformas.

El modelo de estimación lineal para DiPART requiere un sensor de potencia capaz de adquirir el consumo de energía disipada y la medición de corriente en tiempo de ejecución. Existen diferentes sensores integrados como el sistema Atom-LEAP [8] o las plataformas de desarrollo móvil Snapdragon de Qualcomm [9] que pueden realizar el trabajo para DiPART. Se puede utilizar un solo sensor de potencia para calibrar el modelo de estimación a nivel de subsistema DiPART. [4]

La potencia total del sistema es la suma del consumo de potencia de cada subsistema que se muestra en la ecuación 5.

(5) [4]

Para cada subsistema, se utilizan contadores de rendimiento energético. Para la potencia de la CPU, se requieren diez contadores de rendimiento de la siguiente manera: recuentos de tareas, recuentos de cambios de contexto, recuentos de migraciones de CPU, recuentos de errores de página, recuentos de ciclos, recuentos de instrucciones, recuentos de ramificaciones, recuentos de referencias de caché y recuentos de errores de caché. Luego, se utiliza un modelo lineal para calcular la potencia total de la CPU y los valores de los coeficientes se calculan con un algoritmo de regresión lineal utilizando datos de contadores de rendimiento y datos de consumo de energía monitoreados. [4]

(6) [4]

Los contadores de rendimiento anteriores también se pueden utilizar para el modelo de consumo de energía de RAM y el vector de coeficiente de memoria y el valor constante también se calcula durante la fase de entrenamiento con datos del contador de rendimiento y datos de consumo de energía monitoreados.

(7) [4]

El modelo de consumo de energía del disco se basa en un contador de entrada y un contador de salida correlacionados con los contadores de eventos de entrada/salida.

Se adopta el mismo enfoque que para la CPU y la RAM para estimar el coeficiente y la constante de la potencia del disco durante la fase de entrenamiento. [4]

(8) [4]

Durante el entrenamiento, la potencia total medida por el sensor se resta de la predicción inicial del modelo de potencia de CPU, RAM y disco. Luego, se toma el 10 % del resultado delta para compensar en los modelos de CPU, RAM y disco de los subsistemas individuales. Esta iteración continuará hasta que el error de estimación de la potencia total del sistema sea menor que un umbral determinado o alcance la cantidad de iteraciones especificada. Durante este proceso de entrenamiento, con una cantidad determinada de iteraciones, cada modelo de subsistema se ajusta en consecuencia en función del porcentaje delta. Una vez que se entrenan los subsistemas, no es necesario entrenar el sistema total.

Se requiere la modificación del modelo de consumo de energía de CPU, RAM y disco y la variación a nivel del sistema si el delta total no es inferior al 10 %. El proceso de iteración continuará hasta que la predicción del modelo de consumo de energía de subsistemas individuales se acerque a la energía total monitoreada. Una vez que se haya entrenado el modelo de consumo de energía de subsistemas, no es necesario entrenar nuevamente el modelo de consumo de energía a nivel del sistema total para el mismo sistema.

Este método es beneficioso en comparación con los modelos estáticos debido a su adaptabilidad a las variaciones entre diferentes sistemas incluso con exactamente el mismo hardware. Los resultados experimentales muestran que los errores estimados son altos antes del entrenamiento de DiPART y que el error disminuye a medida que aumenta el número de iteraciones.

Un problema importante con este modelo es la dependencia de sensores de potencia para medir la potencia total. El otro problema es la cantidad de contadores de rendimiento que se utilizan para el modelo DiPART. Estos contadores de rendimiento podrían no estar disponibles para todos los procesadores. Este método también se utilizó para el subsistema de CPU, RAM y disco, pero hay otros subsistemas que deben considerarse en el consumo total de energía. El problema principal con la adición de más subsistemas será el mecanismo adaptativo porque a medida que aumenta la cantidad de subsistemas, la precisión y la velocidad de entrenamiento disminuirán. [4] Otro problema es que la CPU, el disco y la RAM tampoco son perfectos y tienen una parte de no linealidad que no se consideró en este método.

Gestión térmica dinámica

A medida que el tamaño de la tecnología de circuitos integrados (CI) se hace más pequeño en escala nanométrica y se juntan más transistores en esa pequeña área, la potencia total y la temperatura en el chip también aumentan. La alta temperatura en el chip, si no se controla, puede dañar o incluso quemar el chip. La alta temperatura del chip también tiene impactos en el rendimiento y la confiabilidad. [10] [11] La alta temperatura del chip causa un mayor consumo de energía de fuga, mayor resistencia de interconexión y menor velocidad de los transistores. [10] Por lo tanto, la gestión térmica dinámica (DTM) es necesaria para sistemas integrados de alto rendimiento o microprocesadores de alta gama. Los sensores térmicos tampoco son perfectos para el trabajo debido a su precisión y al largo retraso para capturar la temperatura. La idea de la DTM es detectar y reducir la temperatura de los puntos calientes de las unidades en un chip utilizando diferentes técnicas como la migración de actividad, la conmutación local, el voltaje dinámico y el escalado de frecuencia. [10]

H. Li, P. Liu, Z. Qi, L. Jin, W. Wu, SXD Tan y J. Yang desarrollaron un nuevo método en la Universidad de California Riverside, basado en la observación del consumo de energía promedio de módulos de bajo nivel que ejecutan una carga de trabajo típica. [10] Existe una correlación directa entre la observación y las variaciones de temperatura. Este nuevo método fue una solución para reemplazar las tecnologías antiguas, como los sensores de seguimiento en línea en el chip, como la tecnología de sensores basada en CMOS, que son menos precisos y requieren la implementación de hardware. [12]

Este método se basa en observar la potencia media en una cierta cantidad de tiempo que determina las variaciones de temperatura. Esta idea se puede implementar con un algoritmo de simulación térmica de tiempo de ejecución rápido a nivel arquitectónico. [10] Este método también presenta una nueva forma de calcular los cambios transitorios de temperatura basados ​​en el concepto de coincidencia de momentos del dominio de la frecuencia. El concepto de coincidencia de momentos básicamente dice que los comportamientos transitorios de un sistema dinámico se pueden describir con precisión mediante unos pocos polos dominantes de los sistemas. [10] El algoritmo de coincidencia de momentos es necesario para calcular la respuesta de variación de temperatura en condiciones de temperatura inicial y entradas de potencia media para un tiempo determinado. [10] Este método también sigue el modelado RC térmico a nivel de circuito a nivel arquitectónico como se describe en la referencia. [13] La variación de temperatura de la unidad durante el tiempo de ejecución se debe al trazo de potencia irregular generado por cada unidad en sus bloques arquitectónicos. [10] Esta entrada de potencia es consistente con la oscilación de CC y pequeña de CA. También se mostró y demostró que la mayor parte de la energía en el rastro de potencia se concentra en el componente de CC. Por lo tanto, la potencia media se puede describir como una entrada de CC constante al circuito térmico. Después de todo, es necesario implementar una marcha de momento térmico (TMM) con condición inicial y entrada de CC. El modelo TMM es el siguiente:

(9)

G y C son matrices de circuitos conductivos y capacitivos, y x es el vector de temperatura del nodo. [10] u es el vector de la fuente de energía independiente y B es la matriz selectora de entrada. Esta ecuación se resolverá en el dominio de la frecuencia y se requiere la condición inicial que será la temperatura inicial en cada nodo. [10] La idea principal es implementar el algoritmo TMM que proporciona una estimación de temperatura en línea más confiable y mejor para aplicaciones DTM.

En resumen, el algoritmo TMM es mucho más rápido que el trabajo previo en esta área para estimar la variación térmica porque este método utiliza el método de coincidencia de momentos en el dominio de la frecuencia. El otro trabajo (como HotSpot) utiliza el método de integración donde necesita todos los puntos anteriores para obtener la temperatura en un punto de ejecución determinado. Esto hará que el tiempo de simulación sea más largo.

Este trabajo también se puede mejorar calculando la potencia promedio en tiempo real utilizando contadores de rendimiento. Este método se puede agregar a los modelos anteriores utilizando contadores de rendimiento para estimar la variación de temperatura sobre la marcha a medida que se ejecutan los programas.

PowerBooter y PowerTutor

Esta técnica de modelo de potencia fue desarrollada por la colaboración entre L. Zhang, B. Tiwana, Z. Qian, Z. Wang, RP Dick, Z. Mao de la Universidad de Michigan y L. Yang de Google Inc. para estimar con precisión la estimación de potencia en línea para teléfonos inteligentes. [14] PowerBooter es un modelo de potencia automatizado que utiliza sensores de voltaje de batería incorporados y el comportamiento de la batería durante la descarga para monitorear el consumo de energía del sistema total. Este método no requiere ningún equipo de medición externo especial. PowerTutor también es una herramienta de medición de potencia que utiliza datos generados por PowerBooter para la estimación de potencia en línea. Siempre existe una limitación en la vida útil de la batería de la tecnología de teléfonos inteligentes que los diseñadores de hardware y software deben superar. Los diseñadores de software no siempre tienen el mejor conocimiento del consumo de energía para diseñar mejores aplicaciones optimizadas de energía, por lo tanto, los usuarios finales siempre culpan a la vida útil de la batería. Por lo tanto, existe la necesidad de una herramienta que tenga la capacidad de medir el consumo de energía en teléfonos inteligentes que los diseñadores de software puedan usar para monitorear sus aplicaciones en tiempo real. Los investigadores han desarrollado modelos específicos de gestión de energía para sistemas portátiles integrados específicos y se necesita un gran esfuerzo para reutilizar esos modelos para una amplia variedad de tecnologías modernas de teléfonos inteligentes . Por lo tanto, la solución a este problema es el modelo PowerBooter, que puede estimar el consumo de energía en tiempo real para subsistemas individuales de teléfonos inteligentes, como CPU, LCD, GPS, audio, Wi-Fi y componentes de comunicación de teléfonos celulares. Junto con el modelo PowerBooter, una utilidad en línea PowerTutor puede usar los datos generados para determinar el consumo de energía a nivel de subsistema. El modelo y la utilidad PowerTutor se pueden usar en diferentes plataformas y tecnologías de teléfonos inteligentes .

Este modelo es diferente de los otros modelos descubiertos porque se basa únicamente en el conocimiento de la curva de voltaje de descarga de la batería y el acceso al sensor de voltaje de la batería que está disponible en todos los teléfonos inteligentes modernos. [14] La idea básica de esta técnica de modelo es utilizar el estado de descarga de la batería con programas de software de entrenamiento en ejecución para controlar los estados de energía y actividad de los componentes del teléfono. Cada componente individual del teléfono inteligente se mantiene en un estado específico durante un período de tiempo significativo y el cambio en el estado de descarga de la batería se captura utilizando sensores de voltaje de batería incorporados. [14] La primera idea desafiante es convertir las lecturas de voltaje de la batería en consumo de energía. Esto se determina por la variación del estado de descarga (que es la energía total consumida por la batería) dentro de un intervalo de prueba capturado por sensores de voltaje que eventualmente impulsarán la siguiente ecuación.

(10)

Donde E es la capacidad de energía nominal de la batería y SOD (Vi) es el estado de descarga de la batería a voltaje Vi y P es el consumo de energía promedio en el intervalo de tiempo t1 y t2. El estado de descarga se puede estimar utilizando una tabla de consulta donde se captura la relación entre el voltaje actual y SOD. Determinar la energía también es un problema porque la energía cambia a medida que la batería envejece. Las baterías nuevas tienen la energía total escrita en su parte posterior, pero el valor puede no ser verdadero para siempre. Puede estimar la energía a la tasa de descarga más alta y más baja para disminuir el error. La resistencia interna también tiene un impacto significativo en la corriente de descarga. Para disminuir el efecto de la resistencia interna, todos los componentes del teléfono se pueden cambiar a sus modos de energía más bajos para minimizar la corriente de descarga al tomar una lectura de voltaje. Finalmente, este método utiliza una función lineal por partes para modelar la relación no lineal entre SOF y el voltaje de la batería.

El modelo de batería anterior se puede automatizar en su totalidad con 3 pasos que se describen en [14] . En conclusión, este método es beneficioso porque todos los teléfonos inteligentes pueden utilizarlo y, en el caso de los teléfonos inteligentes nuevos, este modelo solo debe construirse una vez y, después de automatizar el proceso, no habría necesidad de ningún equipo adicional para medir el consumo de energía. Una vez que el modelo se genera de forma automática o manual, la utilidad PowerTutor puede utilizar los datos para estimar el consumo de energía en tiempo real. Los ingenieros de software pueden utilizar esta utilidad para optimizar su diseño o los usuarios pueden utilizar esta herramienta para tomar decisiones sobre la compra de aplicaciones en función del consumo de energía.

Los principales problemas están en el cálculo de la energía, que se suma a la precisión del modelo de potencia. Otro problema es considerar la resistencia interna para leer el voltaje. Esto se puede resolver en versiones más nuevas de teléfonos inteligentes que proporcionan medición de corriente en lugar de voltaje. El modelo anterior debe modificarse utilizando la medición de corriente.

Appscope [15] y DevScope [16] son ​​trabajos similares para estimar el consumo de energía de los teléfonos inteligentes .

Modelado en tiempo de ejecución y estimación del consumo de energía del sistema operativo

El sistema operativo (OS) es el software principal que se ejecuta en la mayoría de los sistemas informáticos y contribuye de manera importante a disipar el consumo de energía. Por lo tanto, T. Li y LK John de la Universidad de Texas en Austin desarrollaron un modelo de sistema operativo para estimar el consumo de energía por SO que ayuda a la administración de energía y la evaluación de la energía de las aplicaciones de software. [3]

Se ha calculado que la ejecución de software en componentes de hardware puede disipar una buena parte del consumo de energía. [17] También se ha demostrado que la elección del algoritmo y otras decisiones de código de software de nivel superior durante el diseño del software podrían afectar significativamente la energía del sistema. Muchas de estas aplicaciones de software dependen del sistema operativo; por lo tanto, pasar por alto el consumo de energía estimado por SO podría causar un gran error en la estimación de energía. Estimar el consumo de energía del SO podría ayudar a los diseñadores de software a optimizar el diseño de su código para que sea más eficiente energéticamente. Por ejemplo, un ingeniero de software puede observar el consumo de energía al usar diferentes técnicas de compilación para manejar errores de TLB y paginación. [14] Un buen modelo de SO debe tener las siguientes propiedades para ser lo suficientemente bueno para herramientas de administración térmica o de energía. El modelo debe ser altamente confiable, rápido y también debe tener una capacidad de estimación del tiempo de ejecución que no aumente la sobrecarga. El modelo debe ser simple y fácilmente adoptable en diferentes plataformas.

La estimación de potencia en tiempo de ejecución propuesta requiere una operación lineal de primer orden en una única métrica de potencia, lo que reduce la sobrecarga de estimación. [14] La instrucción por ciclo (IPC) se puede utilizar como métrica para caracterizar el rendimiento de los procesadores modernos. En el artículo [14] se muestra cómo varios componentes de los sistemas de CPU y memoria contribuyen a la potencia total de la rutina del sistema operativo. La estructura de la ruta de datos y la canalización junto con los relojes consumen la mayor parte de la energía. Se puede derivar un modelo lineal de IPC que rastrea la potencia de la rutina del sistema operativo. Se puede utilizar una ecuación de energía simple para estimar el consumo de energía de una pieza determinada de software, donde P es la potencia promedio y T es el tiempo de ejecución de ese programa.

La parte desafiante es calcular la potencia promedio P para cada rutina individual del sistema operativo. Se puede usar la correlación entre la potencia promedio de la rutina IPC y del SO o se pueden usar contadores de rendimiento de hardware. El método de creación de perfiles (datos recopilados de pruebas comparativas) también se puede usar para predecir el consumo de energía. El modelo de potencia lineal en [14] es el siguiente: . Este es un modelo lineal simple que muestra una fuerte correlación entre la potencia de la rutina IPC y del SO. En este enfoque, también se requiere la creación de perfiles para generar los datos necesarios para construir el modelo. Una vez que se genera el modelo para un sistema, no se necesita nuevamente para el mismo sistema.

Medición y aprovisionamiento de energía de máquinas virtuales

Joulemeter es una solución propuesta por Aman Kansal, Feng Zhao y Jie Liu de Microsoft Inc. y Nupur Kothari de la Universidad del Sur de California, Los Ángeles y Arka Bhattacharya del Instituto Indio de Tecnología para medir la potencia de las máquinas virtuales que no se puede medir directamente en el hardware. [18] Este método se utiliza para la gestión de la energía de los centros de datos virtualizados. La mayoría de los servidores actuales tienen medidores de energía y los antiguos utilizan unidades de distribución de energía (PDU). Este método utiliza esos medidores de energía individuales para ahorrar una reducción significativa en los costos de suministro de energía.

Este método utiliza modelos de energía en software para rastrear el uso de energía de la VM en cada recurso de hardware significativo, utilizando estados de energía de hardware observables por hipervisor. [18] Joulemeter también puede resolver el problema de limitación de energía para las VM, lo que reducirá significativamente los costos de aprovisionamiento de energía. Los subsistemas que más energía consumen en los servidores informáticos son el procesador, la memoria y el disco. Los servidores también tienen un consumo de energía inactivo que a veces puede ser grande, pero es estático y se puede medir. Los modelos de energía se presentan para cada uno de los subsistemas CPU, memoria y disco en la referencia [18] en detalle. Este modelo de energía es la técnica central de Joulemeter. La Figura 4 en la referencia [18] muestra el diagrama de bloques de Joulemeter donde el módulo de seguimiento de recursos del sistema y energía lee el uso completo de CPU, disco y energía del servidor. El módulo de seguimiento de recursos de VM rastrea toda la carga de trabajo utilizando contadores de hipervisor. El módulo de entrenamiento del modelo base implementa los métodos de aprendizaje descritos en [18], así como el módulo de refinamiento. El módulo de cálculo de energía finalmente toma el módulo de entrenamiento del modelo base y el módulo de refinamiento del modelo para generar el uso de energía de la máquina virtual utilizando las ecuaciones de energía descritas en la referencia. [18]

Los beneficios de este método son el aislamiento seguro de las cargas de trabajo ubicadas en el mismo lugar, lo que permite consolidar varias cargas de trabajo en menos servidores, lo que da como resultado una mejor utilización de los recursos y una reducción de los costos de energía en inactividad. Joulemeter también se puede utilizar para resolver el problema de limitación de energía para las máquinas virtuales, lo que ahorrará una cantidad significativa de costos de aprovisionamiento de energía en los centros de datos.

Medición de potencia directa

Se pueden utilizar diferentes tipos de sensores para recopilar voltaje, corriente, frecuencia o temperatura y luego utilizar esos datos para estimar el consumo de energía.

Sistema de sensor integrado con procesamiento de bajo consumo de energía

El LEAP (Low Power Energy Aware Processing) ha sido desarrollado por D. McIntire, K. Ho, B. Yip, A. Singh, W. Wu y WJ Kaiser en la Universidad de California en Los Ángeles para asegurarse de que los sistemas de sensores de red integrados estén optimizados energéticamente para sus aplicaciones. El sistema LEAP, como se describe en la referencia [19], ofrece un control detallado de la disipación de energía y una programación sofisticada del control de potencia para todos los subsistemas, incluidos los sistemas de sensores. LEAP es una arquitectura multiprocesador basada en particionamiento de sistemas de hardware y software. Es un método de control de potencia y monitorización de energía independiente para cada subsistema individual. El objetivo de LEAP es controlar los microprocesadores para lograr el menor consumo de energía por tarea. Muchos sensores integrados en red modernos deben realizar muchas cosas, como procesamiento de imágenes, computación estadística de alto rendimiento y comunicación. Para asegurarse de que todas estas aplicaciones funcionen de manera eficiente, se requiere una función de monitorización y programación de energía en tiempo real y LEAP puede ofrecer esta función para esos sistemas.

El sistema LEAP (ENS) fue diseñado para ofrecer una capacidad de medición de energía de alta precisión y bajo consumo. LEAP permite aplicaciones conscientes de la energía a través de la programación y el perfil de energía de componentes de alta eficiencia energética, incluyendo múltiples interfaces de red inalámbrica, elementos de almacenamiento y capacidades de detección. [19] La mayor ventaja del sistema LEAP es su capacidad de gestión y preprocesamiento de energía (EMAP). Los resultados experimentales muestran que la elección óptima de sistemas de sensores, procesador, interfaz inalámbrica y tecnología de memoria no depende de la aplicación, sino que podría ser un problema de asignación de hardware. EMAP tiene la capacidad de dividir dispositivos en muchos dominios de energía con la capacidad de monitorear, habilitar o deshabilitar la energía para cada dominio, así como de responder a eventos o condiciones desencadenantes que restablezcan o eliminen la energía en cada dominio. EMAP recopila datos periódicamente y los transfiere al proceso host y luego el procesador host proporciona el programa de gestión de energía a EMAP.

La figura 1 de la referencia [19] muestra la arquitectura LEAP y la arquitectura EMAP. LEAP y EMAP son plataformas complejas que requieren hardware y software. Todos los enfoques de diseño detallados se describen en la referencia. [19]

En conclusión, LEAP se diferencia de métodos anteriores como PowerScope [20] porque proporciona información de consumo de energía en tiempo real y un entorno de ejecución de aplicaciones estándar en la misma plataforma. Como resultado, LEAP elimina la necesidad de sincronización entre el dispositivo bajo prueba y una unidad de medición de energía externa. LEAP también proporciona información de energía de subsistemas individuales, como CPU, GPU y RAM, a través de medición directa, lo que permite evaluaciones precisas de los efectos del software y hardware en el comportamiento de energía de componentes individuales. [21]

Validación del modelo de potencia mediante mediciones térmicas

Uno de los desafíos para los diseñadores de HW o SW es ​​validar sus datos de simulación con datos empíricos. Requieren algún tipo de utilidad o herramienta para medir el consumo de energía y comparar con sus datos de simulación. Uno de estos métodos para capturar datos en tiempo real para validar modelos térmicos o de potencia es una configuración de medición infrarroja desarrollada por FJ Mesa-Martinez, J.Nayfach-Battilana y J. Renau en la Universidad de California Santa Cruz. Su enfoque es capturar mapas térmicos utilizando cámaras infrarrojas con alta resolución espacial y alta velocidad de cuadros. Luego, un algoritmo genético encuentra una ecuación de potencia para cada bloque de plano de planta del procesador que produce el mapa térmico de captura para brindar información detallada sobre la ruptura de potencia (fuga y dinámica). [22] También desarrollaron un filtro de procesamiento de imágenes para aumentar la precisión de la imagen térmica. El mayor desafío para este enfoque es obtener un mapa de potencia detallado a partir de las mediciones térmicas. No existe un mapeo directo entre la información medida y la potencia. Se desarrolló un algoritmo genético descrito en la referencia [22] que itera múltiples trazas térmicas y las compara con los resultados del simulador térmico para encontrar la mejor correlación de potencia.

El primer paso es medir la temperatura utilizando una cámara IR y dentro del refrigerante de aceite que fluye sobre la parte superior de la superficie del chip, la información detallada de la configuración se describe en la referencia. [22] Se elige el aceite por su facilidad de modelado y precisión. Las cámaras infrarrojas deben calibrarse para compensar las diferentes emisiones térmicas del material, las configuraciones de las lentes y otros factores de referencia. [22] También se aplica un segundo filtro para compensar la distorsión óptica inducida por la configuración de las lentes. En este enfoque se requiere un modelo térmico muy preciso para tener en cuenta los efectos de la configuración de refrigeración líquida con precisión. Las ecuaciones del modelo se describen en la referencia. [22]

Los diseñadores pueden utilizar este método para validar su simulación u optimizar su diseño, especialmente porque este método proporciona información detallada sobre fugas y consumo dinámico de energía. Este método también es útil en el diseño de empaquetado de chips, disipadores de calor y sistemas de refrigeración. Este método también muestra a los diseñadores qué parte de los bloques del plano de planta propaga el calor más rápido o más lento.

Conclusión

Estimar el consumo de energía es fundamental para que los desarrolladores de hardware, software y otros usuarios de sistemas informáticos, como las empresas de Internet, ahorren energía u optimicen su hardware y software para que sean más eficientes energéticamente. También es fundamental porque se pueden utilizar los recursos disponibles en consecuencia. Los simuladores solo son buenos durante el diseño, pero su estimación también debe verificarse. Los simuladores en general tienen muchos errores debido a la fabricación de los componentes de hardware. Los medidores de potencia miden el consumo de energía de todo el sistema, pero no brindan desgloses detallados sobre la energía disipada para que los diseñadores puedan optimizar su aplicación o hardware. Este artículo analizó diferentes métodos que los investigadores han descubierto en los últimos años para resolver algunos de los problemas mencionados anteriormente.

Referencias

  1. ^ Mudge, T. (abril de 2001). "Potencia: una restricción de diseño arquitectónico de primera clase". Computer . 34 (4): 52–58. CiteSeerX  10.1.1.646.2818 . doi :10.1109/2.917539.
  2. ^ abcdefgh Singh, Karan; Bhadauria, Major; McKee, Sally A. (23 de julio de 2009). "Estimación de potencia en tiempo real y programación de subprocesos mediante contadores de rendimiento". ACM SIGARCH Computer Architecture News . 37 (2): 46. CiteSeerX 10.1.1.141.1881 . doi :10.1145/1577129.1577137. S2CID  14453831. 
  3. ^ ab Li, Tao; John, Lizy Kurian (10 de junio de 2003). "Modelado en tiempo de ejecución y estimación del consumo de energía del sistema operativo". Revisión de evaluación del rendimiento de ACM SIGMETRICS . 31 (1): 160. CiteSeerX 10.1.1.14.3803 . doi :10.1145/885651.781048. 
  4. ^ abcdefghijklmn Sun, Wanner y Srivastava, Yuwen, Lucas y Mani. "Estimación de bajo costo de la potencia del subsistema" (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)[ enlace muerto permanente ]
  5. ^ Cho, Youngjin; Younghyun Kim; Sangyoung Park; Naehyuck Chang (2008). Estimación de potencia a nivel de sistema utilizando una unidad de monitoreo de rendimiento de bus en chip. Iccad '08. págs. 149–154. ISBN 9781424428205.
  6. ^ abcdefghi Contreras, G.; Martonosi (8–10 de agosto de 2005). "Predicción de potencia para procesadores Intel XScale/SPL reg/ mediante eventos de la unidad de monitorización del rendimiento". ISLPED '05. Actas del Simposio internacional de 2005 sobre electrónica y diseño de bajo consumo, 2005. págs. 221–226. doi :10.1109/LPE.2005.195518. ISBN 978-1-59593-137-5.
  7. ^ Weaver, VM; McKee, SA (30 de septiembre de 2008). "¿Se puede confiar en los contadores de rendimiento de hardware?". Simposio internacional IEEE de 2008 sobre caracterización de cargas de trabajo . pp. 141–150. CiteSeerX 10.1.1.620.9917 . doi :10.1109/IISWC.2008.4636099. ISBN .  978-1-4244-2777-2.S2CID14399141  .​
  8. ^ Singh, Digvijay; Kaiser, W J. (26 de mayo de 2010). "La plataforma Atom LEAP para computación integrada de bajo consumo energético". {{cite journal}}: Requiere citar revista |journal=( ayuda )
  9. ^ "Plataforma de desarrollo móvil Qualcomm. Snapdragon MSM8660. Disponible en".
  10. ^ abcdefghij Colgar, Li; Pu Liu; Zhenyu Qi; Lingling Jin; Wei Wu; Bronceado, SXD; Jun Yang (31 de octubre de 2005). "Simulación térmica eficiente para el seguimiento y la gestión de la temperatura en tiempo de ejecución". 2005 Congreso Internacional sobre Diseño Informático . págs. 130-133. CiteSeerX 10.1.1.114.7660 . doi :10.1109/ICCD.2005.46. ISBN  978-0-7695-2451-1.S2CID 10154370  .
  11. ^ Miente, Pu; Zhenyu Qi; colgar Li; Lingling Jin; Wei Wu; SX-D. Broncearse; Jun Yang (2005). Simulación térmica rápida para gestión térmica dinámica a nivel de arquitectura. Iccad '05. págs. 639–644. ISBN 9780780392540. {{cite book}}: |journal=ignorado ( ayuda )
  12. ^ Brooks, D.; Martonosi, M. (7 de agosto de 2002). "Gestión térmica dinámica para microprocesadores de alto rendimiento". Actas del Séptimo Simposio Internacional de Arquitectura de Computadores de Alto Rendimiento de la HPCA . págs. 171–182. CiteSeerX 10.1.1.590.1583 . doi :10.1109/HPCA.2001.903261. ISBN .  978-0-7695-1019-4.S2CID1054852  .​
  13. ^ Huang, Wei; Mircea R. Stany; Kevin Skadronz; Karthik Sankaranarayanan (abril de 2004). "Modelado térmico compacto para diseño consciente de la temperatura" (PDF) . 2004. Archivado desde el original (PDF) el 16 de junio de 2012.
  14. ^ abcdefgh Zhang, Lide; Birjodh Tiwana; Zhiyun Qian; Zhaoguang Wang; Robert P. Dick; Zhuoqing Morley Mao ; Lei Yang (2010). "Estimación precisa de potencia en línea y generación automática de modelos de potencia basados ​​en el comportamiento de la batería para teléfonos inteligentes". Actas de la octava conferencia internacional IEEE/ACM/IFIP sobre diseño de código de hardware/software y síntesis de sistemas - CODES/ISSS '10 . p. 105. doi :10.1145/1878961.1878982. ISBN 9781605589053.S2CID1458775  .​
  15. ^ Yoon, Chanmin; Kim, Dongwon; Jung, Wonwoo; Kang, Chulkoo; Cha, Hojung. "AppScope: marco de medición de energía de aplicaciones para teléfonos inteligentes Android que utiliza monitoreo de actividad del núcleo" (PDF) .
  16. ^ Jung, Wonwoo; Kang, Chulkoo; Yoon, Chanmin; Kim, Dongwon; Cha, Hojung (2012). "DevScope: una herramienta de análisis de potencia en línea y no intrusiva para componentes de hardware de teléfonos inteligentes". Actas de la octava conferencia internacional IEEE/ACM/IFIP sobre diseño de hardware/software y síntesis de sistemas . págs. 353–362. doi :10.1145/2380445.2380502. ISBN . 9781450314268. Número de identificación del S2C:  18828989.
  17. ^ "Herramienta de software Intel Power Gadget en". 2018-10-08.
  18. ^ abcdef Kansal, Aman; Feng Zhao; Jie Liu; Nupur Kothari; Arka A. Bhattacharya (2010). "Medición y aprovisionamiento de energía de máquinas virtuales". Actas del 1.er simposio de la ACM sobre computación en la nube - SoCC '10 . p. 39. doi :10.1145/1807128.1807136. ISBN 9781450300360.S2CID12234071  .​
  19. ^ abcd McIntire, Dustin; Kei Ho; Bernie Yip; Amarjeet Singh; Winston Wu; William J. Kaiser (2006). "El sistema de sensores en red integrados con procesamiento de bajo consumo de energía (LEAP)". Actas de la quinta conferencia internacional sobre procesamiento de información en redes de sensores - IPSN '06. p. 449. doi :10.1145/1127777.1127846. ISBN 978-1595933348. Número de identificación del sujeto  3157391.
  20. ^ Flinn y Satyanarayanan, J. y M. (6 de agosto de 2002). "PowerScope: una herramienta para perfilar el uso de energía de las aplicaciones móviles". Actas de la WMCSA'99. Segundo taller del IEEE sobre sistemas y aplicaciones de computación móvil . pp. 2–10. CiteSeerX 10.1.1.46.6876 . doi :10.1109/MCSA.1999.749272. ISBN .  978-0-7695-0025-6.S2CID10256882  .​
  21. ^ Mahsan Rofouei, ThaStathopoulos, Ryffel, Kaiser y Sarrafzadeh, Mahsan, Thanos, William, Majid (2008). "Computación de alto rendimiento consciente de la energía con unidades de procesamiento gráfico" (PDF) . {{cite journal}}: Requiere citar revista |journal=( ayuda )CS1 maint: multiple names: authors list (link)
  22. ^ abcde Mesa-Martínez, Francisco Javier; Nayfach-Battilana, Joseph; Renau, José (9 de junio de 2007). "Validación de modelos de potencia mediante medidas térmicas". Noticias de arquitectura informática de ACM SIGARCH . 35 (2): 302. doi :10.1145/1273440.1250700.