Kommersiella applikationer som databaser och webbservrar utgör det viktigaste marknadssegmentet för högpresterande servrar. Bland dessa applikationer ger on-line transaktionsbearbetning (OLTP) arbetsbelastningar en utmanande uppsättning krav för systemdesign eftersom de ofta uppvisar ineffektiva utföranden som domineras av en stor minnesstånd komponent. Detta beteende uppstår från stora instruktions- och dataavtryck och höga kommunikationsfelfrekvenser. Ett antal nyligen genomförda studier har karakteriserat beteendet hos kommersiella arbetsbelastningar och föreslagna arkitektoniska funktioner för att förbättra deras prestanda. Dock har det varit lite forskning om effekterna av programvara och kompilator-nivå optimeringar för att förbättra beteendet hos sådana arbetsbelastningar. Detta papper ger en detaljerad studie av profildrivna kompilatoroptimeringar för att förbättra kodlayouten i kommersiella arbetsbelastningar med stora instruktionsavtryck. Våra kompilatoralgoritmer implementeras i samband med Spike, en körbar optimerare för alfaarkitekturen. Våra experiment använder Oracle kommersiella databasmotorn kör en OLTP arbetsbelastning, med resultat som genereras med både full systemsimuleringar och faktiska körningar på Alpha multiprocessorer. Våra resultat visar att optimeringar av kodlayouten kan ge en stor förbättring av instruktionscachebeteendet, vilket ger en minskning med 55% till 65% i applikationen missar för 64-128K caches. Vår analys visar att denna förbättring främst beror på längre sekvenser av på varandra följande instruktioner och mer återanvändning av cachelinjer innan de byts ut. Vi visar också att majoriteten av appliceringsinstruktionen missar orsakas av självinblandning. Dock, kod layout optimizafions avsevärt minska mängden själv-interference, vilket ökar den relativa betydelsen av interferens med operativsystem kod. Slutligen visar vi att bättre kodlayout också kan ge betydande förbättringar i beteendet hos andra minnessystemkomponenter såsom instruktionen TLB och den enhetliga andra nivån cache. Den övergripande prestandaeffekten av våra optimeringar av kodlayouten är en förbättring på 1.33 gånger i tiden för genomförandet av vår arbetsbelastning.
Ramirez m.fl. REF studerade specifikt optimering av kodlayout för transaktionsbearbetning.
Code layout optimizations for transaction processing workloads
{'venue': 'ISCA 2001', 'journal': None, 'mag_field_of_study': ['Computer Science']}