Abstract -This paper föreslår en ny teknik för power performance trade-off baserat på profildriven kod exekvering. Specijkally, vi visar att det finns en optimal nivå av parallellism för energiförbrukning och föreslår en kompilator-assisterad teknik för kod annotation som kan användas i körtid till adaptivt kompromiss-off skuld och prestanda. Som visas av experimentella resultat, vår strategi är upp till 23% bättre än klocka strypning och är lika effektiv som spänningskalning (upp till 10% bättre i vissa fall). Den teknik som föreslås i detta papper kan användas av en ACPI-kompatibel krafthanterare för att förlänga batteri lfe eller som en passiv kylfunktion för termisk hantering. Power dissipation har blivit ett kritiskt designkoncept under de senaste åren, drivet av den ökade komplexiteten och uppkomsten av mobila applikationer. Även om man allmänt är överens om att det finns verktyg för estimering och optimering av maskinvaruspecifikationer på olika nivåer (krets, grind, registeröverföring eller beteendemässig), krävs mer arbete inom området effektanalys eller optimering på mikroarkitektur-, arkitektur- eller systemnivå [I]. Att ha verktyg som kan kvantifiera effekten av olika prestanda- eller effektoptimeringssystem för en kodbit som körs på en viss processor är av yttersta vikt för datorarkitekter och kompilatoringenjörer som kan karakterisera olika arkitekturstilar inte bara när det gäller deras prestanda, utan också när det gäller motsvarande energieffektivitet. När det gäller kraftmodellering för inbäddad programvara [2] föreslås en modell för baseffekt per instruktion som kan användas för att hitta en aggregerad effektskattning för en sekvens av instruktioner. Under [3] behandlas ansökningar från DSP. Där, de inter-instruction effekter tum ut för att vara betydande, vilket gör det möjligt att utveckla instruktioner schemaläggning tekniker som riktar kraftminimering. Författarna till [4] presenterar en arkitektonisk förbättring för att minska extra arbete eller energi på grund av fel predikterade grenar, utan betydande förlust i prestanda. I [5] presenteras en teknik för att minska den genomsnittliga energiförbrukningen för rörledningsstrukturen. Andra metoder målteknik för energieffektiva minnessystem [6, 7]. Ur ett annat perspektiv har aspekten termisk hantering behandlats [8] där en hårdvarudriven teknik för instruction cache throttling har föreslagits. I detta papper tar vi upp problemet med energioptimering i modemprocessorer genom att använda kompilator-assisterad kod annotation för variabel hämta eller exekveringshastighet. Vi förbättrar state-of-the-art genom att föreslå en ny teknik för fine-grain energikarakterisering baserad på en profildriven kod exekveringsmetod. Specifikt visar vi analytiskt och experimentellt att det finns en optimal nivå av parallellism för energiförbrukning (som kanske inte är samma som den för prestanda) och föreslår en kompilator-assisterad teknik för kod annotation som adaptivt väljer det optimala antalet instruktioner som ska hämtas eller utföras parallellt så långt som energin är koncemerad. Energi är, i motsats till prestanda, en mycket mer databeroende parameter. Som det kommer att visas senare är det faktiskt möjligt att använda mindre än det maximala antalet funktionella enheter som finns tillgängliga, och uppnå mindre energiförbrukning. Vi studerar denna effekt för exekveringsfasen, liksom för hela processorn. För första gången till vår kunskap, visar vi att det finns en inneboende avvägning mellan prestanda och energiförbrukning, på grund av databeroende effekt, men, viktigast av allt, på grund av spekulativt utförande och den inneboende nivå av parallellism som visas av gemensamma tillämpningar. För att validera våra resultat använder vi en mikroarkitektur-nivå effektsimulator utvecklad i industrin [9]. Som senare visats kan betydande besparingar uppnås både när det gäller energi- och energiförbrukningen, på bekostnad av en viss minskning av prestandan. De tekniker som beskrivs i detta papper kan användas som ett sätt att förlänga batteriet lfe, men viktigast, för termisk hantering [IO] genom att uppnå betydande genomsnittliga kraftminskningar i utförande skedet eller genom hela chipet. Ett sådant tillvägagångssätt skulle kunna användas inom ramen för krafthanteringssystem som använder avancerade tillstånd för att göra digitala eller hårda kopior av hela eller delar av detta arbete för personligt bruk eller klassrumsbruk beviljas utan avgift, förutsatt att kopior inte görs eller distribueras för vinst eller kommersiell fördel och att kopior är försedda med detta meddelande och den fullständiga hänvisningen på första sidan. För att kopiera på annat sätt, eller återpublicera, för att posta på servrar eller för att omfördela till listor, krävs tidigare specifik behörighet och/eller avgift. LSLPEI) '00, Rapallo, Italien. Upphovsrätt 2000 ACM 1-581 13-190-9/00/0007... $5,00. Termisk styrning i AVSI uppnås genom genomsnittlig effektminskning genom "klockning" i händelse avpassiv kylning, eller genom att tumma på on-chip-fläkten när det gäller aktiv kylning. Båda teknikerna kommer dock sannolikt att minska batteriets livslängd genom att förbruka mer energi, även om den genomsnittliga effekten per cykel minskar. Vår föreslagna teknik är upp till 20 % effektivare än den klassiska klocktröskningstekniken och minskar också den totala energiförbrukningen, vilket i vissa fall är 10 % bättre än spänningsskalning. Dessutom är vår karakterisering sofiware-driven och ger en finkornig energikarakterisering på aper bas block, per process bas, i motsats till instruktionen cache throttling teknik som presenteras i [8]. Papperet är organiserat enligt följande: Avsnitt 2 presenterar motivet för profildriven kodutförande. I Avsnitt 3 presenterar vi vår metodik för kodanmärkning för lågenergi. Avsnitt 4 visar våra experimentella resultat och vi avslutar i Avsnitt 5 med några avslutande kommentarer. I superscalar processorer, hårdvaran kan utföra från en till åtta instruktioner per cykel. Vanligtvis måste dessa instruktioner vara oberoende och uppfylla vissa krav. Om en viss instruktion är beroende eller inte uppfyller begränsningarna utfärdas endast de instruktioner som föregår den i sekvensen, därav variabiliteten i emissionshastigheten. Om det dessutom är tillåtet att utföra instruktioner utanför ordningen, får någon av de efterföljande instruktionerna utföras om det inte finns några databeroenden. Låt oss överväga fallet med ett iordningställande av en beräkningsintensiv kod. Vi visar därefter hur den totala energi per drift minskas genom avsättningsprestanda för kraft. Exempel 1. Överväga beräkningen av produkten av två inflöden (bestående av en verklig DSP-applikation) och tillgängligheten av upp till fyra Idbit multiplikatorer som kan utföra multiplikationen. Vi överväger fyra möjliga scenarier som motsvarar användning av en, två, tre eller alla av de funktionella enheterna. De fyra scenarierna, märkta med motsvarande totala energyper drift, visas i bild 1. (Det antas att ingångsströmmen x, omfattar båda operander.) Som det kan ses varierar energiförbrukningen per drift betydligt mellan de fyra scenarierna. Detta beror främst på den mycket olika profilen hos de data som skickas till var och en av de tillgängliga funktionella enheterna. Dessutom, vid jämförelse av prestanda, kan vi se att med hjälp av fyra multiplikatorer ger den största prestanda (4 beräkningar per klockcykel), men med hjälp av två multiplikatorer minskar den totala energin med mer än 32% och genomsnittlig effekt med 65%, jämfört med det värsta fallet. Bild1 Fyra sätt att beräkna en serie multiplikationer Denna typ av beteende är faktiskt mycket equentely i praktiken, särskilt i beräkning intensiva applikationer. Dessa effekter blir ännu viktigare för DSP-processorer där större delen av strömförbrukningen beror på datapaten som utför tillägg eller multiplikationer. Ett annat scenario där denna effekt kan bli förhärskande är en blandning av loadktore och aritmetiska instruktioner som alternativt använder samma funktionella enheter för att beräkna effektiva adresser och utgångsvärden. Vanligtvis, minnesadresser ser mycket mer "different" än operands av aritmetiska instruktioner och därmed, ett beteende som liknar den som visas ovan kommer att uppstå. I superskalarprocessorer är dock datapatens bidrag till den totala energiförbrukningen kanske inte imponerande. Närmare bestämt har de hämtnings- och utgivningsstadier som faktiskt schemalägger och skickar instruktioner till genomförandestadiet ett betydande bidrag till den totala energiförbrukningen.
Marculescu föreslår en mekanism för att dynamiskt anpassa hämta och köra bandbredden baserat på en profilering på basblocksnivå REF.
Profile-driven code execution for low power dissipation
{'venue': "ISLPED'00: Proceedings of the 2000 International Symposium on Low Power Electronics and Design (Cat. No.00TH8514)", 'journal': "ISLPED'00: Proceedings of the 2000 International Symposium on Low Power Electronics and Design (Cat. No.00TH8514)", 'mag_field_of_study': ['Computer Science']}