Rechnen auf Sparflamme

02.08.2012

Energiebewusste Chips

Durch die exponentielle Zunahme der Anzahl der Transistoren in Halbleiterchips verfügen wir von Jahr zu Jahr über immer mehr logische Komponenten für verschiedenste Anwendungen. Paradoxerweise wird es immer schwieriger, all diese Transistoren bei voller Leistung zu betreiben, da die verbrauchte Energie pro Flächeneinheit ausgefeilte Kühlung und starke Batterien erfordert. Bei vielen Anwendungen benötigt man jedoch keine extremen Rechengeschwindigkeiten; zudem ermöglicht das Mooresche Gesetz eine andere Art von Rechnerarchitektur.

Moore und die energetischen Grenzen

Das Mooresche Gesetz hat der Elektronikindustrie radikale Kostensenkungen über Jahrzehnte beschert. Durch die anderthalbjährliche Verdopplung der Anzahl der Transistoren in Halbleiterchips kann immer mehr Funktionalität in immer kleinere Geräte verpackt werden. Eine unangenehme Nebenwirkung des Mooreschen Gesetzes ist jedoch die Steigerung der energetischen Leistungsdichte, d.h. der pro Flächeneinheit erzeugten Wärme in elektronischen Bausteinen. Da die Erhöhung der Energiedichte von Batterien mit dem Mooreschen Gesetz nicht mithält, müssen neue Arten von energiesparsamen Rechnerarchitekturen entwickelt werden.

Auf dem Gebiet des "low power"-Designs gibt es verschiedene Möglichkeiten, den Energieverbrauch des Computers zu drosseln. Auf der Programmierebene kann man den Anwendungen erlauben, bestimmte Geräte auszuschalten (z.B. den Bildschirm oder sogar die Festplatte) oder auch nicht benötigte Teile des Prozessors. Werden z.B. keine Gleitkomma-Operationen benötigt, könnte das Programm die ganze Floating-Point-Unit in den Schlafzustand versetzen. Viel eleganter wäre es, wenn der Prozessor solche Entscheidungen anhand der ankommenden Befehle automatisch treffen könnte.

Die heute dominierende Halbleiter-Technologie ist das sogenannte CMOS (Complementary Metal Oxide Semiconductor). MOS-Transistoren kann man als Schalter verstehen, bei denen ein Tor ("Gate") den Stromfluss von der Quelle zur Senke reguliert. Ist das Tor geschlossen, fließt kein Strom. Ist das Tor offen, fließt Strom. Das Tor ist das Metall (M), dazwischen liegt eine Isolierschicht (O für Oxide) und darunter der Halbleiter, durch den der Strom fließt (S für Semiconductor).

MOS-Transistoren gibt es in zwei Varianten: Bei einer Variante schließt das Tor mit positiver Spannung und analog dazu eine andere Variante mit negativer Spannung. Bei CMOS werden beide Komplementärarten von Transistoren geschickt eingesetzt.

Abb. 1 zeigt ein logisches Diagramm eines CMOS-Inverters: Das Eingabebit soll am Ausgang negiert werden. Es gibt dafür einen MOS-Transistor (Schalter) zur Betriebsspannung V und noch einen Schalter zur Masse. Bei Eingabebit 1 (Spannung V) schließt der untere Transistor, und der obere macht auf. Die Ausgabe wird damit mit der Masse verbunden. Bei Eingabe 0 (Masse) schließt der obere Transistor und der untere öffnet. Die Ausgabe wird damit mit der Spannung V verbunden. Somit wird in beiden Fällen das Eingabebit negiert.

Wichtig für den Energieverbrauch einer solchen Schaltung ist es, dass Ströme nur beim Schaltvorgang selbst fließen. Wenn einer der Transistoren schließt, fließt Strom über den Transistor und über die Leitung zum Ausgang, sei es, um diese Leitung mit Elektronen zu füllen oder Elektronen daraus zu entnehmen. Danach ist Ruhe und es fließen keine Ströme mehr, die Komponenten erreichen somit eine stabile Spannung.

