Systematisch ontwerp van kosteffectieve sprongvoorspelling Veerle Desmet Promotor: prof. Koen De Bosschere Vakgroep ELIS Doctoraatsverdediging 26 juni 2006
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen http Computerarchitectuur gaat over de interne werking van computers
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 3 instructievenster Superscalaire architectuur instructiecache ophalendecoderenregister hernoemdispatch functionele eenheid functionele eenheid functionele eenheid functionele eenheid ROB register bestand lees A lees B C+=A*B 10 keer? schrijf C nog iets einde Sprong- voorspeller
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 4 instructievenster Sprongvoorspelling instructiecache ophalendecoderenregister hernoemdispatch functionele eenheid functionele eenheid functionele eenheid functionele eenheid ROB register bestand Sprong- voorspeller 4 lees A lees B C+=A*B 10 keer? schrijf C nog iets einde
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 5 instructievenster Elke foute voorspelling die we vermijden, is beter instructiecache ophalendecoderenregister hernoemdispatch functionele eenheid functionele eenheid functionele eenheid functionele eenheid ROB register bestand Sprong- voorspeller lees A lees B C+=A*B 10 keer? schrijf C nog iets einde
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 6 Analogie: weersvoorspelling Nodeloos sleuren met paraplu of nat worden naar buiten kijken barometer weerbericht seizoen satellietbeelden weerspreuk temperatuur vochtigheid Nauwkeurigheid hangt samen met hoeveelheid informatie
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 7 Er zijn 4 groepen informatiebronnen voor sprongvoorspelling Broncode Profiel Uitvoering ? Tijdsverloop van de gemiddelde sprongrichting gedrag recente sprongen; registerinhouden, type geheugen- afhankelijkheid Machinecode lus i<10 lusbegin einde if g == 0 printf() register, lusniveau, basisblokgrootte, afhankelijkheidsafstand, aantal inkomende pijlen in basisblok
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 8 Conditionele entropie meet de kwaliteit van de informatiebron beter 0,0 0,2 0,4 0,6 0,8 1, hoeveelheid informatie (bit) conditionele entropie (bit) Profiel Uitvoering ? Sprongadres Globale geschiedenis Gshare informatie lus i<10 lusbegin einde if g == 0 printf() Machine- code kost
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 9 lus opcode call return lusbegin store postdom heuristiek niet-genomen genomen niet-genomen genomen afstand niet-genomen <3 ongedefinieerd ≥3 neeja Cluster Statisch Dynamisch 2FAR Informatiebronnen entropie
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 10 Statische sprongvoorspelling maakt 25-35% foute voorspellingen BTFNT: Backward Taken, Forward Not Taken Lussen (bv. for, while) In de zomermaanden geen regen lus i<10 lusbegin einde if g == 0 printf() Machine- code nee ja lus i<10 lusbegin einde if getal == 0 printf() ja nee
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 11 Prioriteiten wanneer meerdere informatiebronnen ter beschikking lus i<10 lusbegin einde if getal == 0 printf() lus pointer call opcode return store ja heuristiek nee heuristiek nee ja [Ball & Larus] lusbegin guard nee random empirisch 34% foute voorspellingen ja nee
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 12 Beslissingsbomen kunnen informatiebronnen ordenen lus pointer call opcode return store ja heuristiek nee heuristiek nee ja [Ball & Larus] lusbegin guard nee random lus opcode call return lusbegin store ja heuristiek nee ja nee heuristiek pointer nee empirisch C4.5
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 13 beter gzip vpr gcc mcf crafty parser perl gap vortex bzip2twolf compress go ijpeg li m88ksim gemiddelde foute voorspellingen (%) Systematische ordening vermindert foute voorspellingen Ball & Larus: 34% Systematische volgorde: 33%
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 14 if -blok postdominerend blok if (input ≥ 0) opcode Extra informatiebronnen toegevoegd SPEC CPU2000 INT SPEC CPU95 INT postdom nee ja afstand nee <3 ongedefinieerd ≥3 neeja lus call return lusbegin store ja heuristiek nee ja nee heuristiek pointer nee ld r3,(r1) beq r2 cmplt r1,10,r2 add r3,r4,r5 bne r2 afstand 2 afstand ongedefinieerd +
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 15 Nieuwe heuristieken maken minder vaak foute voorspellingen beter gzip vpr gcc mcf crafty parser perl gap vortex bzip2twolf compress go ijpeg li m88ksim gemiddelde foute voorspellingen (%) Ball & Larus: 34% Systematische volgorde: 33% Systematisch, met extra heuristieken: 28.9% [ACSAC2005, Using Decision Trees to Improve Static Branch Prediction]
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 16 lus opcode call return lusbegin store postdom heuristiek niet-genomen genomen niet-genomen genomen afstand niet-genomen <3 ongedefinieerd ≥3 neeja Cluster Statisch Dynamisch 2FAR Informatiebronnen -14.7% entropie
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 17 I Dynamische sprongvoorspelling Sprongadres Globale geschiedenis Lokale geschiedenis nee ja E elementen Uitvoering ?
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 18 tabelgrootte (in # elementen E) foute voorspellingen (%) SPEC CPU2000 INT beter Hoe groter de tabel, des te minder foute voorspellingen gshare [McFarling] = Sprongadres Globale geschiedenis I % voor E=4096 5% voor E=32768 N sprongen N >> E interferentie
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 19 Interferentie is vaker destructief dan constructief neutraaldestructief constructiefneutraal E elementen tabelgrootte (in # elementen E) oneindig # elementen interferentie (%)
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 20 Cluster Sprongclustering om interferentie te structureren tijd N sprongen k-means clusteralgoritme gemiddelde sprongrichting % 25-50% 0-25% niet uitgevoerd Cluster Profiel
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 21 I Sprongclustering introduceert subtabellen Sprongadres Globale geschiedenis Lokale geschiedenis Cluster nee ja E/k elementen per subtabel
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 22 Sprongclustering effectief voor kleine tabellen tabelgrootte (in # elementen E) bimodaal [Smith] Sprongadres foute voorspellingen (%) origineel sprongclustering tabelgrootte (in # elementen E) Sprongadres Globale geschiedenis ipv 7.3% E=4096 gshare foute voorspellingen (%) 6.4% origineel sprongclustering 100-tal elemente n
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 23 I Sprongclustering introduceert subtabellen Sprongadres Globale geschiedenis Lokale geschiedenis Cluster nee ja E/k elementen per subtabel Sprongclustering met verhakselen E elementen
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 24 Sprongclustering met verhakselen werkt voor grote tabellen tabelgrootte (in # elementen E) gshare foute voorspellingen (%) tabelgrootte (in # elementen E) 3 3,5 4 4,5 5 5, M origineel sprongclustering
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 25 lus opcode call return lusbegin store postdom heuristiek niet-genomen genomen niet-genomen genomen afstand niet-genomen <3 ongedefinieerd ≥3 neeja 2-8x kleiner Cluster Statisch Dynamisch 2FAR Informatiebronnen -14.7% entropie -12.3%
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 26 Dynamische sprongclustering in nieuwe 2FAR sprongvoorspeller [CBP2004, JILP2005: 2bcgskew fused by a redundant history perceptron predictor] dynamische clustervoorspeller 32 Kbit sprong- voorspeller 29 Kbit 3 Kbit Lokale gesch Sprongadres Globale geschiedenis nee ja
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 27 I Sprongclusteringsmogelijkheden in een perceptronvoorspeller Sprongadres Globale geschiedenis Lokale geschiedenis Cluster nee ja +
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 28 Minder foute voorspellingen 64 Kbit (32768 elementen) foute voorspellingen (%) beter gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf gemiddelde [JILP2005] gshare 5% 2FAR 3.25% O-GEHL 3.20%
Systematisch ontwerp van kosteffectieve sprongvoorspelling – Veerle Desmet – 26 juni 2006 Faculteit Ingenieurswetenschappen – Vakgroep Elektronica en Informatiesystemen 29 lus opcode call return lusbegin store postdom heuristiek niet-genomen genomen niet-genomen genomen afstand niet-genomen <3 ongedefinieerd ≥3 neeja Cluster Statisch Dynamisch 2FAR Informatiebronnen -35% -14.7% entropie -12.3% 2-8x kleiner
Systematisch ontwerp van kosteffectieve sprongvoorspelling Veerle Desmet Promotor: prof. Koen De Bosschere Vakgroep ELIS Doctoraatsverdediging 26 juni 2006