Preview: ARM's nieuwe CPU- en GPU-architecturen

Inhoudsopgave
  1. 1. ARM in 2018
  2. 2. ARM als stille kracht 
  3. 3. DynamIQ: Slim samenwerken 
  4. 4. Cortex-A55: Efficiëntie
  5. 5. Cortex-A75: High-performance 
  6. 6. GPU: Mali-G72 
  7. 7. Complete systemen 
  8. 8. Conclusie
  9. 9. Reacties

ARM in 2018

ARM heeft vorige maand op zijn Techday aangekondigd wat het in petto heeft voor 2018. Het bedrijf heeft nieuwe CPU-cores, een nieuw GPU-ontwerp en vernieuwde versies van de interfaces die alle onderdelen aan elkaar knopen laten zien. Deze ontwerpen zullen volgend jaar in een breed scala aan mobiele apparaten te vinden zijn, waarmee we dus alvast een kijkje in de toekomst kunnen nemen. 

Hieronder volgt een beknopt overzicht van wat ARM aangekondigd heeft en wat we dus in dit artikel bespreken.

  • DynamIQ: Dit platform volgt big.Little op om processorkernen met elkaar te verbinden. Verschillende soorten kernen kunnen in één cluster met een gedeelde cache worden gecombineerd; ook zijn er meer en grotere clusters mogelijk.
  • Cortex-A55: De nieuwe efficiënte CPU-kern die Cortex-A53 moet vervangen. Hij moet efficiënter zijn en beter presteren, en is geschikt voor DynamIQ.
  • Cortex-A75: De nieuwe krachtige CPU-kern die Cortex-A73 moet vervangen. Gericht op single-core prestaties, moet ook deze efficiënter zijn en geschikt voor DynamIQ.
  • Mali-G72: Het tweede high-end GPU-ontwerp gebaseerd op de Bifrost-architectuur. De opvolger van Mali-G71 moet sneller, efficiënter en klaar voor nieuwe technologieën zijn.
  • Nieuwe systemen: ARM levert ook complete systemen met CPU, GPU en interface geïntegreerd. Deze worden vernieuwd met de bovenstaande technologieën en moeten zich tevens gaan richten op de servermarkt.

De meeste fabrikanten hebben ongeveer een jaar nodig om een nieuw CPU- of GPU-ontwerp in een chip te integreren, in het snelste geval is dit zo'n 8 maanden. Dit betekent dat we op zijn vroegst in december of januari van volgend jaar de eerste chips met deze nieuwe technologieën gaan zien. Met de aankondigingen van vandaag krijgen we alvast een vooruitblik op wat mobiele apparaten ons in 2018 gaan bieden.

ARM als stille kracht 

Waar we verbeteringen aan beeldschermen, camera's en accu's nog altijd vrij snel merken, zijn innovaties op het gebied van processors in mobiele apparaten de laatste jaren minder merkbaar. Niet in de laatste plaats omdat op dat vlak de ontwikkelingen de afgelopen tien jaar heel snel zijn gegaan. We kunnen op onze smartphones en tablets inmiddels complexe 3D-games spelen, video's kijken in hoge resolutie en elke webpagina is in een fractie van een seconde geladen. Om te zien hoe snel die ontwikkeling gegaan is, hoeven we alleen maar terug te kijken naar de eerste smartphones zoals we die zo'n tien jaar geleden leerden kennen.

In 2008 liet Apple een indrukwekkende demonstratie zien. Het bedrijf kreeg het voor elkaar om de website van National Geographic in slechts 21 seconden te laden, ruim twee maal sneller dan de vorige iPhone. Een prestatie waardoor het hele publiek destijds een luid applaus liet klinken. In deze tijd kon je amper of niet video registreren met je smartphone, waren 3D-games iets voor consoles en was virtual reality een hype uit de jaren '90. In de afgelopen 10 jaar hebben mobiele chipfabrikanten echter flink gecompenseerd voor het gebrek aan innovatie in het desktopsegment: CPU's zijn zo'n 100 maal sneller geworden en GPU's ruim een factor 250, waarmee Moore's Law in elk geval in de mobiele wereld meer dan in stand gehouden is.

Bij de meest consumenten zijn namen als Qualcomm, Samsung en Apple vrij bekend. Het eerste bedrijf profileert zich als dé fabrikant van mobiele SoC's en is te vinden in toestellen van vrijwel elke Android-fabrikant, terwijl Samsung en Apple maar al te trots zijn op hun eigen mobiele chips en elk jaar graag vertellen hoeveel sneller ze geworden zijn. Toch is er maar een bedrijf dat al deze innovatie mogelijk heeft gemaakt: ARM.

