De specs van de Scorpio zijn gepubliceerd. Heel veel termen passeren de revue, maar wat betekenen ze nu precies? In deze editie van Scorpio Hardware Ontleed leggen we uit wat een SoC is en waarom die van de Scorpio zo belangrijk is.

Project Scorpio, wat een heerlijke naam is dat toch. Als Microsoft één ding goed kan dan is het wel codenamen verzinnen. Namen als Durango, Scorpio en Natal klinken altijd erg goed, al is dat natuurlijk een persoonlijke opvatting. Dat gezegd hebbende, het was vorige week donderdag een mooie dag voor de tech-geeks onder ons.

Scorpio Hardware Ontleed

Voor de techneuten klonk het allemaal vrij logisch en helder, maar de leken konden er geen chocolade van maken. Dat is helaas wel vaker zo bij Digital Foundry, ze zitten op een vrij hoog niveau te babbelen over TeraFLOPS, CU’s, ROP’s en ga zo maar door. Als je in dat wereldje zit dan spreekt het bijna voor zich, maar zit je er niet in dan is het bijna onbegrijpelijke mumbo jumbo.

Het resultaat hiervan is een flinke partij keyboard-warriors die er op verschillende fora denken verstand van te hebben en onwaarheden en verwarring gaan creëren. Niet fijn voor de mensen die goede informatie willen krijgen. Vandaar deze rubriek Scorpio Hardware Ontleed waarin ik de nieuwe hardware ga ontleden en het zo simpel mogelijk ga verwoorden. De bedoeling is dat iedereen uiteindelijk snapt wat de SoC doet en waarom het aantal gigabyte geheugen zo belangrijk is. Mocht je vragen hebben naar aanleiding van dit artikel of wat te maken heeft met dit onderwerp, laat het mij zeker even weten in de comments of via twitter op @TBX12.

Het plaatje hieronder, die je misschien al wel kent, zijn de cijfers die naar buiten zijn gekomen. Wees gerust, ik ga nog uitleggen wat ze betekenen. De SoC is het meest spannende gedeelte van een console, hier ga ik in deze editie van Scorpio Hardware Ontleed dieper op in. De volgende keer bespreken we geheugen en bandbreedte.

De verschillen tussen de Scorpio, Xbox One en de PS4 Pro

CPU, GPU en SoC

Project Scorpio heeft een vernieuwde SoC gekregen die een flinke upgrade heeft gehad. SoC staat voor System on Chip, oftewel een compleet systeem op 1 chip. In een normale pc heb je namelijk te maken met een losse CPU (processor) en een losse GPU (grafische kaart). In de console wereld is dat niet zo, in elke console zit een SoC waar zowel de CPU (denkkracht) als de GPU (grafische kracht) op zitten gebakken. De CPU en GPU moeten nogal wat met elkaar communiceren, het voordeel van de twee op één chip is dat ze dat een stuk sneller kunnen doen, het nadeel is alleen dat er meer warmte vanaf komt.

Het gaat allemaal om de warmte

In een pc hebben de losse CPU en GPU hun eigen koeling, in een console worden deze samen, als één chip gekoeld. Hoe sneller een CPU of GPU werkt, hoe warmer deze wordt. De snelheid van een chip noemt men kloksnelheid, meestal uitgedrukt in GHz (gigahertz). Hoe hoger deze is, hoe meer warmte er wordt gecreëerd. Daarom is de kloksnelheid van een SoC over het algemeen langzamer, en dus is een console trager in het verwerken dan een pc.

Het kleine blokje is de SoC van de Scorpio

De Scorpio SoC

Zoals eerder gezegd is de SoC het spannendste onderdeel van een console, daar wordt tenslotte de kracht voor het meest bepaald. Op de SoC zitten de CPU cores en de GPU cores, de processor en de grafische kaart dus. In de Scorpio zitten eigenlijk de 8 CPU cores van de One, maar dan doorontwikkeld. Het is dus eigenlijk een CPU uit 2013, iets waar sommige geeks nogal aanstoot aan nemen.

