SARRERA
-------

**ARM arkitektura**, jatorriz 'Acorn 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 KPetarako 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 sinplekotasunak 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 PRPZESADOREEN FAMILIA
-------------------------

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| **Familia** | **Arkitektura Bertsioa** | **Nukleoa** | **Ezaugarriak** | **Katxe (I/D)/MMU** | **MIPS Errealak @ MHz** | **Aplikazio Eremua** |
| ARM1 | ARMv1 (zaharkitua) | ARM1 |  | Hutsa |  | ARM Ebaluazio Sistema, BBC Micro |
| ARM2 | ARMv2 (zaharkitua) | ARM2 | MUL agindua gehitua | Hutsa | 4 MIPS @ 8 MHz | Acorn Archimedes, Chessmachine |
| ARM250 | ARMv2a (zaharkitua) | ARM250 | MEMC integratua, SWP eta SWPB aginduak | Hutsa, MEMC1a | 7 MIPS @ 12 MHz | Acorn Archimedes |
| ARM3 | ARMv2a (zaharkitua) | ARM2a | Lehenengo katxea ARM-en | 4K unifikatua | 12 MIPS @ 25 MHz | Acorn Archimedes |
| ARM6 | ARMv3 (zaharkitua) | ARM60 | 32-bit helbideak | Hutsa | 10 MIPS @ 12 MHz | 3DO Interactive, Zarlink GPS |
| ARM600 | ARMv3 | ARM600 | Katxea, koprozadore busa | 4K unifikatua | 28 MIPS @ 33 MHz |  |
| ARM610 | ARMv3 | ARM610 | Katxea | 4K unifikatua | 17 MIPS @ 20 MHz | Acorn Risc PC 600, Apple Newton |
| ARM7 | ARMv3 (zaharkitua) | ARM700 |  | 8 KB unifikatua | 40 MHz | Acorn Risc PC, CPU txartel prototipoa |
| ARM710 | ARMv3 | ARM710 |  | 8 KB unifikatua | 40 MHz | Acorn Risc PC 700 |
| ARM7100 | ARMv3 | ARM7100 | SoC integratua | 8 KB unifikatua | 18 MHz | Psion Series 5 |
| ARM7500 | ARMv3 | ARM7500 | SoC integratua | 4 KB unifikatua | 40 MHz | Acorn A7000 |
| ARM7500FE | ARMv3 | ARM7500FE | FPA, EDO memoria kontrolatzailea | 4 KB unifikatua | 56 MHz | Acorn A7000+ Network Computer |
| ARM7TDMI | ARMv4T | ARM7TDMI | Thumb, 3 etapa | Hutsa | 63 DMIPS @ 70 MHz | GBA, Nintendo DS, Apple iPod |
| ... | ... | ... | ... | ... | ... | ... |
| Cortex-A5 | ARMv7-A | Cortex-A5 | VFP, NEON, Jazelle RCT eta DBX, Thumb-2 | Aldagarria (L1) | 1500 baino gehiago (1.5 DMIPS/MHz) | "Sparrow" |
| Cortex-A8 | ARMv7-A | Cortex-A8 | VFP, NEON, Jazelle RCT, Thumb-2, 13 etapako Superscalar | Aldagarria (L1+L2) | 2000 baino gehiago (2.0 DMIPS/MHz) | Apple iPhone 3GS, iPad (A4), Samsung Galaxy S |
| Cortex-A9 | ARMv7-A | Cortex-A9 | VFP, NEON, Jazelle, Thumb-2, Out-of-order | MMU+TrustZone | 2.5 DMIPS/MHz | Acer Iconia A200, Motorola RAZR |
| ... | ... | ... | ... | ... | ... | ... |
| ARM11 | ARMv6 | ARM1136J(F)-S | 8 etapa, SIMD, Thumb, Jazelle | Aldagarria, MMU | 740 @ 532–665 MHz | Nokia 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 Cn:

  **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;

   }

### ARM kode 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 buklea

ARM 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:

1. 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.
2. Aginduen Sinpletasuna: ARMen agindu-multzoa txikiagoa baina eraginkorragoa da. Instrukzioak zuzenean makina kodean exekutatu daitezke, energia eta denbora aurrezteko.
3. Energia Erabilera Txikia: ARMen RISC arkitekturak ziklo bakoitzeko eraginkortasun handiagoa bilatzen du, txip txikiago eta sinpleagoak sortuz. Honek energia eraginkortasunean hobekuntza nabarmena dakar.
4. 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.

1. ↑    2023-10-14 (Noiz kontsultatua: 2023-12-15).
2. ↑     *Mikroprozesadore.*  2023-05-18 (Noiz kontsultatua: 2023-12-15).
3. ↑     *Transistore.*  2022-06-03 (Noiz kontsultatua: 2023-12-15).
4. ↑     *Telefono mugikor.*  2023-11-27 (Noiz kontsultatua: 2023-12-15).
5. ↑     *Telefono mugikor.*  2023-11-27 (Noiz kontsultatua: 2023-12-15).
6. ↑     *Teknologia.*  2023-04-16 (Noiz kontsultatua: 2023-12-15).
7. ↑     *Tableta (ordenagailua).*  2023-11-16 (Noiz kontsultatua: 2023-12-15).
8. ↑     *Bideokontsola.*  2023-03-17 (Noiz kontsultatua: 2023-12-15).
9. ↑     *Kalkulagailu.*  2023-03-18 (Noiz kontsultatua: 2023-12-15).
10. ↑     *Bus (informatika).*  2023-08-28 (Noiz kontsultatua: 2023-12-15).
11. ↑     *Erregistro.*  2020-09-06 (Noiz kontsultatua: 2023-12-15).
12. ↑     *Apple Inc..*  2023-12-11 (Noiz kontsultatua: 2023-12-15).
13. ↑     *Memoria (informatika).*  2021-06-23 (Noiz kontsultatua: 2023-12-15).