| Artículos | 01 NOV 2008

Introducción a los procesadores móviles

Tags: Histórico
Curso de programación para dispositivos móviles (I de III)
José A. Alvarez.
"En el último año estamos presenciando como la línea que separa las computadoras personales tradicionales de los dispositivos móviles cada vez es más difusa. Esta evolución de los dispositivos móviles está creando exigencias por parte de los usuarios que esperan encontrar la funcionalidad a la que están acostumbrados a usar en sus procesadores convencionales. Ya no se espera que un dispositivo móvil sea empleado para realizar exclusivamente llamadas. Consultar el correo electrónico, acceder a las cotizaciones de la bolsa, editar ficheros, no consultar bases de datos (sistemas de navegación)... todo esto invita a esperar de estos procesadores móviles cada vez más rendimiento, pero con el añadido de evitar dilapidar recursos en aras de la conservación de batería (de la que estos sistemas dependen enormemente). El siguiente curso está pensado para repasar los principales aspectos que necesitamos saber para comprender el mercado de los terminales móviles, así como dar los primeros pasos con una aplicación real.

El mercado de los dispositivos móviles ha sido tradicionalmente liderado por ARM (procesadores RISC). La importancia del sector de procesador móvil es tal que Intel ha mostrado este verano su apuesta con el procesador Atom. ARM apuesta por crear procesadores y añadir circuitos adicionales para completar toda la funcionalidad del dispositivo. Intel, por su parte, prefiere añadir toda la funcionalidad extra en el núcleo del procesador. Ambas aproximaciones han de ser respetuosas con el consumo. Por su parte, ARM es capaz de desactivar aquellos circuitos que no están en uso para, consecuentemente, controlar el consumo de energía. Intel ha hecho que su vástago, Intel Atom (aparecido este verano), sea compatible con la tecnología SpeedStep (capaz de regular el consumo del procesador atendiendo a las necesidades de la aplicación); este control de consumo en Intel se materializa con el clock-gating o la capacidad de activar el reloj sólo en aquellos bloques lógicos dentro del núcleo del procesador que estén en uso en cada momento.
El segmento de los dispositivos móviles ha estado copado tradicionalmente por los smartphones, viéndose ampliado por los UMPC (Ultra Mobile Personal Computer) y desde principios de este año por los MID (Mobile Internet Devices, similares a los UMPC pero de tamaño inferior).
Desde la perspectiva del consumo un UMPC – MID ronda los 200 mW de consumo medio a pleno rendimiento frente a los 35W de un Intel Core 2 Duo. Es notable que ni los repertorios de instrucciones –de los PC- ni la potencia de los mismos se puede transportar a los dispositivos móviles y tampoco, por tanto, las técnicas de desarrollo de software a las que hemos estado acostumbrados.
Desarrollar software para estos dispositivos es relativamente sencillo, pues se puede trabajar en un PC convencional y luego trasladar el desarrollo al procesador móvil (siempre con los chequeos de portabilidad necesarios). Pero hay varios aspectos a tener en cuenta para que los programas usados en los procesadores móviles no se vean perjudicados por la ejecución de un software irresponsable desde la perspectiva del consumo:
1. Desarrollar con técnicas específicas para la arquitectura móvil: tamaño de las pantallas, consumo en los cambios de estado del procesador, evitar sondeos innecesarios del software, etc.
2. Delegar todo en un marco de desarrollo portable, que permita desarrollar cómodamente en un PC pero que al compilar aplique las restricciones necesarias (Microsoft Visual Studio: Compact Framework, Sun Microsystems: Kawa o JME.
Optemos por la opción que creamos más oportuna (ARM / Intel), los desarrollos han de respetar las normas para los procesadores móviles. La siguiente figura muestra cómo los UMPC y MID se están convirtiendo en un punto de convergencia entre lo que hasta ahora se ha considerado un smartphone y las plataformas de PC tradicionales. Las dos perspectivas son atractivas pero muy diferentes, los detalles más específicos de nuestros desarrollos dependerán de qué lado de la figura partamos. Si se desea desarrollar para dispositivos ARM, puede ser interesante tener conocimientos sobre el sistema operativo Symbian para limar los desarrollos en C / C++ antes de portarlos a la plataforma móvil. Si se desarrolla para dispositivos Intel Atom la cuestión de desarrollo es más directa pues además de ser compatibles, las técnicas de desarrollo son bastante más transparentes que en el caso del ARM. Por ejemplo, se puede desarrollar software en Visual Studio 2008 para un Atom usando el Framework.Net delegando así todos los detalles al proceso de compilación y al propio entorno.
En cualquier caso la tendencia apunta a un emerger exponencial del mercado de dispositivos móviles, por ejemplo, en el caso de Nokia, los procesadores que superen los 3W [1] de consumo son descartados, entre otras razones por la imposibilidad de disipación el calor y no ser molestos para el usuario.

Características principales de los procesadores móviles
Los dispositivos móviles, que suponen ya un 40 por ciento del mercado mundial, presentan un reto para los desarrolladores de aplicaciones. Las características principales de estos dispositivos móviles y las que se deben tener en cuenta a la hora de crear software para los citados dispositivos son la administración de energía (a mi juicio el factor más importante), el reconocimiento de la red y el acceso sin conexión a datos importantes. También se deben tener en cuenta aspectos como los paneles (grab-and-go) y la capacidad de lectura. Estos dos factores son mucho más difíciles de emular en PC convencionales aunque Windows Vista provee soluciones para salvar este escollo como veremos más adelante.
1. Administración de energía: Explotar la duración de la batería y exigir tiempos de inicio/finalización de sesiones cortos, lo que supone usar la batería para mantener el dispositivo en estado latente implica hacer un uso responsable de la misma. Es responsabilidad del hardware, sistema operativo y software de usuario aportar su granito de arena para proteger el consumo desmedido de la batería, y realizar cómodas y fiables transiciones de estado (tanto de ciclos de procesador para ahorrar consumo como de estado de la sesión). Windows Vista proporciona como parte de su kernel un utilísimo sistema de eventos que ayuda a controlar las exigencias de las aplicaciones, si la batería es la encargada de alimentar al sistema.
2. Reconocimiento de la red: Asumir que la red no siempre está presente es una de las características más útiles que se le debe suponer al software. En el caso de un usuario de un dispositivo móvil es preciso aceptar el hecho de que tanto recursos de red como discos duros puedan desaparecer del alcance del sistema sin previo aviso. Incluso sabiendo que el protocolo de transporte de red, TCP, posee complejos mecanismos que garantizan la entrega, los tiempos de espera prudentes en plataformas de escritorio o portátiles convencionales no pueden aplicarse al entorno de un usuario móvil. Un ejemplo de la adaptación del Sistema Operativo a esta característica es la NLA2 (Network Location API 2) de Windows Vista. Esta API construye una capa de abstracción capaz de aislar a la aplicación de los detalles subyacentes de la red (parámetros). La aplicación acude a esta API para consultar el acceso a la red. Existen librerías útiles para implementar en las aplicacione

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información