Está en la página 1de 6

Introduccin ndice ARM ARM es un juego de instrucciones y una microarquitectura RISC desarrollados en un principio por Acorn Ltd, y actualmente

por ARM hodings. La empresa da licencias de uso y modificacin de este juego de instrucciones a quien las compre, y son estas empresas las que producen los procesadores finales, basados en la licencia original y optimizados para la aplicacin que requiera el productor. Este es el principal problema a la hora de medir la productividad y el rendimiento de los procesadores ARM, ya que varia entre muchsimos procesadores distintos. An as, la propia pgina de ARM proporciona datos usando las arquitecturas sin modificar y benchmarks estandar, que son los que usaremos en la presentacin. Los ARM se basan en utilizar la mnima cantidad de recursos posible: en 1987, el ARM2, el primero comercial, tenia solo 30.000 transistores, la mitad que los dems procesadores comerciales e la poca. Esta metodologa de diseo es la principal razn de que los ARM sean muy aptos para uso con bajo consumo de potencia. Actualmente las arquitecturas ARM han avanzado hasta contar con multicores, sistem-on-chip, frecuencias comparables a las de procesadores de alto rendimiento, cauces superescalares, y otras caractersticas ms propias hasta ahora del alto rendimiento que del bajo consumo. Bajo consumo en el ARM La principal razn del bajo consumo de os ARM es su diseo buscando la mayor sencillez posible a costa de hardware de altas prestaciones. Por ejemplo, las instrucciones se compilan con cdigos de condicin para evitar usar un predictor de salto, la ALU puede desplazar lgica o aritmticamente sin coste de tiempo alguno, el cauce de ejecuciones es constante para todas las instrucciones, no usa microcdigo, y otras caractersticas. Las arquitecturas ms actuales por otra parte, implementan muchas funciones de altas prestaciones, pero como la base del diseo se mantiene en su sencillez, los procesadores siguen sin consumir grandes cantidades de potencia. Otra gran razn de su bajo consumo es el rango de frecuencias en las que trabajan. Tpicamente un core de la arquitectura v4 (ARM7TDMI) trabaja solo a 60-150 MHz, por lo que el consumo de potencia (proporcional a la frecuencia al cuadrado) es muchsimo menor que en un procesador a varios GHz. Las arquitecturas ms modernas admiten hasta 2 GHz de frecuencia, con lo que su consumo es ms elevado, pero an menor que los procesadores de alta gama. Microarquitecturas de ARM Existen numerosas arquitecturas ARM distintas, segn los usos para las que han sido pensadas, las caractersticas extra, y su antigedad. En esta seccin tratamos de resumirlas para comprobar que es un juego reducido y eficiente. Las arquitecturas v1 a v4, con numerosas variaciones cada una, son las bases de todos los procesadores desde el ARM2, el ARM4, el ARM5, ARM6 y ARM7, tambin con todas sus variaciones. Esta arquitectura tiene tres etapas de pipeline, como se ve en la figura relacionada. Es constante para todas las instrucciones excepto para los loads mltiples usados para salvar el estado de la mquina. Ademas el desplazador esta en serie con el resto e la ALU, y se ha implementado de forma que no aumenta el tiempo de ejecucin, por lo que se reduce el nmero de instrucciones para hacer una operacin. Esto implica un cdigo denso y menos accesos a memoria. Tambin ayuda a que el nmero de accesos baje el que todas las instrucciones sean de longitud constante, lo que simplifica

la lgica del contador de programa. Los accesos a memoria se reducen an ms al implementarlos relativos al contador de programa o a otro registro, lo que permite una indexacin precisa y un amplio rango de memoria accesible sin redirecciones. Por ltimo, el principal rango de esta arquitectura es su ejecucin condicional integrada en la decodificacin. Las instrucciones se compilan con cdigos de condicin referentes al registro de estado, que se comprueban para saber si la instruccin debe ejecutarse. Los cdigos son complejos como para tener en cuenta todas las condiciones lgicas posibles de ejecucin condicional. Un ejemplo de instruccin condicional se puede ver en el siguiente extracto de cdigo, puesto como ejemplo en la wikipedia:
loop CMP (i != j), Ri, Rj ; set condition "NE" if

; "GT" if (i > j), ; or "LT" if (i < j) SUBGT Ri, Ri, Rj ; if "GT" (greater than), i = i-j; SUBLT Rj, Rj, ir ; if "LT" (less than), j = j-i; BNE loop ; if "NE" (not equal), then loop