Dit bedrijf is bedenker van de ARM-architectuur, met als belangrijkste onderdeel de instructieset. ARMv6 was de versie beschikbaar bij de intrede van de smartphone zoals we hem nu kennen, waarna ARMv7 en ARMv8 volgden. Deze laatste bracht de 64-bit instructieset, AArch64, die nu overal gebruikt wordt. Alle mobiele semiconductor-fabrikanten die hun eigen CPU-cores ontwerpen hebben een licentie op deze instructieset, waaronder Apple, Samsung, Qualcomm, Nvidia, AMD en Intel. 

ARM ontwerpt ook zelf kant-en-klare processorkernen die fabrikanten in hun eigen chips kunnen gebruiken, waarmee we aankomen op het onderwerp van vandaag. Het ontwerpen van een eigen core is een enorm complex en intensief proces, waar veel bedrijven het budget en de expertise voor missen. Bedrijven zoals MediaTek, HiSilicion en Rockchip gebruiken daarom de processorkernen van ARM in hun mobiele chips. Ook de giganten Qualcomm en Samsung gebruiken nog steeds ARM-cores in hun instap en mid-range SoC's. Tegenwoordig biedt ARM een derde optie, in de vorm van een aangepast ARM-ontwerp. Dit is wat bijvoorbeeld Qualcomm doet met de Snapdragon 835, waar aangepaste Cortex-A53- en -A73-kernen inzitten.

Naast processoren zit ARM ook al een tijdje in de GPU-markt. Hier wordt eenzelfde concept als bij de CPU-tak gehanteerd: bedrijven kunnen een licentie afnemen op een GPU-ontwerp dat ze in de eigen producten mogen implementeren. Sinds ARM in 2012 de Midgard-architectuur heeft geïntroduceerd, zijn de GPU's qua features vrijwel gelijk aan de desktop GPU's van AMD en Nvidia, met ondersteuning voor API's zoals Vulkan, Open GL ES, Open VG en Open CL. De GPU's excelleren voornamelijk in performance per watt, een essentieel onderdeel voor mobiele chips.

Vorig jaar introduceerde ARM de Bifrost-architectuur, wat een flinke vooruitgang was ten opzichte van Midgard. Bitforst is ruim 20% energie-efficiënter, neemt minder ruimte in op een chip en kan verder opgeschaald worden. In onze review van de Galaxy S8 was dit duidelijk te zien: de S8 met Mali-G71 presteerde zo'n 50% beter dan de Mali-T880 in de Galaxy S7. Naast Samsung zijn MediaTek en HiSilicon de grootste afnemers van ARM's GPU-portfolio, maar ook Rockchip, Allwinner en nu ook Xiaomi maken geregeld gebruik van deze GPU-ontwerpen.

DynamIQ: Slim samenwerken 

Net als op de desktop is de trend bij mobiele chips alweer de nodige jaren om meerdere rekenkernen te combineren, in plaats van louter te focussen op een hogere kloksnelheid. Anders dan op de desktop wordt hierbij ook gebruik gemaakt van verschillende soorten rekenkernen. ARM had hier in eerste instantie big.Little voor, dat kernen opdeelde in clusters van dezelfde soort. Dit platform maakte bijvoorbeeld de bekende combinatie van een cluster efficiënte Cortex-A53-kernen met een cluster krachtige Cortex-A57-kernen mogelijk, een behoorlijk succesvol concept toen het eenmaal werkte (de eerste big.Little SoCs kenden de nodige kinderziektes). Dit platform heeft echter ook nu nog de nodige beperkingen, reden voor het bedrijf om over te stappen naar wat nieuws. 

DynamIQ is het nieuwe platform van ARM, dat big.Little opvolgt. Met deze architectuur moet het mogelijk zijn om verschillende soorten processorkernen te gebruiken binnen hetzelfde CPU-cluster. Zo kan bijvoorbeeld 1 krachtige Cortex-A75 kern met 7 efficiëntere Cortex-A55 kernen worden gekoppeld in hetzelfde cluster. Doordat alle kernen beschikken over dezelfde L3-cache is het migreren van taken van de ene core naar de andere core een stuk sneller en eenvoudiger. Ook kunnen er nu maximaal acht kernen per cluster gebruikt worden, waar dat bij big.Little nog vier was.

DynamIQ heeft naast de nieuwe big.Little-implementatie ook nauwkeuriger controle over de individuele cores en caches. De frequentie van de CPU-kernen kan preciezer en sneller aangepast worden en dat kan nu ook individueel per core. De L3-caches hebben de mogelijkheid gekregen om gedeeltelijk uitgeschakeld te worden, ten einde stroom te besparen.

