16
1 Einleitung
Die Bedeutung der Energie- und Leistungseffizienz wurde zunächst bei eingebetteten Systemen wahrgenommen und wurde später für allgemeine Rechneranwendungen zur Kenntnis genommen. Die Bedeutung der Energieeffizienz
führte zu Initiativen wie der green computing initiative [11].
Allgemein sollte nicht vergessen werden, dass es nicht nur auf den Energieverbrauch während des Betriebes ankommt. Vielmehr hat auch die Herstellung
von Systemen einen erheblichen Anteil am Energieverbrauch. Es sollte daher der komplette Lebenszyklus eines Produktes im Rahmen eines Life Cycle
Assessments (LCA) bewertet werden [375]. Dementsprechend kann man den
Einfluss auf die Umwelt reduzieren, indem man seltener ein neues Gerät kauft.
2. Laufzeit-Effizienz: Eingebettete Systeme sollten die verfügbare Hardwarearchitektur so gut wie möglich ausnutzen. Eine ineffiziente Nutzung von Ausführungszeit (z.B. verschwendete Prozessorzyklen) sollte vermieden werden.
Dies impliziert eine Optimierung der Ausführungszeiten über alle Ebenen
hinweg, von den Algorithmen bis zu Hardwareimplementierungen.
3. Codegröße: Bei manchen eingebetteten Systemen muss der Code für die
Ausführung von Software in dem System selbst gespeichert werden. Hierfür
kann es aber sehr strenge Randbedingungen geben. Dies gilt insbesondere für
Systems on a Chip (SoCs), d.h. Systeme, bei denen die gesamte Informationsverarbeitung auf einem Chip integriert ist. Wenn auch der Speicher mit auf
diesem Chip integriert ist, muss er sehr effizient genutzt werden. Beispielsweise kann es medizinische Geräte geben, die im menschlichen Körper implantiert
werden. Aufgrund der Beschränkungen der Größe und der Kommunikationsmöglichkeiten müssen diese Geräte sehr kompakt sein.
Allerdings kann sich die Bedeutung dieser Einschränkung ändern, wenn das
dynamische Laden von Code akzeptabel wird oder wenn größere Speicherdichten (gemessen in Bits pro Volumeneinheit) verfügbar werden. Flash-Speicher
und neue Speichertechnologien können potentiell einen großen Einfluss haben.
4. Gewicht: Tragbare Systeme dürfen nicht schwer sein. Ein geringes Gewicht
ist oft ein wichtiges Argument für den Kauf eines bestimmten Gerätes.
5. Kosten: Eingebettete Systeme für den Massenmarkt, wie Konsumelektronik,
werden in hohen Stückzahlen hergestellt. Bei diesen Geräten ist die Wettbewerbsfähigkeit besonders wichtig und daher ist eine effiziente Nutzung der
Hardwarekomponenten und des Budgets für Softwareentwicklung erforderlich. Zur Implementierung der benötigten Funktionalität sollte eine minimale
Menge an Ressourcen verwendet werden. Wir sollten also die Anforderungen mit der geringsten Menge an Hardwareressourcen und Energie erfüllen
können. Um den Energieverbrauch zu reduzieren, sollten Taktfrequenzen und
Versorgungsspannungen so gering wie möglich sein. Zudem sollten nur die
unbedingt notwendigen Hardwarekomponenten vorhanden sein. Komponenten, welche die maximale Ausführungszeit (engl. Worst Case Execution Time
(WCET)) nicht verbessern (wie z.B. viele Caches oder virtuelle Speicherverwaltungseinheiten), können in manchen Fällen weggelassen werden.
1 Einleitung
Die Bedeutung der Energie- und Leistungseffizienz wurde zunächst bei eingebetteten Systemen wahrgenommen und wurde später für allgemeine Rechneranwendungen zur Kenntnis genommen. Die Bedeutung der Energieeffizienz
führte zu Initiativen wie der green computing initiative [11].
Allgemein sollte nicht vergessen werden, dass es nicht nur auf den Energieverbrauch während des Betriebes ankommt. Vielmehr hat auch die Herstellung
von Systemen einen erheblichen Anteil am Energieverbrauch. Es sollte daher der komplette Lebenszyklus eines Produktes im Rahmen eines Life Cycle
Assessments (LCA) bewertet werden [375]. Dementsprechend kann man den
Einfluss auf die Umwelt reduzieren, indem man seltener ein neues Gerät kauft.
2. Laufzeit-Effizienz: Eingebettete Systeme sollten die verfügbare Hardwarearchitektur so gut wie möglich ausnutzen. Eine ineffiziente Nutzung von Ausführungszeit (z.B. verschwendete Prozessorzyklen) sollte vermieden werden.
Dies impliziert eine Optimierung der Ausführungszeiten über alle Ebenen
hinweg, von den Algorithmen bis zu Hardwareimplementierungen.
3. Codegröße: Bei manchen eingebetteten Systemen muss der Code für die
Ausführung von Software in dem System selbst gespeichert werden. Hierfür
kann es aber sehr strenge Randbedingungen geben. Dies gilt insbesondere für
Systems on a Chip (SoCs), d.h. Systeme, bei denen die gesamte Informationsverarbeitung auf einem Chip integriert ist. Wenn auch der Speicher mit auf
diesem Chip integriert ist, muss er sehr effizient genutzt werden. Beispielsweise kann es medizinische Geräte geben, die im menschlichen Körper implantiert
werden. Aufgrund der Beschränkungen der Größe und der Kommunikationsmöglichkeiten müssen diese Geräte sehr kompakt sein.
Allerdings kann sich die Bedeutung dieser Einschränkung ändern, wenn das
dynamische Laden von Code akzeptabel wird oder wenn größere Speicherdichten (gemessen in Bits pro Volumeneinheit) verfügbar werden. Flash-Speicher
und neue Speichertechnologien können potentiell einen großen Einfluss haben.
4. Gewicht: Tragbare Systeme dürfen nicht schwer sein. Ein geringes Gewicht
ist oft ein wichtiges Argument für den Kauf eines bestimmten Gerätes.
5. Kosten: Eingebettete Systeme für den Massenmarkt, wie Konsumelektronik,
werden in hohen Stückzahlen hergestellt. Bei diesen Geräten ist die Wettbewerbsfähigkeit besonders wichtig und daher ist eine effiziente Nutzung der
Hardwarekomponenten und des Budgets für Softwareentwicklung erforderlich. Zur Implementierung der benötigten Funktionalität sollte eine minimale
Menge an Ressourcen verwendet werden. Wir sollten also die Anforderungen mit der geringsten Menge an Hardwareressourcen und Energie erfüllen
können. Um den Energieverbrauch zu reduzieren, sollten Taktfrequenzen und
Versorgungsspannungen so gering wie möglich sein. Zudem sollten nur die
unbedingt notwendigen Hardwarekomponenten vorhanden sein. Komponenten, welche die maximale Ausführungszeit (engl. Worst Case Execution Time
(WCET)) nicht verbessern (wie z.B. viele Caches oder virtuelle Speicherverwaltungseinheiten), können in manchen Fällen weggelassen werden.
