Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Fout in skylake artikel

Pagina: 1
Acties:

  • Lethalshot
  • Registratie: December 2007
  • Laatst online: 18:16
In jullie artikel over skylake staat een fout op de pagina over de cpu kernen. Jullie vermelden namelijk: "... net als de out-of-order buffers; daarmee wordt het parallelisme verder vergroot."
Dit is echt fout, out-of-order execution wordt gebruikt voor het verminderen van pipeline stalls (en dus voor een hoge IPC). Out of order execution werkt grofweg als volgt: instructie 1 deelt x door 4.
Instructie 2 kijkt of x groter is dan y
Instructie 3 zet z op 0 als het waar is.

Met een diepe pipeline zoals intel heeft moet er gewacht worden tot x door 4 is gedeeld voordat er verder kan worden gegaan met de uitvoer. Dit is een pipeline stall. Out of order execution zorgt ervoor dat de cpu verder kijkt in het programma. Als daar bijvoorbeeld staat:
Instructie 4 sla 9+5 op in w
Dan kan die instructie alvast uitgevoerd worden terwijl instructie 2 en 3 staan te wachten op het resultaat van 1. Hoe dieper de OoO unit kan kijken hoe meer onafhankelijke instructies (ook wel parallele instructie segmenten genoemd) gevonden kunnen worden en dus hoe minder pipeline stalls er zijn. Dit is dus echt anders dan het verbeteren van het parallisme.

Ik hoop dat mijn verhaal duidelijk is.

  • supersnathan94
  • Registratie: Juli 2010
  • Laatst online: 20-11 22:31
heel duidelijk verhaal, maar in essentie is het dus nog steeds het verhogen van het parallelisme. Instructie 4 wordt immers tegelijk met 1,2 of 3 uitgevoerd right? Dus ik snap dat dit kort door de bocht is en het veel dieper gaat dan even meer spul parallel uitvoeren, maar het komt het "parallelisme" wel ten goede door een efficiëntere verwerking van instructies die parallel uitgevoerd kunnen worden.

  • willemdemoor
  • Registratie: Januari 2008
  • Niet online

willemdemoor

Redacteur
Ja, maar toch even een beetje aangepast :)
tnx!

  • Lethalshot
  • Registratie: December 2007
  • Laatst online: 18:16
Nee 4 wordt niet tegelijk uitgevoerd. Hij vult alleen een ander slot in de pipeline. Simpel schema zonder OoO (Fetch, Decode, Execute, Store, de nummer staan voor de instructies, S staat voor pipeline stall)
Tijd F | D | E | S
0 - | - | - | -
1 1 | - | - | -
2 S | 1 | - | -
3 S | S | 1 | -
4 2 | S | S | 1

Met OoO

Tijd F | D | E | S
0 - | - | - | -
1 1 | - | - | -
2 4 | 1 | - | -
3 S | 4 | 1 | -
4 2 | S | 4 | 1

Je ziet dat met OoO slechts 1 stall ipv 2 stalls zijn en dus de IPC omhoog is gegaan (van 0,5 naar 0,75). Je kan inderdaad zeggen dat er meerdere instructies parallel worden verwerkt, maar in de computer engineering wordt dit niet echt als parallel gezien (parallel zien we daar echt als bij 2 instructies in de execute stage).