-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Prozessoren und betrifft insbesondere
Prozessoren, die Cache-Speichertransaktionen in mehreren Betriebsmodi
durchführen.
-
Hintergrund
-
Einige
Prozessoren können
in mehreren Betriebsarten arbeiten, etwa in einem aktiven Modus und
einem Schlafmodus oder Modus mit geringer Leistung. In einem aktiven
Modus liefert ein Spannungsregler eine Spannung an den Prozessor,
die es dem Prozessor ermöglicht,
Befehle auszuführen
und normale Operationen durchzuführen.
Im Modus mit geringer Leistung liefert der Spannungsregler eine Haltespannung
an den Prozessor, die es dem Prozessor ermöglicht, seinen inneren Zustand
beizubehalten, jedoch keine Befehle oder normale Operationen auszuführen. Die
Haltespannung ist geringer als die Spannung, die im aktiven Modus
bereitgestellt wird, wodurch der Prozessor Energie sparen kann. Der
Prozessor kann in den Modus mit geringer Leistung eintreten, um
Energie zu sparen, wobei jedoch sein innerer Zustand beibehalten
wird, so dass, wenn er in den aktiven Modus zurückkehrt, in der Lage ist, Operationen
von dem Zustand aus fortzuführen,
den er vor dem Eintreten in den Modus mit geringer Leistung besaß.
-
Einige
Prozessoren können
einen kohärenten
Speicherraum unterstützen
oder ermöglichen
es anderen Modulen einer Einrichtung, auf den Prozessorcache-Speicher
zuzugreifen. Um Cache-Transaktionen auszuführen unter Beibehaltung der
Kohärenz oder
um Zugriffsanforderungen von anderen Modulen abzuarbeiten, die empfangen
werden, während der
Prozessor sich in einem Modus geringer Leistung befindet, schalten
konventionelle Prozessoren von dem Modus mit geringer Leistung in
den aktiven Modus um. Auf Grund der physikalischen Eigenschaften des
Spannungsreglers kann jedoch der Prozessor nicht rasch von dem Modus
mit geringer Leistung in den aktiven Modus wechseln. Daher gehen
konventionelle Prozessoren typischerweise in den Modus mit geringer
Leistung weniger häufig über, wenn mehr
Cache-Transaktionsanforderungen empfangen werden, und daher sind
diese Prozessoren weniger häufig
im Modus mit geringer Leistung. Dies kann zu einer uner wünschten
Leistungsaufnahme durch den Prozessor führen. Folglich besteht ein
Bedarf für
eine neue Verarbeitungseinrichtung und Verfahren.
-
Kurze Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung kann besser verstanden werden und die zahlreichen
Merkmale und Vorteile werden für
den Fachmann offenkundig, wenn auf die begleitenden Zeichnungen
Bezug genommen wird.
-
1 ist
eine Blockansicht einer speziellen Ausführungsform eines Bauelements
mit einem Prozessor mit mehreren Betriebsmodi;
-
2 ist
eine Ansicht einer speziellen Ausführungsform von Betriebsspannungen,
die den Prozessor aus 1 zugeleitet werden;
-
3 ist
eine Blockansicht eines Frequenzsteuermoduls des Bauelements aus 1;
-
4 ist
ein Flussdiagramm einer speziellen Ausführungsform eines Verfahrens
zum Konfigurieren eines Betriebsmodus eines Prozessors;
-
5 ist
ein Flussdiagramm einer alternativen Ausführungsform für das Konfigurieren
eines Betriebsmodus eines Prozessors.
-
Detaillierte Beschreibung
-
Es
wird ein Prozessor beschrieben, der in drei unterschiedlichen Modi
arbeiten kann. In einem aktiven Modus wird dem Prozessor eine erste
Spannung (die im Weiteren als eine „aktive Spannung” bezeichnet
wird) zugeführt,
wobei die erste Spannung ausreichend ist, so dass der Prozessor
Befehle ausführen
kann. In einem Modus mit geringer Leistung wird eine Haltespannung
dem Prozessor zugeleitet, wobei die Haltespannung nicht ausreichend
ist, dass der Prozessor Befehle ausführen kann, wobei diese jedoch
ausreichend ist, um Zustandsinformation des Prozessors zu bewahren,
die vor dem Übergang
in den Modus mit geringer Leistung gespeichert ist. Der Prozessor
verbraucht weniger Leistung im Haltemodus als im aktiven Modus.
Im Weiteren kann der Prozessor in einem dritten Modus arbei ten,
der im Weiteren als ein Cache-Transaktionsarbeitsmodus bezeichnet
wird, wobei eine Spannung (die im Weiteren auch als eine „Cache-Transaktionsverarbeitungsspannung” bezeichnet
wird) dem Prozessor zugeführt
wird, wobei die Cache-Transaktionsverarbeitungsspannung
ausreichend ist, so dass der Prozessor Cache-Nachrichten, etwa Kohärenznachrichten, verarbeiten
kann, aber wobei er andere normale Operationen nicht ausführen kann
oder normale Operationen bei sehr geringer Geschwindigkeit im Vergleich
zum Leistungsverhalten im aktiven Modus ausführen kann. Die dem Prozessor
im Cache-Transaktionsverarbeitungsmodus zugeführte Spannung ist geringer
als die Spannung im aktiven Modus und ist höher als die Spannung im Haltemodus.
-
Wenn
der Prozessor eine Cache-Transaktion durchführen muss, und wenn er sich
im Modus mit geringer Leistung befindet, geht er in den Cache-Transaktionsverarbeitungsmodus über und
verarbeitet die Cache-Transaktion. Sobald die Verarbeitung der Cache-Transaktion abgeschlossen
ist, geht der Prozessor wieder in den Modus mit geringer Leistung über. Da
nur ein relativ kleiner Spannungsunterschied zwischen der Haltespannung,
die im Modus mit geringer Leistung bereitgestellt wird, und der
Cache-Transaktionsverarbeitungsspannung
besteht, die dem Prozessor im Cache-Transaktionsverarbeitungsmodus zugeführt wird
(im Vergleich zu dem Spannungsunterschied zwischen der Haltespannung und
der aktiven Spannung), ist der Prozessor in der Lage, den Übergang
zwischen dem Modus mit geringer Leistung und dem Cache-Transaktionsverarbeitungsmodus
rascher durchzuführen
(im Vergleich zum Übergang
von dem Modus mit geringer Leistung in den aktiven Modus), wodurch
der Prozessor eine längere
Zeitdauer im Modus mit geringer Leistung verbleiben kann und somit
die Leistungsaufnahme des Prozessors reduziert wird.
-
1 zeigt
eine Blockansicht eines Systems 100. Das System 100 umfasst
einen Prozessor 102, einen Bus 103, einen Prozessor 105,
eine Peripherieeinrichtung 106, eine Peripherieeinrichtung 107 und einen
Spannungsregler 130. Der Prozessor 102, der Prozessor 105 und
die Peripherieeinrichtungen 106 und 107 sind jeweils
mit dem Bus 103 verbunden. Der Prozessor 102 enthält einen
Ausgang, um ein Signal, das als VCTRL bezeichnet
ist, einem Eingang des Spannungsreglers 130 zuzuleiten.
Des weiteren enthält
der Prozessor 102 einen Eingang, um eine einstellbare Spannung,
die als VDD bezeichnet ist, von einem Ausgang des Spannungsreglers 130 zu
empfangen. Der Prozessor 103 und der Prozessor 105 können jeweils
ein Mikroprozessor, eine Mikrosteuerung, eine anwendungsspezifische integrierte
Schaltung (ASIC) und dergleichen sein. Die Peripherieeinrichtungen 106 und 107 können jeweils
eine Speichersteuerung, eine Eingabe/Ausgabe-Steuerung, eine periphere
Steuerung und dergleichen sein. Ferner kann jeder der dargestellten
Bereiche des Systems 100 auf einem gemeinsamen Halbleitersubstrat integriert
sein oder kann auf unterschiedlichen Substraten vorgesehen sein.
Beispielsweise sind der Prozessor 102 und der Prozessor 105 in
einem gemeinsamen Halbleitersubstrat integriert, während die
Peripherieeinrichtungen 106 und 107 außerhalb
dieses Halbleitersubstrats angeordnet sind. In der dargestellten
Ausführungsform
ist der Spannungsregler 120 extern zu dem Prozessor 102 vorgesehen.
In anderen Ausführungsformen
kann der Spannungsregler 130 in dem Prozessor 102 eingerichtet
sein.
-
Während des
Betriebs kann der Prozessor 102 in einem aktiven Modus,
einem Modus mit geringer Leistung und einem Cache-Transaktionsverarbeitungsmodus
sein. Im aktiven Modus kann der Prozessor 102 Befehle ausführen und
kann auch andere normale Operationen durchführen. Im Modus mit geringer
Leistung befindet sich der Prozessor 102 in einem Halte-
bzw. Ruhezustand derart, dass der Zustand des Prozessors 102 bewahrt
wird. In dem Modus mit geringer Leistung kann der Prozessor 102 keine
Befehle oder andere normale Operationen ausführen. Im Cache-Transaktionsverarbeitungsmodus ist
der Prozessor 102 in der Lage, Cache-Nachrichten, die von
dem Prozessor 105 und den Peripherieeinrichtungen 106 und 107 über den
Bus 103 bereitgestellt werden, zu verarbeiten. Die Cache-Nachrichten repräsentieren
Anforderungen an den Prozessor 102, um Cache-Transaktionen, etwa
Kohärenztransaktionen
oder Zugriffstransaktionen, zu verarbeiten. Der Prozessor 102 verarbeitet
die Cache-Nachricht durch Analysieren der Cache-Nachricht und bei
Bedarf durch Ausführen
der angeforderten Cache-Transaktion.
-
Der
Spannungsregler 130 liefert einen unterschiedlichen Spannungspegel
für die
Betriebsspannung VDD für
jeden der drei Betriebsmodi des Prozessors 102. In dem
aktiven Modus ist die Betriebsspannung auf den aktiven Spannungspegel
eingestellt, so dass der Prozessor 102 Befehle ausführen kann.
Im Cache-Transaktionsverarbeitungsmodus ist die Betriebsspannung
VDD auf den Cache-Transaktionsverarbeitungsspannungspegel eingestellt,
der kleiner ist als der aktive Spannungspegel. Dieser Spannungspegel
ermöglicht
es dem Prozessor 102, Cache-Nachrichten zu verarbeiten,
aber keine anderen normalen Operationen auszuführen oder andere normale Operationen
lediglich bei einer geringen Geschwindigkeit im Vergleich zum Leistungsverhalten für normale
Operationen im aktiven Modus auszuführen. Im Modus mit geringer
Leistung ist die Betriebsspannung VDD auf eine Haltespannung festgelegt, so
dass der Prozessor 102 in der Lage ist, Zustandsinformationen
zu bewahren aber keine Befehle auszuführen. Die Haltespannung ist
kleiner als die Cache-Transaktionsverarbeitungsspannung.
In einer speziellen Ausführungsform
beträgt
die Haltespannung ungefähr
0,7 Volt, die Cache-Transaktionsverarbeitungsspannung liegt zwischen
ungefähr
0,75 und ungefähr
0,8 Volt und die aktive Spannung liegt bei ungefähr 1,1 Volt.
-
Der
Pegel der Spannung VDD wird durch das Signal VCTL gesteuert.
Wenn folglich der Prozessor 102 in einen neuen Modus übergeht,
konfiguriert er den Spannungsregel 120 so, dass die Spannung VDD
auf den geeigneten Pegel für
den neuen Modus festgelegt wird, wobei das Signal VCTRL verwendet wird.
-
Der
Prozessor 102 kann die Betriebsmodi in Abhängigkeit
unterschiedlicher Faktoren wechseln. Beispielsweise kann der Prozessor 102 von
dem aktiven Modus in den Modus mit geringer Leistung überwechseln,
wenn eine bestimmte Zeitdauer verstrichen ist, in der keine Anwendereingabe
im System 100 empfangen wurde. Im Modus mit geringer Leistung
kann der Prozessor 102 weiterhin Cache-Nachrichten von
dem Prozessor 105 oder den peripheren Einrichtungen 106 und 107 empfangen. Beispiele
von Cache-Nachrichten, die den Prozess 102 veranlassen,
in den Cache-Transaktionsverarbeitungsmodus überzugehen, können Cache-Abfrage-
oder Cache-Lesenachrichten (beispielsweise Nachrichten zur Prüfung, ob
eine Cache-Speicherstelle modifizierte Daten enthält), Cache-Ungültigkeitserklärungsnachrichten
(beispielsweise Nachrichten, die angeben, dass eine spezielle Cache-Zeile
als ungültig
erklärt
werden soll, da Daten, die mit dieser Cache-Zeile verknüpft sind,
modifiziert wurden durch eine der peripheren Einrichtungen 106 und 107 oder
durch den Prozessor 105), und Cache-Schreibnachrichten
(beispielsweise Nachrichten, die es den peripheren Einrichtungen 106 und 107 und
dem Prozessor 105 ermöglichen,
direkt in den Cache-Speicher zu schreiben) enthalten. In Reaktion
auf das Empfangen der Cache-Nachricht kann der Prozessor 102 in
den Cache-Transaktionsverarbeitungsmodus übergehen,
kann die Cache-Nachricht verarbeiten und kann wieder in den Modus
mit geringer Leistung nach Beendigung der Verarbeitung zurückkehren.
Da der Prozessor 102 nicht in den aktiven Modus übergehen
muss, um die Cache-Nachricht zu bearbeiten, ist er in der Lage,
in den Modus mit geringer Leistung schneller zurückzukehren, wodurch Energie
gespart wird.
-
Der
Prozessor 102 enthält
einen Prozessorkern 110, einen Cache-Speicher bzw. einen
Zwischenspeicher 120, ein Modussteuermodul 140,
eine Kohärenzeinrichtung 150 und
ein Frequenzsteuermodul 160. Der Prozessorkern 110 enthält eine
bidirektionale Verbindung zu dem Cache-Speicher 120. Der
Prozessorkern 110 enthält
ferner einen Eingang, um ein Signal FRQ_CTRL zu empfangen, und enthält einen
Eingang, um ein Signal C_CTRL1 zu empfangen. Der Cache-Speicher 120 enthält einen
Eingang, um ein Signal C_CTRL2 zu empfangen. Die Kohärenzeinrichtung
enthält
Ausgänge,
um Steuersignale C_CTRL1, C_CTRL2 und C_CTRL3 auszugeben. Das Modussteuermodul 140 enthält einen
Eingang, um das Signal C_CTRL3 zu empfangen, einen Ausgang, um das
Signal V_CTRL auszugeben, einen Ausgang, um das Signal MODE_INDICATOR
bereitzustellen und einen Ausgang, um das Signal M_RCV bereitzustellen.
Das Frequenzsteuermodul 160 enthält einen Eingang, um das Signal
M_RCV zu empfangen, und enthält
einen Ausgang, um das Signal FRQ_CTRL auszugeben.
-
Der
Prozessorkern 110 ist ausgebildet, Befehle in dem aktiven
Modus auszuführen
und andere Operationen durchzuführen,
etwa die Verarbeitung von Cache-Nachrichten im aktiven Modus und
im Cache-Transaktionsverarbeitungsmodus. Der Prozessorkern 110 ist
ferner ausgebildet, Zugriffsanforderungen und Kohärenzinformationen
an den Cache-Speicher 120 zu
liefern.
-
Der
Cache-Speicher 120 ist ausgebildet, Daten in Reaktion auf
Anforderungen, die von dem Prozessorkern 110, oder auf
Information, die über
das Signal C_CTRL2 bereitgestellt wird, zu speichern und bereitzustellen.
Der Cache-Speicher 120 enthält ferner eine Kohärenzinformation
für seine
gespeicherten Daten und kann diese Kohärenzinformation auf der Grundlage
von Anforderungen aus dem Prozessorkern 110 oder auf der
Grundlage von Information, die über
das Signal C_CTRL2 bereitgestellt wird, modifizieren.
-
Die
Kohärenzeinrichtung 150 ist
ausgebildet, Cache-Nachrichten, die Cache-Transaktionsanforderungen repräsentieren, über den
Bus 103 von dem Prozessor 105 und den peripheren
Einrichtungen 106, 107 zu empfangen. Cache-Nachrichten
können Kohärenztransaktionen
und Cache-Zugriffsanforderungen aus dem Prozessor 105 und
den peripheren Einrichtungen 106 und 107 repräsentieren.
Die Kohärenzeinrichtung 150 liefert Information über die empfangenen
Cache-Nachrichten über
die Signale C_CTRL1, C_CTRL2 und C_CTRL3.
-
Das
Modussteuermodul 140 ist ausgebildet, Information über empfangene
Cache-Nachrichten 140 zu
empfangen und ist ausgebildet, den Betriebsmodus des Prozessors 102 zu
steuern. Um den Betriebsmodus zu steuern, liefert das Modussteuermodul 140 Information
mittels des V_CTL-Signals, um die Betriebsspannung VDD einzustellen,
Information mittels des MODE_INDICATOR-Signals zur Festlegung der
Taktfrequenz für
den Prozessorkern 110 in jedem Betriebsmodus, und liefert
Information mittels des M_RCV-Signals,
um anzugeben, dass eine Cache-Nachricht empfangen wurde.
-
Das
Frequenzsteuermodul 160 ist ausgebildet, Information mittels
des M_RCV-Signals zu empfangen, die angibt, dass eine Cache-Nachricht
empfangen wurde, und um Information mittels des MODE_INDICATOR-Signals
zu empfangen, das den Betriebsmodus für den Prozess 102 festlegt.
Das Frequenzsteuermodul 160 ist ausgebildet, Information
mittels des FRQ_CTL-Signals bereitzustellen, um die Taktfrequenz
des Prozessorkerns 110 abhängig von dem Betriebsmodus
des Prozessors 102 einzustellen. Das Frequenzsteuermodul 160 ist
ferner ausgebildet, die Anzahl an Cache-Nachrichten zu bestimmen,
die in einer definierten Zeitdauer empfangen wurden, und auf der
Grundlage dieser Feststellung Information mittels des FRQ_CTL-Signals
bereitzustellen, um die Taktfrequenz des Prozessorkerns 110 im
Cache-Transaktionsverarbeitungsmodus zu ändern.
-
Während des
Betriebs führt
im aktiven Modus der Prozessorkern 110 Befehle aus, um
Aufgaben des Prozessors 102 durchzuführen. Die Kohärenzeinrichtung 150 stellt
sicher, dass der Cache-Speicher 120 kohärent zum anderen Speicher des
Systems 100 bleibt, etwa einem Cache-Speicher des Prozessors 105 (nicht
gezeigt) oder einem Speicher, der von einer der peripheren Einrichtungen 106 und 107 gesteuert
ist. Die Kohärenzeinrichtung 150 empfängt Cache-Nachrichten,
etwa Kohärenznachrichten, über den
Bus 103. Auf der Grundlage der empfangenen Cache-Nachrichten
liefert die Kohärenzeinrichtung 150 eine
Kohärenzinformation
zum Prozessorkern 110 und zu dem Cache-Speicher 120 mittels
der Signale C_CTRL1 und C_CTRL2.
-
In
Reaktion auf das Empfangen einer Cache-Nachricht, die angibt, dass
Daten entsprechend einer Speicheradresse von dem Prozessor 105 modifiziert
wurden, benachrichtigt beispielsweise die Kohärenzeinrichtung 150 den
Prozessorkern 110 und den Cache-Speicher 120 über die
Modifizierung. In Reaktion darauf bestimmen der Prozessorkern 110 und
der Cache-Speicher 120, ob der Cache-Speicher 120 Daten
enthält,
die mit dieser Speicheradresse verknüpft sind, und wenn dies der
Fall ist, wird eine geeignete Aktivität durchgeführt, etwa das Ungültigerklären der
Cache-Zeile.
-
Das
Modussteuermodul 140 steuert den Betriebsmodus des Prozessors 102 in
Abhängigkeit
von den Betriebsbedingungen des Systems 100 und in Abhängigkeit
anderer Faktoren. Beispielsweise kann das Modussteuermodul 140 den
Betriebsmodus vom aktiven Modus in den Modus mit geringer Leistung ändern, wenn
es keine Anwendereingabe in das System 100 während einer
definierten Zeitspanne gab, wenn es keine Busaktivität für eine definierte
Zeitdauer gab, oder wenn ein Betriebssystem oder eine andere Software,
die auf dem Prozessor 102 oder dem Prozessor 105 abläuft, den
Prozessor 102 anweist, in den Modus mit geringer Leistung überzugehen.
Das Modussteuermodul 140 kann ferner den Betriebsmodus
von dem Modus mit geringer Leistung in den aktiven Modus in Reaktion
auf eine Anwendereingabe oder einen empfangenen Interrupt ändern. Um
den Betriebsmodus zu ändern
ist, liefert das Modussteuermodul 140 das Signal V_CTRL
an den Spannungsregler, wenn die Betriebsspannung VDD für den Prozessor 102 zu ändern. Des
weiteren gibt das Modussteuermodul 140 den Betriebsmodus
an das Frequenzsteuermodul 160 über das Signal MODE_INDICATOR
weiter, um die Taktfrequenz des Prozessorkerns 110 in dem
jeweiligen Modus festzulegen.
-
In
Reaktion auf das Empfangen einer Kohärenznachricht benachrichtigt
die Kohärenzeinrichtung 150 das
Modussteuermodul 140 über
das Signal C_CTRL3. Wenn der Prozessor 102 sich in dem
Modus mit geringer Leistung befindet, ändert in Reaktion darauf das
Modussteuermodul 140 den Betriebsmodus in den Cache-Transaktionsverarbeitungsmodus. Das
Modussteuermodul 140 liefert das Signal V_CTRL, um die
Betriebsspannung VDD auf den geeigneten Pegel festzulegen, so dass
der Prozess 102 die Cache-Nachricht verarbeiten kann. Des
weiteren benachrichtigt das Modussteuermodul 140 das Frequenzsteuermodul 160,
dass eine Cache-Nachricht empfangen wurde. Sobald der Prozessorkern 110 die Bearbeitung
der Cache-Nachricht beendet hat, versetzt das Modussteuermodul 140 den
Prozessor 102 wieder in dem Modus mit geringer Leistung,
wobei auch der Pegel der Betriebsspannung VDD geändert wird, so dass Energie
gespart wird.
-
In
einer alternativen Ausführungsform ändert das
Modussteuermodul 140 den Betriebsmodus des Prozesses 102 nur,
wenn eine festgelegte Anzahl an Cache-Nachrichten empfangen wurde.
In diesem Falle versetzt das Modussteuermodul 140 den Prozessor
wieder in den Modus mit geringer Leistung, sobald alle anhängigen Cache-Nachrichten
verarbeitet sind.
-
Das
Frequenzsteuermodul 160 setzt die Taktfrequenz für den Prozessorkern 110 auf
der Grundlage des MODE_INDICATOR-Signals fest. In einer speziellen
Ausführungsform
wird die Taktfrequenz auf ungefähr
Null im Modus mit geringer Leistung festgelegt, und im Cache-Transaktionsverarbeitungsmodus
wird eine kleinere Frequenz als im aktiven Modus eingestellt. Des
weiteren misst im Cache-Transaktionsverarbeitungsmodus das Frequenzsteuermodul
die Anzahl an Cache-Nachrichten, die in einer gewissen Zeitdauer
empfangen werden. Wenn die Anzahl an empfangenen Cache-Nachrichten
einen Schwellwert übersteigt,
liefert das Frequenzsteuermodul 160 Information mittels des
FRQ_CTRL-Signals, um die Taktfrequenz für den Prozessorkern 110 im
Cache-Transaktionsverarbeitungsmodus
zu ändern.
Dies bewirkt, dass der Prozessorkern 110 mehr Leistung
benötigt,
jedoch die Cache-Nachricht rascher verarbeitet. Folglich kann durch
das Festlegen der Schwellwertanzahl an Cache-Nachrichten in geeigneter
Weise die Gesamtleistungsaufnahme des Prozessors 102 verringert werden.
-
2 ist
ein Diagramm, das ein beispielhaftes Spannungsausgangssignal 202 für den Spannungsregler 120 aus 1 während des
Betriebs des Systems 100 darstellt. Die Y-Achse des dargestellten
Diagramms gibt den Pegel der Spannung VDD an, während die X-Achse die Zeit bezeichnet. Wie gezeigt,
befindet sich in der Zeitdauer 204 der Prozessor 102 in
einem aktiven Modus und die Betriebsspannung VDD entspricht dem
aktiven Spannungspegel. Zur Zeit 205 wird ein Indikatorsignal
zur Betriebsmodusänderung
empfangen, wodurch angegeben wird, dass der Prozessor 102 in
den Modus mit geringer Leistung übergehen
soll. Diese Modusänderungsangabe
wird in Reaktion auf eine Anwendereingabe, in Reaktion auf das Fehlen
einer Anwendereingabe innerhalb einer vorbestimmten Zeitdauer oder
in Reaktion auf einen anderen Faktor erhalten. Beispielsweise kann
die Software veranlassen, dass die Modusänderungsangabe ausgegeben wird.
In einer weiteren Ausführungsform
kann die Software bewirken, dass die Modusänderungsangabe ausgegeben wird,
aber die Ausgabe wird nicht weitergeleitet, sofern nicht das Fehlen
einer Busaktivität
für eine
gewisse Zeitdauer erkannt wurde. In anderen Ausführungsform kann die Mo dusänderungsangabe
in Reaktion auf das Fehlen einer Modusaktivität für eine gewisse Zeitdauer ohne
Softwareinitiierung ausgegeben werden.
-
In
Reaktion auf die Modusänderungsangabe wird
die Spannung VDD auf den Haltespannungspegel geändert und der Prozessor 102 geht
in den Modus mit geringer Leistung über und verbleibt im Modus
mit geringer Leistung während
der Zeitdauer 206. Zur Zeit 207 empfängt der
Prozessor 102 eine Cache-Nachricht. In Reaktion darauf
wechselt der Prozessor 102 in den Cache-Transaktionsverarbeitungsmodus über und
der Spannungspegel VDD wird auf den Cache-Transaktionsverarbeitungsspannungspegel
eingestellt. Der Prozessor 102 bleibt während der Zeitdauer 208 im
Cache-Transaktionsverarbeitungsmodus. In Reaktion auf das Beenden der
Verarbeitung der Cache-Nachricht kehrt zum Zeitpunkt 209 der
Prozessor 202 in den Modus mit geringer Leistung zurück und die
Spannung VDD, die von dem Spannungsregler 120 geliefert
wird, wird auf die Haltespannung eingestellt.
-
Die
Länge der
Zeitdauer 208 hängt
von der Frequenz des Taktsignals des Prozessorkerns 110 ab.
Wenn die Anzahl an Cache-Nachrichten, die in einer speziellen Zeitdauer
empfangen wird, einen Schwellwert übersteigt, kann die Taktfrequenz
eingestellt werden, um die Zeitdauer 208 zu verkürzen. Dadurch
wird der Anteil an Leistung erhöht,
der von dem Prozessor 102 während der Zeitdauer 208 aufgenommen
wird, wodurch jedoch der Prozessor 102 in die Lage versetzt
wird, Cache-Nachrichten rascher zu verarbeiten und damit zügiger zur
Zeit 210 in den Zustand mit geringer Leistung zurückzukehren.
Folglich kann der Schwellwert für
die Anzahl der Cache-Nachrichten so festgelegt werden, dass die
Gesamtleistungsaufnahme des Prozessors 102 verringert wird.
-
Zum
Zeitpunkt 211 wird eine weitere Cache-Nachricht empfangen.
In Reaktion darauf wird die Spannung VDD auf den Cache-Transaktionsverarbeitungsspannungspegel
gebracht und der Prozessor 102 geht für die Zeitdauer 212 in
den Cache-Transaktionsverarbeitungsmodus über. Nach Abschluss
der Verarbeitung der Cache-Nachricht zum
Zeitpunkt 212 kehrt der Prozessor 212 in den Modus
mit geringer Leistung zurück
und die Spannung VDD wird auf den Haltespannungspegel für die Zeitdauer 214 festgelegt.
Wenn eine Cache-Nachricht empfangen wird, kann somit der Prozessor 102 in
den Cache-Transaktionsverarbeitungsmodus übergehen und anschließend in
den Modus mit geringer Leistung zurückkehren.
-
Zur
Zeit 215 wird eine Modusänderungsangabe bzw. ein Indikatorsignal
empfangen, das angibt, dass der Prozessor 102 in den aktiven
Modus überwechseln
soll. Die Modusänderungsangabe
wird in Reaktion auf eine Anwendereingabe oder in Reaktion auf einen
anderen Faktor empfangen. Beispielsweise kann eine periphere Einrichtung
einen Interrupt initiieren, der die Modusänderungsangabe hervorruft.
In einer weiteren Ausführungsform
kann die Modusänderungsangabe
in Reaktion auf das Ablaufen einer Zeitdauer empfangen werden. In
Reaktion auf die Modusänderungsangabe
wechselt der Prozess 102 in den aktiven Modus über und
die Betriebsspannung VDD wird für
die Zeitdauer 216 wieder auf den höchsten Pegel gesetzt.
-
3 ist
eine Blockansicht einer speziellen Ausführungsform eines Frequenzsteuermoduls 360, das
dem Frequenzsteuermodul 160 aus 1 entspricht.
Das Frequenzsteuermodul 360 enthält ein Taktmodul 305,
einen Zeitzähler 306,
einen Kohärenznachrichtenzähler 310 und
ein Frequenzauswahlmodul 215. Das Taktmodul 305 enthält einen
Ausgang, um ein Taktsignal CLK bereitzustellen. Der Zeitzähler 306 enthält einen
Eingang, um das Taktsignal CLK zu empfangen, und weist ferner einen
Ausgang auf. Der Kohärenznachrichtenzähler 310 umfasst
einen Eingang, der als Reset angegeben ist, und der mit dem Ausgang
des Zeitzählers 306 verbunden
ist. Der Kohärenznachrichtenzähler 310 umfasst
ferner einen Eingang, um das Signal M_RCV zu empfangen, und weist
ferner einen Ausgang auf. Das Frequenzausgangsmodul 315 enthält einen
Eingang, der mit dem Ausgang des Kohärenznachrichtenzählers 310 verbunden
ist, und enthält
einen Eingang, um das MODE_INDICATOR-Signal zu empfangen, und weist ferner
einen Ausgang auf, um das Signal FRQ_CTRL auszugeben.
-
Während des
Betriebs liefert das Frequenzauswahlmodul Information mittels des FRQ_CTRL-Signals,
um die Taktfrequenz für
den Prozessorkern 110 auf der Grundlage des Betriebsmodus
einzustellen, der durch das MODE_INDICATOR-Signal angegeben ist.
Wenn ferner eine Kohärenznachricht
empfangen wird, wird der Kohärenznachrichtenzähler 310 über das
Signal M_RCV benachrichtigt. In Reaktion darauf wird ein im Kohärenznachrichtenzähler 310 gespeicherter Wert
eingestellt. Des weiteren liefert der Zeitzähler 306 ein Signal
an den Reset-Eingang, um den Kohärenznachrichtenzähler 310 nach
einer gewissen Zeitdauer auf der Grundlage des Taktsignals CLK zurückzusetzen.
In einer speziellen Ausführungsform ist
der Zähler 306 ein
Abwärtszähler, der
bei einem Anfangswert beginnt und auf der Grundlage von Übergängen des
Taktsignals CLK abwärts
bis Null zählt.
Wenn der Zähler 306 den
Wert Null erreicht, wird das Signal zum Zurücksetzen des Kohärenznachrichtenzählers ausgegeben.
Somit repräsentiert der
im Kohärenznachrichtenzähler 310 gespeicherte Wert
die Anzahl an Kohärenznachrichten,
die in der Zeitdauer empfangen werden. Die Zeitdauer kann ein festgelegter
Wert sein oder kann ein programmierbarer Wert sein. Der programmierbare
Wert wird ggf. auf der Grundlage eines BIOS-Wertes für das System 100,
auf der Grundlage eines Befehls, der im Prozessor 102 ausgeführt wird,
festgelegt oder dieser wird durch einen Anwender anderweitig programmiert.
-
Wenn
der in dem Kohärenznachrichtenzähler 310 gespeicherte
Wert einen Schwellwert vor dem Zurücksetzen des Zählers übersteigt,
wodurch angezeigt wird, dass die Anzahl der in der festgelegten Zeitdauer
empfangenen Kohärenznachrichten
den Schwellwert übersteigt,
benachrichtigt der Kohärenznachrichtenzähler 310 das
Frequenzauswahlmodul 210. In Reaktion darauf liefert das
Frequenzauswahlmodul 210 Information mittels des Signals FRQ_CTRL,
um die Taktfrequenz für
den Prozessorkern 110 zu ändern, wenn der Prozessor 102 im
Cache-Transaktionsverarbeitungsmodus ist. Wenn daher die Anzahl
an Kohärenznachrichten,
die in einer speziellen Zeitdauer empfangen wird, den Schwellwert übersteigt,
stellt das Frequenzsteuermodul 260 die Taktgeschwindigkeit
für den
Prozessor 110 ein, wenn der Prozessor 102 in dem
Cache-Transaktionsverarbeitungsmodul ist, wodurch sichergestellt
ist, dass die Kohärenznachrichten
rascher verarbeitet werden, wodurch der Prozessor 102 schneller
wieder von dem Cache-Transaktionsverarbeitungsmodus in den Modus
mit geringer Leistung wechseln und damit Energie sparen kann.
-
4 ist
ein Flussdiagramm einer speziellen Ausführungsform eines Verfahrens
zum Bereitstellen von Spannungen für einen Prozessor. Im Block 402 wird
eine erste Betriebsspannung für
den Prozessor während
einer ersten Zeitdauer bereitgestellt, so dass der Prozessor sich
in einem aktiven Modus befindet. Im Block 404 werden die
Befehle im Prozessor während
der ersten Zeitdauer ausgeführt.
Im Block 406 wird eine Modusänderungsangabe empfangen. In
Reaktion auf die Modusänderungsangabe
wird im Block 408 eine Haltespannung für den Prozessor während der
zweiten Zeitdauer bereitgestellt.
-
Im
Block 410 wird eine Kohärenznachricht während der
zweiten Zeitdauer empfangen. In Reaktion darauf wird im Block 412 eine
zweite Betriebsspannung dem Prozessor während einer dritten Dauer zugeleitet.
Im Block 414 wird die Kohärenznachricht im Prozessor
verarbeitet. Im Block 416 wird in Reaktion auf das Beenden
des Verarbeitens der Kohärenz nachricht
die Haltespannung dem Prozessor während einer vierten Zeitdauer
zugeleitet. Somit ist der Prozessor in der Lage, Kohärenznachrichten ohne
Wechseln in den aktiven Modus zu verarbeiten, wodurch der Prozessor
rascher in den Modus mit geringer Leistung zurückwechseln kann und damit Leistung
spart.
-
5 ist
ein Flussdiagramm einer alternativen Ausführungsform eines Verfahrens
zum Bereitstellen von Spannung für
einen Prozessor. Im Block 502 befindet sich ein Prozessor
in einem Modus mit geringer Leistung während einer ersten Zeitdauer und
daher wird dem Prozessor eine Haltespannung während dieser Zeitdauer zugeleitet.
Im Block 504 wird eine Kohärenznachricht während der
ersten Zeitdauer empfangen, während
der Prozessor im Modus mit geringer Leistung ist. In Reaktion darauf geht
im Block 506 der Prozessor in den Cache-Transaktionsverarbeitungsmodus über und
es wird eine erste Betriebsspannung während einer zweiten Zeitdauer
bereitgestellt. Im Block 508 wird während der zweiten Zeitdauer
(d. h. während
sich der Prozessor in dem Cache-Transaktionsverarbeitungsmodus
befindet) die Cache-Nachricht verarbeitet.
-
Im
Block 510 geht in Reaktion auf die Beendigung der Verarbeitung
der Cache-Nachricht der Prozessor wieder in den Modus mit geringer
Leistung zurück
und es wird die Haltespannung während
einer dritten Zeitdauer bereitgestellt. Im Block 512 wird eine
Modusänderungsangabe
während
der dritten Zeitdauer empfangen, während sich der Prozessor im
Modus mit geringer Leistung befindet. In Reaktion darauf wechselt
im Block 514 der Prozessor in den aktiven Modus über und
es wird eine zweite Betriebsspannung dem Prozessor zugeleitet.
-
Andere
Ausführungsformen,
Verwendungszwecke und Vorteile der Erfindung werden für den Fachmann
angesichts dieser Betrachtung der Beschreibung und der Anwendung
der Erfindung, wie sie hierin offenbart ist, offenkundig. Es sollte
weiterhin beachtet werden, dass obwohl einige Schaltungselemente
und Module hierin so beschrieben und dargestellt sind, dass sie
mit anderen Schaltungselementen verbunden sind, die dargestellten
Elemente auch über
weitere Schaltungselemente, etwa Widerstände, Kondensatoren, Transistoren
und dergleichen miteinander verbunden werden können. Die Beschreibung und
die Zeichnungen sollen lediglich als anschaulich betrachtet werden
und es ist beabsichtigt, dass der Schutzbereich der Erfindung durch die
folgenden Patentansprüche
und deren Äquivalente
festgelegt ist.
-
Zusammenfassung
-
Ein
Prozessor kann in drei unterschiedlichen Betriebsmodi arbeiten.
In einem aktiven Modus wird dem Prozessor eine erste Spannung zugeleitet,
wobei die erste Spannung ausreichend ist, um es dem Prozessor zu
ermöglichen,
Befehle auszuführen (402).
In einem Modus mit geringer Leistung wird dem Prozessor eine Haltespannung
zugeleitet (408). Der Prozessor verbraucht weniger Energie
im Haltemodus als im aktiven Modus. Des weiteren kann der Prozessor
in einem dritten Modus arbeiten, wobei dem Prozessor eine Spannung
zugeleitet wird, die ausreichend ist, so dass der Prozessor Cache-Nachrichten
verarbeiten kann, aber keine anderen normalen Operationen ausführen oder
normale Operationen bei einer sehr geringen Geschwindigkeit im Vergleich
zur Leistungsfähigkeit
im aktiven Modus ausführen
kann (412).