Waarom een CPU uit 2013?

Velen hadden namelijk een nieuwe CPU gezien, het liefst een AMD Ryzen, dat is niet gebeurd. Ik leg je uit waarom Microsoft de keuze heeft gemaakt om op de “oude” AMD Jaguar CPU te blijven en waarom we niet teleurgesteld hoeven te zijn.

Ten eerste is de AMD Ryzen processorfamilie spiksplinternieuw voor consumenten en voor bedrijven pas sinds een jaar te testen. De Scorpio is al veel langer in ontwikkeling. Het is onmogelijk om halverwege de bouw van een console opeens de CPU te gaan veranderen, dit zou betekenen dat het meest fundamentele onderdeel, de SoC, opnieuw ontworpen moet gaan worden. Je kunt je voorstellen dat dit voor nogal wat problemen zorgt.

Verder is dezelfde architectuur ook simpelweg nodig om de backward compatibility te garanderen. Dan hebben we het niet over het Backward Compatibility Program van Microsoft, waarbij Xbox 360 games speelbaar zijn op de Xbox One, maar over Xbox One games die speelbaar moeten zijn op zowel de Xbox One als op Project Scorpio. Als de Scorpio een hele nieuwe CPU zou krijgen dan zou dit betekenen dat ontwikkelaars alle games ook apart moeten vertalen naar de CPU van de Scorpio, iets wat Microsoft de ontwikkelaars niet aan wil doen. Microsoft wil dat de ontwikkelaars bezig zijn met het maken van games en het doorvoeren van (grafische) verbeteringen, niet met het tweaken van een specifiek platform.

Een schematische opbouw van de Xbox One SoC

Kleiner is beter

Een CPU bestaat, zoals je in de cijfertabel bovenaan, uit meerdere cores. In het geval van de Xbox One, PS4, PS4 Pro en de Scorpio zijn dat er 8. De transistors op de cores van de Xbox One zijn 28nm (nanometer) groot en hebben een kloksnelheid van 1,75GHz. Leuke cijfers om op een verjaardag op te ratelen om slim te lijken, maar wat betekenen ze nu?

De grootte van de transistors wordt aangegeven in nanometers, afgekort nm. 28nm staat dus voor een chip die gemaakt is met transistors die 28 nanometer groot zijn. Lekker boeiend zul je denken. Ja, want hoe kleiner de transistors zijn, hoe minder stroom ze nodig hebben om hetzelfde te functioneren. Minder stroomverbruik betekent ook dat ze minder warm worden, wat er weer toe leidt dat er een hogere kloksnelheid gehaald kan worden. Zoals eerder aangeven is de kloksnelheid de snelheid van de werkcyclussen. Simpel gezegd, hoe sneller de kloksnelheid hoe sneller de core zijn opdrachten kan voltooien. Kleiner is dus efficiënter.

Kleinere transistors kosten minder stroom. Minder stroom betekent minder warm. Minder warm betekent dat de kloksnelheid hoger kan.

Een CPU (en GPU’s ook trouwens) worden gemaakt op een zogenaamde wafer door chipfabrikanten zoals TSMC en Global Foundries. Voor deze fabrikanten is een bijkomend voordeel van kleine transistors dat de chip zelf ook kleiner wordt. Per wafer kunnen er meer chips gemaakt worden.

Links een wafer voor 28nm, rechts een wafer gemaakt voor 16nm.

De CPU van de Scorpio

In de Xbox One zit dus een CPU op basis van 28nm. In de Scorpio zit een aangepaste Jaguar op 16nm die op 2.3GHz draait. Kleinere transistors dus en een hogere kloksnelheid. Verder heeft Microsoft aangeven dat er meer is gedaan dan enkel de transistors te verkleinen en de kloksnelheid op te voeren.

DirectX 12 op de chip

