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.[1]

 ARM arkitektura
Jatorria
Ezaugarriak
Deskribapena
OinarrituaRISC
Honen eragina jaso duBerkeley RISC (en) Itzuli
Kokapena
JabeaArm Holdings (en) Itzuli
Ekoizpena
DiseinatzaileaArm Holdings (en) Itzuli
GaratzaileaAcorn Computers (en) Itzuli eta Arm Holdings (en) Itzuli
Emanaldia
Hasiera-data1985
arm.com

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 aldatu

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 aldatu

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 aldatu

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

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

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

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 aldatu

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 aldatu

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.

Erreferentziak aldatu

  1. Shimpi, Anand Lal. «ARM Partners Ship 50 Billion Chips Since 1991 - Where Did They Go?» www.anandtech.com (Noiz kontsultatua: 2024-03-04).

Bibliografia aldatu

Ikus, gainera aldatu

Kanpo estekak aldatu