Az elágazásbecslés hatása az interpreterek hatékonyságára

OData támogatás
Konzulens:
Dr. Horváth Gábor
Hálózati Rendszerek és Szolgáltatások Tanszék

Napjaink fejlett processzorai a hatékonyabb végrehajtás érdekében egyre mélyebb utasítás-pipelineokat használnak. A pipeline bevezetésével azonban óhatatlanul előkerülnek problémák az utasítások egymásra hatása miatt, ezek közül az egyik probléma a procedurális egymásrahatás, melynek feloldása érdekében az elágazó utasítások kimenetelének és célcímének becslése szükséges. Méréseim szerint minden 6--10. utasítás érintett, így kis javulás is jelentős különbséget tehet a programok futásidejében. A szakdolgozatomban megvizsgálok néhány elterjedten használt elágazásbecslőt és összehasonlítom őket különböző valós alkalmazások nyert adatok segítségével.

Az utóbbi időben egyre elterjedtebbek a nem gépi kódra forduló programozási nyelvek (pl. Java, Python, Lua, JavaScript, Ruby, ...), ezek egy része interpretert használ a végrehajtáshoz. A Lua interpreteren keresztül megmutatom, milyen nagy sebességkülönbséget okozhat a programok futásidejében az, hogy egy jó vagy egy rossz hatékonyságú elágazásbecslőt használ a programot végrehajtó processzor.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.