Systementwicklung Design spart Strom in Datenzentren

Unternehmen und Verbraucher verlassen sich verstärkt auf digitale Daten, verwaltet durch Datenzentren mit zahlreichen Servern. Jeder dieser Server verbraucht Energie sowohl für den Betrieb als auch für die Kühlung. Virtualisierung und angepasste Chip-Entwurfsverfahren können den Energiebedarf von Datenzentren senken.

Derzeit gibt es ein rasantes Wachstum bei der Verarbeitung, Speicherung und Übertragung von Daten. IT-Infrastrukturen und Cloud-Computing verzeichnen dementsprechende Wachstumsraten. Studien verdeutlichen, dass Server, Speicher und Netzwerkausrüstung – die Kernelemente von Datenzentren – normalerweise mit geringer Auslastung arbeiten, sodass das Verhältnis von Rechenleistung zu Energieverbrauch sehr schlecht ist (Bild 1).

Aus der Perspektive der zur Datenverarbeitung verwendeten Chips gibt es mehrere Verfahren, um die Energieeffizienz zu erhöhen. Eines davon ist die Virtualisierung. Dies ist zwar nicht die nachhaltigste Option, aber damit lässt sich die Systemauslastung erhöhen. Zu den weiteren Verfahren gehören Designüberlegungen und Protokollverbesserungen bei wichtigen Schnittstellen-Komponenten-IP (Intellectual Property) im Server, beispielsweise PCI Express.

Unausgelastete Server

Datenzentren und Cloud-Computing-Lösungen werden typischerweise für eine maximale Auslastung ausgelegt, die in Wirklichkeit kaum vorhersehbar ist.

Zum Beispiel wenn besondere Umstände die Server in die Knie zwingen und sogenannte »e-Tailer« versuchen die Kapazität zu handhaben, um der Spitzenbelastung von seltenen Ereignissen wie dem »Cyber Monday« gewachsen zu sein. Außerdem müssen sich die Unternehmen vor Stromausfall schützen, und daher verfügen viele Datenzentren über Dieselaggregate, die alles andere als umweltfreundlich sind. Weniger als 20% des Energieverbrauchs eines Datenzentrums entfällt laut einer veröffentlichten Studie auf aktive Server [58]. Viel Energie wird verbraucht, um die Server zu kühlen, auch während diese im Leerlauf sind.

Das Wasserfall-Diagramm in Bild 2 gewährt einen Einblick in Bereiche, wo Energieeinsparungen möglich sind. Diese lassen sich realisieren, wenn die Datenzentren auf eine höhere Auslastung ausgerichtet sind – mehr Rechenaktivität bei gleichem Stromverbrauch. Dasselbe gilt auch, wenn das Datenzentrum für eine bessere Energieeffizienz im Leerlauf entworfen wurde. Darüber hinaus können diese Einsparungsmethoden auch die Kosten für die Systemkühlung reduzieren. Einen interessanten Punkt verdeutlicht auch die Studie von Google. Diese ergab, dass Server nie wirklich im Leerlauf arbeiten, sondern die meiste Zeit im Bereich einer niedrigen Auslastung von 10% bis 50%.

Um die Energievergeudung in den Servern zu reduzieren, können Entwickler in den Ablaufplan der Software und des Betriebssystems eingreifen, um die Auslastung durch eine Virtualisierung und das Stapeln von Compute-Lasten zu verbessern. Systementwickler können zudem den Energieverbrauch bei geringer Auslastung optimieren. Verbesserte ASIC-Designs, die einen niedrigeren Energieverbrauch bei geringer Auslastung erreichen, können hier helfen.

Virtualisierung erhöht Auslastung

