Intel Core i7 8086K versus Intel 8086: wat levert 40 jaar innovatie op?

1 besproken product
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Hoeveel sneller?
  3. 3. Hebben we iets te klagen?
  4. 1 besproken product

Hoeveel sneller?

Hoeveel sneller is die 8086K nu dan zijn verre voorloper? Laten we met een simpel onderdeel beginnen. De Core i7 8086K wordt naar verluidt een 6-core processor. Multi-core chips ontwerpen waren iets waar men in 1978 nog lang niet mee bezig was; dat zou nog tientallen jaren duren. De 8086 was dus net als de meeste van zijn nakomelingen single-core. Het prestatieverschil is dus sowieso een factor 6x.

Van mega naar giga

Dan de klokfrequentie. Volgens de geruchten krijgt de 8086K een basisklokfrequentie van 4 GHz met een Turbo-modus die de processor zou moeten versnellen tot een ongekende 5,1 GHz! Het is echter die basisklokfrequentie waarvan Intel altijd garandeert dat de processor daar langdurig op kan blijven werken, ook wanneer alle cores in gebruik zijn. Het zou tot circa de eeuwwisseling duren eer Intel überhaupt in gigahertz ging denken; de oorspronkelijke 8086 werkte op een klokfrequentie van 4,77 megahertz - laten we voor het gemak zeggen 5 MHz. Dat maakt dat de nieuwe 8086 alleen al vanwege het verschil in klokfrequentie een factor 4000 / 5 = 800x sneller is.

Vier keer zoveel bits

De oorspronkelijke 8086 is een 16-bit processor, wat betekent dat alle onderdelen van de chip – van de execution unit die daadwerkelijke berekeningen uitvoert, tot aan alle registers waarin tijdelijk data kan worden opgeslagen – kunnen werken met getallen die uit zestien 0’en en 1’en bestaan. Ten tijde van de 80386 werd de x86-architectuur opgewaardeerd naar 32-bit en sinds begin van deze eeuw op initiatief van AMD naar 64-bit. Toegegeven, dankzij instructieset uitbreidingen als SSE en AVX kunnen moderne x86-processors zelfs bepaalde instructies uitvoeren op primair floating point getallen (getallen met een komma) met een nauwkeurigheid van 128, 256 en bij de nieuwste Intel server-CPU’s zelfs 512 bits, maar aangezien die oorspronkelijke 8086 überhaupt nog geen floating point deed, houden we het voor het vergelijk toch even op de standaard 64-bit. Dat betekent dat bij iedere verwerking er vier keer zoveel bits verwerkt kunnen worden als weleer, dus een extra factor 4x.

Wanneer is het af?

Dan is er nog de vraag hoe lang duurt het voordat een instructie volledig verwerkt is door een processor. Ten tijde van de 8086 was het nog simpel: een processor verwerkte één instructie tegelijkertijd, voerde alles uit wat daarvoor nodig is en ging daarna pas verder met het volgende. Het snelst was de processor bij een simpele zogenaamde ALU-berekening (bijvoorbeeld twee getallen optellen of aftrekken) wanneer de te verwerken getallen beide in registers ofwel het snelste geheugen binnen de processor stonden. In een dergelijk geval kon een verwerking in drie klokslagen gebeurd zijn. Moest data van of naar het RAM-geheugen komen, dan kon het al snel 14 tot 28 klokslagen duren. Dan hebben we het nog niet gehad over complexere instructies als vermenigvuldigen of delen, die makkelijk 150 klokslagen of meer in beslag konden nemen. Als we in een theoretische benchmark de processor constant getallen uit het RAM-geheugen zouden laten optellen, zou de processor ruwweg dus één per 20 klokslagen een resultaat afleveren.

Super scalar

Hoe anders is dat tegenwoordig; sinds de Pentium Pro zijn Intel-processor zogenaamde super scalar, waardoor we niet langer praten over de hoeveelheid klokslagen per instructie, maar eerder over het aantal instructies dat een processor per klokslag kan verwerken. Hieraan ligt een aantal technieken ten grondslag, waarvan het feit dat een moderne processorcore meerdere execution units heeft en gebruik maakt van pipelining de belangrijkste zijn. De execution units zijn de onderdelen van een processorcore waar daadwerkelijk berekeningen plaats vinden; binnen de huidige Intel-processors vinden we er acht stuks, elk geschikt voor specifieke taken. Zo zijn sommige execution units puur geschikt voor het verwerken van geheugenadressen, slechts een beperkt aantal zijn geschikt voor floating point getallen, en zo verder. Van de 8 execution units binnen de Coffee Lake architectuur (die is gebaseerd op Skylake, die uiteindelijk weer is gebaseerd op de Core architectuur van de Core 2 Duo uit 2006) zijn er vier geschikt voor simpele berekeningen op integer getallen.

Moderne processors maken verder gebruik van pipelining, zeg maar “lopende band werk”. In plaats van een taak van begin tot eind uit te voeren en dan over te gaan naar de volgende, wordt een taak opgedeeld in meerdere mini-taakjes die stap-voor-stap worden uitgevoerd. Net als bij een echte lopende pand doorlopen instructies deze stappen achter elkaar door; wanneer de ene instructies gaat van stap 1 naar stap 2, wordt voor de volgende instructie alweer stap 1 uitgevoerd. Het volledig doorlopen van het gehele proces kan dan meerdere klokslagen duren (de gemiddelde pipeline-lengte bij moderne Intel processors is 14 stappen) zolang de aanwas van nieuwe instructies maar gestaag blijft doorlopen – en technieken als instructie en data pre-fetching, branch prediction en vele andere slimme trucs zorgen daar wel voor – kunnen er dus netjes iedere klokslag resultaten opgeleverd worden.  We schreven al dat er in Coffee Lake vier execution units zitten die berekeningen kunnen uitvoeren op 64-bit integer getallen. Ook alle andere onderdelen van de processor, zoals bijvoorbeeld het gedeelte waar instructies worden gedecodeerd en klaargezet of de caches, zijn breed genoeg uitgevoerd om minimaal vier instructies tegelijkertijd door de pipeline te laat vloeien. In onze theoretische benchmark, waar we de processor constant integer getallen uit het geheugen bij elkaar laten optellen, zou de moderne Intel processors dus in principe iedere klokslag vier resultaten kunnen opleveren. Afgezet tegen 20 klokslagen voor één resultaat, is dat nog eens een factor 80x.

Als we deze basale zaken combineren komen we erop uit dat de Core i7 8086K die Intel zou willen gaan introduceren minstens 6 x 800 x 4 x 80 = 1.536.000x sneller is dan z’n voorloper. En dan hebben we het nog positief berekenen voor die oorspronkelijke 8086; als we uit zouden gaan van workloads met meer verschillende en complexere instructies en grotere, complexere datastructuren dan zou het prestatieverschil nog véél groter zijn.

Als we dit weer terugrekenen naar 40 jaar komen we op gemiddelde circa 42,8% prestatiewinst per jaar! Als we dan ook nog even met een schuin oog naar de Wet van Moore kijken – die puur ging over het aantal transistors binnen chips en dus niet zoals veel mensen denken over de prestaties van CPU’s – komen we op gemiddeld 70,6% betere prestaties per periode van 1,5 jaar.

Advertentie

1 besproken product

Vergelijk   Product Prijs
Intel Core i7 8086K Boxed

Intel Core i7 8086K Boxed

  • Socket 1151
  • 4.0 GHz
  • 6 cores
  • 95 W
  • Geïntegreerde GPU
Niet verkrijgbaar
0