Objavljeno: 30.3.2021 | Avtor: Jurij Kristan | Monitor April 2021

Apple M1 - Znanilec sprememb

V Applu so navdušili že s prvo generacijo svojega lastnega sistemskega vezja za računalnike M1. Poglejmo, kaj se skriva pod njegovim pokrovom in zakaj gre v resnici za prelomen dogodek, ki bi lahko imel daljnosežne posledice za področje računalniških procesorjev.

Tiste računalniške navdušence, ki so bili v preteklih letih osredotočeni zgolj na boj med Intelom in AMD, je jesenski prihod Applovega vezja M1 bržkone zadel kot strela z jasnega. Da se bo dobro odrezal v programju, ki domorodno teče na računalnikih z logotipom ugriznjenega jabolka, je bilo resda logično pričakovati, saj v Cupertinu bržkone ne bi predstavljali šibkega izdelka. Toda kot so pokazali tudi naši hitrostni testi, denimo MacBooka Air v decembrski številki Monitorja, je M1 v resnici veliko več od tega: gre za strašljivo močan in dovršen sistemski čip, katerega velika jedra po zmogljivosti potolčejo tista v procesorjih Intel Core in dihajo za ovratnik celo AMD! Če malo karikiramo: medtem ko sta se Intel in AMD ravsala na pločniku, je Apple nenadoma pritekel izza ovinka in oba sunil v zadnjo plat.

Podrobnosti dajo dogodku še dodatne presenetljive dimenzije. M1 ni zasnovan na ukazni platformi x86 kot procesorji Intela in AMD, temveč na ukazih podjetja ARM. Zelo podoben je sistemskemu čipu A14, ki je vgrajen v aktualne iphone. Da se lahko takšen izdelek zares izkaže tudi v zmogljivem računalniku – in to pri zelo majhni porabi! –, je novica, ki bi morala vsakomur dati vedeti, da je treba začeti AR jemati resno tudi kot rešitve za običajno rabo, ne le za vgradnjo v mobilne igračke. Dodatno navdušujoča je navidezna lahkost, s katero v Applu izvajajo ponovno menjavo procesorske platforme, ko po 15 letih od Intela prehajajo na rešitev, oblikovano znotraj hiše. V osnovi gre za izjemno zahteven proces, in ker Apple že po prvi etapi daje vtis zmagovalca, to priča, kako močan je v resnici njegov oddelek za razvoj polprevodnikov. Kako, hudiča, je inženirjem to uspelo? In ali se morajo tekmecem širom industrije res tresti hlače?

Na ramenih predhodnikov

Preden se sprehodimo med elementi vezja M1, velja razložiti, da njegov uspeh nikakor ni popolno presenečenje in se je v resnici napovedoval že dlje časa. Noben tektonski premik se ne zgodi slučajno ali z danes na jutri. Podobno, kot so bili temelji za aktualne uspehe AMD postavljeni že sredi prejšnjega desetletja, lahko prvim obrisom M1 sledimo v daljno leto 2012. Takrat je Apple predstavil sistemsko vezje A6 za iPhone 5, ki je bilo prvi sad oblikovanja njihove lastne polprevodniške mikroarhitekture (po tem, ko je Apple kupil polprevodniško podjetje P.A. Semi). Pred tem so dizajn jedra zakupili od ARM in tako povzeli njegove cortexe; z A6 pa so prešli na režim, pri katerem podjetje od ARM licencira zgolj ukazni set, medtem ko vezje oblikuje samo.

Arhitektura RISC je Applovim inženirjem omogočila, da so v M1 vgradili kar osem dekoderjev, medtem ko Intel in AMD ne moreta prek štirih.

Že z A7 za iPhone 5s so leto pozneje napravili nov korenit preskok in prvi implementirali 64-bitni ukazni set ARMv8 – leto dni prej, preden so to v ARM napravili s Cortexi-A57! Od takrat dalje je napredek tekel s silovito naglico. Glede na to, da ima aktualna generacija Applovih procesorjev že številko 14, je M1 postavljen na temeljih nič manj kot osmih iteracij Applovega razvojnega pristopa. Odločitev za pot na svoje je zorela že nekaj časa in v Cupertinu so jo preprosto organsko sprožili, ko so preudarili, da so sposobni sami napraviti boljšo rešitev, kot jim jo ponuja sodelovanje z Intelom.

Dodeljevanje operacij več logičnim enotam hkrati imenujemo superskalarnost. Out-of-order execution je napredna različica prijema.

