Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

ARM

Wikipediasta
Tämä artikkeli käsittelee mikroprosessoriarkkitehtuuria. Lyhenteen ARM ja nimen Arm muita merkityksiä on lueteltutäsmennyssivulla.
ARM
Perustietoja
KehittäjäAcorn Computers,Arm
ValmistajaSamsung,Texas Instruments
Arkkitehtuuri ja luokitus
ArkkitehtuurityyppiRISC
Osoiteavaruus32-bit / 64-bit
TavujärjestysBi-endian
Lisenssisuljettu, kaupallinen
Infobox OK

ARM (lyhenne aluksi sanoistaAcorn RISC Machine, myöhemmin sanoistaAdvanced RISC Machine[1]) onmikroprosessoriarkkitehtuuri, jonkabrittiläinen tietokonevalmistajaAcorn Computers kehitti 1980-luvun puolivälissä.[2] Arkkitehtuuriin kuuluu 32- ja 64-bittisiäsuorittimia. ARM on pitkäikäisimpiäRISC-arkkitehtuureja ja nykyisin suosittu etenkinkämmentietokoneiden,matkapuhelimien jasulautettujen järjestelmiensuorittimissa. Se on maailman eniten valmistettu 32-bittinen suoritinarkkitehtuuri: alkuvuodesta 2007 ARM-suorittimia oli valmistettu viisi miljardia kappaletta, ja mm. 90 % matkapuhelimista käyttää niitä.[3][4] Vuonna 2014 luku oli kymmenkertaistunut yli viiteenkymmeneen miljardiin.[5]

Historia

[muokkaa |muokkaa wikitekstiä]

ARM-suoritin kehitettiin korvaamaanMOS 6502, jota Acorn Computers käyttiAcorn Atomissa jaBBC Microssa.[6] Prosessorin suunnittelivatSophie Wilson jaSteve Furber.[7][8] Acorn Computersin Hauser ja Curry olivat vakuuttuneita, ettämikropiirisuunnitteluun kannatti panostaa vaikka niitä ei valmistaisi itse vaan jotta yrityksellä olisi paremmin tietoa liiketoiminnan kannalta oleellisesta asiasta.[8] Yritykseen hankittiin mikropiirien suunnitteluun kolme henkilöä sekä työkalut jatyöasemat.[8] Lisäksi Hauser esitti Wilsonille ja FurberilleIBM:n esittämiä ideoita.[8] Wilson ja Furber vierailivatWestern Design Centerissä, jossaBill Mensch työskenteli piirisuunnitelman parissa: projektin pieni mittakaava rohkaisi Wilsonia ja Furberia kehittämään prosessorin itse.[8][9] Wilson suunnitteli käskykannan ja Furber muodosti siitä tehtaalle valmistukseen lähetettävän tiedon (tape-out).[9] 18 kuukautta myöhemmin heillä oli toimiva ARM.[9][10] Virran käyttö ei aluksi ollut tärkeää, mutta halpa hinta oli ja käytettyjen materiaalien johdosta virrankäyttö piti olla alle yhdenwatin.[10] Pienen transistorimäärän myötä piiri ei käyttänyt paljoa virtaa ja toimi viileämpänä kuin monet muut, joista tuli myöhemmin hyödyllisiä ominaisuuksia mobiililaitteiden kannalta.[6]

Prosessori alkoi tutkimusprojektina, jonka ensimmäiset näytekappaleet saatiin 26. huhtikuuta 1985.[10][1] Ensimmäiset mallit valmistettiin 3mikrometrinVLSI-tekniikalla ja se tarvitsi alle 25 000 transistoria.[1] ARM1:n korvasi nopeasti ARM2, joka oli ensimmäinen tuotantoversio ja vain 30 000 transistoria.[1] ARM2:n käskykanta oli parempi suorituskyvyn maksimoimiseen ja siinä oli 32-bittinen dataväylä, 26-bittinen osoiteväylä ja 16 rekisteriä.[1] ARM2:ssa ei ollut piirillävälimuistia.[1]

