-
Die Erfindung betrifft eine Mikrocontrollereinheit mit einem Haupt-Mikrocontroller und einem Standby-Mikrocontroller.
-
Der Standby-Stromverbrauch von integrierten Chips, die in Steuerungs- und Regelungssystemen verwendet werden, ist von wichtiger Bedeutung bei Systemen, die in einem stromsparenden Standby-Modus (Bereitschaftsmodus) arbeiten. Aber da die Größe von Transistoren, die in integrierten Chips verwendet werden, weiter schrumpft, nehmen Leckströme zu und treiben den Standby-Stromverbrauch in die Höhe. In den neuesten Hochleistungs-Mikrocontrollern, die mit Technologieknoten von 90 nm und darunter ausgelegt sind, wird der Standby-Stromverbrauch einer Transistorvorrichtung von Leckströmen dominiert, und zwar vor allem bei höheren Temperaturen.
-
Ein Leckstrom ist der Strom, der zwischen der Source (Quelle) und dem Drain (Abfluss) einer Transistorvorrichtung fließt, wenn das Gate (Gatter) des Transistors ausgeschaltet bzw. gesperrt ist. Typischerweise fließt dann, wenn das Gate eines Transistors gesperrt ist, ein vernachlässigbarer Betrag an Leckstrom zwischen den Source- und Drain-Anschlüssen. Aber in integrierten Chips, die dem aktuellen Stand der Technik entsprechen, ist die zulässige Mindest-Gate-Länge und infolgedessen auch der physische Abstand zwischen Source und Drain auf eine derartig kleine Größe zusammengeschrumpft, dass selbst dann, wenn ein Transistor ausgeschaltet ist, der Leckstrom bewirkt, dass ein Mikrocontroller immer noch einen beträchtlichen Betrag an Strom aufnimmt.
-
Schaltungen und Techniken, die implementiert worden sind und werden, um das Problem des Leckstroms in Angriff zu nehmen, werden zunehmend komplizierter. So beseitigt zum Beispiel eine Technik nach dem bekannten Stand der Technik einen Leckstrom während eines Standby-Betriebs durch das Abschalten bzw. Absperren eines Stroms zu einem Mikrocontroller unter Verwendung eines periodischen Sleep-and-Wake-Up-Mechanismus (Mechanismus zum „Schlafenlegen” bzw. in den Ruhezustand versetzen und zum „Aufwecken”), der einen Mikrocontroller periodisch ausschaltet und aufweckt. Der durchschnittliche Energie-/Stromverbrauch eines solchen Mikrocontrollers wird auf der Basis des Stromverbrauchs der Sleep-and-Wake-Up-Logik plus dem Strom, der verbraucht wird, um den Mikrocontroller ein- und auszuschalten, plus dem Stromverbrauch während des Betriebs berechnet. Trotz solcher Anstrengungen erfüllt der durchschnittliche Energieverbrauch nicht die strengen Anforderungen von stromsparenden Mikrocontrollern.
-
In der
US 2005/0 114 722 A1 ist vorgeschlagen, zwei Mikroprozessoren zu verwenden, die unterschiedlich schnell sind, und im Fall eines Umschaltens von einem Hochgeschwindigkeitsbetrieb zu einem Nicht-Hochgeschwindigkeitsbetrieb den schnellen Mikroprozessor komplett von der Stromversorgung abzukoppeln.
-
Die Erfindung hat insbesondere z. B. zur Aufgabe, eine Mikrocontrollereinheit zur Verfügung zu stellen, bei der in einem Standby-Betriebsmodus der Inhalt von SRAMs, Registern etc. in einem Haupt-Mikrocontroller aufrecht erhalten werden kann, und dennoch gegenüber einem normalen Betriebsmodus ein reduzierter Leckzustand erreicht wird.
-
Die Erfindung erreicht dieses Ziel durch den Gegenstand des Anspruchs 1.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Vorteilhaft wird der reduzierte Leckzustand erzielt, indem Vorspannungen zu einer oder mehreren Wannen von Halbleitervorrichtungen innerhalb des Haupt-Mikrocontrollers selektiv zugeführt werden, um Leckströme der Halbleitervorrichtung zu reduzieren.
-
Vorteilhaft wird der reduzierte Leckzustand erzielt, indem kein Strom zu dem Haupt-Mikrocontroller zugeführt wird, wodurch Leckströme von Halbleitervorrichtungen innerhalb des Haupt-Mikrocontrollers eliminiert werden.
-
Vorteilhaft wird der reduzierte Leckzustand erzielt, indem die Spannung reduziert wird, die zu dem Haupt-Mikrocontroller zugeführt wird, wodurch Leckströme von Halbleitervorrichtungen in dem Haupt-Mikrocontroller reduziert werden.
-
Vorteilhaft weist die Mikrocontrollereinheit des Weiteren eine Kommunikationsschnittstelle auf, die so konfiguriert ist, das sie eine Kommunikation zwischen dem Haupt-Mikrocontroller und dem Standby-Mikrocontroller während des normalen Betriebsmodus bereitstellt.
-
Vorteilhaft ist der Standby-Mikrocontroller so konfiguriert, dass er Befehle, Code und/oder Daten von dem Haupt-Mikrocontroller über die Kommunikationsschnittstelle empfängt, die den Betrieb des Standby-Mikrocontrollers während des Standby-Betriebsmodus steuern.
-
Vorteilhaft weist die Mikrocontrollereinheit des Weiteren auf:
ein integriertes Chip-Package, das den Haupt-Mikrocontroller, den Standby-Mikrocontroller und die Stromversorgung auf einem einzigen Siliziumsubstrat aufweist,
wobei der Haupt-Mikrocontroller und der Standby-Mikrocontroller einen oder mehrere Eingangs/Ausgangs-Pins des integrierten Chip-Package gemeinsam nutzen.
-
Vorteilhaft ist der Standby-Mikrocontroller so konfiguriert, dass er Befehle oder Code von dem Haupt-Mikrocontroller empfängt, die den Betrieb des Standby-Mikrocontrollers während des Standby-Betriebsmodus steuern.
-
Vorteilhaft weist der Standby-Mikrocontroller Folgendes auf:
einen Mikrocontroller, der so konfiguriert ist, dass er eine Datenverarbeitung durchführt; und
eine Speichereinheit, die mit dem Mikrocontroller gekoppelt ist und so konfiguriert ist, dass sie den Code und die Daten, die von dem Haupt-Mikrocontroller geschrieben werden, speichert.
-
Vorteilhaft ist der Haupt-Mikrocontroller so konfiguriert, dass er den Betrieb des Mikrocontrollers unterbricht, um Befehle oder Code zu der Speichereinheit zu kommunizieren, indem er:
ein Reset-Signal zu dem Mikrocontroller sendet und hält, um den Betrieb des Standby-Mikrocontrollers zu stoppen;
Befehle oder Code zu der Speichereinheit in dem Standby-Mikrocontroller kommuniziert; und
das Reset-Signal deaktiviert, um den Betrieb des Mikrocontrollers wieder aufzunehmen.
-
Vorteilhaft sind der Haupt-Mikrocontroller, der Standby-Mikrocontroller und die Stromversorgung innerhalb eines einzigen Siliziumsubstrats enthalten;
wobei das einzige Siliziumsubstrat in einem einzigen integrierten Chip-Package enthalten ist, und
wobei der Haupt-Mikrocontroller und der Standby-Mikrocontroller einen oder mehrere Eingangs/Ausgangs-Pins des einzigen integrierten Chip-Package gemeinsam benutzen.
-
Vorteilhaft ist der Haupt-Mikrocontroller auf einem ersten Siliziumsubstrat angeordnet und ist der Standby-Mikrocontroller auf einem separaten zweiten Siliziumsubstrat angeordnet, und
wobei die ersten und zweiten Siliziumsubstrate in einem einzigen integrierten Chip-Package enthalten sind.
-
Vorteilhaft weist der Standby-Mikrocontroller des Weiteren ein Statusregister auf, das so konfiguriert ist, dass es ein oder mehrere Statusbits speichert, die indikativ für ein Ereignis sind, das bewirkt, dass der Standby-Mikrocontroller das Wake-Up-Signal sendet, und die von dem Haupt-Mikrocontroller gelesen werden, wenn die Stromversorgung mit dem Haupt-Mikrocontroller verbunden wird.
-
Vorteilhaft umfasst das Ereignis das Empfangen eines Befehls, der mit der ersten Verarbeitungsgeschwindigkeit des Standby-Mikrocontrollers nicht ausreichend verarbeitet werden kann, oder das Empfangen einer Aufgabe, die dem Haupt-Mikrocontroller zugeordnet ist.
-
Vorteilhaft weist die Stromversorgung Folgendes auf:
eine erste Stromversorgung, die so konfiguriert ist, dass sie selektiv Strom zu dem Haupt-Mikrocontroller über einen ersten Stromversorgungspfad zuführt; und
eine von der ersten Stromversorgung getrennte zweite Stromversorgung, die so konfiguriert ist, dass sie dem Standby-Mikrocontroller über einen zweiten Stromversorgungspfad Strom zuführt.
-
Vorteilhaft schreibt der Haupt-Mikrocontroller Daten in eine Speichereinheit in dem Standby-Mikrocontroller, um den Betrieb des Standby-Mikrocontrollers in dem Standby-Betriebsmodus zu steuern.
-
Vorteilhaft umfasst das Verfahren des Weiteren das Unterbrechen des Betriebs des Standby-Mikrocontrollers, um Befehle oder Code zu der Speichereinheit zu kommunizieren, und zwar durch folgende Schritte:
Senden und Halten eines Reset-Signals zu dem Standby-Mikrocontroller, um den Betrieb des Standby-Mikrocontrollers zu stoppen;
Kommunizieren von Befehlen oder Code zu der Speichereinheit in dem Standby-Mikrocontroller; und
Deaktivieren des Reset-Signals, um den Betrieb des Standby-Mikrocontrollers wieder aufzunehmen.
-
Vorteilhaft umfasst das Verfahren des Weiteren das Lesen von einem oder mehreren Statusbits aus einem Statusregister in dem Standby-Mikrocontroller, die indikativ für ein Ereignis sind, das eine Rückkehr in den normalen Betriebsmodus bewirkt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein Blockdiagramm einer ersten Ausführungsform einer Mikrocontrollereinheit.
-
2 veranschaulicht ein Blockdiagramm einer detaillierteren Ausführungsform einer Mikrocontrollereinheit.
-
3a und 3b sind graphische Darstellungen, die das Stromsignal zeigen, das einem Haupt-Mikrocontroller und einem Standby-Mikrocontroller der hier bereitgestellten Mikrocontrollereinheit zugeführt wird.
-
4 veranschaulicht ein Blockdiagramm eines eingebetteten Systems, das eine Mikrocontrollereinheit aufweist.
-
5 veranschaulicht ein Blockdiagram einer detaillierteren Ausführungsform eines Standby-Mikrocontrollers, der in einer Mikrocontrollereinheit enthalten ist, wobei insbesondere Kommunikationen zwischen dem Haupt-Mikrocontroller und dem Standby-Mikrocontroller veranschaulicht sind.
-
6 veranschaulicht ein Blockdiagramm der Mikrocontrollereinheit, die hier bereitgestellt wird.
-
7 veranschaulicht ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Mikrocontrollereinheit.
-
8 veranschaulicht ein Ablaufdiagramm eines Verfahrens für die Kommunikation zwischen Mikrocontrollern während des Betriebs einer Mikrocontrollereinheit.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Die vorliegende Erfindung wird nun unter Bezugnahme auf die beigefügten Zeichnungsfiguren beschrieben, wobei durchwegs gleiche Bezugszeichen verwendet werden, um gleiche Elemente zu bezeichnen, und wobei die veranschaulichten Strukturen und Vorrichtungen nicht notwendigerweise maßstabsgetreu gezeichnet sind.
-
Einige Aspekte der vorliegenden Offenbarung stellen eine Mikrocontrollereinheit bereit. Die Mikrocontrollereinheit weist sowohl einen Haupt-Mikrocontroller als auch einen Standby-Mikrocontroller auf. Eine Stromversorgung ist mit dem Haupt-Mikrocontroller und mit dem Standby-Mikrocontroller durch separate Stromversorgungspfade gekoppelt, die es erlauben, dass der Haupt-Mikrocontroller und der Standby-Mikrocontroller unabhängig voneinander arbeiten können. Während eines stromsparenden Standby-Betriebsmodus betreibt die Stromversorgung den Haupt-Mikrocontroller in einem reduzierten Leckzustand (z. B. schaltet sie den Strom ab), während die Stromversorgung den Standby-Mikrocontroller in einem Standard-Betriebszustand betreibt (z. B. schaltet sie den Strom ein), wodurch der Leckstrom, der mit der großen Anzahl an Transistoren in dem Haupt-Mikrocontroller assoziiert ist, reduziert wird, während die rechnerischen Leistungsfähigkeiten (d. h. die Verarbeitungsleistungsfähigkeiten) des Standby-Mikrocontrollers beibehalten werden. Die Stromversorgung ist des Weiteren so konfiguriert, dass sie einen normalen Betriebsmodus (z. B. durch das selektive Zuführen von Strom zu dem Haupt-Mikrocontroller) auf der Basis eines Wake-Up-Befehls bzw. Weckbefehls wieder aufnimmt, der von dem Standby-Mikrocontroller erzeugt wird.
-
Es wird klar sein, dass sich der Begriff ”reduzierter Leckzustand”, wie er hier bereitgestellt ist, auf eine Vielfalt von Mikrocontroller-Betriebszuständen bezieht, die den Leckstrom von Transistorvorrichtungen innerhalb des Haupt-Mikrocontrollers reduzieren, während sie die rechnerischen Leistungsfähigkeiten des Haupt-Mikrocontrollers negativ beeinträchtigen. In einer Ausführungsführungsform kann ein „reduzierter Leckzustand” zum Beispiel dadurch erreicht werden, dass zu dem Haupt-Mikrocontroller keine Spannung zugeführt wird. In einer alternativen Ausführungsform kann ein „reduzierter Leckzustand” dadurch erzielt werden, dass die Spannung reduziert wird, mit der der Haupt-Mikrocontroller versorgt wird.
-
In noch einer anderen Ausführungsform kann der Haupt-Mikrocontroller in einem ”reduzierten Leckzustand” betrieben werden, indem Wannen-Vorspannungs- bzw. „Well Biasing”-Techniken eingesetzt werden, um den Leckstrom zu reduzieren. Wie einem Durchschnittsfachmann auf dem Gebiet klar sein wird, legen Wannen-Vorspannungs-Techniken Vorspannungen an die Wannen von Halbleitervorrichtungen an, um Leckströme der Halbleitervorrichtungen zu reduzieren. Wenn eine Wannen-Vorspannung angelegt wird, kann der Haupt-Mikrocontroller zwar nicht für Verarbeitungszwecke betätigt werden, aber der Inhalt von flüchtigen Speichern in dem Haupt-Mikrocontroller (z. B. SRAMs, Register) kann aufrecht erhalten werden. Es wird klar sein, dass die oben genannten Ausführungsformen nicht einschränkend sind und dass die offenbarten Verfahren und Vorrichtungen jede Technik benutzen können, die den Leckstrom eines Mikrocontrollers reduziert.
-
1 veranschaulicht ein Blockdiagramm einer ersten Ausführungsform einer Mikrocontrollereinheit 100. Die offenbarte Mikrocontrollereinheit 100 erlaubt sowohl einen Hochleistungsbetrieb als auch einen stromsparenden Betrieb, während sie die negativen Auswirkungen eines Leckstroms abschwächt.
-
Unter Bezugnahme auf 1 weist die Mikrocontrollereinheit 100 einen Haupt-Mikrocontroller 104 und einen Standby-Mikrocontroller 106 auf. Der Haupt-Mikrocontroller 104 und der Standby-Mikrocontroller 106 werden selektiv mit einer Stromversorgung 110 gekoppelt, die so konfiguriert ist, dass sie Strom zu den jeweiligen Mikrocontrollern zuführt. Wie in 1 gezeigt ist, sind der Haupt-Mikrocontroller und der Standby-Mikrocontroller mit der Stromversorgung 110 durch separate Stromversorgungspfade, nämlich einen ersten Stromversorgungspfad 108a und einen zweiten Stromversorgungspfad 108b, gekoppelt. Die separaten Stromversorgungspfade erlauben es, dass der Haupt-Mikrocontroller 104 und der Standby-Mikrocontroller 106 unabhängig voneinander arbeiten können, so dass der Haupt-Mikrocontroller 104 in einem reduzierten Leckzustand betrieben werden kann (in dem er beeinträchtigte Leistungsfähigkeiten aufweist), während der Standby-Mikrocontroller in einem Standard-Betriebszustand bleibt (und dadurch seine vollen Leistungsfähigkeiten aufweist).
-
Die Verwendung von separaten Stromversorgungspfaden gestattet sowohl Hochleistungs-Betriebsmodi als auch stromsparende Betriebsmodi. Die Mikrocontrollereinheit 100 ist zum Beispiel so konfiguriert, dass sie sowohl in einem normalen Hochleistungs-Betriebsmodus (z. B. während des vollständigen Betriebs des gesteuerten bzw. geregelten Systems) als auch in einem stromsparenden Standby-Betriebsmodus (z. B. während eines Standby-Betriebs des gesteuerten bzw. geregelten Systems) arbeiten kann. Während des normalen Betriebsmodus arbeitet die Stromversorgung 110 in einer ersten Stromkonfiguration, in der Strom von der Stromversorgung 110 zu dem Haupt-Mikrocontroller 104 geliefert wird, um den Haupt-Mikrocontroller in einem Standard-Betriebszustand zu betreiben. Während des Standby-Betriebsmodus arbeitet die Stromversorgung 110 in einer zweiten Stromkonfiguration, in der Strom von der Stromversorgung 110 zu dem Standby-Mikrocontroller 106 geliefert wird und der Haupt-Mikrocontroller in einen reduzierten Leckzustand versetzt wird. Durch das Betreiben des Haupt-Mikrocontrollers 104 in einem reduzierten Leckzustand werden Betriebsströme und Leckströme der großen Anzahl an Transistoren in dem Haupt-Mikrocontroller 104 reduziert.
-
In einer Ausführungsform kann die zweite Stromkonfiguration den reduzierten Leckzustand erzielen, indem die Stromversorgung so betrieben wird, dass sie eine Wannen-Vorspannung (engl.: well biasing) durchführt (wie dies z. B. durch das Verbinden der Stromversorgung 110 mit Vbias dargestellt ist). In einer alternativen Ausführungsform kann die zweite Stromkonfiguration den reduzierten Leckzustand erzielen, indem die Stromversorgung nicht mit dem Haupt-Mikrocontroller 104 verbunden wird (wie dies z. B. durch das Anlegen der Stromversorgung 110 an Erde dargestellt ist) oder indem der Spannungswert, der dem Haupt-Mikrocontroller (engl.: main microcontroller) bereitgestellt wird, reduziert wird (wie dies z. B. durch das Reduzieren des Spannungswertes dargestellt wird, der von der Stromversorgung 110 zu Vmain geliefert wird).
-
Der Standby-Mikrocontroller 106 ist so konfiguriert, dass er ein Wake-Up-Signal bzw. Wecksignal WAKE-UP ausgibt, das die Verbindung der Stromversorgung 110 mit dem Haupt-Mikrocontroller 104 steuert. In einer Ausführungsform ist der Standby-Mikrocontroller 106 so konfiguriert, dass er beim Erfassen eines vorbestimmten Ereignisses ein Wake-Up-Signal ausgibt, das bewirkt, dass die Stromversorgung 110 den Betrieb des Haupt-Mikrocontrollers 104 von einem reduzierten Leckzustand in einen Standard-Betriebszustand wechselt. Das vorbestimmte Ereignis kann, ohne darauf beschränkt zu sein, den Empfang von Daten, die von den beschränkten Verarbeitungsleistungsfähigkeiten des Standby-Mikrocontrollers nicht ausreichend verarbeitet werden können, einen Stromausfall bzw. Leistungsabfall, Notsituationen, den Empfang einer Aufgabe, die speziell dem Haupt-Mikrocontroller zugeordnet ist, etc. umfassen. So kann der Standby-Mikrocontroller 106 zum Beispiel dann, wenn der Standby-Mikrocontroller 106 in einem stromsparenden Standby-Betriebsmodus betrieben wird und einen Befehl empfängt, der eine höhere Verarbeitungsleistung erfordert, ein Wake-Up-Signal senden, das bewirkt, dass die Stromversorgung 110 den Betrieb des Haupt-Mikrocontrollers 104 in dem reduzierten Leckzustand beendet, wodurch der Haupt-Mikrocontroller 104 aufgeweckt wird und es der Mikrocontrollereinheit 110 erlaubt wird, eine hohe Verarbeitungsleistung durchzuführen.
-
In einer Ausführungsform wird die Stromversorgung 110 selektiv mit dem Haupt-Mikrocontroller 104 und dem Standby-Mikrocontroller 106 durch eine Stromregelungsvorrichtung 112 gekoppelt, die so konfiguriert ist, dass sie das Wake-Up-Signal empfängt und den Stromfluss zu dem Haupt-Mikrocontroller 104 regelt bzw. steuert. Die Stromregelungsvorrichtung 112 kann in einer Ausführungsform einen einfachen Schalter aufweisen. In alternativen Ausführungsformen kann die Stromregelungsvorrichtung 112 einen breiten Bereich von Einrichtungen aufweisen, die das Anlegen einer Spannung an den Haupt-Mikrocontroller 104 regeln bzw. steuern. In einer Ausführungsform kann die Stromregelungsvorrichtung 112 innerhalb der Stromversorgung 110 enthalten sein. In einer anderen Ausführungsform kann die Stromregelungsvorrichtung 112 getrennt von der Stromversorgung 110 sein. Die Stromregelungsvorrichtung kann zum Beispiel in einem integrierten Chip-Package 102 enthalten sein, das den Haupt-Mikrocontroller 104 und den Standby-Mikrocontroller 105 enthält. In einer Ausführungsform kann die Stromregelungsvorrichtung 112 einen ersten Stromregelkreis, der so konfiguriert ist, dass er den Strom zu einem Haupt-Mikrocontroller 104 regelt, und einen zweiten Stromregelkreis aufweisen, der so konfiguriert ist, dass er den Strom zu einem Standby-Mikrocontroller 106 regelt.
-
Es wird klar sein, dass die inhärenten Verarbeitungsleistungsfähigkeiten und der inhärente Stromverbrauch eines Standby-Mikrocontrollers so gewählt werden können, dass sie die Bedürfnisse eines Systems erfüllen. So weist zum Beispiel in einer Ausführungsform (die z. B. mit Multi-Kern-Prozessoren assoziiert ist) eine Mikrocontrollereinheit 100 einen Haupt-Mikrocontroller 104, der so konfiguriert ist, das er mit einem ersten Stromverbrauch arbeitet und Daten mit einer ersten Verarbeitungsgeschwindigkeit verarbeitet, und einen Standby-Mikrocontroller 106 auf, der so konfiguriert ist, dass er mit einem zweiten Stromverbrauch arbeitet, der im Wesentlichen gleich dem ersten Stromverbrauch ist, und Daten mit einer zweiten Verarbeitungsgeschwindigkeit verarbeitet, die im Wesentlichen gleich der ersten Verarbeitungsgeschwindigkeit ist.
-
In einer anderen Ausführungsform kann ein geringerer Stromverbrauch eines Standby-Betriebsmodus erzielt werden, indem man eine Mikrocontrollereinheit 100 hat, die einen Hochleistungs-Haupt-Mikrocontroller 104 und einen stromsparenden Standby-Mikrocontroller 106 aufweist, der für einen niedrigen Stromverbrauch optimiert ist. In einer solchen Ausführungsform ist der Haupt-Mikrocontroller 104 so konfiguriert, dass er mit einem ersten Stromverbrauch arbeitet und Daten mit einer ersten Verarbeitungsgeschwindigkeit verarbeitet, und ist der Standby-Mikrocontroller 106 so konfiguriert, dass er mit einem zweiten Stromverbrauch arbeitet, der kleiner als der erste Stromverbrauch ist, und Daten mit einer zweiten Verarbeitungsgeschwindigkeit verarbeitet, die langsamer als die erste Verarbeitungsgeschwindigkeit ist.
-
In einer solchen Ausführungsform bezieht sich der ”stromsparende Standby-Mikrocontroller” auf einen Mikrocontroller, der im Vergleich zu dem Haupt-Mikrocontroller für einen stromsparenden Betrieb optimiert ist. In einer Ausführungsform kann die Optimierung des Standby-Mikrocontrollers für einen stromsparenden Betrieb umfassen, dass man einen Standby-Mikrocontroller mit einer kleineren Anzahl an Transistoren als der Haupt-Mikrocontroller hat. Der Haupt-Mikrocontroller kann zum Beispiel eine erste Anzahl an Transistoren (z. B. Transistoren im zweistelligen Millionenbereich) aufweisen, während der Standby-Mikrocontroller eine zweite Anzahl an Transistoren aufweisen kann, die kleiner als die erste Anzahl an Transistoren ist (z. B. Zehntausende von Transistoren). Die kleinere Anzahl an Transistoren in dem Standby-Mikrocontroller sorgt für eine reduzierte Verarbeitungsleistung, die ausreichend ist, um die Mikrocontrollereinheit zu betreiben und um den Haupt-Mikrocontroller aufzuwecken, wenn eine größere Verarbeitungsleistung benötigt wird. Die kleinere Anzahl an Transistoren sorgt auch für einen geringeren Stromverbrauch (z. B. einen durchschnittlichen Standby-Stromverbrauch von weniger als 100 μA) als der Stromverbrauch, der von dem Hochleistungs-Haupt-Mikrocontroller verwendet wird (der z. B. einen Stromverbrauch von 100 mA–1000 mA hat).
-
2 veranschaulicht ein Blockdiagramm einer detaillierteren Ausführungsform einer Mikrocontrollereinheit 200, wie sie hier bereitgestellt wird.
-
Wie in 2 gezeigt ist, sind der Haupt-Mikrocontroller 202 und der Standby-Mikrocontroller 204 über eine Kommunikationsschnittstelle miteinander verbunden, über die Befehle, Daten und/oder Code gesendet werden können. In einer Ausführungsform erlaubt die Kommunikationsschnittstelle, dass die Haupt- und Standby-Mikrocontroller gemäß einer Master-Slave-Beziehung arbeiten können. In einer solchen Ausführungsform, wie sie in 2 veranschaulicht ist, weist die Kommunikationsschnittstelle eine Master-Schnittstelle 206 und eine Slave-Schnittstelle 208 für eine interne Kommunikation innerhalb der Mikrocontrollereinheit 200 auf.
-
In einer Ausführungsform kann die Kommunikationsschnittstelle in einer Art und Weise eingerichtet sein, in der die Master-Schnittstelle 206 so konfiguriert ist, dass sie Befehle (z. B. Daten, Code) zu der Slave-Schnittstelle 208 sendet. Zum Beispiel kann der Haupt-Mikrocontroller 202 die Master-Schnittstelle 206 verwenden, um während eines normalen Betriebsmodus Code und/oder Daten zu der Slave-Schnittstelle 208 zu senden, welche den Betrieb des Standby-Mikrocontrollers 204 definieren (z. B. in dem normalen Betriebsmodus und/oder in einem nachfolgenden Standby-Betriebsmodus).
-
In verschiedenen Ausführungsformen können der Haupt-Mikrocontroller 202 und der Standby-Mikrocontroller 204 mit separaten Eingangs/Ausgangs-(E/A)-Pins (engl.: I/O pins) desselben integrierten Chip-(IC)-Package 210 gekoppelt sein oder sie können gemeinsame E/A-Pins 214 desselben integrierten Chip-(IC)-Package 210 gemeinsam nutzen. Die E/A-Pins sind so konfiguriert, dass sie es der Mikrocontrollereinheit 200 erlauben, externe Signale (z. B. von Sensoren) zu lesen oder Signale bereitzustellen, die externe Einrichtungen (z. B. LEDs) antreiben. In einer Ausführungsform sind ein Haupt-Mikrocontroller 202 und der Standby-Mikrocontroller 204 so konfiguriert, dass sie ein Bündel von gemeinsamen E/A-Pins 214 (z. B. 30–40 E/A-Pins) gemeinsam benutzen, während der Haupt-Mikrocontroller 202 zusätzliche Haupt-E/A-Pins 216 verwendet.
-
Während eines normalen Betriebsmodus sind zum Beispiel die Haupt-E/A-Pins 216 aktiviert und werden von dem Haupt-Mikrocontroller 202 verwendet, und die gemeinsamen E/A-Pins sind aktiviert und werden von entweder dem Haupt-Mikrocontroller 202 und/oder dem Standby-Mikrocontroller 204 verwendet. Während eines stromsparenden Standby-Betriebsmodus werden die Haupt-E/A-Pins 216 abgeschaltet, um den Stromverbrauch zu reduzieren, während die gemeinsamen E/A-Pins 214 aktiv bleiben, so dass der Standby-Mikrocontroller 204 damit fortfahren kann, Daten von einem gesteuerten bzw. geregelten System zu empfangen. Somit erlaubt die gemeinsame Nutzung von gemeinsamen E/A-Pins 214 durch den Haupt-Mikrocontroller und den Standby-Mikrocontroller es dem Standby-Mikrocontroller 204, unabhängig von dem Haupt-Mikrocontroller 202 zu arbeiten, so dass dann, wenn der Haupt-Mikrocontroller 202 während eines Standby-Betriebsmodus in einem reduzierten Leckzustand betrieben wird (z. B. wenn der Strom zu dem Haupt-Mikrocontroller abgeschaltet ist), der Standby-Mikrocontroller 204 weiterhin mit dem gesteuerten bzw. geregelten System verbunden bleiben kann.
-
In einer Ausführungsform kann die Stromversorgung 212 eine einzelne Stromquelle aufweisen (z. B. eine Autobatterie, die auf eine geeignete niedrigere Spannung heruntertransformiert wird). In einer alternativen Ausführungsform kann die Stromversorgung 212 eine Haupt-Stromversorgung 212a für den Haupt-Mikrocontroller 202 und eine separate Standby-Stromversorgung 212b für den Standby-Mikrocontroller 204 aufweisen.
-
In einer Ausführungsform können einer oder mehrere von dem Haupt-Mikrocontroller 202, dem Standby-Mikrocontroller 204 und/oder der Stromversorgung 212 in einem einzigen integrierten Chip-(IC)-Package 210 enthalten sein. In einer Ausführungsform können einer oder mehrere von dem Haupt-Mikrocontroller 202, dem Standby-Mikrocontroller 204 und/oder der Stromversorgung 212 auf ein und demselben Siliziumsubstrat 218 innerhalb des IC-Package 210 enthalten sein. Zum Beispiel können der Haupt-Mikrocontroller 202 und der Standby-Mikrocontroller 204 auf ein und demselben Siliziumsubstrat 218 in dem IC-Package 210 enthalten sein, oder der Haupt-Mikrocontroller 202 kann auf einem ersten Siliziumsubstrat 218a innerhalb des IC-Package 210 angeordnet sein, während der Standby-Mikrocontroller 204 auf einem separaten zweiten Siliziumsubstrat 218b innerhalb des IC-Package 210 angeordnet sein kann.
-
3a und 3b veranschaulichen graphische Darstellungen, die einer Ausführungsform entsprechen, in der ein ”reduzierter Leckzustand” für einen Haupt-Mikrocontroller (der zum Beispiel dem Haupt-Mikrocontroller 104 entspricht) erzielt wird, indem die Spannung zu dem Haupt-Mikrocontroller ausgeschaltet bzw. gesperrt wird, und indem die Spannung reduziert wird, die dem Haupt-Mikrocontroller zugeführt wird.
-
Genauer gesagt sind 3a und 3b graphische Darstellungen, die einen Spannungsausgang aus einer Stromversorgung (die z. B. der Stromversorgung 110 entspricht) zu jedem von einem Haupt-Mikrocontroller und einem Standby-Mikrocontroller, die in einer Mikrocontrollereinheit enthalten sind, als eine Funktion so zeigen, wie dies hier bereitgestellt wird. Insbesondere veranschaulichen die graphischen Darstellungen 300 und 308 einen einheitenlosen Spannungswert entlang der y-Achse und die Zeit entlang der x-Achse.
-
Nun wird Bezug auf 3a genommen. Zwischen der Zeit t0 und t1 befindet sich die Mikrocontrollereinheit in einer ersten Stromkonfiguration 302, die mit einem stromsparenden Standby-Betriebsmodus assoziiert ist. In der ersten Stromkonfiguration 302 wird eine Spannung (VStandby) von der Stromversorgung zu dem Standby-Mikrocontroller geliefert, die es dem Standby-Mikrocontroller erlaubt, in einem Standard-Betriebszustand zu arbeiten. In der ersten Stromkonfiguration 302 wird eine Spannung (VMain), die einen Wert von Null aufweist, (d. h. kein Strom) von der Spannungsversorgung zu dem Haupt-Mikrocontroller geliefert, wodurch der Haupt-Mikrocontroller abgeschaltet wird und Leckströme in Transistoren, die in dem Haupt-Mikrocontroller enthalten sind, eliminiert werden. Deshalb wird in der ersten Stromkonfiguration 302 die Verarbeitung für die Mikrocontrollereinheit von dem Standby-Mikrocontroller durchgeführt.
-
Es wird klar sein, dass, da der Standby-Mikrocontroller eine von Null verschiedene Verarbeitungsleistung aufweist, die erste Stromkonfiguration den Betrieb der Mikrocontrollereinheit während eines breiten Bereichs von Anwendungen einschließen kann. Zum Beispiel kann die Mikrocontrollereinheit in der ersten Stromkonfiguration während relativ einfacher Aufgaben bleiben, die die Hochleistungs-Verarbeitungsleistungsfähigkeiten nicht verwenden, die von dem Haupt-Mikrocontroller bereitgestellt werden. Es wird klar sein, dass die relative Einfachheit dieser Aufgaben von den Verarbeitungsleistungsfähigkeiten des Standby-Mikrocontrollers abhängt. Zum Beispiel wird ein Standby-Mikrocontroller, der mehr Transistoren hat, in der Lage sein, kompliziertere Aufgaben zu erfüllen, wird aber auch mehr Strom verbrauchen.
-
Zu der Zeit t1 schaltet der Standby-Mikrocontroller den Haupt-Mikrocontroller ein, indem er ein Wake-Up-Signal sendet, das es ermöglicht, dass eine von Null verschiedene Spannung von der Stromversorgung zu dem Haupt-Mikrocontroller gesendet wird.
-
Zwischen der Zeit t1 und t2 befindet sich die Mikrocontrollereinheit in einer zweiten Stromkonfiguration 304, die mit einem normalen Betriebsmodus assoziiert ist. In der zweiten Stromkonfiguration 304 wird eine Spannung (VMain), die einen Wert von V1 aufweist, von der Spannungsversorgung zu dem Haupt-Mikrocontroller geliefert, wodurch der Haupt-Mikrocontroller eingeschaltet wird. Wie in 3a gezeigt ist, kann der Standby-Mikrocontroller in der zweiten Stromkonfiguration 304 eingeschaltet bleiben und kann als ein Companion (Gefährte bzw. Begleiter) für den Haupt-Mikrocontroller agieren, so dass sowohl der Haupt-Mikrocontroller als auch der Standby-Mikrocontroller betriebsbereit sind (z. B. um eine Verarbeitung von Daten durchzuführen).
-
Darüber hinaus kann der Haupt-Mikrocontroller zwischen der Zeit t1 und t2 Befehle, Daten und/oder Code zu/von dem Standby-Mikrocontroller kommunizieren (z. B. lesen, schreiben). Das Lesen von Daten aus dem Standby-Mikrocontroller erlaubt es dem Haupt-Mikrocontroller, Informationen zu erlangen, die in dem Standby-Mikrocontroller während eines Standby-Betriebsmodus gespeichert worden sind (z. B. von der Zeit t0 bis zu t1). Das Schreiben von Daten in den Standby-Mikrocontroller erlaubt es dem Haupt-Mikrocontroller, dem Standby-Mikrocontroller neuen Code und/oder neue Daten bereitzustellen, um dessen Betrieb während eines normalen Betriebsmodus (z. B. von der Zeit t1 zu der Zeit t2) zu steuern und/oder um dessen Betrieb während eines nachfolgenden stromsparenden Standby-Betriebsmodus (z. B. von der Zeit t2 an) zu steuern.
-
Zu der Zeit t2 tritt die Mikrocontrollereinheit in eine dritte Stromkonfiguration 306 ein, die mit einem stromsparenden Standby-Betriebsmodus assoziiert ist. In der dritten Stromkonfiguration 306 wird eine reduzierte Spannung (VMain), die einen Wert V2 hat (wobei V2 < V1), von der Spannungsversorgung zu dem Haupt-Mikrocontroller geliefert. Der reduzierte Spannungswert reduziert exponentiell den Leckstrom des Haupt-Mikrocontrollers. Zum Beispiel wird eine Reduktion der Spannung um einen Faktor von 2 den Leckstrom um mehr als einen Faktor von 4 reduzieren. In einer Ausführungsform kann die Spannung V2 so ausgewählt werden, dass sie einen Wert aufweist, der ausreichend ist, um den Inhalt in flüchtigen Speichern in dem Haupt-Mikrocontroller aufrecht zu erhalten. Während des stromsparenden Standby-Betriebsmodus, der mit der dritten Stromkonfiguration 306 assoziiert ist, wird der Standby-Mikrocontroller gemäß einem Code arbeiten, der in diesen von dem Haupt-Mikrocontroller geschrieben worden ist (z. B. zu einem Zeitpunkt vor t2, wie etwa von der Zeit t1 bis zu der Zeit t2).
-
Deshalb kann der Standby-Mikrocontroller in Abhängigkeit von der Stromkonfiguration als ein Master (z. B. zu der Zeit t1), als ein Slave (z. B. von der Zeit t2 ab) oder als ein Companion (z. B. zwischen der Zeit t1 – t2) für den Haupt-Mikrocontroller funktionieren.
-
Es wird klar sein, dass die getrennten Stromversorgungspfade des Haupt-Mikrocontrollers und des Standby-Mikrocontrollers eine Vielfalt von unterschiedlichen Stromkonfigurationen gestatten. Zum Beispiel veranschaulicht 3b eine graphische Darstellung 308, die eine weitere Stromkonfiguration 310 zeigt, in der der Standby-Mikrocontroller so konfiguriert ist, dass er abgeschaltet wird, wenn Strom zu dem Haupt-Mikrocontroller zugeführt wird.
-
In einer Ausführungsform kann es eine Zeitüberschneidung geben, während der sowohl der Haupt-Mikrocontroller als auch der Standby-Mikrocontroller mit Strom versorgt werden, so dass der Haupt-Mikrocontroller in der Lage ist, Daten und/oder Code aus dem Standby-Mikrocontroller auszulesen und/oder in den Standby-Mikrocontroller zu schreiben. So kann es zum Beispiel sein, dass, nachdem der Haupt-Mikrocontroller eine Spannung zu der Zeit t1 empfängt, der Standby-Mikrocontroller weiterhin eine Spannung von der Stromversorgung bis zu der Zeit t1 + Δt erhält. Während dieser Zeitüberschneidung Δt kann der Haupt-Mikrocontroller Daten aus dem Standby-Mikrocontroller auslesen. In ähnlicher Weise kann der Standby-Mikrocontroller eine Spannung zu der Zeit t2 – Δt' empfangen, bevor der Haupt-Mikrocontroller zu der Zeit t2 abgeschaltet wird. Während dieser Zeitüberschneidung Δt' kann der Haupt-Mikrocontroller Befehle, Code und/oder Daten zu dem Standby-Mikrocontroller kommunizieren.
-
Es wird klar sein, dass die hier bereitgestellte Mikrocontrollereinheit entsprechend irgendeiner der oben genannten Stromkonfigurationen, die unter Bezug auf 3a oder 3b beschrieben worden sind, oder entsprechend irgendeiner Kombination davon betrieben werden kann. Des Weiteren sind die graphischen Darstellungen, die in 3a und 3b gezeigt sind, nicht beschränkend, und in alternativen Ausführungsformen können weitere Verfahren verwendet werden, um den Leckstrom (z. B. durch Wannen-Vorspannung) entweder separat oder in Verbindung mit den veranschaulichten Spannungsreduktionstechniken zu reduzieren.
-
In verschiedenen Ausführungsformen kann die Mikrocontrollereinheit in einem eingebetteten System enthalten sein, das Hardware und mechanische Teile umfasst. In einer solchen Ausführungsform kann die Mikrocontrollereinheit so konfiguriert sein, dass sie eine oder mehrere dedizierte Funktionen innerhalb des eingebetteten Systems durchführt (z. B. zum automatischen Steuern einer Einrichtung oder eines Geräts).
-
In einer bestimmten Ausführungsform, die in dem Blockdiagramm von 4 veranschaulicht ist, kann die Mikrocontrollereinheit 400 in ein Kraftfahrzeugsystem eingebettet sein (um z. B. Kraftfahrzeug-Motorsteuerungssysteme zu steuern). Wie in 4 gezeigt ist, ist das IC-Package 402 der Mikrocontrollereinheit mit einem Kraftfahrzeugsystem 408 gekoppelt, das Kraftfahrzeugsensoren 410 und eine mechanische Vorrichtung 412 aufweist. Die Mikrocontrollereinheit 400 ist so konfiguriert, dass sie Echtzeitreaktionen auf Ereignisse in dem Kraftfahrzeugsystem 408 bereitstellen kann, das sie steuert. Zum Beispiel können die Kraftfahrzeugsensoren 410 einen Zustand des Kraftfahrzeugs (z. B. Druck, Temperatur, ob ein Knopf gedrückt worden ist, etc.) erfassen, der zu der Mikrocontrollereinheit kommuniziert wird, während die mechanische Vorrichtung 412 so konfiguriert ist, dass sie ein Steuersignal von der Mikrocontrollereinheit empfängt, um eine mechanische Maßnahme zu ergreifen.
-
Die Mikrocontrollereinheit 400 kann in einem Standby-Betriebsmodus arbeiten, während das Kraftfahrzeug angehalten oder abgeschaltet ist (z. B. während das Kraftfahrzeug geparkt ist) und kann in einem normalen Betriebsmodus arbeiten, wenn das Fahrzeug gerade fährt oder eingeschaltet ist (z. B. während das Fahrzeug gefahren wird). In einer Ausführungsform kann der Standby-Mikrocontroller 406 während eines Standby-Betriebsmodus damit fortfahren, einige nicht so rechenintensive Funktionalitäten des Kraftfahrzeugs durchzuführen. Zum Beispiel kann eine Klima- oder Kühlanlageneinheit einer mechanischen Vorrichtung 412 ein Gebläse aufweisen, das für eine kurze Zeit laufen kann, nachdem der Motor des Kraftfahrzeugs ausgeschaltet wird, um zu verhindern, dass der Kondensator der Klimaanlage beschädigt wird. Um das Gebläse weiter laufen zu lassen, ohne einen großen Betrag an Strom zu verbrauchen, kann der Standby-Mikrocontroller 406 eine rechnerisch einfache Temperaturüberwachung des Kondensators durchführen und das Gebläse laufen lassen, bis sich die Temperatur in einem Bereich findet, in dem das Gebläse abgeschaltet werden kann.
-
Der Betrieb des Standby-Mikrocontrollers 406 während eines Standby-Betriebsmodus ermöglicht es auch, dass die Mikrocontrollereinheit 400 schnelle Reaktionen auf erfasste Zustände des Kraftfahrzeugs bereitstellen kann. Da der Standby-Mikrocontroller 406 während eines Standby-Betriebsmodus betriebsbereit ist, kann er zum Beispiel sofort auf eine externe Anforderung reagieren und es muss nicht gewartet werden, bis der Haupt-Mikrocontroller 404 aufgeweckt worden ist und hochgefahren wird. Dies steht im Gegensatz zu einem periodischen Sleep-and-Wake-Up-Mechanismus, der den Haupt-Mikrocontroller hochfährt, bevor er irgendeine Art von Berechnung durchführt.
-
5 veranschaulicht ein Blockdiagramm einer detaillierteren Ausführungsform eines Standby-Mikrocontrollers 502, der in einer Mikrocontrollereinheit 500 enthalten ist, wobei speziell Kommunikationen zwischen dem Haupt-Mikrocontroller 510 und dem Standby-Mikrocontroller 502 veranschaulicht sind. Wie in 5 gezeigt ist, weist der Standby-Mikrocontroller 502 einen Mikrocontroller 504 und eine Speichereinheit 506 auf, die mit einer Kommunikationsschnittstelle 508 gekoppelt sind, die sich in direkter Kommunikation mit einem Haupt-Mikrocontroller 510 befindet. In einer Ausführungsform kann die Speichereinheit 506 innerhalb des Mikrocontrollers 504 enthalten sein.
-
In einer Ausführungsform weist der Haupt-Mikrocontroller 510 ein Multi-Kern-Tricore-System auf und der Standby-Mikrocontroller 502 weist einen 8-Bit-Mikrocontroller auf. In einer Ausführungsform kann der 8-Bit-Mikrocontroller zum Beispiel einen Mikrocontroller vom Typ 8051 aufweisen. In alternativen Ausführungsformen kann der Mikrocontroller 504 Mikrocontroller mit anderen Größen aufweisen, wie zum Beispiel 16-Bit-Mikrocontroller, 32-Bit-Mikrocontroller, etc.
-
In einer Ausführungsform kann die Speichereinheit 506 ein SRAM-Speicher-Array aufweisen, das einen kleinen Betrag an Speicher enthält. Das SRAM-Speicher-Array kann zum Beispiel zwischen 8k (8192 Bytes) und 16k (16384 Bytes) enthalten. Daten und/oder Code können in das und aus dem SRAM durch den Haupt-Mikrocontroller 510 geschrieben werden, wie unten noch beschrieben werden wird. Da das SRAM ein flüchtiger Speicher ist, muss, wenn der Standby-Mikrocontroller während des normalen Betriebsmodus abgeschaltet wird, Strom zu dem Standby-Mikrocontroller über eine ausreichende Zeit zugeführt werden, um zu erlauben, dass der Haupt-Mikrocontroller 510 den Inhalt des SRAM-Speichers lesen und schreiben kann.
-
In einer anderen Ausführungsform kann die Speichereinheit 506 einen nichtflüchtigen Speicher, wie zum Beispiel einen ROM-Speicher, enthalten. Der ROM-Speicher kann mehrere unterschiedliche Optionen an ROM-Code enthalten, die selektiv durch Befehle ausgewählt werden können, die von dem Haupt-Mikrocontroller empfangen werden. Die Befehle können einen ROM-Code zum Beispiel auf der Basis von Betriebsbedingungen des gesteuerten bzw. geregelten Systems auswählen.
-
In einer Ausführungsform enthält die Speichereinheit 506 auch einen Fehlerkorrekturcode-(ECC; engl. für „error correction code”)-Schutz. Der ECC-Schutz gestattet es, dass Fehler in der Speichereinheit 506 erkannt werden und dem Haupt-Mikrocontroller 510 mitgeteilt werden können. Wenn ein Fehler vorliegt, der den Standby-Mikrocontroller 502 unzuverlässig macht, kann sich der Haupt-Mikrocontroller 510 dafür entscheiden, den Standby-Mikrocontroller 502 für die Verarbeitung nicht zu benutzen (z. B. nicht in den Standby-Betriebsmodus einzutreten) oder den Inhalt der Speichereinheit 506 (z. B. des SRAM-Speichers) erneut zu laden.
-
Die Kommunikationsschnittstelle 508 zwischen dem Haupt-Mikrocontroller 510 und dem Standby-Mikrocontroller 502 erlaubt es, dass der Standby-Mikrocontroller 502 als ein Slave des Haupt-Mikrocontrollers arbeiten kann. So können zum Beispiel Befehle, Code und/oder Daten, die den Betrieb des Standby-Mikrocontrollers steuern, von dem Haupt-Mikrocontroller 510 in das SRAM 506 des Standby-Mikrocontrollers über die Kommunikationsschnittstelle 508 heruntergeladen werden. In einer Ausführungsform steuern die Befehle oder der Code den Betrieb des Standby-Mikrocontrollers 502 während eines Standby-Betriebsmodus, so dass selbst in der Zeit, in der der Haupt-Mikrocontroller 510 nicht betriebsbereit ist, der Standby-Mikrocontroller 502 entsprechend den Befehlen oder dem Code arbeitet, die von dem Haupt-Mikrocontroller 510 ausgegeben wurden. In einer Ausführungsform übergibt der Haupt-Mikrocontroller 510 während des Standby-Betriebsmodus auch die Steuerung von gemeinsamen E/A-Pins 512 an den Standby-Mikrocontroller 502, so dass der Standby-Mikrocontroller 502 mit einem externen gesteuerten bzw. geregelten System in Verbindung stehen kann, während der Haupt-Mikrocontroller 510 im Ruhezustand ist bzw. „schläft”.
-
Die Kommunikationsschnittstelle 508 erlaubt es auch, dass der Haupt-Mikrocontroller die Aktionen des Standby-Mikrocontrollers während eines normalen Betriebsmodus vollständig steuert. In einer Ausführungsform kann der Master-Haupt-Mikrocontroller 510 den Slave-Standby-Mikrocontroller 502 während des normalen Betriebsmodus an bestimmten Aufgaben arbeiten lassen, um die Gesamt-Verarbeitungsleistungsfähigkeiten der Mikrocontrollereinheit 500 zu erhöhen. In einer solchen Ausführungsform kann der Haupt-Mikrocontroller 510 die gemeinsamen E/A-Pins 512 Daten entweder zu dem Standby-Mikrocontroller 502 oder zu dem Haupt-Mikrocontroller 510 übertragen lassen.
-
Der 8-Bit-Mikrocontroller 504 ist so konfiguriert, dass er weitere Signale mit dem Haupt-Mikrocontroller 510 austauscht. Insbesondere ist der 8-Bit-Mikrocontroller so konfiguriert, dass er INTERRUPT- und RESET-Signale von dem Haupt-Mikrocontroller empfängt. Das INTERRUPT-Signal (Unterbrechungs-Signal) zeigt dem 8-Bit-Mikrocontroller 502 an, dass eine Verarbeitung durchzuführen ist (z. B. dass ein Knopf in einem Auto gedrückt worden ist, was eine Reaktion von dem 8-Bit-Mikrocontroller erfordert). Es wird klar sein, dass, obwohl die zusätzlichen Signale in 5 so gezeigt sind, dass sie direkt zwischen dem 8-Bit-Mikrocontroller und dem Haupt-Mikrocontroller verlaufen, diese zusätzlichen Signale zwischen dem Haupt-Mikrocontroller 510 und dem 8-Bit-Mikrocontroller auch über die Kommunikationsschnittstelle kommuniziert werden können.
-
Das RESET-Signal (Rücksetz- bzw. Neustart-Signal) stoppt den Betrieb des 8-Bit-Mikrocontrollers 504. Wenn zum Beispiel der Haupt-Mikrocontroller 510 entscheidet, dass der 8-Bit-Mikrocontroller 504 seinen Betrieb ändern wird, wird er einen anderen Code zu dem SRAM 506 herunterladen. Um den anderen Code herunterzuladen, wird der Haupt-Mikrocontroller 510 ein RESET-Signal senden, das den Betrieb des 8-Bit-Mikrocontrollers 504 anhält. Der Haupt-Mikrocontroller 510 tauscht dann den Inhalt des SRAM-Speichers 506 mit Hilfe eines Codes und/oder von Daten aus, die durch die Kommunikationsschnittstelle 508 gesendet werden. Das RESET-Signal kann gehalten werden (z. B. auf einem hohen Wert gehalten werden), bis in dem SRAM 506 ein klar definierter Inhalt vorliegt. Dann wird der 8-Bit-Mikrocontroller wieder „ein”-geschaltet, indem das RESET-Signal deaktiviert wird (z. B. indem das RESET-Signal auf einen niedrigen Wert gesetzt wird).
-
Es wird klar sein, dass der Haupt-Mikrocontroller 510 Daten in die Speichereinheit 506 des Standby-Mikrocontrollers schreiben kann, ohne das RESET-Signal zu verwenden. Aber der Haupt-Mikrocontroller 510 kann Daten nicht in spezifische Speicheradressen der Speichereinheit 506 schreiben, wenn der 8-Bit-Mikrocontroller 504 die Speicheradressen gerade zum Ausführen eines Codes verwendet. Deshalb erlaubt es das RESET-Signal dem Haupt-Mikrocontroller 510, den Betrieb des 8-Bit-Mikrocontrollers 504 zu unterbrechen und einen Code in Speichereinheit-Stellen zu schreiben, die verwendet sind, um den Code zu speichern, der gerade im Augenblick von dem 8-Bit-Mikrocontroller 504 verwendet wird.
-
Während des Betriebs ist der 8-Bit-Mikrocontroller 504 auch so konfiguriert, dass er INTERRUPT- und WAKE-UP-Signale zu dem Haupt-Mikrocontroller 510 sendet. Das INTERRUPT-Signal unterbricht den Betrieb des Haupt-Mikrocontrollers 510 und zeigt dem Haupt-Mikrocontroller 510 an, dass ein Prozess durchzuführen ist. Das WAKE-UP-Signal weckt den Haupt-Mikrocontroller 510 aus einem Standby-Betriebsmodus auf, indem es bewirkt, dass Strom von einer Stromversorgung zu dem Haupt-Mikrocontroller 510 zugeführt wird.
-
6 veranschaulicht ein Blockdiagramm eines spezifischen Diagramms der hier bereitgestellten Mikrocontrollereinheit 600.
-
Wie in 6 veranschaulicht ist, weist jeder von dem Haupt-Mikrocontroller 602 und dem Standby-Mikrocontroller 604 Spannungsregler auf, die so konfiguriert sind, dass sie die Spannungen regeln, die von einer externen Stromversorgung in dem Haupt-Mikrocontroller und dem Standby-Mikrocontroller empfangen werden. Ein Spannungsregler 606 des Haupt-Mikrocontrollers regelt Spannungen innerhalb eines Haupt-Spannungsversorgungsbereichs durch das selektive Zuführen einer Spannung zu dem Haupt-Mikrocontroller oder durch das selektive Zuführen von Vorspannungen zu Transistoreinrichtungswannen innerhalb des Haupt-Mikrocontrollers. Ein Spannungsregler 608 des Standby-Mikrocontrollers regelt Spannungen innerhalb eines Standby-Spannungsversorgungsbereichs durch das selektive Zuführen von Strom zu dem Standby-Mikrocontroller (d. h. indem der Strom ein- und ausgeschaltet wird).
-
Eine Multiplexereinheit 610, die einen oder mehrere Multiplexer aufweist, ist an dem Ausgang des Standby-Mikrocontrollers 604 angeordnet. Die Multiplexereinheit 610 weist des Weiteren eine Vielzahl von Ports auf, die in Kommunikation mit E/A-Peripheriegeräten 614 stehen. Wie in 6 gezeigt ist, kommuniziert der Haupt-Mikrocontroller einen MUX-Steuerbefehl zu der Multiplexereinheit 610 über ein E/A-Peripheriegerät 612, um den Betrieb der gemeinsamen E/A-Pins zu steuern (d. h. welcher Mikrocontroller mit den gemeinsamen E/A-Pins arbeitet). Auf der Basis dieses Befehls wird die Multiplexereinheit 610 entweder Informationen zu/von dem Standby-Mikrocontroller über E/A-Peripheriegeräte 614 eingeben/ausgeben oder sie wird den Zugriff durch den Standby-Mikrocontroller verweigern und Informationen zu/von dem Haupt-Mikrocontroller über E/A-Peripheriegeräte 612 eingeben/ausgeben. Wie in 6 gezeigt ist, befindet sich die Multiplexereinheit 610 in dem Strombereich des Standby-Mikrocontrollers, wird aber von dem Haupt-Mikrocontroller gesteuert, um zu definieren, welcher Mikrocontroller mit den gemeinsamen E/A-Pins arbeitet. Während der Strom des Haupt-Mikrocontrollers aus ist, wird die Zuordnung der gemeinsamen E/A-Pins identisch gehalten.
-
In einer Ausführungsform können Statusbits verwendet werden, um Daten durch den Haupt-Mikrocontroller 602 und den Standby-Mikrocontroller 604 gemeinsam zu nutzen. Die Statusbits können in einem Statusregister 616 als Registerbits gespeichert werden. Das Statusregister kann ein physisches Register aufweisen oder kann ein Teil der Speichereinheit sein (z. B. ein Teil eines SRAM). In verschiedenen Ausführungsformen kann das Statusregister 616 teilweise in dem Haupt-Spannungsversorgungsbereich gespeichert werden (als Statusregister 616a) und teilweise in einem Standby-Spannungsversorgungsbereich gespeichert werden (als Statusregister 616b). Der Haupt-Spannungsversorgungsbereich kann zum Beispiel Statusregister aufweisen, die Statusbits enthalten, aus denen ein Reset (Rücksetzen bzw. Neustart) des Standby-Mikrocontrollers durchgeführt wird. In ähnlicher Weise kann der Standby-Spannungsversorgungsbereich Statusregister aufweisen, die Statusbits enthalten, die sich auf den Zustand des Standby-Mikrocontrollers beziehen. Wenn zum Beispiel ein nicht korrigierbarer Fehler in dem Speicher des Standby-Mikrocontrollers vorhanden ist, können Statusbits verwendet werden, um dem Haupt-Mikrocontroller mitzuteilen, dass der Standby-Mikrocontroller nicht mehr länger betriebsfähig ist.
-
In einer Ausführungsform können die Statusbits indikativ für das Ereignis sein, das bewirkt hat, dass der Standby-Mikrocontroller ein Wake-Up-Signal sendet, um den Haupt-Mikrocontroller aus einem Standby-Betriebsmodus aufzuwecken (z. B. eine Fehlersituation, ein Stromausfall bzw. Leistungsabfall, eine Aufgabe, die speziell dem Haupt-Mikrocontroller zugeordnet ist, etc.), und können von dem Haupt-Mikrocontroller gelesen werden, um das Ereignis zu ermitteln und um entsprechend zu ermitteln, wie der Haupt-Mikrocontroller gestartet werden soll. Wenn der Standby-Mikrocontroller zum Beispiel einen Stromausfall erfährt, während er in einem Standby-Betriebsmodus ist, wird er den Haupt-Mikrocontroller aufwecken, wenn Strom zur Verfügung steht. Der Haupt-Mikrocontroller kann in Reaktion auf unterschiedliche Statusbits unterschiedliche Maßnahmen ergreifen. Zum Beispiel kann die Reaktion eines Haupt-Mikrocontrollers auf ein Aufwecken aufgrund eines Stromausfalls anders sein, als wenn das Aufwecken infolge einer Fehlersituation erfolgt. Deshalb wird der Haupt-Mikrocontroller, wenn er ein Aufwecken aus einem Standby-Modus ausführt, das Hochfahren entsprechend den Informationen aus den Statusbits starten.
-
7 veranschaulicht ein Ablaufdiagramm eines Verfahrens 700 zum Betreiben einer Mikrocontrollereinheit. Obwohl die hier bereitgestellten Verfahren (z. B. die Verfahren 700 und 800) unten als eine Reihe von Vorgängen oder Ereignissen veranschaulicht und beschrieben sind, ist die vorliegende Offenbarung nicht durch die veranschaulichte Reihenfolge solcher Vorgänge oder Ereignisse beschränkt. Einige Vorgänge können zum Beispiel in anderen Reihenfolgen und/oder gleichzeitig mit anderen Vorgängen oder Ereignissen außer den hier veranschaulichten und/oder beschriebenen stattfinden. Außerdem werden nicht alle veranschaulichten Vorgänge benötigt, und die Wellenformgestalten sind lediglich illustrativer Natur und andere Wellenformen können von den veranschaulichten Wellenformen beträchtlich variieren. Außerdem kann bzw. können einer oder mehrere der hier dargestellten Vorgänge in einem oder mehreren separaten Vorgängen oder Phasen ausgeführt werden.
-
Außerdem kann der beanspruchte Gegenstand der Erfindung als ein Verfahren, eine Vorrichtung oder ein Erzeugnis unter Verwendung von standardmäßigen Programmierungs- und/oder Konstruktionstechniken implementiert werden, um Software, Firmware, Hardware oder eine Kombination daraus zu erzeugen, um einen Computer so zu steuern, dass er den offenbarten Gegenstand implementiert (z. B. sind die in 1, 2 etc. gezeigten Schaltungen nichteinschränkende Beispiele für Schaltungen, die verwendet werden können, um das Verfahren von 7 zu implementieren). Der Begriff „Erzeugnis”, wie er hier verwendet wird, soll ein Computerprogramm einschließen, auf das ausgehend von irgendeiner computerlesbaren Vorrichtung, einem computerlesbaren Träger oder einem computerlesbaren Medium zugegriffen werden kann. Natürlich werden die Fachleute auf dem Gebiet viele Modifikationen erkennen, die an dieser Konfiguration durchgeführt werden können, ohne dass von dem Schutzumfang oder dem Erfindungsgedanken des beanspruchten Gegenstands der Erfindung abgewichen wird.
-
Bei 702 wird ein Standby-Mikrocontroller während eines Standby-Betriebsmodus betrieben. Während des Standby-Betriebsmodus ist der Standby-Mikrocontroller so konfiguriert, dass er eine Verarbeitung von Daten durchführt, während sich der Haupt-Mikrocontroller in einem „reduzierten Leckzustand” befindet, der die rechnerischen Leistungsfähigkeiten des Haupt-Mikrocontrollers negativ beeinflusst. Der Standby-Betriebsmodus kann vorliegen, wenn sich die Mikrocontrollereinheit in einem stromsparenden Standby-Betriebsmodus befindet, in dem eine Teilmenge der vollständigen Verarbeitungsleistungsfähigkeiten einer Mikrocontrollereinheit verwendet wird, die einen Haupt-Mikrocontroller und einen Standby-Mikrocontroller aufweist.
-
Bei 704 wird ein Ereignis erfasst, das eine Rückkehr zu einem normalen Betriebsmodus bewirkt. Das Ereignis wird von dem Standby-Mikrocontroller erfasst. In einer Ausführungsform kann das Ereignis einen Vorgang umfassen, der eine erhöhte Verarbeitungskapazität benutzt (z. B. eine vollständige Betriebskapazität). So kann das Ereignis in einem Kraftfahrzeug zum Beispiel das Einschalten des Kraftfahrzeugs von einem ausgeschalteten Zustand (z. B. Parken) in einen eingeschalteten Zustand (z. B. Fahren) umfassen.
-
Bei 706 wird von dem Standby-Mikrocontroller ein Wake-Up-Signal gesendet, um den Betrieb des Haupt-Mikrocontrollers von einem reduzierten Leckzustand in einen Standard-Betriebszustand zu ändern. Da der Standby-Mikrocontroller während des Standby-Betriebsmodus betriebsbereit ist, ist er in der Lage, zu bestimmen, wann das System in einen normalen Betriebsmodus zurückkehrt. Wenn bestimmt wird, dass das System in einen normalen Betriebsmodus zurückkehren soll, sendet er ein Wake-Up-Signal zu einer Stromregelungsvorrichtung, die den Betrieb des Haupt-Mikrocontrollers von einem reduzierten Leckzustand (in dem er beeinträchtigte Leistungsfähigkeiten aufweist) in einen Standard-Betriebszustand (in dem er die volle Leistungsfähigkeit aufweist) ändert. In einer Ausführungsform ermöglicht es das Wake-Up-Signal, dass eine Spannung von einer Stromversorgung zu einem Haupt-Mikrocontroller geliefert werden kann.
-
Bei 708 wird ein Haupt-Mikrocontroller während eines normalen Betriebsmodus in einem Standard-Betriebszustand betrieben. Es wird klar sein, dass in dem normalen Betriebsmodus der Standby-Mikrocontroller als ein Companion für den Haupt-Mikrocontroller eingeschaltet bleiben kann oder dass er ausgeschaltet werden kann. In einer Ausführungsform wird der Haupt-Mikrocontroller beim Empfangen von Strom hochgefahren und die Mikrocontrollereinheit wird in einen normalen Betriebsmodus zurückgeführt. In einer Ausführungsform ist der Haupt-Mikrocontroller während des normalen Betriebsmodus so konfiguriert, dass er eine Verarbeitung von Daten mit einer zweiten Verarbeitungsgeschwindigkeit durchführt, die größer als die erste Verarbeitungsgeschwindigkeit ist. In einer anderen Ausführungsform ist der Haupt-Mikrocontroller während des normalen Betriebsmodus so konfiguriert, dass er eine Verarbeitung von Daten mit einer zweiten Verarbeitungsgeschwindigkeit durchführt, die im Wesentlichen identisch zu der ersten Verarbeitungsgeschwindigkeit ist.
-
Bei 710 wird ein Ereignis erfasst, das eine Rückkehr in einen Standby-Betriebsmodus bewirkt. Das Ereignis kann eine Verringerung bei der benötigten Verarbeitungskapazität anzeigen. In einem Kraftfahrzeug kann das Ereignis zum Beispiel umfassen, dass das Kraftfahrzeug von einem fahrenden Zustand in einen abgeschalteten Zustand gewechselt wird.
-
Bei 712 tritt der Haupt-Mikrocontroller in einen ”reduzierten Leckzustand” ein und die Mikrocontrollereinheit tritt in den Standby-Betriebsmodus ein.
-
8 veranschaulicht ein Ablaufdiagramm eines Verfahrens 800 für die Kommunikation zwischen Mikrocontrollern während des Betriebs einer Mikrocontrollereinheit.
-
Bei 802 werden Befehle, Daten und/oder Code von einem Haupt-Mikrocontroller zu einem stromsparenden Standby-Mikrocontroller bei 802 kommuniziert. In einer Ausführungsform kann der Haupt-Mikrocontroller Befehle, Code und/oder Daten zu einer Speichereinheit (z. B. einem SRAM-Speicher) in dem Standby-Mikrocontroller kommunizieren, indem er den Betrieb des Standby-Mikrocontrollers stoppt (d. h. unterbricht), während der Kommunikationsvorgang durchgeführt wird.
-
Der Haupt-Mikrocontroller kann zum Beispiel so konfiguriert sein, dass er ein Reset-Signal zu einem Standby-Mikrocontroller sendet und hält, um den Betrieb des Standby-Mikrocontrollers zu stoppen (Schritt 804). Während das Reset-Signal gehalten wird, werden Befehle, Code und/oder Daten von dem Haupt-Mikrocontroller zu der Speichereinheit über eine Kommunikationsschnittstelle kommuniziert (Schritt 806). Wenn die Speichereinheit einen klar definierten Satz von Befehlen, Code und/oder Daten von dem Haupt-Mikrocontroller erhalten hat, wird das Reset-Signal deaktiviert (Schritt 808), wodurch erlaubt wird, dass der Standby-Mikrocontroller den Betrieb gemäß den neuen Befehlen, Code und/oder Daten, die der Haupt-Mikrocontroller zu dem Speicher-Array kommuniziert hat, erneut aufnimmt.
-
Bei 810 tritt die Mikrocontrollereinheit in einen Standby-Betriebsmodus ein und der Haupt-Mikrocontroller tritt in einen ”reduzierten Leckzustand” ein. In einer Ausführungsform tritt der Haupt-Mikrocontroller in einen „reduzierten Leckzustand” ein, indem der Strom zu dem Haupt-Mikrocontroller abgeschaltet wird, um den Leckstrom zu eliminieren, der mit der großen Anzahl an Transistoren in dem Haupt-Mikrocontroller assoziiert ist. In alternativen Ausführungsformen tritt der Haupt-Mikrocontroller in einen „reduzierten Leckzustand” ein, indem zum Beispiel die Spannung reduziert wird, die dem Haupt-Mikrocontroller zugeführt wird, oder indem Wannen-Vorspannungs-Techniken verwendet werden.
-
Bei 812 arbeitet die Mikrocontrollereinheit unter Verwendung des Standby-Mikrocontrollers, um Daten zu verarbeiten. Es wird klar sein, dass, da der Standby-Mikrocontroller eine von Null verschiedene Verarbeitungsleistung hat, der Standby-Mikrocontroller während eines breiten Bereichs von Anwendungen betrieben werden kann, die relativ einfache Verarbeitungsleistungsfähigkeiten verwenden.
-
Bei 814 schreibt der Standby-Mikrocontroller während des Betriebs im Standby-Modus Daten in die Speichereinheit und Statusinformationen in die Statusregisterbits in dem Standby-Mikrocontroller.
-
Bei 816 geht die Mikrocontrollereinheit von einem Standby-Betriebsmodus in einen normalen Betriebsmodus über, wenn der Standby-Mikrocontroller ein Wake-Up-Signal an eine Stromversorgung sendet. Das Wake-Up-Signal zeigt an, dass die Stromversorgung den Standby-Mikrocontroller in einem Standard-Betriebszustand betreiben soll.
-
Bei 818 wird ein Haupt-Mikrocontroller in einem Standard-Betriebszustand betrieben und ein normaler Betriebsmodus wird wieder aufgenommen. In einer Ausführungsform fährt der Haupt-Mikrocontroller, nachdem er in einem Standard-Betriebszustand betrieben wird, gemäß dem Statusbit bzw. den Statusbits, die von dem Standby-Mikrocontroller geschrieben worden sind, hoch und liest den Inhalt der Speichereinheit.
-
Obwohl die Erfindung im Hinblick auf eine oder mehrere Implementierungen veranschaulicht und beschrieben worden ist, können Abänderungen und/oder Modifikationen an den veranschaulichten Beispielen durchgeführt werden, ohne dass vom Erfindungsgedanken und Schutzumfang der angehängten Ansprüche abgewichen wird.
-
Obwohl die Erfindung in Bezug auf Mikrocontrollereinheiten beschrieben worden ist, wird es einem Durchschnittsfachmann auf dem Gebiet klar sein, dass dasselbe Verfahren und dieselben Strukturen zum Beispiel auch im Hinblick auf Prozessoren verwendet werden können. So auch im Hinblick auf Prozessoren verwendet werden können. So können zum Beispiel in einem Multi-Kern-Prozessor das hier offenbarte Verfahren und die hier offenbarte Vorrichtung verwendet werden, um einen oder mehrere Kerne eines Multi-Kern-Systems abzuschalten, um den Stromverbrauch zu reduzieren, und um dann die Kerne wieder aufzuwecken, um in einem normalen Betriebsmodus zu arbeiten.