Peruspuhelimissa tarvitaan huolellista tasapainoa suorituskyvyn, tehonkulutuksen ja hinnan välillä. ARM Cortex-A35-prosessori 64- ja 32-bittisine tiloineen vastaa näihin haasteisiin hienosti.
Artikkelin on kirjoittanut ARM:n vanhempi tuotepäällikkö Kinjal Dave. Hän on työskennellyt ARM:lla marraskuusta 2007 lähtien, ensin suunnittelijana ja vanhempana suunnittelijana ja elokuusta 2012 lähtien tuotepäällikkönä. Kinjalilla on informaatio- ja tietoliikennetekniikan tutkinto Dhirubhai Ambanin instituutista Intiasta. |
Tässä artikkelissa kuvataan, miten yhdistämällä 64- ja 32-bittistä laskentaa tarkoin suunnatuilla parannuksilla muistin, CPU:n ja tehonhallinnan käyttöön saavutetaan uusimmilla ARM Cortex-A35-prosessoreilla tarvittava tehokkuus seuraavan polven perustason mobiililaitteita varten.
Perustason älypuhelimet (ja tabletit) ovat nopeimmin kasvava mobiililaitteiden tuoteryhmä. Vuositasolla sen kasvu mitataan kahdeksassa prosentissa. Toimitusmäärien arvioidaan ylittävän yhden miljardin rajan vuoteen 2020 mennessä, joten laitevalmistajille kyse on erittäin tärkeästä tuoteryhmästä. Näiden laitteiden menestys on perustunut siihen, että usein tarjotaan kalliimmista laitteista tuttuja ominaisuuksia ja toimintoja hinnalla, joka on uusien käyttäjien ja hintatietoisten ulottuvilla. Tyypillisesti tällainen älypuhelin maksaa 50-200 dollaria.
Näiden suorituskyky- ja hintatavoitteiden saavuttamisessa avainasemassa on laitteen pohjana oleva laskenta-alusta. Historiallisesti laitteet ovat perustuneet ARM Cortex-A5- ja A7-prosessoreihin. Näihin perustuvia peruspuhelimia on myyty jo yli kaksi miljardia kappaletta.
Uusilta peruspuhelimilta vaaditaan nyt enemmän suorituskykyä ja yhä parempaa käyttökokemusta. Yleensä parempi suorituskyky tarkoittaa suurempia kustannuksia, mutta seuraavan polven peruskännyköiden täytyy pysyä edullisessa hintaluokassa. 64-bittisen laskennan nopea yleistyminen kalliimmissa älypuhelimissa antaa mahdollisuuksia hyödyntää 64-bittisyyttä myös halvemman luokan laitteissa. ARM on etsinyt ahkerasti innovaatioita, joiden avulla voidaan suunnitella ultratehokkaita ja pieniä 64-bittisiä prosessoreja, jotka voivat parantaa yhä raskaampien työkuormien käsittelyä halvemman hintaluokan älypuhelimissa.
Vaikka joitakin parannuksia saadaan aikaan hyödyntämällä uusia, Cortex-A5- ja Cortex-A7-prosessorien lanseeraamisen jälkeen kehitettyjä prosessitekniikoita, uusi ARM Cortex-A35-prosessori parantaa tehokkuutta prosessorin mikroarkkitehtuuriin tehdyillä parannuksilla. Tämän ansiosta monien suosittujen sovellusten käyttö – webbiselaaminen, pelaaminen, musiikinkuuntelu, kuvien ja videoiden jakaminen ja mobiilimaksaminen – onnistuu myös halvemmissa laitteissa.
Siirtyminen 64-bittisyyteen
Cortex-A35-prosessori perustuu uusimpaan ARMv8-A-arkkitehtuuriin ja se tukee sekä 32- että 64-bittistä laskentaa. Koska 32-bittisiä ohjelmistoja kehitetään edelleen laajasti, 32-bittisyyttä on tärkeä tukea. Silti 64-bittisen laskennan ylivoimaiset muistin- ja datanhallintakyvyt tuovat selkeitä etuja laskentaan sovellusten jatkuvasti monimutkaistuessa. Myös tehokkuus suuria tiedostoja käsiteltäessä paranee. Tämä mahdollistaa mobiilien datakuormien ja raskaampaa laskentaa edellyttävien sovellusten nopeamman käsittelyn. Se avaa myös auki tien sovelluksille, jotka hyödyntävät enemmän kuin neljä gigatavua RAM-muistia.
ARMv8-A-arkkitehtuuri tukee erillisiä 32- ja 64-bittisiä suoritustiloja. 32-bittinen tila - joka tunnetaan nimellä AArch32 – parantaa 32-bittistä laskentaa aiempiin prosessoripolviin verrattuna paremmilla kryptografisilla ja liukulukukäskyillä. Tämänhetkiset julkistetut benchmark-tulokset Cortex-A35-prosessorilla perustuvat AArch32-tilaan.
AArch32-tila tukee uutta A64-käskykantaa, joka mahdollistaa sen, että prosessori pystyy käsittelemään suurempia datamääriä ja lisäksi se tukee IEEE-yhteensopivia liukulukuvektoriparannuksia. AArch32- ja Aarch64-tilojen samanaikaisuus antaa jokaiselle ARMv8-arkkitehtuuriin perustuvalle laitteelle mahdollisuuden ajaa 32-bittisiä sovelluksilla 64-bittisellä käyttöjärjestelmällä. Kannattaa huomata, että Cortex-A35 tuo tuen sekä 32- että 64-bittisyydelle 25 prosenttia pienemmässä piialassa kuin ensimmäinen teho-optimoitu Cortex-A53-prosessori.
Useat mobiiliprosessoinnit kuten webbiselaaminen ja multimedia kuluttavat paljon muistia datan liikkuessa muistin ja prosessorin välillä. Cortex-A35-prosessori on suunniteltu tuomaan merkittäviä parannuksia muistin käsittelyyn Cortex-A7-prosessoriin verrattuna. Yksi tärkeimpiä muutoksia on paranneltu fetching-mekanismi, joka voi automaattisesti hakea valmiiksi useita datavirtoja. ARMv7-A.pohjaisessa Cortex-A7-prosessorissa voitiin hakea vain yhtä datastriimiä kerrallaan. Muut mikroarkkitehtuurin parannukset kuten automaattinen kirjoitusstriimin havaitseminen ja kyky tukea datan välimuistivirheitä, sekä käännöspuskurin koon kaksinkertaistaminen parantavat suurten datajoukkojen käsittelyä ja parantavat osoitteiden käännöksen suorituskykyä. Lisäksi parannukset muistialijärjestelmiin (parantavat L1- ja L2-muistien hyödyntämistä) ja päämuistiväylään vähentävät ristiriitojen määrää. Kuva 1 esittää Cortex-A35-prosessorin muistin suorituskykyetua Cortex-A7-prosessoriin verrattuna.
Kuva 1. Suhteellinen muistisuorituskyky. Sen parantaminen helpottaa kiihdyttämään tärkeitä mobiiliprosesseja.
Käyttäjien liittäminen webiin
Joillekin peruspuhelinten käyttäjille – erityisesti kehittyvissä maissa joissa kiinteitä yhteyksiä on vähän – mobiilaite on päätyökalu webbiin pääsemiseksi. Tämän takia laitteiden selauskokemus on ensiarvoisen tärkeää. Kuva 2 kuvaa, miten selainsuorituskyky paranee merkittävästi Cortex-A7-prosessoriin verrattuna. Verrattaessa samankaltaiseen prosessorikonfiguraatioon samalla kellotaajuudella nopeus kasvaa 16 prosenttia. Suorituskyvyn suhteen optimoitu kahden gigahertsin kellotaajuudella operoiva Cortex-A35-prosessori on 84 prosenttia nopeampi kuin 1,2 gigahertsin nopeudella operoiva Cortex-A7-prosessori.
Kuva 2. Arkkitehtuurin parannukset tehostavat selauskokemusta.
Video ja pelaaminen tien päällä
Muut tärkeät mobiiliprosessoinnit, kuten pelaaminen ja videon tai audion toisto riippuvat paitsi suurten datamäärien nopeasta ja tehokkaasta liikuttelusta myös suuresta laskentatehosta. Erityisesti pelaaminen asettaa suuria vaatimuksia liukulukuoperaatioille laskiessaan liikkeitä tai lentoratoja.
ARMv8-A-arkkitehtuuriin on tuotu parannuksia NEON-mediaprosessoriin, jotka parantavat sekä perustarkkuuden että kaksoistarkkuuden liukulukulaskentaa. NEON- ja liukulukuliukuhihnat ovat myös erittäin tehokkaita piihyötysuhteeltaan. Kuva 3 esittää parannukset suhteessa Cortex-A7-prosessoriin kokonaisluvuissa, liukuluvuissa ja videonprosessoinnissa, jotka ovat keskeisiä pelikokemuksen kannalta. Videoprosessoinnin vertailu on tehty ajamalla joitakin suosittuja videoformaatteja kuten MP4 NEON-moottorissa. Mukana oleva yksiytiminen Geekbench-suoritusarvo sisältää kokonaisluku-, liukuluku- ja muistitestit, ja ne vahvistavat että Cortex-A7:een verrattuna Cortex-A35:n suorituskyky on keskimäärin 40 prosenttia parempi.
Kuva 3. Videon ja peliprosessoinnin laskentakyvyn vertailut.
Käyttäjän turvaaminen
Käyttäjälle näkymättömän, mutta miellyttävän mobiilikokemuksen kannalta olennaisen mobiiliostaminen turvallisuuden varmistaminen edellyttää jatkuvaa huomiota ja parantamista. Kehittyvissä maissa, joissa suurella osalla kuluttajia ei ole pankkitilejä ja joissa sähköistä maksamista varten ei ole kiinteää verkkoa, nopeasti yleistyvä älypuhelin mahdollistaa mobiilin rahaliikenteen, joka helpottaa pankkipalvelujen saatavuutta. Kehittyneissä maissa, joissa sähköinen maksaminen on jo vakiintunutta, mobiilimaksaminen tuo lisää helppoutta. Molemmissa tapauksissa on tärkeää, että perustason laitteet tuovat turvallisen käyttökokemuksen.
ARMv8-A-arkkitehtuuriin on tuotu kryptografisia laajennuksia, jotka ovat käytettävissä sekä AArch32- että Aarch64-tiloissa. Nämä nopeuttavat selvästi salausalgoritmien suorittamista. Laajennusten avulla Cortex-A35-prosessori on jopa 350 prosenttia nopeampi SHA-1algoritmien suorittamisessa ja peräti 1100 prosenttia tehokkaampi AES-algoritmien laskennassa, kuten kuva 4 osoittaa.
Kuva 4. Parannukset salausalgoritmien suorittamisessa näyttävät suorituskykyvertailut samalla kellotaajuudella.
Lisää tehoa, pienemmällä virralla
Vaikka parantunut suorituskyky on keskeistä seuraavan polven mobiililaitteiden käyttökokemuksen kannalta, suunnittelijoiden vaatimuksena on pysyä tiukan tehobudjetin sisällä, mikä prosessorille on SoC-alustalla annettu. Koko- ja kustannusrajoitukset rajoittavat peruspuhelimen tyypillisen tehonkulutuksen 100-150 milliwattiin prosessoriydintä kohti, ja tarvitaan huolellista tehonhallintaa akkutoiminta-ajan maksimoimiseksi. Tämän päivän kännykänkäyttäjät eivät halua rajoittaa webbiselaamistaan, pelaamistaan videoneuvotteluja tai muita verkkosovelluksia hillitäkseen laitteen lataamistahtia.
Cortex-A35-prosessorin suunnittelussa on keskitytty sekä dynaamiseen tehonkulutukseen että joutotehon hallintaan. Muutokset prosessorin mikroarkkitehtuuriin, kuten paranneltu liukuhihna, ovat tuoneet merkittäviä vähennyksiä dynaamiseen tehonkulutukseen. Pelkästään nämä parannukset varmistavat, että Cortex-A35 kuluttaa 10 prosenttia vähemmän tehoa kuin Cortex-A7-prosessori, vaikka A7:n suunnittelu tehtäisiin uusiksi uusimmilla EDA-työkaluilla ja toteutustekniikoilla. Kuva 5 esittää suunnitteluvuon parannusten ja mikroarkkitehtuurin parannusten yhteisvaikutusta, jonka myötä prosessorin dynaaminen tehonkulutus on 20 prosenttia pienempi kuin Cortex-A7:n alkuperäisen toteutuksen. Vertailussa ovat samalla kellotaajuudella toimivat, 28 nanometrin prosessissa toteutetut prosessorit.
Kuva 5. Tehonkulutuksessa säästetään samalla kun suorituskyky paranee.
Alhaisemman dynaamisen tehonkulutuksen lisäksi Cortex-A35-prosessorille on kehitetty kolme uutta tehonhallintaominaisuutta, joilla tehonkulutus valmiustilassa pyritään minimoimaan. Nyt on käytössä neljä tehoaluetta (power domains), jotka mahdollistavat CPU:lle, NEON-moottorille, L2-välimuisteissa ja ylätason logiikalle itsenäisen tehonhallinnan. Cortex-A35-prosessorilla on uusi neljän signaalin standardoitu sarja, jotka kutsutaan Q-kanavaksi, joka liittyy piirille integroituun teho-ohjaimeen, kuten kuva 6 esittää. Tämä yksinkertaistaa tehonhallintatilojen koordinointia ohjelmallisesti ja helpottaa myös CPU:n joutotilojen (idle state) kontrollointia. Cortex-A35-prosessori tukee yhtä Q-kanavaa jokaista tehoaluetta kohti.
Kuva 6. Q-kanava liittää CPU- ja NEON-yksiköt teho-ohjaimeen.
Hallintalohko (governor block) sisätää myös laitetason toimintoja, joiden avulla prosessori siirtyy tehonsäästö/datansäilytys -tilaan (power-saving data-retention mode) ja siitä pois minimaalisella latenssilla ilman ohjelmiston väliinpuuttumista. Jos esimerkiksi NEON-käsky ei mene liukuhihnaan ohjelmoijan määrittelemässä ajassa, NEON-lohko siirtyy retentiotilaan, jossa se on yhteydessä vain teho-ohjaimeen Q-kanavan välityksellä. Mikäli NEON-käsky siirtyy liukuhihnaan, lohko irtoaa nopeasti tehonsäästötilasta suorittamaan käskyä.
Ylipäätään laskentatehon parantaminen, vähentynyt dynaaminen tehonkulutus ja parantunut tehonhallinta tekevät Cortex-A35-prosessorista ARM:n vähävirtaisimman 64-bittisen prosessorin. Se pystyy tuomaan peruskännyköihin aiempaa paremman suorituskyvyn kuin aiemmat peruslaitteiden prosessorit samalla tehobudjetilla.