A partir de la arquitectura v4 los ARM admiten un modo de instrucciones reducido llamado Thumb. En este modo las instrucciones son de 16 bits en lugar de 32, luego es una segunda arquitectura unida a la del modo full. La ventaja de esta segunda arquitectura es que produce un cdigo mucho ms denso que el modo normal al compilar, algo muy til cuando el procesador est destinado a ser un microcontrolador con poca memoria y una batera de poca potencia. Como a lo largo de los aos la arquitectura ha aumentado hasta ser demasiado grande para un procesador tan simple como se pretende, la arquitectura v7 se divide en varios perfiles (aplicacin, tiempo real, y microcontrolador) que implican que solo implementan determinado subset del juego de instrucciones. Con esto se sigue manteniendo un tamao reducido y una alta simplicidad en el diseo, lo que permite consumir menos potencia. Esta arquitectura tambin admite el modo Thumb, pero evolucionado a la versin 2, en la que algunas instrucciones son de 32 bits para intentar alcanzar un rendimiento y una productividad parecida a la obtenida con el modo full, pero con un tamao de cdigo cercano al del modo Thumb. Atom Atom es el nombre de la nueva lnea de microprocesadores de baja potencia de Intel, y lleva en diseo desde 2006 y en produccin desde 2008. Hasta la fecha la lnea engloba 2 arquitecturas distintas: la Silverthorne, con grandes ahorros de potencia y pequeo tamao adecuado para dispositivos mviles y de mano, y la Diamondville, algo ms grande y con mayor consumo, adecuada para pequeos portatiles. Bajo consumo en Intel Atom Aunque Intel asegure que la linea Atom est desarrollada desde cero, es lgico pensar que se basan en su conocimiento previo de otras lneas de procesadores para disear los Atom. Si tenemos en cuenta que el tamao y nmero de transistores de los Atom es del triple como poco del de los ARM, queda claro que el diseo es ms una simplificacin de los Intel de altas prestaciones que un diseo desde cero. La principal herramienta de disminucin de consumo en los Atom es una lgica de control de

potencia ya comn en otros procesadores Intel destinados a dispositivos porttiles como los centrino, que trabaja como una mquina de estados finitos en la que cada estado implica unas restricciones de uso y por tanto un cierto ahorro de potencia. La mquina de estados de la arquitectura Silverthorne se muestra a continuacin. Los estados vienen definidos en los datasheets de los procesadores con las siguientes descripciones, simplificadas para eliminar las seales o instrucciones que los activan o desactivan: C0: Estado normal de funcionamiento, aprovechando todas las caractersticas del procesador. C1: Estados normales previos al Stop Grant, producidos por instrucciones o interrupciones. Stop Grant State: Estado de no ejecucin sin disminucin de las caractersticas el procesador, usado cuando todos los hilos que se procesan esperan interrupciones en poco tiempo (por ejemplo en procesos multimedia), o cuando se debe llevar a cabo una actualizacin de la cache desde el disco duro. C2: Estado de bajo consumo en el que aunque se mantiene todo el contexto de la mquina, no se ejecutan instrucciones. En este estado se responde ante cambios en el bus de datos o el de interrupciones, por lo que es un estado activo. C4: Sustituye al C3, y es un estado compuesto por los estados Sleep y Deep Sleep, en los cuales se mantiene el contexto de la mquina pero se apagan los relojes y PLLs respectivamente, por lo que no se puede responder a cambios en los buses. Por tanto este es un estado pasivo de gran ahorro de energa. C6: aunque no sale en el diagrama, las arquitecturas ms modernas lo incorporan. En este estado, se guarda el contexto de la mquina en una pequea memoria con una alimentacin menor e independiente, lo que permite apagar totalmente el procesador, ahorrando muchsima energa. Arquitectura del Atom Los Intel Atom siguen la arquitectura comn de la marca: externamente aceptan el juego de instrucciones x86 de 32 bits, e incluso algunos el de 64. Internamente traducen estas instrucciones a un microcdigo RISC que es el que ejecutan. Para estos procesadores se intenta con especial ahnco que las instrucciones externas produzcan solo una instruccin interna, de manera que no disminuya la productividad del procesdor. Otras caractersticas de la arquitectura son su pipeline de 16 etapas, mostrada en la imagen de la derecha. Este pipeline no incluye la traduccin a microcdigo, pues la busqueda a la que se hace referencia en el se realiza en la cache de primer nivel, y el traductor est entre esta y la de segundo nivel. Por otra parte, el cauce de ejecucin es de 2 vias, por lo que permite un mximo de 2 instrucciones por ciclo, aunque esto solo se da en condiciones ideales. Para aprovechar esta caracterstica al mximo, los Atom implementan la tecnologa hiperThreading propia de Intel, lo que elimina las dependencias entre cauces. Por lo dems, solo permiten ejecucin en orden no especulativa, e implementan prediccin de salto Un diagrama de bloques de la arquitectura Solverthorne se puede ver en la imagen siguiente:

