Synthesis for Low Power Design

Werbung
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
Synthesis
for
Low Power Design
Prof. Thomas Troxler
Hochschule Rapperswil
Abstract
Power optimization at high levels of abstraction has a significant impact
on reduction of power in the final gate-level design. At this lecture we
would like to illuminate the aspects of different power types and the
winings of clock gating which is an important high-level technique for
reducing power. Also the effect of clock gating to the testability would be
a subject.
 Th. Troxler
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
1. Arten des Stromverbrauchs
Generell wird der Stromverbrauch einer digitalen Schaltung in einen statischen und dynamischen Anteil aufgeschlüsselt.
1.1. Statischer Stromverbrauch
Als statischer Stromverbrauch wird derjenige Strom bezeichnet, den ein Gatter im inaktiven
oder eben statischen Betrieb benötigt. Er setzt sich aus zwei Komponenten zusammen. Einerseits verzeichnet auch ein gesperrter Transistor einen minimalen Kanalstrom zwischen Source
und Drain, andererseits ist zwischen der Diffusionsschicht und dem Substrat eine parasitäre
Diode vorhanden. Der statische Stromverbrauch wird oft auch als Leckstrom bezeichnet. Im
Vergleich zum dynamischen Stromverbrauch kann er praktisch vernachlässigt werden.
1.2. Dynamischer Stromverbrauch
Als dynamischer Stromverbrauch wird derjenige Strom bezeichnet, den ein Gatter im aktiven
oder eben dynamischen Betrieb benötigt. Dabei ist die Schaltung immer dann aktiv, wenn sich
die Spannung an einem Netz ändert. Diese Spannungsänderung kann dabei auch so klein
sein, dass der logische Wert des Netzes derselbe bleibt.
1. Stromverbrauch durch Schaltvorgänge
Der Stromverbrauch durch Schaltvorgänge ist auf das Laden und Entladen der Lastkapazitäten am Ausgang einer Zelle zurückzuführen. Diese Lastkapazität setzt sich aus der Kapazität des angeschlossenen Netzes und der Gate-Kapazität der an diesem Netz
angeschlossenen Eingänge zusammen. In einer aktiven CMOS-Schaltung macht er zwischen 70 und 90% des Gesamtverbrauchs aus.
2. Stromverbrauch durch zellinterne Vorgänge
Beim Schalten eines Gates wird der eine Transistor in den leitenden und der andere in den
Sperrenden Zustand gebracht. Dabei können kurzzeitig beide Transistoren gleichzeitig leitend sein. Bei einer steilen Flanke des Eingangssignales ist diese Dauer sehr kurz. Wenn
die Flanke aber relativ flach ausgebildet ist, dann kann der Anteil bis gegen 30% des
Gesamtstromverbrauchs ausmachen.
Die folgende Figur soll die verschiedenen Arten des Stromverbrauchs etwas verdeutlichen.
Bild 1
Die verschiedenen Komponenten des Stromverbrauchs (Quelle Synopsys)
 Th. Troxler
Arten des Stromverbrauchs
Seite 1
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
2. Modelle für die Ermittlung des Stromverbrauchs
Damit ein Synthesewerkzeug eine Schaltung in Bezug auf den Stromverbrauch minimieren
kann, benötigt es Informationen über den Verbrauch der einzelnen Zellen. Er muss dazu in die
Technologiebibliothek eingebunden sein. Durch die gezielte Auswahl der einzelnen Zellen beim
Technologiemapping kann der Stromverbrauch der Gesamtschaltung minimiert werden.
2.1. Statischer Stromverbrauch
Zur Berechnung des gesamten Leckstroms einer Schaltung werden einfach die Leckströme
der einzelnen Zellen addiert.
Bild 2
Berechnung des statischen Stromverbrauchs der Gesamtschaltung (Quelle Synopsys)
Der Stromverbrauch durch Leckströme macht normalerweise ca. 1% des Verbrauches einer
aktiven Schaltung aus. Er gewinnt also nur bei Schaltungen an Bedeutung, die jeweils sehr
lange in einem inaktiven Zustand verweilen.
2.2. Dynamischer Stromverbrauch
Der dynamische Stromverbrauch setzt sich aus der Summe des Verbrauchs durch Schalt- und
zellinterne Vorgänge zusammen.
1. Stromverbrauch durch zellinterne Vorgänge
Der interne Stromverbrauch einer Zelle setzt sich aus dem Verhalten der Eingänge und des
Ausgangs zusammen. Dabei wird, basierend auf der Schalthäufigkeit der Eingänge, die
Schaltgeschwindigkeit des Ausgangs ermittelt. Diese wiederum dient zusammen mit der
Lastkapazität als Basis für die Ermittlung der Energie die benötigt wird, um den Ausgang
der Zelle umzuschalten.
Bild 3
Modell für die Berechnung des internen Stromverbrauchs (Quelle Synopsys)
 Th. Troxler
