Arm Arhitektura Napreduje – No Postoje Izazovi
Total Page:16
File Type:pdf, Size:1020Kb
ARM ARHITEKTURA NAPREDUJE – NO POSTOJE IZAZOVI SAŽETAK Procesori ARM ISA arhitekture ne koriste se više "samo" za mobitele i tablete, nego i za serverska računala (pa i superračunala), te laptop / desktop računala. I Apple je kod Macintosh računala prešao sa Intel arhitekture na ARM arhitekturu. Veliki izazov kod tog prelaska bio je - kako omogućiti da se programski kod pisan za Intelovu ISA arhitekturu, izvršava na procesoru M1 koji ima ARM arhitekturu. Općenito, želja je da se programi pisani za jednu ISA arhitekturu mogu sa što manje napora izvršavati na računalima koja imaju drugačiju ISA arhitekturu. Problem je u tome što različite ISA arhitekture mogu imati dosta različite memorijske modele. ABSTRACT ARM ISA processors are no longer used "only" for mobile phones and tablets, but also for server computers (even supercomputers) and laptops / desktops. Apple has also switched from Intel to ARM on Macintosh computers. The big challenge in that transition was - how to enable program code written for Intel's ISA architecture to run on an M1 processor that has an ARM architecture. In general, the desire is that programs written for one ISA architecture can be executed with as little effort as possible on computers that have a different ISA architecture. The problem is that different ISA architectures can have quite different memory models. 1. UVOD Procesori ARM ISA arhitekture ne koriste se više "samo" za mobitele i tablete, nego i za serverska računala (pa i superračunala), te laptop/desktop računala. Koriste se i u industriji, u proizvodnim procesima, a i kao ugradbeni čipovi u ostale proizvode, npr. za ugradnju u IOT uređaje i u vozila (posebno autonomna vozila). U 2. točki ukratko se prikazuje što radi firma Arm, što su ARM ISA arhitekture i mikroarhitekture, kakva je podjela posla u proizvodnji ARM čipova i na njima zasnovanih krajnjih uređaja (npr. mobitela). U 3. točki prikazuje se gdje se koriste ARM čipovi. Posebno se naglašava da i Apple Macintosh sada koristi ARM čip - M1, kojega je dizajnirao sam Apple. Apple je napravio i novi dinamički binarni translator Rosetta 2, koji omogućava da se većina softvera pisanog za Macintosh računala sa Intel procesorom, uglavnom bez problema (i dovoljno brzo) izvršava na novim Macintosh računalima. Ali, ne bi trebalo misliti da je taj prelazak uvijek lako izvesti. Problem je u tome što različite ISA arhitekture mogu imati dosta različite memorijske modele. U 4. točki (koja je napravljena uglavnom na temelju literature [1]) prikazuju se memorijski modeli kod različitih ISA arhitektura, te načini rješavanja mogućih problema kod dva naizgled različita zahtjeva: - korektna emulacija softvera na različitim ISA arhitekturama, u paralelnom načinu rada - (automatska) paralelizacija sekvencijalnih programa. U 5. točki prikazuju se poboljšanja specifikacije ARM arhitekture (naročito memorijskog modela). Spominje se i najava da će ARM arhitektura uvesti hardversku transakcijsku memoriju (HTM), kod čije realizacije su se "opekli" Intel i IBM. Na kraju, daje se i (vjerojatni) odgovor na pitanje: Kako je Apple uspio da programi pisani za Intel dobro rade na njegovom M1 čipu ARM arhitekture? 1 2. ARM ISA ARHITEKTURE I MIKROARHITEKTURE Gotovo svi današnji pametni telefoni koriste procesorske čipove temeljene na jednoj od ARM ISA (Instruction Set Architecture) arhitektura. Napomena: budući da skraćenica ISA već sadrži slovo A, koje znači Arhitektura, donekle je redundantno reći ISA arhitektura, ali je često razumljivije. Britanska firma Arm Ltd. dizajnira ARM procesorske arhitekture (množina!) iz određene ARM porodice,npr. arhitektura ARMv8.2-A iz porodice Cortex-A (64-bit).Firma Arm dizajnira i procesorske jezgre (tj. mikroarhitekture) temeljene na određenoj arhitekturi, npr. jezgra Cortex-A78 iz arhitekture ARMv8.2-A. Slika 1. Logo firme Arm ltd. (lijevo) i ARM arhitekture (desno); Izvor: https://en.wikipedia.org/wiki/Arm_Ltd. Firma Arm je jedan od "preživjelih potomaka" firme Acorn. Akronim ARM je prvo korišten 1983. i tada je značio "Acorn RISC Machine", a od 1990. znači "Advanced RISC Machines" (kako se zvala i firma Arm od 1990. do 1998.). Slika 2. Evolucija ARM arhitekture; Izvor: https://www.androidauthority.com/developing-arm-everything-need-know-389402/ Druge firme na temelju licenci koje kupuju od firme Arm (te su licence za sada relativno povoljne, npr. iznose oko 1% prodajne cijene čipa) dizajniraju i vlastite inačice ARM jezgri i SoC (System on a Chip) čipove (tako rade npr. Apple, Samsung i Qualcomm), ili dizajniraju samo SoC čipove (tako rade npr. Huawei i MediaTek). Te čipove često proizvode treće firme. Najbolju (5 nm) tehnologiju proizvodnje procesorskih čipova za sada imaju tajvanski TSMC ("svjetski prvak") i Samsung Electronics. Na temelju SoC čipova, četvrte firme mogu dizajnirati npr. mobitele (ali, ti se čipovi mogu koristiti i za druge namjene), a pete firme mogu proizvoditi mobitele. 2 Na ARM čipu mogu pisati informacije kao na slici 3. (ovisno o konkretnom proizvođaču i čipu): koja je to arhitektura (ARMv8-A), CPU jezgre (Cortex-A57 i A53), GPU jezgre (ARM Mali-T624) … ali i ime proizvođača čipa (TSMC), koji često nije isti kao firma koja je dizajnirala čip. Slika 3. Primjer ARM čipa na matičnoj ploči; Izvor: https://en.wikipedia.org/wiki/ARM_architecture Koliko nam je poznato, jedina firma koja na temelju ARM arhitekture sama radi i (re)dizajn jezgri i dizajn SoC čipova, proizvodi čipove, te dizajnira i proizvodi mobitele, je Samsung Electronics. To ne znači da Samsung uvijek tako radi. Npr., osim vlastito dizajniranih procesorskih čipova, Samsung koristi (naročito za tržište SAD-a) čipove koje dizajnira firma Qualcomm. Također, Samsung ne proizvodi sve čipove, već mu dobar dio čipova proizvodi firma TSMC (bilo zbog ograničenih kapaciteta, bilo zbog toga što Samsung još nije ovladao određenim tehnološkim procesom). Tablica 1. pojednostavljeno prikazuje od kojih se glavnih faza sastoji proizvodnja npr. mobitela i tko sudjeluje u tome. Tablica 1. Podjela posla u proizvodnji ARM čipova i mobitela; Izvor: obrada autora Redizajn Dizajn Proizvodnja Dizajn Proizvodnja ARM SoC čipa SoC čipa mobitela mobitela jezgre Samsung Da Da Da Da Da Exynos Exynos Apple Da Da Ne Da Ne Firestorm M1 - za i Macintosh Icestorm Huawei Ne Da Ne Da Da Kirin Qualcomm Da Da Ne Ne Ne Kryo Snapdragon MediaTek Ne Da Ne Ne Ne Dimensity 3 3. ARM ČIPOVI SE NE KORISTE "SAMO" U MOBITELIMA Donedavno su se procesori ARM arhitekture u razmišljanjima većine ljudi povezivali "samo" s mobitelima. No činjenica je da se ARM arhitektura već dosta davno probila i na servere. Npr. najjače današnje superračunalo Fugaku (po TOP500 rangiranju), koje je dizajnirao i proizveo japanski Fujitsu, ima 158 976 komada 48-jezgrenih čipova A64FX,koje je (kao i njegove jezgre) također dizajnirao Fujitsu, na temelju arhitekture ARMv8.2-A (čip je proizveo TSMC, u 7 nm tehnologiji). Fujitsu je prije toga za svoja računala i superračunala koristio vlastiti čip SPARC64 V. Inače, vlasnik firme Arm je od 2016. japanski konglomerat SoftBank, koji ju je tada kupio za 32 milijarde $. Sada želi prodati 90% za 40 milijardi $, jer je pritisnut financijskim gubicima na drugim područjima (npr. fijasko s ulaganjima u firmu WeWork). Apple je izjavio da nije zainteresiran (vjerojatno zato što je pretpostavio da mu to nikako ne bi moglo proći kod regulatornih agencija), ali Nvidia jeste. Mnogi se tome protive, bojeći se monopola, između ostalog i Google, Microsoft i Qualcomm. I Nvidia radi čipove na temelju ARM arhitekture. Slika 4. prikazuje Tegra X1 čipa, koji se koristio za Nintendo Switch igraću konzolu. Čip nije imao performanse kao konkurencija. Slika 4. Nvidia Tegra X1 čip; Izvor: https://www.anandtech.com/show/8811/nvidia-tegra-x1-preview Nvidia je najjači igrač kod GPU čipova, koji se ne koriste samo za igranje i rudarenje kriptovaluta (na čemu Nvidia dobro zarađuje), nego i za "suradnju" s CPU čipovima u serverskim računalima (naročito u cloudu) i superračunalima. Posjedovanje ARM arhitekture omogućilo bi da Nvidia ima u svojim rukama obje tehnologije (za GPU i CPU), i vjerojatno bi postala teško nadmašivi lider u području umjetne inteligencije. Postoje razmišljanja da će se, ako Nvidia uspije kupiti firmu Arm i ako značajno poveća cijenu licenci ili na drugi način oteža rad drugih dizajnera ARM jezgri i čipova, desiti "prebacivanje" težišta s ARM arhitekture na open source RISC-V arhitekturu. Naravno, takav prelazak nikada nije brz i lagan (nije riječ "samo" o hardveru, nego i o pratećem softveru), ali nužda tjera na velike promjene. Procesori ARM arhitekture koriste se i u industriji, u proizvodnim procesima, a i kao ugradbeni čipovi u ostale proizvode, npr. za ugradnju u IOT uređaje i u vozila (posebno autonomna vozila). Nedavno smo (18.02.2021.) imali priliku gledati spuštanje rovera Perseverance na Mars (slika 5.). Roverovo računalo koristi BAE Systems RAD750 čip (koji je ojačan štitom protiv radijacije; počeo se proizvoditi 2001.), koji je temeljen na PowerPC 750 32-bitnom mikroprocesoru (počeo se proizvoditi 1997.). Slika 5. Spuštanje rovera Perseverance na Mars; Izvor: https://en.wikipedia.org/wiki/Perseverance_(rover) 4 No na Mars je ipak došao i ARM čip. Roverov helikopter (slika 6.) koristi 32-bitni čip Qualcomm Snapdragon 801 (čip je ARMv7, iz 2014.). Slika 6. Helikopter rovera Perseverance ima ARM čip; Izvor: https://commons.wikimedia.org/wiki/File:Anatomy_of_the_Mars_Helicopter.png Veliko zanimanje za ARM čipove u laptop/desktop korisničkom svijetu uslijedilo je tek nedavno, kad je Apple uspješno prešao sa Intelove arhitekture na ARM arhitekturu i kod računala Macintosh. Prije toga je Apple koristio ARM arhitekturu "samo" za mobitele i tablete. Zanimljivo je da je ovo Appleova peta procesorska arhitektura (četvrta kod Macintosh računala). Apple I i Apple II računala imala su MOS Technology 6502 8-bitni procesor. Machintosh je prvo koristio Motorola 68000 procesor, pa IBM PowerPC (od 1994.), pa Intel (od 2006.) i sada ARM. U Macintosh se ugrađuje SoC M1 (proizvodi ga TSMC, u 5nm tehnologiji), kojega je (kao i dosadašnje čipove za mobitele) dizajnirao sam Apple. M1 čip ima CPU jezgre koje je također dizajnirao Apple, na temelju arhitekture ARMv8.4-A, i to četiri jače jezgre Firestorm i četiri štedljivije jezgre Icestorm.