Pri takšnih korakih so prav tako že veterani, saj so ga izvedli že leta 2006, ko so s čipov IBM/Motorola PowerPC prešli na Intelovo arhitekturo. Če pobrskamo po spominu, jim je takrat nagajala velika poraba (in torej gretje) najnovejšega procesorja PowerPC G5, ki jih je močno ovirala pri prodoru na cvetoči trg prenosnikov. Skok v naročje Intela, ki je ravno takrat začenjal pohod proslavljene družine Core, je omogočil rojstvo ikonične linije prenosnikov MacBook Air, s katerim je Steve Jobs prvič poziral dve leti pozneje. Ceno za prehod so v glavnem nosili razvijalci programja, ki so morali nekaj časa izdelovati univerzalno kodo, ki je delovala tako na PowerPC kot na Intelovem sistemu x86. Pri tem je za silo pomagala emulacija Rosetta, in čeprav še zdaleč ni šlo za popolno rešitev, so takrat v podjetju dobili dokaz, da se pristop obnese. Kar vidimo zdaj, je torej skrbno domišljen proces, zastavljen na zvrhani količini izkušenj.

Optimizirane sestavine

V tehničnem smislu zgodbo o uspehu M1 sestavljata dve osrednji poglavji: struktura sistemskega čipa in pa zasnova njegovih jeder. Pri branju specifikacij je takoj jasno, da M1 ni klasičen procesor (CPU), kakršnih smo vajeni v ropotajočih namiznih škatlah, temveč gre za heterogeni sistemski čip (system-on-chip), neposredno povzet po tistih v pametnih telefonih in tablicah. Sestavljajo ga štiri velika računska jedra Firestorm in štiri varčna Icestorm, obenem pa še vse pritikline, ki iz takšnega vezja v bistvu naredijo računalnik v enem samem čipu. Ključni sta seveda grafična procesna enota in vrsta strojnih pospeševalnikov za specifične naloge. Med drugimi enota za obdelavo fotografij pa digitalnih signalov (DSP – digital signal processor, ki se uporablja pri dekodiranju zvoka) in pospeševalec strojnega učenja, ki pomaga pri, denimo, prepoznavi govora.

Generalna shema dekodirnega sklopa v Intelovih procesojih Core kaže tudi stopnjo za določanje dolžine ukaza, ki je M1 ne potrebuje.

Poseben razdelek zasluži združen delovni pomnilnik DRAM, katerega ploščici najdemo pritrjeni na istem pakiranju, poleg računskega silicija. Takšna rešitev ponuja dovolj velike hitrosti povezave s procesnimi enotami, da lahko vsi ti računski sklopi pomnilnik res vidijo kot enoten kos in ga uporabljajo na enak način, kar pospeši delovanje. CPU in GPU (grafični procesor) imata pri dostopanju do pomnilnika pač različne zahteve; prvi podatke običajno zajema v manjših količinah, drugi pa v velikih. Če se pomnilnik nahaja v obliki paličic na matični plošči, so razlike v režimu delovanja prevelike in sistem mora pomnilnik razdeliti na dele, namenjene posameznim sklopom, to pa pomeni veliko navzkrižnega kopiranja podatkov. Pri združenem ta kopiranja odpadejo.

Applovi inženirji so imeli na voljo podrobno statistiko poganjanja programja na macbookih, zato so lahko s skrbno zasnovanimi pospeševalnimi podsklopi dobili čip, ki kar najbolje podpira karakteristično rabo njihovih izdelkov. Obenem to počne z nekajkrat manjšo porabo, zato lahko najnovejši Macbook Air shaja s pasivnim hlajenjem, brez ventilatorja. M1 je kratko malo procesor, ki je dosti bolje optimiziran za Applove stranke kot katerakoli Intelova rešitev, ki je po definiciji splošnejša in manj učinkovita, ker so jo pač razvili zunaj Appla. Seveda je kaj takega za zdaj mogoče le v okviru zaprtega ekosistema, kakršnega vzdržujejo v Cupertinu. Prav tako si lahko predstavljamo, kako sestavljavci domačih osebnih računalnikov vihajo nos ob dejstvu, da združeni pomnilnik ne omogoča enostavnega dodajanja pomnilniških ploščic. Toda Applu za take uporabnike tako in tako nikoli ni bilo mar.

Večpasovnica posebne sorte

Kot smo omenili uvodoma, je M1 močan tudi v splošnem, ne le v namensko jabolčnih aplikacijah. Jedra Firestorm hitrostno v resnici korakajo ob boku najboljših, ki jih lahko ponudi tabor x86, zato lahko spodobno poganjajo programje, pisano za x86, pa čeprav emulator Rosetta2 zase vzame okoli petino strojne zmogljivosti. Vzroki za to se skrivajo v načinu ukaznega paralelizma, ki so ga Applovi inženirji izpostavili in se naslanja na osrednjo lastnost zasnove ARM – podporo »kratkemu« ukaznemu setu vrste RISC. Tu so ukazi kratki in uniformne velikosti: vedno so dolgi štiri bajte. Platforma x86 po drugi plati uporablja daljše ukaze vrste CISC, ki so spremenljive velikosti in so lahko dolgi od enega bajta pa do 15.

