ARM arkitektura

ARM arkitektura, jatorriz 'Acorn RISC Machine' edo 'Advanced RISC Machine' gisa ezaguna, 32 biteko RISC (Reduced Instruction Set Computer) motako mikroprozesadoreen arkitektura da. Nahiz eta jatorrizko bertsioa 32 bitekoa izan, gaur egun ARM Holdings-ek garatutako 64 biteko bertsioak ere existitzen dira. ARM arkitekturak agindu multzo murritza du, hau da, jarraibideen kopurua mugatua da. Hau oso erabilgarria egiten du enbotitako gailuetan, hala nola elektronika txikian. Acorn Computers enpresak sortu zuen konputagailu pertsonaletan (KP) erabili daitekeen arkitektura gisa, eta lehen produktuak, 1987an merkaturatutako Acorn Archimedes izan ziren.

RISCen oinarritutako arkitektura honek PCetarako erabiliagoa den x86 CISC prozesadoreek baino transistore gutxiago behar izatea ahalbidetzen du. Horren ondorioz, mikroprozesadoreak ez dira horrenbeste berotzen eta energian aurrezten dute. Ezaugarri hauek desiragarriak dira bateriekin funtzionatzen duten gailuentzat, hala nola ordenagailu eramangarriak, telefono mugikorrak, eta abar. 

Prozesadore hauen sinpletasunak egokia egiten ditu potentzia baxuko aplikazioentzat. Hori dela eta, elektronika mugikorrean, mikroprozesadoreetan eta mikrokontrolagailuetan teknologia erabiliena izan da. 2005ean, merkatuan saldu ziren mila milioi telefono mugikor baino gehiagoren %98ak ARM arkitekturako prozesadorea eraman zuen. 2009tik aurrera, 32 biteko RISC prozesadore integratuen %90 inguru ARM motakoak izan dira. Esan beharra dago kontsumo elektronikorako erabiltzen diren prozesadore desberdinen baliokidetasun taularik ez dagoela. Kontsumo elektronikoko gailuen artean tabletak, telefono mugikorrak, telefono adimendunak, erloju adimendunak, bideojokoetako kontsola, kalkulagailuak eta ordenagailuen periferikoak daude.

ARM arkitektura lizentziagarria da. Horrek esan nahi du ARM Holdings-en jarduera nagusia jabetza intelektualeko mikroprozesadoreen nukleoak (IP nukleoak) saltzea dela. Lizentzia hauek nukleo horietan oinarritutako mikrokontrolagailuak eta PUZak (Prozesadore Unitate Zentralak) sortzeko erabiltzen dira. Gaur egungo eta iraganeko ARM lizentzien titularrak diren enpresen artean daude Alcatel-Lucent, Apple Inc., eta beste asko.

 Historia 
1983an, Acorn Computers enpresak ARM arkitekturaren proiektua abiarazi zuen. Hau prozesadore aurreratu baten sorrera izan zen, baina MOS 6502aren antzeko arkitekturarekin. Sophie Wilson eta Steve Furber izan ziren proiektu honen buru, eta hasiera batean helburua zen Acornen jada erabilitako mikroprozesadorearen arkitektura berri bat garatzea, garatzaileentzat ezaguna eta erabilerraza izateko.

1985ean, taldeak lehen ARM prozesadorearen (ARM1 izenekoa) diseinua eta prototipoa amaitu zituen. Hurrengo urtean, ARM2, lehen komertzialki erabiltzen den bertsioa merkaturatu zen. ARM2ren arkitekturak 32 biteko datu-bus bat eta 26 biteko helbide-gune bat eskaintzen zuen, 32 biteko 16 erregistrorekin batera. ARM2, ziurrenik, munduko 32 biteko mikroprozesadore sinpleenetako bat da, bere 30.000 trantsistore gutxiengatik nabarmentzen da.

