Intel Sandy Bridge architectuur in detail

16 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. MicroOp Cache
  3. 3. Load/store units
  4. 4. Floating point units
  5. 5. Geïntegreerde GPU
  6. 6. Stroomverbruik en Turbo modus
  7. 7. Reacties

Inleiding

Ongeveer een week geleden publiceerden we een uitgebreide preview van de Intel Sandy Bridge processors, die begin volgend jaar op de markt moeten komen. Tijdens het Intel Developer Forum deze week, waar Hardware.Info aanwezig is, zijn er meer details over de nieuwe architectuur van deze chips bekend geworden. In dit artikel nemen we de nieuwste informatie met je door. De informatie die al in de genoemde preview vermeld stond, wordt in dit artikel niet herhaald. Mocht je de eerdere preview niet gelezen hebben, raden we je aan dat alsnog te doen.


Die-shot van de Sandy Bridge chip die begin volgend jaar op de markt komt.

Blokschema

Tijdens de verschillende briefings over Sandy Bridge heeft Intel officieel het blokschema van de processor bekend gemaakt, zoals te zien op onderstaande afbeelding. Het was al bekend dat de eerste Sandy Bridge processors een viertal cores krijgen, een dual-channel DDR3-geheugencontroller, een geïntegreerde GPU en verder een geïntegreerde PCI-Express controller. Op de afbeelding zien we hoe de verschillende onderdelen met elkaar verbonden zijn.

Wat in het blokschema direct opvalt is dat de verschillende onderdelen van de chip op elkaar gestapeld lijken te zijn. Onderin zit de GPU, daarbovenop de vier cores (elk rechtstreeks verbonden met een kwart van de totale hoeveelheid gedeelde L3-cache) en daar bovenop de overige onderdelen als de system agent (het onderdeel dat al het interne verkeer binnen de chip regelt), de geheugencontroller, etc. Deze opbouw is niet toevallig: Intel heeft zich bij Sandy Bridge tot doel gesteld om de processor zo modulair mogelijk te maken. Om een goedkopere dual-core versie te maken, kan men relatief eenvoudig twee van de blokken met een core en een stuk L3-cache wegnemen en de rest weer aan elkaar plakken. Op dezelfde manier zijn relatief eenvoudig varianten van de chip zonder geïntegreerde GPU te maken, zonder dat er een geheel nieuw chipontwerp nodig is. Maar het werkt ook de andere kant op: een variant met zes, acht of meer cores maken is met deze modulaire insteek ook veel eenvoudiger dan bij oudere chipontwerpen, waar alle functionaliteit met elkaar verweven is.

Over het modulair opbouwen van processors wordt al lang gesproken en uit het blokschema mogen we afleiden dat Intel dit bij de Sandy Bridge generatie voor het eerst zeer ook zeer goed in de praktijk brengt. 

Een belangrijke vernieuwing binnen de Sandby Bridge architectuur is de interface waarmee alle onderdelen van de site met elkaar communiceren. Intel heeft gekozen voor een ringbus, waar alle cores, alle blokken L3-cache, de geïntegreerde GPU en de system agent mee zijn verbonden. Zo'n ringbus kun je nog het beste vergelijken met een ring snelweg rond een stad (bijvoorbeeld de A10 bij Amsterdam) met meerdere op- en afritten. Wanneer je snel van de ene plek in de stad naar de andere wil, rij je naar de dichtstbijzijnde oprit, rij je daarna afhankelijk van wat het kortst is linksom of rechtsom naar de afrit die het dichtst bij je bestemming is en daarna ga je weer binnendoor. Het mooie van zo'n ring is dat je, net als bij de stad, zo veel mogelijk opstoppingen binnen de chip beperkt. Daarnaast werkt de ring ook mee aan de modulariteit van de chip: het weghalen of toevoegen van cores is ook simpelweg een kwestie van het weghalen of toevoegen van afritten op de ring. 

De ringbus binnen Sandy Bridge werkt op een duizelingwekkende snelheid 96 Gigabit/s in beide richtingen. 

MicroOp Cache