Die Stapelverarbeitung war lange ein Arbeitspferd in der IT-Welt; aber neuere Anwendungen der heutigen vernetzten Welt – meist interaktive Anwendungen, die sofortige Ergebnisse erfordern – eignen sich nicht für eine Stapelverarbeitung. Mittels Virtualisierung lässt sich dagegen die Auslastung in Datenzentren erhöhen. Besonders bei wenig genutzten Servern reduziert die Virtualisierung die Energievergeudung, indem ein Computer mehrere Gastbetriebssysteme durch Abstraktion der Hardware-Ressourcen (CPU, Speicher, I/O) mittels Hypervisor (auch als »virtueller Maschinenmanager« bezeichnet) ausführen kann. In einem virtualisierten System (Bild 4) kann eine virtuelle Maschine (VM) von einem Hardwaresystem auf ein anderes migriert werden. Werden bei der VM während Spitzenlastzeiten Speicher oder andere Ressourcen knapp, dann kann diese auf einen Server mit geringerer Auslastung migriert werden. Hinter den Kulissen werden die Hardware und andere Ressourcen wie Netzwerkadressen verwaltet, sodass die Migration für die VM transparent ist.

Die Virtualisierung erhöht zwar die Auslastung, aber es bleibt nach wie vor das Risiko einer zu geringen Auslastung in Zeiten ohne Spitzenlast. Ein weiterer Gesichtspunkt ist, dass Anbieter, die SLAs (Service-Level Agreements ) zu erfüllen haben, bestimmte Leistungsniveaus garantieren müssen. Dementsprechend unterhalten Datenzentren redundante Systeme, die als Backup im Fall eines Geräteausfalls dienen. Da diese Maschinen stillstehen, erhöhen sie den Gesamtenergieverbrauch. Um eine hohe Effizienz zu erreichen, muss die Auslastung bei mindestens 70% liegen (Bild 3). Wie lassen sich geringe Auslastungen vermeiden?

Innerhalb des Servers gehören die Prozessor-Cores, die Festplattenlaufwerke und die Netzwerkschnittstellen zu den leistungshungrigsten Komponenten. Da die Leistungsfähigkeit und Bandbreitenanforderungen zunehmen, steigt auch die Komplexität der Hardware im Datenzentrum. Mit Multicore-Maschinen können die Betreiber die Threads/Watt-Effizienz erhöhen und die Kosten pro Leistungseinheit reduzieren. Diese Designs erfordern Links mit einer sehr hohen Bandbreitenkohärenz zwischen den Sockets. Die Kohärenz ist erforderlich, um konsistente Daten zwischen den Prozessoren zu gewährleisten. Diese Designs benötigen zudem eine entsprechende Bandbreite im I/O-Subsystem, um die Ein- und Ausgänge des Systems (Ethernet, Speicher usw.) bedienen zu können.

Es wurden verschiedene Techniken entwickelt, um den Stromverbrauch der Hardware in Datenzentren zu reduzieren. Hierzu gehört DVFS (Dynamic Voltage Frequency Scaling), das die Leistung der aktiven CPU senkt und damit den Stromverbrauch reduziert, aber zu Lasten der Performance geht. Da sich die Prozesstechnik ständig weiterentwickelt und der Abstand zwischen Nenn- und Schwellenspannungen geringer werden, nehmen gleichzeitig auch die Vorteile durch DVFS ab. »Deep Scaling« hat einen sehr starken Einfluss auf die Rechenleistung. Innerhalb des Cores bietet die Taktsteuerung der CPU gewisse Möglichkeiten. Allerdings bleiben Shared-Caches und Speichercontroller auf dem Chip normalerweise aus Kohärenzgründen aktiv, solange zumindest ein Core im System aktiv ist. Eine Optimierung des Idle-Zustands des gesamten Systems ist nicht praktikabel, da dieser Zustand in einem Datenzentrum extrem selten der Fall ist (Bild 4).

Es gibt zudem Möglichkeiten für einen Einsatz von aktiven Low-Power-Techniken im Speicher und dem I/O-Subsystem. CPUs haben einen Dynamikbereich von mehr als 3,0 – die Leistung verändert sich also um den Faktor 3 über den Aktivitätsbereich relativ proportional zur Auslastung. Im Gegensatz dazu liegt der Dynamikbereich des Speichers bei 2,0 und der von Festplatten und Netzwerkschnittstellen bei 1,2 bis 1,3.

PCIe sparsamer gestalten

Auf der Seite des Speichers kann ein Self-Refresh helfen, den Stromverbrauch um eine Größenordnung zu reduzieren. Diese Technik erlaubt ein DRAM-Refresh während Speicherbustakt, PLL und DRAM-Schnittstelle deaktiviert sind. Schnittstellen-Links können eine hohe Leistungsaufnahme im Leerlauf und bei Maximallast haben.

