-
Die
vorliegende Erfindung betrifft eine Schaltanordnung zur Aktivierung
eines Schaltungsblocks in einer elektronischen Schaltung, die mehrere Schaltungsblöcke aufweist
und ein Verfahren zur Aktivierung eines ausgeschalteten Schaltungsblocks. Die
Erfindung findet insbesondere, jedoch nicht ausschließlich Anwendung
bei integrierten Schaltungen, um Leckstromverluste zu minimieren.
-
Um
diese Leckstromverluste zu reduzieren, besteht die Möglichkeit
zeitweise nicht benötigte Schaltungsblöcke der
elektronischen Schaltung, beispielsweise einer digitalen CMOS-Schaltung
abzuschalten. Hierfür
wird ein so genannter Sleep-Transistor oder Power-Switch zwischen
den abzuschaltenden Schaltungsblock und wahlweise VDD oder
VSS geschaltet. Der Sleep-Transistor oder
Power-Switch kann entweder ein einzelner, lokalisierter Fingertransistor
oder aber verteilt über
den Schaltungsblock als Parallelschaltung kleiner Schalter ausgeführt sein.
Im eingeschalteten Zustand stellt der Power-Switch einen parasitären Widerstand im Spannungsversorgungsnetz
dar. Der Spannungsabfall über
diesen Widerstand reduziert die effektive Betriebsspannung für die Schaltungsblöcke, wodurch
die Schaltgeschwindigkeit reduziert wird. Um diesen negativen Effekt klein
zu halten, muss der Power-Switch
ausreichend groß dimensioniert
werden, um den Spannungsabfall über
den parasitären
Widerstand des Schalters klein zu halten. Im ausgeschalteten Zustand
wird der Sleep-Transistor
abgeschaltet. Da dieser üblicherweise
eine geringere Gesamtweite als die geschaltete Logik und zudem nach
Möglichkeit
auch eine höhere
Einsatzspannung als die Logikvorrichtungen aufweist, wird der Gesamtleckstrom
hierdurch drastisch reduziert. Da die Gesamtheit der Logiktransistoren
einen deutlich höheren
Leckstrom verursachen, wird das geschaltete (virtuelle) Betriebspotenzial
in Richtung des nicht geschalteten Betriebspotenzials umgeladen,
bis sich die Leckströme
in Logik und dem Schalter angleichen. Dies bedeutet, dass bei Verwendung
eines NMOS-Sleep-Transistors zwischen dem Logikblock und VSS das virtuelle Potenzial VSS (VVSS) Richtung VDD floatet.
Bei Verwendung eines PMOS-Sleep-Transistors entleert sich das virtuelle VDD-Potenzial (VVDD)
in Richtung VSS. Bei diesem Vorgang entladen
sich die in der Schaltung vorhandenen inneren Kapazitäten, und
der Schaltungsblock verliert seinen inneren logischen Zustand. Soll
der Schaltungsblock aus dem deaktivierten Zustand wieder in den
aktivierten Zustand gebracht werden, müssen seine inneren Kapazitäten wieder
aufgeladen werden, was zu einem verstärkten Stromfluss führt. Während des
Wiedereinschaltvorganges treten ebenfalls starke unkontrollierte
Schaltaktivitäten (Glitches)
auf, die zusätzlich
zum Ladestrom den Stromfluss in den Versorgungsleitungen verursachen.
Der Gesamtstrom beim Einschalten eines Schaltungsblocks ist demzufolge
kurzzeitig sehr hoch, was zu einem merklichen Spannungsabfall auf dem
Spannungsversorgungsnetz führt.
Dadurch bricht die Betriebsspannung, die von den anderen, benachbarten
Schaltungsblöcken
gesehen wird, ein. Die kurzfristig reduzierte Spannungsversorgung
führt zu
geringeren Stromflüssen,
was zu einer kurzzeitigen Reduktion der Schaltgeschwindigkeit führt. Diese
Reduktion der Schaltgeschwindigkeit kann zu Fehlfunktionen durch
Timing-Verletzungen
im kritischen Pfad führen,
was zu Fehlfunktionen bzw. zu einem Systemabsturz führen kann.
Jedoch ist ein Verlust von Daten, die in den FlipFlops der Blöcke gespeichert
sind für
ein sinnvoll dimensioniertes Versorgungsnetz nicht zu erwarten.
-
Der
durch das Wiedereinschalten eines Schaltungsblocks bedingte Spannungseinbruch kann
nicht durch Regelung der Spannungsversorgung vermieden werden, da
die Einschaltstromspitzen viel geringere Zeitkonstanten als der
Spannungsregler besitzen. Ein Spannungsregler wäre zu träge, um diese Stromschwankungen
abzufangen.
-
Eine
kapazitive Pufferung der Spannungsversorgung ist zwar prinzipiell
möglich,
jedoch wären hierfür sehr große Kapazitäten auf
dem Chip der elektronischen Schaltung notwendig, deren Flächenverbrauch
nicht praktikabel ist.
-
Im
Stand der Technik ist es bekannt, diesen Spannungseinbruch dadurch
zu reduzieren, dass das Schaltelement zum Wiedereinschalten, welches physikalisch
immer aus einer Parallelschaltung einzelner Transistoren besteht,
in diskreten Schritten eingeschaltet wird. Diese Teilschalter werden
nacheinander eingeschaltet, um den maximalen Strom auf den Sättigungsstrom
der Teilschalter zu begrenzen. Dies bedeutet jedoch, dass für diese
sequenzielle Ansteuerung zusätzlich
eine nicht abgeschaltete Logik notwendig ist, die die Einschaltsequenz
erzeugt und die Teilschalter ansteuert. Diese eingeschaltete Logik
muss in eigentlich abgeschalteten Schaltungsblöcken arbeiten, was die Verdrahtung
dieser Logik verkompliziert. Ein weiterer Nachteil besteht darin, dass
sich die Wiedereinschaltzeit automatisch auf ein Vielfaches der
Periodendauer des Systemtakts erhöht, was eine Anwendung der
Blockabschaltung für
kurze Zeiten in kleineren Schaltungsblöcken erschwert. Wenn Blöcke, wie
in Zukunft notwendig sein wird, auch für sehr kurze Zeiten abgeschaltet
werden sollen, ist es notwendig, diese Blöcke funktionell auch schnell
wieder zur Verfügung
zu haben, wenn erkannt wird, dass sie benötigt werden. Aus diesem Grund
ist die im Stand der Technik oben erwähnte lange Einschaltzeit von
Nachteil. Die aktuell verwendeten Mikroschalter der Außeneinschalteinrichtungen
weisen eine Gesamtweite der enthaltenen Transistoren von ca. 10 μm auf. Der
Sättigungsstrom durch
diesen Schalter beträgt
beim Wiedereinschalten bereits 5-10 mA, was zu einem starken Spannungsabfall
führt.
Im Stand der Technik kann der Spannungsabfall nur effizient vermieden
werden, wenn der Sleep-Transistor
in wirklich sehr kleine Teilschalter zerlegt wird, was wiederum
die Wiedereinschaltzeit erhöhen
würde.
-
Ein
weiteres Problem hierbei ist, dass während des Betriebs mit Abschaltung
von Schaltungsblöcken
frühzeitig
erkannt werden muss, wann welcher Schaltungsblock benötigt wird.
Bei Abschaltung von kleinen Teilbereich kann es jedoch vorkommen, dass
erst ein Systemzyklus vorher erkannt wird, bevor der betreffende
Schaltungsblock wieder benötigt wird.
Damit bleibt keine Zeit mehr diesen Block zu aktivieren, so dass
vorausgeschätzt
werden muss, wann der Funktionsblock benötigt werden wird. Dies kann
auch oft zu Fehlaktivierungen führen,
wodurch zusätzlich
Verlustleistung erzeugt wird.
-
US 200410158750 A1 beschreibt
ein Prozessorsystem mit einer Stromversorgungseinheit und einer
Stromversorgungssteuerung, wobei zur Abschaltung eines Schaltungsblocks
der Takt für
den Schaltungsblock ausgesetzt wird, der abgeschaltet werden soll.
Falls der abgeschaltete Block wieder benötigt wird, wird dieser wieder
mit Spannung versorgt und danach wird das Taktsignal wieder zugeschaltet.
-
US
2004/0230849 A1 beschreibt ein Energiesparverfahren für einen
Mikroprozessor, der mehrere Blöcke
aufweist. Falls ein Block nicht mehr benötigt wird, wird dieser Block
abgeschaltet.
-
US
2004/0221185 A1 offenbart eine integrierte Schaltung mit einer Vorhersageeinheit,
die antizipiert, wann ein Schaltungsblock benötigt werden wird. Ist dies
der Fall, wird dieser Schaltungsblock über einige hundert Taktzyklen
auf die Betriebsspannung hochgefahren.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine Schaltanordnung
bereitzustellen, mit der es möglich
ist, Schaltungsblöcke
in kurzen Zeiträumen
zu aktivieren, ohne dass benachbarte Schaltungsblöcke negativ
beeinflusst werden.
-
Diese
Aufgabe wird erfindungsgemäß durch die
Merkmale der unabhängigen
Ansprüche
gelöst. In
den abhängigen
Ansprüche
sind bevorzugte Ausführungsformen
der Erfindung angegeben.
-
Erfindungsgemäß weist
eine Schaltanordnung zur Aktivierung eines Schaltungsblocks in einer elektronischen
Schaltung, die mehrere Schaltungsblöcke aufweist, eine Ein-/Ausschalteinrichtung
zum Einschalten/Ausschalten eines Schaltungsblocks der elektronischen
Schaltung auf. Weiterhin ist eine Detektionseinrichtung vorgesehen,
die erkennt, wann ein ausgeschalteter Schaltungsblock wieder eingeschaltet
werden soll. Ebenso ist eine Steuerungsvorrichtung zur Steuerung
des Taktsignals für
die Schaltungsblöcke
der Schaltanordnung vorgesehen. Diese erhält ein Systemtaktsignal und
steuert die Weitergabe an die verschiedenen Schaltungsblöcke. Wenn nun
die Detektionseinrichtung erkennt, dass der ausgeschaltete Schaltungsblock
eingeschaltet werden soll, setzt die Steuereinrichtung den Takt
für die Schaltungsblöcke für eine vorbestimmte
Zeitspanne aus. Während
dieser Zeitspanne schaltet dann die Ein-/Ausschaltvorrichtung den
ausgeschalteten Schaltungsblock wieder ein. Durch das Aussetzen des
Taktsignals für
die Schaltungsblöcke,
d.h. durch Einfrieren des Taktzyklus für diese Schaltungsblöcke (Clock-Gating)
kann der betreffende Schaltungsblock schnell eingeschaltet werden,
da die damit auftretende Stromspitze und der daraus resultierende
Spannungsabfall nicht zu Fehlern in den anderen Schaltungsblöcken führen kann.
Nach Ende der Zeitspanne stehen sowohl die bisher aktiven Schaltungsblöcke als
auch der neu eingeschaltete Schaltungsblock zur Verfügung.
-
In
einer bevorzugten Ausführungsform
ist die Ein-/Ausschalteinrichtung
ein Transistor, der die Versorgungsspannung des auszuschaltenden
oder einzuschaltenden Schaltungsblocks steuert. Selbstverständlich sind
auch andere Schalter verwendbar, die die Spannungsversorgung für einen
Schaltungsblock aktivieren und deaktivieren können.
-
Gemäß einer
bevorzugten Ausführungsform setzt
die Steuerungseinrichtung den Takt für einen einzigen Taktzyklus
aus, wobei in diesem Taktzyklus die Ein-/Ausschaltvorrichtung den
ausgeschalteten Schaltungsblock wieder einschaltet bzw. aktiviert. Das
Einschalten erfolgt bevorzugt schlagartig und nicht schrittweise
wie im Stand der Technik. Dadurch wird der Block schnell aktiviert
und steht schon im nächsten
Taktzyklus zur Verfügung.
Hierdurch ist ein schnelles Reaktivieren von Schaltungsblöcken möglich, insbesondere
bei kurzzeitiger feingranularer Abschaltung von Schaltungsblöcken. Bei
diesen wird erst oft kurz vorher erkannt, dass sie wieder benötigt werden,
so dass sie schnell wieder eingeschaltet werden sollten. Die abgeschalteten
Schaltungsblöcke
bzw. Logikblöcke
können
mithilfe starker Treiber schnell eingeschaltet werden. Durch das
Aussetzen des Taktzyklus für
einen Takt kann beispielsweise eine Totzeit zwischen 0,1 ns und
2 ns, vorzugsweise zwischen 0,5 ns und 1,4 ns erzeugt werden. Diese Totzeit
kann in den meisten Anwendungen akzeptiert werden.
-
Durch
die kurze Wiedereinschaltzeit liegt ein weiterer Vorteil der Erfindung
darin, dass erst einen Taktzyklus zuvor bekannt sein muss, wann
ein Schaltungsblock wieder benötigt
wird. Wird erkannt, dass ein Schaltungsblock benötigt wird, hält die Steuerungseinrichtung
im nächsten
Takt das System für
einen Zyklus an, die Einschaltungseinrichtung schaltet den Schaltungsblock
wieder ein, wobei anschließend die
Taktversorgung des gesamten Systems wieder aktiviert wird. Eine
Logik zur Vorherbestimmung, wann ein Schaltungsblock benötigt werden
kann, ist nicht mehr nötig.
Ebenso ist eine Logik zum sequentiellen Einschalten des Schaltungsblocks
ebenfalls nicht mehr notwendig.
-
Selbstverständlich kann
die Steuerungseinrichtung den Takt nicht nur für einen einzigen Taktzyklus
aussetzen, sondern auch für
zwei Taktzyklen, oder eine andere beliebige Anzahl von Taktzyklen. Vorzugsweise
wird jedoch der Taktzyklus für
die Schaltungsblöcke
so kurz wie möglich
ausgesetzt.
-
Falls
die elektrische Schaltung Schaltungsblöcke enthält, die einen kontinuierlichen
Datenstrom aufnehmen oder ausgeben müssen, würde die Totzeit beim „Einfrieren" des Taktsignals
zu Fehlern führen,
da beispielsweise ein Sende- oder Empfangsbit ausfallen würde. In
diese Schaltungsblöcke
kann beispielsweise ein FIFO-Speicher (First-in-First-out) eingefügt werden,
wodurch der Sende- bzw. Empfangsstrom die Zeit überbrücken kann, die der Rest der Schaltung
durch das Aussetzen des Taktzykluses eingefroren ist.
-
Auf
bevorzugte Weise setzt die Steuereinrichtung den Takt für die Schaltungsblöcke aus,
die von der Spannungsquelle versorgt werden, die auch den einzuschaltenden
Schaltungsblock versorgt. Die Schaltungsblöcke, die an der gleichen Spannungsversorgung
hängen,
wie der einzuschaltende Schaltungsblock, würden durch den kurzzeitigen
Spannungsverlust in Mitleidenschaft gezogen werden, so dass diese
Schaltungsblöcke
in der vorbestimmte Zeitspanne nicht mit dem Taktsignal versorgt
werden.
-
Die
Erfindung betrifft ebenso ein Verfahren zum Aktivieren eines ausgeschalteten
Schaltungsblocks in einer elektrischen Schaltung mit mehreren Schaltungsblöcken, die
von einem Taktsignal getaktet werden, wobei das Verfahren folgende
Schritte aufweist: Zuerst wird ein Aktivierungssignal detektiert,
dass ein ausgeschalteter Schaltungsblock eingeschaltet werden soll.
Anschließend
wird das Taktsignal für
die Schaltungsblöcke
der elektronischen Schaltung für
die vorbestimmte Zeitspanne ausgesetzt und während dieser Zeitspanne der
ausgeschaltete Schaltungsblock eingeschaltet. Danach wird das Taktsignal
den Schaltungsblöcken
wieder zugeführt.
-
Die
Erfindung wird nachfolgend unter Bezugnahme auf die beiliegenden
Zeichnungen anhand eines Ausführungsbeispiels
näher erläutert. Hierbei zeigen:
-
1 eine
schematische Aktivierungsschaltung gemäß der Erfindung,
-
2 den
Signalverlauf der verschiedenen Komponenten der Schaltung von 1,
und
-
3 beispielhaft
den Spannungsverlauf beim Aktivieren von Schaltungsblöcken.
-
In 1 ist
schematisch ein Teil einer elektronischen Schaltung dargestellt,
die verschiedene Schaltungsblöcke 11, 12, 13 aufweist.
Diese Schaltungsblöcke
werden von einer Versorgungsspannung VDD gespeist.
In der dargestellten Ausführungsform
kann der Schaltungsblock 11 durch eine Ein-/Ausschaltvorrichtung 14 deaktiviert
und reaktiviert werden. Aus Übersichtlichkeitsgründen ist
die Ein-/Ausschalteinrichtung 14 nur für den Block 11 dargestellt.
Selbstverständlich
können
auch die anderen Schaltungsblöcke 12 und 13 durch ähnliche Ein-/Ausschalteinrichtungen
gesteuert werden. Weiterhin ist eine Taktsteuerung 15 vorgesehen,
welcher der Systemtakt CLK zugeführt
wird.
-
Die
Schaltung kann nun derart ausgebildet sein, dass der Funktionsblock 11 zur
Minimierung von Leckstromverlusten ausgeschalten ist. Wird der ausgeschaltete
Funktionsblock 11 der Schaltung wieder benötigt, kann
beispielsweise von einer nicht dargestellten Systemsteuerung ein
Aktivierungssignal BA einem Detektor 16 zugeführt werden,
der detektiert, wenn ein ausgeschalteter Schaltungsblock wieder
eingeschaltet werden soll. Wenn ein derartiges Signal am Detektor 16 anliegt,
teilt der Detektor dies der Taktsteuerung 15 mit. Die Taktsteuerung
hält den Taktzyklus
für eine
vorbestimmte Zeit an, der an die Schaltungsblöcke 11, 12 und 13 ausgegeben
wird. Innerhalb dieser Zeitspanne schaltet die Ein-/Ausschalteinrichtung
den Schaltungsblock 11 wieder ein. Entweder der Detektor
aktiviert den Ein-/Ausschalter, nachdem der Befehl an die Taktsteuerung 15 gegeben
wurde, den Takt einzufrieren, oder die Taktsteuerung aktiviert selbst
den Ein-Ausschalter 14, nachdem sie den Takt für die Blöcke 11-13 angehalten
hat.
-
In 3 ist
der zeitliche Spannungsverlauf von VDD angegeben.
Bei einem schnellen Wiedereinschalten des Schaltungsblocks tritt
ein merklicher Spannungsabfall 31 auf. In 3 sind
ebenfalls die Grenzwerte 32 eingezeichnet, die bei ca.
0,4 × VDD liegen. Diese Grenzwerte 32,
der so genannte Dynamic Noise Margin oder Static Noise Margin geben
an, wann bei Änderung
des Spannungssignals die nachgeschaltete Logik einen geänderten
logischen Zustand sehen würde,
was den Informationsinhalt der Logik zerstören würde. Wie aus 3 zu
erkennen ist, ist der durch das schnelle Einschalten des Schaltungsblocks
bedingte Spannungsverlust geringer als die Grenzwerte 32,
so dass beispielsweise der Informationsgehalt von nachgeschalteten
FlipFlops nicht zerstört
werden würde.
Es ist also möglich,
einen Schaltungsblock schnell einzuschalten, ohne den Logikzustand
anderer Blöcke
zu ändern.
-
Weiterhin
ist in 3 der Grenzwert 33 dargestellt, der den
unteren Spannungswert angibt, der die maximal tolerierbare Geschwindigkeitsdegradation
angibt. Fällt
VDD unter den Grenzwert 33, würde dies
zu nicht tolerierbaren Schaltungsgeschwindigkeitsänderungen
führen.
Aus diesem Grund müsste der
Schaltungsblock während
einer langen Zeitspanne 34 wieder eingeschalten werden,
was jedoch über eine
Vielzahl von Taktzyklen dauern würde.
Die Zeitspanne 35 beim schnellen Einschalten des Schaltungsblocks
ist erkennbar kürzer,
wobei diese Zeitspanne innerhalb eines Taktzyklus liegen kann. Da der
Taktzyklus in der Zeitspanne 35 angehalten wird, hat der
Spannungsabfall keinen Einfluss auf die Schaltungsgeschwindigkeiten.
-
In 2 ist
der Signalverlauf der Schaltung von 1 näher dargestellt.
Im oberen Graph ist der Systemtakt CLK dargestellt, wie er beispielsweise der
Taktsteuerung 15 von 1 zugeführt wird.
Weiterhin ist ein Blockaktivierungssignal BA dargestellt. Nach Ende
des ersten Taktzyklus in der Zeitspanne t1 bis
t2 wird dem Detektor 16 das Blockaktivierungssignal
zum Zeitpunkt t3 zugeführt. Weiterhin ist der zeitliche
Verlauf des Signals sel dargestellt, das die Aktivierung des Blocks
darstellt. Nach dem Blockaktivierungssignal wird zum Zeitpunkt t4 beim nächsten Taktsignal
der ausgeschaltete Schaltungsblock wieder eingeschaltet, so dass
das Signal sel im vorliegenden Beispiel wieder auf einen hohen logischen Zustand
geschaltet wird. Das Signal sel kann beispielsweise vom Detektor 16 der
Ein-/Ausschalteinrichtung 14 zugeführt werden, die dann den Schaltungsblock 11 von 1 wieder
einschaltet. Wie in der untersten Kurve des Spannungsverlaufs zu
erkennen ist, führt
das Wiedereinschalten des Schaltungsblocks zu einem kurzzeitigen
Spannungsverlust 31, der dem von 3 gezeigten
Spannungsverlust entspricht. Der von der Taktsteuerung 15 an
die Schaltungsblöcke
weitergeleitete Taktzyklus wird jedoch für diese Zeitspanne ausgesetzt,
wie es der Verlauf der Kurve CPint zeigt.
Der von dem Systemtakt zugeführte
Taktzyklus zwischen t4 und t5,
wird wie im Verlauf von CPint zu erkennen
ist, nicht an die Funktionsblöcke
der elektronischen Schaltung weitergeleitet. Dieser Takt fällt dementsprechend
für die Funktionsblöcke aus,
so dass in den Schaltungsblöcken
in diesem Zeitraum keine Schaltungen stattfinden.
-
Wie
aus 2 zu erkennen ist, reicht es aus, dass das Aktivierungssignal
zum Einschalten des Schaltungsblocks einen Taktzyklus vor des Taktzykluses
detektiert wird, der ausgesetzt wird, um den Schaltungsblock einzuschalten.
Durch das schnelle Wiedereinschalten des Schaltungsblocks können Schaltungsblöcke auch
für sehr
kurze Zeitspannen, beispielsweise Zeitspannen kleiner 10 μs, oder kleiner
5 μs, oder
kleiner 1 μs
ausgeschaltet und wieder eingeschaltet werden. Da in den angrenzenden Schaltungsblöcken während des
Aktivierungstaktes keine Signalverarbeitung stattfindet, kann folglich durch
den kurzzeitigen Spannungsabfall auch kein Fehler entstehen.