Sandy Bridge heeft groot aantal vernieuwingen binnen de architectuur die kunnen zorgen voor een flinke prestatieverbetering. Eén daarvan is een cache voor MicroOps. Even een klein beetje uitleg voor wie deze term minder bekend is. Een Intel processor wordt vanuit de software aangestuurd door middel van de X86-instructieset. De X86 architectuur kenmerkt zich door het feit dat er zeer veel instructies zijn, variërend van zeer simpel tot zeer complex. Veel van deze complexe instructies kan een processor niet in één keer uitvoeren; voor verwerking worden ze eerst binnen de CPU opgedeeld in één of meerdere MicroOps.

In onderstaande afbeelding zie je hoe het verwerken van instructies bij huidige Intel processors in het werk gaat. Een wachtrij van instructies die moet worden uitgevoerd wordt opgebouwd in de instructie cache, welke bij alle courante Intel CPU's 32 kilobyte per core is. Vanuit daar gaan de instructies eerst via een predecoder - een onderdeel dat al wat eerste stappen uitvoert - naar een instructie wachtrij en van daar naar een decoder. Deze decoder verwerkt alle X86-instructies naar één of meerder minder complexe MicroOps. Deze MicroOps komen weer een in wachtrij terecht en worden daarna in optimale volgorde (out-of-order in jargon) verwerkt.

In de tweede afbeelding zie je hoe dit bij Sandy Bridge in z'n werk gaat. Vanuit de decoder gaan de instructies niet alleen naar de wachtrij, maar ook naar de MicroOp Cache. Deze cache staat via de branch predictor - het onderdeel dat ondermeer voorspelt welk codepad binnen IF-THEN-ELSE constructies vermoedelijk in de toekomst moet worden genomen - ook weer in verbinding met de instructie cache. Mocht er een instructie binnenkomen die recent al eens is gedecodeerd, hoeft dit niet opnieuw te gebeuren en kan deze direct worden doorgestuurd naar de MicroOp wachtrij. In de cache passen zo'n 1500 gedecodeerde MicroOps.

Deze MicroOp cache biedt een aantal voordelen. Allereerst wordt de wachttijd (latency) voordat een instructie daadwerkelijk kan worden uitgevoerd in potentie flink verkort. Lees: betere prestaties. Een ander voorbeeld is dat de instructie decoders geregeld uitgeschakeld kunnen worden. Lees: lager stroomverbruik.

In de tweede afbeelding is ook de branch prediction unit geel gemaakt. Dat heeft Intel gedaan om aan te geven dat ook die verder verbeterd is. Hoewel de branch predictor bij alle nieuwe processorarchitecturen van de afgelopen paar jaar een onderdeel is waar flink aan is gesleuteld, blijft het de moeite waard om de werking ervan te verbeteren. Een verkeerde keuze betekent immers dat de processor heel veel werk voor niets aan het doen is en dus een flinke klap voor de prestaties. Intel wil niet precies aangeven in welk percentage van de voorspellingen de juiste keuze wordt voorspeld, maar uit gesprekken blijkt dat dit inmiddels ver boven de 95% is.

Load/store units

Een tweede duidelijke verbetering binnen de Sandy Bridge architectuur vinden we bij de executions units, de eenheden binnen de cores die daadwerkelijk instructies uitvoeren. Alle courante Intel CPU's hebben per core drie execution units die taken met betrekking tot het geheugen kunnen uitvoeren. Deze drie units staat in verbinding met de L1 datacache (32 kB), welke weer in verbinding staat met de L2-cache, L3-cache en tenslotte het geheugen. De drie executions units hebben elk hun eigen functie: de eerste kan data uit het geheugen ophalen (load), de tweede data de adressen waar data moet worden weggeschreven versturen (address store) en de derde kan daadwerkelijk data wegschrijven (data store).


De load en store units bij Nehalem en Westmere


En de load en store units bij Sandy Bridge.

Binnen de Sandy Bridge architectuur hebben de eerste twee execution units een dubbele functie gekregen: ze kunnen zowel voor load als voor store instructies gebruikt worden. Dat betekent onder meer dat de Sandy Bridge cores per klokslag niet één keer 128-bit aan data maar twee keer 128-bit data kunnen ophalen. Maar ook het wegschrijven van data adressen kan vanaf nu op dubbele snelheid. Volgens Intel moet deze verandering bij veel applicaties voor een flinke prestatiewinst zorgen.