In de SoC zit een hardwarematige variant van DirectX 12, de API die de GPU aanstuurt. Deze API is normaal gesproken een stukje software die het de ontwikkelaars makkelijk maakt om de GPU taken uit te laten voeren. Intensieve acties in deze API worden normaal gesproken belast op de CPU, met DirectX 12 in de hardware wordt dit door een aparte chip afgehandeld die specifiek is ontworpen om met deze acties om te gaan. De communicatie van game naar GPU is daarmee super efficient. Een actie wat voorheen duizenden processorinstructies kostte wordt hiermee teruggedrongen naar slechts 11 instructies.

Verder zijn er ook taken van de CPU afgehaald en naar de GPU verplaatst. Een core van een GPU is niet gelijkwaardig aan een CPU core, maar de hedendaagse GPU kan wel simpele taken overnemen van de CPU. Nieuwere GPU’s beschikken over GPGPU cores in plaats van traditionele GPU cores. GPGPU staat voor General-Purpose computing on Graphics Processing Unit, simpel gezegd kan een GPU meer doen dan enkel een grafische bewerking uitvoeren. DirectX 12 kan normaal gesproken geen gebruik maken van GPGPU cores, maar Microsoft kennende hebben ze daar wel iets op gevonden. Een mogelijkheid is dat er op de achtergrond nog een API draait, namelijk OpenCL. Deze API kan wel overweg met GPGPU commando’s, waardoor er simpele taken van de CPU naar de GPU verplaatst kunnen worden.

Compute units en stream processors

In de Scorpio SoC zitten 40 compute units (CU’s), die elk weer 64 stream processors hebben, dat zijn de units die het echte werk doen.

Over het algemeen is niet elke stream processor in een CU tegelijk aan het werk, dan zou je ten alle tijden een 100% GPU load hebben. Meestal zit je daar wel onder, dus zijn er CU’s die ongebruikte stream processors hebben op dat moment. De ongebruikte stream processors kunnen dus andere taken uitvoeren, zodat de CPU ontzien kan worden.

Een schematische uitleg van een AMD Polaris CU

Xbox One vs. Scorpio, een rekensommetje

Het grafische gedeelte van de SoC heeft wellicht de grootste verandering gehad. In de Xbox One zitten 12 CU’s geklokt op 853MHz die goed zijn voor 1,31 TeraFLOPS in de Xbox One (of 1,4 TeraFLOPS op de iets hoger geklokte One S).

In de Scorpio zitten 40 CU’s die geklokt zijn op 1172MHz. Via een rekensommetje: 40 (aantal CU’s) x 64 (aantal Stream Processors) x 2 (acties per clockcyclus) x 1172 (MHz) kom je dan uit op 6000640 MegaFLOPS. Ofwel 6000 GigaFLOPS. Ofwel 6 TeraFLOPS! Wederom een leuk verhaaltje voor op de verjaardag van je tante, maar wat is in godsnaam een TeraFLOPS?

1,4 TeraFLOPS van de Xbox One tegen 6 TeraFLOPS van de Scorpio

WTF is TeraFLOPS?

FLOPS staat voor Floating Point Operations Per Second, kort gezegd is dat een eenheid die de zwevende komma berekening per seconden berekend. Hoe hoger de FLOPS waarde, hoe sneller de CU’s kunnen rekenen.

Het voorvoegsel voor de FLOPS is een zogenaamd SI-voorvoegsel zoals we dat wel vaker bij computercijfers zien (kilobyte, megabyte, gigabyte). Tera is 10 tot de macht 12. 1 TeraFLOPS is dus 1.000.000.000.000 komma berekeningen per seconden! Deze eenheid is dus eigenlijk enkel rauwe rekenkracht en zegt eigenlijk vrij weinig over de echte mogelijkheden van een GPU.

