Runahead-utförande är en teknik som förbättrar processorns prestanda genom att pre-executing den löpande applikationen istället för att fördröja processorn när en cachemiss med lång latens inträffar. Tidigare forskning har visat att denna teknik avsevärt förbättrar processorns prestanda. Effektiviteten i runhead-utförandet, som direkt påverkar den dynamiska energi som förbrukas av en runahead-processor, har dock inte undersökts. En runahead-processor utför betydligt fler instruktioner än en traditionell oorderprocessor, ibland utan att ge några prestandafördelar, vilket gör den ineffektiv. I detta dokument beskriver vi orsakerna till ineffektivitet i runhead-utförandet och föreslår tekniker för att göra en runhead-processor mer effektiv, vilket minskar dess energiförbrukning och möjligen ökar dess prestanda. Våra analyser och resultat ger två stora insikter: (1) effektiviteten i runhead-utförande kan förbättras avsevärt med enkla tekniker som minskar antalet korta, överlappande och värdelösa runhead-perioder, som vi identifierar som de tre främsta orsakerna till ineffektivitet, (2) enkla optimeringar som riktar sig mot ökningen av användbara prefetcher som genereras i runahead-läge kan öka både prestanda och effektivitet hos en runhead-processor. De tekniker vi föreslår minskar ökningen av antalet instruktioner som utförs på grund av Runahead-utförande från 26,5 % till i genomsnitt 6,2 %, utan att väsentligt påverka den prestandaförbättring som runahead-utförandet ger.
I REF minskas runahead overhead med optimeringar som siktar på korta, överlappande och värdelösa runahead-perioder, men resultaten av runahead-utförandet förkastas fortfarande.
Techniques for Efficient Processing in Runahead Execution Engines
{'venue': "32nd International Symposium on Computer Architecture (ISCA'05)", 'journal': "32nd International Symposium on Computer Architecture (ISCA'05)", 'mag_field_of_study': ['Computer Science']}