Die Verbindungsleitungen und die an Transistoren angeschlossenen Komponenten kann man sich deswegen als Elektronenbehälter, d.h. als Kondensatoren vorstellen. Diese werden bei Zustandswechsel geladen und entladen. Die in der CMOS-Komponente benötigte Energie E pro Zeiteinheit ist deswegen proportional zum Produkt von: a) der Kapazität C der am Ausgang angeschlossenen Komponenten; b) dem Quadrat der Betriebsspannung V; und c) der Anzahl f der Schaltvorgänge pro Sekunde. Dies bedeutet, dass E=CV2f.

Abb. 1: Logisches Diagramm eines CMOS-Inverters

Will man jetzt Energie in CMOS-Schaltungen sparen, kann man die Frequenz des Chips drosseln, womit alle Rechnungen langsamer ablaufen. Ebenso könnte man die kapazitive Last verringern, was aber nicht auf drastische Weise bei den bereits erreichten kleinen Dimensionen zu bewerkstelligen ist. Es bleibt letztlich noch die Änderung der Betriebsspannung, die zudem in der Rechnung quadratisch zu Buche schlägt.

Und in der Tat ist die Betriebsspannung von CMOS-Komponenten in den letzten Jahren stetig gefallen. Der Wechsel von 5V auf 1V Spannung hat z.B. nominell einen Faktor 25 an Energie gespart! Aber die Chipdesigner wollen noch weiter gehen, obwohl man bereits an die Grenzen der CMOS-Technologie stößt.

Near-Threshold Computing

Wenn sich in CMOS-Schaltungen durch die Herabsetzung der Betriebsspannung sonst nichts ändern würde, wäre die Entscheidung trivial. Da aber die CMOS-Schaltung eine Last betreibt, und diese Last zumindest beim Schaltvorgang als Kondensator gefüllt bzw. entleert werden muss, hängt die Geschwindigkeit des Schaltvorgangs von der Betriebsspannung ab. Deshalb führt eine niedrigere Betriebsspannung zu langsameren Schaltzeiten der Komponenten.

Es muss notwendigerweise der Takt des Prozessors herabgesetzt werden. Mikroprozessoren, die ohne Änderung der Betriebsspannung unterschiedlich getaktet werden können - schneller, wenn man viel Rechenleistung braucht, und langsamer, wenn man nur E-Mail liest - , gibt es bereits.

Problematischer wird es, wenn nicht primär der Takt, sondern die Betriebsspannung so weit herabgesetzt wird, dass man im Bereich des sogenannten Halbleiter-"Thresholds" kommt. Abb. 2 zeigt wie in den letzten Jahren die Halbleitertechnologie periodisch die Dimensionen der logischen Komponenten reduziert hat.

Parallel dazu wurde die Betriebsspannung am Anfang sehr schnell um den Faktor zwei bis drei reduziert, aber seit dem Wechsel von der 130nm auf die 22 nm Fotolithographie hat sich bei der Betriebsspannung nur wenig getan - sie stagniert bei einem Volt.[1]

Abb. 2: Stagnation der Reduktion der Betriebsspannung. Die Halbleitertechnologie ist von 250 nm bis auf 22 nm Detailbreite fortgeschritten, während seit einiger Zeit die Betriebsspannung bei 1V stagniert. Bild aus Dreslinski et al.

Das Problem liegt in der speziellen Charakteristik der MOS-Technologie. MOS-Transistoren besitzen eine sogenannte "Schwellen-Spannung" Vt. Beim Low-Power-Design mit 1,2 V Betriebsspannung kann die Schwellen-Spannung z.B. bei etwa 0,5 V liegen. Legt man eine Spannung V am Transistorgate an, die deutlich über der Schwellenspannung liegt, so steigt der vom Transistor durchgelassene Strom linear mit der Differenz V-Vt.

Liegt die Spannung am Transistorgate unter der Schwellenspannung Vt, so fällt der durchgelassene Strom exponentiell ab. Angenommen, man würde die Betriebsspannung in den Bereich von 0,5 V setzen, dann wäre der durchgelassene Strom sehr niedrig, d.h. der Transistor wurde sehr langsam umschalten (bzw. seine kapazitive Last laden). Damit steigt der sogenannte "delay", die Zeit, die man auf den Umschaltvorgang warten muss. Je näher die Betriebsspannung zur Schwellen-Spannung Vt kommt, desto "lethargischer" wird der Transistor.