Ensimmäinen ARM-prosessoria käyttävä tuote oli ARM Development System (BBC Micron laajennus[10]), jota seurasiAcorn Archimedes vuonna 1987.[1][11]Vuonna 1990 kehitys siirtyi Acornilta uuteen yhtiöön.[12]

ARMista tulijärjestelmäpiirille sopiva: koska varsinainen prosessori ei tarvitse paljoa tilaa voidaan samalle piirille jäävä tila käyttää muihin tarkoituksiin.[11]Apple käytti ARMiaApple Newtonin prototyyppeihin ja päätyi ostamaan osuuden yhtiöstä.[11]

ARM-suorittimet ovat olleet 32-bittisiä (32-bittinen leveys ja osoiteavaruus) ARMv3:sta lähtien: tätä edeltävät mallit käyttivät 26-bittistä osoiteavaruutta.[13]Nokian tarpeita varten ARM:iin suunniteltiin 16-bittinenThumb-käskykanta, jolloin 32-bittistä suoritinta voitiin käyttää vähemmän muistia vaativilla käskyillä: tämä julkaistiin ARM7-versiossa, josta tuli menestystuote.[14]

64-bittinen ARM-suoritinsarja on julkaistu lokakuussa 2011.[15] Armv8 toi uuden käskykannan lisäksi muutoksia rekistereihin sekä 64-bittisen virtuaalisen osoiteavaruuden.[16]

Armv9-arkkitehtuuriversio on julkaistu maaliskuussa 2021.[17] Armv9 jatkaa Armv8:n tuoman 64-bittisen käskykannan kanssa ja lisää laajennuksia.[16] Uutena Armv9:ssä onkoneoppimisen käyttöön suunnattu eri tarkkuuksienliukuluvut (kutenbfloat16) matriisien laskentaan sekä digitaalisen signaalinkäsittelyn parannukset.[17]Armv9:ssä onSIMD-tyyppisen vektoriyksikön Scalable Vector Extensions toinen versio (SVE2).[16][18]

Valmistajat

[muokkaa |muokkaa wikitekstiä]

ARM-suorittimia suunnittelevaArm ei valmista ARM-suorittimia, vaan on keskittynyt vain niiden suunnittelemiseen ja lisensoi niiden arkkitehtuurin ja valmistusoikeudet useille muille yrityksille kutenSamsungille (katsoExynos),Texas Instrumentsille (katsoOMAP),Motorolalle (katsoDragonBall MX),Qualcommille (katsoQualcomm Snapdragon) jaApplelle (katsoApple M1).

Ampere Computing suunnitteleepilvipalveluita tarjoaville yrityksille suunnattuja Altra-suorittimia, jotka perustuvat ARM-suorittimille.[19]

Suuret pilvipalveluja tuottavat yrityksetAmazon jaGoogle ovat kertoneet omista ARM-suorittimistaan. Yritykset ovat kertoneet paremmasta suorituskyvystä ja pienemmästä virrankulutuksesta omissa testeissään. Amazonin ja Googlen ARM-suorittimet perustuvat Armin Neoverse-suunnitteluun.[20][21][22][23]

ARM-käskykannan ominaisuuksia

[muokkaa |muokkaa wikitekstiä]

ARM soveltuu pienikokoisiin laitteisiin hyvin, koska sen voi toteuttaa suhteellisen vähäisellä logiikkamäärällä tehokkuuteensa nähden. Esimerkiksi ARM2:ssa oli vain noin 30 000transistoria, mutta se oli silti nopeampi kuin samalla kellotaajuudella ajettuMotorola 68000, jossa transistoreja oli noin 68 000. Pienestä koostaan huolimatta ARM-prosessorit ovat varteenotettavia prosessoreita, koska ne voivat sisältää esimerkiksimuistinhallintayksikön (MMU), joka mahdollistaa kehittyneidenkäyttöjärjestelmien ajamisen.

