ARM
- l`rby@
- Belaruskaia (tarashkevitsa)
- Catala
- Cestina
- Dansk
- Deutsch
- Ellenika
- English
- Espanol
- Eesti
- Euskara
- frsy
- Francais
- `bryt
- hindii
- Magyar
- Bahasa Indonesia
- Italiano
- Ri Ben Yu
- knndd
- hangugeo
- Latviesu
- mlyaallN
- Nederlands
- Norsk bokmal
- Polski
- Portugues
- Runa Simi
- Romana
- Russkii
- Srpskohrvatski / srpskokhrvatski
- Simple English
- Slovencina
- Slovenscina
- Shqip
- Srpski / srpski
- Svenska
- Turkce
- Ukrayins'ka
- Tieng Viet
- Wu Yu
- Yue Yu
- Zhong Wen
| ARM | |
|---|---|
| Perustietoja | |
| Kehittaja | Acorn Computers, Arm |
| Valmistaja | Samsung, Texas Instruments |
| Arkkitehtuuri ja luokitus | |
| Arkkitehtuurityyppi | RISC |
| Osoiteavaruus | 32-bit / 64-bit |
| Tavujarjestys | Bi-endian |
| Lisenssi | suljettu, kaupallinen |
| Infobox OK | |
ARM (lyhenne aluksi sanoista Acorn RISC Machine, myohemmin sanoista Advanced RISC Machine[1]) on mikroprosessoriarkkitehtuuri, jonka brittilainen tietokonevalmistaja Acorn Computers kehitti 1980-luvun puolivalissa.[2] Arkkitehtuuriin kuuluu 32- ja 64-bittisia suorittimia. ARM on pitkaikaisimpia RISC-arkkitehtuureja ja nykyisin suosittu etenkin kammentietokoneiden, matkapuhelimien ja sulautettujen jarjestelmien suorittimissa. Se on maailman eniten valmistettu 32-bittinen suoritinarkkitehtuuri: alkuvuodesta 2007 ARM-suorittimia oli valmistettu viisi miljardia kappaletta, ja mm. 90 % matkapuhelimista kayttaa niita.[3][4] Vuonna 2014 luku oli kymmenkertaistunut yli viiteenkymmeneen miljardiin.[5]
Historia
[muokkaa | muokkaa wikitekstia]ARM-suoritin kehitettiin korvaamaan MOS 6502, jota Acorn Computers kaytti Acorn Atomissa ja BBC Microssa.[6] Prosessorin suunnittelivat Sophie Wilson ja Steve Furber.[7][8] Acorn Computersin Hauser ja Curry olivat vakuuttuneita, etta mikropiirisuunnitteluun kannatti panostaa vaikka niita ei valmistaisi itse vaan jotta yrityksella olisi paremmin tietoa liiketoiminnan kannalta oleellisesta asiasta.[8] Yritykseen hankittiin mikropiirien suunnitteluun kolme henkiloa seka tyokalut ja tyoasemat.[8] Lisaksi Hauser esitti Wilsonille ja Furberille IBM:n esittamia ideoita.[8] Wilson ja Furber vierailivat Western Design Centerissa, jossa Bill Mensch tyoskenteli piirisuunnitelman parissa: projektin pieni mittakaava rohkaisi Wilsonia ja Furberia kehittamaan prosessorin itse.[8][9] Wilson suunnitteli kaskykannan ja Furber muodosti siita tehtaalle valmistukseen lahetettavan tiedon (tape-out).[9] 18 kuukautta myohemmin heilla oli toimiva ARM.[9][10] Virran kaytto ei aluksi ollut tarkeaa, mutta halpa hinta oli ja kaytettyjen materiaalien johdosta virrankaytto piti olla alle yhden watin.[10] Pienen transistorimaaran myota piiri ei kayttanyt paljoa virtaa ja toimi viileampana kuin monet muut, joista tuli myohemmin hyodyllisia ominaisuuksia mobiililaitteiden kannalta.[6]
Prosessori alkoi tutkimusprojektina, jonka ensimmaiset naytekappaleet saatiin 26. huhtikuuta 1985.[10][1] Ensimmaiset mallit valmistettiin 3 mikrometrin VLSI-tekniikalla ja se tarvitsi alle 25 000 transistoria.[1] ARM1:n korvasi nopeasti ARM2, joka oli ensimmainen tuotantoversio ja vain 30 000 transistoria.[1] ARM2:n kaskykanta oli parempi suorituskyvyn maksimoimiseen ja siina oli 32-bittinen datavayla, 26-bittinen osoitevayla ja 16 rekisteria.[1] ARM2:ssa ei ollut piirilla valimuistia.[1]
Ensimmainen ARM-prosessoria kayttava tuote oli ARM Development System (BBC Micron laajennus[10]), jota seurasi Acorn Archimedes vuonna 1987.[1][11] Vuonna 1990 kehitys siirtyi Acornilta uuteen yhtioon.[12]
ARMista tuli jarjestelmapiirille sopiva: koska varsinainen prosessori ei tarvitse paljoa tilaa voidaan samalle piirille jaava tila kayttaa muihin tarkoituksiin.[11] Apple kaytti ARMia Apple Newtonin prototyyppeihin ja paatyi ostamaan osuuden yhtiosta.[11]
ARM-suorittimet ovat olleet 32-bittisia (32-bittinen leveys ja osoiteavaruus) ARMv3:sta lahtien: tata edeltavat mallit kayttivat 26-bittista osoiteavaruutta.[13] Nokian tarpeita varten ARM:iin suunniteltiin 16-bittinen Thumb-kaskykanta, jolloin 32-bittista suoritinta voitiin kayttaa vahemman muistia vaativilla kaskyilla: tama julkaistiin ARM7-versiossa, josta tuli menestystuote.[14]
64-bittinen ARM-suoritinsarja on julkaistu lokakuussa 2011.[15] Armv8 toi uuden kaskykannan lisaksi muutoksia rekistereihin seka 64-bittisen virtuaalisen osoiteavaruuden.[16]
Armv9-arkkitehtuuriversio on julkaistu maaliskuussa 2021.[17] Armv9 jatkaa Armv8:n tuoman 64-bittisen kaskykannan kanssa ja lisaa laajennuksia.[16] Uutena Armv9:ssa on koneoppimisen kayttoon suunnattu eri tarkkuuksien liukuluvut (kuten bfloat16) matriisien laskentaan seka digitaalisen signaalinkasittelyn parannukset.[17] Armv9:ssa on SIMD-tyyppisen vektoriyksikon Scalable Vector Extensions toinen versio (SVE2).[16][18]
Valmistajat
[muokkaa | muokkaa wikitekstia]ARM-suorittimia suunnitteleva Arm ei valmista ARM-suorittimia, vaan on keskittynyt vain niiden suunnittelemiseen ja lisensoi niiden arkkitehtuurin ja valmistusoikeudet useille muille yrityksille kuten Samsungille (katso Exynos), Texas Instrumentsille (katso OMAP), Motorolalle (katso DragonBall MX), Qualcommille (katso Qualcomm Snapdragon) ja Applelle (katso Apple M1).
Ampere Computing suunnittelee pilvipalveluita tarjoaville yrityksille suunnattuja Altra-suorittimia, jotka perustuvat ARM-suorittimille.[19]
Suuret pilvipalveluja tuottavat yritykset Amazon ja Google ovat kertoneet omista ARM-suorittimistaan. Yritykset ovat kertoneet paremmasta suorituskyvysta ja pienemmasta virrankulutuksesta omissa testeissaan. Amazonin ja Googlen ARM-suorittimet perustuvat Armin Neoverse-suunnitteluun.[20][21][22][23]
ARM-kaskykannan ominaisuuksia
[muokkaa | muokkaa wikitekstia]ARM soveltuu pienikokoisiin laitteisiin hyvin, koska sen voi toteuttaa suhteellisen vahaisella logiikkamaaralla tehokkuuteensa nahden. Esimerkiksi ARM2:ssa oli vain noin 30 000 transistoria, mutta se oli silti nopeampi kuin samalla kellotaajuudella ajettu Motorola 68000, jossa transistoreja oli noin 68 000. Pienesta koostaan huolimatta ARM-prosessorit ovat varteenotettavia prosessoreita, koska ne voivat sisaltaa esimerkiksi muistinhallintayksikon (MMU), joka mahdollistaa kehittyneiden kayttojarjestelmien ajamisen.
ARM-kaskykanta on RISC-tyyppinen load-store-arkkitehtuuri, jossa on suuri maara rekistereita ja pieni maara komentoja.[13] Operaatiot tehdaan rekisterien valilla. Muistia kasittelevat vain muistinlataus- ja tallennuskaskyt. ARM sisaltaa kuitenkin myos joukon RISC-kantaa ilmaisuvoimaisempia kaskyja, kuten kaskyt pinon kayttamiseen. Lisaksi normaaleihin aritmeettisiin kaskyihin voidaan liittaa toisen parametrin bittien siirto (shiftaus). Miltei jokainen kasky voi olla ehdollinen, eli kasky voidaan joko suorittaa tai olla suorittamatta riippuen jonkun ehtorekisterin arvosta. Sen avulla voidaan valttaa osa ohjelmakoodin ehdollisista haarautumisista, jolla saadaan pidettya suorittimen liukuhihnat taynna ja parannettua valimuistin osumatarkkuutta, joka parantaa suorituskykya.
Muistin osoitusmoodien ollessa rajattu kaikki kaskyt voidaan koodata tasmalleen 32-bitilla.[13] Kaskyt voidaan tasata muistiosoitteisiin ja kaskyn purkaminen voidaan toteuttaa hyvin yksinkertaisesti.[13] Vertailun vuoksi x86-suorittimissa kaskykoko vaihtelee ja ne ratkaisevat haittapuolia purkamalla kaskyt yksinkertaisempiin RISC-tyyppisiin mikro-operaatioihin.[13]
Normaalit ARM-kaskyt ovat 32 bittia pitkia.[24][25] ARMv4T ja myohemmat sisaltavat 16-bittisen kaskykannan nimelta Thumb.[24] Thumb-kaskykannassa on suurin osa 32-bittisesta toiminnallisuudesta, mutta jotkin operaatiot vaativat useampia kaskyja.[24] Thumb mahdollistaa tiiviimman ohjelmakoodin suorituskyvyn kustannuksella.[24] ARMv6T sisaltaa 32-bittisen Thumb-kaskykannan (Thumb-2).[24] ARMv7T maarittelee ThumbEE-kaskykannan laitteella luotua koodia varten.[24] ARM-tilassa kaskyt tallennetaan sanapituuteen tasattuihin osoitteisiin, mutta Thumb- ja ThumbEE-tiloissa kaskyt voivat olla puolisanaan tasattuja.[25] Thumb-tilassa ohjelmamuistia seka ohjelmamuistin ja prosessorin valista muistivaylaa tarvitaan vahemman ja prosessorin toiminta on rajoittunutta: esimerkiksi vapaasti kaytettavien rekisterien maara on rajoitettu kahdeksaan, eika muiden kuin hyppykaskyjen suoritus voi olla ehdollista.
ARMissa on 30 kappaletta 32-bittisia yleiskayttoisia rekistereita, joista 15 on jatkuvasti saatavilla riippuen suorittimen tilasta.[26] Ohjelmalaskuria (PC, R15) ei lasketa mukaan yleiskayttoisiin rekistereihin.[26] Pino-osoitin (SP, R13) ja linkkirekisteri (LR, R14) ovat erityiskayttoon tarkoitettuja.[26] Osa rekistereista on kaytettavissa vain eritysoikeustilassa.[27] Useimmat 16-bittiset Thumb-kaskyt voivat kayttaa vain kahdeksaa ensimmaista rekisteria (R0-R7), joita kutsutaan alemmiksi rekistereiksi (Lo).[28] Ylemmat rekisterit (Hi) ovat R8-R12, SP, LR ja PC.[28] 32-bittisessa Thumb-tilassa kaikki kaskyt voivat kayttaa rekistereita R0-R12 seka LR-rekisteria.[28] Useimmat Thumb-kaskyt eivat voi kayttaa ohjelmalaskuria (PC).[28] ARM-tilassa kaikki kaskyt voivat kayttaa rekistereita R0-R12, SP ja LR seka useimmat voivat kayttaa ohjelmalaskuria PC.[28]
Tavujarjestys on bi-endian ARM6-malleista eteenpain, joka tarkoittaa etta 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: kayttajatila tavallisille ohjelmille ja jarjestelmatila (system mode) kayttojarjestelman koodille.[13] ARMv7:sta lahtien mukana on laitteistotuki hypervisor-virtualisoinnille, joka ARMv8:ssa on osa arkkitehtuuria suoritustasonimella EL2.[13][31] EL1-suoritustaso on kayttojarjestelman ytimelle ja EL0-taso ilman eritysoikeuksia suoritettavalle koodille.[31] Lisaksi on toimintojen avuksi on kehitetty uusia keskeytyskasittelijoita (GIC) seka IOMMU-tuki (SMMU ARM-arkkitehtuurissa).[31]
VFP apusuoritin sisaltaa tuen liukulukuaritmetiikalle.[32] VFP ja NEON-laajennus jakavat rekistereita.[32][33][34]
ARM-suorittimien big.LITTLE-arkkitehtuuri yhdistaa kahden tyyppista erikoistunutta prosessoria, jossa "LITTLE" tahtaa energiatehokkuuteen (pieneen virrankayttoon) ja "big" laskentatehoon. Arkkitehtuuri on suunnattu tilanteisiin, joissa kaytto vaihtelee kuten mobiililaitteissa, joissa on pitkia vahaisen virrankayton jaksoja ja hetkittaisia suuremman suorituskyvyn tarpeita.[35]
ARM-suoritinytimia
[muokkaa | muokkaa wikitekstia]- ARM1 (1985), prototyyppi
- ARM2 (1986), jota kaytettiin Acorn Archimedes -mikrotietokoneissa
- ARM3
- ARM6 (1991), jota kaytettiin Apple Newton -PDA-laitteessa
- ARM7, jota kaytettiin muun muassa GameBoy Advancessa
- StrongARM, jota valmisti aluksi DEC, ja jonka valmistusoikeudet myytiin sittemmin Intelille
- Intel XScale
- ARM9, joka on mm. hyvin monessa PDA:ssa kaytetyn OMAP1xxx-piirin sisalla
- ARM11, loytyy mm. OMAP2xxx-piirin sisalta.
- Cortex A8, sisaltaa haarautumisenennustuksen, kaytossa mm. iPhone 3GS:ssa ja Nokia N900:ssa.
- Cortex A9, ensimmainen kaskyja uudelleenjarjesteleva ARM-suoritin. Loytyy mm. Nvidian Tegra 2 -piirin sisalta.
- Scorpion, Qualcommin suunnittelema ARM-ydin. Suorittaa kahta kaskya rinnakkain ja uudelleenjarjestelee kaskyja rajoitetusti. Kaytossa mm. useimmissa Windows Phone 7-puhelimissa olevissa SnapDragon-piireissa.
- Cortex A5, uudempi pienempi, vahavirtaisempi ja suorituskyvyltaan heikompi malli.
- Cortex A7, korvasi Cortex A8n, vahavirtaisempi mutta nopeampi.
- Cortex A15, selvasti jareampi ydin, pystyy suorittamaan kolmea kaskya rinnakkain ja pystyy uudelleenjarjestelemaan kaskyja.
- Krait, Qualcommin uudempi ARM-ydin. Suorittaa kolmea kaskya rinnakkain ja uudelleenjarjestelee kaskyja. Kaytossa mm. useimmissa Windows Phone 8-puhelimissa olevissa SnapDragon-piireissa.
- Swift, Applen suunnittelema ARM-ydin. Kaytossa mm. iPhone 5:ssa. Suorittaa kolmea kaskya rinnakkain. [36]
- Cortex A12, korvasi Cortex A9n, rakenteeltaan samantyylinen mutta suorituskyvyltaan parempi.
- Cortex A17, paranneltu Cortex A12.
- Cyclone, Applen suunnittelema ja kayttama ARM-ydin. Kaytossa mm. iPhone 5S:ssa, pystyy suorittamaan jopa kuutta kaskya rinnakkain.[36]
- Cortex-R-sarja on tarkoitettu deterministiseen kayttoon reaaliaikajarjestelmissa[37]
- Cortex-M-sarja on tarkoitettu alhaisen hinnan ja virrankayton kohteisiin mikrokontrollereissa[38]
ARM 64-bit
[muokkaa | muokkaa wikitekstia]64-bittinen ARM-suoritinsarja on julkaistu lokakuussa 2011.[15]
Sarjan ensimmainen malli on ARMv8-A, johon on kaksi paivitysversiota: ARMv8.1-A ja ARMv8.2-A.
64-bittinen ARM-arkkitehtuuri tunnetaan nimella AArch64 ja se kayttaa A64-kaskykantaa.[39]
Lokakuussa 2020 kerrottiin etta Cortex-A-sarjan suorittimet ovat vuodesta 2022 alkaen vain 64-bittisia ja tuki 32-bittiselle ARM32-kaskykannalle jaa niista pois.[40] Cortex-R- ja Cortex-M-sarjojen suorittimet ovat viela 32-bittisia.[40] ARM32-kaskykannassa on kaskyja, jotka ovat vaikeita spekulatiiviselle suoritukselle ja vaikeasti optimoitavissa liukuhihnalle.[40]
NEON
[muokkaa | muokkaa wikitekstia]NEON (tai engl. Media Processing Engine, MPE) on ARM-suorittimien vastine SIMD-kaskylaajennuksille.[41]
Mali
[muokkaa | muokkaa wikitekstia]- Paaartikkeli: Mali (grafiikkasuoritin)
Mali on ARM Holdingsin grafiikkasuoritinsarja (GPU).
Lahteet
[muokkaa | muokkaa wikitekstia]- | a b c d e f g Markus Levy: The History of The ARM Architecture: From Inception to IPO (PDF) reds.heig-vd.ch. Viitattu 21.8.2022. (englanniksi)
- | Brian Santo: 25 Microchips That Shook the World spectrum.ieee.org. 1.5.2009. Viitattu 23.10.2021. (englanniksi)
- | http://www.arm.com/about/newsroom/16535.php
- | http://www.technologyreview.com/web/21675/?a=f (Arkistoitu - Internet Archive)
- | ARM Holdings plc Annual Report 2013: Strategic Report (PDF) (Sivu 3) financialreports.arm.com. Arkistoitu 29.8.2014. Viitattu 1.6.2016. (englanniksi)
- | a b Jason Torchinsky: How an obscure British PC maker invented ARM and changed the world arstechnica.com. 20.12.2020. Viitattu 18.7.2022. (englanniksi)
- | Chris Bidmead: ARM creators Sophie Wilson and Steve Furber theregister.com. 2.5.2012. Viitattu 21.8.2022. (englanniksi)
- | a b c d e Chris Bidmead: ARM creators Sophie Wilson and Steve Furber - Part Two: the accidental chip theregister.com. 3.5.2012. Viitattu 21.8.2022. (englanniksi)
- | a b c Chris 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)
- | a b c d Chris 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)
- | a b c Chris 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)
- | Arm Holdings: what is it and does its sale to Nvidia matter? theguardian.com. 14.9.2020. Viitattu 9.10.2020. (englanniksi)
- | a b c d e f g The ARM architecture - yesterday, today, and tomorrow linux-magazine.com. Viitattu 11.10.2020. (englanniksi)
- | Jeremy Reimer: A history of ARM, part 2: Everything starts to come together arstechnica.com. 21.11.2022. Viitattu 1.12.2022. (englanniksi)
- | a b ARM Discloses Technical Details Of The Next Version Of The ARM Architecture ARM. Viitattu 24.1.2017.
- | a b c Andrei Frumusanu: Arm Announces Armv9 Architecture: SVE2, Security, and the Next Decade anandtech.com. 30.3.2021. Viitattu 17.2.2022. (englanniksi)
- | a b Arm pulls the sheets off its latest Armv9 architecture with added AI support, Realms software isolation theregister.com. 30.3.2021. (englanniksi)
- | Berenice Mann: New Technologies for the Arm A-Profile Architecture community.arm.com. 18.4.2019. Viitattu 17.2.2022. (englanniksi)
- | 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)
- | Dylan Martin: AWS follows AMD and Intel down the specialized chips path theregister.com. 30.11.2022. Viitattu 2.12.2022. (englanniksi)
- | Tim Anderson: Graviton 3: AWS attempts to gain silicon advantage with latest custom hardware theregister.com. 6.12.2021. Viitattu 10.4.2024. (englanniksi)
- | Tobias Mann: Google joins the custom server CPU crowd with Arm-based Axion chips theregister.com. 9.4.2024. Viitattu 10.4.2024. (englanniksi)
- | Ron Amadeo: Google Cloud rolls out self-designed Arm chips in its data centers arstechnica.com. 10.4.2024. Viitattu 10.4.2024. (englanniksi)
- | a b c d e f ARM, Thumb, and ThumbEE instruction sets developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | a b Instruction set overview developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | a b c General-purpose registers developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | Data Types azeria-labs.com. Viitattu 12.2.2022. (englanniksi)
- | a b c d e Register accesses developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | Memory endianness ARM. Viitattu 1.2.2017.
- | a b Programmer's Model for Big-Endian ARM netwinder.osuosl.org. Viitattu 1.2.2017.
- | a b c Understanding virtualization facilities in the ARMv8 processor architecture embedded.com. 20.9.2018. Viitattu 11.11.2020. (englanniksi)
- | a b VFP coprocessor developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | VFP views of the extension register bank developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | Extension register bank mapping developer.arm.com. Viitattu 12.2.2022. (englanniksi)
- | Processing Architecture for Power Efficiency and Performance arm.com. Viitattu 3.10.2022. (englanniksi)
- | a b http://www.anandtech.com/show/7910/apples-cyclone-microarchitecture-detailed
- | https://developer.arm.com/ip-products/processors/cortex-r
- | https://developer.arm.com/ip-products/processors/cortex-m
- | ARMv8 Instruction Set Overview ARM. Arkistoitu 17.2.2017. Viitattu 16.2.2017.
- | a b c Heads 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)
- | NEON ARM. Viitattu 16.2.2017.
Aiheesta muualla
[muokkaa | muokkaa wikitekstia]- Kuvia tai muita tiedostoja aiheesta ARM-mikroprosessorit Wikimedia Commonsissa