Strojni ukazi v resnici niso tisto, kar teče na samem siliciju, temveč jih mora dekoder najprej prevesti v tako imenovane mikrooperacije, ki šele zares poganjajo procesorske cevovode. Ker ima RISC ukaze enotne velikosti, je takšno dekodiranje tam preprostejše kot pa pri arhitekturah x86. Dekoderji ukazov CISC morajo namreč trošiti dodatne cikle za to, da najprej doženejo, kako dolg je ukaz, preden ga lahko primerno »razkosajo« na mikrooperacije. Uporabno število dekoderjev ima zgornjo mejo, ki je pri setu CISC nižja, ker je podatkovni kaos večji. To je Applovim inženirjem omogočilo, da so v M1 vgradili kar osem dekoderjev, medtem ko Intel in AMD ne moreta prek štirih.

Število dekoderjev ukazov hkrati neposredno določa zmogljivost zunajserijskega izvajanja operacij procesorja (out-of-order execution). Gre za pomemben način vzporednega procesiranja v modernih procesorjih. Sistem pregleda ukaze, najde tiste, ki so med seboj neodvisni, in jih dodeli različnim računskim enotam, s čimer lahko doseže paralelizem oziroma hkratno obdelavo podatkov. Osem dekoderjev v M1 tako omogoča učinkovitejšo vzporedno obdelavo od štirih v konkurenčnih rešitvah na osnovi x86.

In če za trenutek stopimo iz tehničnega žargona v otipljivejšo prakso: eno jedro Firestorm dosega približno 95 odstotkov hitrosti jedra Ryzena 5000, pri čemer Applovo jedro deluje pri 3,2 gigaherca, AMD pa pri petih! Velja pa omeniti, da »širša« jedra težje dosegajo visoke frekvence, zato bo zanimivo videti, do kakšnega takta jih bodo lahko pri Applu prignali. Gotovo ni nepomembno, da je uspelo Applu za M1 zagotoviti 5-nanometrski proizvodni način v podjetju TSMC.

ARM v odločnem vzponu

Bombastični nastop Applovega čipa M1 torej s seboj nosi najmanj dve zelo pomenljivi sporočili. Prvič, RISC po desetletjih prevlade platforme x86 naposled vnovič kaže zobe tudi pri osebnih računalnikih (nazadnje se je to dogajalo v letih modelov PowerPC). In drugič – kar je nemara še dosti pomembnejše – prilagodljivi pristop licenciranja zasnove procesorjev ARM je začel velikana x86 vendarle tepsti tudi zunaj področja tablic in telefonov. Kdorkoli je podrobneje spremljal Intelove poskuse prodiranja na mobilno področje z atomi, verjetno komaj zadržuje smeh, ker mu je specifika že dobro poznana. Namreč: Intelov okoreli način ponujanja zakoličenih izdelkov je tam v spopadu s pristopom, ki proizvajalcem omogoča oblikovanje dobro prilagojenih lastnih rešitev, klavrno propadel. V Intelu so se doslej tolažili, da jim vsaj primata pri večjih računalnikih ne morejo pobrati. M1 kaže, da jih je lahko še kako strah.

To še zdaleč ne pomeni, da sta Intel in AMD v zatonu. Prilagojene rešitve tipa M1 s seboj nosijo določene pogoje, kot je večja zaprtost tako programskega ekosistema kot tudi naprav samih. Če z notranjimi zasnovami čipov lahko pridemo do zmogljivejših izdelkov, pa ima po drugi plati tudi svoboda izbiranja med pripravljenimi komponentami svoje tržne in uporabniške koristi. Najverjetneje bomo priče vzpostavitvi novega ravnotežja. Pri tem bosta oba velikana x86 gotovo igrala aktivno vlogo, kajti edini trezni zaključek je trenutno ta, da ju bo M1 prisilil v ukrepanje. Gre za podjetji z veliko pametnimi glavami, ki so aktualne dogodke gotovo že predvidele.

Strokovni opazovalci pa imamo nasmeh do ušes, ker je področje postalo tako aktivno in smo očitno na pragu sprememb. Tudi če odmislimo odločen napredek Applove linije procesorjev, ni mogoče zgrešiti prodora ARM v strežnike, kamor paradirata Amperova Altra in Amazonov Graviton2, pa v superračunalnike, kjer trenutno kraljuje japonski Fugaku – s Fujitsujevimi čipi na arhitekturi ARM.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji