Arm in 2019: weer een forse verhoging van CPU- en GPU-prestaties

20 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. CPU: Niet Apple achterna, wel nieuw ontwerp
  3. 3. De Cortex-A76 in detail 
  4. 4. GPU: Meer AI met 3rd gen. Bifrost 
  5. 5. Video: Dubbele decode: 8k60fps anyone?
  6. 6. Implementaties en toekomstplannen
  7. 7. Reacties

Inleiding

Je kan er inmiddels de klok op gelijkzetten: elk jaar komt chipontwikkelaar Arm met nieuwe designs, die forse prestatieverbeteringen brengen. Konden we vorig jaar uitgebreid vertellen over de nieuwe ontwerpen van het bedrijf voor dat jaar, momenteel zien we die cpu- en gpu-ontwerpen terug in diverse chips van Qualcomm, Samsung en Huawei. Terwijl die in allerlei producten op de markt komen, introduceerde Arm eind mei een nieuwe serie designs, waar we volgend jaar pas in de praktijk mee kennis zullen maken - maar nu alvast diep op in kunnen gaan.

De nieuwe bouwblokken die Arm introduceerde zijn de Cortex-A76 cpu (opvolger van de A75), de Mali-G76 gpu (opvolger van de G72) en de Mali-V76 (opvolger van de V61) video-engine. Het eerste wat opvalt is dat het de marketingmedewerkers van Arm eindelijk is gelukt om de modelnummers van hun verschillende soc-bouwblokken gelijk te krijgen - vermoedelijk in de hoop dat ontwikkelaars van smartphonechips bij Arm aankloppen om alle drie te gebruiken.

Van de drie biedt de Cortex-A76 cpu de meeste vernieuwingen; waar de nieuwe gpu en video-engine iteraties zijn van de vorige versies, is de nieuwe cpu vrijwel geheel opnieuw ontworpen, met flinke te verwachten prestatiewinsten tot gevolg. Op de volgende pagina's nemen we de verschillende onderdelen één voor één onder de loep.

Dit artikel is mede geschreven door Ewout ter Hoeven.

Bouwblokken

Hoewel de naam Arm bij de gemiddelde Nederlander geen belletje zal doen rinkelen, zal met alle chips in smartphones, tablets, TV's, koelkasten, thermostaten, auto's en wat niet meer zij de gemiddelde Nederlander eerder honderden dan tientallen Arm-cores in huis hebben.

Wat goed is om je te realiseren, is dat Arm in principe geen volledige chips ontwerpt (zoals Intel, Qualcomm en anderen), maar louter bouwblokken die chipontwerpers op hun beurt kunnen integreren. Zo maakt het bedrijf cpu-bouwblokken, gpu's, maar bijvoorbeeld ook technologie om dergelijke bouwblokken binnen een soc aan elkaar te knopen. Arm is daarnaast de ontwikkelaar van de Arm-architectuur, waar zo'n beetje iedere processor voor mobiele toepassingen gebruik van maakt. De Cortex cpu's zijn Arm's eigen implementaties van die architectuur, maar het staat andere fabrikanten vrij om tegen betaling eigen (betere) implementaties te maken, zoals bijvoorbeeld Apple en Huawei doen. De meeste fabrikanten van soc's kiezen er echter voor om de ontwerpen van Arm integraal of slechts met kleine aanpassingen over te nemen. Dat maakt dat we de vorig jaar door Arm aangekondigde cpu- en gpu-ontwerpen inmiddels in talloze chips tegenkomen en dat zal volgend jaar met de recent aangekondigde nieuwe ontwerpen niet anders zijn.

Onderstaande tabel toont als voorbeeld voor enkele courante smartphone SoC's welke Arm-ontwerpen daarin zijn geïntegreerd.

Chip Gebruikte Arm cpu's Gebruikte Arm gpu
Qualcomm Snapdragon 710 2x Cortex-A75
6x Cortex-A55
-
Qualcomm Snapdragon 845 4x Cortex-A75
4x Cortex-A55
-
Samsung Exynos 9610 4x Cortex-A55 Mali-G72 MP3
Samsung Exynos 9810 4x Cortex-A55 Mali-G72 MP18
HiSilicon Kirin 970 - Mali-G72 MP12
MediaTek Helio P60 - Mali-G72 MP3
Spreadtrum SC9863 8x Cortex-A55 -

Chips die Arm-ontwerpen voor 2018 gebruiken

Qualcomm heeft voor zijn high-end Snapdragon-soc's ervoor gekozen zowel het A75- als het A55-ontwerp te implementeren, maar wel een gpu van eigen design te gebruiken. Samsung heeft juist zijn eigen 'grote' core ontwikkeld, maar maakt gebruik van de kleine core en gpu van Arm. Huawei en MediaTek gebruiken voor de meeste soc's zowel de cpu's als de gpu's van Arm, maar gebruiken nu nog Cortex-A73 en -A53, oftewel de vorige generatie.

De nieuwe ontwerpen die Arm vandaag bekend maakt gaan dus komend jaar een belangrijke rol spelen in de smartphonewereld, zo goed als elke Android-telefoon heeft wel iets afkomstig van het bedrijf in zijn soc zitten, uiteraard nog afgezien van de gebruikte instructieset zelf.

Vandaag duiken we zoals geschreven dieper in op drie nieuwe ontwerpen: de Cortex-A76-cpu (een high-performance kern die vanaf de grond opnieuw opgebouwd is), de Mali-G76-gpu (de derde generatie Bifrost), en de Mali-V76-videoprocessor, de nieuwe high-end videoprocessor.


Zo ziet Arm het graag: Arm cpu, gpu én video-engine in één soc.

CPU: Niet Apple achterna, wel nieuw ontwerp

Bijna alle moderne microprocessoren voor mid-range en high-end telefoons bevatten tegenwoordig twee soorten cpu-kernen. De eerste is een compacte in-order core, die instructies uitvoert in de volgorde waar ze binnenkomen en relatief klein en energiezuinig is. De tweede is een grotere out-of-order core, die instructies ook in een andere volgorde kan uitvoeren en meer performance biedt ten koste van formaat en energie-efficiëntie.

Waar deze kleine en grote kernen vroeger in aparte cpu-clusters zaten, kunnen deze sinds vorig jaar ook samen in één cluster geplaatst worden, waarbij er gebruik kan worden gemaakt van een gezamenlijke caches en de latency tussen de cores een stuk lager ligt. Onder de naam DynamIQ waren de Cortex-A75 en -A55 respectievelijk de grote en kleine kern voor deze nieuwe indeling. De A55-core mag nog even door, terwijl de A75 dit jaar vervangen wordt door de A76.

Meer dan alleen smartphones

In tegenstelling tot Apple of Samsung, die hun high-end cpu-kernen speciaal voor een chip of zelfs een apparaat kunnen ontwikkelen, moeten Arm's ontwerpen in een breed scala aan elektronica terechtkomen. Smartphones zijn verantwoordelijk voor de meeste implementaties, maar ook tablets, servers, routers, televisies en nu ook laptops maken gebruik van hetzelfde cpu-ontwerp. Dit ontwerp moet dus voor verschillende applicaties met verschillende chipoppervlakte- en stroombudgetten geschikt zijn, en kan dus niet enkel voor de smartphone geoptimaliseerd worden.

Om deze reden staan Arm's ontwerpen niet in steen gegraveerd, maar is een aantal aspecten flexibel ingericht. Ze kunnen op verschillende processen gemaakt worden, hebben variabele cachegroottes en kunnen aan de hand van de stroomvoorziening op verschillende kloksnelheden draaien. Daarnaast kunnen ze dus in verschillende aantallen in een DynamIQ-cluster geplaatst worden, die ook weer een cache van variabel formaat heeft.

Performance voor laptops en tablets

Bij het ontwerp van Cortex-A76 is daarom veel rekening gehouden met apparaten die meer stroom en chipoppervlak ter beschikking hebben, maar wel daar meer performance voor terugverwachten. Om niet een compleet nieuwe cpu-kern te hoeven ontwerpen, zijn er daarom twee aanpassingen gedaan voor deze apparaten: grotere caches en hogere klokfrequenties. Deze eigenschappen zijn tevens erg gunstig voor de servermarkt, waar Arm ook nog steeds een voet tussen de deur probeert te krijgen.

Voor de A76 is de chipontwerper dan ook met een leeg vel begonnen, zijn alle sterke elementen uit eerdere cores meegenomen en is de rest opnieuw ontworpen. In dit proces is de pipeline kritisch bekeken en zijn zo veel mogelijk van de flessenhalzen verwijderd, samen met wederom een optimalisatieslag. We moeten direct eerlijk zijn: in de A76 vinden we geen bijzondere nieuwe slimmigheden en/of zaken die wezenlijk anders werken dan bij de A75. Het is voornamelijk een kwestie van "meer en sneller": meer cache, lagere latency's, hogere bandbreedtes, en dat alles op talloze plekken. 

De beloftes van Arm zijn mooi: gemiddeld zo'n 35% betere prestaties, 50% betere energie-efficiëntie en zelfs tot 4x betere prestaties bij machine learning workloads ten opzichte van voorloper Cortex-A75. Let wel, hierbij vergelijkt men de manier waarop de A76 vermoedelijk het vaakst zal worden ingezet (geproduceerd op 7nm en werkend op 3 GHz) met de manier waarop de A75 op dit moment optimaal wordt geïmplementeerd (10nm en 2,8 GHz). De oplettende lezer ziet trouwens dat we geen grote stappen qua klokfrequenties mogen verwachten; Arm geeft aan dat er bij de nieuwste procedés (14nm, 10nm, 7nm) steeds minder ruimte is om de klokfrequentie te verhogen, omdat er een bottleneck begint te ontstaan bij de dataverbindingen binnen de chips.

De energie-efficiëntie kan zich volgens Arm op twee manier uitbetalen: een op 7nm geproduceerde Cortex-A76 cpu zou met een identiek stroomverbruik als een 10nm Cortex-A75 (750 mW) zo'n 40% beter kunnen presteren. De andere kant van de medaille is dat voor een identiek prestatieniveau een 7nm Cortex-A76 slechts de helft van de stroom nodig heeft van een 10nm Cortex-A75. Alle verbeteringen zorgen er wel voor dat de A76 een stukje groter en complexer is dan de A75, maar geproduceerd op een state-of-the-art 7nm procedé moet een A76 kern vrijwel even groot zijn als een 10nm A75 kern.

Voor laptops (waar de cpus eerder 5 watt dan minder dan 1 watt mogen verbruiken) moeten de te verwachten prestatiewinsten ten opzichte van de bestaande generatie nóg groter zijn, mede dankzij de mogelijkheid om de Cortex-A76 van een grote L3-cache te voorzien, iets waar een besturingssysteem als Windows flink van profiteert. Arm zegt dan ook met zoveel woorden dan het met de komst van de Cortex-A76 helemaal klaar is om de stap naar de markt van Windows-laptops écht te gaan maken, waar eerder dit jaar samen met Qualcomm voorzichtig de eerste stappen werden gezet.

Hoewel Arm over het algemeen niet happig is om prestatievergelijkingen met concurrenten te overleggen, geeft men bij navraag aan dat in situaties waar er een grote beperking is voor energie die een chip mag gebruiken en de temperatuur die deze mag worden (lees: tablets, zeer dunne laptops, etc.) de Cortex-A76 zo'n 10% verwijderd is van het prestatieniveau van Intels Skylake cores. Om dat in perspectief te zetten: op het oppervlak van één Skylake core passen drie A76's, plus een grotere cache. Tijdens de presentatie die we kregen van Arm werd één ding wel duidelijk: het bedrijf ziet zo'n beetje iedereen als concurrent, maar heeft primair zijn pijlen gericht op Intel, want juist in de hoek waar Intel sterk is, kan Arm nog flink marktaandeel winnen. 

Zeer recent heeft Arm haar claims ten opzichte van Intel nog wat sterker aangezet. Tijdens een presentatie op het Hotchips symposium gaf men aan dat een Cortex-A76 gebaseerde soc (waarbij het aantal cores niet gedefinieerd was) een gelijkaardig prestatieniveau moest bieden als een Intel Core i5-7300U... bij een derde van het stroomverbruik.

De Cortex-A76 in detail 

Microprocessoren maken gebruik van een pipeline, waarbinnen het uitvoeren van de instructies wordt opgedeeld in verschillende mini-stapjes, die achter elkaar worden uitgevoerd. Elke klokcyclus schuift elke instructie een stap door, totdat deze aan het eind van de pipeline is en dus volledig is uitgevoerd. De pipeline is bedacht om klokfrequenties hoger te krijgen: hoe kleiner en simpeler elke stap in de pipeline is, hoe minder tijd deze stap inneemt, en hoe hoger de klokfrequentie dus kan zijn.

De pijplijn van de Cortex-A76 is net als veel vergelijkbare out-of-order processoren opgedeeld in drie zones. Er is de front-end, die instructies uit het geheugen ophaalt, de decode, de instructie decodeert en naar de goede plek stuurt, en de execution core, waar de instructie daadwerkelijk uitgevoerd wordt.

De pipeline: Front-end

Aan de front-end heeft Arm de grootste aanpassingen gedaan. De twee belangrijkste elementen in de front-end zijn de branch-predictor en de instruction-fetch. De eerste is verantwoordelijk voor het voorspellen welke instructie hierna uitgevoerd moet worden, terwijl de tweede de goede instructie met bijbehorende data dan uit het geheugen haalt en doorgeeft naar de decode-stage.

Waar bij eerdere Cortex-ontwerpen deze twee nog geïntegreerd waren, zijn ze in de A76 losgetrokken. Dit is gedaan om de branch-predictor te vergroten: deze kan nu acht 32-bits instructies tegelijkertijd ophalen in plaats van vier. Deze worden vervolgens in de instructie-cache geplaatst, totdat de fetch-eenheid de bijbehorende data daarbij heeft gevonden. 

De fetch kan echter nog steeds maar vier instructies plus data doorgeven per klokcyclus. De kans is nu aanwezig dat je je afvraagt waarom de branch-predictor een twee maal zo hoge doorvoercapaciteit heeft gekregen als de instruction-fetch; het antwoord is tweeledig.

Ten eerste kan er een cache-miss plaatsvinden. Dit gebeurd als branch-predictor niet op tijd heeft gezien dat een bepaalde instructie uitgevoerd moet gaan worden, en dus niet de benodigde data uit hogere cache-lagen of zelfs het werkgeheugen heeft opgehaald. Op dat moment vindt een cache-miss plaats en kan de instructie niet uitgevoerd worden totdat de benodigde data is aangevoerd, wat zo tientallen klokcycli kan duren. Het tweede wat een fetch kan overkomen is dat er toch een ander pad in de code is genomen dan voorspeld. Een if-statement kan toch niet waar zijn, een while-loop kan ineens ophouden of een andere klasse kan plotseling aangeroepen worden. In dat geval kunnen alle instructies die in dat pad voorspeld werden, worden weggegooid.

In beide gevallen komt een in-order kern dan volledig stil te liggen, maar een out-of-order variant kan gelukkig ook andere instructies voor laten gaan. Dat is waar die bredere branch-predictor in de Cortex-A76 komt kijken: als de fetch-eenheid nog niet de data heeft of instructies moet weggooien, dan moeten er wel andere instructies klaar staan om uit te voeren. Daarvoor is tussen de branch-predictor en de fetch een instructie-cache van 64kB aanwezig, waar een paar duizend instructies in kunnen worden opgeslagen. 

Door de branch-predictor te vergroten en de buffers in de front-end te vergroten, heeft Arm vele bottlenecks kunnen oplossen en zorgt het ervoor dat de andere onderdelen van de cpu veel minder vaak droog komen te staan, met betere prestaties tot gevolg.

 

De pipeline: Decode

Wanneer de instructies dan succesvol zijn doorgegeven door de fetch-eenheid, dan mag de decoder aan de slag. Deze grote instructies kunnen namelijk niet direct door de executie-eenheden uitgevoerd worden, maar moeten eerst vertaald worden in macro- en daarna zelfs micro-operaties. De decoder kan net als de fetch 4 instructies per klokcyclus aan die vertaald worden in macro-operaties. Daarvan kunnen er vier doorgegeven worden.

Gemiddeld vertaalt een instructie zich echter in 1,06 macro-operatie (een klein aantal instructies neemt twee macro-operaties in), waardoor er soms dus nog wel een kleine bottleneck zit in de decoder. Ook kon de decoder in de Cortex-A73 en -A75 integer-instructies in slechts een klokcyclus doorgeven, terwijl het nu voor alle instructies twee klokcyclus de tijd neemt.

De macro-operaties worden in een register geplaatst, waar de dispatch ze oppakt en doorstuurt naar de execution-engine. Hierbij worden ze echter nog vertaald naar micro-operaties. Omdat een macro-operaties zich gemiddeld vertaalt in 1,2 micro-operaties, is gekozen de dispatch 8-wide te maken, waardoor er bijna nooit een bottleneck ontstaat. De dispatch van de Cortex-A73 was slechts 4-wide, terwijl de A75 een dispatch van 6-wide had. Tevens is het Arm gelukt om het aantal klokcycli dat de dispatch nodig heeft terug te dringen van 2 naar 1. 

De pipeline: Execution core

In de execution-core worden de instructies en de bijbehorende data dan eindelijk uitgevoerd. De instructies zijn via de dispatch in verschillende issue-queues geplaatst, waarna ze uitgevoerd worden door de verschillende executie-eenheden. Die issue-queues kunnen bij de A76 elk 120 instructies bevatten, dus zelfs wanneer in het geval van een branch miss er meerdere instructies teruggetrokken moeten worden, is de kans groot dat er nog voldoende uit te voeren instructies over blijven, waardoor de execution engines zelden tot nooit stilstaan.

Voor integer-operaties zijn er twee simpele ALU's, waar alleen optellen, aftrekken en het verschuiven van bits binnen een getal mogelijk is. De derde is een zogenaamde multi-cycle eenheid, die door middel van herhaaldelijk optellen en aftellen ook kan vermenigvuldigen. Delen gebeurt dan weer door meerdere van deze multi-cycle operaties. Verder zijn er twee 128-bit floating-point execution units, waarvan Arm de bandbreedte ten opzichte van de vorige generatie heeft verdubbeld. Geen wonder ook dat juist bij floating point berekeningen het prestatieverschil tussen A76 en A75 het grootste is. 

 

Caches: meer en sneller

Ook bij de caches zijn er flinke verbeteringen doorgevoerd, niet in de laatste plaats om de Cortex-A76 beter geschikt te maken voor typische laptop workloads. Sterker nog, Arm geeft aan dat misschien wel het grootste deel van de prestatiewinsten te danken is aan de cacheverbeteringen.

Voor de L1-cache, die het dichtst op de cpu-cores zit, heeft Arm de verwerking voor het generen van geheugenadressen en voor het ophalen van data uit diepere caches losgetrokken, om zo de bandbreedte te optimaliseren. Net als bij de Cortex A75 bestaat de L1-cache uit 64 kB voor instructies en 64 kB voor data. De latencies hiervan zijn echter verbeterd; bovenal bevat de L1-cache binnen de A76 een verbeterde prefetcher, die beter voorspelt welke data uit de L2-cache binnenkort nodig is en die ook sneller ophaalt, wat het percentage cache-hits voor de L1 moet verbeteren. De L2-cache is afhankelijk van de implementatie 256 kB of 512 kB per core, waarbij opnieuw de bandbreedte is vergroot. Verschillende cores kunnen ten slotte nog een groot stuk L3-cache delen. Was die bij A75 nog beperkt tot maximaal 2 MB, is die bovengrens nu verhoogd tot 4 MB. Zeker bij laptop workloads, die relatief veel toegang tot het geheugen nodig hebben, kan de grotere L3-cache voor een aanzienlijke prestatiewinst zorgen.

Arm geeft aan dat de bandbreedte van de L1-cache tot 2,5x hoger is ten opzichte van de Cortex-A75. De bandbreedte voor de L2- en L3-caches is zo'n 1,5x à 2x hoger. Alles bij elkaar opgeteld moet data veel sneller door de cpu geloodst kunnen worden dan voorheen.

   

Wat levert dit alles nu op?

We schreven al dat een Cortex-A76 met hogere klokfrequentie en een state-of-the-art productieprocedé ruim 35% sneller kan zijn dan zijn voorloper. Met identieke klokfrequentie en identiek productprocedé belooft Arm een stijging van de IPC (het gemiddelde aantal instructies dat per klokslag wordt afgerond) van 25%. Dat zijn waardes waar we in de x86-wereld de laatste jaren alleen maar van kunnen dromen. De floating point prestaties zouden zelfs 35% hoger moeten liggen en dankzij de verschillende verbeterde caches de gemiddelde geheugenbandbreedte zelfs 90%. 

Hoe te gebruiken

Zoals geschreven brengt Arm dit jaar enkel een nieuwe "grote" cpu-core op de markt. De Cortex-A76 kan zodoende net als voorloper Cortex-A75 gecombineerd worden met de bestaande, "kleine" Cortex-A55 kernen, binnen DynamIQ configuraties. Daar staat helemaal vrij welke keuzes gemaakt worden, waarbij Arm verwacht dat 1+7, 2+6 en 4+4 vermoedelijk het meest gebruikt zullen worden. 

Wie snel kan rekenen zie dat dit allemaal 8-core combinaties zijn. Wat is er mis met 2+2 of 2+4? Helemaal niets; sterker nog, 2+4 is volgens Arm voor veel smartphones vermoedelijk zelfs de beste configuratie. Het feit dat smartphonefabrikanten niet voor hun concurrenten onder willen doen en dus willen kunnen roepen dat ze een 8-core processor hebben, én het feit dat het getal 8 in China het geluksgetal is, maakt dat 8-core configuraties volgens Arm in 2019 het meest populair zullen zijn. Gelukkig zijn A55-kernen dusdanig klein dat het op de totale productiekosten van de chip vrijwel niets uitmaakt of er nu vier of zes kleine kernen zijn geïmplementeerd...

GPU: Meer AI met 3rd gen. Bifrost 

Waar de nieuwe Cortex-A76 gpu echt een geheel nieuw ontwerp is, is de nieuwe Mali-G76 GPU een doorontwikkeling van het ontwerp van vorig jaar. We hebben hier van doen met de derde (en vermoedelijk laatste) generatie -highend gpu met Arms ruim twee jaar geleden geïntroduceerde Bifrost architectuur (na G71 en G72). De G76 staat dan ook niet zozeer in het teken van nieuwe mogelijkheden en technieken, maar primair van het verbeteren van de prestaties. Dat doet Arm met drie hoofddoelen in het achterhoofd; betere prestaties voor gaming, betere geschiktheid voor VR/AR applicaties en bovenal betere prestaties voor AI / machine learning workloads. Al met al mogen we naar verluidt zo'n 1,5x betere prestaties verwachten. Tegelijkertijd heeft Arm voor dezelfde prestaties 30% minder chipoppervlak nodig (met hetzelfde procedé!). 

 

Net als voorloper Mali-G72 zitten er bij de G76 drie execution units per shader core. Het aantal cores dat in G76 gpu zit is afhankelijk van de gekozen implementatie 4 tot maximaal 20 stuks. Dat laatste is minder dan het maximum van 32 cores bij de G72, maar schijn bedriegt: iedere execution unit binnen de G76 kan nu namelijk 8 FP32 vector threads verwerken ten opzichte van 4 bij de G72. Dat maakt dat een enkele core twee keer zoveel rekenkracht biedt ten opzichte van de vorige generatie. Hoewel de cores zélf daardoor uiteraard groter zijn, is dat verschil slechts 28%, waardoor de chips als geheel kleiner kunnen worden.

Vanuit energie oogpunt maakt het in principe geen verschil: een workload uitvoeren binnen een 8 lane core kost exact evenveel energie als binnen een 4 lane core (maar gaat uiteraard wel twee keer zo snel). Het verschil zit hem er echter in dat er veel minder overhead nodig is, bijvoorbeeld bij de paden om data bij de cores uit te laten komen. Dat maakt dat de overstap van 4 naar 8 lanes per core uiteindelijk toch voor ruim 15% energiewinst zorgt, wat zich weer kan uitbetalen in ofwel een lager stroomverbruik, ofwel betere prestaties bij identiek stroomverbruik.