Daarnaast zijn de interconnects tussen de verschillende onderdelen flink onderhanden genomen. De latency tussen de caches is hierdoor lager en de bandbreedte is hoger. Doordat de CPU's over eigen L2-caches beschikken moet er minder vaak een cache-miss plaatsvinden, iets waar we later in de dit artikel verder op ingaan.

Meer over DynamIQ lees je in onze eerdere preview hierover.

Cortex-A55: Efficiëntie

ARM’s Cortex-A53 is sinds de introductie van ARMv8 een van de succesvolste ontwerpen van het bedrijf geweest. De processorkern is in honderden miljoenen apparaten terecht gekomen, waaronder auto’s, TV’s, netwerkapparatuur en zelfs satellieten. In totaal zijn er 1,7 miljard A53-cores verscheept. Dit succes moet nu voortgezet worden met Cortex-A55, de volgende generatie mid-range core.

Voordat we ingaan op de architecturale veranderingen, eerst wat getallen. Cortex-A55 blijft gericht op redelijke performance bij een zo laag mogelijk verbruik en is dus geen alternatief voor high-performance cores zoals de A72 en A73. Toch zijn er mooie verbeteringen geboekt voor een ontwerp dat al behoorlijk geoptimaliseerd is. Integer-performance, het rekenen met hele getallen, is 18% sneller, terwijl floating point, het bewerken van kommagetallen, 38% sneller gaat. In benchmarks leidt dit tot 14% hogere prestaties in Google’s Octane v2 en 21% meer in Geekbench v4. De core is zo'n 3% meer stroom gaan verbruiken, maar door de hogere prestaties opereert hij alsnog rond de 15% efficiënter. Deze verbeteringen zijn puur architecturaal, dus zonder proces- of frequentieaanpassingen.

Een belangrijk punt bij alle ARM-ontwerpen is dat niet alle cores gelijk zijn, zelfs al hebben ze dezelfde naam. Een A55-kern kan bijvoorbeeld op heel veel manieren geïmplementeerd worden. Verschillende hoeveelheden L2- en L3-cache, wel of geen floating point- en wel of geen cryptografie-eenheid behoren allemaal tot de opties. Zo zijn er bij de A55-core meer dan 3000 verschillende configuraties, net zoals er bij de A75-CPU en Mali-G72-GPU veel verschillende implementaties mogelijk zijn.

Core A32 A35 A53 A55 A57 A72 A73 A75
Cores per cluster 4 4 4 8 4 4 4 8
Pipeline length 8 8 8 8 15-19 15-19 11-15 ?
Decode width 2 2 3 3 3 3 2 3
Structuur In order In order In order In order Out of order Out of order Out of Order Out of Order
Max. L1-cache (I/D) 32 / 32 kB 64 / 64 kB 64 / 64 kB 64 / 64 kB 48 / 32 kB 48 / 32 kB 64 / 64 kB 64 / 64 kB
Max. L2-cache - - - 256 kB - - - 512 kB
Max. Cluster cache 1 MB 1 MB 2 MB 4MB 2 MB 4 MB 8 MB 4MB
Verschillende CPU's in cluster Nee Nee Nee Ja Nee Nee Nee Ja

Globaal gezien verschillen Cortex-A53 en -A55 niet veel van elkaar. Beide zijn in-order CPU’s: ze verwerken instructies in de volgorde waarop ze binnenkomen. Een nadeel daarvan is dat als de data niet in de cache te vinden is, de processor soms erg lang moet wachten tot deze data uit een hogere cache of het werkgeheugen is gehaald. In-order CPU’s zijn relatief simpel, compact en efficiënt, zolang ze maar hun data op tijd krijgen.

De lengte van de pipeline, het aantal stapjes wat een instructie moet doorlopen voordat hij verwerkt is, is ook gelijk gebleven. Met een 8-stage pipeline is hij vrij kort en in lijn met andere in-order ontwerpen. Een korte pipeline heeft als voordeel dat als twee opvolgende instructies dezelfde data moeten bewerken er minder lang op elkaar gewacht hoeft te worden.

 

Wat wel veranderd is, is hoe de core aan zijn data komt. Je kan een processor nog zo veel rekeneenheden geven, maar als deze de benodigde data niet op tijd krijgen kunnen ze nog altijd niets doen en worden klokcycli verspild. Een van de belangrijkste aspecten bij moderne processors is het op tijd krijgen van de juiste data bij de juiste core. Deze data wordt opgeslagen in caches, waarvan moderne processors meerdere lagen bevatten.

