Spekulativt utförande är nödvändigt för att uppnå hög prestanda på moderna allmänna processorer men, börjar med Spectre och Härdsmälta, har det också visat sig orsaka allvarliga säkerhetsbrister. I händelse av en missbildning återställs det arkitektoniska tillståndet för att säkerställa funktionell korrekthet, men en mängd mikroarkitektella förändringar (t.ex. cacheuppdateringar), som orsakas av de spekulativt utförda instruktionerna, lämnas vanligen kvar i systemet. Dessa förändringar kan användas för att läcka känslig information, vilket har lett till en frenetisk sökning efter lösningar som kan eliminera sådana säkerhetsbrister. Bidraget från detta arbete är en utvärdering av kostnaden för att dölja spekulativa sidoeffekter i cachehierarkin, vilket gör dem synliga först efter det att spekulationen har lösts. För detta jämför vi (för första gången) två breda tillvägagångssätt: i) väntar på att laster ska bli icke-spekulativa innan de utfärdas till minnet systemet, och ii) eliminera sidoeffekter av spekulation, en lösning som består av osynliga laster (Ghost laster) och prestandaoptimeringar (Ghost Buffer och Materialization). Medan tidigare arbete, InvisiSpec, har föreslagit en liknande lösning som vår senare strategi, har det gjort det med endast en minimal utvärdering och till en betydande prestandakostnad. Den detaljerade utvärderingen av våra lösningar visar att: i) att vänta på att laster ska bli icke-spekulativa är inte dyrare än den tidigare föreslagna InvisiSpec-lösningen, även om mycket enklare, icke-invasiva i minnessystemet, och starkare säkerhetsmässigt; ii) dölja spekulation med Ghost-belastningar (i samband med en avslappnad minnesmodell) kan uppnås till priset av 12% prestandadegradering och 9% energiökning, vilket är betydligt bättre än den tidigare toppmoderna lösningen.
Det bygger på insikter som tillhandahålls av vårt arbete på Ghost laddar REF, som utvärderar, i detalj, konsekvenserna av att försöka dölja spekulativa laster i cache hierarkin.
Ghost loads: what is the cost of invisible speculation?
{'venue': "CF '19", 'journal': None, 'mag_field_of_study': ['Computer Science']}