Nogmaals, de rauwe rekenkracht zegt weinig over de echte mogelijkheden van een GPU. Het is hoe je die rauwe rekenkracht omzet in grafische pracht en praal in het geval van een GPU. Dit wordt in het geval van AMD gedaan door de instructieset GCN. GCN staat voor Graphics Core Next. Op de Xbox One wordt er gebruik gemaakt van GCN 1.1, een vrij oude versie uit 2012 die ook in de AMD HD 7000 serie pc videokaarten zit.

GCN 4

De Scorpio maakt juist gebruik van een vernieuwde GCN versie, waarschijnlijk een soort GCN 4 versie die ook in de AMD RX4xx serie (die gebruik maakt van een GPU met Polaris architectuur) videokaarten wordt gebruikt. Het is op dit moment niet helemaal duidelijk welke GCN er exact gebruikt wordt, AMD kan namelijk diverse delen van GCN versies combineren.

De PlayStation 4 Pro doet dit ook. De GPU in die console maakt gebruik van techniek die ook in de nieuwste AMD videokaarten te vinden zijn. Bij de Scorpio hebben we daar nog geen bewijzen van, enkel het feit dat er Delta Color Compression aanwezig is, wat niet in de oude GCN 1.1 zit en dat de ROPs verdubbeld zijn van 16 naar 32. Beide wijzen naar een Polaris-achtige chips die ook gebruikt wordt op de AMD Radeon RX480, een high-end kaart die nog geen jaar geleden uit is gekomen.

Polaris architectuur met GCN 4

Nog één afkorting dan: ROP

Dat laatste is iets waar enthousiasten warm van worden, de verdubbeling van ROPs. de 16 aanwezige ROPs in de Xbox One zijn een grote bottleneck waardoor veel games op 900p draaien in plaats van 1080p. Een ROP is een Render Output Unit, of ook wel Raster Operations Pipeline genoemd.

De taak van een ROP is om een frame klaar te zetten zodat deze naar je tv of monitor gestuurd kan worden. Deze ROP is dus eindverantwoordelijk voor wat je gaat zien op je display. In dit gedeelte wordt alles wat er is gerenderd door de voorgangers in de pijplijn, zoals texture mapping en shaders, gladgestreken. Na de ROP is het frame klaar en komt het in de framebuffer terecht, die alle frames netjes op tijd naar je display brengt. Hoe meer ROPs je in een GPU hebt zitten, hoe sneller je frames klaar kunt zetten in de framebuffer.

Wat kunnen we nu al zeggen over de Scorpio?

Al met al is de nieuwe GPU in de Scorpio bizar te noemen als je het vergelijkt met de Xbox One. De werkkracht is 4,58 keer wat de Xbox One aan kan, de ROP doorvoer is 2,75 keer dat van de Xbox One.

Dit in samenwerking met de vernieuwde CPU cores, het snellere geheugen en de vele malen grotere busbandbreedte van het geheugen moet er voor zorgen dat we in principe alles in 4K kunnen krijgen op 60 frames per seconden.

4K en 60fps dus…

Kunnen alle games dit dan straks? Nee, dat lijkt mij zo goed als onmogelijk. Een game zoals Just Cause 3 gaat dat nooit redden, die game is zo slecht geoptimaliseerd dat zelfs een Intel 7700K met een GTX1080TI dit niet soepel op 4K 60fps kan draaien.

De bestaande games van de zogenaamde first party studio’s van Microsoft komen vast wel een eind. Veel van deze studio’s gebruiken al DX12 of zitten zo dicht op Microsoft dat zij de hardware van binnen en buiten kennen. Bouw een game enkel voor de Xbox One/Scorpio en deze zal in volle 4K 60fps draaien. Multiplatform games die niet op DX12 draaien, die krijgen het lastig.

De volgende keer: geheugen en bandbreedte

Tot zo ver de SoC van de Scorpio, hopelijk hebben jullie er iets van opgestoken en heb ik jullie niet verveeld met mijn nerd stukje.

De volgende keer: geheugen en bandbreedte.

Mochten jullie nog vragen hebben, stel ze gerust!

Abonneer
Abonneren op
0 Reacties
Inline Feedbacks
View all comments