Cortex-A53 had een kleine, maar zeer snelle L1-cache van 64 kB. De grotere L2-cache van maximaal 2 MB was gedeeld met alle cores van het cluster en daarbij verder van de core geplaatst. Om iets uit de L1-cache te halen vereiste 3 klokcycli, terwijl de L2-cache 13 cycli nodig had. Omdat we het hier over in-order CPU’s hebben, kunnen ze al die klokcycli geen andere instructies uitvoeren.

Cortex-A55 is dit anders aangepakt: deze beschikt over een eigen L2-cache. Elke core heeft naast 64 kB L1-cache ook nog een eigen, ongedeelde, L2-cache van maximaal 256 kB. Daarbij kost het nu maar 2 klokcycli om data uit L1 te halen en slechts 6 voor de L2-cache, minder dan de helft. Er is ook nog steeds een gedeelde cache tussen alle cores van het cluster aanwezig, die nu dus een L3-cache is geworden. Deze is maximaal 4 MB groot en heeft een latency van 21 cycli. Dat is dus het compromis wat gemaakt is: de gedeelde cache staat verder weg dan bij het oude ontwerp. De bandbreedte vanuit L3 is dan wel weer 2 maal zo groot.

Mocht de juiste data dus niet op tijd in het register staan, dan kost het over het algemeen minder klokcycli om deze data uit een cache te halen. Om te zorgen dat zo vaak mogelijk de goede data in de caches staat, wordt een branch predictor gebruikt. Deze probeert te voorspellen welke code uitgevoerd gaat worden, zodat het alvast de benodigde data uit het werkgeheugen kan halen of van een hoger cache level naar een lagere cache kan plaatsen. Branch predictors zijn een van de elementen van processors waar nog steeds veel vooruitgang geboekt wordt.  De laatste jaren zien we de opkomst van kleine neurale netwerken om deze voorspellingen te doen. Onder andere AMD’s Zen-kernen gebruiken zo’n neuraal netwerk voor branch prediction en nu integreert ook ARM dit in haar cores. Verder is de branch predictor gefinetuned om precies gelijk te lopen met de rest van de rekenkern, zodat er geen enkele klokcyclus latency is en de branch predictor dus precies weet waar de rekenkern zich in de code bevindt en welke data het daarvoor gebruikt.

Om verdere bottlenecks uit het ontwerp te halen zijn de eenheden die data laden en opslaan uit elkaar getrokken. Waar Cortex-A53 een gezamenlijke load/store-pipeline had, is deze bij A55 gesplitst. Hierdoor kan er tegelijk data geladen en opgeslagen worden. In sommige gevallen kan dit tot flinke prestatieverbeteringen leiden.

Tot slot zijn er nog een aantal geavanceerde instructies toegevoegd. Net zoals we recent bij een aantal andere CPU- en GPU-ontwerpen hebben gezien, kunnen nu twee 16-bit floating point operaties uitgevoerd worden in plaats van een 32-bit FP-operatie. Dit is vooral geïmplementeerd voor het trainen van neurale netwerken; deze hebben niet de precisie nodig die 32-bits operaties bieden, maar kunnen wel meer performance gebruiken. Het splitsen van een 32-bits operatie in twee 16-bits operaties is dan een relatief makkelijke manier om performance te verdubbelen.

Cortex-A75: High-performance 

Cortex-A55 is dus geoptimaliseerd voor code die bovenal efficiënt uitgevoerd moet worden. In sommige situaties is er echter behoefte aan veel single-threaded performance, bijvoorbeeld voor het renderen van verschillende lagen van een user-interface. Ook zijn er applicaties die simpelweg niet goed schalen over meerdere threads, of er niet voor zijn geoptimaliseerd. Voor deze gevallen heeft ARM een serie high-performance cores, waarvan de nieuwste de A75 is.

Laten we wederom beginnen met de getallen. Er zijn mooie verbeteringen geboekt, zo meldt ARM, met 22% vlottere integer-performance, 33% hogere floating point- en NEON-performance en 16% snellere geheugendoorvoer. Samen met een aantal andere optimalisaties, onder andere in de geheugenstructuur, resulteerde dit in 48% hogere Octane v2 en 34% hogere Geekbench v4 scores in vergelijking met die van het voorgaande Cortex-A73-ontwerp. Ook deze verbeteringen zijn puur architecturaal, dus zonder proces- of frequentie-aanpassingen.

