Att korrekt förutsäga den riktning som grenarna kommer att ta blir allt viktigare i dagens breda datorarkitekturer. Namnet programbaserad gren förutsägelse ges till statiska gren förutsägelse tekniker som baserar sin förutsägelse på ett programs struktur. I den här artikeln undersöker vi ett nytt tillvägagångssätt till programbaserad gren förutsägelse som använder en kropp av befintliga program för att förutsäga grenens beteende i ett nytt program. Vi kallar detta tillvägagångssätt till program-baserad gren förutsägelse evidens-baserad statisk förutsägelse, eller ESP. Den huvudsakliga idén med ESP är att beteendet hos en corpus av program kan användas för att dra slutsatser om beteendet hos nya program. I den här artikeln använder vi neurala nätverk och beslut träd för att kartlägga statiska funktioner i samband med varje gren till en förutsägelse att grenen kommer att tas. ESP uppvisar betydande fördelar jämfört med andra förutsägelser. Specifikt är det en programbaserad teknik; det är effektivt över en rad olika programmeringsspråk och programmeringsstilar; och det inte förlitar sig på användningen av expertdefinierade heuristik. I den här artikeln beskriver vi tillämpningen av ESP på problemet med statiska gren förutsägelser och jämför våra resultat med befintliga programbaserade gren prediktorer. Vi undersöker också tillämpligheten av ESP för datorarkitekturer, programmeringsspråk, kompilatorer och run-time system. Vi ger resultat som visar hur känslig ESP är för antalet och typen av statiska funktioner och program som ingår i ESP träningsset, och vi jämför effekten av statiska gren förutsägelser för subrutinbibliotek. I genomsnitt över en kropp av 43 C och Fortran program, ESP gren förutsägelse resulterar i en missfrekvens på 20%, jämfört med 25% missfrekvens som erhållits med hjälp av de bästa befintliga programbaserade heuristik.
I ett tidigt arbete, Calder et al. REF fokuserade på statiska grenprognoser med hjälp av neurala nätverk och beslutsträd.
Evidence-based static branch prediction using machine learning
{'venue': 'TOPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}