Das ist jedoch nicht das größte Problem. Viel schwerwiegender ist es, dass nicht alle Transistoren sich identisch verhalten und deshalb sehr unterschiedliche Verzögerungen haben können. Man arbeitet ja fast im Grenzbereich dessen, was die Transistoren als Halbleiter leisten können. Leichte Herstellungsunterschiede erzeugen dann unterschiedliche Schaltzeiten im Grenzbereich, so dass man nicht mehr sicher sein kann, ob zwei Bits, die für die nächste Berechnung notwendig sind, auch gleichzeitig ankommen werden.

Für getaktete Schaltungen kann dies fatal sein und die Fehlerquote steigt sehr schnell. Eine getaktete Schaltung ist wie ein Orchester. Wenn alle Musiker die Noten unterschiedlich schnell spielen, so gerät die Symphonie aus den Fugen.

Eine niedrigere Betriebsspannung (horizontale Achse) erzeugt eine höhere Variabilität der Delays (normalisiert für 1,2V in der vertikalen Achse). Im NTC-Bereich ist die Variabilität der Delays um Faktor fünf größer als bei 1,2V. Bild aus Dreslinski et al.

Wenn man im Grenzbereich des Transistors operiert, reduzieren sich also die durchgelassenen Ströme so stark, dass man beim Übergang von 1V auf 0,5V Faktor 100 an Energie sparen kann. Gleichzeitig werden aber die Schaltungen zehnmal langsamer, so dass unter dem Strich, für eine geleistete Rechenaufgabe eine Ersparnis von Faktor 10 an Energie übrig bleibt.[2]

Nach diesem Faktor 10 streben jetzt die Halbleiterproduzenten, insbesondere Intel, die bereits mit diversen Prototypen im sogenannten "Near Threshold Computing" eingestiegen sind. Die dabei auftretenden Koordinierungsprobleme muss man aber in den Griff kriegen. Außerdem treten neue Verluste auf, da bei CMOS-Schaltungen in dem Moment, in dem beide Komplementär-Transistoren umschalten, kurzfristig ein Kurzschluss erzeugt wird. Je langsamer die Transistoren, desto länger die Kurzschlusszeiten.

Probabilistische Logik und PCMOS

Wenn plötzlich eine Digitalschaltung aus dem Takt gerät und sich die Fehler häufen, ist die naheliegende Frage, wie viele solche Fehler der Rechenvorgang verkraften kann. Mit diesem Problem hat sich bereits John von Neumann, der Doyen der Informatik, im Jahr 1952 beschäftigt.[3]

Vakuumröhren hatten damals viel größere Fehlerraten als der heutige Transistor, so dass eine mathematische Lösung des Problems erforderlich war. Von Neumanns Strategie kann man im Allgemeinen als Redundanz auf allen Ebenen bezeichnen. Wenn die Weiterleitung der Ergebnisse fehlerbehaftet ist, vervielfältigt man die Leiterbahnen und es findet eine Mehrheitsabstimmung am Ziel statt.

Wenn die logischen Komponenten selbst Fehler erzeugen können, dann werden diese auch vervielfältigt und es findet ebenfalls eine Abstimmung über das Endergebnis statt. Solche redundanten Computersysteme sind heute in Satelliten üblich, bei denen im Pannenfall kein Techniker vorbeischauen kann.

Von Neumanns Vorschlag ist es aber, nicht den Mikroprozessor dreimal auf der Platine zu löten, sondern sämtliche Elementaroperationen im Mikroprozessor intern redundant auszuführen. Eine solche Redundanz ist z.B. durch Paritätsbits in Speicherchips oder Festplatten heute zum Teil gegeben. Von Neumann hat deswegen als Bausteine für Rechner den "Majority Logic"-Komponenten den Vorzug gegeben - Einheiten, wie man sie heute in McCulloch-Pitts-Netzen (eine Unterart von neuronalen Netzen) verwendet.