De belangrijkste onderscheidende eigenschap aan ARM’s high-performance cores is dat het out-of-order ontwerpen zijn. In tegenstelling tot in-order kernen hoeven deze zich niet strikt aan de volgorde van instructies te houden. Als voor een instructie de data even niet beschikbaar is, kunnen andere instructies nog wel gewoon uitgevoerd worden. Belangrijke vereiste hiervoor is dat er moet worden bijgehouden welke data deze nieuwe instructies veranderen, en of dit geen conflict oplevert met de instructie die nog in de wachtrij is geplaatst.

Core A32 A35 A53 A55 A57 A72 A73 A75
Cores per cluster 4 4 4 8 4 4 4 8
Pipeline length 8 8 8 8 15-19 15-19 11-15 ?
Decode width 2 2 3 3 3 3 2 3
Structuur In order In order In order In order Out of order Out of order Out of Order Out of Order
Max. L1-cache (I/D) 32 / 32 kB 64 / 64 kB 64 / 64 kB 64 / 64 kB 48 / 32 kB 48 / 32 kB 64 / 64 kB 64 / 64 kB
Max. L2-cache - - - 256 kB - - - 512 kB
Max. Cluster cache 1 MB 1 MB 2 MB 4MB 2 MB 4 MB 8 MB 4MB
Verschillende CPU's in cluster Nee Nee Nee Ja Nee Nee Nee Ja

Een groot deel van de verbeteringen die in de Cortex-A55 zijn doorgevoerd, zijn ook terug te vinden in de A75. Er is ook hier een eigen L2-cache aanwezig in plaats van een gedeelde; deze kan 512 kB groot zijn bij A75. De gedeelde cache is nu een L3-cache van maximaal 4 MB, de L1-cache is onveranderd met 64 kB voor data en eenzelfde hoeveelheid voor instructies, hoewel de bandbreedte naar de kern wel is verhoogd. Ook het A75-ontwerp heeft profijt van deze eigen L2-cache per core, de latency is van 19 klokcycli afgenomen naar slechts 8. Wederom is het compromis dat de clustercache iets verder weg is, nu 25 cycli i.p.v. 19.

Een andere, belangrijker verandering is dat ARM terug is gegaan naar een 3-wide core-ontwerp. Moderne superscalar processors kunnen meer dan één instructie per core tegelijk verwerken. Het maximale aantal instructies dat per cyclus kan worden verwerkt wordt vaak de width oftewel de breedte van een core genoemd, refererend aan de breedte van de pipeline. Hoe breder een processor wordt, hoe lastiger het is om alle data op tijd aan te voeren. Ook is het een uitdaging om interne data-conflicten te voorkomen, zeker omdat er ook nog out-of-order geopereerd mag worden.

De breedte van een ontwerp is vaak te herkennen aan de decoder. Dit is het onderdeel dat de binnengekomen instructies vertaalt naar machinecode waar de rekeneenheden mee overweg  kunnen. Dit is een van de meest efficiënte processen binnen een kern, met als gevolg dat hier zelden de bottleneck zit. Waar ARM na Cortex-A57 en -A72 met A73 voor een 2-wide decoder had gekozen, is het met A75 weer terug bij een decoder die drie instructies per cyclus kan decoderen.

Om de out-of-order mogelijkheid zo goed mogelijk te benutten is er een groot aantal rekeneenheden aanwezig. Twee voor load/store-operaties, twee voor NEON en floating point, twee voor integer en een voor branch-uitvoering. Mocht er een cache miss plaatsvinden en de data zich dus niet in de L1-cache bevinden, is er plaats om 12 integer, 8 load/store en 8 NEON/FP instructies op te slaan voordat er gewacht moet worden op de data voor de originele instructie. In vrijwel alle gevallen is als de data zich wel in de L2-cache bevond deze ondertussen al uitgevoerd en heeft de kern dus niet hoeven stilliggen. Als ook de L2-cache gemist wordt en er op zoek moet worden gegaan in L3 of zelfs het werkgeheugen, dan moet de processor wel even pauzeren.

De branch predictor is tevens verbeterd met dezelfde aanpassingen die we in de A55-kern zagen. De branch predictor is afgesteld zodat hij geen enkele klokcyclus achterloopt , en maakt ook gebruik van een neuraal netwerk.

Tot slot is er ondersteuning voor een aantal nieuwe instructies. Het is mogelijk om twee 16-bit floating point operaties uit te voeren in plaats van een 32-bit operatie, wat net als bij A55 de doorvoer verdubbeld. Daarnaast worden 8-bit dot-products nu als enkele instructie ondersteund, een matrix-operatie die voornamelijk nuttig is voor neurale netwerken.

GPU: Mali-G72 