1980ko hamarkadaren bukaeran, Apple Computerrek Acorn Computers-ekin elkarlanean hasi zen ARM prozesadorearen hurrengo bertsioak garatzeko. Acornen konturatu ziren prozesadore baten fabrikatzailea ordenagailu-fabrikatzaile bat izateak bezeroak atzera bota zitzakeela, eta, beraz, Advanced RISC Machines izeneko konpainia berri bat sortzea erabaki zuten, ARM prozesadoreen belaunaldi berrien diseinuaz eta kudeaketaz arduratuko zena. 1990. urtean gertatu zen hori.

Konpainia berrian 1991n aurkeztutako ARM6 sortu zuten. Applek ARM 610 (ARM6an oinarritua) erabili zuen oinarrizko prozesadore gisa bere PDA berritzailearentzat, Apple Newton. Bestalde, Acornek 1994an prozesadore nagusi gisa erabili zuen bere RiscPCan.

Nukleoak bere sinpletasuna mantendu zuen: ARM2k 30.000 trantsistore ditu, eta ARM6k, berriz, 35.000 baino ez. 

ARM teknologiaren erabilerarik handiena ARM7TDMI prozesadorearekin lortu zen, milioika unitate telefono mugikorretan eta bideojoko eramangarrien sistemetan erabiliak izan baitziren. 

DECek ARM7TDMI diseinua argitaratu zuen eta diseinu horretan oinarituta StrongARM sortu zuen. 233 MHz-ko erloju-abiadurarekin, prozesadore horrek 1 W-eko potentzia bakarrik kontsumitzen zuen (energia-kontsumo hori bertsio berriagoetan murriztu da). Teknologia hori Intelen eskuetara igaro zen geroago, akordio juridiko baten ondorioz. 

Freescale (2004an Motorolatik eratorritako enpresa bat), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips, VLSI, Atmel, Sharp, Samsung eta STMicroelectronics enpresek ere ARMren oinarrizko diseinua argitaratu zuten.

 ARM prozesadoreen familia 
FamiliaArkitektura BertsioaNukleoaEzaugarriakKatxe (I/D)/MMUMIPS Errealak @ MHzAplikazio EremuaARM1ARMv1 (zaharkitua)ARM1HutsaARM Ebaluazio Sistema, BBC MicroARM2ARMv2 (zaharkitua)ARM2MUL agindua gehituaHutsa4 MIPS @ 8 MHzAcorn Archimedes, ChessmachineARM250ARMv2a (zaharkitua)ARM250MEMC integratua, SWP eta SWPB aginduakHutsa, MEMC1a7 MIPS @ 12 MHzAcorn ArchimedesARM3ARMv2a (zaharkitua)ARM2aLehenengo katxea ARM-en4K unifikatua12 MIPS @ 25 MHzAcorn ArchimedesARM6ARMv3 (zaharkitua)ARM6032-bit helbideakHutsa10 MIPS @ 12 MHz3DO Interactive, Zarlink GPSARM600ARMv3ARM600Katxea, koprozadore busa4K unifikatua28 MIPS @ 33 MHzARM610ARMv3ARM610Katxea4K unifikatua17 MIPS @ 20 MHzAcorn Risc PC 600, Apple NewtonARM7ARMv3 (zaharkitua)ARM7008 KB unifikatua40 MHzAcorn Risc PC, CPU txartel prototipoaARM710ARMv3ARM7108 KB unifikatua40 MHzAcorn Risc PC 700ARM7100ARMv3ARM7100SoC integratua8 KB unifikatua18 MHzPsion Series 5ARM7500ARMv3ARM7500SoC integratua4 KB unifikatua40 MHzAcorn A7000ARM7500FEARMv3ARM7500FEFPA, EDO memoria kontrolatzailea4 KB unifikatua56 MHzAcorn A7000+ Network ComputerARM7TDMIARMv4TARM7TDMIThumb, 3 etapaHutsa63 DMIPS @ 70 MHzGBA, Nintendo DS, Apple iPod.....................Cortex-A5ARMv7-ACortex-A5VFP, NEON, Jazelle RCT eta DBX, Thumb-2Aldagarria (L1)1500 baino gehiago (1.5 DMIPS/MHz)"Sparrow"Cortex-A8ARMv7-ACortex-A8VFP, NEON, Jazelle RCT, Thumb-2, 13 etapako SuperscalarAldagarria (L1+L2)2000 baino gehiago (2.0 DMIPS/MHz)Apple iPhone 3GS, iPad (A4), Samsung Galaxy SCortex-A9ARMv7-ACortex-A9VFP, NEON, Jazelle, Thumb-2, Out-of-orderMMU+TrustZone2.5 DMIPS/MHzAcer Iconia A200, Motorola RAZR.....................ARM11ARMv6ARM1136J(F)-S8 etapa, SIMD, Thumb, JazelleAldagarria, MMU740 @ 532–665 MHzNokia E90, N93, N95, Zune.....................

 Diseinua 
