Eind maart kondigde Arm tijdens zijn Vision-evenement zijn nieuwste architectuur aan in de vorm van de Armv9-architectuur. Een vrij bijzondere gebeurtenis, aangezien de vorige grote versie, v8, al in 2011 werd uitgebracht. De nieuwe v9-generatie moet volgens Arm ook pakweg tien jaar meegaan. De architectuur is dan ook zo goed mogelijk aangepast aan de huidige en voorbereid op toekomstige eisen.
Zo zet de Armv9-architectuur sterk in op machinelearning en digital signal processing. Daarnaast is beveiliging een belangrijk speerpunt, aangezien vooral mobiele apparaten een steeds centralere rol in ons leven vervullen en veelvuldig met gevoelige, persoonlijke data werken. Bovendien is de v9-architectuur volledig compatibel met de v8-architectuur, zodat ook oudere software nog gewoon op v9 kan blijven werken.
Een korte uitleg van Arm's businessmodel is wellicht op zijn plaats. Het Britse bedrijf maakt zelf in principe geen producten, maar verkoopt zijn techniek aan partners. Zo zijn onder meer Qualcomm en Samsung licentienemers van Cortex-cores voor hun smartphone-socs, maar ook bedrijven als AMD, Apple, Broadcom, HiSilicon, Intel, NXP, Rockchip, STMicroelectronics en Texas Instruments om er een paar te noemen, nemen Arm-licenties af. De bouwstenen die ze op die manier verkrijgen, bijvoorbeeld een Cortex A55- of A78-core, mogen ze in hun eigen socs of andere microcontrollerontwerpen gebruiken.
Waar Arm's Vision Day nog wat oppervlakkig bleef over de nieuwe Armv9-generatie, gaf het bedrijf tijdens zijn Tech Day uitgebreid informatie over zijn nieuwe cores, de nieuwe generatie Mali-gpu's en het onderliggende interconnect-netwerk. We kijken naar de kleine A510-cores, de grote A710-cores en de krachigste Cortex-X2-cores. Daarnaast komen de Mali-G710-, Mali-G510- en Mali-G310-gpu's aan bod en kijken we wat al die rekenkracht aan elkaar knoopt.
Overzicht van nieuwe cpu- en gpu-cores
Het portfolio processors, of liever de cores daarvan, is onderverdeeld in verschillende segmenten. Voor het gebruik in socs worden in het algemeen processors uit de Cortex-A-serie gebruikt, die weer onderverdeeld zijn in verschillende series. De overige segmenten, de Cortex-M en Cortex-R voor respectievelijk embedded apparaten en toepassingen waarvoor realtime cores nodig zijn, laten we buiten beschouwing.
Arm Tech Day 2021: overzicht Cortex-cores
Big.Little is DynamicIQ
Big.Little is inmiddels vervangen is door de DynamicIQ-techniek, maar in beginsel is het onderliggende concept niet veranderd. Kleine, zuinige cores sparen de accu door lichte taken voor hun rekening te nemen, terwijl de grote, krachtige cores kunnen blijven 'slapen' totdat ze voor het zware rekenwerk nodig zijn. Zo wordt energie bespaard en blijft het systeem responsief.
De Cortex-A-cores zijn zoals gezegd in series onder te verdelen. Voortbordurend op de bekende big.Little-techniek (zie kader), waarbij krachtige cores gecombineerd worden met zuinigere, maar minder krachtige varianten, heeft Arm de A78-cores en de A55-cores. Daarnaast is onlangs een derde serie toegevoegd: de Cortex-X1-cores, die samen met onder meer Qualcom en Samsung werd ontwikkeld als onderdeel van het CXC-programma. De hiërarchie van de Cortex-cores is dus A5x, A7x en X. De X1-core is in onder meer de Snapdragon 888 en de Exynos 2100 te vinden.
Voor die drie cores is een Armv9-opvolger ontwikkeld. Om bovenaan te beginnen, heeft de X1 de X2 als opvolger gekregen. De Cortex-X2 moet pakweg 16 procent betere prestaties bieden dan de Cortex-X1 en bovendien twee keer de prestaties op het vlak van machinelearning. De A78 heeft als opvolger de Cortex-A710, die een iets bescheidener 10 procent prestatieverbetering krijgt, maar ook weer de ML-prestaties verdubbelt. De grootste 'winnaar' is de Little-core; de A55-opvolger Cortex-A510 krijgt namelijk maar liefst 35 procent betere prestaties en driemaal de machinelearningsnelheid.
Het onderliggende interconnect-fabric, DSU-110 of DynamicIQ Shared Unit, zorgt voor de communicatie tussen de verschillende Cortex-cores, zodat een heterogeen coreontwerp mogelijk is en de klant naar believen A510-, A710- en X2-cores kan combineren in een soc-ontwerp. Via het DSU-110 kunnen maximaal acht Cortex-X2-cores of acht 'clusters' met andere Cortex-cpu's aan elkaar geknoopt worden via DSU-110, samen met 16MB L3-cache en 32MB slc-cache als extra cachinglaag.
De verbinding met de gpu verloopt via de CoreLink CI-700 en NI-700. De CI-700 is een Coherent Interconnect en verbindt onder meer de systeemcache met de cpu-cores en het geheugen, terwijl de Network Interconnect NI-700 de verbinding verzorgt met de overige onderdelen, waaronder de Mali-gpu, maar ook de displaycontroller, modem en andere randapparatuur.
Arm Tech Day 2021: overzicht Mali
De nieuwe Mali-gpu's zijn eveneens in drie series ondergebracht. De G710 is het nieuwe topmodel, gevolgd door de G610, G510 en G310. Eerstgenoemde volgt de Mali-G78 op, samen met de G610. De huidige G57 wordt door de Mali-G510 opgevolgd en de Mali-G310 neemt het zuinige instapsegment over van de G31. Net als de cpu-cores zorgen de nieuwe Mali-gpu's voor flinke prestatieverbeteringen ten opzichte van de vorige generatie; daar gaan we straks verder op in.
De X2-cores
Tijd om naar de cpu-cores te kijken om te achterhalen hoe Arm de cores zo'n flinke boost in rekenkracht heeft gegeven. Alle nieuwe cores zijn opgetrokken rond de nieuwe Armv9-architectuur. We beginnen met het topmodel: de X2-core. De core is een doorontwikkeling van de A77-core, waarbij de ontwikkeling gesplitst werd in de big-core-A78 en de X1. Beide takken zijn weer verder ontwikkeld tot respectievelijk de Cortex-A710 en de Cortex-X2.
Een van de 'makkelijkste' stappen om meer prestaties uit de cores te persen, is het algehele systeemontwerp. Net zoals we van andere halfgeleiderfabrikanten en -ontwerpers zagen in het verleden, is een 'holistisch' chipontwerp cruciaal. Zo bereik je al een prestatieboost van 30 procent met het uitbreiden van de L3-cache, het binnen de mogelijkheden verhogen van de klokfrequentie, het reduceren van de latency en het vergroten van de geheugenbandbreedte.
De Cortex-X2 wordt exclusief voor 64bit-architectuur ontwikkeld en is zoals gezegd op de Armv9-architectuur gestoeld. In de frontend van de cpu worden instructies voor de rest van de cpu vertaald en optimaal klaargezet, zodat er een constante aanvoer is. Omdat veel instructies vaak met elkaar verweven zijn, kun je de instructie volgend op een eerdere instructie vaak voorspellen; dat is de taak van de branch predictor. Die is verbeterd in de X2-architectuur, dankzij ontkoppeling van de instructiefetch. Hij kan verder vooruitkijken en verkeerde voorspellingen sneller herkennen. Dat leidt weer tot cacheoptimalisaties en vergroot tegelijk zijn buffers.
De micro-operations die de frontend genereert, worden naar de out-of-ordercore gestuurd, waar de pipeline van elf naar tien stappen verkort is. Dat zou een snellere doorloop van instructies mogelijk maken en om de pipeline gevuld te houden, is het aantal OoO-instructies in de instructiebuffer uitgebreid. Verder is machinelearning, of eigenlijk vectorberekeningen, versneld dankzij een uitbreiding van de SVE-vectorlengte en dankzij instructies als bfloat16 en int matmul is de machinelearning-performance verdubbeld ten opzichte van de X1-core.
Aan de backend, waar de berekeningen daadwekelijk worden uitgevoerd, zijn de load-store window sizes met 33 procent vergroot. De tlb-datacaches zijn met 20 procent vergroot en ook het prefetchen van data is verbeterd. Dat leidt tot meer doorvoer in de core, waardoor de X2-core in totaal tot 16 procent ipc-verbetering toont. Dat gaat vooral over integer specint2006-prestaties. De ML-prestaties zijn zelfs verdubbeld ten opzichte van de X1-core. De vergelijkingen tussen X1 en X2 zijn overigens met gelijke caches en kloksnelheden gedaan. X2 kan in theorie hogere kloksnelheden en snellere geheugentoegang krijgen, wat de verschillen zou vergroten.
De Cortex-A710- en A510-cores
De Cortex-A710
De A710-core, of de 'big' core, is het werkpaard van de Arm-processor. De cores zijn geoptimaliseerd voor langdurige, zware taken zonder het stroomverbruik te veel op te schroeven. Sterker nog, het rendement is ten opzichte van de A78-cores met 30 procent verhoogd, met 10 procent prestatieverbetering en opnieuw dubbele ML-prestaties. Uiteraard heeft de A710 weer de Armv9-architectuur aan boord. De belangrijkste verbeteringen zijn de toevoeging van SVE2-instructies met een vectorlengte van 128bit. Voor de ML-prestaties zijn ook bfloat en int matmul toegevoegd. Vergeleken met de A78-core zijn de cacheafmetingen niet veranderd.
Aan de frontend is net als bij X2 de branch prediction verbeterd, met onder meer verdubbelde buffers voor de branch predictor en een 50 procent grotere tlb-cache. Een stapje verder in de core is, opnieuw zoals bij X2, de pipeline met één stap verkort tot tien stappen. De parallelliteit van de core is gereduceerd van zes naar vijf, wat de cores energiezuiniger maakt. Ook het ophalen van data van gedeelde caches of geheugen is verminderd, wat ook weer tot zuiniger cores leidt.
De Cortex-A510
De A510 blijft omwille van de energie-efficiëntie nog steeds een in-order architectuur, maar de core is desondanks behoorlijk snel. Met A55 vergeleken zou de A510 35 procent ipc-winst bieden, 20 procent zuiniger zijn en drie keer de machinelearningprestaties bieden. Arm vergelijkt de A510 met de vier jaar oude A73-core als voorbeeld. De in-order Little-core komt inmiddels aardig in de buurt van die OoO-core, met een ipc-verschil van minder dan 10 procent en een verschil in kloksnelheden tot 15 procent, terwijl het verbruik toch 35 procent lager is. Bovendien is de A510 nog maar de eerste kleine core; toekomstige iteraties moeten uiteraard nog meer prestaties bij lagere energie leveren.
De Cortex-A510 is een in-order core, net als de A55. Waar de A55 echter nog twee instructies per klok aankon, is de A510 een 3-wide design geworden. Dat betekent dat in de front-end en de executiecore drie instructies per kloktik verwerkt kunnen worden. Dat moet een flinke boost in prestaties geven, maar nog steeds een zuinige core mogelijk maken. Om de prestaties verder op te schroeven, zijn onder meer de branch prediction en data prefetch van de Cortex-X-serie aangepast aan de A510.
In de load/store-pipelines is ook een flinke verandering doorgevoerd. De A510 heeft net als de A55 twee pipelines, maar die zijn voor de A510 van 64bit naar 128bit vergroot. Bovendien kunnen beide pipelines nu een load-operatie uitvoeren, waar dat bij de A55 slechts een van de twee was. Dat levert tot vier keer zoveel cachebandbreedte op, zodat de core voldoende gevoed kan worden.
De grootste verandering is echter dat twee A510-cores voortaan als complex uitgevoerd worden. De twee cores in zo'n zogeheten Merged Core Microarchitecture delen onder meer hun L2-cache, L2-tlb-cache en vectorlogica, wat een flinke oppervlaktereductie van zo'n complex oplevert ten opzichte van twee losse cores. De cores blijven verder wel volledig uitgevoerd, met eigen L1-caches en execution-units. Ook is het mogelijk slechts één core in zo'n complex te bouwen, wat de kleinste bouwsteen oplevert. De toegang tot de gedeelde vectorunit in een complex is configureerbaar en zou geen performancehit op berekeningen moeten geven.
De Mali-gpu's
Overzicht
De nieuwe generatie Mali-gpu's is formeel op te delen in drie series, maar stiekem zijn er vier. De vierde serie is namelijk een afgeleide van het topmodel: de Mali-G710. De afgeleide daarvan is de G610, die voor het subtopsegment bedoeld is. De G710 volgt het huidige topmodel op: de G78. De G610 zit daar net onder als opvolger van de G68. De G510-gpu is de opvolger de G57 en bedient de mainstreammarkt, terwijl de kleinste Mali, de G310, de G31 opvolgt en voor apparaten met minder grafisch intensieve eisen bedoeld is.
Alle Mali-gpu's zijn vanaf nu op de Valhall-architectuur gebaseerd. Voorheen was de G31 nog op een oudere architectuur, Bifrost, gebaseerd. Dat is nu dus gelijkgetrokken. De topmodellen moeten in high-end smartphones en laptops als Chromebooks gebruikt gaan worden. De minder krachtige modellen moeten in onder meer mainstreamsmartphones en smart-tv's gebruikt worden. Die laatste categorie is niet onbelangrijk, aangezien volgens Arm maar liefst 80 procent van de tv's met een Mali-gpu is uitgerust, tegenover 'slechts' 50 procent van de smartphones.
Een van de fundamenteelste wijzigingen in de nieuwe Mali-generatie is de manier waarop opdrachten naar de execution-units van de gpu worden gestuurd. Voorheen werd daarvoor de Mali Job Manager-functie gebruikt, maar die is nu vervangen door de Command Stream Frontend. Dat moet beter aansluiten bij api's als Vulkan en vermindert de cpu-load bij het genereren van draw calls. Daarnaast is de execution-engine volledig opnieuw ontworpen en om de rekenkracht bij te houden, is de texture-unit verdubbeld.
De nieuwe shadercores hebben tweemaal de fma-throughput van voorheen, wat mede leidt tot 20 procent prestatieverbetering in de G710 vergeleken met de G78. De cores zijn groter geworden, zodat de gedeelde resources verdeeld worden over meer shaders, wat het rendement ten goede komt; de G710 is 20 procent zuiniger dan de G78. Ten slotte is ook de machinelearningcapaciteit verbeterd. De prestaties daarvan zijn met 35 procent verbeterd. Volgens Arm is dat handig om aan veranderende eisen voor ML-netwerken te kunnen voldoen; configureerbare ML-capaciteit op de gpu is flexibeler dan in een dedicated mpu.
De G710 en G610
De G710 is opgebouwd uit zeven tot zestien shadercores, ieder met eigen registers en schedulers. De shaders delen een advanced tiling- en memory-unit en beschikken gezamenlijk over twee tot vier L2-caches van 256 of 512kB per stuk, voor maximaal 2MB L2-cache of minimaal 512kB. Ook de vier ACE-interfaces zijn configureerbaar met een busbreedte van 128 of 256bit. Elke shadercore heeft twee execution-engines. Die bestaan uit een frontend die voor de Warps, of instructies zorgt, en twee processing-units. De processing-units hebben weer vier processing-elements, met onder andere de fma-unit en de special-function-unit. Elke shadercore heeft dus zestien processing-units met eigen resources en is gebouwd voor 64 fpa's per cycle. De nieuwe execution-units zijn dankzij hun nieuwe ontwerp aanzienlijk zuiniger en leveren meer texels per kloktik.
De G610 is in essentie identiek aan de G710, maar het aantal shadercores is beperkt tot zes. De overige componenten, inclusief de opbouw van de shaders, zijn gelijk aan die van de G710.
Mali-overzicht
G710
G610
G510
G310
Shadercores
7 tot 16
6
2 tot 6
1
Architectuur
Valhall
Valhall
Valhall
Valhall
Voorganger (architectuur)
G78 (Valhall)
G68 (Valhall)
G57 (Valhall)
G31 (Bifrost)
Performanceboost
20% (tov G78)
Nnb
100% (tov G57)
Nnb
Energy saving
20%
22%
ML-boost
35%
100%
De G510 en G310
De G510 moet voor onder meer smartphones, settopboxes, tv's, VR- en AR-apparaten gebruikt gaan worden. De G510 is net als zijn voorganger G57 een Valhall-gpu. De G310 is de eerste Valhall-gpu voor het zuinige segment, waar de voorganger G31 nog op de Bifrost-architectuur was gebaseerd. De G310 moet voor onder meer instaptelefoons en wearables gebruikt gaan worden. De G510 en G310 hebben features van de G710, zoals de Command Stream, de vernieuwde execution-units en de verbeterde texture-unit.
De G510 krijgt tien configuraties, waarbij het aantal fma-units in de gpu varieert van 96 tot 384 stuks, met twee tot zes shadercores. De exacte shaderconfiguratie is lastig te definiëren op grond hiervan, aangezien een shadercore geconfigureerd kan worden voor 48 of 64. Klanten kunnen kiezen tussen een voor prestaties geoptimaliseerd of juist een zo compact en zuinig mogelijk cfs en ook de tiler en geheugeninterface kunnen op prestaties of zuinigheid worden aangepast. De G310 is in vijf configuraties leverbaar, met 16 tot 64 fma-units in de configuraties. Er is dus maar één shadercore aanwezig. Bij de G310 zijn de logicablokken geoptimaliseerd om zo min mogelijk ruimte in te nemen. Zowel de G510 als de G310 (optioneel) ondersteunt afrc, een techniek om de geheugenbehoefte door middel van compressie te reduceren, wat de prestaties bijna zonder extra die-oppervlakte verhoogt. Ook de cfs, de tiler en het geheugensubsysteem van de G310 kunnen aan de gekozen configuratie van het aantal fma's aangepast worden om de gpu in balans te houden.
De DSU en interconnects
Een cruciale rol is weggelegd voor de interconnect, die de verschillende Cortex-cores aan elkaar en aan de rest van het systeem moet knopen. Bij Arm heet de structuur die de cpu-cores complementeert de DSU, kort voor DynamicIQ Shared Unit, met aanduiding DSU-110. De DSU-110 verbindt de cores met elkaar, maar vormt ook het L3-cache en de interface om met het geheugen en de rest van de soc communiceren. Tot de vorige generatie Arm-processors maakte de interconnect gebruik van een crossbar-topologie, maar voor betere schaalbaarheid heeft Arm gekozen voor een ringbus-architectuur voor DSU-110.
De DSU is volledig nieuw ontwikkeld met schaalbaarheid in gedachten. De Cortex-cores moeten immers schalen van eenvoudige socs met een of twee A510-cores voor wearables tot krachtige processors voor laptops met acht X2-cores. Dankzij de implementatie van een dubbele, bidirectionele ringbus-architectuur moet dat mogelijk zijn. De latency tussen cores onderling met cache is vergelijkbaar met die van de crossbar-topologie, maar de bandbreedte is vervijfvoudigd.
Een soc kan maximaal 16MB L3-cache ondersteunen, maar ook kleinere caches zijn uiteraard mogelijk. De cache wordt opgedeeld in maximaal acht in plaats van voorheen twee slices. Om voor voldoende bandbreedte voor actieve cores te zorgen, kan één core desgewenst alle slices parallel aanspreken. De ringbus heeft de mogelijkheid gekregen om hogere kloksnelheden voor piekprestaties te krijgen, maar voor zuinige toepassingen kan de klok omlaag.
Inherent is de ring, voornamelijk dankzij een lager leakage-verlies, ongeveer 25 procent zuiniger dan de vorige generatie interconnect. En dankzij powercontrol-integratie kan de interconnect in een lage energiestand, 'partial powerdown', geschakeld worden. Daarbij kunnen processen nog wel draaien, maar wordt het vermogen ten opzchte van de vorige generatie met 75 procent gereduceerd. Dat laatste is onder meer bedoeld om de accu van een telefoon of laptop te sparen als het scherm uitgeschakeld is.
Voor de communicatie met de rest van het systeem beschikt DSU-110 over vier bus-interfaces, waar de oude er maar twee had. Bovendien zijn ze 256bit breed gemaakt, zodat de toegang tot L3-cache of dram over flinke bandbreedte beschikt. Om die bussen niet te belasten met communicatie met andere onderdelen van de soc, zijn nog twee andere bussen beschikbaar: een acp, of accelerator coherency port en een peripheral port. De acp geeft hardware, zoals de naam aangeeft, coherente toegang tot de cache en ook de peripheral port heeft coherente toegang tot het geheugen. Door die poorten te gebruiken kunnen de vier grote bussen vrijgehouden worden voor de cores voor optimale toegang tot het geheugen.
CI-700 en Ni-700
De interconnects van Arm-socs bestaan uit twee onderdelen. Enerzijds is er de CI-700, ofwel de coherent interconnect , en de NI-700, kort voor de Network-on-chip. Waar de DSU de cores met elkaar via de ringbus verbindt, zorgt CI-700 voor de verbinding naar system caches. Het meshnetwerk van de CI-700 kan tot acht DSU-clusters ondersteunen, die weer uit meerdere cores kunnen bestaan. CI-700 beschikt over onder meer acht geheugeninterfaces en tal van interfaces voor overige componenten in de soc.
Elk crosspoint in het CI-700-mesh kan met vier andere knooppunten communiceren, en heeft twee verbindingen naar 'ip-blokken', zoals cpu-clusters of cache-geheugen. Daarnaast zijn ook crosspoints met andere configuraties beschikbaar. Het mesh is maximaal vier bij drie crosspoints groot, voor een totaal van twaalf verbindingspunten. Ter indicatie: een high-end smartphone heeft een mesh van 2x2, dus er is voldoende groeicapaciteit beschikbaar.
Het NI-700 zorgt voor het gros van de overige interfaces op de soc. Zo loopt data naar PCIe-interfaces, USB-lijnen of netwerkinterfaces via het NI-700. Waar de kloksnelheid van het CI-700 tot 2GHz kan worden geconfigureerd, is het NI-700 met een kloksnelheid van ongeveer 1GHz iets langzamer. Samen met de CI-700 moet de NI-700 chipontwerpers de mogelijkheid geven de ip-blokken in een chip op een flexibele manier met elkaar te verbinden en ze zo optimaal mogelijk, met zo laag mogelijke energiebehoefte, met elkaar te laten communiceren.
Tot slot: toepassingen
Cortex-toepassingen
Met drie cores heeft Arm, of hebben eigenlijk de klanten van Arm, een arsenaal aan hardware die kan worden toegespitst op specifieke workloads en scenario's. Door de Cortex-cores met elkaar te combineren, kunnen verschillende markten en toepassingsgebieden bediend worden, van laptops tot zuinige wearables.
De gedachte achter de Cortex-X2 is dan ook dat de meeste restricties wat energiegebruik wat zijn losgelaten; de core is geoptimaliseerd voor prestaties. Let wel: Arm streeft er wel naar de power-performancecurve in de buurt van een een-op-eenverhouding te houden, om het verbruik niet uit de hand te laten lopen. Het werkgebied van de Cortex-X2 is vooral singlethreaded, kortdurende piekbelasting. De A710 biedt juist een goede balans tussen langdurige workloads en energiezuinigheid, en is meer gericht op multithreaded workloads. De kleine A510-cores zijn ontwikkeld met zuinigheid als voornaamste eigenschap, waarbij ze lichte workloads en achtergrondtaken voor hun rekening nemen. Bovendien zijn de Little-cores in tegenstelling tot de big-cores en X2-cores uitgerust met een in-order architectuur, waar de A710 en X2 een out-of-order pipeline hebben.
Arm Tech Day 2021: core-configuraties
Configuraties met vier X2-en 4 A710-cores zouden bijvoorbeeld in laptops toegepast kunnen worden, terwijl heterogenere clusters met één X2-core, drie A710-cores en vier kleine A510-cores in smartphones gebruikt kunnen worden. Verder richting minder prestatiegerichte apparaten of midrangetelefoons kunnen klassieke combinaties van vier grote en vier kleine cores gebruikt worden, en verder naar 'beneden' kunnen twee A710-cores en bijvoorbeeld de A510-cores ingezet worden. Voor zuinige toepassingen als wearables zouden alleen de kleine A510-cores ingezet moeten worden.
Tot slot
Arm heeft met de Armv9-architectuur de basis gelegd voor het komende decennium en met de eerste bouwstenen voor de consumentenmarkt die we hier besproken hebben, is alles in stelling gebracht om fabrikanten in staat te stellen om snellere en veiligere producten te leveren. Vanaf dat jaar biedt Arm alleen nog 64bit-big-cores aan en een jaar later, in 2023, moeten alle cores, groot en klein, de overstap naar 64bit gemaakt hebben. Al die Arm-cores moeten niet alleen hun weg vinden naar smartphones, Chromebooks en wearables, maar ook naar infotainmentsystemen in auto's, AR- en VR-apparaten. En als het aan Arm ligt, zullen alle toekomstige compute-devices met Arm-hardware aan boord worden gemaakt. Het bedrijf verwacht in ieder geval dat er in de komende tien jaar zo'n driehonderd miljard Arm-apparaten worden gemaakt.
De A510 clusters doen me denken aan de Clustered Multi-Threading (CMT) van AMD Bulldozer en aanverwanten. Niet dat dat per se slecht is, maar grappig om de gelijkenissen te zien.
Zelf ben ik totaal niet bekend met CPU architecturen, maar schaalt het ARM platform beter/makkelijker met verschillende typen cores bij elkaar dan dan x86 processors?
Bijna aan het eind gaat het over de 'instruction decoders'. De M1 chip van Apple heeft bijvoorbeeld 8 decoders waar Intel en AMD er (max) vier hebben).
Why can’t Intel and AMD add more instruction decoders?
This is where we finally see the revenge of RISC, and where the fact that the M1 Firestorm core has an ARM RISC architecture begins to matter.
You see, an x86 instruction can be anywhere from 1–15 bytes long. RISC instructions have fixed length. Every ARM instruction is 4 bytes long. Why is that relevant in this case?
Because splitting up a stream of bytes into instructions to feed into eight different decoders in parallel becomes trivial if every instruction has the same length.
However, on an x86 CPU, the decoders have no clue where the next instruction starts. It has to actually analyze each instruction in order to see how long it is.
The brute force way Intel and AMD deal with this is by simply attempting to decode instructions at every possible starting point. That means x86 chips have to deal with lots of wrong guesses and mistakes which has to be discarded. This creates such a convoluted and complicated decoder stage that it is really hard to add more decoders. But for Apple, it is trivial in comparison to keep adding more.
In fact, adding more causes so many other problems that four decoders according to AMD itself is basically an upper limit for them.
[Reactie gewijzigd door shredder op 22 juli 2024 22:56]
He bedankt! Voor mij lijken al die architecturen iets wat andere mensen overkomt: M1 geweldig: OK, AMD's zuiniger, leuk. Dit is de eerste keer dat ik eens hoor wat de consequenties van dat Intel vs. RISC nu eigenlijk in de praktijk betekenen en dn uitgelegd op een manier waarop ik ook meteen inzie dat dat voor Intel & Co een belangrijk nadeel is t.o.v. RISC.
Tot nu toe lijkt het wel zo... 48 cores van Fujitsu is voor mij het hoogste wat ik tot nu toe heb gezien en het opschalen lijkt nog id kinderschoenen te staan.
Mja als ik naar de eisen v/d hoge core aantal workloads kijk kan ik nog niet echt inschatten in hoeveel situaties ARM opschaling daadwerkelijk een optie is. Een optie in de zin van energie verbruik vs. warmte afgifte vs. performance.... websites hosten kan je overall wel maar X86 bevat zoveel optimalisaties (zoals SSE) dat ik een vergelijking lastig vind
Anandtech heeft in een uitgebreide benchmark deze cpu vergeleken met een Epyc en Xeon cpu. Blijkt dat de CPU heel aardig schaalt en dat het een voordeel voor ARM is dat deze 80 echte cores heeft ipv hyperthreading. Verder valt op dat deze ARM cpu de clockfrequemtie constant houdt onder verschillende workloads en dat het stroomverbruik variabel is. Bij AMD en Intel wordt de clock teruggeschroefd als de TDP wordt overschreden. Je zou zeggen dat er dus nog meer piek performance uit de ARM cpu te persen valt.
Sterker nog: De volgende Altra Ampère heeft 128 cores en is -nog steeds- gebaseerd op ARM. RISC is juist veel gemakkelijker te schalen dan CISC, volgens mij. Grotendeels omdat RISC parallelisatie in de hand werkt.
Ik las laatst op Anandtech dat de branch predictor bij RISC/ARM veel effectiever instructies kan bekijken omdat ze allemaal dezelfde lengte hebben. Bij x86/x64 zijn er instructies van de verse lengtes wat het decoderen en voorspellen veel lastiger maakt.
Ampere Computing heeft een Altra serverprocessor met 80 Neoverse N1 cores en met de dit jaar uit te komen Altra Max worden dat er 128. Voor volgend jaar heeft Ampere al een serverprocessor op de planning staan met 128 of meer eigen ontworpen ARM-compatibele cores. Deze processoren zijn wel volledig op hyperscalers en cloud computing gericht, hoewel de servers uiteindelijk ook in bedrijven gebruikt zouden kunnen gaan worden.
[Reactie gewijzigd door psychicist op 22 juli 2024 22:56]
Apple heeft met ARM samengewerkt aan de ontwikkeling van de ARMv8 architectuur om het te laten voldoen aan de eigen wensen. ARMv9 is een nieuwe baseline waarin de verschillende 8.x extensies die (voornamelijk) Apple gebruikt, standaard opgenomen zijn. Dus Apple heeft inderdaad een goede keus gemaakt met de ARM architectuur en de ARMv8 instructieset, omdat het ARM opdracht heeft gegeven om deze ontwikkelingen door te voeren.
Dat is ook de reden waarom Apple als eerste met een 64-bit ARM SoC kwam, ruim 2 jaar voor de eerste ARM Cortex A53 core beschikbaar kwam.
Wat maakt de m1 van apple dan anders dan andere arm ontwerpen. apple haalt schijnbaar extreem veel meer snelheid uit hun arm ontwerp dan anders.
Komt versie 9 van dit arm ontwerp dan qua snelheid in de buurt van apple ?
Het artikel van Erik Engheim is al vaak aangehaald en ik kan eigenlijk alleen maar aanraden om ze allemaal te lezen, omdat er toch vaak leuke dingen in staan.
Het komt er simpelweg op neer dat ARM zelf bij het ontwerpen van zijn cores niet al te agressief kan zijn qua transistoren en stroomverbruik, omdat deze in vele uiteenlopende chips terechtkomen. Als ze dan te duur worden om in licentie te nemen, zou de klant (in dit geval een chipbedrijf) ervoor kunnen kiezen om cores van een ander bedrijf te gaan gebruiken (zoals SiFive, als de precieze instructieset weinig uitmaakt).
ARM heeft nu met de Cortex X serie van cores een aantal restricties laten varen, waardoor er hogere prestaties behaald kunnen worden en meer verbruikt mag worden. Daarnaast is het ook agressief op het gebied van servercores zoals Neoverse V1 en N2.
Desondanks kunnen gespecialiseerde cores zoals die van Apple, Fujitsu, Ampere (Siryn) en Qualcomm (Nuvia) hogere prestaties behalen, doordat er teams van gerenommeerde chipontwikkelaars aan werken.
Dat is alleen voor de allerbesten weggelegd en de rest moet het doen met verder prima, maar minder presterende ARM cores. ARMv9 is vooral als nieuwe standaard belangrijk vanwege de toegenomen veiligheid en SVE2 instructies, waardoor er een serieuze tegenhanger van AVX is ontstaan.
De implementaties en de prestaties hiervan zullen nog steeds in grote mate kunnen verschillen, maar als nieuwe baseline is het geweldig, omdat iedere chip van je telefoon tot de grootste supercomputer al deze instructies ondersteunt.
Dat is niet bij alle x86 processoren het geval. Sterker nog, nu is voor het eerst AVX-512 beschikbaar op Intel clientprocessoren. De aanpak van ARM is geheel anders.
Apple zal ook in de toekomst voornamelijk gaan concurreren met Qualcomm, tenzij AMD en Intel het licht zien en ook deze markt in duiken. Ik ben op het moment slechts een laptop verwijderd van 100% alles op ARM draaien, maar ik vind het huidige aanbod nog net niet krachtig genoeg qua prestaties en uitbreidingsmogelijkheden.
[Reactie gewijzigd door psychicist op 22 juli 2024 22:56]
Ik zou de review van Anandtech aanraden over de M1 en dan ook eerdere reviews van de processors van Apple.
Waar het in het kort op neer komt is dat Apple grote cores heeft die best wel wat ruimte innemen op een chip en hoe groter de chip hoe duurder hij wordt. Waarom? Je krijgt minder chips uit een wafer waardoor je hogere kosten hebt. Een bedrijf als Apple kan zich dat permitteren om een duurdere chip af te nemen vanwege de gigantische aantallen die ze afnemen, maar ook doordat ze die chip alleen zelf gebruiken en ook nog in verschillende producten.
Neem nu een concurrent zoals Qualcomm of Mediatek - zij verkopen hun chips aan klanten en hebben daar met concurrentie te maken. Stel, Qualcomm ontwikkeld net zo’n grote chip als Apple en de kosten zijn 15 dollar per chip meer (fictieve prijs) dan Mediatek dan kan dat fabrikanten mogelijk overhalen om bij de concurrent te gaan shoppen.
Een ander voordeel voor Apple is dat ze zowel de hard- en de software kant bedienen en dus naadloos op elkaar kunnen afstemmen. Ze weten bij Apple ruim van tevoren welke kant ze op willen en zorgen dan dat de chips gaandeweg de kracht hebben om het ook daadwerkelijk uit te voeren.
Zie de AR mogelijkheden en de berekeningen die lokaal worden uitgevoerd in een AI-netwerk en het gerucht van een AR bril over 2-3 jaar… ze hebben echt een flink optimalisatie voordeel wat niet onderschat kan worden en dus niet puur en alleen aan de chip kan worden toegeschreven.
Jazeker wel. De M1 loopt rondjes om zijn intel broers. Die zijn ook geoptimaliseerd. Apple krijgt het voor elkaar om de M1 zonder koeling net zo snel te laten draaien als de duurste 16” Macbook Pro.
Sowieso ook omdat Apple altijd als eerste een nieuw TSMC-proces gebruikt (behalve bij N7+), en TSMC optimaliseert ook nog eens de processen speciaal voor Apple.
Dus Apple koopt niet alleen bij TSMC het nieuwste proces dat Qualcomm en anderen pas maanden later krijgen, maar TSMC maakt ook nog eens een speciale Apple-variant van het proces dat later niet aan Qualcomm / AMD verkocht wordt.
Of de ARM9 architectuur wel of niet veel afgenomen gaat worden zal toch vooral afhangen van de overname door nVidia. Veel van de huidige afnemers hebben niet heel vertrouwen in het beschikbaar blijven van betaalbare licenties na een dergelijke overname.
Het bedrijf verwacht in ieder geval dat er in de komende tien jaar zo'n driehonderd miljard Arm-apparaten worden gemaakt.
Wow! Op bijna 8 miljard mensen is dat dus per jaar 37,5 ARM-apparaten (niet cores?) per inwoner? Klopt dat?
Voor mijn gevoel bezit ik zelf nu rond de tien ARM-apparaten, maar wellicht mis ik bepaalde zaken zoals keukenapparatuur (allemaal niet 'smart', dus geen idee of daar zo'n chip in zit), omvormer, cv-ketel? Mogelijk dat er ook ARM-chips zitten in Windows laptops? Hoe dan ook, dat zijn apparaten die wel al jaren meegaan. Plus, het merendeel van die apparaten worden gebruikt door het hele huishouden, niet per persoon.
(Ik lees dat de internationale quote is: 'next 300 billion Arm-based chips', dat is dus nog steeds niet cores, maar in een device kunnen meerdere ARM chips zitten, neem ik dan aan. Nog steeds een enorm aantal).
[Reactie gewijzigd door Ultimus XI op 22 juli 2024 22:56]
Weet u wat het is, er is ook semi-collectief eigendom.
We gebruiken bijvoorbeeld ook stoplichten, misschien hebben de dijken sensoren die communiceren, sattelieten, wijkkastjes voor internet, je gaat naar een theater en er zullen wel wat controllers zijn voor belichting, een informatie-paneel tijdens konings-dag waar het druk is, de bushokjes die vertellen wanneer de bus komt enz.
Vervolgens is er ook nog Amazon dat duizenden ARM-chips in datacentra stopt, en supercomputers zoals Fugaku.
Het gaat hier en daar echt over mijn pet heen haha maar ik vind het wel een ongelofelijk interessant tijdperk. Ik herinner me nog dat ik een 486 DX2 100 bezitte met 8mb werkgeheugen. Ik was voor een tijdje het mannetje tot de "Pentiums" daar ineens waren. Het was zo een moment in de computerwereld dat alles leek te veranderen. Pentium was het antwoord op vooruitgang in de processor wereld.
Met de lancering van de M1 heeft Apple laten zien dat er ongelofelijk veel prestaties te behalen zijn met een ARM gebaseerd systeem. Met een handje vol stroom loopt het zonder koeling rondjes om menig AMD of Intel ingerichte computer. En dan is dat pas hun eerste versie. Wat ik ook slim vind van Apple is dat ze deze chip gewoon overal doorvoeren. Van de iPad, laptop tot desktop computer. Ze hoeven zich dus niet druk te maken om 10 varianten. Keep it simple.
En dan moet de M2 of een snellere versie van de M1 voor hun 'pro' lijn nog komen. Als ik als leek kan zien dat met ARM dergelijke prestaties worden behaald tegen een fractie van de energie, mag ik aannamen dat dit ook gezien en genoteerd is bij Intel en AMD.
Misschien zien we over een paar jaar meer spelers op de CPU markt voor de doorsnee gebruiker dan alleen Intel of AMD.
Een jaar of 4 geleden ben ik van Apple naar PC verhuisd omdat de prestaties / hardware op dat moment in het Apple honk niet naar mijn zin waren. Mijn huidige computer, een 6 core intel cpu met 32gb geheugen en een leuke videokaart heeft het steeds moeilijker in de grafische programma's waarin ik werk. Misschien is het de hardware dat langzaam minder presteerd en tegelijk de software dat steeds meer kan en de computer belast.
Hoe dan ook, met de nieuwe gereedschappen die Apple aanbied heb ik best wel oor naar een stille zuinige ARM monster. Zou zou wel een contrast zijn. Mijn grote PC kast vervangen oor een Mac mini, zo groot als een boek en mijn huidige PC omver loopt qua prestaties.
Voor mijn perceptie zijn we dus op zo een "Pentium" punt aangekomen, en dat het landschap in computerland weer flink gaat veranderen!
[Reactie gewijzigd door RoyK op 22 juli 2024 22:56]
Als je, zoals ik een Acorn Archimedes heb gehad, met de allereerste ARM erin op 8MHz met 1MB RAM, dan is een Apple M1 een wonder. Hij is overigens zo snel omdat de RAM op SOC zit.