Speculatieve uitvoering

Uit Wikipedia, de vrije encyclopedie

Speculatieve uitvoering (Engels: Speculative execution) is een optimalisatietechniek waarbij een computersysteem taken uitvoert om te anticiperen op een potentieel toekomstige programmastroom. Het achterliggende idee ervan is het uitvoeren van taken die in de lijn van verwachting liggen.

Achtergrond[bewerken | brontekst bewerken]

Speculatieve uitvoering is een implementatie van de evaluatiestrategie strikte evaluatie, het tegenovergestelde van de luie evaluatie, op processorniveau. Hierdoor kan de processor meerdere opdrachten continu parallel uitvoeren om effectiever en sneller te werken. Dit werd ook geïntroduceerd om effectiever gebruik te maken van de steeds parallelle processorbronnen (meerdere pijplijnen, etc.).

Techniek[bewerken | brontekst bewerken]

Bij speculatieve uitvoering wordt in fasen waarin de processor onderbenut is de volgende programmastappen (in de toekomst van de programmastroom) op hun haalbaarheid onderzocht met als doel het meest waarschijnlijke pad van de programmastroom te vinden. De meest waarschijnlijke route van uitvoering wordt gevolgd en de resultaten worden in de cache opgeslagen als "speculatieve resultaten". Wanneer het programma is aangekomen op het punt waarop het de resultaten nodig heeft, zijn deze al beschikbaar en hoeft een gebruiker niet te wachten op een mogelijk langdurige berekening. De resultaten in de cache worden uitgelezen en uitgevoerd, de andere worden weggegooid. Deze "anticipatie" van de processor wordt gebruikt, zelfs in fasen van lager gebruik om het later bij hoge belasting te ontlasten.

Nadelen[bewerken | brontekst bewerken]

Een nadeel van deze techniek is dat berekeningen van uitvoeringspaden die verkeerd gespeculeerd blijken te zijn, ook zijn opgenomen in het energieverbruik. Deze berekeningen dragen niet bij aan de rekenkracht en verminderen dus de rekenkracht per watt. Voor mobiele computersystemen zoals laptops kan dit relevant zijn voor zelfvoorzienende uptime, wat de reden is waarom bijvoorbeeld de Intel Atom-processor opzettelijk zonder deze technologie is ontwikkeld. Ook kan het een processor vatbaar maken voor het veiligheidslek Spectre.

Literatuur[bewerken | brontekst bewerken]