Floating point units

Ook bij de floating point execution units, ofwel de verwerkingseenheden die rekenen met gebroken getallen, zijn er flinke verbeteringen doorgevoerd. In deel 1 van onze preview schreven we al over de nieuwe AVX-instructieset waar Sandy Bridge mee werkt. Dankzij AVX kan de processor direct werken met getallen bestaande uit 256-bits. Bij de huidige Intel processors kan de verwerking van data met maximaal 128-bits tegelijk.

In onderstaande afbeelding zien we de opbouw van de execution units bij de huidige Nehalem en Westmere processors. We zien een vijftiental execution units, waarvan er telkens drie gelijktijdig door de scheduler kunnen worden aangestuurd, via iedere poort één. In de tweede afbeelding zien we de opbouw bij Sandy Bridge. Nog steeds kunnen telkens drie instructies per keer naar de executions units worden afgevuurd, maar de executions units zijn alle een stuk krachtiger geworden.


Niet geheugen gerelateerde execution units bij Nehalem en Westmere.


Niet-geheugen-gerelateerde execution units bij Sandy Bridge.

Allereerst zien we dat telkens twee execution units kunnen samenwerken om 256-bit getallen in één keer te kunnen verwerken. Waar vanuit iedere poort tot nu toe maximaal een 128-bit getal verwerkt kon worden, kunnen dankzij AVX nu vanuit iedere poort telkens 256-bit getallen verwerkt worden. Dat betekent per definitie dat bij AVX-geoptimaliseerde software er een prestatiewinst van in theorie een factor twee mogelijk is. Om dit mogelijk te maken heeft Intel een aantal executions units die tot nu toe alleen met gehele getallen (integers) konden werken nu ook opgewaardeerd naar floating point. Deze execution units kunnen echter ook nog steeds los, in hun oorspronkelijke modus gebruikt worden.

Uiteindelijk ziet de volledige CPU pipeline er als volgt uit:

Geïntegreerde GPU

De geïntegreerde GPU binnen Sandy Bridge is een flinke stap vooruit ten opzichte van Westmere. De ontwerpers van de GPU profiteren van het feit dat de GPU nu daadwerkelijk binnen de chip is geïntegreerd en zodoende gebruik maakt van hetzelfde state-of-the-art productieprocedé als de processor. Tot nu toe liep de GPU altijd minstens één stap achter. Vergeet niet: in de Clarkdale CPU's is het CPU gedeelte danwel 32 nm, de geïntegreerde GPU is nog steeds 45nm.

Om de prestaties te verbeteren en bovenal het stroomverbruik te verlagen is Intel afgestapt van de gedachte die ook bij ATI en nVidia heerst, dat de shader units ofwel execution units dynamisch kunnen worden ingezet voor alle denkbare taken. Hoewel het extra transistors kost, is het volgens Intel slimmer om voor veel uitgevoerde taken specifieke hardware op te nemen in de chip. De chip wordt er dan wel groter van, maar de betreffende taken kunnen sneller en zuiniger worden uitgevoerd.

Dat betekent concreet dat veel taken binnen de 3D-pipeline door zogenaamde fixed function hardware wordt uitgevoerd, maar ook op media vlak is dat het geval. Het decoderen van video door een Sandy Bridge wordt inclusief post-processing vrijwelke compleet door fixed-function hardware gedaan: de CPU-cores, maar ook de executions units binnen de GPU kunnen dus rustig naar idle-modus. Intel houdt het deze keer echter niet alleen hij het decoderen van video, de Sandy Bridge GPU kan ook het encoderen van video hardwarematig versnellen, zij het puur voor de H.264 / MPEG4 AVC codec. Volgens Intel kan een Sandy Bridge CPU HD-video afspelen met ongeveer de helft van het stroomverbruik dan een Westmere. Dat betekent dat je in het vliegtuig dus heel wat langer films kunt kijken op je laptop.

