398
7 Optimierung
1
2
3
4
5
6
64 128 256 512 1024 2048
CPU
0
Größe
Energie [mJ]
Hauptspeicher
Scratchpad
Abb. 7.14 Energiereduktion durch Compiler-basierte
Scratchpad-Belegung für bubble sort
Offenbar haben größere SPMs
einen reduzierten Energieverbrauch des Hauptspeichers zur
Folge (siehe violette Rechtecke). Die von der CPU benötigte Energie wird auch verringert, da weniger Wartezyklen erforderlich sind. Winzige blaue Rechtecke zeigen
den geringen Verbrauch des
SPM an. Hierbei wurde die
Versorgungsspannung als konstant angenommen, obwohl eine schnellere Ausführung es
erlaubt hätte, Taktfrequenzen
und Spannungen zu reduzieren, was noch größere Energieeinsparungen zur Folge gehabt hätte.
• Partitionierte Speicher [571]: Kleine Speicher sind schneller und benötigen weniger
Energie pro Zugriff. Daher ist es sinnvoll, Speicher in mehrere kleinere Speicher zu
unterteilen. In diesem Fall unterscheiden wir nicht zwischen den verschiedenen
Arten von Speicherobjekten (Funktionen, Basisblöcke, Variablen usw.). Ein Index i
stellt ein beliebiges Speicherobjekt dar. Seien
– S j die Größe des Speichers j,
– s i die Größe des Objekts i (wie zuvor),
– e j der Energieverbrauch pro Zugriff auf den Speicher j,
– n i die Anzahl von Zugriffen auf Objekt i (wie zuvor),
– x i, j definiert als
x i, j =
1
wenn Objekt i auf Speicher j abgebildet wird
0
sonst
(7.10)
Anstelle der Maximierung der Energieeinsparung minimieren wir nun den Gesamtenergieverbrauch. Daher ist das Ziel nun die Minimierung von
C =
j
e j
i
x i, j · n i
(7.11)
unter Berücksichtigung der Nebenbedingungen
∀j :
i
s i · x i, j ≤ S j
(7.12)
∀i :
j
x i, j = 1
(7.13)
7 Optimierung
1
2
3
4
5
6
64 128 256 512 1024 2048
CPU
0
Größe
Energie [mJ]
Hauptspeicher
Scratchpad
Abb. 7.14 Energiereduktion durch Compiler-basierte
Scratchpad-Belegung für bubble sort
Offenbar haben größere SPMs
einen reduzierten Energieverbrauch des Hauptspeichers zur
Folge (siehe violette Rechtecke). Die von der CPU benötigte Energie wird auch verringert, da weniger Wartezyklen erforderlich sind. Winzige blaue Rechtecke zeigen
den geringen Verbrauch des
SPM an. Hierbei wurde die
Versorgungsspannung als konstant angenommen, obwohl eine schnellere Ausführung es
erlaubt hätte, Taktfrequenzen
und Spannungen zu reduzieren, was noch größere Energieeinsparungen zur Folge gehabt hätte.
• Partitionierte Speicher [571]: Kleine Speicher sind schneller und benötigen weniger
Energie pro Zugriff. Daher ist es sinnvoll, Speicher in mehrere kleinere Speicher zu
unterteilen. In diesem Fall unterscheiden wir nicht zwischen den verschiedenen
Arten von Speicherobjekten (Funktionen, Basisblöcke, Variablen usw.). Ein Index i
stellt ein beliebiges Speicherobjekt dar. Seien
– S j die Größe des Speichers j,
– s i die Größe des Objekts i (wie zuvor),
– e j der Energieverbrauch pro Zugriff auf den Speicher j,
– n i die Anzahl von Zugriffen auf Objekt i (wie zuvor),
– x i, j definiert als
x i, j =
1
wenn Objekt i auf Speicher j abgebildet wird
0
sonst
(7.10)
Anstelle der Maximierung der Energieeinsparung minimieren wir nun den Gesamtenergieverbrauch. Daher ist das Ziel nun die Minimierung von
C =
j
e j
i
x i, j · n i
(7.11)
unter Berücksichtigung der Nebenbedingungen
∀j :
i
s i · x i, j ≤ S j
(7.12)
∀i :
j
x i, j = 1
(7.13)
