Intel Xeon X5570 'Nehalem' test

18 reacties
13 besproken producten
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Native quad-core
  3. 3. HyperThreading
  4. 4. Geïntegreerde geheugencontroller
  5. 5. QuickPath
  6. 6. Power controller
  7. 7. Turbo modus
  8. 8. Diepere duik in de architectuur
  9. 9. Branch prediction en execution units
  10. 10. Geheugenmanagement
  11. 11. Virtualisatie
  12. 12. Modellen
  13. 13. ASUS platform
  14. 14. Benchmarks
  15. 15. Benchmarks: HPC
  16. 16. Benchmarks: HPC (2)
  17. 17. Bechmarks: 3D-rendering
  18. 18. Benchmarks: MySQL
  19. 19. Benchmarks: Geheugen
  20. 20. Stroomverbruik
  21. 21. Performance per Watt
  22. 22. Toekomst
  23. 23. Conclusie
  24. 13 besproken producten
  25. 18 reacties

Branch prediction en execution units

Een belangrijke manier om de prestaties van een processor te verbeteren is het zo goed mogelijk voorspellen van vertakkingen in programmatuur. Immers, moderne out-of-order processors verwerken instructies niet noodzakelijkerwijs in de volgorde waarin ze binnenkomen en daardoor kan het zijn dan er al gewerkt moet worden aan instructies die nog afhankelijk zijn van een eerdere instructie, die pas op een later tijdstip wordt uitgevoerd. Wanneer er in zo'n geval een vertakking in een programma ontstaat, zal de processor zo goed mogelijk een gok doen welke tak de meeste kans van slagen heeft. Branch predictors zijn tegenwoordig zo goed dat er nog maar zelden mis gegokt wordt. Dat is maar goed ook, want een branch miss betekent dat de hele pipeline vol kan zitten met instructies die niet meer nodig zijn, zodat het heel wat klokslagen kan duren eer weer een juiste instructie uit de processor rolt.

Intel heeft op een aantal manieren de branch prediction in Nehalem verder verbeterd. Een van de belangrijkste manieren bestaat uit het al beginnen met het voorspellen zodra instructies in L2-cache aankomen. Op dit niveau heeft de processor een breder kijkveld en kan er zodoende een nog betere beslissing worden genomen.

Dan de execution units; zoals eerder in dit artikel al beschreven is er bij Nehalem een zesvoudig pad van het reservation station naar de daadwerkelijke rekeneenheden van de core. Bij de Core architectuur waren dat er vier. Achter elk van deze zes ingangen, zit één of meerdere rekeneenheden. Poort 2, 3 en 4 zijn alleen geschikt voor geheugenadres operaties, poort 0, 1 en 5 zijn ook geschikt voor integer of floating point berekeningen, zoals ook te zien in onderstaande afbeelding.


De zes execution units binnen iedere core zijn geschikt voor verschillende instructies.

Het doel is natuurlijk om te allen tijde alle vier poorten gevuld te hebben. (Het vullen van vijf of zes is in de praktijk vrijwel onmogelijk, aangezien er tot aan het reservation station slechts vier instructies per klokslag kunnen worden doorgestuurd.) Dat betekent dat de processor in het ideale geval op ieder moment aan de slag moet kunnen vier verschillende bewerkingen, die naast elkaar in de verschillende execution units moeten passen. Geen wonder dat een processor de volgorde van instructies omhusselt om deze in een optimale volgorde uit te voeren. 

Om in zoveel mogelijk gevallen alle execution units bezig te houden, is bij Nehalem het aantal instructies, dat een core tegelijkertijd in zijn vizier kan houden om in geoptimaliseerde volgorde uit te voeren, flink verhoogd. Twee generaties geleden was het maximum 64 instructies, bij de Core architectuur werd dat aantal verhoogd naar 96 en nu bij Nehalem zelfs naar 128. Een verhoging van 33% dus. De ruimte in het reservation station is toegenomen van 32 naar 36 instructies. 

Het aantal buffers voor load en store operaties is nog meer toegenomen. Het aantal load buffers gaat van 32 naar 48, het aantal store buffers van 20 naar 32. Opnieuw kan dit allemaal in veel gevallen voor aardige prestatiewinsten zorgen.

Met dit verhaal van de verschillende execution units in het achterhoofd, wordt ineens duidelijk hoe HyperThreading verschilt van de implementatie in de Pentium 4, en hoe de moderne Nehalem variant door het gelijktijdig verwerken van instructies van twee programmathreads hogere prestaties kan bieden. We schreven immers dat een processor er alles aan moet doen om te allen tijde vier execution units bezig te houden. Wanneer een programma echter een hele rits instructies van hetzelfde type achter elkaar heeft staan, bijvoorbeeld een aantal floating point optel-instructies, kan slechts één execution unit worden bezig gehouden en staat een groot gedeelte van de core werkeloos in de coulissen. Wanneer er dan ook instructies van een andere programmathread gebruikt kunnen worden, kunnen de executions units vaak wel optimaal gevuld worden en zal de processor zodoende efficiënter zijn werk doen.


13 besproken producten

Vergelijk   Product Prijs
Asus Z8NA-D6

Asus Z8NA-D6

  • ATX
  • Socket 1366
  • Intel 5500
  • DDR3
Niet verkrijgbaar
Intel Xeon E5502 Boxed

Intel Xeon E5502 Boxed

  • Socket 1366
  • 1.86 GHz
  • 2 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5504 Boxed

Intel Xeon E5504 Boxed

  • Socket 1366
  • 2 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5506 Boxed

Intel Xeon E5506 Boxed

  • Socket 1366
  • 2.13 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5520 Boxed

Intel Xeon E5520 Boxed

  • Socket 1366
  • 2.26 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5530 Boxed

Intel Xeon E5530 Boxed

  • Socket 1366
  • 2.4 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5540 Boxed

Intel Xeon E5540 Boxed

  • Socket 1366
  • 2.53 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon L5506 Boxed

Intel Xeon L5506 Boxed

  • Socket 1366
  • 2.13 GHz
  • 4 cores
  • 60 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon L5520 Boxed

Intel Xeon L5520 Boxed

  • Socket 1366
  • 2.26 GHz
  • 4 cores
  • 60 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon W5580

Intel Xeon W5580

  • Socket 1366
  • 3.2 GHz
  • 4 cores
  • 130 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5550 Boxed

Intel Xeon X5550 Boxed

  • Socket 1366
  • 2.66 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5560 Boxed

Intel Xeon X5560 Boxed

  • Socket 1366
  • 2.8 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5570

Intel Xeon X5570

  • Socket 1366
  • 2.93 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
0
*