Small Chip in Fingertips on white background. this chip was used to store firmware an embeddeed computer application

Nova, efikasnija ARM Cortex A35 jezgra

Tvrtka ARM je prije par dana u Cambridgeu na ARM TechCon 2015 eventu predstavila Cortex A35 procesorske jezgre s novom arhitekturom i niskom potrošnjom struje. Pogledajmo što donosi štedljiva 64 bitna jezgra…

Cortex A35 jezgre, inače kodnog imena Mercury (Merkur), trebale bi biti direktan nasljednik starijeg Cortexa A7 a ne Cortexa A53 kojeg nalazimo u mnogim mainstream čipsetima današnjice.

ARM Cortex A35 ima in order dvosmjerni super skalarni dizajn sa dužinom pipeline-a od osam etapa baš kao i spomenuti prethodnici (A7 te A53), što znači da će moći postizati usporedive frekvencije rada.

A35 pripada ARMv8-a generaciji procesora te radi na 64 bitnom setu instrukcija. Predstavlja najmanju te najefikasniju 64 bitnu jezgru koju je ARM predstavio do sada. U usporedbi sa A7 pruža od 6 do 36 posto bolje performanse (projekcija pri korištenju 32 bitnih instrukcija), dok je ova brojka nešto veća pri korištenju 64 bitnih instrukcija (8-42%), pri čemu je potrošnja energije smanjena za 10% u usporedbi sa A7.

a53-comp

Najveći napredak je postignut u oredviđanjima grananja za instrukcije.

U usporedbi sa A7 jezgrama, posebno treba naglasiti poboljšanja u pogledu NEON SIMD bloka za vektorske instrukcije,  koji je kao takav posuđen i jednak onome u A53 jezgrama, te predstavlja prosječno ubrzanje od 36% u odnosu sa A7 u multimedijalnim operacijama koje se oslanjaju na vektorske kafkulacije.

Isto tako je ogroman napredak u pogledu koherentnosti te brzine operacija za keš memoriju procesora (L1, L2), koji predstavlja čak 3,75 puta napredak u usporedbi sa  jezgrama iz ARMv7 generacije. Zato će nivo učinkovitosti sa memorijski gladnim aplikacijama biti veliki.

U pogledu integer (cjelobrojnih) operacija napredak je mnogo manji. Predstavlja tek 6% u odnosu na A7 što je je čak 24% manje od onoga što postiže A53. Ne mogu se oteti utisku da je integer blok  tek minimalno adaptiran u odnosu na A7, dok je tih 6% napretka postignuto prvenstveno zahvaljujući boljem predviđanju grananja.

a7-a35-comp

A35 je s obzirom na svoju arhitekturu čak napredniji od A72 jezgri u nekim aspektima. Naime na A35 klasteru implementiran je hardverski CPU upravitelj za  stanja aktivnosti jezgri. Predviđa radne zadatke te prema njima i održava stanje jezgri. Ovo bi trebalo da predstavlja napredak kako u brzini reakcije tako i efikasnosti.

Činjenica je da već neko vrijeme (od v7) ARM jezgre imaju tri stanja štednje energije:

  • prvo – kada je kompletna jezgra isključena
  • drugo – kada su blokovi za procesuiranje isključeni a keš memorija i dalje radi na minimalnoj frekvenciji
  • treće – aktivno idle stanje (sve radi na min. frekvenciji).

Problem je ako kompletna jezgra ima isključen proces buđenja, odnosno preuzimanja instrukcija u keš. U tom slučaju je validacija prilično spora i “skupa” (termin koji se koristi da označi spore te ne efikasne načine izvođenja) u slučaju prvog stanja  do drugo elegantno to rješava jer je potrebno samo aktivirati blokove za procesuiranje, a keš i operacije vezane za njega su već ionako aktivni. Ovo stanje troši minimalno energije te predstavlja najbolje rješenje na OS-ovima sa puno buke poput Androida, ali do sada je bilo jako malo korišteno bez obzira što upravitelj  ovdje pokušava optimalno prilagoditi stanje uštede energije.

layout_575px

Panasonic

