Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Linda Wapner HT2018 EITF60
Sammanfattning Effektutvecklingen i en processor har länge ökat genom att klockfrekvensen för prestanda ökats tills den nått en gräns då processorernas kylsystem blivit för stora och kostsamma. När pipeline introducerades minskade effektutvecklingen. För att minska effektutvecklingen ytterligare genom pipeline går det att använda pipeline balancing där pipeline-steg stängs av då processorn behöver mindre prestanda. Denna metod minskar effektutvecklingen med upp till 66 %.Det går även att göra NOP-instruktionen mindre effektkrävande genom att minska på överföringar och på så vis minska effektutvecklingen med 10 %. 1.inledning Effektförbrukningen i en processor är en produkt av kapaciteten, klockfrekvensen och spänningen i kvadrat. Effektutvecklingen består av två delar; den dynamiska och den statiska. Den statiska delen beror på antalet transistorer i processorn och den dynamiska på hur ofta transistorerna switchar mellan 0 och 1, det vill säga hur aktiva de är. Högre aktivitet leder till högre dynamisk effektutveckling. För en processor är bra prestanda viktig. Genom åren har klockfrekvensen ökat för att ge bättre prestanda. Högre klockfrekvens leder till att man kan utföra mer under kortare tid men leder även till att effektförbrukningen blir hög. Effektförbrukningen har nått en gräns, som är även känt som the power wall. the power wall -problemet innebär genom att ökad klockfrekvens leder till ökad effektförbrukning så har effektförbrukningen blivit så hög att det inte är lönsamt att använda dyra kylsystem för att kyla ner processorn på grund av den höga värme som utvecklas. Andra metoder som att minska spänningen, som har kvadratisk påverkan på effektutvecklingen, har använts men även detta har nått en gräns då för låg spänning lett till transistorer börjat läcka mer värme. Bild 1 beskriver hur klockfrekvensen och effektförbrukningen har ökat i korrelation under åren. De senaste åren har forskare lyckats få ner effektförbrukningen något utan att behöva minska klockfrekvensen Detta har forskare lyckats med genom alternativa metoder för att få ner effektförbrukningen utan att tumma på prestanda.
bild 1 2.1 Pipeline; lösningen på the power wall Användandet av pipeline har lett till minskad effektförbrukning genom att effektivisera användningen av processorn och minska klockcykler, utan att minska klockfrekvens och dra ner prestanda. Detta är en alternativ metod att lösa problemet med the power wall. Nedan följer två lösningar på hur man genom att optimera pipeline i processorn kan minska effektförbrukningen ytterligare.(patterson, D. A. and Hennessy, J. L.,2013)
2.2 Pipeline balancing En processor är gjort för att kunna köra flera olika program och se till att alla program har så bra prestanda som möjligt. Men eftersom alla program kräver olika nivåer av prestanda så kör processorn på samma effektivitet på alla program även fast vissa program klarar sig utmärkt med mindre, vilket leder till en onödigt hög effektförbrukning i vissa fall. Det som vill uppnås är att anpassa prestandan efter vilket program som körs och på så vis spara på effektförbrukningen. Detta kan man uppnå med hjälp av en metod som kallas för Pipeline Balancing (PBL). PBL fungerar på det vis att man först kontrollerar hur stort behov av prestanda som programmet behöver. Om programmet inte behöver använda hela processorns kapacitet så går istället processorn in i något som kallas för låg effekt-läge där man minskar på antalet instruktioner som utförs på varje klockcykel. När programmet ändras så återgår processorn till grundläget. Bild 2 På bild 2 syns en superskalär processor med 8 olika pipelines. De 4 översta som är skuggade går att stänga av och på beroende på om man vill vara i lågt effektläge eller om man vill vara i högt effektläge. Det innebär också att som mest kan 8 pipelines vara aktiva och som minst 4 pipelines vara aktiva. I artikeln väljs två olika nivåer av låg effekt-läge ; en där 4 pipelines är aktiva och en där 6 pipelines är aktiva.
Bild 3 I bild 3 syns de olika states som processorn kan befinna sig i. För att inte förlora prestanda så går processorn alltid tillbaka till det normala tillståndet, det vill säga där 8 pipelines är aktiva. I de två olika låg effekt-lägena stänger man av olika funktioner. För att PBL ska fungera maximalt mäter man hur föregående programs behov som körts på processorn sett ut under en viss tid. PÅ det viset kan man förutse hur programmen som körs i framtiden kommer bete sig och på det viset maximera vinsterna av PBL. Minskningen i effektutveckling kan genom PBL bli upp till 66 %(R.I. Bahar.,S.Manne,2002)
2.3 Optimera NOP-instruktionen Det finns tre olika typer av hazards som kan ske i en pipeline-processor; Data, kontroll och struktrella. Data hazards innebär att en intruktion vill ha resultat från en föregående intruktion som ej har skrivit över sitt nya resultat än. Data hazards går att lösa genom att använda en forward-unit som försöker hitta något den kan göra under tiden som är oberoende av resultatet från den instruktion som inte är klar och på så vis utnyttja alla steg i pipeliningen och minska antalet klockcykler. Bild 4 visar hur forwarding effektiviserar processorn. Bild 4 Men om forward unit inte hittar något att göra under tiden kommer istället en kontroll-signal göra en stall och sätta in en NOP-intruktion. När en NOP-operation sätts in leder det till minskad prestanda på grund av mindre effektiv pipeline. Kontroll-signalen avaktiverar andra signaler när den sätter in en NOP, bland annat skriva till minne. Detta kommer leda till ökade övergångar som innebär att transistorerna switchar mellan 0 och 1 fler gånger. Detta leder i sin tur till ökad dynamisk effektutveckling. Data-delen från föregående operation blir låst och ändras till data för NOP-instruktionen. Detta leder också till ökade övergångar när ändringen sker. Övergångarna sker i onödan då data i NOP inte bidrar till någon nytta. För att minska på dessa övergångar kan data i NOP ändras till den data från föregående eller efterföljande instruktion. På grund av att data från efterföljande instruktion ännu är okänd väljs data från den föregående att användas. På det viset minskas övergångar. För att genomföra detta har signalen som möjliggör att ladda data avaktiveras när NOP sätts in. Det leder till att ny data inte laddas in och övergångarna minskar. Denna lösning har
visat sig minska effektutvecklingen i processorn med 10 %.(Lofti-Kamran et al,2008) 3. slutsats Användning av pipeline i en processor har minskat effektutvecklingen i processorn. För att göra pipeline ännu mer effektsnål går det att använda pipeline balancing där man utnyttjar det faktum att alla program behöver olika hög prestanda. På det viset kan man anpassa effektförbrukningen genom att stänga av pipeline-steg när mindre prestanda behövs och på det viset spara på effektförbrukningen. En annan metod för detta är att ändra på NOPinstruktionen. Dessa två metoder är oberoende av varandra och går därför att användas samtidigt. Båda har en väsentlig minskning i effektutvecklingen då den första visar minskning med upp till 66 % och den andra visar en minskning med 10 %. I den första beror effektminskningen på vilka program det är som körs och därav kan minskningen variera enormt.
4. referenser 1. Patterson, D. A. and Hennessy, J. L. (2013). Computer organization and design: the hardware/software interface. Oxford: Morgan Kaufmann, cop. 2014 (The Morgan Kaufmann series in computer architecture and design). 2. R.I. Bahar.,S.Manne. (2002) Power and enery reduction via pipeline balancing. IEEE Micro. 3. Lotfi-Kamran P., Rahmani A., Salehpour A., Afzali-Kusha A. och Navabi Z. (2008). Stall Power Reduction in Pipelined Architecture Processors. IEEE Micro.