Az ARM architektúra (korábban Advanced RISC Machine, azelőtt Acorn RISC Machine) egy 32/64 bites, az ARM Limited fejlesztette RISC CPU-architektúra, amely több beágyazott rendszerben található meg. Energiatakarékosságuk miatt az ARM architektúrájú CPU-k vezetnek a hordozható elektronikai piacon, ahol az alacsony energiafogyasztás fontos tervezési szempont.

Manapság az összes beágyazott 32 bites RISC CPU kb. 75%-a az ARM családból származik,https://web.archive.org/web/20041014143736/http://www.arm.com/miscPDFs/3823.pdf így ez a világ egyik legelterjedtebb 32 bites architektúrája. Sokféle felhasználói elektronikai eszközben található ARM CPU, kezdve a hordozható eszközöktől (PDA-k, mobiltelefonok, médialejátszók, kézi számítógépkonzolok és számológépek), egészen a számítógép-perifériákig (merevlemezek, asztali routerek). A család kiemelten fontos ágai a Marvell Technology Group által fejlesztett XScale és a Texas Instruments által készített OMAP-sorozat.

Történet jobbra|bélyegkép|Egy Conexant ARM processzor, amely főként routerekben található Az ARM fejlesztése egy kísérleti projektként indult 1983-ban az Acorn Computers Ltd-nél.

A Roger Wilson és Steve Furber vezette csoport egy MOS Technology 6502-re emlékeztető, ám annál fejlettebb processzort kezdett fejleszteni. Az Acorn sok, a 6502-re épülő számítógépet kínált, így egy hasonlóan programozható chip jelentős előnyt jelentett a cégnek.

A csapat 1985 áprilisában készült el az ARM1-nek nevezett fejlesztői mintákkal,"Néhány tény az Acorn RISC Machine-ról" Roger Wilson üzenete a comp.arch-on, Nov 2 1988. majd az első eladásra szánt rendszerrel, az ARM2-vel a következő évben. Az ARM2 32 bites adatbusszal és 16 darab 32 bites regiszterrel rendelkezett, valamint 26 bitet használt címzésre (így összesen 64 MiB memória volt címezhető). Ezen regiszterek egyike szolgált a (szóhatárra igazított) utasításszámlálóként (program counter), úgy, hogy a felső 6 és alsó 2 bitje tárolta a processzor állapotjelző bitjeit. Valószínűleg az ARM2 volt a legegyszerűbb, használható 32 bites mikroprocesszor a világon, mindössze kb. tranzisztorral (összehasonlításként: a Motorola 6 évvel korábbi 68000-es komplex utasításkészletű processzora kb. tranzisztort tartalmazott). Ennek az egyszerűségnek a nagy része a mikrokód (a Motorola 68000 tranzisztorainak kb. negyede-harmada) és a – legtöbb mai CPU-ban megtalálható – gyorsítótár hiányának köszönhető. Az egyszerűsége miatti alacsony áramfelvétele ellenére jobb teljesítményt nyújtott, mint az Intel 80286-os. Egyik utódját, az ARM3-t, 4 Kbyte méretű gyorsítótárral készítették, mely a teljesítményt tovább növelte.

Advanced RISC Machines Ltd. – ARM6

Az 1980-as évek végén az Apple Computer és az Acorn együttműködésbe kezdett az ARM mag új változatának kidolgozásában. A munka annyira fontos volt az Acornnak, hogy a fejlesztőcsapatot 1990-ben egy új cégbe, az Advanced RISC Machines Ltd.-be szervezték, ami „ARM Ltd.”-re változott, amikor anyavállalata, az ARM Holdings plc, 1998-ban floatolt a Londoni Értéktőzsdén és a Nasdaqon. Ezért nevezik néha az ARM-ot Advanced RISC Machine-nak Acorn RISC Machine helyett.

Az új Apple–ARM együttműködésből született végül az ARM6, aminek első változatát 1991 elején adtak ki. Az ARM6 az ARM3 utódja. Az Apple az ARM6-alapú ARM610-et az Apple Newton PDA-k processzoraként használta, míg később StrongARM processzorokra nem váltottak.

