UUSITEKNOLOGIA 2021 SPECIAL ARM on maailman suosituin RISC-prosessoriarkkitehtuuri, jota käytetään laajalti kännyköiden ja pientietokoneiden lisäksi sulautetuissa järjestelmissä. Uusin on 64-bittinen ARM v9. Samalla kilpailijat virittelevät omia osin kilpailevia versioitaan. Tässä laaja erikoisartikkeli linkkeineen.
Teksti Tomi Engdahl, kuvat valmistajat
Brittiläistaustaisen ARM:n alkuvuodesta julkistama ARMv9 on kokonaan uusi ARM-arkkitehtuuri lähes vuosikymmeneen. Lisäksi uusi ysiversio on suunniteltu kattamaan kaikki sovellusalueet kännyköistä suurteholaskentaan. Ensimmäisiä piirejä odotetaan jo ensi vuoden aikana.
ARM v9 -arkkitehtuurin lanseeraus tulee merkitsemään samalla uutta aikakautta ARMille ja sen kumppaneille. sillä ARM siirtyy v9:n mukana 64-bittisyyteen jättäen taakseen vanhan 32-bittisen muodon. Yrityksen vision mukaan yrityksen kaikki Cortex-A-suorittimen matkaviestimet ovat 64-bittisiä vuoteen 2023 mennessä.
Uuden v9:n muita myyntisanoja ovat tekoäly, pilvipalvelut ja turvatoiminnot. Siinä keskitytään erityisesti suorituskykyyn, turvallisuuteen ja koneoppimiseen (ML). Uusi ARM v9 prosessiarkkitehtuuri on suunniteltu vastaamaan tekoälyn, tietoturvan ja erikoistuneen tietojenkäsittelyn tulevaisuuden tarpeisiin.
ARM v9 lupaa tarjota lisää prosessointivoimaa tietojenkäsittelyyn. Suuremman laskentakapasiteetin lisäksi v9 tulee olemaan myös aiempia versioita energiatehokkaampi. Uuden version avulla pitäisi suorituskyvyn kasvavan seuraavien kahden sukupolven piiriversioissa yli 30 prosenttia. Kaikkia ohjelmistoja ei silti tarvitse uusia, koska uusinkin versio on täysin taaksepäin yhteensopiva
Joukko uusia prosessoriytimiä
ARM:n v9-arkkitehtuurin alkuvuoden lanseerauksen lisäksi yritys esitteli toukokuussa jo joitakin v9-arkkitehtuuriin perustuvia ytimiä. Julkaistut prosessoriytimet kuuluvat laiteluokkaan sovellusprosessorit ja yleiskäyttöiset prosessorit (A).Vielä ei ole v9-ytimiä reaaliaikasovelluksiin (R) tai sulautettuihin mikro-ohjaimiin (M).
Uusia sovellusprosessoreita ovat 64-bittiset versiot Cortex-X2, Cortex-A710 ja Cortex-A510, joiden kautta esimerkiksi Android-puhelimet siirtyvät kokonaan 64-bittisiksi. Lippulaivaversio on ARM Cortex-X2, joka on tarkoitettu skaalattavaksi premium-älypuhelimista kannettaviin tietokoneisiin.
Cortex-X2-yritimen on kerrottu tarjoavan 30 prosentin suorituskyvyn parannuksen verrattuna nykyisiin kalliimman hintaluokan Android-puhelimiin. Cortex-X2 on myös seuraaja viime vuonna julkistetulle X1-piirille. Sen yhden säikeen suorituskyvyn luvataan olevan suurempi kuin parin vuoden takaisessa tyypillisessä vuoden 2020 kannettavassa tietokoneessa.
Cortex-A710 pystyy tarjoamaan myös kymmenen prosenttia paremman suorituskyvyn kuin A78-edeltäjällä, mutta se tekee tämän 30 prosenttia energiatehokkaammin. Tämä merkitsee mobiililaitteiden käyttöajan selvää pidentymistä.
Myös Cortex-A510 on erittäin energiatehokas prosessoriydin, jonka roolina on suorittaa energiatehokkaasti toimintoja, jotka eivät kuitenkaan tarvitse kaikkein raskainta laskenta. Esimerkiksi matkapuhelimien LITTLE+BIG -arkkitehtuurissa käytetään A510:sta yhdessä tehokkaampien sovellusytimien kanssa.
ARM kertoo, että A510 on melkein yhtä nopea kuin muutaman vuoden takaiset pääprosessorisirut, mikä tekee siitä yksin mahdollisen vaihtoehdon alemman tason puhelimin ja älykelloihin. Uusien prosessoriytimien lisäksi myös Mali-grafiikan suorituskykyä on kasvatettu.
Uusi entistä tehokkaampi grafiikan lippulaivamalli Mali-G710-piiri on ARM:n mukaan noin 20 prosenttia nopeampi reaaliaikaisen grafiikan tuottamisessa ja tarjoaa 35 prosenttia enemmän tehoa koneoppimiseen. Lippulaiva Mali-G710 on suunniteltu erityisesti kevyisiin kannettaviin tietokoneisiin kuten Chromebook ja huippuluokan puhelimille.
Lisäksi ARM on julkaissut ensimmäiset palvelimiin suunnatut ARMv9-arkkitehtuuriin perutuvat CPU-ytimensä. Niitä ovat Neoverse V1 (“Zeus”) ja N2 (“Perseus”), joista Neoverse V1 -ytimet on tarkoitettu ensisijaisesti supertietokoneisiin, eli niin sanottuun suurteholaskentaan. Neoverse N2 on puolestaan palvelimiin ja verkkoprosessoreihin sopiva prosessoriydin.
Tekoäly ja signaalikäsittely tehokkaammaksi
Uusi Armv9-arkkitehtuuri on suunnattu mobiililaitteiden lisäksi myös esineiden internetin IoT-laitteita varten. ARM näkee, että lähes kaikissa uusissa IoT-sovelluksista tarvitaan jonkinlaisia tekoälyominaisuuksia muun muassa äänenkäsittelyssä, konenäkösovelluksissa, robotiikassa ja älykkäissä antureissa.
Esimerkiksi ARMv9-arkkitehtuurin Scalable Vector Extension 2 (SVE2) -teknologia parantaa koneoppimisen (ML) ja digitaalisen signaalin käsittelyn (DSP) suorituskykyä. Scalable Vector Extension versio kaksi (SVE2) on seuraaja ARMv8:n SVE-tekniikoille.
Uudet signaalinkäsittelylaajennukset sopivat suurteholaskennan lisäksi 5G-järjestelmien, äänen käsittelyn sekä virtuaalisen ja lisätyn todellisuuden signaalinkäsittelytarpeisiin. SVE2 korvaa aiemman SVE-toteutuksen lisäksi NEON SIMD -ohjeet uudella toteutuksella, mutta silti NEON-ohjeita tuetaan taaksepäin yhteensopivuuden vuoksi.
Uusi SVE2:n merkittävä etu NEONiin nähden se, että se skaalautuu taustalla olevaan laitteistoon niin että sama koodi toimii useassa eri sirumallissa. Se on myös erittäin tärkeä sovelluksille, jotka käsittelevät tietoja algoritmeilla, jotka hyötyvät SIMD-pohjaisesta rinnakkaislaskennasta. SVE2 ominaisuuksia tukevaa koodia voi tuottaa GCC- ja LLVM-kääntäjillä.
Parannettu muistin turvallisuus
Uudella versiolla ARM on vastannut myös kasvaviin vaatimuksiin uusilla tietoturvallisuutta parantavilla laitteisto-ominaisuuksilla. Muistiin liittyvien haavoittuvuuksien lieventäminen on nykyisin erittäin tärkeää turvallisuuden parantamiseksi kaikkialla maailmassa.
Päivitetty v9-arkkitehtuuri keskittyy turvalliseen suoritukseen ja lokerointiin. Siinä on mukana myös v8.5 -versiossa julkaistut Memory Tagging Extension (MTE) -mekanismit laittomien muistitoimintojen seuraamiseksi laitteistotasolla.
Tämä MTE-laitteistototeutus tekee sellaisia muistitarkastuksia kuin puskurin ylivuotojen havaitseminen sekä rajojen ulkopuolelle osuvien kirjoitusten ja lukujen havaitsemiseksi. Esimerkiksi Google näkee, että MTE-tekniikan avulla voidaan parantaa Android-laitteiden turvallisuutta.
Android käyttöjärjestelmässä ARM: n Memory Tagging Extension (MTE) auttaa käsittelemään muistin turvallisuusongelmia laitteistotasolla. Googlen Android 11:stä alkaen on 64-bittisille prosesseille kaikilla muistikasan allokoinnilla toteutuksen määrittämä tunniste.
MTE toimii merkitsemällä kunkin pinon, kasan ja globaalin muistin allokoinnin muistin 56-59 osoitebittien avulla. Laitteisto tarkistaa automaattisesti, että oikeaa tunnistetta käytetään jokaisessa muistikäytössä. Tämä parantaa laitteiston muistin suojausta merkittävästi.
Tehokkaampia suojauksia tulossa
Uuden arkkitehtuurin luottamuksellinen CCA (Confidential Compute Architecture) -osuus on suunniteltu suojaamaan koodin ja datan osia pääsyltä tai muokkaukselta käytön aikana, jopa etuoikeutetulta ohjelmistolta (kuten käyttöjärjestelmäytimiltä ja hypervisorilta).
CCA-tekniikassa laitteessa olevien eri ohjelmistojen suoritus tehdään laitteistopohjaisessa suojatussa ympäristössä. Se lupaa tarjota tarjoaa läpäisemättömän palomuurin samalla käyttöjärjestelmällä toimivien sovellusten välillä.
CCA käyttää alueita (Realms), jotka ovat dynaamisesti luotuja suojauksia, jotka suojaavat arkaluontoisia tietoja ja koodia tallennuksen, käytön ja siirron aikana. ARMv9:ssä alueita voidaan pitää eräänlaisena turvasäilönä, johon koodi voidaan suorittaa vaikuttamatta muuhun järjestelmään.
CCA käyttää Realms-käsitettä alueesta, joka on erillinen sekä turvallisesta että suojaamattomasta maailmasta. Osa perinteisesti hypervisorin hoitamista turvallisuustoiminnoista on siirretty uudelle Realm Managerille, joka tukee muistin käytön valvonnasta sekä tukee muistiin talletetun tiedon kryptografista salausta. Tekniikan voi nähdä laajennuksena laitteistopohjaiselle TrustZone-teknologialle.
Esimerkiksi yrityssovellukset voisivat käyttää Realmsia suojaamaan arkaluontoisia tietoja muulta järjestelmältä sen ollessa käytössä, levossa ja kuljetuksen aikana. Realm-tekniikkaa on mahdollista hyödyntää paikallisen suojauksen lisäksi tietoturvallisessa tiedonsiirrossa ARM-laitteesta samaan prosessoriin perustuvaan pilvipalvelimeen.
ARM näkee ARMv9-pohjaiset ytimet kaikessa älypuhelimista palvelimiin ja Microsoft Azure on mukana Realmsin kehittämisessä. Silti CCA Extension ei ole vielä täysin valmis ARM:n piireihin integroitavaksi, vaan sitä täysin tukevien piiritoteutusten odotetaan tulevan markkinoille seuraavan kahden tai kolmen vuoden aikaan.
ARM v9-pohjaiset lopputuotteet
Monet ARM-pohjaisia piirejä valmistavat yritykset ovat kiinnostuneita ARM v9 -pohjaisten piirien tuomisesta markkinoille, mutta niiden suunnittelu ja markkinointi ottaa oman aikansa. Uuteen arkkitehtuuriin perustuvia piirejä ei ole vielä ole saatavana kuin muutama, mutta niitä odotetaan tulevan markkinoille saataville laajasti vuoden 2022 aikana.
Ensimmäisinä Samsung, Oppo, Vivo, Google (Androidille) ja Xiaomi ovat kertoneet kiinnostuksestaan ottaa ARM v9-versiot käyttöön jopa nopealla aikataululla. Useimmat kännykkäpuolen ARM v9 -pohjaiset piiritä tulevat mitä todennäköisimmin perustumaan ARMin Total Compute -ratkaisuun, jossa käytetään Cortex-X2-, Cortex-A710- ja Cortex-510-yritimiä.
Mediatekin marraskuussa julkistama Dimensity 9000 perustuu ARM v9 prosessoritekniikkaan ja sen valmistaa taiwanilainen TSMC neljän nanometrin sirutekniikalla. Piirissä on yksi Cortex-X2-arkkitehtuurin ydin kolmen gigahertsin kellotaajuudella sekä kolme Cortex-A710-ydintä. Piiri tukee nopeaa LPDDR5X-muistia.
Samsung on ennakkotietojen mukaan tuomassa v9:een perustuvaa ja vielä nimeämätöntä piiriä Cortex-X1 perustuvan Exynos 2100 piirin seuraajaksi. Tällä hetkellä julkisuuteen vuotaneiden tietojen perusteella uusi piiri kantaisi nimeä Exynos 2200 (E2200) ja käyttäisi uusia CPU-ytimiä: Cortex-X2, Cortex-A710 ja Cortex-A510. Exynos 2200:n grafiikkapiiri perustuu AMD:n RDNA 2 -arkkitehtuuriin. Exynos 2200 piiriä on jo testattu Samsung Galaxy S22 Ultra puhelimen esiversiossa.
Taulukko 1: Uudet ARM:n v9 -pohjaiset prosessoripiirit
Piiri | Valmistaja | Sovellusalueet | Julkaisu | Suurin kellotaajuus |
Dimensity 9000 | MediaTek | 5G puhelin | Marraskuu 2021 | 3,05 GHz |
Exynos 2200 | Samsung | 5G puhelin | Ei vielä saatavilla (arvio Q1 2022) | |
Snapdragon 8 Gen 1 | Qualcomm | 5G puhelin, tietokone | Joulukuu 2021 | 3 GHz |
Apple M2 | Apple | Tietokone | Ei saatavilla (arvio kesä 2022) |
Apple siirtyi ensimmäisen käyttämään omaa ARM-suunnittelua tietokoneissaan, mutta nyt kisaan on tulossa Qualcomm ensi vuoden aikana omilla ARM:n v9-pohjaisilla ratkaisuilla. Qualcommin SM8450 on tietokoneisiin viritetty ratkaisu Snapdragon 888-piiristään (SM8350). Se tulee tarjolle kännyköihin myös Snapdragonin 8-sarjaan. Ensimmäinen joulukuussa 2021 julkaistu prosessori on nimellä Snapdragon 8 Gen 1.
Apple ei kertonut viel- julkisuuteen jatkosta M-sarjan suoritinpiireilleen. Lisäksi sillä on varmaan tarpeeksi tekemistä edelleen ARM M1-, M1X- ja tulevan M2-suorittimien kehittämisessä ja tukemisessa. Julkisuudessa on mainittu kuitenkin, että ARM:n 9v-perustuvan M2-ratkaisun odotetaan tulevan markkinoille vuoden 2022 kesällä.
RISC-V on tulossa kisaan
Uusin kisaaja on vuonna 2010 Berkeleyn yliopistossa kehitetty avoin RISC-V (RISC-Five) -arkkitehtuuri, jonka suurin etu on halvemmat kustannukset eli OEM-valmistajat voivat käyttää määrittelyä suunnitteluun ja valmistukseen joko kokonaan ilman tai pienillä rojaltimaksuilla.
Nykyinen RISC-V tukee 32- ja 64-bittisiä osoiteavaruuksia sekä Linuxia 4.15-versiosta lähtien. Ensimmäisenä RISC-V on saavuttanut suosiota juuri sulautetuissa sovelluksissa. Esimerkiksi Western Digital valmistaa noin miljardi ydintä, joita se käyttää omissa datantallennustuotteissaan.
Espressif ESP32-C3 on puolestaan RISC-V arkkitehtuuria käyttävä langaton IoT-piiri, joka seuraa hyvin suosittuja ESP8266 ja ESP32 piirejä. Mikro-ohjainsovelluksien lisäksi RISC-V-ytimiä on isojen asiakaskohtaisten ASIC-piirien sivuprosessoreina, mutta myös näytönohjaimissa ja koneoppimispiireissä.
Esimerkiksi RISC-V-pioneeri SiFiven mukaan sen prosessorit ottavat jo suorituskyvyssä koko ajan kiinni kilpailevia ARM- ja x86-arkkitehtuureita. Kesällä yritys julkisti tehokkaan RISC-V-pohjaisen prosessoriytimen, jonka se sanoo vastaavan suorituskyvyltään ARM:n Cortex-A75-ydintä (7 nm prosessilla 2.45 GHz SPECInt 2006 tulos 8.65/GHz).
SiFive on julkaissut myös päivitetyn P650, joka valmistajan mukaan tarjoaa 50 prosentin suorituskyvyn lisäyksen aiempaan P550 verrattuna ja vastaisi jo suorituskyvyltään ARM:n Cortex-A78 -ydintä. P650 prosessoriydin tulee saataville vuoden 2022 puoliväliin mennessä.
Joidenkin kehittäjien mukaan RISC-V voisi kehittyä jossain vaiheessa johtavien prosessorien kilpailijoiksi tietokoneissa ja jopa kännyköissä. RISC-V-ytimet ovat jo tehokkaita, mutta koko muu ympäristö on vielä jäljessä esimerkiksi Intelin tai ARM:n prosessoreihin verrattuna. Nähtäväksi jää voisiko RISC-V:sta tulla jossain vaiheessa kännyköihinkin ARM:n rinnalle, mutta tällä hetkellä RISC-V ei ole vielä valmis älypuhelimiin.
Artikkelin kirjoittaja Tomi Engdahl toimii Netcontrol Oy:ssä tuotekehitysinsinöörinä. Hänellä on pitkä kokemus sulautettujen ja IoT-ratkaisujen tietoturvaratkaisuista. Voit lukea lisää suorittimista hänen Uusiteknologia 2/2020-numeron PC-superprosessorit -artikkelista (LINKKI).
Uusiteknologia 1/2022 linkkipankkiin (LINKKI) on listattu jutussa käsiteltyjen ARM:n ja muiden valmistajien sivujen lisäksi ARM v9- ja Risc-V-tietoa. Linkkipankin kautta voit tutusta lisäksi kirjoittajan aiempiin nettisivulla ja näköislehdissä jukaistuihin suorittimiin ja mikro-ohjaimiin liittyviin artikkeleihin.
Tietolaatikko: ARM-suorittimien kehityskaari
- ARM Instruction Set Architectures (ISA) -versioiden määrä on muutaman vuoden välein. Niistä vanhin nykyään yleisesti käytössä oleva arkkitehtuuriversio on vuonna 2002 esitelty ARMv6.
- Esimerkiksi ARMv6 ISA (ARM11) on käytössä muun muassa alkuperäisistä Raspberry Pi SBC- ja Raspberry Pi Zero -laitteista (BCM2835). Cortex-M0 / M0+ / M1 mikro-ohjaimet perustuvat ARMv6-M arkkitehtuuriin.
- Vuonna 2005 esiteltiin ARMv7-arkkitehtuuri, joka toi prosessoriin tehokkaat Cortex-ytimet. Cortex-A-sarjan alkupään prosessorit A5-A17 perustuvat ARMv7-arkkitehtuuriin. Cortex-M3 toteuttaa ARMv7-M arkkitehtuurin, ja Cortex-M4/ Cortex-M7-pohjautuvat siitä kehitettyyn ARMv7E-M-arkkitehtuuriin.
- Mobiilimaailmassa ARM-arkkitehtuuri on edennyt jo kahdeksanteen versioonsa ARMv8. Sen merkittävin lisäys oli 64-bittisen Arch64-käskykannan laaja käyttöönotto, joka mahdollisti mobiilimaailman aloittamaan siirtymisen 64-bittiseen aikaan.
- Ensimmäiset ARMv8-pohjautuvat Cortex-prosessoriytimet olivat 32-bittinen A32 ja 64-bittinen A34. Mikro-ohjainpuolella Cortex-M23/M33/M35P perustuvat ARMv8-M arkkitehtuuriin ja Cortex-M55 uudempaan ARMv8.1-M-arkkitehtuuriin. ARMv8 arkkitehtuuria on laajennettu päivitysversioilla ARMv8.1, v8.2, v8.3, v8.4 ja v8.5.
- Arm tarjoaa myös hieman muunneltuja versioita ARMv8 ISA:ita, joita kutsutaan ”profiileiksi” eri laiteluokille – Sovelluksen ja yleiskäyttöiset prosessorit (A), Reaaliaikaiset (R) ja Mikrokontrollerit (M).
- Uusin tulossa oleva ARMv9 lisää monia uusia ominaisuuksia kuten vektorinkäsittelyä (vektorilaajennukset tai SVE) sekä digitaalista signaalinkäsittelyä (DSP) ja turvallisuutta luottamuksellisen laskennan arkkitehtuurin (CCA) avulla. Näiden lisäksi ARMv9 sisältää myös kaikki samat ominaisuudet, jotka lisättiin ARMv8 -päivitysversioissa.
Taulukko 2. ARM-piiriperheet ja versiot
Arkkitehtuuri | Ytimen sanan pituus | Ytimet | Profiili | |
Arm Ltd. | Kolmas osapuoli | |||
ARMv1 |
32 | ARM1 | Classic | |
ARMv2 | 32 | ARM2, ARM250, ARM3 | Amber, STORM Open Soft Core | Classic |
ARMv3 | 32 | ARM6, ARM7 | Classic | |
ARMv4 | 32 | ARM8 | StrongARM, FA526, ZAP Open Source Core | Classic |
ARMv4T | 32 | ARM7TDMI, ARM9TDMI, SecurCore SC100 | Classic | |
ARMv5TE | 32 | ARM7EJ, ARM9E, ARM10E | XScale, FA626TE, Feroceon, PJ1/Mohawk | Classic |
ARMv6 | 32 | ARM11 | Classic | |
ARMv6-M | 32 | ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1, SecurCore SC000 | Mikro-ohjain | |
ARMv7-M | 32 | ARM Cortex-M3, SecurCore SC300 | Apple M7 | Mikro-ohjain |
ARMv7E-M | 32 | ARM Cortex-M4, ARM Cortex-M7 | Mikro-ohjain | |
ARMv8-M | 32 | ARM Cortex-M23, | Mikro-ohjain | |
ARMv7-R | 32 | ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7, ARM Cortex-R8 | Reaaliaika | |
ARMv8-R | 32 | ARM Cortex-R52 | Reaaliaika | |
64 | ARM Cortex-R82 | Reaaliaika | ||
ARMv7-A | 32 | ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17 | Qualcomm Scorpion/Krait, PJ4/Sheeva, | Sovellus |
ARMv8-A | 32 | ARM Cortex-A32 | Sovellus | |
64/32 | ARM Cortex-A35, | X-Gene, Nvidia Denver 1/2, Cavium ThunderX, AMD K12, Apple Cyclone (A7)/Typhoon (A8, A8X)/Twister (A9, A9X)/Hurricane+Zephyr (A10, A10X), Qualcomm Kryo, Samsung M1/M2 (”Mongoose”) /M3 (”Meerkat”) | Sovellus | |
64 | ARM Cortex-A34 | Sovellus | ||
ARMv8.1-A | 64/32 | Cavium ThunderX2 | Sovellus | |
ARMv8.2-A | 64/32 | ARM Cortex-A55, | Nvidia Carmel, Samsung M4 (”Cheetah”), Fujitsu A64FX (ARMv8 SVE 512-bit) | Sovellus |
64 | ARM Cortex-A65, ARM Neoverse E1 (SMT), ARM Cortex-A65AE | Apple Monsoon+Mistral (A11) | Sovellus | |
ARMv8.3-A | 64/32 | Sovellus | ||
64 | Apple Vortex+Tempest (A12, A12X, A12Z), Marvell ThunderX3 (v8.3+)[88] | Sovellus | ||
ARMv8.4-A | 64/32 | Sovellus | ||
64 | Apple Lightning+Thunder (A13), Apple Firestorm+Icestorm (A14), Apple Firestorm+Icestorm (M1) | Sovellus | ||
ARMv8.5-A | 64/32 | Sovellus | ||
64 | Apple Avalanche+Blizzard (A15) | Sovellus | ||
ARMv8.6-A | 64 | Sovellus | ||
ARMv9-A | 64 | ARM Cortex-A510, ARM Cortex-A710, ARM Cortex-X2, ARM Neoverse N2 | MediaTek Dimensity 9000
Qualcomm Snapdragon 8 Gen 1 |
Sovellus |
Lähde: Wikipedia (LINKKI). Taulukossa lisää linkkejä yksittäisiin piireihin ja ARM-versioihin.