Modelle für die Ermittlung des Stromverbrauchs
Seite 2
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
Der Wert für die benötigte Energie wird mittels Interpolation zwischen Stützwerten aus einer
zweidimensionalen Tabelle gewonnen. Die Tabelle selbst muss mittels einer Messreihe
erstellt werden.
Bild 4
Zweidimensionale Tabelle zur Ermittlung der benötigten Schaltenergie (Quelle Synopsys)
2. Stromverbrauch durch Schaltvorgänge
Zur Berechnung des Verbrauchs durch Schaltvorgänge wird die folgende Formel verwendet.
Bild 5
Berechnung des Stromverbrauchs durch Schaltvorgänge (Quelle Synopsys)
Dabei wird die Lastkapazität eines Netzes aus der parasitären Kapazität der Verbindungsleitung und den Gate-Kapazitäten aller angeschlossenen Eingänge bestimmt. Da die parasitäre Kapazität stark vom Layout einer Schaltung abhängig ist, dieses zum jetzigen
Zeitpunkt aber noch nicht vorhanden ist, muss auf ein sogenanntes Wire-Load-Modell
zurückgegriffen werden. Das Wire-Load-Modell ist ein Modell für die Verbindungsleitung. Es
wurde aus statistischen Auswertungen früherer Designs gewonnen. Zur Auswahl des richtigen Modelles werden die Grösse des Blockes und die Anzahl Eingänge herangezogen.
3. Ermittlung der Schaltaktivitäten
Wie wir gesehen haben spielt die Aktivität einer Schaltung eine zentrale Rolle beim Stromverbrauch. Sie kann nur mit Hilfe einer Simulation ermittelt werden. Dabei wird die Schaltaktivität
jedes einzelnen Netzes aufgezeichnet. Diese Daten müssen anschliessend dem Synthesewerkzeug zur Verfügung gestellt werden. Damit dieser Schritt Sinn macht, müssen die Stimulis
für die Simulation möglichst genau mit dem Verhalten in der realen Umgebung übereinstimmen.
 Th. Troxler
Ermittlung der Schaltaktivitäten
Seite 3
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
4. Clock-Gating auf der RT-Ebene
Wie wir gesehen haben spielt beim Stromverbrauch einer digitalen Schaltung der dynamische
Anteil eine übergeordnete Rolle. Je häufiger z.B. ein Flipflop getacktet wird, umso grösser ist
sein Stromverbrauch.
Hinweis:
Bei synchronen Systemen verändert sich der Stromverbrauch praktisch linear mit der Taktfrequenz.
Aufgrund dieser Tatsache hat sich eine Synthesemethode ergeben, bei der spezifisch der Takt
von einzelnen Speicherzellen abgeschaltet wird. Diese Methode wird als Clock-Gating
bezeichnet.
4.1. Für welche Art von Schaltungen ist das Clock-Gating geeignet?
Das Clock-Gating ist besonders für Schaltungen geeigent, bei denen Registerbanken vorkommen. Unter Registerbank versteht man eine Gruppe von Flipflops, die eine gemeinsame
Ansteuerung besitzen. Sie entstehen wenn in einer HDL-Beschreibung z.B. Zähler verwendet
oder Werte gespeichert werden. Falls der Zählerstand oder der zu speichernde Wert verändert
werden soll, dann muss die entsprechende Registerbank neu gesetzt werden, ansonsten muss
sie den alten Inhalt beibehalten. Die Synthese verwendet dazu einen Multiplexer, der entweder
den Speicherinhalt oder den neuen Wert dem Eingang zuführt.
Bild 6
Setzen des Einganges mittels Multiplexer (Quelle Synopsys)
Der Nachteil dabei ist, dass mit jeder Taktflanke Strom verbraucht wird, obwohl sich am Speicherinhalt gar nichts ändert. Zusätzlich benötigt auch der Multiplexer Strom. Wenn es nun
gelingt das Taktsignal an der Registerbank gezielt ein- und auszuschalten, dann könnte man
sicherstellen, dass das Taktsignal nur noch dann durchkommt, wenn der Speicherinhalt verändert werden muss. Damit würde nicht nur die Registerbank weniger Strom verbrauchen, auch
der Multiplexer würde entfallen. Es befindet sich so auch ein Element weniger im Datenpfad,
was sich wiederum positiv auf dessen zeitliches Verhalten auswirkt.
4.2. Latchbasierendes Clock-Gating
In der folgenden Figur wird der Takt mittels eines AND-Gatters ein- und ausgeschaltet. Zur
Ansteuerung des AND-Gatters wird ein Latch verwendet. Dieses wird dann in den transparenten Zustand geschaltet, wenn das Taktsignal einen tiefen Pegel aufweist. Somit wird verhindert,
dass ein in der Ansteuerlogik auftretender Hazard den Registerinhalt verändern kann.
 Th. Troxler
