-
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ß.
-
In der
US 2004/0255176 A1 wird ein Verfahren zur Energieeinsparung beim Betrieb eines Prozessors beschrieben, in dem in einem normalen Betriebszustand eine erste Spannung an den Prozessor geliefert wird und in einem zweiten Zustand eine zweite Spannung an den Prozessor geliefert wird.
-
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 arbeiten, 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 10d6 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 Modusä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ärenznachricht 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.