Energieeffiziente MAC-Einheiten adiabatische Logik in der digitalen Signalverarbeitung Wintersemester 2009/10 Friedrich-Schiller-Universität Jena von Etienne Kleine 26. Februar 2010 Seminarleiter : Prof. Dr. Eberhard Zehendner David Neuhäuser Kurzzusammenfassung Die Energieeffizienz digitaler Schaltungen gewinnt zunehmend an Bedeutung. Zum einen ist eine Verringerung der Energieaufnahme von Digitaltechnik aus Gründen des Umweltschutzes wünschenswert, zum anderen nimmt die Anzahl mobiler Geräte, denen nur ein begrenzter Energievorrat zur Verfügung steht, stetig zu. Das Potential der konventionellen CMOS Schaltkreise bezüglich der Energieeffizienz scheint auf Grund technologischer und physikalischer Grenzen nahezu ausgereizt. In dieser Ausarbeitung sollen die Gründe dafür kurz erläutert und Verbesserungsmöglichkeiten aufgezeigt werden, die ihre Anwendung in sogenannten adiabatischen Schaltkreisen finden. Zudem wird eine alternative Hardwareumsetzung logischer Funktionen in komplexen Schaltkreisen betrachtet, die auf binären Entscheidungsdiagrammen basieren. Abschließend wird das Potential dieser beiden alternativen Ansätze anhand einer konkreten Hardwareumsetzung einer Multiply-Accumulate Einheit aufgezeigt und die Energieeffizienz dieses Systems mit entsprechenden konventionellen CMOS Umsetzungen verglichen. 1 Inhaltsverzeichnis 1 Einleitung 3 2 Grundlagen der adiabatischen Logik 4 2.1 Energieverluste in konventioneller CMOS Logik . . . . . . . . . . . . . . . . . . . 4 2.2 Adiabatisches Umladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Adiabatische Schaltkreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Geordnete binäre Entscheidungsdiagramme 9 3.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Hardwareumsetzung adiabatischer Schaltkreise . . . . . . . . . . . . . . . . . . . 12 4 Adiabatische Multiply-Accumulate-Einheit 12 4.1 Booth - Recoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Reduktionsstufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 Abschließender Addierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Zusammenfassung 16 Literaturverzeichnis 18 2 1 Einleitung Durch die rasante Entwicklung der Digitaltechnik ist es inzwischen möglich geworden, sehr viele Problemstellungen der digitalen Signalverarbeitung mit kompakten Schaltkreisen in Echtzeit durchzuführen. Dies führte zu einer Vielzahl kleiner tragbarer Geräte wie z.B. MP3-Player und Digitalkameras. Da der Energievorrat dieser Geräte begrenzt ist, nimmt die Bedeutung der Energieeffizienz in diesen Bereichen stark zu. Doch auch in anderen Anwendungsbereichen sind Systeme mit einem minimalen Energieverbrauch vorteilhaft. So z.B. schwer zugängliche Sensoren, aber auch stationäre Systeme die permanent betrieben werden. Ein weiterer Vorteil hoher Energieeffizienz sind Kosteneinsparungen und ein erhöhter Umweltschutz. Das Potential der konventionellen CMOS Schaltkreise ist nahezu ausgereizt, da eine Effizienzverbesserung hier überwiegend durch Verkleinerung der Strukturen und Absenken der Versorgungsspannung erreicht wird. Eine weitere Verkleinerung ist allerdings nur noch in geringem Maße möglich, da die Strukturgrößen schon nahezu die Größenordnung eines Atomdurchmessers erreichen und in diesem Bereich zunehmend störende Quanteneffekte auftreten. Das Verringern der Versorgungsspannung ist durch den Innenwiderstand der Schaltkreise und störendes Rauschen begrenzt. In dieser Ausarbeitung werden einige Ansätze zusammengetragen, die eine deutlich bessere Nutzung der aufgewendeten Energie versprechen. Im Abschnitt 1 werden zunächst die Hauptursachen der Energieverluste in CMOS Schaltungen aufgeführt und die adiabatische Schaltungstechnik vorgestellt, die durch Energierückgewinnung diese Verluste verringern kann. In Abschnitt 2 wird dann auf eine alternative Umsetzung logischer Funktionen durch komplexe logische Gatter eingegangen, die sich effizient in adiabatischer Logik umsetzen lassen. Um die Vorteile dieser Ansätze zu verdeutlichen wird in Abschnitt 3 eine von Suvakovic und Salama entwickelte Multiply-Accumulate Einheit vorgestellt. 3 2 Grundlagen der adiabatischen Logik In diesem Abschnitt werden zunächst die unterschiedlichen Ursachen von Energieverlusten in konventionellen arithmetischen CMOS-Gattern genannt und ihre Ursachen kurz beschrieben. Anschließend werden Methoden und Ansätze vorgestellt, mit denen diese Verluste minimiert oder sogar vollständig eliminiert werden können. Als Grundlage für diesen Abschnitt dient eine Dissertation [2], in welcher auch eine genaue mathematische Analyse der Ansätze durchgeführt wird und die technischen Grundlagen sehr detailliert beschrieben sind. 2.1 Energieverluste in konventioneller CMOS Logik Um die Energieverluste in arithmetischen Schaltungen und deren Ursachen besser zu verstehen, ist es naheliegend, zunächst die Frage zu beantworten, wie viel Energie ausschließlich für eine Berechnung notwendig ist. Die konkrete Hardwareumsetzung und die daraus resultierenden Verluste sollen dabei unberücksichtigt bleiben. Diese Frage wurde bereits 1961 durch Landauer und später 1973 durch Benett untersucht. Dabei stellte sich heraus, dass Informationsverarbeitung, die auf der Verknüpfung von Zuständen basiert grundsätzliche keinen Energieumsatz erfordert. Dies gilt allerdings nur so lange, keine Löschvorgänge stattfinden. Diese Erkenntnis scheint zunächst überraschend, kann jedoch mit Hilfe der Thermodynamik erklärt werden. Zentral ist hierbei der zweite Hauptsatz der Thermodynamik, welcher eine wichtige Aussage über Entropie trifft. Die mathematische Formulierung ist in Gleichung 1 gegeben. dS = dQ dT ≥0 (1) Dabei ist S die Entropie, Q die transportierte Wärmemenge und T die Temperatur. Der zweite Hauptsatz besagt, dass die Entropie eines Systems mit der Zeit nur größer werden kann. Entropie kann dabei als ein Maß für die Unordnung“eines Systems angesehen werden. In der ” Informationstheorie ist die Entropie ein Maß für den Informationsgehalt. Wird nun im Verlauf einer Berechnung Information gelöscht, werden z.B. Speicherelemente in einen vordefinierten Zustand versetzt. Damit nimmt die Unordnung “im System ab und die Entropie verkleinert sich ” (dS ≤ 0). Nach Gleichung 1 bedeutet das aber, dass auch dQ ≤ 0 ist, was bedeutet, dass das System Wärme abgibt, was letztendlich einen Energieverlust bedeutet. Diese Energieverluste werden als nicht adiabatische Energieverluste bezeichnet und treten immer zwingend auf, wenn Information gelöscht wird. Ein Ansatz diese Verluste zu verhindern besteht in der Verwendung reversibler Logik. Dabei wird auf spezielle Gatter zurückgegriffen, bei denen sich aus den Ergebnissen der Berechnungen 4 die Eingabewerte rekonstruieren lassen. Speziell sind hier das Fredkin- und das Toffoligatter zu erwähnen. Durch die Möglichkeit der Rekonstruktion der Eingangswerte wird verhindert, dass während der Berechnung Löschvorgänge auftreten. Allerdings führt diese Methode zu einem erheblich größeren Hardwareaufwand und damit auch zu deutlich größeren Verlusten, die in Zusammenhang mit der technischen Realisierung stehen. Daher eignet sich dieser Ansatz nicht für arithmetische Schaltungen in Signalverarbeitenden Systemen. 2.2 Adiabatisches Umladen Bei einer konkreten Hardwareumsetzung treten zusätzliche Verluste auf, die daraus resultieren, dass die gewünschten idealen Eigenschaften auf Grund verschiedener physikalischer Effekte nicht umgesetzt werden können. Zum einen treten bei elektronischen Schaltkreisen Verluste auf, die aus dem Innenwiderstand der Schaltung resultieren, welcher sich nicht beliebig reduzieren lässt. Die in CMOS-Schaltkreisen verwendeten Transistoren haben z.B. auch im leitenden Zustand einen verbleibenden ohmschen Widerstand, wie auch die verwendeten Leitungen. Ein anderes Problem stellen sogenannte parasitäre Kapazitäten dar. Diese resultieren aus der aktuellen Ladungsverteilung, die während der Betriebszeit eines Bauteils bzw. in dem Fall eines Schaltkreises vorherrscht. Ändert sich nun der Logikpegel am Eingang eines Gatters, entspricht das im Wesentlichen dem Aufladen eines Kondensators über einen ohmschen Widerstand. Diese beiden elektronischen Bauteile zeigen allerdings deutliche Unterschiede in ihrer Widerstandscharakteristik. Ein ohmscher Widerstand R ist zeitlich konstant und der durch ihn fließende Strom IR proportional zur angelegten Spannung UR , wie in Gleichung 2 zu sehen ist. R= UR IR (2) Für die Energie W , die in einem ohmschen Widerstand in Wärme umgesetzt wird, gilt Gleichung 3. W = UR ∗ IR = 5 UR2 R (3) Wird ein Kondensator mit der Kapazität C über einen ohmschen Widerstand R geladen, gilt für die Spannung am Kondensator Gleichung 4. UC = U ∗ exp − t R∗C (4) Die am Kondensator anliegende Spannung UC nimmt mit der Zeit also zunächst sehr stark zu und läuft dann asymptotisch gegen die Gesamtspannung U . Da für diese Gesamtspannung allerdings Gleichung 5 gilt, nimmt die am ohmschen Widerstand anliegende Spannung entsprechend ab. Dieses Verhalten ist in Abbildung 1 dargestellt. U = UR + UC (5) Abbildung 1: Spannungsverlauf am ohmschen Widerstand (UR ) und am Kondensator (UC ) beim Ladevorgang eines Kondensators [4] In heutigen digitalen Systemen findet der Spannungswechsel bei Änderung eines Logikpegels unmittelbar, also sprunghaft statt. Berücksichtigt man nun Gleichung 3 und Abbildung 1 wird ein großer Nachteil dieser Schaltungsweise offensichtlich. Wenn die Kapazitäten nicht geladen sind und ein sprunghafter Spannungswechsel stattfindet, fällt zu Beginn des Ladevorgangs nahezu 6 die gesamte Versorgungsspannung über dem ohmschen Widerstand ab. Da der Energieumsatz in diesem allerdings quadratisch von der Spannung abhängt, treten in dieser Phase deutliche Energieverluste auf. Dieses Problem kann allerdings relativ leicht mit einer angepassten Versorgungsspannung behoben werden. Um die Energieverluste zu minimieren ist es nötig, zu Beginn des Ladevorgangs eine kleine Spannung anzulegen, die dann mit der Zeit größer wird. Es kann gezeigt werden, dass sich für einen sehr effizienten Ladevorgang eine rampenförmige Spannung, wie in Abbildung 2 dargestellt, eignet. Zusätzlich muss noch bedacht werden, dass diese Versorgungsspannung einfach zu erzeugen ist, um Verluste in der Energiequelle zu vermeiden. Für reale Anwendungen sind daher sinusförmige Versorgungsspannungen, wie in Abbildung 3 dargestellt, wesentlich geeigneter, da sie sich durch einen LC-Schwingkreis einfach erzeugen lassen und einen hohen Wirkungsgrad erreichen. Abbildung 2: rampenförmige Abbildung 3: sinusförmige Span- Spannung nung Je länger die Ladezeit der Kapazitäten ist, desto größer ist auch die erreichbare Energieeffizienz beim Aufladen. Hierdurch ergibt sich allerdings auch ein Nachteil des adiabatischen Umladens, da durch die längeren Umladezeiten die erreichbaren Taktraten begrenzt sind. 7 2.3 Adiabatische Schaltkreise In der konventionellen CMOS-Logik wird in jedem Takt die Schaltung zur Masse entladen. Damit ist aber auch die Energie, die auf Grund der Kapazität in der Schaltung gespeichert wird, verloren. Bei genauerer Betrachtung fällt allerdings auf, dass es nicht zwingend nötig ist, die Schaltung in jedem Takt umzuladen. Ein Beispiel ist in der Tabelle in Abbildung 4 dargestellt. Wenn sich das Ausgangssignal zwischen zwei Takten nicht ändert, kann also Energie eingespart werden. Abbildung 4: notwendige Umladevorgänge [2] Der Grundgedanke adiabatischer Schaltkreise ist es, Energieeffizienz dadurch zu erreichen, dass entweder unnötige Umladevorgänge verhindert werden oder die Energie, die zum aufladen der Gatterkapazität verwendet wurde aus dem Gatter wiederzugewinnen und weiter zu nutzen. Um diese Ziele zu erreichen, wurden verschiedene Ansätze entwickelt, die hier allerdings nur kurz genannt werden sollen, da die hier vorgestellte Schaltung eine andere Umsetzung verwendet. Eine Möglichkeit der Energierückgewinnung bieten retraktile Kaskaden. Bei diesen wird in einer Folge von Gattern eine Berechnung durchgeführt und das Ergebnis am Ende in ein nicht adiabatisches Register kopiert. Anschließend wird die Berechnung noch einmal rückwärts durchgeführt, um die benötigten Umladevorgänge rückgängig zu machen und so den Ausgangszustand wieder herzustellen. Die Berechnung erfordert dann nur den Energieaufwand, der nötig ist, um das nicht adiabatische Gatter aufzuladen. Der Nachteil dieser Methode ist allerdings offensichtlich, da jede Berechnung nun den doppelten Zeitaufwand benötigt. Ein anderer Ansatz sind adiabatische Logigfamilien, die im wesentlichen darauf beruhen, die Transistoren der Gatter so zu verknüpfen, dass diese in einem Takt nicht vollständig entladen werden, sondern einen Teil der Energie speichern und so in den Folgetakten nur noch teilweise aufgeladen werden müssen. Beispiele solcher Familien sind ECRL, TSEL, SCAL oder DAMOS. Genauere Beschreibungen dieser Ansätzen finden sich in [2] 8 3 Geordnete binäre Entscheidungsdiagramme Um die speziellen Eigenschaften der adiabatischen Logik auszunutzen, sind alternative Strategien für den Aufbau von Schaltkreisen erforderlich. Komplexität und Größe der verwendeten Gatter sind eher zweitrangig, da die entstehenden Verluste durch adiabatisches Umladen minimiert werden können. Das Löschen von Informationen hingegen muss soweit wie möglich vermieden werden. Es sollten also zum Beispiel kaum Latches und Pipelinestrukturen verwendet werden. Um diese Ziele zu erreichen, können geordnete binäre Entscheidungsdiagramme (OBDD) verwendet werden. Dabei handelt es sich um eine Graphendarstellung logischer Funktionen, welche dann in dieser Form mit speziellen Algorithmen effizient ausgewertet und manipuliert werden können. Zudem sind sie in vielen Fällen kompakt und einfach zu handhaben und lassen sich leicht mit adiabatischen Gattern umsetzen. Daher soll in diesem Abschnitt etwas genauer auf geordnete binäre Entscheidungsdiagramme eingegangen werden. Diese Darstellungsform wurde von Bryant entwickelt und ist in [2] ausführlich dargestellt und beschrieben. 3.1 Definition Ein binäres Entscheidungsdiagramm ist ein gewurzelter, gerichteter, azyklischer Graph mit Knoten V. Dabei gibt es zwei verschiedene Arten von Knoten: Terminalknoten und nichtterminale Knoten. Terminalknoten, welche die Blätter sind und entweder den Wert 1 oder den Wert 0 besitzen. Nichtterminale Knoten besitzen einen Index I[1 . . . n] und zwei Kindknoten, die mit lov(v) und high(v) bezeichnet werden. Hat ein nichtterminaler Knoten v einen kleineren Index als ein Zweiter nichtterminaler Knoten v 0 , befindet er sich auch weiter oben im Graph, da Gleichung 6 gilt. v 0 v ⇔ I(v 0 ) > I(v) (6) Soll eine logische Funktion als OBDD dargestellt werden, stehen die Knoten mit Index i für die Variable xi der logischen Funktion. Um den Funktionswert für eine bestimmte Belegung zu erhalten wird folgendermaen vorgegangen : Die Auswertung wird bei der Wurzel begonnen. Bei der Auswertung eines beliebigen Knotens vi wird das Kind low(vi ) gewhlt, wenn die Variable xi in der Belegung den Wert 0 hat. Entsprechend wird das Kind high(vi ) gewählt, wenn die Variable xi mit dem Wert 1 belegt ist. Der Wert des Terminalknotens,der auf diese Weise erreicht wird, entspricht dem Wert der logischen Funktion mit der gewählten Belegung. 9 Einfache Beispiele für geordnete binäre Entscheidungsdiagramme sind in den Abbildungen 5 und 6 gegeben. Abbildung 6: einfache logische Funktion [3] Abbildung 5: kleinstes OBDD [3] 3.2 Eigenschaften Graphen, die entsprechend dieser Definition aufgebaut werden, weisen spezielle Eigenschaften auf. Zwei dieser Eigenschaften haben wichtige Folgen für OBDDs, die als adiabatische Schaltkreise in Hardware umgesetzt werden sollen und werden daher im Folgenden beschrieben. Einen großen Vorteil bietet die Möglichkeit, binäre Entscheidungsgraphen zu reduzieren. Dabei werden isomorphe Teilgraphen entfernt und Pfade von Knoten, die bei beliebigem Variablenwert zum gleichen Knoten führen zusammengefasst. Ein Beispiel ist in den Abbildungen 7 und 8 gezeigt. Der so entstandene reduzierte Graph ist eine kanonische Darstellung der logischen Funktion, das heißt er ist eindeutig. 10 Abbildung 7: OBDD vor der Re- Abbildung 8: OBDD nach der duktion [3] Reduktion [3] Die zweite Eigenschaft schränkt die Nutzungsmöglichkeiten und die Flexibilität der binären Entscheidungsdiagramme ein. Es zeigt sich, dass die Komplexität eines Graphen von der Anordnung der Eingangsvariablen abhängt, was als Ordnungsproblem bezeichnet wird. Ein Beispiel ist in den Abbildungen 9 und 10 gezeigt. Abbildung 9: OBDD mit optima- Abbildung 10: OBDD ler Anordnung der Eingangsva- schlechter Anordnung riablen [3] Eingangsvariablen [3] mit der Es lässt sich kein Algorithmus finden, der dieses Ordnungsproblem schnell lösen kann. Allerdings kann ein Mensch mit etwas Erfahrung schnell gute Lösungen finden. Daher kann dieses Problem auch maschinell mit geeigneten Heuristiken gut gelöst werden. Das trifft jedoch nicht für beliebige Funktionen zu, da sich gezeigt hat, dass es Funktionen gibt, die sich nicht gut ordnen lassen. Die Größe eines binären Entscheidungsdiagramms einer solchen Funktion wächst dann immer exponentiell mit der Anzahl der Variablen. Bryant führt hier als Beispiel die Integermultiplikation an und beweist im Anhhang, dass ein binärer Entscheidungsgraph für diese Funktion eine exponentielle Größe in Abhängigkeit der Faktorenlänge besitzt. 11 3.3 Hardwareumsetzung adiabatischer Schaltkreise Die binären Entscheidungsgraphen bieten eine gute Möglichkeit, adiabatische Schaltkreise in Hardware umzusetzen. Um eine gegebene Funktion zu realisieren reicht es, die Knoten des entsprechenden OBDD als Schalter mit Hilfe von Transistoren zu realisieren. Diese Schaltknoten werden dann von den Signalen angesteuert, die für die entsprechende Variable stehen. Zunächst muss die Kapazität des gesamten OBDD Schaltkreises beim Einschalten aufgeladen werden. Bei einer konkreten Berechnung wird dann allerdings nur der Pfad entladen, der durch die Belegung im Graphen vorgegeben ist. Diese änderung kann dann an den Ausgängen detektiert werden. Die Kapazität aller anderen Knoten bleibt unverändert. Es werden also nur die Kapazitäten umgeladen, die für die Berechnung wirklich nötig sind. Daher stellen binäre Entscheidungsdiagramme eine Hardwareumsetzung adiabatischer Schaltkreise dar. 4 Adiabatische Multiply-Accumulate-Einheit Ein zentraler Bestandteil in der digitalen Signalverarbeitung stellen digitale Filter dar. Mit diesen Filtern ist es möglich, gezielt einzelne Frequenzen in einem Signal zu verstärken bzw. abzuschwächen und so zum Beispiel störende Effekte wie etwa Rauschen zu minimieren oder sogar ganz zu entfernen. Eine Filtergleichung die dazu in der Lage ist, erfordert das Aufsummieren von Produkten, wie in Gleichung 7 erkennbar ist. Hierbei ist m die Anzahl der Stufen, c die Filterkoeffizienten, x das Eingangssignal und y das berechnete Ausgangssignal. y[k] = m X c[i] ∗ x[k − i] (7) i=0 Um diese Berechnungen möglichst schnell durchführen zu können, werden Multiply-AccumulateEinheiten (MAC) verwendet, die eine Multiplikation und eine Addition in einem Takt durchführen können. Daher sind diese Bauteile die Hauptursache für die Energieverluste in Signalverarbeitenden Systemen und eine Energierückgewinnung ist hier besonders lohnend. Der Aufbau einer MAC-Einheit ist in Abbildung 11 dargestellt. Zunächst wird die Anzahl der Partialprodukte in einer Recodierstufe verringert. Anschließend werden die verbleibenden Produkte in einer Kompressorstufe auf zwei Zwischenergebnisse reduziert, welche abschließend mit einem Addierer zusammengefasst werden. Im folgenden soll ein Überblick darüber gegeben werden, wie sich dieser Aufbau mittels adiabatischer Schaltkreise umsetzen lässt, wobei nur auf das Grundprinzip eingegangen wird. Eine konkrete Hardwareumsetzung erfordert zusätzliche Anpassungen in der Ansteuerung und Ergebnisdetektion der adiabatischen Schaltkreise, welche in [1] im Einzelnen aufgeführt sind. 12 Abbildung 11: Schematischer Aufbau einer Multiply-Accumulate-Einheit 4.1 Booth - Recoder Um den anfänglichen Aufwand an erforderlichen Rechenoperationen zu verkleinern, werden zunächst die ursprünglichen Faktoren der Multiplikation mit dem Verfahren von Booth umkodiert. Dabei kann die Anzahl der Partialprodukte von n2 auf ≈ 21 n2 reduziert werden. Klassisch wird dieses Verfahren mit einem Recodierer und zwei Multiplexern umgesetzt, wie in Abbildung ?? dargestellt.Diese bestehen dabei aus mehreren kleineren logischen Gattern und sind in einer Pipelinestruktur umgesetzt, was eine zusätzliche Anzahl Zwischenspeicher erfordert. Für die Umsetzung mittels adiabatischer Logik wird ein binäres Entscheidungsdiagramm verwendet, wie in Abbildung 13 dargestellt. Dieses OBDD realisiert die gleiche Funktionalität, wie ein klassischer Rekodierer. Die Umkodierung der Eingabe findet dabei in den ersten drei Ebenen statt. Die 4. Ebene ist für die rekodierten Werte von −2, −1, 0, 1, 2 zuständig und die Multiplexer werden durch die restlichen Knoten umgesetzt. 13 4.2 Abbildung 12: Booth-Recoder in Abbildung 13: klassischer Umsetzung Booth-Recoder adiabatischer Reduktionsstufe Die Reduktion der verbleibenden Partialprodukte wird klassisch mit Hilfe von Wallace oder Dadda Bäumen erreicht, wie in Abbildung 14 dargestellt. Diese bestehen aus sehr vielen einzelnen Addierern, also sehr vielen kleinen Gattern. Sie können massiv parallel arbeiten, enthalten in der Pipelineversion jedoch auch viele Zwischenspeicher. Abbildung 15: Reduktion von Abbildung 14: Wallace-Tree für 15x15 Bit mittels 15:4 Zähler 15x15 Bit und Addierern Adiabatisch wird die Reduktion mit einem komplexen Zähler realisiert, der in drei Stufen arbeitet und dabei einen 15:4 Zähler und zwei Volladdierer verwendet. Die Komplexität der Schaltung nimmt in dieser Umsetzung auch nur linear in der Eingabelänge zu. 14 Abbildung 16: Aufbau eines Zählers mit OBDDs 4.3 Abschließender Addierer Um auch den abschließenden Addierer möglichst effizient in adiabatischer Technik umsetzen zu können, muss vor allem darauf geachtet werden, dass wenige Pipelinestufen verwendet werden, wenn sie auf Grund der Bitweite nötig sind, und dass die Höhe eines OBDD, dass die Addition realisieren kann, möglichst gering ist. Nach der Diskussion verschiedener Ansätze, wird in [1] festgestellt, dass es optimal ist, einen 2-stufigen carry-select Addierer mit minimaler Transistorhöhe zu verwenden, wie in Abbildung 17 dargestellt. Abbildung 17: Aufbau des abschließenden CSA 15 5 Zusammenfassung Es ist schon seit längerem bekannt, dass auf Grund der physikalischen Prinzipien, die der Informationsverarbeitung zu Grunde liegen grundsätzlich keine Energie notwendig ist, um diese durchzuführen, sofern keine Löschvorgänge stattfinden. Um diese Tatsache ausnutzen zu können ist es allerdings notwendig, neue Technologien für die Hardwareumsetzung zu verwenden. Einerseits muss dabei berücksichtigt werden, dass unabhängig von der Theorie Energieverluste in realen Schaltungen auftreten, da sich keine idealen Bedingungen umsetzen lassen. Um diese Verluste zu minimieren, muss der Lade- und Entladevorgang von Gattern entsprechend angepasst werden. Diese Anpassung wird als adiabatisches Umladen bezeichnet und lässt sich näherungsweise schon mit sehr einfachen Spannungsverläufen, wie zum Beispiel einem Sinus, vergleichsweise einfach umsetzen. Andererseits müssen Löschvorgänge weitestgehend vermieden werden. Dazu sind im Laufe der Zeit verschiedene Ansätze, wie zum Beispiel adiabatische Logikfamilien, entwickelt worden. Die hier vorgestellte MAC-Einheit verwendet als Grundlage jedoch eine spezielle graphische Darstellung logischer Funktionen. Diese gewurzelten, gerichteten und azyklischen Graphen werden als binäre Entscheidungsdiagramme bezeichnet und sind in vielen Fällen kompakt und einfach zu handhaben. Zudem können sie einfach und mit vergleichsweise wenigen Transistoren in Hardware umgesetzt werden. Eine MAC-Einheit besteht aus drei Stufen : einem Rekodierer, einem Kompressor und einem abschließenden Addierer. Sie stellt einen Hauptbestandteil in signalverarbeitenden Systemen dar und ist auch für einen Großteil der auftretenden Energieverluste verantwortlich. Werden die Stufen jedoch mit Hilfe adiabatischer Schaltkreise umgesetzt, die auf OBDDs basieren, sind erhebliche Energie- und Platzeinsparungen möglich, wie in der Tabelle zu erkennen ist. Ein Nachteil der hierfür in Kauf genommen werden muss ist, dass die Taktraten auf Grund der verwendeten Technologie stärker eingeschränkt sind, als es bei CMOS-Logik der Fall ist. 16 CMOS adiabatisches vorgestelltes MAC MAC Design 17,6 1,57 0,73 - 1,12 0,28 Pipelinestufen 2 8 3 Latenz (Takte) 2 4 1,5 100 66 66 - 773 190 58000 14500 10450 Gesamtverluste (pJ) nicht adiabatische Verluste (pJ) max. Frequenz (MHz) Latches Transistoren Der hier vorgestellte Ansatz bietet also keine uneingeschränkte überlegenheit gegenüber konventionellen Systemen. Wenn eine niedrigere Taktrate akzeptiert werden kann und die Energieeffizienz eine wichtige Rolle für das System spielt, können mit der vorgestellten Technik jedoch deutliche Vorteile gewonnen werden. 17 Literatur [1] Suvakovic, Dusan ; Salama, Andre T. : Energy Efficient Adiabatic Multiplier-Accumulator Design, Journal of VLSI Signal Processing : 33, 83-103, 2003 [2] Schlachta, Clemens : Dissertation : Ein Verfahren zur Verbesserung der Energieeffizienz durch Ladungsrückgewinnung in Digitalschaltungen, 2007 [3] Bryant, Randal E. Graph-Based Algorithms for Boolean Function Manipulation, IEEE Transactions on Computers, C-35-8, 677-691, 1986 [4] Wikibooks : Bauelemente : R-C-L : Kondensatoren http://de.wikibooks.org/wiki/Bauelemente/ R-C-L/ Kondensatoren 18