ARM, anteriormenteAdvanced RISC Machine, originalmenteAcorn RISC Machines, es unaarquitecturaRISC (Reduced Instruction Set Computer, «Ordenador con Conjunto Reducido de Instrucciones») de32 bits y, con la llegada de su versión V8-A, también de64 Bits, desarrollada porARM Holdings. La arquitectura ARM es elconjunto de instrucciones de 32 y 64 bits más ampliamente utilizado en unidades producidas.[1][2] Concebida originalmente porAcorn Computers para su uso enordenadores personales, los primeros productos basados en ARM eran losAcorn Archimedes, lanzados en 1987.
Un enfoque de diseño basado enRISC permite que los procesadores ARM requieran una cantidad menor de transistores que los procesadores x86 CISC, típicos en la mayoría de ordenadores personales. Este enfoque de diseño nos lleva, por tanto, a una reducción de los costes, calor y energía. Estas características son deseables para dispositivos que funcionan con baterías, como los teléfonos móviles, tabletas, etc.
La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia. Como resultado, se han convertido en los dominantes dentro del mercado de la electrónica móvil e integrada, encarnados enmicroprocesadores ymicrocontroladores pequeños, de bajo consumo y relativamente bajo costo. En 2005, alrededor del 98% de los más de mil millones deteléfonos móviles vendidos utilizaban al menos un procesador ARM.[3] Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits integrados. Cabe hacer mención que no existe una tabla de equivalencias de rendimiento entre las distintas tecnologías de procesadores[4] que se utilizan generalmente en la electrónica de consumo, incluyendoPDA,tabletas,teléfonos móviles,teléfonos inteligentes,relojes inteligentes,videoconsolas portátiles,calculadoras, reproductores digitales multimedia (fotos, vídeos, etc.) y periféricos de ordenador comodiscos duros yenrutadores.
El diseño de la arquitectura ARM comenzó en 1983 como un proyecto de desarrollo por la empresaAcorn Computers.Sophie Wilson ySteve Furber lideraban el equipo, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la delMOS 6502. La razón era que Acorn tenía una larga línea de ordenadores personales basados en dicho microprocesador, por lo que tenía sentido desarrollar uno con el que los desarrolladores se sintieran cómodos.
El equipo terminó el diseño preliminar y los primeros prototipos del procesador en el año 1985, al que llamaron ARM1. La primera versión utilizada comercialmente se bautizó como ARM2 y se lanzó en el año 1986.
La arquitectura del ARM2 posee unbus de datos de 32bits y ofrece un espacio de direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador.
El ARM2 es probablemente el procesador de 32 bits útil más simple del mundo, ya que posee solo 30 000transistores. Su simplicidad se debe a que no está basado enmicrocódigo (sistema que suele ocupar en torno a la cuarta parte de la cantidad total de transistores usados en un procesador) y a que, como era común en aquella época, no incluyecaché. Gracias a esto, su consumo en energía es bastante bajo, a la vez que ofrece un mejor rendimiento que un286. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4KB, lo que mejora los accesos a memoria repetitivos.
A finales de los años 1980,Apple Computer comenzó a trabajar con Acorn en nuevas versiones del núcleo ARM. En Acorn se dieron cuenta de que el hecho de que el fabricante de un procesador fuese también un fabricante de ordenadores podría echar para atrás a los clientes, por lo que en 1990 se decidió crear una nueva compañía llamadaAdvanced RISC Machines, que sería la encargada del diseño y gestión de las nuevas generaciones de procesadores ARM.
Este trabajo derivó en el ARM6, presentado en 1991. Apple utilizó el ARM 610 (basado en el ARM6), como procesador básico para su innovadorPDA, elApple Newton. Por su parte, Acorn lo utilizó en 1994 como procesador principal en suRiscPC.
El núcleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30 000 transistores, mientras que el ARM6 solo cuenta con 35 000. La idea era que el usuario final combinara el núcleo del ARM con un número opcional de periféricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades.
La mayor utilización de la tecnología ARM se alcanzó con el procesador ARM7TDMI, con millones de unidades en teléfonos móviles y sistemas devideojuegos portátiles.
DEC licenció el diseño, lo cual generó algo de confusión debido a que ya producía elDEC Alpha, y creó elStrongARM. Con una velocidad de reloj de 233MHz, este procesador consumía solo 1W de potencia (este consumo de energía se ha reducido en versiones más recientes). Esta tecnología pasó posteriormente a manos deIntel, como fruto de un acuerdo jurídico, que la integró en su línea de procesadoresIntel i960 e hizo más ardua la competencia.
El diseño del ARM se ha convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los procesadores de 32 bits poseen este chip en su núcleo.
El juego de instrucciones del ARM es similar al delMOS 6502, pero incluye características adicionales que le permiten conseguir un mejor rendimiento en su ejecución. Para mantener el concepto tradicional deRISC, se estableció la ejecución de una orden a la vez, por lo general, de un ciclo. La característica más interesante es el uso de los 4 bits superiores como código de condición, haciendo que cualquier instrucción pueda ser condicional. Este corte reduce el espacio para algunos desplazamientos en el acceso a la memoria, pero permite evitar perder ciclos de reloj en el pipeline al ejecutar pequeños trozos de código con ejecución condicional. El ejemplo típico es elMáximo común divisor, según elalgoritmo deEuclides.
while(i!=j)// Ingresa en el ciclo cuando i<j o i>j, no cuando i==j{if(i>j)// Cuando i>j realiza lo siguientei-=j;else// en otro caso, realiza lo siguientej-=i;}
En cambio con códigoensamblador ARM, el ciclo puede hacerse más eficiente haciendo:
loop:// Compara i y jGT=i>j;LT=i<j;NE=i!=j;// Operaciones mejoradas usando resultados de flagsif(GT)i-=j;// Sustrae *solo* si es mayorif(LT)j-=i;// Sustrae *solo* si es menorif(NE)gotoloop;// Ciclo *solo* si los valores comparados no son iguales
y esto se codifica como:
loop:CMPRi,Rj; establece la condicion "NE" if (i != j),; "GT" si (i > j),; o "LT" si (i < j)SUBGTRi,Ri,Rj; si "GT" (Mayor que), i = i-j;SUBLTRj,Rj,Ri; si "LT" (Menor que), j = j-i;BNEloop; si "NE" (No igual), entonces realiza el ciclo
Otra característica única del juego de instrucciones es la posibilidad de añadir shifts y rotar en el procesamiento de datos (aritmético, lógico y movimiento de registros), por ejemplo, la instrucción en C "a += (j << 2);" puede ser mejorada como una única instrucción en el ARM, permitiendo la reubicación del registro.
Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento.
El procesador ARM también tiene algunas características poco comunes en otras arquitecturas también consideradas RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento.
Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, más rápidas y potentes (hay instrucciones que sólo están en este modo) pero con mayor consumo de memoria y de electricidad. Y el modo THUMB, más limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente.
La familia ARM dispone de 16 registros (utilizables por el programador) de 32 bits, que se designan desde R0 a R15. En principio son todos idénticos y sólo 3 tienen funciones específicas que son el R15 (se emplea como contador de programa o PC), y el R14 (utilizado para almacenar la dirección de retorno cuando se llama a una subrutina o se genera una excepción) y el R13 (stack Pointer).
Amplio abanico de fabricantes: Como se ha comentado antes, ARM permite la compra a terceros de su licencia, dando lugar a un gran número de marcas productoras de esta arquitectura, cada cual, ofreciendo nuevas mejoras, avances, y, en general, un mayor abanico de opciones para el consumidor.
Simpleza de instrucciones: Nos encontramos con un set de instrucciones mucho más pequeño, pero mucho más atómico; esto quiere decir que las instrucciones se pueden cambiar prácticamente por instrucciones de tipo máquina, ahorrando tanto tiempo como energía en su traducción.
Bajo uso energético: Nos encontramos con RISC, y su "simpleza". Estos buscan la mayor eficiencia por ciclo; además, dan lugar a chips más pequeños y simples y, por tanto, a una mejora considerable en cuanto a eficiencia energética.
Rendimiento aceptable y en mejora: Como se ha dicho anteriormente, la compra de terceros ofrece nuevas mejoras y avances en el rendimiento.
Los procesadores más recientes traen un conjunto de instrucciones adicional llamadoThumb, de 16 bits (2 bytes) de longitud por instrucción, en lugar de 32 bits (4 bytes) como el juego estándar de ARM. Thumb es un subconjunto formado por las instrucciones que se usan con más frecuencia. Al tener la mitad de longitud, se consigue disminuir la cantidad de código y mejorar su densidad. El rendimiento puede ser superior a un código de 32 bits en donde el puerto de memoria o ancho del bus de comunicaciones son menores a 32 bits. Por lo general, en las aplicaciones se inserta un pequeño rango de direcciones de memoria con undatapath de 32 bits (por ejemplo:Game Boy Advance), y el resto son 16 bits en modowide onarrower.
El primer procesador con la tecnologíaThumb fue el ARM7TDMI. Toda la familia posterior al ARM9, incluyendo el procesadorIntel XScale, tienen incorporada la tecnología en su núcleo.
ARM tiene implementada unatecnología que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en elhardware. El primer procesador en usarJazelle fue elARM926EJ-S, siendo denominados con una J a todos los procesadores que soportaran esta tecnología.
El primerordenador personal basado en ARM es elAcorn Archimedes que ejecutaba un sistema operativo provisional llamadoArthur, que se convirtió enRISC OS, utilizado en posteriores modelos de Acorn y otros vendedores.
Microsoft anunció el 5 de enero de 2011 que la próxima gran versión de la familiaWindows NT (hoyWindows 8)[41] incluye soporte para procesadores ARM. Microsoft mostró una versión preliminar de Windows (versión 6.2.7867) que se ejecuta en un equipo basado en ARM en elConsumer Electronics Show 2011.[42] La arquitectura ARM también es soportada por los sistemas operativos móviles de Microsoft,Windows Phone yWindows Mobile.ARM también es compatible conWindows Embedded CE que ahora se llamaWindows Embedded Compact. Esta última versión soporta ARM 5,6 y 7. Windows CE 5 es el sistema operativo subyacente para Windows Mobile y Windows Embedded Compact 7 es el sistema operativo subyacente para Windows Phone 7. El pequeño Microsoft OS.NET Microframework utiliza exclusivamente ARM.
El 29 de octubre de 2012 salió a la venta la tabletaSurface de Microsoft la cual tiene un procesador ARM y utiliza como sistema operativo Windows 8 RT, versión que no se puede descargar ni comprar ya que viene instalada en tabletas con arquitectura ARM. Hay otra versión de Windows 8 distinta a esta que es el Windows 8 PRO para computadoras x86.
Las últimas versiones de Windows,10 y11, ya disponen de soporte para arquitectura ARM, pero no se dispone de ninguna herramienta para el uso de programasx86 en arquitectura ARM, por lo que el soporte de ARM no es completo.[43]
Desde el desarrollo deliPhone en 2007,Apple ha utilizado procesadores ARM para sus plataformas de telefonía móvil (iPhone), relojes inteligentes (Apple Watch), tabletas (iPad), reproductores en streaming(Apple Tv) y más recientemente en todos sus ordenadores(iMac,MacBook,Mac Mini yMac Pro). Apple optó por procesadores ARM para estas plataformas debido a la ventaja que ofrecen por su bajo consumo de energía y poca refrigeración necesaria.
También el ARM acabó con los famososHackintosh , ganando la batalla contra la piratería por el momento.
↑«Benchmarks – Albatross». Albatross-uav.org. 18 de junio de 2005. Archivado desdeel original el 2 de agosto de 2009. Consultado el 18 de abril de 2009.