ARMren agindu multzoa MOS 6502 mikroprozesadorearenaren antzekoa da, baina hainbat ezaugarri gehigarri ditu, errendimendu handiagoa ahalbidetzen dutenak. Hau, RISC (Reduced Instruction Set Computer) kontzeptuari jarraituz, egiten da. RISC arkitekturaren ezaugarri nagusia da agindu bakoitzaren exekuzioa ziklo bakar batean burutzen duela, eraginkortasuna handituz.

ARM arkitekturaren ezaugarririk bereizgarriena bere aginduen multzoan dauden baldintza-kodeen erabilera da. Arkitektura honek ahalbidetzen du agindu ia guztiak baldintza jakin batzuen arabera exekutatuak izatea. Hau da, aginduak ez dira beti exekutatzen, baizik eta baldintza zehatz batzuk betetzen direnean bakarrik. Adibidez, 'IF' baldintza bat betetzen bada, orduan eta bakarrik orduan, agindu zehatz bat exekutatuko da. Honek eraginkortasuna handitzen du,  beharrezkoak ez diren komandoak ez exekutatzea ahalbidetzen baitu. Horrez gain, baldintza-kodeen erabilera honek memoria-eragiketen eraginkortasuna hobetzen du, pipeline teknologiari esker, non instrukzioak modu jarraituan kargatzen diren prozesadorearen exekuzio-unitatean.

 Adibidea C lengoaiaz: 
  while (i != j)  // Buklean i!=j den bitartean sartzen da, ez i==j denen
   {
      if (i > j)   // i>j bada egin ondorengoac
          i -= j;
      else         // bestela, hau
          j -= i;
   }

 e mihiztatzailearekin, ordea, zikloa eraginkorragoa izan daiteke: 
loop:
   // i eta j konparatu
   GT = i > j;
   LT = i < j;
   NE = i != j;
   // Flag-en emaitzak erabiliz hobetutako eragiketak
   if(GT) i -= j;    // Ken *bakarrik* handiagoa bada
   if(LT) j -= i;    // Ken *bakarrik* txikiagoa bada
   if(NE) goto loop; // Bukaerara joan *bakarrik* konparatutako balioak ezberdinak badira

 Eta aurreko hori kodifikatuta: 
loop:  CMP    Ri, Rj       ; "NE" baldintza ezartzen du (i != j),
                           ; "GT" baldintza ezartzen du (i > j) baldin bada,
                           ; edo "LT" baldintza (i < j) baldin bada
       SUBGT  Ri, Ri, Rj   ; "GT" (Handiagoa) baldin bada, i = i-j;
       SUBLT  Rj, Rj, Ri   ; "LT" (Txikiagoa) baldin bada, j = j-i;
       BNE  loop           ; "NE" (Ez Berdina) baldin bada, orduan errepikatu bukleaARM arkitekturaren jarraibideen jokoaren ezaugarri nabarmenetako bat da shift eragiketak eta datu-prozesamendua (aritmetikoa, logikoa eta erregistroen mugimendua) modu eraginkorrean integratzea. Adibidez, C lengoaian 'a += (j << 2);' bezelako instrukzioa ARM-en jarraibide bakar gisa optimizatu daiteke, erregistroak birkokatzeko aukera emanez. Honek erregistroen erabilera hobetzen du, memoria-karga eta biltegiratze eragiketak murriztuz eta, ondorioz, prozesadorearen errendimendua hobetuz.