Comparativa La primera comparativa que realizaremos ser la de tamao, para hacernos una idea de la relacin entre ambas familias de procesadores. Para empezar, segn los datos de su pgina web, los Atom actuales se fabrican con tecnologas de 45 nm y obtienen unos tamaos de 25 mm2. Suponiendo razones de marketing al decidir las cifras que publican, supongo que este nmero es un mnimo de la familia. Por otra parte, para comparar los ARM se deben tener en cuenta modelos usuales tanto con especificaciones de bajo consumo como de altas prestaciones. Por tanto la comparacin la realizar con el ARM7TDMI, que actualmente se puede encontrar debajo de las piedras y tiene un consumo muy bajo, y con un moderno Cortex-8A, con muchas ms prestaciones pero tambin usado en los dispositivos de ms alta gama. En cuanto a los datos, el ARM7TDMI tiene un tamao de 0.18 mm2 cuando se fabrica con tecnologa de 90 nm, y el Cortex-8A consigue unos tamaos mnimos (tambin suponiendo que publican los datos que mejor quedan en la pgina) de hasta 6 mm2, fabricados con tecnologa de 45 nm. La imagen siguiente muestra una relacion de tamaos para los casos considerados:

ARM7TDMI

Cortex-8A

Intel Atom

La siguiente comparacin es de frecuencias, para terminar de comprender los distintos usos a que

estn destinados los procesadores que hemos elegido para comparar. En la siguiente tabla se especifican los rangos de frecuencias en los que funcionan cada uno de los procesadores de la comparacin: ARM7TDMI 115-233 MHz Cortex-A8 650-1100 MHz Intel Atom 1-1.8 GHz Como se puede deducir al ver las dos comparaciones realizadas hasta ahora, la serie Atom es de bajo consumo, pero no tiene nada que ver con procesadores diseados por una empresa ntegramente dedicada al bajo consumo. Por otra parte, en las siguientes comparaciones veremos su rendimiento y productividad para ponderar la mejora con respecto al consumo de los procesadores. La comparacion de potencia para los procesadores y rangos de frecuencias estudiados, siempre segn las pginas oficiales, se muestra en la tabla siguiente: ARM7TDMI 3.45 - 6.99 mW Cortex-A8 292.5 - 495 mW Intel Atom 1-13 W Por ltimo, nos dirigimos a las pginas de los benchmarks ms renombrados para obtener el rendimiento de los procesadores en estudio. En EEMBC encontramos los datos que necesitamos para los ARM, mirando en las entradas antiguas para el caso del ARM7TDMI. Los datos sobre el Atom hay que buscarlos en la serie de baja potencia de los spec, debido a que se consideran de uso general y no empotrados. Los datos obtenidos, redondeados entre las numerosas configuraciones probadas en los benchmarks, se muestran en la siguiente tabla: ARM7TDMI 103.5 - 209.7 DMIPS Cortex-A8 1300 - 2200 DMIPS Intel Atom 2000 - 3500 DMIPS Conclusin Con los datos que hemos recopilado llegamos a la conclusin de que no estamos ante el mismo tipo de procesadores, es decir, que aunque los dos se llamen de bajo consumo, los ARM son de bjo consumo real, utilizados para dispositivos empotrados, mviles y no muy punteros, mientras que los Atom son una gama apta para el ahorro de potencia de procesadores Intel de altas prestaciones. Una vez sabido esto, si los pusiramos en iguales condiciones (mismo dispositivo y mismo uso), con el ARM7TDMI tendramos problemas para ejecutar la mayora de instrucciones multimedia actuales (decodificacin de mp4, acceso a redes wifi, ), con el Cortex-8A, podramos ejecutar cualquier software actual, y obtendramos un consumo de potencia bajo, y por ltimo con un Atom, la mejora en el rendimiento que experimentaramos no es proporcional al consumo extra de potencia, por lo que el Cortex-8A es ms eficiente. Por otra parte, est claro que el Atom est pensado inicialmente para propsito general, mientras que el Cortex-8A es una optimizacin de una arquitectura embebida, por lo que puede haber mejoras en la compilacin y ejecucin en el Atom no contempladas que aumenten la mejora de rendimiento al cambiar del Cortex-8A al Atom. Bibliografa en.wikipedia.org/ www.arm.com/products/CPUs/ www.intel.com/technology/atom/ www.spec.org/

www.eembc.org/ Yeray Hernandez Suarez, Intel Atom (presentacin para la asignatura Microprocesadores para Comunicaciones), 2009

También podría gustarte