Intel Skylake architectuur review: Intels 6de generatie Core CPU's

42 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Verbeteringen in de core
  3. 3. Cache en geheugen
  4. 4. Stroombesparing
  5. 5. Multimedia
  6. 6. Conclusie 
  7. 42 reacties

Verbeteringen in de core

Traditiegetrouw heeft Intel weer vele verbeteringen en optimalisaties in de cores doorgevoerd. Misschien wel het belangrijkste nieuws is echter dat Intel bij Skylake na jaren afstapt van het gebruiken van identieke cores voor desktop/laptop-varianten van de CPU-generatie en de server-varianten. Zonder op details in te willen gaan, liet Intel deze week weten dat de toekomstige Skylake server-CPU's nog verschillende nieuwe functies zullen bieden, die bij de "client"-CPU's niet aanwezig zijn. Eén daarvan weten we al op basis van Intels documentatie over de instructieset: de server-CPU's zullen ondersteuning krijgen voor 512-bit AVX-instructies.

Maar goed, terug naar Skylake zoals dat nu voor desktop- en laptop processors wordt geïntroduceerd. In de front end van de CPU-cores heeft Intel, zoals eigenlijk iedere generatie, de branch predictor verbeterd. Moderne CPU's voeren de instructies van programmacode niet uit in de originele volgorde, instructies worden zoveel mogelijk parallel en in optimale volgorde uitgevoerd, om zo de verschillende execution units, de onderdelen van de CPU-cores waar daadwerkelijk berekeningen en bewerkingen worden uitgevoerd, bezig te houden. Bij vertakkingen in programmacode, zoals IF-THEN-ELSE-constructies, waarbij de benodigde variabelen nog niet bekend of berekend zijn, moet de processor een gok nemen welke aftakking vermoedelijk genomen wordt. Hoe beter de branch preditor, hoe minder vaak de verkeerde keuze gemaakt wordt en hoe minder vaak er instructies worden uitgevoerd die uiteindelijk helemaal niet nodig blijken.

Verder heeft Intel het aantal instructies dat een core in optimale volgorde in het vizier kan houden vergroot. Het zogenaamde out-of-order window is verhoogd van 192 instructies bij Haswell naar 224 bij Skylake. Dit alles dus om zo vaak en veel mogelijk alle execution units bezig te houden. Ook de prefetchers, het onderdeel van de CPU dat voorspelt welke data uit het geheugen nodig gaat zijn en dat al vooraf ophaalt en in L2- of L1-cache plaatst, is volgens Intel verbeterd, zonder dat verder toe te lichten.

Deze execution units in de backend van de cores hebben volgens Intel lagere latencies gekregen en er zijn meer execution units gekomen. Dat eerste duidt op een kortere pipeline voor bepaalde soorten instructies, maar helaas wilde Intel hier niet verder op ingaan. Ook kon men ons niet vertellen welk type execution units extra zijn toegevoegd; we moeten het doen met de belofte dat we dat te horen krijgen zodra de server varianten van Skylake worden uitgebracht. Nieuw is dat execution units binnen een core wanneer niet gebruikt - bijvoorbeeld dus de floating point units, wanneer er enkel integer instructies gequeued zijn - uitgeschakeld kunnen worden om extra stroom te besparen. Daarnaast laat Intel weten dat de voor veel beveiligings- en encryptiesoftware benodigde AES-GCM en AES-CBC instructies met respectievelijk 17% en 33% versneld zijn.

Voor wat betreft de communicatie tussen de cores en het geheugen heeft Intel het onder meer over een betere L2-cache miss bandwidth, wat duidt op een snellere verbinding tussen de cores en wat we vroeger de L3-cache en nu de LLC ofwel last level cache noemen. Skylake bevat verder nieuwe instructies waarmee de verschillende caches beter beheerd kunnen worden, al werd het exacte effect daarvan helaas ook niet uitgediept. Volgens Intel is de HyperThreading technologie bij Skylake ook verbeterd.

Onderstaande afbeelding toont wat kerngetallen van buffers en andere zaken die bij Skylake vergroot zijn. We hadden het al over het grote out-of-order window, maar bijvoorbeeld ook het aantal store operaties (instructies om data in het geheugen te plaatsen) dat tegelijkertijd verwerkt kan worden is flink verhoogd, net als het aantal instructies dat gelijktijdig door de scheduler verwerkt mag worden. Al deze onderdelen hebben stuk voor stuk een kleine bijdrage aan de verbeterde IPC.

De cores van de Skylake processor bevatten verder een tweetal nieuwe security technologieën. Intel Software Guard Extensions, ofwel kortweg Intel SGXmoet ervoor zorgen dat applicaties in hun eigen, volledig afgeschermde omgeving kunnen werken, waarbij het onmogelijk wordt voor andere software om data of programmacode te benaderen of te manipuleren. Net als de Intel Trusted Execution Technologie dit al doet om meerdere virtuele machines van elkaar af te zonderen, doet SGX dit dus op applicatieniveau. Wat precies de performance impact van SGX is, kon of wilde Intel ons nog niet vertellen. Het is dus nog even wachten eer de eerste software die hiervan gebruikmaakt op de markt komt. 

De Intel Memory Protection Extensions, ofwel Intel MPX, is een uitbreiding op de cores die geheugen bufferflow aanvallen moet tegengaan. Buffer overflows, waarbij meer data wordt weggeschreven dan oorspronkelijk de bedoeling was om zo data van andere software te overschrijven, is één van de meest gebruikte methodes voor soft- en hardwarehacks.

Hoewel we verderop nog dieper in gaan op nieuwe stroombesparingstechnieken binnen Skylake, zijn er een aantal specifiek voor de cores. Een slimme toevoeging is dat de core-onderdelen die benodigd zijn voor AVX2 instructies volledig elektrisch uitgeschakeld kunnen worden als er geen AVX2 instructies worden aangevoerd. Bij AVX2 worden instructies met 256-bit data in één keer verwerkt, wat een stuk meer rekenkracht en dus ook elektrisch vermogen vergt dan normale 32- of 64-bit instructies. Onderzoek van Intel wijst uit dat er over het algemeen twee standen zijn als het om AVX2 instructies gaat: geen of heel veel tegelijk. Het volledig uitschakelen van deze functie levert weliswaar enige vertraging op zodra er weer een eerste AVX2 instructie verschijnt, maar dat lijkt dus te verantwoorden. Naast het volledig uitschakelen van de hardware nodig voor AVX2 kunnen andere core-onderdelen die niet gebruikt worden ook op een lager pitje worden gezet. Verder heeft Intel naar eigen zeggen het idle-verbruik van de cores opnieuw verbeterd.

Eén ding zit expliciet niet verwerkt in de Skylake cores. De inverse HyperThreading geruchten van de laatste dagen zijn volgens Intel niet correct en men geeft aan dat een dergelijke technologie niet in Skylake aanwezig is en ook helemaal niet eenvoudig te implementeren is. De grote prestatieverbetering bij sommige single-threaded workloads die verklaard konden worden door deze mysterieuze technologie, komt volgens Intel primair voor rekening van een efficiënter werkende L3-cache.

0
*