De belangrijkste verbetering is echter dat de 32-bit pipelines binnen de gpu kunnen worden omgeschakeld om per pipeline vier 8-bit integer getallen te verwerken. Veel AI en machine learning algoritmes zijn gebaseerd op Int8-data en deze kan nu dus in feite vier keer zo snel door de pipelines verwerkt worden, wat een gigantische prestatiewinst bij dergelijke workloads tot gevolg zal hebben.

 

De maximale prestaties kunnen bij de Mali-G76 25% hoger zijn dan bij G72. Reken maar mee: bij G72 zijn er maximaal 32 cores met 3 execution engines per core, met elk 4 execution lanes; oftewel 32 x 3 x 4 = 384 execution lanes. Bij G76 zijn er maximaal 20 cores, met 3 engine per core en 8 lanes per engine. 20 x 3 x 80 = 480. Overigens is dit vooral theorie; wij kennen geen chips waarin uiteindelijk 32 Mali-G72 cores zijn verwerkt en het is ook maar de vraag of Mali-G76 varianten met 20 cores gaan zien.

Verder zijn er nog wat kleinere verbeteringen in de gpu. Zo heeft iedere core nu twee in plaats van één texture unit, waardoor er per klokslag twee texels (pixels van textures) opgehaald kunnen worden. Arm zag dat met de steeds mooiere en complexere games op mobiele platforms hier een bottleneck begon te ontstaan, die op die manier effectief is verholpen. Verder zijn er nog talloze kleine, architecturale verbeteringen die bij elkaar opgeteld de prestaties en/of de energie-efficiëntie verder verhogen..

 

 

Video: Dubbele decode: 8k60fps anyone?

Ten slotte de nieuwe video-engine, de Mali-V76. Deze kan als bouwblok geïmplementeerd worden voor het decoderen en encoderen van allerhande video. Arm's bestaande video-engine (de Mali-V61) was qua features al aardig bij de tijd met ondersteuning voor H.264, H.265, VP9, 10-bit, HDR, en zo verder. Bij de nieuwe V76 zijn voornamelijk de prestaties verbeterd, wat betekent dat video sneller kan worden gedecodeerd, maar ook dat er ondersteuning is voor hogere resoluties en/of voor meer gelijktijdige videostreams. 

Vooral dat laatste is belangrijk: Arm voorziet dat we in de toekomst meer en meer interfaces krijgen waarin meerdere streams tegelijk zichtbaar zijn. Als voorbeeld noemt men de menuschermen van apps als YouTube of Netflix: nu zijn die nog opgebouwd uit statische thumbnails, maar in de toekomst zouden dergelijke overzichtpagina's allemaal bewegende voorvertoningen kunnen hebben. Daarvoor zouden video-decoders veel meer streams parallel moeten kunnen verwerken.

Beter en kleiner

Om maar met de belangrijkste getallen te beginnen: Arm geeft aan dat de nieuwe Mali-V76 ten opzichte van voorloper V61 twee keer zoveel decoding power aan boord heeft. Daarnaast is de video encoder tot kwalitatief zo'n 25% beter, waarbij Arm wel eerlijk toegeeft dat dat ten opzichte van de V61 op lanceerdatum is. Met firmware upgrades is de encoding-kwaliteit van de bestaande engine de afgelopen periode ook al meermaals verbeterd. Goed nieuws voor soc-ontwikkelaars: de V76 is fysiek ook kleiner geworden. Arm geeft dan ook aan dat ca. 40% van de winst in encodingkwaliteit komt door betere software/firmware, maar dus ook voor 60% door hardwareverbeteringen. 

Terug naar de decodeermogelijkheden. De Mali-V76 is snel genoeg om 8K video met 60 Hz te decoderen. Het is daarmee de eerste Arm video-engine met ondersteuning voor 8K video. Dit betekent dus ook dat er tegelijkertijd 4x 4K streams en zelfs 16 Full HD streams gedecodeerd kunnen worden. Verschillende formaten en codecs kunnen gecombineerd worden: een 8K30 stream gecombineerd met een 4K60 en vier 1080P60 streams is bijvoorbeeld geen probleem.  Mocht er minder kracht benodigd zijn, dan kunnen soc-ontwikkelaars naar wens minder V76-cores inzetten; de genoemde maximale prestaties worden behaald door 8 V76-cores te combineren, maar 1, 2 of 4 cores is ook mogelijk. 

 