ARM prozesadoreek, halaber, beste arkitektura batzuetan ohikoak ez diren ezaugarri bereziak dituzte. Adibidez, helbideratze erlatiboa eta helbideratze moduaren aurre-hazkundea, biak oso erabilgarriak direnak datuen kudeaketan eta memoria sarbideetan.

Bi funtzionamendu modu dituzte ARM prozesadoreek: ARMI modua eta THUMB modua. ARMI moduak 4 byteko jarraibideak hartzen ditu, azkarragoak eta indartsuagoak izanik. Hala ere, modu honek memoria eta energia kontsumo handiagoa dakar. THUMB moduak, aldiz, mugatuagoa da, 2 byteko jarraibideak erabiltzen dituelarik, eta energia-kontsumo txikiagoa eskaintzen du. Bi modu hauek ARM prozesadoreen malgutasuna eta eraginkortasuna handitzen dute, eskaera desberdinetara egokitzeko aukera emanez.

 Erregistroak 
ARM familiako prozesadoreek 32 biteko 16 erregistro dituzte, R0tik R15era izendatuta. Hasieran, erregistro guztiak antzekoak dira, baina hiru erregistrok funtzio bereziak dituzte: R15 erregistroa programa-kontagailu edo PC gisa erabiltzen da, R14 erregistroa itzulera helbidea gordetzeko erabiltzen da deia edo salbuespen bat egiten denean, eta R13 erregistroa pila adierazlea edo Stack Pointer gisa erabiltzen da. Honek egitura homogeneo bat eskaintzen du, baina aldi berean, funtzio espezifikoak betetzen dituzten erregistro espezializatuak.

 Abantailak 
ARM arkitekturak hainbat abantaila dakartza:

 Fabrikatzaile-aukera Zabala: ARM arkitekturak lizentziak hirugarrenei saldu ahal izateko aukera eskaintzen du, marka askotariko ekoizpena ahalbidetzen duena. Honek kontsumitzaileari aukera ematen dio etengabeko berrikuntzak egiteko.2.
 Aginduen Sinpletasuna: ARMen agindu-multzoa txikiagoa baina eraginkorragoa da. Instrukzioak zuzenean makina kodean exekutatu daitezke, energia eta denbora aurrezteko.
 Energia Erabilera Txikia: ARMen RISC arkitekturak ziklo bakoitzeko eraginkortasun handiagoa bilatzen du, txip txikiago eta sinpleagoak sortuz. Honek energia eraginkortasunean hobekuntza nabarmena dakar.
 Errendimendu Onargarria eta Hobetzen Aria: ARM arkitekturaren lizentziak hirugarrenei saltzeak berrikuntza eta errendimendu hobekuntzak ekartzen ditu.

ARM arkitekturaren ezaugarri hauek bere eraginkortasuna, malgutasuna eta zabalkundea azaltzen dute, eta horrek prozesadore mota hau hainbat aplikazio eta gailu motetarako egokia egiten du.

 Erreferentziak 

 Bibliografia 

Evans, Matt (27 December 2019). The Ultimate Acorn Archimedes talk. Schedule 36 Chaos Communication Congress. YouTube. 

 Ikus, gainera 

 RISC
 Mikroprozesadore

 Kanpo estekak 

 ARM proiektuak eta informazioa
 ARM Holdings
 ARM company

 Ordenagailuez harantzago. Fernando Morillo Grande, 2000ko CAF-Elhuyar Sariak.

Kategoria: Mikroprozesagailuak