Az ARM610 volt az első olyan ARM processzor, amely teljes 32 bites címtartományt támogatott, így 4 GiB memóriát képes leképezni. Ezen kívül memóriavezérlővel (MMU) és belső utasítás-gyorsítótárral is rendelkezik. Az ARMv3 utasításkészletet támogatja. Visszafelé kompatibilis a korábbi 26 bites címzési módú üzemmódokkal. 20, 25, 30, 33 és 40 MHz-es órajelű változatai jelentek meg 1993 és 1994-ben.ARM6, WikiChip, 2023

Korai licencelők 1994-ben az Acorn az ARM610-et alkalmazta fő központi egységként (CPU) saját RiscPC számítógépeiben. A DEC megvásárolta az architektúra licencét (ezzel némi zavart okozva, mivel ők gyártották a DEC Alpha-t is), és elkészítette a StrongARM-ot. -en a StrongARM mindössze 1 watt energiát használt, az újabb változatok pedig még kevesebbet. Ezt a fejlesztést később egy peres egyezség részeként átadták az Intelnek, és az így kibővítette RISC processzorainak vonalát (i860, i960) a StrongARM-mal. Az Intel később kifejlesztette saját nagy teljesítményű implementációját (XScale) néven, melyet aztán eladott a Marvell csoportnak. Az ARM mag tranzisztorszáma lényegében változatlan maradt a változások során: az ARM2 rendelkezik, míg az ARM6-ban a tranzisztorszám csak -re nőtt.

Piaci részesedés 2005-ben az összes eladott mobiltelefon mintegy 98% -a használt legalább egy ARM processzort. 2010-ben az ARM architektúrákon alapuló chipek gyártói ARM-alapú processzor szállításáról számoltak be, ami az okostelefon-ok 95%-át, a digitális televíziók és set-top boxok 35%-át, valamint a mobil számítógépek 10%-át teszi ki. 2011-ben a 32 bites ARM architektúra volt a legszélesebb körben használt architektúra a mobil eszközökben és a legnépszerűbb 32 bites a beágyazott rendszerekben. 2013-ban 10 milliárdot gyártottak és ARM-alapú chipek találhatók a világ mobil eszközeinek közel 60%-ában.

Üzleti stratégia Az elképzelés szerint a gyártó az ARM mag mellé opcionális részeket kínál, amelyekkel egy teljes CPU összeállítható, így alacsony költséggel nagy teljesítmény érhető el.

Az ARM Ltd. szellemi terméket árul, és ezen licencek alapján építhetőek mikrokontrollerek és CPU-k az ARM magra. Legsikeresebb az ARM7TDMI volt, melyből több százmillió példányt adtak el majdnem minden mikrokontrollerrel.

Jelenleg az ARMv7 generáció a legelterjedtebb okostelefonokban, tabletekben és más okos eszközökben.

Az ARM Ltd.-t 2016-ban felvásárolta egy japán befektetői csoport.

ARM magok