PCI Express (PCIe) ist ein weitverbreitetes Schnittstellenprotokoll bei Speicher-, Grafik-, Netzwerk- und anderen Konnektivitätsanwendungen. Die PCI-SIG hat sich intensiv mit der Reduzierung der Plattformleistung in der Spezifikation beschäftigt. Diese Techniken entsprechen dem Energie-Proportionalitätskonzept: Reduzierung des Stromverbrauch bei niedriger Auslastung.

Die PCI-SIG hat die PCIe-Spezifikation durch ECNs (Engineering Change Notices) aktualisiert und hilft damit, den Dynamikbereich für den Stromverbrauch bei PCIe-Komponenten auf der Basis von Aktivität und Auslastung zu verbessern. Das wiederum erhöht die Energieproportionalität des Systems. Zu den neuen ECNs gehören LTR (Latency Tolerance Reporting), OBFF (Optimized Buffer Flush/Fill) und eine weitere Energieeinsparung im L1-Zustand.

So lange wie möglich im Low-Power-Modus

Mit LTR kann ein Host Interrupt-Service durch eine »intelligente« Ablaufplanung von Aufgaben verwalten, um die Verweildauer im stromsparenden Modus zu optimieren. Der Host kann das Gerät aber nach wie vor innerhalb der vom Gerät tolerierten Servicelatenz bedienen. Plattform-Power-Management-Policies (PM) schätzen ab, wann Geräte in den Idle-Zustand gehen, und zwar über eine Annäherung mittels Inaktivitäts-Timern. Eine falsche Abschätzung des Idle-Fensters kann Leistungsprobleme oder in Extremfällen sogar Hardwarefehler verursachen. Infolgedessen haben PM-Einstellungen häufig suboptimale Energieeinsparungen zur Folge. Um eine fehlerfreie Funktion zu gewährleisten, wird das Power-Management manchmal vollständig deaktiviert.

Mit LTR sendet das Endgerät eine Nachricht an den Root-Komplex, um seine erforderliche Servicelatenz anzuzeigen. Die Nachricht umfasst Werte sowohl für Snooped- als auch Non-Snooped-Transaktionen. Multifunktionelle Geräte und Switches verbinden LTR-Nachrichten und senden sie zum Root-Port.

Die LTR-ECN erlaubt auch Endgeräten eine Änderung ihrer Latenztoleranz, wenn sich die Serviceanforderungen ändern, zum Beispiel wenn »Sustained Burst Transfers« unterstützt werden müssen. In einem LTR-fähigen System liefern die Endgeräte die jeweiligen Serviceintervalle an den Root-Komplex. Die Software kann den gemeldeten Aktivitätsgrad für einen Einstieg in einen Low-Power-Modus nutzen. LTR ermöglicht dynamische Leistungs-/Performance-Abwägungen bei nur einem geringen Overhead der LTR-Nachrichten.

Über OBFF kann der Host Informationen über den Systemzustand mit den Geräten austauschen, sodass diese ihre Aktivität planen und die Zeit im stromsparenden Zustand optimieren können. In einer typischen Plattform ist den PCIe-Geräten im System nicht bekannt, in welchem Leistungszustand die Hauptressourcen jeweils sind. Deshalb kann der Entwickler CPU, Root-Komplex und Speicherkomponenten nicht optimal verwalten, weil die Geräte-Interrupts asynchron sind und so das Idle-Fenster fragmentieren. Mit OBFF (Bild 5) erhalten die Geräte Leistungsmanagement-Hinweise, sodass sie Anforderungsmuster optimieren können. Zudem ist ihnen bekannt, wann sie das Hauptsystem unterbrechen können. Dadurch kann das System das Idle-Fenster erweitern und länger in einem Low-Power-Zustand bleiben. OBFF kann mit einer erweiterten Bedeutung des »WAKE#«-Signals oder mit einer Nachricht implementiert werden.

Zusätzliche Low-Power-Zustände

Das PCIe-Protokoll definiert mehrere Link-Power-Zustände (Tabelle 1).

