Intel Atom Silvermont preview: echte concurrentie voor ARM

16 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Silvermont
  3. 3. 22nm transistors
  4. 4. Architectuur: Out of Order execution en meer
  5. 5. Nieuwe instructies
  6. 6. Stroomverbruik
  7. 7. Modulair
  8. 8. Te verwachten prestaties
  9. 9. Conclusie
  10. 16 reacties

Architectuur: Out of Order execution en meer

De architectuur van de Atom-cores is zoals geschreven voor het eerst sinds 2008 drastisch op de schop gegaan. Een van de belangrijkste vernieuwingen is dat de processors vanaf nu Out of Order werken. Een kleine herhaling van de basale werking van een processor voor bij wie er bij het horen van deze kreet niet direct een lampje gaat branden:

Traditioneel werkt een processor de instructies waaruit software is opgebouwd netjes één voor één af, in de volgorde zoals ze in de programmacode staan. In de praktijk betekent dit dat programmacode naar het geheugen wordt gekopieerd en de processor de instructies vanaf opéénvolgende geheugenadressen uitleest en verwerkt. Zodra een instructie wordt opgehaald wordt deze gedecodeerd naar zogenaamde Micro Ops (mini operaties die een processor daadwerkelijk kan uitvoeren) en wordt de voor de instructie benodigde data opgehaald uit het geheugen op uit de processorcache, waarna de instructie door de zogenaamde execution units wordt uigevoerd. Alle Intel-processors tot aan de originele Pentium (en dus ook de huidige Atoms die hierop gebaseerd zijn) werken op deze manier met instructies in de originele volgorde, ofwel In Order.

Bij de Pentium Pro en Pentium II is Intel overgestapt op een Out of Order ontwerp, waarbij speciale logica binnen de processor instructies in bulk binnenhaalt en zelf bepaalt in welke volgorde deze het beste kunnen worden uitgevoerd. Er kunnen verschillende redenen zijn waarom het omwisselen van de volgorde van instructies voor betere prestaties kan zorgen. Een reden kan bijvoorbeeld zijn dat data die nodig is voor een toekomstige instructie al direct beschikbaar is in het zeer snel te benaderen cache-geheugen van de processor, terwijl de instructie die eigenlijk aan de beurt is data nodig heeft uit het RAM-geheugen, dat relatief langzaam is om te benaderen. De processor kan dan eerst de andere instructie(s) verwerken en gelijktijdig, op de achtergrond, de benodigde data voor de eerdere instructie uit het geheugen in de cache laden.

Een andere reden kan zijn dat een bepaalde instructie afhankelijk is van een instructie die nog verwerkt wordt: een Out of Order CPU kan dan in de tussentijd alvast aan de slag met instructies die niet afhankelijk zijn van wat op dit moment verwerkt wordt. Out of Order verwerking is één van de belangrijkste redenen waarom de Pentium II en latere processors een stuk sneller zijn dan de originele Pentium en het komt nu eindelijk ook naar Atom. Waarom nu pas kun je je afvragen? De Out of Order werking vergt natuurlijk enerzijds extra chipoppervlak en anderzijds zorgt het voor extra stroomverbruik. Volgens Intel is men nu pas op het punt waar de voordelen opwegen tegen de nadelen bij mobiele processors, waar iedere milliwatt er in feite één te veel is. Als we even over de schutting kijken: bij ARM is de Cortex A8 core ook volledig In Order, bij de Cortex A9 zijn enkele Out of Order technieken toegepast en de nieuwste Cortex A15 architectuur is ook volledig Out of Order.

Volgens Intel zorgt alleen de overstap naar een Out of Order ontwerp al voor een 30% prestatiewinst bij single threaded applicaties. Dat is dus nog zonder de prestatiewinst die de kleinere transistors, andere architecturele verbeteringen en nieuwe instructiesoorten bieden.

De nieuwe Atom-architectuur heeft naar verluidt ook een veel betere branch predictor, de logica binnen de processor die bij vertakkingen binnen programmacode vooraf inschat welke vertakking het meest waarschijnlijk genomen gaat worden. Om goede prestaties te behalen werken moderne processors graag vooruit en een goede branch prediction is dan van belang, om te voorkomen dat er vaak werk wordt uitgevoerd dat uiteindelijk helemaal niet nodig was.

Het negatieve effect van een verkeerd voorspelde vertakking is bij de nieuwe Atom-architectuur ook ingedamd, omdat Intel de pipeline van de execution units heeft aangepast. De originele Atom heeft een pipeline met 16 stages: het uitvoeren van een instructie gebeurt dus in 16 mini-stapjes die elk één klokslag in beslag nemen. Om het orignele ontwerp zo simpel mogelijk te houden, bevat de originele pipeline drie stappen om data uit het cachegeheugen op te halen. Deze stappen worden altijd doorlopen, ook wanneer een instructie helemaal geen data uit het cachegeheugen nodig heeft. Bij de nieuwe architectuur zijn deze drie stappen optioneel en worden ze overgeslagen voor instructies die het niet nodig hebben. Het resultaat is een pipeline die varieert tussen de 14 en 17 stappen, maar bovenal dat er bij een verkeerd ingeschatte aftakking slechts 10 stappen overbodig werk worden gedaan in plaats van 13 stappen.

Daarnaast zijn dinstructiedecoders van de Atom-processors verbeterd, zodat ze veel meer X86-instructies direct kunnen omzetten naar één enkele MicroOp. Andere vernieuwingen aan de architectuur zijn onder meer de ondersteuning voor grotere L2-caches (tot 1 MB) en het betere herkennen en verwerken van loops in programmacode. Wat niet is veranderd, is dat de architectuur nog altijd wat men noemt 2-wide is. Oftewel, op ieder moment kunnen er twee instructies tegelijkertijd gedecodeerd worden en doorgestuurd worden naar de executions units. Ter vergelijking: de recente Core-processors zijn 4-wide. ARM is voor de Cortex A9 al overgestapt naar een 3-wide systeem, maar Intel heeft besloten dat de extra investering in transistors niet noodzakelijk is. Onze tests toonden al aan dat de huidige dual-core Atom-architectuur zich qua prestaties al prima kan meten met quad-core Cortex A9's. De overige verbeteringen zullen vermoedelijk dus al meer dan voldoende zijn om tegenwicht te bieden aan de Cortex A15 en andere moderne ARM-implementaties.


Het blokschema van de nieuwe Silvermont Atom-architectuur


De cores zijn nieuw ontworpen en bevatten vele verbeteringen


De instructiepipeline is bij Silvermont aangepast. Overbodige stappen worden niet meer doorlopen en de impact bij een branch miss is verminderd.

0
*