Család Architektúra Mag Képességek Gyorsítótár (I/D)/MMU Tipikus MIPS @ MHz FelhasználásaARM1ARMv1ARM1NincsARM Evaluation System második processzor a BBC Micro mikrogépben ARM2ARMv2ARM2MUL (szorzás) műveletNincs4 MIPS @ 8 MHzAcorn Archimedes, ChessmachineARMv2aARM250Integrált MEMC (memória-kezelő modul), grafikus és I/O processzor. SWP és SWPB (csere) utasításokNincs, MEMC1a7 MIPS @ 12 MHzAcorn ArchimedesARM3ARMv2aARM2aProcesszor gyorsítótár4K egységes12 MIPS @ 25 MHzAcorn Archimedes ARM6 ARMv3ARM6032 bites memóriacímek támogatása (korábban: 26 bit)Nincs10 MIPS @ 12 MHz3DO Interactive Multiplayer, Zarlink GPS vevőARM600Cache és segédprocesszor busz (FPA10-es egység számára)4K egységes28 MIPS @ 33 MHzARM610Cache, nincs segédprocesszor busz4K egységes17 MIPS @ 20 MHzAcorn Risc PC 600, Apple Newton 100 series ARM7 ARMv3ARM7008KB egységes40 MHzARM710a8KB egységes40 MHzAcorn Risc PC 700, Apple eMate 300ARM7100Integrált SoC.8KB egységes18 MHzPsion Series 5ARM7500Integrált SoC.4KB egységes40 MHzAcorn A7000ARM7500FEIntegrált SoC. FPA és EDO memória vezérlő.4KB egységes56 MHzAcorn A7000+ ARM7TDMI ARMv4TARM7TDMI(-S)3 fokozatú futószalagNincs15 MIPS @ 16.8 MHzGame Boy Advance, Nintendo DS, iPod, Lego NXTARM710T8KB egységes, MMU36 MIPS @ 40 MHzPsion Series 5mxARM720T8KB egységes, MMU60 MIPS @ 59.8 MHzZipitARM740TMPUARMv5TEJARM7EJ-SJazelle DBX, Enhanced DSP utasítások, 5-lépéses pipelineNincs StrongARM ARMv4SA-11016KB/16KB, MMU200 MHzApple Newton 2x00 series, Risc PC, Rebel/Corel Netwinder, Chalice CATS, Psion NetbookSA-111016KB/16KB, MMU233 MHzLART, Intel Assabet, Ipaq H36x0, Balloon2, Zaurus SL-5x00 ARM9TDMI ARMv4TARM9TDMI5-lépéses pipelineNincsARM920T16KB/16KB, MMU200 MIPS @ 180 MHzArmadillo, GP32,GP2X (első mag), Tapwave Zodiac (Motorola i. MX1), Hp49g+, Sun SPOT, Samsung SC32442 (HTC TyTN, FIC Neo1973)ARM922T8KB/8KB, MMUARM940T4KB/4KB, MPUGP2X (második mag) ARM9E ARMv5TEARM946E-SEnhanced DSP utasításokváltozó, szorosan csatolt memóriák, MPUNintendo DS, Nokia N-Gage Conexant 802.11 chipekARM966E-SNincs, TCMsST Micro STR91xF (Ethernet )ARM968E-SNincs, TCMsARMv5TEJARM926EJ-SJazelle DBX, Enhanced DSP utasításokváltozó, TCMs, MMU220 MIPS @ 200 MHz,Mobile phones: Sony Ericsson (K, W sorozatok), Siemens és Benq (x65 sorozat és újabbak), Texas Instruments OMAP1710, Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800ARMv5TEARM996HSÓrajel-mentes processzor, Enhanced DSP utasításokNincs, TCMs, MPU ARM10E ARMv5TEARM1020E(VFP), 6 fokozatú futószalag, Enhanced DSP utasítások32KB/32KB, MMUARM1022E(VFP)16KB/16KB, MMUARMv5TEJARM1026EJ-SJazelle DBX, Enhanced DSP utasításokVáltozó, MMU or MPU XScale ARMv5TE80200/IOP310/IOP315I/O Processzor, Enhanced DSP utasítások80219400/600 MHzThecus N2100IOP321600 BogoMips @ 600 MHzIyonixIOP33xIOP34x1-2 mag, RAID gyorsítás32K/32K L1, 512K L2, MMUPXA210/PXA250Alkalmazás processzor, 7 fokozatú futószalagZaurus SL-5600, iPAQ H3900PXA25532KB/32KB, MMU400 BogoMips @ 400 MHzGumstix, Palm Tungsten E2,Mentor Ranger & StryderPXA26xalapbeállítás 400 MHz, 624 MHz-igPalm Tungsten T3PXA27xAlkalmazás processzor800 MIPS @ 624 MHzHTC Universal, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50, x51 sorozatok, Motorola Q, Balloon3, Trolltech Greenphone, Palm TX, Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6PXA800(E)FMonahans1000 MIPS @ 1.25 GHzPXA900Blackberry 8700, Blackberry Pearl (8100)IXC1100Control Plane ProcesszorIXP2400/IXP2800IXP2850IXP2325/IXP2350IXP42xNSLU2IXP460/IXP465 ARM11ARMv6ARM1136J(F)-SSIMD, Jazelle DBX, (VFP), 8 fokozatú futószalagVáltozó, MMU740 @ 532-665 MHz (i.MX31 SoC), 400-528 MHzTexas Instruments OMAP2420 (Nokia N95, Nokia N93), Zune, Nokia N800, Qualcomm MSM7200 (integrált ARM926EJ-S segédprocesszorral@274 MHz, a HTC TyTN II-ban (Kaiser) és HTC Nike-ban),Amazon Kindle 3 (keyboard) e-könyv olvasó (Freescale i.MX353)ARMv6T2ARM1156T2(F)-SSIMD, Thumb-2, (VFP), 9 fokozatú futószalagvariable, MPUARMv6KZARM1176JZ(F)-SSIMD, Jazelle DBX, (VFP)változó, MMU+TrustZoneApple iPhone, Conexant CX2427X, Motorola RIZR Z8, Raspberry PiARMv6KARM11 MPCore1-4 core SMP, SIMD, Jazelle DBX, (VFP)változó, MMU CortexARMv7-ACortex-A8Alkalmazás profil, VFP, NEON, Jazelle RCT, Thumb-2, 13 fokozatú szuperskalár futószalagVáltozó (L1+L2), MMU+TrustZone2000-ig (2.0 DMIPS/MHz a 600 MHz-től több mint 1 GHz-ig)Texas Instruments OMAP3, Barnes and Noble Nookcolor e-könyv-olvasó (TI OMAP3621 processzor)Cortex-A9Alkalmazás profil, (VFP), (NEON), Jazelle RCT és DBX, Thumb-2, Spekulatív szuperskalárisMMU+TrustZone2.0 DMIPS/MHzSamsung Galaxy S IICortex-A9 MPCoreAs Cortex-A9, 1-4 core SMPMMU+TrustZone2.0 DMIPS/MHzARMv7-RCortex-R4(F)Embedded profile, (FPU)Változó gyorsítótár, opcionális MPU600 DMIPSBroadcom az egyik felhasználójaARMv7-MCortex-M3Microvezérlő profil, csak Thumb-2Nincs gyorsítótár, (MPU)125 DMIPS @ 100 MHzLuminary Micro mikrovezérlő család, ST Microelectronics STM32 ARMv6-MCortex-M1FPGA-ra tervezett, Microkontroller profil, Thumb-2 (BL, MRS, MSR, ISB, DSB, and DMB).Nincs, opcionális szorosan csatolt memória136 DMIPS-ig @ 170 MHz"Az ARM kiegészíti a Cortex családot az első FPGA-ra optimalizált processzorral", ARM press release, March 19 2007. (0.8 DMIPS/MHz,"ARM Cortex-M1", ARM termék weboldal. MHz érhető el FPGA-tól függően)"Az Actel ProASIC3 és Actel Fusion PSC eszközök 2007 harmadik negyedévében várhatók"ARM Extends Cortex Family with First Processor Optimized for FPGA

Felépítés

Az egyszerűség és gyorsaság miatt mikrokód nélkül készült, mint a korábbi Acorn mikroszámítógépekben használt, jóval egyszerűbb 8 bites 6502.

Az ARM architektúra a következő RISC képességekkel rendelkezik: Load/store architektúra Csak illesztett (aligned) memória elérés az ARMv6-ig Ortogonális utasítás-készlet Nagy, 16×32 bit regiszter-készlet Egységes, 32 bites utasítások (egyszerűbb dekódolás és pipelining, csökkentett kódsűrűség) Többnyire egy-ciklusos végrehajtás

Az egyszerűbb felépítés kompenzálására, néhány egyedi jellemzőt is hozzáadtak: A legtöbb utasításhoz feltételes végrehajtás, így csökkentve az elágazás idejét és kompenzálva az elágazás predikátor hiányát.