b'\n_START_ARTICLE_\nAdvanced RISC Machines\n_START_SECTION_\nHist\xc3\xb2ria\n_START_PARAGRAPH_\nEl disseny de l\'ARM va comen\xc3\xa7ar el 1983 com un projecte de desenvolupament en l\'empresa Acorn Computers Ltd Roger Wilson i Steve Furber lideraven l\'equip, l\'objectiu era, originalment, el desenvolupament d\'un processador avan\xc3\xa7at, per\xc3\xb2 amb una arquitectura similar a la del MOS 6502. La ra\xc3\xb3 era que Acorn tenia una llarga l\xc3\xadnia d\'ordinadors personals basats en aquest micro, per la qual cosa tenia sentit desenvolupar-ne un amb el qual els desenvolupadors se sentissin c\xc3\xb2modes._NEWLINE_L\'equip va acabar el disseny preliminar i els primers prototips del processador l\'any 1985, al que van anomenar ARM1. La primera versi\xc3\xb3 utilitzada comercialment es va batejar com ARM2 i es va llan\xc3\xa7ar l\'any 1986._NEWLINE_L\'arquitectura del ARM2 t\xc3\xa9 un bus de dades de 32 bits si ofereix un espai d\'adreces de 26 bits, juntament amb 16 registres de 32 bits. Un d\'aquests registres s\'utilitza com a comptador de programa, aprofitant els seus 4 bits superiors i els 2 inferiors per contenir el flag d\'estat del processador._NEWLINE_El ARM2 \xc3\xa9s probablement el processador de 32 bits \xc3\xbatil m\xc3\xa9s simple del m\xc3\xb3n, ja que t\xc3\xa9 nom\xc3\xa9s 30.000 transistors. La seva simplicitat es deu al fet que no est\xc3\xa0 basat en microcodi (sistema que sol ocupar al voltant de la quarta part de la quantitat total de transistors utilitzats en un processador), ja que, com era com\xc3\xba en aquella \xc3\xa8poca, no inclou mem\xc3\xb2ria cau. Gr\xc3\xa0cies a aix\xc3\xb2, el seu consum en energia \xc3\xa9s bastant baix, alhora que ofereix un millor rendiment que un 286. El seu successor, el ARM3, inclou una petita mem\xc3\xb2ria cau de 4 KiB, el que millora els accessos a mem\xc3\xb2ria repetitius._NEWLINE_A finals dels anys 80, Apple Computer va comen\xc3\xa7ar a treballar amb Acorn en noves versions del nucli ARM. En Acorn es van adonar que el fet que el fabricant d\'un processador fos tamb\xc3\xa9 un fabricant d\'ordinadors podria fer enrere als clients, per la qual cosa es va decidir crear una nova companyia anomenada ARM Holdings, que seria l\'encarregada del disseny i gesti\xc3\xb3 de les noves generacions de processadors ARM. Passava aix\xc3\xb2 en l\'any 1990._NEWLINE_Aquest treball va derivar en l\'ARM6, presentat en 1991. Apple va utilitzar l\'ARM 610 (basat en el ARM6), com processador b\xc3\xa0sic pel seu innovador PDA, l\'Apple Newton. Per la seva banda, Acorn el va utilitzar a 1994 com a processador principal a la RiscPC._NEWLINE_El nucli va mantenir la seva simplicitat tot i els canvis: en efecte, el ARM2 t\xc3\xa9 30.000 transistors, mentre que el ARM6 nom\xc3\xa9s compta amb 35.000. La idea era que l\'usuari final combin\xc3\xa9s el nucli de l\'ARM amb un nombre opcional de perif\xc3\xa8rics integrats i altres elements, podent crear un processador complet a la mesura de les seves necessitats._NEWLINE_La major utilitzaci\xc3\xb3 de la tecnologia ARM es va assolir amb el processador ARM7TDMI, amb milions d\'unitats en tel\xc3\xa8fons m\xc3\xb2bils i sistemes de videojocs port\xc3\xa0tils._NEWLINE_DEC llicenciar el disseny, la qual cosa va generar una mica de confusi\xc3\xb3 perqu\xc3\xa8 ja produ\xc3\xafa el DEC Alpha, i va crear el StrongARM. Amb una velocitat de rellotge de 233 MHz, aquest processador consumia nom\xc3\xa9s 1 W de pot\xc3\xa8ncia (aquest consum d\'energia s\'ha redu\xc3\xaft en els models m\xc3\xa9s recents). Aquesta tecnologia va passar posteriorment a mans de Intel, com a fruit d\'un acord jur\xc3\xaddic, que la va integrar en la seva l\xc3\xadnia de processadors Intel i960 i va fer m\xc3\xa9s \xc3\xa0rdua la compet\xc3\xa8ncia._NEWLINE_Freescale (una empresa que va derivar de Motorola l\'any 2004), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips,fvh Atmel, Sharp, Samsung i STMicroelectronics tamb\xc3\xa9 llicenciar el disseny b\xc3\xa0sic de l\'ARM ._NEWLINE_El disseny de l\'ARM s\'ha convertit en un dels m\xc3\xa9s usats del m\xc3\xb3n, des de discs durs fins joguines. Avui en dia, prop del 75% dels processadors de 32 bits tenen aquest xip en el seu nucli.\n_START_SECTION_\nLlic\xc3\xa8ncia de nucli\n_START_PARAGRAPH_\nEl negoci principal d\'ARM Holdings \xc3\xa9s la venda de nuclis IP,  aquestes llic\xc3\xa8ncies s\'utilitzen per crear microcontroladors i CPUs basats en aquests nucles. El productor del disseny original combina el nucli ARM amb altres parts per produir una CPU completa, normalment s\'escull un nucli que pugui ser manipulat per f\xc3\xa0briques de semiconductors a un preu baix i que doni un rendiment substancial._NEWLINE_La implementaci\xc3\xb3 amb m\xc3\xa9s \xc3\xa8xit ha estat l\'ARM7TDMI amb centenars de milions de c\xc3\xb2pies venudes. Atmel ha estat precursor del centre de disseny en sistemes encastats basats en ARM7TDMI._NEWLINE_Les arquitectures ARM utilitzades a smartphones, PDAs i altres dispositius van des de l\'ARMv5, que s\'utilitza en dispositius de gamma baixa fins a l\'ARMv6 o l\'ARMv7 utilitzats en dispositius de gamma alta. L\'ARMv7 inclou una unitat de punt flotant amb una millora en la velocitat en comparaci\xc3\xb3 amb el software basat en punt flotant._NEWLINE_L\'any 2009 diversos productors de dispositius electr\xc3\xb2nics van introduir netbooks basats en les CPUs de l\'arquitectura ARM, com a competici\xc3\xb3 directa als netbooks basats en intel Atom.  _NEWLINE_ARM Holdings ofereix una varietat en termes de llic\xc3\xa8ncies, que varien en cost i prestacions.  ARM Holdings ofereix a tots els llicenciataris una descripci\xc3\xb3 de maquinari integrable del nucli ARM, aix\xc3\xad com el conjunt d\'eines de desenvolupament de programari (compilador, depurador, kit de desenvolupament de programari) i el dret de vendre el silici fabricat que cont\xc3\xa9  la CPU ARM._NEWLINE_Els paquets SoC que integren els dissenys dels nuclis ARM inclouen les tres primeres generacios de Nvidia Tegra, la fam\xc3\xadlia de CSR plc Quatro, ST-Ericsson Nova i  NovaThor, el MCU Precision32 dels laboratoris Silicon, els productes OMAP de Texas Instruments, els productes Hummingbird i Exynos de Samsung, Apple A4, A5 i A5X, i i.MX. De Freescale._NEWLINE_Els llicenciataris Fabless que desitgen integrar un nucli ARM en el seu propi disseny de xips, estan normalment interessats en l\'adquisici\xc3\xb3 d\'un  nucli IP llest per manufacturar. Per aquest clients, ARM Holdings ofereix una descripci\xc3\xb3 de portes netlist del nucli ARM triat, juntament amb una simulaci\xc3\xb3 abstracta del model i tests dels programes per donar una ajuda en la integraci\xc3\xb3 del disseny i verificaci\xc3\xb3._NEWLINE_Els clients m\xc3\xa9s ambiciosos inclosos els fabricants de dispositius integrats opten per adquirir el processador IP en forma RTL sintetitzables (Verilog). Amb els RTL sintetitzables, el client t\xc3\xa9 la capacitat de realitzar optimitzacions a nivell d\'arquitectura i extensions. Aix\xc3\xb2 permet al dissenyador aconseguir objectius de dissenys ex\xc3\xb2tics, impossibles d\'aconseguir si la netlist no fos modificable (alta velocitat de rellotge, baix consum d\'energia, set d\'instruccions d\'extensions, etc.)._NEWLINE_ARM Holdings no atorga al llincenciatari el dret a revendre la mateixa arquitectura ARM, per\xc3\xb2 aquests s\xc3\xad que poden vendre lliurement el producte manufacturat, com els dispositius de xips, plaques d\'avaluaci\xc3\xb3 i sistemes complets. _NEWLINE_Els preus d\'IP d\'ARM Holdings es basa en el seu valor percebut.  Els nuclis amb un baix rendiment solen tenir un preu menor que nuclis amb un alt rendiment. En termes d\'implementaci\xc3\xb3, un nucli sintetitzable costa m\xc3\xa9s que un nucli hard macro (caixa negra).\n_START_SECTION_\nLlic\xc3\xa8ncia de l\'arquitectura\n_START_PARAGRAPH_\nLes empreses tamb\xc3\xa9 poden obtenir una llic\xc3\xa8ncia d\'arquitectura ARM per al disseny dels seus propis nuclis de CPU utilitzant els conjunts d\'instruccions ARM. Aquests nuclis han de complir plenament amb l\'arquitectura ARM.\n_START_SECTION_\nFam\xc3\xadlies d\'ARMs\n_START_PARAGRAPH_\nActualment hi ha diferents tipus de processadors ARM creats per ARM Holdings que estan dividits en diferents fam\xc3\xadlies segons els dispositius a qu\xc3\xa8 van dirigits. Tot i que els m\xc3\xa9s coneguts s\xc3\xb3n els de la s\xc3\xa8rie A perqu\xc3\xa8 s\xc3\xb3n els que s\'utilitzen en tel\xc3\xa8fons intel\xc2\xb7ligents o tauletes t\xc3\xa0ctils per diverses empreses, \xc3\xa9s bo saber que existeix diversitat de processadors amb arquitectura ARM. S\xc3\xb3n aquests:_NEWLINE_S\xc3\xa8rie A:_NEWLINE__NEWLINE_\xc3\x89s la s\xc3\xa8rie m\xc3\xa9s coneguda dels processadors ARM, est\xc3\xa0 dedicada als dispositius que tenen un sistema operatiu que gestiona la interacci\xc3\xb3 entre el hardware i software. Aquests processadors s\xc3\xb3n els m\xc3\xa9s utilitzats en tel\xc3\xa8fons intel\xc2\xb7ligents i tauletes independentment de si funcionen sota Android, IOs o Windows. Tamb\xc3\xa9 s\xe2\x80\x99empren en televisions i en dispositius com GPS._NEWLINE_S\xc3\xa8rie R:_NEWLINE__NEWLINE_Aquesta s\xc3\xa8rie \xc3\xa9s la que est\xc3\xa0 encarada cap a dispositius que treballen a temps real.  Normalment aquests dispositius treballen amb sistemes operatius a temps real. Se solen instal\xc2\xb7lar en sistemes de control dels autom\xc3\xb2bils, infraestructures sense fils, impressores, dispositius de xarxa,... dispositius que en definitiva necessiten rapidesa entre l\'entrada i sortida d\'un sistema._NEWLINE_S\xc3\xa8rie M:_NEWLINE__NEWLINE_Aquesta s\xc3\xa8rie va dirigida a sistemes encastats (embedded Systems). Els sistemes encastats normalment sempre desenvolupen la mateixa tasca i necessiten fer-la a molt baix consum. Alguns exemples on s\xe2\x80\x99instal\xc2\xb7len aquests dispositius s\xc3\xb3n: sistemes de control de motors, electrodom\xc3\xa8stics, sensors,..._NEWLINE_S\xc3\xa8rie  securecore:_NEWLINE__NEWLINE_Aquests xips van adre\xc3\xa7ats a instal\xc2\xb7lar-se en dispositius d\xe2\x80\x99\xc3\xbas quotidi\xc3\xa0 en qu\xc3\xa8 es necessita una certa robustesa. De fet s\xe2\x80\x99instal\xc2\xb7len en les SIM\xe2\x80\x99s dels tel\xc3\xa8fons m\xc3\xb2bils, targetes de cr\xc3\xa8dit, al DNI espanyol, sistemes avan\xc3\xa7ats de pagament,...\n_START_SECTION_\nNuclis Cortex-M\n_START_PARAGRAPH_\nEls nuclis ARM Cortex-M s\xc3\xb3n un grup de nuclis per a processadors RISC de 32-bits basats en l\'arquitectura ARM. Aquests nuclis estan dissenyats per a ser utilitzats en microcontroladors, dit grup consisteix en el nuclis M0, M0+, M1, M3, M4 i M7.\n_START_SECTION_\nCortex-M0\n_START_PARAGRAPH_\nEl processador Cortex-M0 \xc3\xa9s un processador amb un nombre petit de portes per\xc3\xb2 presenta una alta efici\xc3\xa8ncia energ\xc3\xa8tica. Aquest processador est\xc3\xa0 destinat a microprocessadors i aplicacions altament encastades que requereixen un processador optimitzat per a l\'\xc3\xa0rea._NEWLINE_El consum d\'aquest processador \xc3\xa9s de 12.5\xce\xbcW/MHz (90LP process, configuraci\xc3\xb3 m\xc3\xadnima) en una \xc3\xa0rea menor de 12k portes.\n_START_SECTION_\nCortex-M0+\n_START_PARAGRAPH_\nEl processador Cortex M0+ \xc3\xa9s una versi\xc3\xb3 millorada del Cortex-M0, el qual presenta una arquitectura optimitzada i una reducci\xc3\xb3 del nombre de fases del pipeline, aquest \xc3\xbaltim, passa de ser de 3 a 2 fases. Amb tot aix\xc3\xb2, s\'aconsegueix una reducci\xc3\xb3 del consum d\'energia que passa a ser de 9.8\xc2\xb5W/MHz (90LP process, configuraci\xc3\xb3 m\xc3\xadnima) i s\'incrementa el rendiment a 2.42 CoreMark/MHz._NEWLINE_Com que cada aplicaci\xc3\xb3 t\xc3\xa9 unes necessitats espec\xc3\xadfiques Cortex-M0+ ofereix una gran selecci\xc3\xb3 de complements per a solucionar aquestes necessitats. Alguns d\'aquests complements s\xc3\xb3n una Memory protection unity (MPU) i una re-locatable vector-table s\xc3\xb3n les aplicacions m\xc3\xa9s comunes rebudes dels processadors Cortex-M3 i Cortex-M4. Altres complements de silici que es poden incorporar s\xc3\xb3n single-cycle I/O interface per a tenir un control m\xc3\xa9s r\xc3\xa0pid i Micro trace buffer(MTB) per a millorar la depuraci\xc3\xb3.\n_START_SECTION_\nCortex-M3\n_START_PARAGRAPH_\nCortex-M3 presenta un alt rendiment i un baix consum din\xc3\xa0mic d\'energia, ja que, incorpora modes de somni (sleep modes) i complementariament incorpora capacitats per a retenir l\'estat. Amb aix\xc3\xb2 ens podem assegurar que podem tenir aplicacions amb un baix consum i un bon rendiment._NEWLINE_La combinaci\xc3\xb3 d\'aquestes caracter\xc3\xadstiques i el rendiment ens permet manejar m\xc3\xbaltiples canals d\'I/O i est\xc3\xa0ndards de protocols com USB OTG.\n_START_SECTION_\nCortex-M4\n_START_PARAGRAPH_\nCortex-M4 \xc3\xa9s una versi\xc3\xb3 millorada del Cortex-M3 afegint instruccions DSP i un complement d\'unitat de punt flotant (FPU)._NEWLINE_Si cont\xc3\xa9 el complement anomenat anteriorment es diu Cortex-M4F.\n_START_SECTION_\nDisseny\n_START_PARAGRAPH_\nEl joc d\'instruccions de l\'ARM \xc3\xa9s similar al del MOS 6502, per\xc3\xb2 inclou caracter\xc3\xadstiques addicionals que li permeten aconseguir un millor rendiment en la seva execuci\xc3\xb3. Per mantenir el concepte tradicional de RISC, es va incloure l\'ordre d\'execuci\xc3\xb3 en un temps bastant bo, i en general, en un cicle. La caracter\xc3\xadstica m\xc3\xa9s interessant \xc3\xa9s l\'\xc3\xbas dels 4 bits de codi condicional a la part superior de cada instrucci\xc3\xb3, fent que cada instrucci\xc3\xb3 pugui ser una condici\xc3\xb3._NEWLINE_Aquest tall permet augmentar l\'espai per a alguns despla\xc3\xa7aments en l\'acc\xc3\xa9s a la mem\xc3\xb2ria, per\xc3\xb2 tamb\xc3\xa9 permet evitar caure en cicles fora de control quan l\'aplicaci\xc3\xb3 sigui per a petites instruccions condicionades. L\'exemple est\xc3\xa0ndard \xc3\xa9s el m\xc3\xa0xim com\xc3\xba divisor, segons l\'algorisme d\'Euclides._NEWLINE_Exemple a C_NEWLINE_int GCD (int i, int j)_NEWLINE_{_NEWLINE_while (i\xc2\xa0! = j)_NEWLINE_if (i> j)_NEWLINE_i -= j;_NEWLINE_else_NEWLINE_j -= i;_NEWLINE_return i;_NEWLINE_}_NEWLINE_Expressat en codi assemblador ARM, el cicle, amb una petita rotaci\xc3\xb3, permet veure una cosa similar a aix\xc3\xb2_NEWLINE_b test_NEWLINE_loop subgt Ri, Ri, Rj_NEWLINE_sublevat, que tenien Rj, Rj, Ri_NEWLINE_test cmp Ri, Rj_NEWLINE_BNE loop_NEWLINE_el qual permet girar al voltant de la condici\xc3\xb3._NEWLINE_Una altra caracter\xc3\xadstica \xc3\xbanica del joc d\'instruccions \xc3\xa9s la possibilitat d\'afegir shifts i rotar en el processament de dades (aritm\xc3\xa8tic, l\xc3\xb2gic i moviment de registres), per exemple, la instrucci\xc3\xb3 en C "a+= (j <<2);" pot ser millorada com una instrucci\xc3\xb3 simple en l\'ARM, permetent la reubicaci\xc3\xb3 del registre._NEWLINE_Tot aix\xc3\xb2 fa que es necessitin menys operacions de c\xc3\xa0rrega i emmagatzematge, millorant el rendiment._NEWLINE_El processador ARM tamb\xc3\xa9 t\xc3\xa9 algunes caracter\xc3\xadstiques que s\xc3\xb3n rares en altres arquitectures tamb\xc3\xa9 considerades RISC, com l\'adre\xc3\xa7ament relatiu, i el pre i post increment en el mode d\'adre\xc3\xa7ament._NEWLINE_T\xc3\xa9 dos modes de funcionament: l\'Armi amb instruccions que ocupen 4 bytes, m\xc3\xa9s r\xc3\xa0pides i potents (hi ha instruccions que nom\xc3\xa9s estan en aquesta manera) per\xc3\xb2 amb major consum de mem\xc3\xb2ria i d\'electricitat. I la manera THUMB, m\xc3\xa9s limitat, amb instruccions que ocupen 2 bytes i amb menor consum de corrent\n_START_SECTION_\nThumb\n_START_PARAGRAPH_\nLes instruccions Thumb s\'han utilitzat en els condicionals. Aquest conjunt d\'instruccions pret\xc3\xa9n disminuir la quantitat de codi escrit, millorar la densitat del codi i aconseguir un rendiment superior a un codi de 32 bits on el port de mem\xc3\xb2ria o amplada del bus de comunicacions s\xc3\xb3n menors a 32 bits. En general en aplicacions s\'insereix un petit rang d\'adreces de mem\xc3\xb2ria amb un datapath de 32 bits (per exemple: Game Boy Advance), i la resta s\xc3\xb3n 16 bits en mode wide o narrower._NEWLINE_La primera CPU amb la tecnologia Thumb va ser el ARM7TDMI. Tota la fam\xc3\xadlia posterior a l\'ARM9, incloent-hi el processador Intel XScale, tenen incorporada la tecnologia en el seu nucli._NEWLINE_El 2003 conincidint amb la sortida de ARMv7 va sortir tamb\xc3\xa9 el conjunt d\'instruccions Thumb-2 que estenia el conjunt d\'instruccions en versions pr\xc3\xa8vies per\xc3\xb2 que segueix tenint la mateixa missi\xc3\xb3.\n_START_SECTION_\nTrustZone\n_START_PARAGRAPH_\nPart del hardware que proporcionen seguretat en aquest. En alguns dispositius com tauletes o tel\xc3\xa8fons intel\xc2\xb7ligents s\xe2\x80\x99executen instruccions d\xe2\x80\x99aplicacions baixades d\xe2\x80\x99Internet que a vegades inclouen software malici\xc3\xb3s. Pret\xc3\xa9n reduir l\xe2\x80\x99acc\xc3\xa9s a certes parts del hardware per evitar errors, acc\xc3\xa9s a dades de mem\xc3\xb2ria,...\n_START_SECTION_\nJazelle\n_START_PARAGRAPH_\nARM t\xc3\xa9 implantada una tecnologia que permet que certs tipus d\'arquitectures executin Java bytecode nativament al maquinari. La primera CPU a utilitzar Jazelle va ser el ARM926EJ-S, sent anomenats amb una J a tots els processadors que suportessin aquesta tecnologia.\n_START_SECTION_\nVFP\n_START_PARAGRAPH_\nConjunt d\xe2\x80\x99instruccions per millorar les possibilitats d\xe2\x80\x99operar amb coma flotant en diferents precisions. Normalment s\xe2\x80\x99utilitza en aplicacions en automobilisme (ABS, control de tracci\xc3\xb3 i suspensi\xc3\xb3), gr\xc3\xa0fics 3D, tractament d\xe2\x80\x99imatges (impressores i c\xc3\xa0meres digitals) o per controlar sistemes industrials a temps real. Les arquitectures ARM ja porten VFPv2 de la versi\xc3\xb3 ARMv5.\n_START_SECTION_\nSIMD\n_START_PARAGRAPH_\nInstruccions (Single Instruction Multiple Data) que millora l\xe2\x80\x99speedup en operacions l\xc3\xb2giques o aritm\xc3\xa8tiques. La millora NEON SIMD \xc3\xa9s una extensi\xc3\xb3 de 128 bits en els ARM de la s\xc3\xa8rie A. Estan pensats per accelerar els c\xc3\xa0lculs en els jocs, reproducci\xc3\xb3 de v\xc3\xaddeo, so,... Com en totes les instruccions ARM permet l\'execuci\xc3\xb3 d\'operacions aritmeticol\xc3\xb2giques en diferents elements d\'un vector de manera paral\xc2\xb7lela.'