Es gibt einen etwas radikaleren Vorschlag, der seit einiger Zeit unter dem Begriff PCMOS (für probabilistic CMOS) die Runde macht. Die Grundidee ist, die Betriebsspannung herabzusetzen (und sogar in den Schaltungen Komponenten zu eliminieren) und die daraus resultierenden Bitfehler zu akzeptieren, um damit weiter zu rechnen. Nicht alle Anwendungen können solche Bitfehler vertragen, aber grafische Ausgaben oder Filter für Bilder bzw. Musik sollten etwas unempfindlicher gegenüber Rauschen sein.

Die entsprechenden Vorschläge von Krishna Palem und Mitarbeiter sind bis heute eigentlich eher nebulös geblieben: Es wird vor allem angeregt ,herkömmliche Mikroprozessoren mit einem "sloppy" Coprozessor auszustatten, so dass nicht-kritische Berechnungen im Coprozessor ablaufen, während die kritischen Berechnungen im normalen Prozessor bearbeitet werden.[4]

Für jedes Resultatbit wird eine Wahrscheinlichkeit p festgelegt, ob sie korrekt ist, und die Energiezufuhr wird an das gewünschte p angepasst. Man muss schon wie die Inkarnation des Höchsten heißen, um in der Detailbeschreibung so rätselhaft zu bleiben und trotzdem eine neue Ära des Rechnens ankündigen zu dürfen.[5] Bis zum Patentantrag hat es zumindest gereicht.

Kein Wunder, dass eine Sorte von Anwendungen, die von fehlerbehafteten Schaltungen profitieren können, eine solche ist, die Zufallbits benötigt.[6]

Man muss trotzdem anmerken, dass 2012 schwere Geschütze aufgefahren wurden (mit erstklassigen Koautoren), um die Idee der PCMOS-Schaltungen endlich konkretisieren zu können.[7]

Anhand einer Additions-Schaltung (die auch implementiert wurde) wurde gezeigt, dass man gezielt Komponenten ausschneiden ("prunen") kann und dass die Resultate noch zu verwendbaren Resultaten bei Filterung von Bildern mit einer FFT-Berechnung führen. Die benutzte Methodologie ähnelt aber herkömmlichen stochastischen Redundanzansätzen, so dass es nicht so klar ist, wo die radikale Neuartigkeit des Verfahrens liegt.

Intels Near-Threshold Computing

Viel konkreter und nützlicher scheinen die Experimente von Intel mit NTC-Schaltungen zu sein. Bei der diesjährigen International Solid-State Circuits Conference (ISSCC) wurde ein Intel-Pentium IA-32 Core gezeigt, der mit Solarzellen betrieben werden kann. Der Mikroprozessor arbeitet mit NTC-Komponenten und kann unterschiedlich schnell betrieben werden, je nach vorhandener Energiequelle. Die Betriebsspannung kann zwischen 0,28V und 1,2V gelegt werden.[8]

Die Intel-Ingenieure haben zuerst eine Energie-Management-Einheit in den Chip eingebaut. Diese schaltet Teile des Prozessors aus, die gerade nicht benötigt werden, wie z.B. die oben erwähnte Floating-Point-Unit. Die Umschaltung ergibt sich direkt aus der Befehlsfolge in der Prozessor-Pipeline. So kann bereits 20% der Energie gespart werden, wenn die FPU nicht benötigt wird.

Außerdem wurde die ganze Logik des Prozessors verändert, indem nur solche Designzellen verwendet wurden, die auch bei niedriger Spannung zuverlässig arbeiten.[9] Diese Änderungen können u.U. aufwendig sein, z.B. durch die Begrenzung der maximalen Anzahl der von einer Unit betriebenen Komponenten. In der Regel werden komplexe "breite" Schaltungen vermieden, zugunsten von in die Tiefe gezogenen sequentiellen Schaltungen. Die gesamte Schaltung wird damit tiefer und langsamer, arbeitet aber zuverlässiger.

Eine weitere Alternative, die studiert wird, besteht darin, die Fülle von Transistoren im Chip dafür zu nutzen, um Schaltungen redundant, aber sparsamer auszuführen. Der IEEE-Floating-Point-Standard z.B. ist sehr komplex. Man kann aber Additionen getrennt nach Spezialfällen bearbeiten. Statt einem einzigen Addierer kann man mehrere haben: einer für den allgemeinen Fall, einer für die Addition einer FP-Zahl mit einer kleinen ganzen Zahl, einer für die Addition von zwei kleinen ganzen Zahlen, usw.