ARM-käskykanta onRISC-tyyppinenload-store-arkkitehtuuri, jossa on suuri määrärekistereitä ja pieni määrä komentoja.[13] Operaatiot tehdään rekisterien välillä.Muistia käsittelevät vain muistinlataus- ja tallennuskäskyt. ARM sisältää kuitenkin myös joukon RISC-kantaa ilmaisuvoimaisempia käskyjä, kuten käskytpinon käyttämiseen. Lisäksi normaaleihinaritmeettisiin käskyihin voidaan liittää toisen parametrinbittien siirto (shiftaus). Miltei jokainen käsky voi olla ehdollinen, eli käsky voidaan joko suorittaa tai olla suorittamatta riippuen jonkun ehtorekisterin arvosta. Sen avulla voidaan välttää osa ohjelmakoodin ehdollisista haarautumisista, jolla saadaan pidettyä suorittimenliukuhihnat täynnä ja parannettuavälimuistin osumatarkkuutta, joka parantaa suorituskykyä.

Muistin osoitusmoodien ollessa rajattu kaikki käskyt voidaan koodata täsmälleen 32-bitillä.[13] Käskyt voidaan tasata muistiosoitteisiin ja käskyn purkaminen voidaan toteuttaa hyvin yksinkertaisesti.[13]Vertailun vuoksix86-suorittimissa käskykoko vaihtelee ja ne ratkaisevat haittapuolia purkamalla käskyt yksinkertaisempiin RISC-tyyppisiin mikro-operaatioihin.[13]

Normaalit ARM-käskyt ovat 32 bittiä pitkiä.[24][25] ARMv4T ja myöhemmät sisältävät 16-bittisen käskykannan nimeltäThumb.[24]Thumb-käskykannassa on suurin osa 32-bittisestä toiminnallisuudesta, mutta jotkin operaatiot vaativat useampia käskyjä.[24]Thumb mahdollistaa tiiviimmän ohjelmakoodin suorituskyvyn kustannuksella.[24] ARMv6T sisältää 32-bittisenThumb-käskykannan (Thumb-2).[24] ARMv7T määritteleeThumbEE-käskykannan laitteella luotua koodia varten.[24] ARM-tilassa käskyt tallennetaansanapituuteen tasattuihin osoitteisiin, muttaThumb- jaThumbEE-tiloissa käskyt voivat olla puolisanaan tasattuja.[25]Thumb-tilassa ohjelmamuistia sekä ohjelmamuistin ja prosessorin välistämuistiväylää tarvitaan vähemmän ja prosessorin toiminta on rajoittunutta: esimerkiksi vapaasti käytettävien rekisterien määrä on rajoitettu kahdeksaan, eikä muiden kuinhyppykäskyjen suoritus voi olla ehdollista.

ARMissa on 30 kappaletta 32-bittisiä yleiskäyttöisiä rekistereitä, joista 15 on jatkuvasti saatavilla riippuen suorittimen tilasta.[26]Ohjelmalaskuria (PC, R15) ei lasketa mukaan yleiskäyttöisiin rekistereihin.[26]Pino-osoitin (SP, R13) jalinkkirekisteri (LR, R14) ovat erityiskäyttöön tarkoitettuja.[26] Osa rekistereistä on käytettävissä vain eritysoikeustilassa.[27]Useimmat 16-bittisetThumb-käskyt voivat käyttää vain kahdeksaa ensimmäistä rekisteriä (R0–R7), joita kutsutaan alemmiksi rekistereiksi (Lo).[28] Ylemmät rekisterit (Hi) ovat R8–R12, SP, LR ja PC.[28] 32-bittisessäThumb-tilassa kaikki käskyt voivat käyttää rekistereitä R0–R12 sekä LR-rekisteriä.[28] UseimmatThumb-käskyt eivät voi käyttää ohjelmalaskuria (PC).[28] ARM-tilassa kaikki käskyt voivat käyttää rekistereitä R0–R12, SP ja LR sekä useimmat voivat käyttää ohjelmalaskuria PC.[28]

