b'\n_START_ARTICLE_\nArquitectura ARM\n_START_PARAGRAPH_\nARM es una arquitectura RISC (Reduced Instruction Set Computer=Ordenador con Conjunto Reducido de Instrucciones) de 32 bits y, con la llegada de su versi\xc3\xb3n V8-A, tambi\xc3\xa9n de 64 Bits, desarrollada por ARM Holdings. Se llam\xc3\xb3 Advanced RISC Machine,  y anteriormente Acorn RISC Machine. La arquitectura ARM es el conjunto de instrucciones de 32 y 64 bits m\xc3\xa1s ampliamente utilizado en unidades producidas.\xe2\x80\x8b\xe2\x80\x8b Concebida originalmente por Acorn Computers para su uso en ordenadores personales, los primeros productos basados en ARM eran los Acorn Archimedes, lanzados en 1987._NEWLINE_Un enfoque de dise\xc3\xb1o basado en RISC permite que los procesadores ARM requieran una cantidad menor de transistores que los procesadores x86 CISC, t\xc3\xadpicos en la mayor\xc3\xada de ordenadores personales. Este enfoque de dise\xc3\xb1o nos lleva, por tanto, a una reducci\xc3\xb3n de los costes, calor y energ\xc3\xada. Estas caracter\xc3\xadsticas son deseables para dispositivos que funcionan con bater\xc3\xadas, como los tel\xc3\xa9fonos m\xc3\xb3viles, tabletas, etc._NEWLINE_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\xc3\xb3nica m\xc3\xb3vil e integrada, encarnados en microprocesadores y microcontroladores peque\xc3\xb1os, de bajo consumo y relativamente bajo costo. En 2005, alrededor del 98% de los m\xc3\xa1s de mil millones de tel\xc3\xa9fonos m\xc3\xb3viles vendidos utilizaban al menos un procesador ARM.\xe2\x80\x8b Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits integrados. Cabe hacer menci\xc3\xb3n que no existe una tabla de equivalencias de rendimiento entre las distintas tecnolog\xc3\xadas de procesadores\xe2\x80\x8b que se utilizan generalmente en la electr\xc3\xb3nica de consumo, incluyendo PDA, tabletas, tel\xc3\xa9fonos m\xc3\xb3viles, tel\xc3\xa9fonos inteligentes, relojes inteligentes, videoconsolas port\xc3\xa1tiles, calculadoras, reproductores digitales multimedia (fotos, v\xc3\xaddeos, etc.) y perif\xc3\xa9ricos de ordenador como discos duros y enrutadores._NEWLINE_La arquitectura ARM es licenciable. Esto significa que el negocio principal de ARM Holdings es la venta de n\xc3\xbacleos IP (propiedad intelectual), estas licencias se utilizan para crear microcontroladores y CPUs basados en este n\xc3\xbacleo. Las empresas que son titulares de licencias ARM actuales o anteriores incluyen a Alcatel-Lucent, Apple Inc., AppliedMicro, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Ember, Energy Micro, Freescale, Intel (a trav\xc3\xa9s de DEC), LG, Marvell Technology Group, Microsemi, Microsoft, NEC, Nintendo, Nokia, Nuvoton, Nvidia, Sony, MediaTek, NXP (antes Philips Semiconductors), Oki, ON Semiconductor, Psion, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha, y ZiiLABS._NEWLINE_Los procesadores ARM son desarrollados por ARM y los titulares de las licencias de ARM. Prominentes familias de procesadores ARM desarrollados por ARM Holdings incluyen el ARM7,V8-A ARM9, ARM11 y Cortex. Entre los procesadores ARM desarrollados por firmas licenciatarias se incluyen Applied Micro Circuits Corporation X-Gene, DEC StrongARM, Freescale i.MX, Marvell Technology Group XScale, NVIDIA Tegra, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Exynos, Apple Ax, ST-Ericsson NovaThor, Huawei K3V2 e Intel Medfield.\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nEl dise\xc3\xb1o de la arquitectura ARM comenz\xc3\xb3 en 1983 como un proyecto de desarrollo por la empresa Acorn Computers. Sophie Wilson y Steve Furber lideraban el equipo, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del MOS 6502. La raz\xc3\xb3n era que Acorn ten\xc3\xada una larga l\xc3\xadnea de ordenadores personales basados en dicho microprocesador, por lo que ten\xc3\xada sentido desarrollar uno con el que los desarrolladores se sintieran c\xc3\xb3modos._NEWLINE_El equipo termin\xc3\xb3 el dise\xc3\xb1o preliminar y los primeros prototipos del procesador en el a\xc3\xb1o 1985, al que llamaron ARM1. La primera versi\xc3\xb3n utilizada comercialmente se bautiz\xc3\xb3 como ARM2 y se lanz\xc3\xb3 en el a\xc3\xb1o 1986._NEWLINE_La arquitectura del ARM2 posee un bus de datos de 32 bits 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\xc3\xa1ndose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador._NEWLINE_El ARM2 es probablemente el procesador de 32 bits \xc3\xbatil m\xc3\xa1s simple del mundo, ya que posee s\xc3\xb3lo 30.000 transistores. Su simplicidad se debe a que no est\xc3\xa1 basado en microc\xc3\xb3digo (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\xc3\xban en aquella \xc3\xa9poca, no incluye cach\xc3\xa9. Gracias a esto, su consumo en energ\xc3\xada es bastante bajo, a la vez que ofrece un mejor rendimiento que un 286. Su sucesor, el ARM3, incluye una peque\xc3\xb1a memoria cach\xc3\xa9 de 4 KB, lo que mejora los accesos a memoria repetitivos._NEWLINE_A finales de los a\xc3\xb1os 1980, Apple Computer comenz\xc3\xb3 a trabajar con Acorn en nuevas versiones del n\xc3\xbacleo ARM. En Acorn se dieron cuenta de que el hecho de que el fabricante de un procesador fuese tambi\xc3\xa9n un fabricante de ordenadores podr\xc3\xada echar para atr\xc3\xa1s a los clientes, por lo que se decidi\xc3\xb3 crear una nueva compa\xc3\xb1\xc3\xada llamada Advanced RISC Machines, que ser\xc3\xada la encargada del dise\xc3\xb1o y gesti\xc3\xb3n de las nuevas generaciones de procesadores ARM. Ocurr\xc3\xada esto en el a\xc3\xb1o 1990._NEWLINE_Este trabajo deriv\xc3\xb3 en el ARM6, presentado en 1991. Apple utiliz\xc3\xb3 el ARM 610 (basado en el ARM6), como procesador b\xc3\xa1sico para su innovador PDA, el Apple Newton. Por su parte, Acorn lo utiliz\xc3\xb3 en 1994 como procesador principal en su RiscPC._NEWLINE_El n\xc3\xbacleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30.000 transistores, mientras que el ARM6 s\xc3\xb3lo cuenta con 35.000. La idea era que el usuario final combinara el n\xc3\xbacleo del ARM con un n\xc3\xbamero opcional de perif\xc3\xa9ricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades._NEWLINE_La mayor utilizaci\xc3\xb3n de la tecnolog\xc3\xada ARM se alcanz\xc3\xb3 con el procesador ARM7TDMI, con millones de unidades en tel\xc3\xa9fonos m\xc3\xb3viles y sistemas de videojuegos port\xc3\xa1tiles._NEWLINE_DEC licenci\xc3\xb3 el dise\xc3\xb1o, lo cual gener\xc3\xb3 algo de confusi\xc3\xb3n debido a que ya produc\xc3\xada el DEC Alpha, y cre\xc3\xb3 el StrongARM. Con una velocidad de reloj de 233 MHz, este procesador consum\xc3\xada solo 1 W de potencia (este consumo de energ\xc3\xada se ha reducido en versiones m\xc3\xa1s recientes). Esta tecnolog\xc3\xada pas\xc3\xb3 posteriormente a manos de Intel, como fruto de un acuerdo jur\xc3\xaddico, que la integr\xc3\xb3 en su l\xc3\xadnea de procesadores Intel i960 e hizo m\xc3\xa1s ardua la competencia._NEWLINE_Freescale (una empresa que deriv\xc3\xb3 de Motorola en el a\xc3\xb1o 2004), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips, VLSI, Atmel, Sharp, Samsung y STMicroelectronics tambi\xc3\xa9n licenciaron el dise\xc3\xb1o b\xc3\xa1sico del ARM._NEWLINE_El dise\xc3\xb1o del ARM se ha convertido en uno de los m\xc3\xa1s usados del mundo, desde discos duros hasta juguetes. Hoy en d\xc3\xada, cerca del 75% de los procesadores de 32 bits poseen este chip en su n\xc3\xbacleo.\n_START_SECTION_\nDise\xc3\xb1o\n_START_PARAGRAPH_\nEl juego de instrucciones del ARM es similar al del MOS 6502, pero incluye caracter\xc3\xadsticas adicionales que le permiten conseguir un mejor rendimiento en su ejecuci\xc3\xb3n. Para mantener el concepto tradicional de RISC, se estableci\xc3\xb3 la ejecuci\xc3\xb3n de una orden en un tiempo, por lo general, de un ciclo. La caracter\xc3\xadstica m\xc3\xa1s interesante es el uso de los 4 bits superiores como c\xc3\xb3digo de condici\xc3\xb3n, haciendo que cualquier instrucci\xc3\xb3n 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\xc3\xb1os trozos de c\xc3\xb3digo con ejecuci\xc3\xb3n condicional. El ejemplo t\xc3\xadpico es el M\xc3\xa1ximo com\xc3\xban divisor, seg\xc3\xban el algoritmo de Euclides._NEWLINE_Ejemplo en C:_NEWLINE_    while (i != j)  // Ingresa en el ciclo cuando i<j o i>j, no cuando i==j_NEWLINE_    {_NEWLINE_       if (i > j)   // Cuando i>j realiza lo siguiente_NEWLINE_           i -= j;_NEWLINE_       else         // en otro cso, realiza lo siguiente_NEWLINE_           j -= i;_NEWLINE_    }_NEWLINE_En cambio con c\xc3\xb3digo ensamblador ARM, el ciclo puede hacerse m\xc3\xa1s eficiente haciendo:_NEWLINE_loop:_NEWLINE_    // Compara i y j_NEWLINE_    GT = i > j;_NEWLINE_    LT = i < j;_NEWLINE_    NE = i != j;_NEWLINE__NEWLINE_    // Operaciones mejoradas usando resultados de flags_NEWLINE_    if(GT) i -= j;    // Sustrae *solo* si es mayor_NEWLINE_    if(LT) j -= i;    // Sustrae *solo* si es menor_NEWLINE_    if(NE) goto loop; // Ciclo *solo* si los valores comparados no son iguales_NEWLINE_y esto se codifica como:_NEWLINE_loop:   CMP    Ri, Rj       ; establece la condicion "NE" if (i != j),_NEWLINE_                            ;               "GT" si (i > j),_NEWLINE_                            ;            o  "LT" si (i < j)_NEWLINE_        SUBGT  Ri, Ri, Rj   ; si "GT" (Mayor que), i = i-j;_NEWLINE_        SUBLT  Rj, Rj, Ri   ; si "LT" (Menor que), j = j-i;_NEWLINE_        BNE  loop           ; si "NE" (No igual), entonces realiza el ciclo_NEWLINE__NEWLINE_Otra caracter\xc3\xadstica \xc3\xbanica del juego de instrucciones es la posibilidad de a\xc3\xb1adir shifts y rotar en el procesamiento de datos (aritm\xc3\xa9tico, l\xc3\xb3gico y movimiento de registros), por ejemplo, la instrucci\xc3\xb3n en C "a += (j << 2);" puede ser mejorada como una \xc3\xbanica instrucci\xc3\xb3n en el ARM, permitiendo la reubicaci\xc3\xb3n del registro._NEWLINE_Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento._NEWLINE_El procesador ARM tambi\xc3\xa9n tiene algunas caracter\xc3\xadsticas que son raras en otras arquitecturas tambi\xc3\xa9n consideradas RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento._NEWLINE_Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, m\xc3\xa1s r\xc3\xa1pidas y potentes (hay instrucciones que s\xc3\xb3lo est\xc3\xa1n en este modo) pero con mayor consumo de memoria y de electricidad. Y el modo THUMB, m\xc3\xa1s limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente.\n_START_SECTION_\nThumb\n_START_PARAGRAPH_\nLos procesadores m\xc3\xa1s recientes traen un conjunto de instrucciones adicional llamado Thumb, de 16 bits (2 bytes) de longitud por instrucci\xc3\xb3n, en lugar de 32 bits (4 bytes) como el juego est\xc3\xa1ndar de ARM. Thumb es un subconjunto formado por las instrucciones que se usan con m\xc3\xa1s frecuencia. Al tener la mitad de longitud, se consigue disminuir la cantidad de c\xc3\xb3digo y mejorar su densidad. El rendimiento puede ser superior a un c\xc3\xb3digo 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\xc3\xb1o rango de direcciones de memoria con un datapath de 32 bits (por ejemplo: Game Boy Advance), y el resto son 16 bits en modo wide o narrower._NEWLINE_El primer procesador con la tecnolog\xc3\xada Thumb fue el ARM7TDMI. Toda la familia posterior al ARM9, incluyendo el procesador Intel XScale, tienen incorporada la tecnolog\xc3\xada en su n\xc3\xbacleo.\n_START_SECTION_\nJazelle\n_START_PARAGRAPH_\nARM tiene implementada una tecnolog\xc3\xada que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en el hardware. El primer procesador en usar Jazelle fue el ARM926EJ-S, siendo denominados con una J a todos los procesadores que soportaran esta tecnolog\xc3\xada.\n_START_SECTION_\nAcorn systems\n_START_PARAGRAPH_\nEl primer ordenador personal basado en ARM es el Acorn Archimedes que ejecutaba un sistema operativo provisional llamado Arthur, que se convirti\xc3\xb3 en RISC OS, utilizado en posteriores modelos de Acorn y otros vendedores.\n_START_SECTION_\nSistemas operativos integrados\n_START_PARAGRAPH_\nLa arquitectura ARM est\xc3\xa1 soportada por un gran n\xc3\xbamero de sistemas operativos integrados y de tiempo real,  incluyendo Windows CE, Windows 8 RT, .NET Micro Framework, Symbian, ChibiOS/RT, FreeRTOS, eCos, Integrity, Nucleus PLUS, MicroC/OS-II, QNX, RTEMS, BRTOS, RTXC Quadros, ThreadX, Unison Operating System, uTasker, VxWorks, MQX y OSE.\xe2\x80\x8b\n_START_SECTION_\nWindows\n_START_PARAGRAPH_\nMicrosoft anunci\xc3\xb3 el 5 de enero de 2011 que la pr\xc3\xb3xima gran versi\xc3\xb3n de la familia Windows NT (hoy Windows 8)\xe2\x80\x8b incluye soporte para procesadores ARM. Microsoft mostr\xc3\xb3 una versi\xc3\xb3n preliminar de Windows (versi\xc3\xb3n 6.2.7867) que se ejecuta en un equipo basado en ARM en el Consumer Electronics Show 2011.\xe2\x80\x8b La arquitectura ARM tambi\xc3\xa9n es soportada por los sistemas operativos m\xc3\xb3viles de Microsoft, Windows Phone y Windows Mobile._NEWLINE_ARM tambi\xc3\xa9n es compatible con Windows Embedded CE que ahora se llama Windows Embedded Compact. Esta \xc3\xbaltima versi\xc3\xb3n 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\xc3\xb1o Microsoft OS.NET Microframework utiliza exclusivamente ARM._NEWLINE_El 29 de octubre de 2012 sali\xc3\xb3 a la venta la tableta Surface de Microsoft la cual tiene un procesador ARM y utiliza como sistema operativo Windows 8 RT, versi\xc3\xb3n que no se puede descargar ni comprar ya que viene instalada en tabletas con arquitectura ARM. Hay otra versi\xc3\xb3n de Windows 8 distinta a esta que es el Windows 8 PRO para computadoras x86._NEWLINE_Recientemente se ha estado trabajando en un emulador de Windows 10 de arquitectura de x86 para procesadores ARM en una marca de procesadores en espec\xc3\xadfico.'