Jede Schaltung für sich ist einfacher als die allgemeine Schaltung und verbraucht weniger Energie. Man verwendet dann nur die geeignete Schaltung und schaltet die anderen aus. Es ist wie ein Schweizer-Messer, das man in einzelne Werkzeuge aufteilt, um nur die dafür notwendige Energie zu verbrauchen. Das Mooresche-Gesetz hilft damit, drinnen eigene Auswirkungen auszumerzen, indem mit Transistoren rumgeworfen wird, um Energie im Chip zu sparen.

Auf welche Probleme wird man in Zukunft mit den ultrakleinen Komponenten stoßen, die durch das Mooresche Gesetz möglich geworden sind? James Meindl hat es vorgerechnet.[10] Kurioserweise spielen heute die Verzögerungen durch die Kommunikation der Bitresultate eine nicht mehr zu vernachlässigende Rolle. Die Latenz einer Ein-Millimeter-Leiterbahn ist bereits sechsmal größer als die Schaltzeit eines Transistors!

Bei 32nm Technologien kostet es 30 mal mehr Energie, das Bit weiter zu leiten, als das Bit zu produzieren. D.h. ein Bit zu berechnen, geht schnell, das Bit weiter zu übermitteln, ist aber teuer. Meindl hat außerdem berechnet, dass ein Transistor mit 10nm Länge notwendig ist, um die minimale Energie für einen Schaltvorgang zu liefern. Das Mooresche Gesetz wird diese Dimensionen liefern, aber die Schaltungstopologie muss sich radikal ändern, um weiterhin den Energieverbrauch senken zu können.

Wenn wir das mit unserem Gehirn vergleichen, können wir feststellen, dass hier auch etwas Interessantes geschehen ist. Das Gehirn besteht überall aus niederenergetischen Elementen, den Neuronen, die maximal einige Male pro Sekunde umschalten können. Dafür haben wir aber viele davon. Die Übertragung eines Impulses geschieht durch die Axone, die gleichsam als Batterie arbeiten. Axonmembrane laden sich wie Kondensatoren, sind negativer im Inneren als außen.

Dies geschieht durch eine differentielle Konzentration von positiven und negativen Ionen. Muss ein Signal übertragen werden, entlädt sich der Kondensator durch die Ionenkanäle und ein Depolarisationspuls gleitet wie ein Strohfeuer entlang des Axons bis zur nächsten Zelle oder Zellen. Die Natur hat also Meindls Problem der "Diktatur der Interkonnektivität" auf die Weise gelöst, dass die Signalübertragung aktiv erfolgt.

Neuronen und deren Axone sind logische Elemente - aber gleichzeitig auch Batterien. Mit 20 Watt betreibt unser Gehirn seine 100 Milliarden Neuronen plus alle Verbindungen dazwischen. Das menschliche Gehirn "rechnet" auf Sparflamme[11] und sensorische Elemente (wie die Augenrezeptoren) können auf Minimalereignisse reagieren (wie das Eintreffen eines einzelnen Photons). Mikroprozessoren bemühen sich erst jetzt darum, in solche Effizienzregionen vorzustoßen.

x
Fehler melden
Telepolis zitieren
Vielen Dank!
Anzeige
>
<

Darstellungsbreite ändern

Da bei großen Monitoren im Fullscreen-Modus die Zeilen teils unleserlich lang werden, können Sie hier die Breite auf das Minimum zurücksetzen. Die einmal gewählte Einstellung wird durch ein Cookie fortgesetzt, sofern Sie dieses akzeptieren.

Cover

Aufbruch ins Ungewisse

Auf der Suche nach Alternativen zur kapitalistischen Dauerkrise

Anzeige
Demokratie am Ende?

Wolfgang J. Koschnick analysiert den Niedergang der entwickelten parlamentarischen Parteiendemokratien. Das verbreitete Klagen über "die Politiker" und die allgemeine "Politikverdrossenheit" verstellt den Blick dafür, dass alle entwickelten Demokratien in einer fundamentalen Strukturkrise stecken.

bilder

seen.by

Anzeige

TELEPOLIS