Do sada smo u industriji vidjeli samo jedan ovakav pokušaj, nažalost jako ne uspješan. Rječ je o implementaciji na Snapdragon 810 SoC-u, a koja je bila toliko loša da je isključena. S druge strane vrjedno je spomena da je napajanje neovisno podjeljeno na dva bloka: 1 tradicionalni CPU blok (integer, VFP osnovna logika) i 2 NEON SIMD. Svaki blok se aktivira neovisno u zavisnosti od potrebe za njim. U zavisnosti brzine implementacije ovim putem je moguće postići do 40% veću efikasnost (potrošnja/performanse).

ARM Cortex A35 2

U stvari, A35 je toliko efikasan da može parirati većini većih i snažnijih jezgri koje se koriste za mikrokontrolere (M, R serije).

Ilustracije radi, potrošnja u osnovnoj konfiguraciji sa 8Kb L1 keša je tik ispod 6 piko Wata (milioniti dio vata) po KHz. Naravno u frekventnim granicama izvršenja operacija tradicionalno rezervisanih za mikro kontrolere (projekcija se odnosi na 28nm HKMG T9 proizvodni process).

Po pitanju realne primjene u aplikacijama koje koriste i jedne i druge institucije, realno je očekivati oko 16~20% bolje performanse u usporedbi sa A7 jezgrama te isto toliko manje u usporedbi sa A53 jezgrama. Spomenimo da  A35 u odnosu na A53 zauzima 25% manju površinu na silikonu I troši 32% manje energije što ga čini 25% efikasnijim.

relative-performance-a7-a35

Mogućnost primjene Cortex A35 jezgri je stvarno široka. Od jeftinih pametnih telefona ili tableta, kao zamjene za A53 u big litle konfiguraciji ili formiranja iste sa njima, preko moguće upotrebe u konfiguracijama sa tri klustera u tradicionalnom smislu koje bi sad imale neko opravdanje (mada ne veliko), pa do upotrebe u IoT-u, iako ARM M7 – R7 generacija je još uvjek bolja i prikladnija za ovu namjenu,  čak i kao mikrokontrolera ako je ikome u industriji potreban 64 bitni kao takav. Iskreno, u što sumnjam.

Ipak jedna mogućnost primjene se ističe i bila nam je prijeko potrebna. To je mogućnost primjene kao posvećenog klustera za operacije manje složenosti što do sada nije bilo moguće u većoj mjeri budući da nije postojalo 64 bitno rješenje prikladno toj namjeni.

Na primjer, mali kluster od dvije A35 jezgre sa dodatnim DSP blokovima na skromnoj frekvenciji od recimo 400 MHz, bi bio dovoljan da u uređajima dok “spavaju” se brine o obavjestima, audio reprodukciji i slično te obavlja pozadinske operacije na nivou OS-a (buka, storage IO i td).

Mislim da bi bio dovoljno patentan za proces “buđenja”, dok u “aktivnom” stanju uređaja mogao bi da se koristi za of load zadatake koji nisu naj podesniji za izvršenje na većim, više patentnim jezgrama, kao npr. upravljanje IO-ima (ulazima izlazima) za NAND, periferijom, senzorima te da još uvjek bude korišten za ostale jednostavne zadatke poput audio reprodukcije i sve to na istom sistemskom nivou 64 bitnog OS-a.

ARM Cortex A35

Navedeno bi značajno smanjilo potrošnju energije,  pomoglo velikim jezgrama da mogu efikasnije da posvete svoje resurse na izvršavanje složenijih zadataka, što bi dovelo do rasta performansi u istim te značajno doprinijelo i samoj efikasnosti cjelokupnog SoC-a.

Očekivano je da prve komercijalne primjene u uređajima široke potrošnje ugledaju svjetlost dana krajem trećega kvartala 2016 godine. Siguran sam da će primjena i implementacija biti mnogo.

Ma koliko se to na prvi pogled ne činilo značajnim, zahvaljujući njegovim ne tako impresivnim performansama, A35 ipak predstavlja najnapredniji dizajn koji je ARM predstavio – ikada.