Upload
alexa-kramer
View
224
Download
0
Embed Size (px)
Citation preview
ENERGIEVERBRAUCH & VERLUSTLEISTUNGREZNICEK ALEXANDER1125076
2
ENERGIE VS. VERLUSTLEISTUNG• (elektrische) Energie E: 1Ws = 1J 1 Wh = 3600 Ws gespeichert in Energiespeichern wie Akkus• Verlustleistung P: Einheit Watt
• Ein Chip wird schneller, je höher die Spannung ist• Ein Chip wird schneller, je kühler er istWeniger Verlustleistung Weniger Temperatur Mehr Performance
Um den Akku von mobilen Geräten zu schonen muss Energie gespart werden, um die TDP (Termal Design Power) einzuhalten Verlustleistung (Temperatur!)
Verlustleistung sparen bedeutet nicht immer gleich Energie sparen! (vgl. “race to idle” vs. Taktanpassung)
3
TRENDS• Laptops/PCs mit geringerer Verlustleistung in den
letzten Jahren• 2010: Laptop 35W, PC 95-125W TDP• 2015: Laptop 15W, PC 74-84W TDP
• Smartphones/Embedded-Systems mit höherem Energieverbrauch• 2010: 1500mAh durchschnittlich• 2015: 3000mAh bei vergleichbarer Akkulaufzeit• Desweiteren Temperaturprobleme in einigen High-End Geräten
• Seit 2008 mehr Notebooks als PCs verkauft• Auch 2015 steigt die Zahl der verkauften Smartphones
4
WARUM ALSO STROMSPAREN?• Akkutechnik hat sich in den letzten 20 Jahren nicht
viel verbessert, Systemleistung hat sich aber stark erhöht (auch durch erhöhtem Verbrauch)
Erhöhter Verbrauch niedrigere Laufzeit
• Einhalten sinnvoller TDP-Limits
• Umwelt-/Ökonomiegedanken• Bspw. EU-Verordnung Nr. 617/2013:Quadcore-PC mit idle-Verbrauch max. 59 W (2016 41W!)
5
VERLUSTLEISTUNG• Dynamische Verlustleistung C·V2·A·f (Kapazität, Spannung, Frequenz, Aktivitätsfaktor) Leistung, die bei Schaltvorgängen verbraucht wird
Statische Verlust-Leistung wird immermehr zum Problem
• Statische Verlustleistung: Leistung, die ohne Schaltvorgängen bei konstantem Eingang verbraucht wird
6
STROMSPAREN
• In HW• Spezielle Hardwarebausteine• Strukturbreite• Schaltungsoptimierung• Spannungs-/Frequenzvariation• Clock-/Power Gating
• In SW• Compiler• Programmierstil
7
SPEZIELLE HARDWAREBAUSTEINE
Hardware für spezielle Aufgaben, die oft ausgeführt werden• Timer• Codecs• Grafikprozessoren• Custom-ASICs/FPGAs/…
• Beispiel: Video Codec H264 H265CPU 129 W 132 WIGP 90 W 120 WgGPU (fixed-function HEVC!) 119 W 130 W
8
BITCOINS – SHA256Bezeichnung MH/s Watt Preis in
€MH/s/W
Raspberry Pi 0,2 3,75 20 0,053Raspberry Pi2 1,76 3,5 35 0,5Intel Core i7 3930k (6 Kerne!)
66,6 140 500 0,47
Grau = CPU, Grün = GPU, Blau = FPGA, Orange = ASIC
9
BITCOINS – SHA256Bezeichnung MH/s Watt Preis in
€MH/s/W
Raspberry Pi 0,2 3,75 20 0,053Raspberry Pi2 1,76 3,5 35 0,5Intel Core i7 3930k (6 Kerne!)
66,6 140 500 0,47
NVIDIA GTX 590 193 360 600 0,53AMD Radeon R9 280X 825 214 250 3,86
Grau = CPU, Grün = GPU, Blau = FPGA, Orange = ASIC
10
BITCOINS – SHA256Bezeichnung MH/s Watt Preis in
€MH/s/W
Raspberry Pi 0,2 3,75 20 0,053Raspberry Pi2 1,76 3,5 35 0,5Intel Core i7 3930k (6 Kerne!)
66,6 140 500 0,47
NVIDIA GTX 590 193 360 600 0,53AMD Radeon R9 280X 825 214 250 3,86Terasic DE2-115 80 10 600 8BitForce SHA256 Single 832 80 600 10,4
Grau = CPU, Grün = GPU, Blau = FPGA, Orange = ASIC
11
BITCOINS – SHA256Bezeichnung MH/s Watt Preis in
€MH/s/W
Raspberry Pi 0,2 3,75 20 0,053Raspberry Pi2 1,76 3,5 35 0,5Intel Core i7 3930k (6 Kerne!)
66,6 140 500 0,47
NVIDIA GTX 590 193 360 600 0,53AMD Radeon R9 280X 825 214 250 3,86Terasic DE2-115 80 10 600 8BitForce SHA256 Single 832 80 600 10,4AntMiner U1 1600 2 30 800
Grau = CPU, Grün = GPU, Blau = FPGA, Orange = ASIC
12
BITCOINS – SHA256Bezeichnung MH/s Watt Preis in
€MH/s/W
Raspberry Pi 0,2 3,75 20 0,053Raspberry Pi2 1,76 3,5 35 0,5Intel Core i7 3930k (6 Kerne!)
66,6 140 500 0,47
NVIDIA GTX 590 193 360 600 0,53AMD Radeon R9 280X 825 214 250 3,86Terasic DE2-115 80 10 600 8BitForce SHA256 Single 832 80 600 10,4AntMiner U1 1600 2 30 800AntMiner S3 441000 340 390 1297AntMiner S5+ 7722000 3436 2400 2247
Grau = CPU, Grün = GPU, Blau = FPGA, Orange = ASIC
13
STRUKTURBREITE
• Kleinere Strukturbreite – kleinere Abstände/Transistoren
• geringerer Stromverbrauch
• Von einem Full-Node zum nächsten ~30% mehr Effizienz
=Strukturbreite
14
15
STRUKTURBREITE• 14nm!=14nm
• Schaltströme geringer bei gleicher Leistung
• Kleinere Gates liefern allerdings weniger Widerstand Problem der Leckströme
• 30% mehr Effizienz nicht mehr durch Änderung der Strukturbreite allein
16
BULK VS. FINFET
Statt einer Finne mehrere erhöht den Strom der fließt schnellerErhöht aber auch den Stromverbrauch
17
SCHALTUNGSOPTIMIERUNG
• Breiteres Gate verringert Leckströme der Transistor ist dann allerdings langsamer
• Beispiel: NVIDIA Fermi 400er vs. 500er Serieca. 10% weniger Energieverbrauch wurde erreicht
• Verwendung anderer Materialien z.B. SOI (Silicon on Insulator) oder HKMG (High-k Metal Gate) für bessere Isolation
• TSV (Through Silicon Via)• Beispiel: Samsung 3D-NAND
18
SPANNUNGS-/FREQUENZVARIATION• Senkung der Frequenz senkt den Verbrauch über
niedrigere Ströme• Senkung der Spanunng senkt den Verbrauch über Spannung und Ströme
• Bei PCs über die C- und P-States des ACPI• Vom Betriebssystem vorgegeben, von der CPU in eigene
Stati umgesetzt• Alternativ vom Prozessor selbst bestimmt (Speed Shift)• Beispiele: Speed Step, Power Now!, Turbo Boost/Core
• Eingebette Systeme verwenden Power-States• Beispiel: DVFS (Dynamic Voltage and Frequency Scaling)
19
SPANNUNGS-/FREQUENZVARIATION
Freescale i.MX 28 (@1,5V)
DVFS: Verwendung einer OPP-List (Operating Performance Point):Für jede mögliche Frequenz steht hier eine zu verwendende Spannung Bei Frequenzsenkung wird zuerst Frequenz und dann Spannung gesenkt (automatisch!) Bei Frequenzanhebung wird zuerst Spannung und dann Frequenz angebhoben
20
SPANNUNGS-/FREQUENZVARIATION
1 MHz weniger ~ 1-1,5 mA, 1V weniger ~20-30% weniger mATaktsabsenkung nahezu mit konstanter VerbrauchssenkungSpannungsabsenkung mit prozentueller VerbrauchssenkungSpannungsabsenkung senkt Spannung und Strom (P=U*I !)
[Atmel 1280 mit 8MHz]
21
CLOCK GATING / POWER GATINGClock Gating: Abschaltung einzelner Hardware-Komponenten auf einem Chip mittels Deaktivierung des Clocks der Komponente• Beispiele: Speed Step, Power Now!, Turbo Boost/Core, Speed
Shift
Power Gating: Deaktivierung der Hardware durch Abschaltung der Versorgungsspannung des Blockes• Langsamer/weniger dynamisch als Clock Gating• Beispiele: Komponenten an µC wie Timer, ADC, UART,…
Deaktivierung einzelner Kerne (Big.Little, Companion Core)
Beide Methoden trennen nicht physikalisch!
22
POWER GATING
Big.Little: Nur einer der Cluster ist jeweils sichtbarund wird virtuell als einziger Cluster angezeigtInterrupts warden ebenfalls auf diese Art geteilt(GIC, nicht abgebildet)Für die Software sind die Cluster mittels OPP erreichbar
Tegra 3
23
VERBRAUCH EINZELNER KOMPONENTEN
UARTTWI
Timer Typ 1Timer Typ 2Timer Typ 3
SPIADC
220315
100150
300400
315
Atmel 1280, 5V, 8MHz, in µA
24
Prozessor(idle)UART
TWITimer Typ 1Timer Typ 2Timer Typ 3
SPIADC
2700220315
100150
300400
315
Atmel 1280, 5V, 8MHz, in µA
Verbrauch einzelner Komponenten
25
VERBRAUCH EINZELNER KOMPONENTEN
Prozessor
UART
Timer Typ 1
Timer Typ 3
ADC
110002700
220315100150300400315
Atmel 1280, 5V, 8MHz, in µA
26
VERBRAUCH EINZELNER KOMPONENTEN
Prozessor
Alle Komponenten
TWI
Timer Typ 2
SPI
1100027002910
220315
100150300400315
Atmel 1280, 5V, 8MHz, in µA
27
COMPILER
Verwendung von Optimierungen• Laufzeit optimieren (bei gcc –O2) – Hauptziel
der Compilerentwickler• Verwendung spezieller Instruktionen (SSE, …)
Einige Compiler können Spannungs-/Frequenzsteuerung in Programmen erzeugen
28
PROGRAMMIERSTIL• Code Effizienz – kleinerer Code = kürzere
Ausführungszeit”race to idle”
• Einbeziehung der HW: Spezialhardware wie Timer (bzw. Darauf aufbauende Systemroutinen), Hardwarebeschleunigung
• ABER: Beachtung Verbrauch Spezial-HW vs. Implementierung in SW (z.B. Kommunikation alá UART vs. bitbanging)
29
PROGRAMMIERSTIL• Lokale Variablen bzw. Globale Variablen• Lokale Variablen brauchen nicht initialisiert werden (bzw. im Speicher nicht angelegt warden)
• Pointer benutzen• Anstatt zusätzlich den Speicher zu kopieren bei
Funktionsaufrufen• Wird bei AMDs HSA in Zusammenspiel mit CPU/GPU genutzt
• Programmcode in den RAM Speicherhierarchie beachten: Je weiter
aussen, desto weniger Bits umdrehen
30
WIRKUNG DER SOFTWARE
HW-Unterstützung weggerechnet bleibt nur die Laufzeit. Je kürzer das Programm läuft, desto kürzer ist bei gleichbleibendem Verbrauch die gesamt verbrauchte Energie.Speicheroptimierungen bringen dagegen nur bei großen Datenmengen, auf denen der Prozessor warten muss etwas, sind sonst nicht messbar.
31
SPANNUNG ODER TRANSISTOREN SPAREN?
• Beispiel AMD FuryKarte (Anz. Shader)
Leistung
Takt(MHz)
Verbrauch(Watt)
Leistung/Watt
Fury X (4096) 116 1050 275 0,42Fury (3584) 105 1000 275 0,38Fury Nano (4096)
100 ~860 175 0,57
1. Ist Parallelität möglich, mehr Einheiten statt mehr Takt verwenden
2. “Sweet Spot” bei der Taktung beachten
32
WAS REDUZIERT STATISCHE/ WAS DYNAMISCHE VERLUSTE?
Statisch DynamischSpezielle Hardware IM Gegenteil JAStrukturbreite JA JASchaltungsoptimierung
JA JA
Frequenzvariation NEIN JASpannungsvariation
JA JA
Clock Gating NEIN JAPower Gating JA NEINCompiler Nur bei HW-Nähe JAProgrammierstil NEIN JA
33
WARUM VERWENDET MAN DIESE TECHNIKEN DANN NICHT DAUERND?
• Spezielle HW zu entwickeln ist sehr teuer und bei zu komplexer Aufgaben nicht geeignet• Strukturbreite finanziell nahe dem Ende• Schaltungsoptimierung nur in kleinem Rahmen
möglich und sehr teuer (vorgefertigte Libraries verwenden Standardzellen)• Frequenz-/Spannungsvariationen und Gating(=“race to
idle”) schließen sich gegenseitig aus
34
REFERENZEN/BILDEREU-Richtlinie: http://www.computerbase.de/2014-07/vorgaben-energieverbrauch-pcs-netzteile-eu-617-2013/
Verlustleistung: http://ti.tuwien.ac.at/ecs/teaching/courses/didevo/slides/digital-design-lecture-slide-set-8-pdf
Bitcoin-Vergleich: https://en.bitcoin.it/wiki/Mining_hardware_comparison
Strukturbreite: http://www.golem.de/news/fertigungstechnik-der-14-nanometer-schwindel-1502-112524.html
P-State/Speed Shift: http://www.computerbase.de/2015-11/speed-shift-hoehere-skylake-effizienz-mit-update-fuer-windows-10/
Atmel 1280 Datenblatt: http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
DVFS: http://processors.wiki.ti.com/index.php/DVFS_User_Guide
Big.Little-Konzept: http://elinux.org/images/8/8c/DVFS_for_ARM_CortexA15_A7.pdf
Bilder
Folie 5-Verlustleistung: http://ti.tuwien.ac.at/ecs/teaching/courses/didevo/slides/digital-design-lecture-slide-set-8-pdf
Folie 11-Antminer: https://www.bitmaintech.com/userfiles/image/00320140107163108061W8OK7DJt064E.png
Folie 13-MOSFET: https://upload.wikimedia.org/wikipedia/commons/3/34/Scheme_of_metal_oxide_semiconductor_field-effect_transistor.svg
Folie 14-Strukturbreite: http://www.golem.de/news/fertigungstechnik-der-14-nanometer-schwindel-1502-112524.html
Folie 15/16-Finfet-Bilder: http://maltiel-consulting.com/Intel_22nm_3D_Tri-Gate_FinFETs_Transistors_maltiel_semiconductor_consulting.html
Folie 19-i.MX28: https://blogs.mentor.com/embedded/blog/2012/08/27/what-is-dynamic-voltage-and-frequency-scaling-and-why-should-you-care
Folie 19-P-State/Speed Shift: http://www.computerbase.de/2015-11/speed-shift-hoehere-skylake-effizienz-mit-update-fuer-windows-10/
Folie 20-Atmel Consumption: http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
Folie 22-Big.Little: http://cdnzz.ifanr.com/wp-content/uploads/2015/03/arm-big-little-3.jpg
Folie 22-Companion Core: http://www.mxphone.net/wordpress/wp-content/uploads/2012/02/nvidia_tegra_3_companion_core.jpg