Tavujärjestys onbi-endian ARM6-malleista eteenpäin, joka tarkoittaa että suoritin tukee molempia mahdollisuuksia (little, big).[29][30] Vanhat mallit olivat vain pieni-endiaanisia (ARM2, ARM3, ARM2aS).[30]

Monien muiden suorittimien tavoin ARM tukee eri toimintamoodeja: käyttäjätila tavallisille ohjelmille ja järjestelmätila (system mode) käyttöjärjestelmän koodille.[13] ARMv7:stä lähtien mukana on laitteistotukihypervisor-virtualisoinnille, joka ARMv8:ssa on osa arkkitehtuuria suoritustasonimellä EL2.[13][31] EL1-suoritustaso on käyttöjärjestelmän ytimelle ja EL0-taso ilman eritysoikeuksia suoritettavalle koodille.[31] Lisäksi on toimintojen avuksi on kehitetty uusia keskeytyskäsittelijöitä (GIC) sekäIOMMU-tuki (SMMU ARM-arkkitehtuurissa).[31]

VFPapusuoritin sisältää tuenliukulukuaritmetiikalle.[32] VFP ja NEON-laajennus jakavat rekistereitä.[32][33][34]

ARM-suorittimien big.LITTLE-arkkitehtuuri yhdistää kahden tyyppistä erikoistunutta prosessoria, jossa "LITTLE" tähtää energiatehokkuuteen (pieneen virrankäyttöön) ja "big" laskentatehoon. Arkkitehtuuri on suunnattu tilanteisiin, joissa käyttö vaihtelee kuten mobiililaitteissa, joissa on pitkiä vähäisen virrankäytön jaksoja ja hetkittäisiä suuremman suorituskyvyn tarpeita.[35]

ARM-suoritinytimiä

[muokkaa |muokkaa wikitekstiä]
  • ARM1 (1985),prototyyppi
  • ARM2 (1986), jota käytettiinAcorn Archimedes -mikrotietokoneissa
  • ARM3
  • ARM6 (1991), jota käytettiinApple Newton -PDA-laitteessa
  • ARM7, jota käytettiin muun muassaGameBoy Advancessa
  • StrongARM, jota valmisti aluksiDEC, ja jonka valmistusoikeudet myytiin sittemminIntelille
  • Intel XScale
  • ARM9, joka on mm. hyvin monessaPDA:ssa käytetynOMAP1xxx-piirin sisällä
  • ARM11, löytyy mm.OMAP2xxx-piirin sisältä.
  • Cortex A8, sisältää haarautumisenennustuksen, käytössä mm.iPhone 3GS:ssä jaNokia N900:ssa.
  • Cortex A9, ensimmäinen käskyjä uudelleenjärjestelevä ARM-suoritin. Löytyy mm.NvidianTegra 2 -piirin sisältä.
  • Scorpion,Qualcommin suunnittelema ARM-ydin. Suorittaa kahta käskyä rinnakkain ja uudelleenjärjestelee käskyjä rajoitetusti. Käytössä mm. useimmissa Windows Phone 7-puhelimissa olevissa SnapDragon-piireissä.
  • Cortex A5, uudempi pienempi, vähävirtaisempi ja suorituskyvyltään heikompi malli.
  • Cortex A7, korvasi Cortex A8n, vähävirtaisempi mutta nopeampi.
  • Cortex A15, selvästi järeämpi ydin, pystyy suorittamaan kolmea käskyä rinnakkain ja pystyy uudelleenjärjestelemään käskyjä.
  • Krait,Qualcommin uudempi ARM-ydin. Suorittaa kolmea käskyä rinnakkain ja uudelleenjärjestelee käskyjä. Käytössä mm. useimmissa Windows Phone 8-puhelimissa olevissa SnapDragon-piireissä.
  • Swift,Applen suunnittelema ARM-ydin. Käytössä mm. iPhone 5:ssa. Suorittaa kolmea käskyä rinnakkain.[36]
  • Cortex A12, korvasi Cortex A9n, rakenteeltaan samantyylinen mutta suorituskyvyltään parempi.
  • Cortex A17, paranneltu Cortex A12.
  • Cyclone,Applen suunnittelema ja käyttämä ARM-ydin. Käytössä mm. iPhone 5S:ssä, pystyy suorittamaan jopa kuutta käskyä rinnakkain.[36]
  • Cortex-R-sarja on tarkoitettu deterministiseen käyttöön reaaliaikajärjestelmissä[37]
  • Cortex-M-sarja on tarkoitettu alhaisen hinnan ja virrankäytön kohteisiinmikrokontrollereissa[38]