Link-Zustand Beschreibung 
L0 Aktiv 
L0sAbwarten
L1Low-Power-Standby
L2Notstrom, tiefer Standby
L3 Aus 
Tabelle 1: PCIe-Link-Zustände: Mit zunehmender Energieeinsparung nimmt die Ausstiegslatenz aus dem Low-Power-Zustand in den aktiven Betrieb zu

Durch Anforderungen des Marktes und der Regulierungsbehörden hat die PCI-SIG eine ECN vorgeschlagen, um den Stromverbrauch im L1-Zustand zu senken. Der aktuelle stromsparende Zustand (L1) hat einen Stromverbrauch im Milliwattbereich. »L1 Power Mode Substates with CLKREQ« [10] definiert den Zustand L1 als L1.0 neu und umfasst zwei Unterzustände, definiert als L1.1 und L1.2 (Tabelle 2).

Link-Zustand Beschreibung 
L1.0 Standby; Rx/Tx aus oder im Leerlauf 
L1.1Rx/Tx aus, Gleichtaktspannung wird aufrechterhalten
L1.2Rx/Tx aus, Gleichtaktspannungen aus
L2Notstrom, tiefer Standby
L3 Aus
Tabelle 2: PCIe-L1-Unterzustände: Reduzierung der Leistungsaufnahme durch das Abschalten von größeren Teilen des analogen Designs. Der Ausstieg aus diesem Zustand erfolgt mit der Assertion CLKREQ#.

Mit diesen zwei neuen Zuständen kann der Stand-by-Status den Stromverbrauch in seinem Modus reduzieren. IP-Anbieter haben bereits eine Implementierung dieser Zustände in PCIe-Controllern und -PHYs angekündigt. Der Standby-Stromverbrauch lässt sich damit um zwei Größenordnungen auf wenige Mikrowatt senken, während kurze Übergangszeiten zwischen aktivem und Idle-Zustand erreicht werden. 
Die beiden neuen Unterzustände definieren Low-Power-Modi, die durch das Deaktivieren von Schaltungen erreicht werden, die das Protokoll nicht benötigt. Sowohl in L1.1 als auch in L1.2 ist die Erkennung des elektrischen Idle-Zustands nicht erforderlich, sondern die Zustände werden über CLKREQ# gesteuert. L1.2 erlaubt eine weitere Reduktion des Stromverbrauchs durch das Abschalten von Link-Gleichtaktspannungen.

Die Ausgangslatenz dieser neuen stromsparenden Modi ist kritisch, da eine lange Latenz die Systemleistung einschränken kann. Zudem kann es Funktionsprobleme geben, wenn LTSSM-Timer nicht richtig beachtet werden. PHY-Designs sind im Hinblick auf die Reduzierung der Ausgangslatenz und gleichzeitig angestrebtem niedrigen Stromverbrauch inzwischen am Limit.

Latenzen im Griff

Der Einsatz von Techniken, die Prozess-, Spannungs- und Temperaturschwankungen abdecken, kann den Energieverbrauch im aktiven Modus des PCIe-PHY reduzieren. Ohne diese Techniken müssen PHYs mit einem größeren Overhead entwickelt werden, wodurch sich der Stromverbrauch deutlich erhöht. Taktsteuerung und »Power Islands« können den Leckstrom stark reduzieren und so den statischen Stromverbrauch optimieren. Der Einstieg in einen tiefen stromsparenden Zustand beeinträchtigt die Ausstiegszeiten aus diesem Zustand. Jedoch können gute PLL-Designtechniken für schnelle Lock-Zeiten diese Ausgangslatenz deutlich reduzieren und die Wiederaufnahmezeit und den Bedienkomfort verbessern.

Cadence hat seine PCIe-Controller und -PHYs entsprechend optimiert, sodass diese die neuen L1-Modi unterstützen. Die Implementierung dieser Low-Power-Modi ist als 1x- bis 16x-Konfiguration erhältlich; alle Anwendungen, die diese Bauteile nutzen, können von einer Energieeinsparung profitieren. Die »28HPM«-Implementierung des Cadence-Controllers kommt als Wirebond-PHY-Option auf den Markt und ist auch für Flip-Chip-Designs verfügbar.

Über die Autoren:

Arif Khan ist Product Marketing Director und Osman Javed ist Senior Manager, beide bei Candence Design Systems.