Vorig jaar jaar heeft ARM een flinke stap gezet qua GPU-performance. Het bedrijf introduceerde een nieuwe architectuur, Bifrost, en een nieuwe GPU, de Mali-G71. Deze heeft zijn weg gevonden naar de Samsung Galaxy S8 en S8+, en op onze testbank merkten we in ieder geval dat winst van 50% waar ARM vorig jaar over sprak ook werd waargemaakt.

De Mali-ontwerpen zijn in 2016 in een miljard apparaten terechtgekomen. Aangezien het bedrijf in 2012 nog 150 miljoen implementaties had, is er een flinke groei te zien. Het bedrijf geeft aan dat haar GPU’s in ongeveer de helft van de smartphones en tevens de helft van de mobiele VR-headsets zit. Dit zijn ook meteen de twee belangrijkste markten waar ARM ook graag verder in wil groeien.

Mali-G72 moet nu de G71 opvolgen. Het ontwerp is wederom op de Bifrost-architectuur gebaseerd, maar heeft wel een flink aantal aanpassingen meegekregen. Het bedrijf claimt zelf 40% meer performance ten opzichte van 2017 apparaten, hoewel het daarbij waarschijnlijk de winst van nieuwe semiconductor-processen meeneemt. Helaas geeft het bedrijf over hun nieuwe GPU niet zoveel details als het deed over de CPU-kernen, maar valt er wel wat over te zeggen.

Zoals de kleine verhoging in het serienummer al insinueert, is de G72 echt een optimalisatie. De efficiëntie van de rekeneenheden moet iets hoger zijn, er zijn een paar kleine features toegevoegd voor complexe grafische features en de processor zou verder moeten schalen, hoewel het maximum aantal clusters met 32 onveranderd is.

De moderne, hogeresolutieschermen op smartphones en VR-headsets brengen een aantal uitdagingen met zich mee. De texturen moeten steeds gedetailleerder zijn, waardoor het aantal benodigde vertexen, de datapunten op een vorm of oppervlak, toeneemt. Om al deze texturen op de juiste plaats te krijgen neemt het aantal draw calls ook toe. Verder worden steeds complexere technieken gebruik voor bijvoorbeeld de weerkaatsing van licht.

Een van de mogelijk technieken om efficiënter van de aanwezige rekenkracht gebruik te maken heet deferred shading. Hierbij wordt de geometrie, dus alle vormen en texturen, los getrokken van de belichting. Omdat deze apart gerenderd en vervolgens samengevoegd moeten worden, is dit een behoorlijk geheugenintensieve taak. ARM gebruikt een techniek genaamd Pixel Local Storage om dit te compenseren. Een complexe scene wordt in veel 3D-engines opgebouwd uit een groot aantal tiles, die los van elkaar gerenderd worden. Elke tile heeft een eigen stuk geheugen nodig, de tile buffer. Om te zorgen dat het geheugengebruik binnen de perken blijft kan ARM met PLS dezelfde tile buffer voor zowel de geometrie- als de lichtberekeningen gebruiken, waardoor veel minder geheugenbandbreedte vereist is.

Met PLS kon op Mali-G71 systemen al 42% bandbreedte worden bespaard, terwijl Mali-G72 daar nog eens 45% vanaf haalt. Het gebruik van PLS op de G72 zorgt dus dat de aanwezig bandbreedte veel efficiënter wordt gebruikt, wat meer en complexere texturen en belichting toelaat.

Ook voor VR is een aantal nieuwe technieken geïmplementeerd. De belangrijkste is misschien wel foveated rendering. Hierbij wordt het beeld in een aantal delen opgedeeld, waarbij alleen het gedeelte waar je naar kijkt in de volledige resolutie wordt gerenderd. Dit sluit goed aan op de werking van het menselijk oog, waar in de fovea - het midden van de retina oftewel het netvlies - elk kegeltje en staafje met een eigen zenuw is aangesloten en dus het meeste detail wordt waargenomen. Hierbuiten moeten groepjes receptoren een zenuw delen, waardoor minder detail wordt waargenomen. Het is in deze delen dus ook niet nodig om in de volledige resolutie te renderen. Een nadeel van foveated rendering is dat er zeer solide eye-tracking aanwezig moet zijn, omdat de GPU moet weten naar welk gedeelte van het scherm je kijkt en dus wat er in de hoogste resolutie gerenderd moet worden.

Verder is mobile multiview geïmplementeerd, een techniek die het renderen van beelden voor twee ogen efficiënter moet maken. In plaats van tweemaal het volledige beeld te renderen, wordt het beeld maar voor een oog berekend en gekopieerd naar het andere oog, met de juiste perspectiefaanpassingen. Ook is er native ondersteuning voor MSAA, oftewel multisampling anti-aliasing. Anti-aliasing is zeer belangrijk in VR: vanwege de relatief lage resolutie vallen gekartelde lijnen extra op, dus die wil je zo goed mogelijk wegpoetsen. Ten slotte is er een nieuwe techniek om texturen te comprimeren, ten einde bandbreedte te besparen.

