El nuevo sistema de ARM revolucionará la gestión de energía en Android

El proyecto EAS, apoyado por ARM, quiere solucionar de una vez por todas el gran problema de la gestión de energía en Linux, y por extensión, en Android.

Una vez que la novedad que supone un aumento de potencia en los procesadores deja de interesarnos, los usuarios nos encontramos con dispositivos que inevitablemente consumen y se calientan más. Este es un problema que se da en todos los sistemas informáticos, pero cuyos síntomas notamos más cuando el sistema en cuestión está en nuestra mano.

Por eso ARM y otros fabricantes se han centrado en mejorar el consumo de sus procesadores, pero hay un límite a lo que pueden hacer con el hardware. Más pronto que tarde hay que cambiar el software, y eso supone cambiar la manera en la que los sistemas Linux llevaban décadas funcionando.

Los dos pilares de la gestión de energía en Linux

Aunque la gestión de energía de Linux, el kernel (núcleo) en el que está basado Android, está compuesta de muchas piezas, hay dos que destacan por encima del resto: cpufreq y cpuidle, dos módulos que controlan cómo el sistema operativo gestiona el procesador.

cpufreq, como su nombre indica, se encarga de gestionar las frecuencias a las que va el procesador; cuando en El Androide Libre hablamos de la “velocidad” del procesador de un smartphone, en realidad estamos hablando de la frecuencia máxima que tiene de fábrica, pero eso no significa que vaya siempre a esa velocidad. Si no estamos haciendo nada con el smartphone, no sirve de mucho que el procesador esté dando lo mejor de sí, consumiendo energía. cpufreq se encarga de reducir y aumentar la frecuencia del procesador, y puede ser controlado por programas del sistema operativo o por el propio usuario.

cpuidle en cambio se encarga de gestionar cuándo un núcleo está activo o no. Si el procesador de nuestro smartphone tiene varios núcleos, no siempre es necesario que todos estén activos, y el sistema puede ahorrar energía activando  sólo uno para una operación simple. Incluso si sólo tenemos un núcleo, es muy útil cuando dejamos el sistema sin hacer nada.

Estas dos herramientas son muy útiles para gestionar energía en Linux y sistemas operativos derivados, pero hay un gran problema de diseño: cpufreq y cpuidle son completamente independientes, tanto entre sí como respecto al sistema operativo. Eso significa que hay ocasiones en las que se pueden molestar entre sí, con cpufreq bajando y subiendo frecuencias, cpuidle activando y desactivando núcleos, y encima el sistema operativo haciendo equilibrios con lo que tiene.

Por ejemplo, se pueden dar ocasiones en las que el sistema manda una tarea a un núcleo que no está activado, en vez de a uno que ya está activado y que no necesitará energía para “despertar”. Suena mal, pero la verdad es que la mayoría de las veces funciona bien en ordenadores y servidores, los sistemas para los que Linux estaba diseñado. Pero eso no es suficiente para tu smartphone, que no tiene el lujo de un cable enchufado a la red eléctrica.

EAS, el sistema que mejorará la gestión de energía en Android

Aquí entra EAS (Energy-Aware Scheduling), un nuevo subsistema que unirá las funcionalidades de cpufreq y cpuidle bajo un mismo paraguas, junto con las mejoras de gestión de energía introducidas por ARM en el kernel de Linux. Aún queda mucho trabajo por delante para EAS, pero ya está claro que este nuevo sistema permitirá un control más completo de los núcleos de los procesadores. Siguiendo el ejemplo anterior, EAS permitirá que el sistema mande una nueva tarea a un núcleo que ya está activado y con una tarea pendiente, en vez de activar un nuevo núcleo.

¿Cómo afectará esto a Android? Está claro que ARM está apoyando el desarrollo de EAS con los smartphones en mente, para que sea integrado también en Android. Gracias a esto, nuestro smartphone podrá gestionar la energía que dedica a los núcleos del procesador de manera más eficiente, lo que debería traducirse en baterías que duren más tiempo, como vemos en esta tabla.

EAS llegará en 2016, aunque de ahí a que aparezca en Android puede pasar un tiempo. Hemos esperado décadas para una gestión de energía más inteligente, ¿qué más dará esperar un poco más?

Vía AndroidAuthority | Más información Linaro Blog