Het lijstje codecs is in feite identiek gebleven. De V76 decodeert én encodeert JPEG, H.264, H.265 (HEVC), VP8 en VP9. Verder kunnen H.263, MPEG3, MPEG1, VC1 en Real ook nog gedecodeerd worden. Enige vernieuwing op dit vlak is de ondersteuning voor het decoderen van AVS en AVS+ video. Voor HDR ondersteunt Arm zowel HLG als HDR10. HDR10+ nog niet, maar kan voor zover wij begrijpen met nieuwe firmware toegepast worden. Dolby Vision kan de Mali-V76 niet verwerken, maar wanneer een device wordt aangesloten op een scherm met een eigen beeldprocessor (bijvoorbeeld een TV) dan kan een Dolby Vision signaal wel doorgegeven worden. 

 

Blijven er nog zaken te wensen over? Ja, ondersteuning voor AV1, de opvolger van VP9 is er nog niet, daarvoor was het Mali-V76 ontwerp te vroeg klaar. Arm geeft aan dat we dit in de volgende generatie mogen verwachten. Tegen 2020 verwacht Arm dat ondersteuning voor AV1 in video-engines gemeengoed wordt en tegen die tijd zal ook H.266 (de opvolger van H.265 uit het MPEG-kamp) vermoedelijk voltooid zijn. 

Implementaties en toekomstplannen

Wanneer mogen we dit alles nu verwachten? Het Cortex-A76 cpu-ontwerp was eind vorig jaar al afgerond en sindsdien al beschikbaar voor partners. De eerste testchips zijn al een ruime tijd geleden van de band gerold. Arm verwacht dat de eerste soc's met Cortex-A76 voor het eind van het jaar worden aangekondigd en dat de eerste apparaten die er gebruik van maken begin 2019 op de markt komen.

Als we het dan toch over cpu's hebben: het ontwerp voor 2020 is volgens Arm ook al af, het 2021 ontwerp is naar eigen zeggen zeer ver gevorderd en voor 2022 zijn de plannen al duidelijk. Al met al belooft Arm stellig dat ze nu al weten hoe ze voor de komende vijf jaar ieder jaar double-digit (ofwel: meer dan 10%) prestatiewinst kunnen zorgen. Sterker nog, zeer recent heeft Arm voor het eerst een publieke cpu-roadmap gedeeld: de 2019 opvolger van Cortex-A76 heeft daarop codenaam "Deimos" en de 2020 opvolger daarvan draagt de codenaam "Hercules". Voor Deimos belooft men meer dan 15% betere prestaties en voor Hercules een prestatie- én afmetingswinst van 10%, nog los van de voordelen van de overstap naar 5nm rond die tijd. Nogmaals: als je dat vergelijkt met de snelheid van ontwikkelingen in de PC-wereld, kunnen we daar alleen maar veel respect voor hebben.

De Mali-G76 was al wat eerder klaar; soc-ontwikkelaars kunnen de bouwtekeningen al sinds de herfst van 2017 krijgen van Arm. Zodoende verwacht men dat de eerste apparaten met een Mali-G76 gpu nog voor het eind van het jaar in de winkels moeten liggen. Tegelijkertijd zullen veel partners direct een combinatie van A76 en G76 willen implementeren, waardoor er vanuit graphics perspectief dus was vertraging is. 

Uiteindelijk zal het aantal chips met én A76 cpu-kernen én G76 gpu én V76 video-engine vermoedelijk beperkt zijn. Zoals we op de eerste pagina van dit artikel ook al zagen, kiezen soc-fabrikanten er geregeld voor om Arm cpu-cores te combineren met een ander type gpu of juist een Arm gpu te combineren met een eigen cpu-ontwerp. Eén ding is zeker: op alle vlakken heeft Arm voor de komende generatie soc's weer mooie stappen gezet en het feit dat de fabrikant zonder blikken of blozen aangeeft voor de komende vijf jaar al te weten hoe men jaarlijks double digit prestatiewinst zal gaan boeken, maakt dat we nu al weten dat de ontwikkelingen op gebied van smartphones en andere mobiele devices alles behalve stil zullen gaan staan.

0
*