ARM heeft verder geprobeerd de GPU aantrekkelijker te maken voor machine learning toepassingen, een techniek die o.a. gebruikt wordt voor het trainen van neurale netwerken. In de SGEMM, een algoritme voor machine learning, presteert Mali-G72 13% efficiënter bij 32-bit floating-point operaties en 17% efficiënter bij 16-bits FP-operaties.

Alles bij elkaar opgeteld moet de nieuwe GPU 25% energie-efficiënter opereren dan zijn voorganger. Mali-G72 kan nog steeds in een groot aantal formaten geïmplementeerd worden, met 1 tot 32 clusters. Per vierkante millimeter moet de GPU 20% beter presteren, iets wat belangrijk is om de kosten voor de chipfabrikant laag te houden. 

Complete systemen 

ARM levert sinds een aantal jaar ook gehele systemen. Hierbij hoeven chipfabrikanten dus niet meer na te denken over zaken als caches, core-configuraties en interfaces, maar krijgen ze gewoon een kant en klaar ontwerp. Een voorbeeld van zo’n systeem was de CoreLink SGM-773, met vier Cortex-A73-kernen, vier Cortex-A53-kernen en een Mali-G71-gpu van 12 clusters. Zo’n systeem kan dus één op één overgenomen en geproduceerd worden door halfgeleiderfabrikanten.

Vandaag introduceert ARM twee nieuwe complete systemen voor mobiele apparaten. Beide bevatten zowel A75- als A55-cores en een Mali Bifrost-GPU, maar verschillen in de onderlinge prestaties. De SGM-775 is de krachtigste variant, met vier Cortex-A75-cores, een Mali-G72 en vier geheugenkanalen, terwijl de SGM-575 een compacter ontwerp is met twee Cortex-A75-cores, een Mali-G51 en twee geheugenkanalen.

  SGM-773 SGM-775 SGM-573 SGM-575
High-performance 4x A73 4x A75 2x A73 2x A75
Efficient 4x A53 4x A55 4x A53 4x A55
GPU Mali-G71 Mali-G72 Mali-T860 Mali-G51
Geheugen 4x DDR4 4x DDR4 2x DDR4 2x DDR4
Cluster configuratie big.Little DynamIQ big.Little DynamIQ

Beide nieuwe systemen hebben hun CPU-kernen in een DynamIQ-cluster, wat betekent dat er een gedeelde L3-cache ter beschikking is. In de systemen is ook een fully coherent cache geïmplementeerd. Dit houdt in dat de CPU en GPU een geheugenruimte kunnen delen, waarbij in dit geval de GPU ook toegang krijgt tot de L3-cache van de processors via de CoreLink-interface. Hierdoor hoeven de CPU en GPU niet meer op elkaar te wachten tot de cache is bijgewerkt, maar kunnen ze er tegelijkertijd gebruik van maken.

Naast mobiele systemen doet AMD ook een serieuze gooi naar de servermarkt. Afgelopen jaar zagen we Qualcomm al een eerste stap zetten met de introductie van de Centriq 2400, een 48-core ARMv8-processor die op 10nm geproduceerd wordt. ARM had zelf ook al een aantal ontwerpen klaar liggen voor serverprocessoren, maar die zijn nauwelijks gebruikt. Vandaag introduceert het bedrijf dus een flinke upgrade van deze processoren.

De nieuwe ontwerpen bestaan in de basis uit een groot aantal Cortex-A75-kernen die slim aan elkaar geknoopt zijn. Op een chip kunnen maximaal 32 clusters met elk 8 cores geïmplementeerd worden, goed voor 256 cores per chip. Ondanks dat een A75-kern niet zo krachtig is als bijvoorbeeld een Intel Skylake-kern, moet door het zeer grote aantal rekenkernen de processor aantrekkelijk worden voor bepaalde servertaken.

De clusters worden met elkaar verbonden via de CoreLink CMN-600-interface. Deze kan tot 8 geheugenkanalen en 32 CPU-clusters aansturen. Ook is er ruimte voor 96 IO-lijnen en kan er indien gewenst een systeembrede cache worden geplaatst van maximaal 128 MB. Er is ten opzichte van vorige ontwerpen ook flink meer bandbreedte ter beschikking voor de communicatie tussen de verschillende cores, IO- en geheugencontrollers.