De execution units zijn verder een stuk krachtiger geworden in vergelijking met de vorige generatie Intel GPU's. Bij de Westmere GPU's moesten veel complexe DirectX-instructie worden opgedeeld in soms wel drie of vier minder complexe instructies die daadwerkelijk door de execution units konden worden uitgevoerd. Vergelijk het een beetje met de MicroOps waar we het op pagina twee bij de GPU over hadden. Bij de Sandby Bridge GPU kunnen bijna alle DirectX en OpenGL instructies één-op-één worden vertaald naar één hardwarematige instructie. Dat betekent dat iedere afzonderlijke execution units veel meer werkt kan verzetten dan vroeger.

Intel waarschuwt er dan ook voor om niet simpelweg shader units te tellen en op basis daarvan uitspraken te doen over de prestaties. De GPU van Westmere heeft er 8, de GPU van Sandy Bridge heeft er 12. De te verwachten prestatiewinst zal echter veel meer zijn dan 50%. Intel geeft aan dat iedere execution unit ongeveer twee keer meer werk per tijdseenheid kan doen dan voorheen. De 12 execution units zouden zodoende te vergelijken zijn met 24 oude varianten. Dat betekent dat we een prestatiewinst van circa 300% mogen verwachten.

Jammer is echter dat de geïntegreerde GPU niet geschikt is voor DirectX 11, maar alleen voor DirectX 10.1. OpenGL wordt ondersteuning tot en met versie 3.2 en verder is er ondersteuning voor GPGPU applicaties via DirectCompute 10.1 en OpenCL 1.1.

Stroomverbruik en Turbo modus

De Sandy Bridge processors bevatten weer een aantal nieuwe functies om het stroomverbruik verder terug te brengen. Net als bij de Nehalem en de Westmere processors zit er binnen de system agent weer een power control unit die met complexe algoritmes het stroomverbruik van alle onderdelen van de chip in de gaten houdt en waar nodig bijvoorbeeld cores volledig kan uitschakelen. Nieuw bij Sandy Bridge is dat de chip met drie verschillende voltage- en frequentiedomeinen werkt: de system agents, de cores/L3-cache en de GPU kunnen alle op hun eigen basisklokfrequentie en hun eigen voltage werken. Op die manier kan het totale stroomverbruik verder geminimaliseerd worden.

Ook de turbo modus is flink op de schop genomen. Allereerst hebben bij Sandby Bridge zowel de CPU-cores als de GPU een turbo modus en werken deze - omdat ze nu op één chip zitten - zeer nauw samen. Ofwel: als de CPU het rustig aan doet, krijgt de GPU meer speelruimte en andersom. Intel geeft verder aan dat Sandy Bridge meer turbo-stappen krijgt dan Westmere, ook wanneer alle cores in gebruik zijn. Hoeveel frequentiestappen er exact maximaal in iedere situatie bijkomen, wil men op dit moment echter nog niet kwijt.

Een interessante nieuwe functionaliteit is de kick-down technologie: hierbij kan een processor gedurende een relatief korte tijd (er worden gesproken over maximaal 20 seconden) automatisch overklokt worden tot boven z'n TDP-waarde. Intel heeft deze technologie bedacht om computers responsiever te maken. Het idee is bijvoorbeeld dat wanneer je een programma opstart, het besturingssysteem tijdelijk voor de betreffende thread een kick-down opvraagt, waardoor het programma zeer snel wordt geopend. Daarna gaat de processor terug naar normale turbo-standen. Dat het opstarten van programma's lang kan duren is volgens Intel één van de grootste ergernissen bij computergebruikers. De kick-down kan deze gewraakte wachttijden potentieel flink verlagen.


De Turbo Modus van Sandy Bridge kan een korte tijd boven de TDP-spec werken.

Conclusie

Veel eigenschappen van de toekomstige Sandy Bridge processors waren al bekend, maar Intel heeft ons op IDF een wat diepere blik onder de motorkap gegund. We mogen concluderen dat zowel de CPU-cores als de GPU potentieel een stuk sneller kunnen werken dan bij de huidige Westmere GPU's. Een andere belangrijke vernieuwing is dat de nieuwe CPU veel modulairder is opgebouwd dan z'n voorloper: Intel kan dus makkelijker langzamere en snellere varianten maken.

Hoe snel Sandy Bridge exact in de praktijk zal zijn blijft nog giswerk. Begin januari moeten de processors beschikbaar worden en tegen die tijd zul je van ons uiteraard een uitgebreide test kunnen verwachten.

0
*