Clock-Gating auf der RT-Ebene
Seite 4
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
Bild 7
Latchbasierendes Clock-Gating (Quelle Synopsys)
Die Ansteuerlogik vor dem Latch (Signal EN)hat sich für das Clock-Gating nicht verändert.
4.3. Latchfreies Clock-Gating
Mittels latchfreiem Clock-Gating kann gegenüber dem latchbasierendem Clock-Gating nochmals Strom und auch Siliziumfläche eingespart werden. Dafür hat es einen schwergewichtigen
Nachteil. Das EN-Signal muss mit Sicherheit vor der fallenden Taktflanke stabil sein. Damit halbiert sich die für die Ansteuerlogik zur Verfügung stehende Laufzeit.
Hazard
Bild 8
Latchfreies Clock-Gating (Quelle Synopsys)
5. Testbarkeit
Natürlich muss auch ein Design testbar sein, bei dem eine Low Power Synthese durchgeführt
wurde. Durch die Einführung des Clock-Gatings haben wir das Taktsignal der entsprechenden
Register vom externen Zugriff abgetrennt. Dieser Zugriff ist aber notwendiger Bestandteil für
einen Test mittels der Scan-Path-Methode.
Ein Flipflop beeinflusst die Testbarkeit in zwei Bereichen. Einerseits muss die Ansteuerlogik
und der Datenpfad vor dem Flipflop, andererseits die Logik nach dem Flipflop überprüft werden
können.
 Th. Troxler
Testbarkeit
Seite 5
HOCHSCHULE
RAPPERSWIL
HSR
10. Oktober 2000
5.1. Einführung eines Kontrollpunktes
Die Überprüfung der Logik nach dem Flipflop und des Datenpfades vor ihm kann schon mittels
eines sehr geringen Aufwandes sichergestellt werden. Dazu muss nur die Möglichkeit gewährt
werden, das Flipflop in die Scankette zu integrieren und ihm während des Schiebens den Takt
zuzuführen. Dies geschieht am einfachsten mittels eines OR-Gatters mit dessen Hilfe das
SCAN_ENABLE Signal das Clock-Gating übersteuern kann.
Bild 9
Kontrollpunkt zur Übersteuerung des Clock-Gatings (Quelle Synopsys)
5.2. Einführung eines Beobachtungspunktes
Grösser wird der Aufwand, wenn auch die Ansteuerlogik für das Flipflop getestet werden soll.
Dazu muss sie von aussen beobachtet werden können. Dies geschieht unter Einsatz eines
XOR-Trees mit einem Flipflop am Ausgang.
Bild 10 Beobachtung der Ansteuerlogik mittels eines XOR-Trees (Quelle Synopsys)
Mittels des XOR-Trees können beliebig viele Registerbanken zusammengeschaltet werden. Im
Normalbetrieb benötigt der XOR-Tree nur den Leckstrom, da sowohl seine ENL-Eingänge wie
auch der Takt des Ausgangsflipflops mittels des TEST_MODE Signals abgeschaltet werden.
 Th. Troxler
Testbarkeit
Seite 6
Herunterladen