Via CCIX, een vrij nieuwe interface, kunnen ook nog meerdere van deze chips aan elkaar gelinkt worden. Hierbij wordt het geheugensysteem gedeeld, zodat alle chips van dezelfde systeemcache gebruik kunnen maken. Het is daarmee mogelijk om meer dan 1000 CPU-cores in een server-node te krijgen, iets wat tot nu toe ondenkbaar was.

ARM biedt zelf ook twee kant-en-klare ontwerpen aan, die beide wat bescheidener zijn in dimensies. Er is een 32-core systeem genaamd SGI-775 en de 8-core variant heeft SGI-575, met respectievelijk 4 en 1 clusters met acht Cortex-A75-kernen. Het bedrijf claimt dat het nieuwe SGI-775-ontwerp 40% sneller moet zijn dan de vorige generatie SGI-572 met 32 Cortex-A72-kernen, hoewel hier waarschijnlijk ook een die-shrink bij zit.

Conclusie

ARM heeft vandaag laten zien dat het net als de afgelopen jaren nog altijd flinke verbeteringen kan bieden. Het bedrijf moet ook wel, want Apple, Qualcomm en Samsung zitten niet stil met hun eigen CPU- en GPU-ontwerpen. Hoewel we nog niet weten wat de concurrentie voor 2018 in petto heeft, kunnen we wel zeggen dat ARM in ieder geval op papier een aantal flinke stappen vooruit heeft gezet.

De Cortex-A55 is een mooie verbetering over A53. Gemiddeld 20% meer IPC is een nette prestatie voor een in-order CPU, waarbij dit door nieuwe instructies en de eigen L2-cache in sommige gevallen kan oplopen tot een prestatieverdubbeling. De gemiddeld 40% hogere prestaties van de Cortex-A75 is ook zeker netjes te noemen, waarbij ook hier in sommige gevallen meer dan dubbele performance gehaald kan worden.

DynamIQ voegt daarnaast een extra dimensie toe aan SoC-ontwerpen. Doordat verschillende cores in één cluster gecombineerd kunnen worden, zijn er veel meer combinaties mogelijk. Zeker voor betaalbare devices zal dit veel gaan uitmaken, een enkele high-performance A75-kern kan de ervaring al enorm verbeteren, terwijl het nauwelijks meer ruimte op de die vereist. We gaan in 2018 zeker een aantal interessante ontwerpen zien met nieuwe combinaties van verschillende aantallen A75- en A55-kernen.

Op GPU-gebied zijn de veranderingen minder groot. Toch is er een aantal belangrijke verbeteringen geboekt met de Mali-G72. De energie-efficiëntie en performance per mm2 zijn met respectievelijk 25% en 20% verbeterd, waarbij vooral dat laatste iets was waar ARM achterliep op Qualcomms Adreno en Imaginations PowerVR. Hierdoor kunnen grotere GPU’s geïntegreerd worden zonder extra kosten, waar we in 2018 zeker profijt van gaan zien. Verder zijn er een paar nuttige optimalisaties geïmplementeerd, zoals het efficiënter benutten van de geheugenbandbreedte en de energiebesparing bij machine learning.

ARM heeft ook duidelijk de servermarkt nog lang niet opgegeven. Met een nieuwe schaalbare infrastructuur biedt het bedrijf zeer veel mogelijkheden voor chipfabrikanten. Er kunnen verschillende CPU-kernen in clusters gecombineerd worden, er kan tot een zeer hoog aantal kernen geschaald worden en meerdere chips kunnen met elkaar gelinkt worden. Er is veel IO-bandbreedte beschikbaar en ook intern is de geheugenstructuur flink gestroomlijnd. De opties zijn er dus, maar het blijft de vraag of het genoeg is om bedrijven van platform te laten wisselen.

Tot slot wil ARM het zo makkelijk mogelijk maken om hun producten in chips te integreren. Om dit te bereiken zijn er nieuwe, complete standaardontwerpen uitgebracht, die direct kunnen worden geïmplementeerd. Hiermee probeert het bedrijf een zo groot mogelijke markt te bereiken en het voor kleinere chipontwerpers makkelijker te maken om een eigen SoC op de markt te brengen.

In 2018 zullen we dus een hogere diversiteit aan SoC-ontwerpen aantreffen, iets wat alleen maar goed is voor de markt. Goedkopere toestellen krijgen toegang tot hoge single-core prestaties en over de hele linie nemen de prestaties toe. In de VR- en de servermarkt wil ARM graag verder groeien en zet daar zwaar op in. Het bedrijf heeft een sterk portfolio neergezet, het wordt nu afwachten wat de concurrentie daar tegen in kan brengen.

0