Tillkomsten av multicores ger en lovande möjlighet att påskynda sekventiella program via profilbaserad spekulativ parallellisering av dessa program. I detta dokument presenterar vi en ny lösning för att effektivt stödja mjukvaruspekulation på multicore processorer. Vi föreslår körmodellen Copy or Discard (CorD) där tillståndet för spekulativa parallella trådar upprätthålls separat från det icke-spekulativa beräkningstillståndet. Om spekulationen lyckas, görs resultatet av den spekulativa beräkningen genom att man kopierar dem till det icke-spekulativa tillståndet. Om felspekulation upptäcks behövs inga kostsamma statliga återhämtningsmekanismer eftersom den spekulativa staten helt enkelt kan överges. Optimeringar föreslås för att minska kostnaden för datakopiering mellan icke-spekulativt och spekulativt tillstånd. En lätt mekanism som upprätthåller versionsnummer för icke-spekulativa datavärden gör det möjligt att upptäcka fel. Vi presenterar också en algoritm för profilbaserad spekulativ parallellisering som är effektiv för att extrahera parallellism från sekventiella program. Våra experiment visar att kombinationen av CorD och vår spekulativa parallelliseringsalgoritm uppnår speedups från 3.7 till 7.8 på en Dell PowerEdge 1900-server med två Intel Xeon fyrkärniga processorer.
Tian m.fl. I REF föreslås att exekveringsmodellen för kopiering eller utskick (CorD) ska användas för att undvika dyra system för statlig återvinning vid felindikation.
Copy or Discard execution model for speculative parallelization on multicores
{'venue': '2008 41st IEEE/ACM International Symposium on Microarchitecture', 'journal': '2008 41st IEEE/ACM International Symposium on Microarchitecture', 'mag_field_of_study': ['Computer Science']}