ARM 64-bit

[muokkaa |muokkaa wikitekstiä]

64-bittinen ARM-suoritinsarja on julkaistu lokakuussa 2011.[15]

Sarjan ensimmäinen malli on ARMv8-A, johon on kaksi päivitysversiota: ARMv8.1-A ja ARMv8.2-A.

64-bittinen ARM-arkkitehtuuri tunnetaan nimellä AArch64 ja se käyttää A64-käskykantaa.[39]

Lokakuussa 2020 kerrottiin että Cortex-A-sarjan suorittimet ovat vuodesta 2022 alkaen vain 64-bittisiä ja tuki 32-bittiselle ARM32-käskykannalle jää niistä pois.[40] Cortex-R- ja Cortex-M-sarjojen suorittimet ovat vielä 32-bittisiä.[40]ARM32-käskykannassa on käskyjä, jotka ovat vaikeita spekulatiiviselle suoritukselle ja vaikeasti optimoitavissaliukuhihnalle.[40]

NEON

[muokkaa |muokkaa wikitekstiä]

NEON (taiengl.Media Processing Engine, MPE) on ARM-suorittimien vastineSIMD-käskylaajennuksille.[41]

Mali

[muokkaa |muokkaa wikitekstiä]

Mali onARM Holdingsingrafiikkasuoritinsarja (GPU).

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. abcdefgMarkus Levy: The History of The ARM Architecture: From Inception to IPO (PDF) reds.heig-vd.ch. Viitattu 21.8.2022. (englanniksi)
  2. Brian Santo: 25 Microchips That Shook the World spectrum.ieee.org. 1.5.2009. Viitattu 23.10.2021. (englanniksi)
  3. http://www.arm.com/about/newsroom/16535.php
  4. http://www.technologyreview.com/web/21675/?a=f (Arkistoitu – Internet Archive)
  5. ARM Holdings plc Annual Report 2013: Strategic Report (PDF) (Sivu 3) financialreports.arm.com. Arkistoitu 29.8.2014. Viitattu 1.6.2016. (englanniksi)
  6. abJason Torchinsky: How an obscure British PC maker invented ARM and changed the world arstechnica.com. 20.12.2020. Viitattu 18.7.2022. (englanniksi)
  7. Chris Bidmead: ARM creators Sophie Wilson and Steve Furber theregister.com. 2.5.2012. Viitattu 21.8.2022. (englanniksi)
  8. abcdeChris Bidmead: ARM creators Sophie Wilson and Steve Furber - Part Two: the accidental chip theregister.com. 3.5.2012. Viitattu 21.8.2022. (englanniksi)
  9. abcChris Bidmead: ARM creators Sophie Wilson and Steve Furber - Part Two: the accidental chip (sivu 2) theregister.com. 3.5.2012. Viitattu 21.8.2022. (englanniksi)
  10. abcdChris Bidmead: ARM creators Sophie Wilson and Steve Furber - Part Two: the accidental chip (sivu 3) theregister.com. 3.5.2012. Viitattu 21.8.2022. (englanniksi)
  11. abcChris Bidmead: ARM creators Sophie Wilson and Steve Furber - Part Two: the accidental chip (sivu 4) theregister.com. 3.5.2012. Viitattu 21.8.2022. (englanniksi)
  12. Arm Holdings: what is it and does its sale to Nvidia matter? theguardian.com. 14.9.2020. Viitattu 9.10.2020. (englanniksi)
  13. abcdefgThe ARM architecture – yesterday, today, and tomorrow linux-magazine.com. Viitattu 11.10.2020. (englanniksi) 
  14. Jeremy Reimer: A history of ARM, part 2: Everything starts to come together arstechnica.com. 21.11.2022. Viitattu 1.12.2022. (englanniksi)
  15. abARM Discloses Technical Details Of The Next Version Of The ARM Architecture ARM. Viitattu 24.1.2017.
  16. abcAndrei Frumusanu: Arm Announces Armv9 Architecture: SVE2, Security, and the Next Decade anandtech.com. 30.3.2021. Viitattu 17.2.2022. (englanniksi)
  17. abArm pulls the sheets off its latest Armv9 architecture with added AI support, Realms software isolation theregister.com. 30.3.2021. (englanniksi) 
  18. Berenice Mann: New Technologies for the Arm A-Profile Architecture community.arm.com. 18.4.2019. Viitattu 17.2.2022. (englanniksi)
  19. Antonio Anzaldua Jr.: Ampere’s 128-Core Processor Challenges Intel and AMD in a Cloud-Based Processor Showdown allaboutcircuits.com. 26.6.2020. Viitattu 26.6.2023. (englanniksi)
  20. Dylan Martin: AWS follows AMD and Intel down the specialized chips path theregister.com. 30.11.2022. Viitattu 2.12.2022. (englanniksi)
  21. Tim Anderson: Graviton 3: AWS attempts to gain silicon advantage with latest custom hardware theregister.com. 6.12.2021. Viitattu 10.4.2024. (englanniksi)
  22. Tobias Mann: Google joins the custom server CPU crowd with Arm-based Axion chips theregister.com. 9.4.2024. Viitattu 10.4.2024. (englanniksi)
  23. Ron Amadeo: Google Cloud rolls out self-designed Arm chips in its data centers arstechnica.com. 10.4.2024. Viitattu 10.4.2024. (englanniksi)
  24. abcdefARM, Thumb, and ThumbEE instruction sets developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  25. abInstruction set overview developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  26. abcGeneral-purpose registers developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  27. Data Types azeria-labs.com. Viitattu 12.2.2022. (englanniksi)
  28. abcdeRegister accesses developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  29. Memory endianness ARM. Viitattu 1.2.2017.
  30. abProgrammer's Model for Big-Endian ARM netwinder.osuosl.org. Viitattu 1.2.2017.
  31. abcUnderstanding virtualization facilities in the ARMv8 processor architecture embedded.com. 20.9.2018. Viitattu 11.11.2020. (englanniksi)
  32. abVFP coprocessor developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  33. VFP views of the extension register bank developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  34. Extension register bank mapping developer.arm.com. Viitattu 12.2.2022. (englanniksi)
  35. Processing Architecture for Power Efficiency and Performance arm.com. Viitattu 3.10.2022. (englanniksi)
  36. abhttp://www.anandtech.com/show/7910/apples-cyclone-microarchitecture-detailed
  37. https://developer.arm.com/ip-products/processors/cortex-r
  38. https://developer.arm.com/ip-products/processors/cortex-m
  39. ARMv8 Instruction Set Overview ARM. Arkistoitu 17.2.2017. Viitattu 16.2.2017.
  40. abcHeads up: From 2022, all new top-end Arm Cortex-A CPU cores for phones, slabtops will be 64-bit-only, snub 32-bit theregister.com. 8.10.2020. Viitattu 11.10.2020. (englanniksi) 
  41. NEON ARM. Viitattu 16.2.2017.

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=ARM&oldid=22962059
Luokat:
Piilotettu luokka:

[8]ページ先頭

©2009-2025 Movatter.jp