-
HINTERGRUND
-
Technisches Gebiet
-
Eines oder mehrere Ausführungsbeispiele der vorliegenden Erfindung beziehen sich allgemein auf ein thermisches Management. Insbesondere beziehen sich bestimmte Ausführungsbeispiele auf das Verengen des Bereichs zwischen den Arbeitspunkten, die durch einen thermischen Managementcontroller gewählt werden.
-
Diskussion
-
Die Popularität von Rechensystemen nimmt zu und die Anforderung an komplexere Prozessorarchitekturen hat neue Höhen erreicht. Infolgedessen können moderne Arbeitsbelastungen und Mikroprozessoren mehr Leistung verbrauchen und mehr Wärme erzeugen, als dies bisher festgestellt wurde. Die erzeugte Wärme kann die Eigenschaft beschranken und relativ teure thermische Lösungen erfordern. Auf einer Software basierende Temperaturmanagementlösungen wurden entwickelt, um dies Problem zu lösen, einige dieser Lösungen erfordern jedoch die Beobachtung von komplexen Variablen und können zu relativ hohem Rechenaufwand führen. Zusätzlich kann die Reaktionszeit von auf einer Software basierenden Lösungen für bestimmte Notsituationen nicht akzeptabel sein.
-
Auf einer Hardware basierende Temperaturmanagementlösungen reagieren dagegen schneller, es sind geringe Mengen an Eingangsdaten für geeignete Eigenschaften ausreichend. Beispielsweise drosseln bestimmte Ansätze die Prozessorfrequenz auf eine untere Frequenz, wenn die Temperatur relativ hoch ist, um den Leistungsverbrauch und die Wärmeerzeugung zu beschränken. Wenn die Temperatur abnimmt, kann die Betriebsfrequenz zurück auf die maximale Frequenz geschaltet werden. Eine solche Lösung kann dazu in der Lage sein, Drosselentscheidungen basierend auf einer relativ begrenzten Menge von Daten zu treffen (beispielsweise, ob die Temperatur oberhalb oder unterhalb eines gegebenen Schwellenwerts ist).
-
Wenn das verwendete Modell thermisch nicht zu begrenzt ist (beispielsweise die optimale Drosselfrequenz nur wenige Prozent geringer als die maximale Frequenz ist) kann das Risiko des nicht genutzten Potentials relativ gering sein. Bei Systemen, die thermisch stark begrenzt sind, kann ein derartiger Ansatz jedoch ein hohes Risiko des Leistungsverlusts bei dem Alternieren zwischen zwei Frequenzen, die weit voneinander entfernt sind, haben. Da Mikroprozessoren thermisch mehr und mehr begrenzt sind, kann dieses Problem an Bedeutung zunehmen.
-
Ein Verfahren zum Erhalten eines „throttle-setting” eines Prozessors ist bekannt aus
US 6,701,272 B2 . Zudem offenbart
WO 2004/036398 A2 ein Verfahren zum dynamischen Einstellen eines Betriebspunktes einer elektronischen Vorrichtung in Antwort auf ein Feststellen, ob die Temperatur der elektronischen Vorrichtung unter oder über einem Schwellenwert liegt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Der Erfindung liegt eine Aufgabe zugrunde, den Leistungsverlust bei Prozessoren beim Alternieren zwischen zwei Frequenzen zu reduzieren.
-
Diese Aufgabe wird gemäß der vorliegenden Erfindung durch ein Verfahren des Temperaturmanagements für einen Prozessor gemäß dem unabhängigen Anspruch 1 und eine Vorrichtung des Temperaturmanagements für einen Prozessor gemäß dem unabhängigen Anspruch 9 gelöst. Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen beansprucht.
-
KURZE ERLÄUTERUNG DER ZEICHNUNGEN
-
Die verschiedenen Vorteile der vorliegenden Erfindung ergeben sich dem Fachmann durch Lesen der folgenden Beschreibung und der beiliegenden Ansprüche und durch Bezugnahme auf die folgenden Zeichnungen. Dabei zeigt:
-
1 ein Blockdiagramm eines Beispiels eines Prozessors nach einem Ausführungsbeispiel der Erfindung;
-
2 ein Diagramm eines Beispiels einer Zustandsmaschine nach einem Ausführungsbeispiel der Erfindung;
-
3 ein Diagramm eines Beispiels eines Temperaturmanagementcontrollers nach einem Ausführungsbeispiel der Erfindung;
-
4 ein Diagramm eines Beispiels eines Systems nach einem Ausführungsbeispiel der Erfindung;
-
5 ein Flussdiagramm eines Beispiels eines Verfahrens eines Temperaturmanagements entsprechend einem Ausführungsbeispiel der Erfindung;
-
6 ein Flussdiagramm eines Beispiels eines Prozesses einer Kaltzustandssteuerung nach einem Ausführungsbeispiel der Erfindung;
-
7 ein Flussdiagramm eines Beispiels eines Prozesses einer Heißzustandssteuerung nach einem Ausführungsbeispiel der Erfindung, und
-
8 ein Diagramm eines Beispiels eines Systems nach einem alternativen Ausführungsbeispiel der Erfindung.
-
EINGEHENDE BESCHREIBUNG
-
In der nachfolgenden Beschreibung werden zum Zwecke der Erläuterung verschiedene spezifische Details dargestellt, um ein gründliches Verständnis der Ausführungsbeispiele der vorliegenden Erfindung zu ermöglichen. Es versteht sich jedoch, dass der Fachmann die Ausführungsbeispiele der vorliegenden Erfindung ohne diese spezifischen Einzelheiten verwirklichen kann. In anderen Beispielen sind bestimmte gegenständliche Strukturen und Verfahren nicht beschrieben, um die Ausführungsbeispiele der vorliegenden Erfindung nicht zu verundeutlichen. Die nachfolgende Beschreibung und die Zeichnungen der Ausführungsbeispiele der Erfindung sind illustrativ und schränken die Ausführungsbeispiele dieser Erfindung nicht ein.
-
Einige Abschnitte der nachfolgenden eingehenden Beschreibung sind in Begriffen von Algorithmen und symbolischen Darstellungen von Optionen an Datenbits oder binären digitalen Signalen innerhalb eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen und Darstellungen können die Techniken sein, die von dem Fachmann auf dem Gebiet der Datenverarbeitung verwendet werden, um die Substanz ihrer Arbeit anderen Fachleuten zu übermitteln. Weiter müssen die Begriffe „erster”, „zweiter” usw. notwendigerweise eine chronologische Beziehung angeben, sie werden lediglich verwendet, um die Diskussion zu vereinfachen.
-
Soweit dies nicht anders angegeben, versteht es sich, wie es sich aus der nachfolgenden Diskussion ergibt, dass in der nachfolgenden Beschreibung die Verwendung von Begriffen wie „Verarbeiten”, „Berechnen”, „Errechnen”, „Bestimmen” und dgl. sich auf eine Aktion und/oder Prozesse eines Computers oder Rechnersystems oder einer ähnlichen elektronischen Recheneinheit beziehen, die Daten manipuliert und/oder umwandelt, die als physikalische, etwa elektronische Mengen innerhalb der Register des Rechnersystems und/oder Speicher ausgewählt werden in andere ähnliche Daten, die als physikalische Menge innerhalb der Speicher des Rechnersystems, Register und anderer Informationsspeicher, Übertragungs- oder Anzeigeeinrichtungen.
-
1 zeigt einen Prozessor 10 der einen Temperaturmanagementcontroller 12 und einen Betriebspunktcontroller 14 hat. Der Prozessor 10 kann einen Computer mit reduziertem Befehlssatz (RISC), einen getunnelten Prozessor, einen Computer mit komplexem Befehlssatz (CISC) und dgl. einschließen. Der dargestellt Prozessor ist so dazu in der Lage, einen Programmcode/Befehle auszuführen und kann weiter Befehlsaufrufeinheiten, Befehlsdecoder, Ausführungseinheiten usw., (nicht gezeigt) aufweisen. Weiter kann der Prozessor 10 unter Verwendung von Hardwaretechniken wie einem komplementären Metalloxidhalbleiter (CMOS) Technologie, Controllerfirmware, Mikrocode, Softwaretechniken oder jede Kombination daraus implementiert sein.
-
Bei dem dargestellten Beispiel hat der Prozessor 10 einen oberen Betriebspunkt 16 und einen unteren Betriebspunkt 18, wobei jeder Betriebspunkt 16, 18 einem Bin 20 entsprechen kann mit einer zugehörigen Frequenz- und/oder Spannungseinstellung. Obwohl bestimmte Ausführungsbeispiele beschrieben werden bezüglich der Auswahl der Bins, die Frequenz/Spannungs-Bin-Paare beinhalten, sind die Ausführungsbeispiele der Erfindung nicht derart begrenzt. Die hier beschriebenen Prinzipien können auch angewendet werden auf „binlose” Ansätze, bei der die Betriebspunkte jeden Wert annehmen können, Nicht-Frequenz/Spannungs-Ansätze, bei dem andere Parameter als Betriebspunkte verwendet werden und jede andere Umgebung, in der die Temperatur, der Leistungsverbrauch und/oder die Leistungsfähigkeit von Bedeutung sind
-
Die Frequenz und die Spannungseinstellungen können vorgegeben sein in einer geeigneten Spannungs/Frequenz-Tabelle (nicht gezeigt), wobei der Betriebspunktcontroller 14 dazu in der Lage ist, die Einstellungen an den Prozessor 10 anzulegen. Der Prozessor 10 wechselt so zwischen dem hohen und dem tiefen Punkt, der untere Betriebspunkt 18 kann verwendet werden, um den Prozessor „zu drosseln”, um den Leistungsverbrauch und/oder die Temperatur zu reduzieren und der obere Betriebspunkt 16 kann verwendet werden, um eine größere Leistungsfähigkeit zu erreichen, wenn die Temperatur des Prozessors auf einem akzeptablen Niveau liegt.
-
Jeder der dargestellten Betriebspunkte 16, 18 kann durch Zuweisen, Auswählen und/oder Beinhalten unterschiedlicher Frequenz/Spannungswerte abhängig von den Umständen wirksam nach oben und nach unten eingestellte werden. Wenn, beispielsweise, bestimmt wird, dass die Temperatur des Prozessors 10 unterhalb eines Temperaturschwellenwertes ist, können die Betriebspunkte 16, 18 aufeinander zu bewegt werden, um den Bereich zwischen den hohen und den tiefen Frequenzen einzuengen, wodurch eine zeitabhängige, nahezu optimale Frequenz beibehalten wird. In dem Fall eines Ansatzes eines finiten Bin können der obere oder der untere Betriebspunkt zu einem Paar von benachbarten Frequenzen konvergieren, da es möglich ist, dass sie nicht zu nur einer Frequenz konvergieren. Nichtsdestoweniger ist ein derartiger „Konvergenz”-Ansatz extrem vorteilhaft für Verwendungsmodelle, die thermisch hoch begrenzt sind und daher eine erhebliche Drosselung erfahren. Dieser Ansatz stellt weiter eine signifikante Loslösung von den üblichen Ansätzen dar, die typischerweise eine feste obere Frequenz aufweisen.
-
Es wird jetzt auf 2 Bezug genommen, in der eine Statusmaschine 22 gezeigt ist, in der der Heißzustand 24 und der Kaltzustand 26 des Systems der Temperatur des Prozessors 10 (1) entsprechen kann oberhalb und unterhalb eines Temperaturschwellenwertes ist. In dem dargestellten Beispiel können vier Aufrufschemen unterschieden werden, wobei jedes Aufrufschema durch den Strom und die vorangehende Aufruf bezeichnet werden kann. Insbesondere kann ein Kalt-zu-Kalt-Aufruf 28 durch einen Zeitinterrupt initiiert werden, der angibt, dass der Prozessor für eine ausreichende Zeit in dem Kaltzustand war und der obere Betriebspunkt erhöht werden kann, ohne erhebliche Beeinflussung bezüglich der Schaltfolgen. In dem dargestellten Ausführungsbeispiel kann eine Kalt-zu-Heiß-Aufruf 30 durch einen thermischen Sensor initiiert werden. Ein derartige Aufruf kann bedeuten, dass der Prozessor für einige Zeit kalt war, jetzt aber wieder heiß ist. In einem solchen Fall kann ein geeigneter Wert für den unteren Betriebspunkt berechnet werden und der Prozessor kann auf diesen berechneten Wert abgedrosselt werden.
-
Eine Heiß-zu-Kalt Aufruf kann stattfinden, wenn der neue Wert für den unteren Betriebspunkt die Temperatur erfolgreich unterhalb des Temperaturschwellenwerts nach dem thermischen Interrupt reduziert hat. Diese Situation kann dem normalen Systemverhalten entsprechen und kann für einige „stabile” Zustände stehen. In diesem Zustand kann der Temperaturmanagementcontroller 12 (1) versuchen, den unteren oder den oberen Betriebspunkt in Richtung aufeinander zu bewegen, wie dies bereits beschrieben worden ist. Ein derartiges Verfahren kann dazu führen, dass die durchschnittliche Frequenz etwa bleibt, jedoch den Leistungsverbrauch erheblich differieren, da auch die Spannung verringert werden kann. Eine Heiß-zu-Heiß-Aufruf 32 kann auftreten, wenn der neue Wert für den unteren Betriebspunkt noch zu hoch ist, um die Temperatur unterhalb des Temperaturschwellenwerts zu halten nach dem thermischen Interrupt. In einem solchen Fall kann der untere Betriebspunkt weiter abgesenkt werden und das Verfahren kann wiederholt werden, bis die Temperatur unterhalb des Schwellenwertes sinkt.
-
3 zeigt einen Ansatz zum Implementieren des Temperaturmanagementcontrollers 12 in größeren Einzelheiten. Insbesondere weist der dargestellte Temperaturmanagementcontroller eine Heiß-zu-Kalt-Zustandslogik 36, eine Kalt-zu-Kalt-Zustandslogik 38, eine Kalt-zu-Heiß-Zustandslogik 40 und eine Heiß-zu-Heiß-Zustandslogik 42 auf. Der dargestellte Temperaturmanagementcontroller 12 weist weiter ein Einstellmodul 44 für den oberen Betriebspunkt, ein Einstellmodul 43 für den unteren Betriebspunkt, ein Thermomessmodul 46 und einen Zeitgeber 48 auf. Der Zeitgeber 48 kann zeitbasiert sein oder in aufwendigerer Lösung auf einer Ereignis/Leistungsfähigkeit-Beobachtungsstatistik basieren. Zusätzlich kann das Thermomessmodul 46 entweder temperaturbasiert sein oder auf der Beobachtung der Ereignis/Leistungsfähigkeit basieren. Die Kalt-zu-Kalt-Zusatzlogik 38 kann ein Zeitinterrupt 40 erkennen, das angeben kann, dass der Prozessor für eine bestimmte Zeitdauer kalt war (z. B., 20 msec), den oberen und unteren Betriebspunkt speichern und das obere Einstellmodul 44 verwenden, um den oberen Betriebspunkt zu erhöhen. Die Kalt-zu-Heiß-Zustandslogik 40 kann ein thermischen Interrupt 52 des thermischen Messmoduls 46 erkennen und den unteren Betriebspunkt basierend auf dem letzten erfolgreichen Betriebspunkt erhöhen. Diese Technik kann verwendet werden um den maximal möglichen Betriebspunkt zu lokalisieren, bei dem das System noch innerhalb der gegebenen thermischen Schranken bleibt.
-
Die Heiß-zu-Heiß-Zustandslogik 42 kann aufgerufen werden, wenn erkannt wird, dass die Temperatur nicht unterhalb des Temperaturschwellenwertes ist. Diese Bestimmung kann ausgeführt werden, nachdem eine auf eine Hysterese beruhende Zeitdauer (z. B. 1 msec) abgelaufen ist, nachdem der untere Betriebspunkt auf den Prozessor aufgegeben worden ist. Bei einem Ausführungsbeispiel frischt die Heiß-zu-Heiß-Zustandslogik den letzten nicht erfolgreichen Betriebspunkt auf basierend auf dem gegenwärtigen unteren Betriebspunkt und senkt weiter den unteren Betriebspunkt. Die dargestellte Heiß-zu-Kalt-Zustandslogik 36 kann aufgerufen werden, wenn die Temperatur des Prozessors unterhalb des Temperaturschwellenwertes fällt und kann die Stabilität des thermischen Zustands des Monitors betätigen und den oberen Betriebspunkt und den unteren Betriebspunkt in Richtung aufeinander zu bewegen, wenn der Prozessor stabil ist. Die Prozessorstabilität kann bestätigt werden durch Erfassen der Häufigkeit, unter der der Prozessor unter Verwendung des gegenwärtigen oberen und des unteren Betriebspunkts erfolgreich gedrosselt ist. Wenn die Anzahl einen bestimmten Schwellenwert (beispielsweise zwei Drosselungen) übersteigt, kann der Prozessor als ausreichend stabil angesehen werden, um zu versuchen, den Bereich zwischen dem oberen Betriebspunkt und dem unteren Betriebspunkt zu verringern. Bei einem Ansatz werden die Betriebspunkte aufeinander zu bewegt durch Berechnen des Mittelwerts zwischen diesen Punkten, Erhöhen des unteren Betriebspunktes in Richtung auf den Mittelwert (d. h., auswählen eines größeren Werts) und Verringern des oberen Betriebspunkts in Richtung auf den Mittelwert (d. h., Auswählen eines geringeren Werts). Es sollte beachtet werden, dass zur Vermeidung von Trunkationsfehlern eine Beschränkung auferlegt wird, um zu verhindern, dass der untere Betriebspunkt den oberen Betriebspunkt übersteigt.
-
Es wird jetzt auf 4 Bezug genommen, in der ein System 94 mit einem Prozessor 10 und einem Temperaturmanagementcontroller 12 gezeigt ist. Der dargestellte Prozessor 10 kommuniziert mit einem Speichercontrollerhub (MCH) 100 auch als Northbridge bezeichnet, über einen Bus 102, etwa einem vorderseitigen Bus oder einem Punkt-zu-Punkt-Netz, das alle Komponenten in dem System 94 verbindet. Der MCH 100 kann mit dem Speicher mit wahlfreiem Zugriff (RAM) 104 des Systems über einen Speicherbus 106 kommunizieren, wobei der RAM 104 ein Hochgeschwindigkeits-statisches RAM (SRAM), ein RAM mit geringerer Dynamik (DRAM) usw. sein kann. Die DRAM Module können weiter einbezogen sein in einem Single Inline Memory Module (SIMM), einem Dual Inline Memory Module (DIMM), einem Small Outline DIMM (SODIMM) usw. Der MCH 100 kann weiter über einen Grafikbus 108 mit einem erweiterten Grafikanschluss (AGP) 110 kommunizieren, um eine Schnittstelle zu einer externen Videoanzeigeeinheit (nicht gezeigt) zu verbinden. Der dargestellte MCH 100 kommuniziert mit einem I/O Controllerhub (ICH) 112, auch als Southbridge bekannt, über eine mit einem Peripheriegeräte verbindenden Bus (PCI) 114. Der Prozessor 10 kann weiter betriebsmäßig mit einem Netz 116 über ein Netzport 118 über den ICH 112 verbunden sein. Der ICH kann auch mit dem Speicher 120 gekoppelt sein, der ein Nur-Lese-Speicher (ROM) 122, ein RAM 124, einen programmierbaren ROM (PROM) 126, einen Flashspeicher usw. sein kann. 8 zeigt ein alternatives System, bei dem ein Speichercontroller 101 in demselben Gehäuse wie der Prozessor 11 und der Temperaturmanagementcontroller 12 vorgesehen sein kann.
-
5 zeigt ein Verfahren 54 des Temperaturmanagements für ein System, einen Prozessor oder ein anderes Gerät, das einen oberen Betriebspunkt und einen unteren Betriebspunkt hat. Das dargestellte Verfahren 54 ist eine einzelne „synchrone” Sequenz für ein Kaltzustandssystem. Wenn das System in dem Kaltzustand ist, kann ein thermisches Interrupt oder ein Zeitinterrupt die dargestellte Abfolge auslösen. Schließlich kann das System in dem Kaltzustand zurückkehren und der Prozess kann wiederholt werden. Das dargestellte Verfahren 54 kann, beispielsweise unter Verwendung einer Hardware, eines Mikrocodes oder jedes maschinenlesbaren Mediums oder Artikels implementiert werden, das einen Befehl oder einen Satz von Befehlen speichern kann, der, bei einer Ausführung von einer Maschine (beispielsweise einer Mehrverarbeitungseinheit und/oder anderen geeigneten Maschinen) ausgeführt wird unter Verursachung, dass die Maschine ein Verfahren und/oder Operationen in Übereinstimmung mit den Ausführungsbeispielen dieser Erfindung verursacht. Eine solche Maschine kann, beispielsweise, jede geeignete Prozessorplattform, Rechenplattform, Rechengerät, Verarbeitungsgerät, Rechensystem, Prozessorsystem, Computer, Prozessor und dgl. aufweisen und kann implementiert werden unter Verwendung jeder geeigneten Kombination aus Hardware und/oder Software. Das maschinenlesbare Medium oder der Artikel kann, beispielsweise, jeden geeigneten Typ einer Speichereinheit, eines Speichergerätes, eines Speicherartikels, eines Speichermediums, eines Speichergeräts, eines Speicherartikels, eines Speichermediums und/oder einer Speichereinheit aufweisen, beispielsweise einen Speicher, ein entfernbares oder nicht entfernbares Medium, ein löschbares oder nicht-löschbares Medium, ein beschreibbares oder überschreibbares Mediuim, ein digitales oder analoges Medium, eine Harddisk, eine Floppydisk, eine Compact Disk Read Only Memory (CD-ROM), eine beschreibbare Compact Disk Recordable (CD-R) eine überschreibbare Compact Disk (CD-RW), eine optische Disk, ein magnetisches Medium, verschiedene Arten von Digital Versatile Disks (DVDs), ein Band, eine Kassette oder dgl. sein. Die Befehle können jeden geeigneten Typ eines Codes, beispielsweise eines Sourcecodes, eines compilierten Codes, eines interpretierten Codes, eines ausführbaren Codes, eines statischen Codes, eines dynamischen Codes oder dgl. aufweisen und kann implementiert werden unter Verwendung von Hochniveau, Niederniveau, objektbezogenen, visuellen, compilierten und/oder interpretierten Programmsprache, beispielsweise C, C++, Java, BASIC, Pascal, Fortran, Cobol, Maschinensprache, Maschinencode oder dgl..
-
Der Algorithmus zum Berechnen der Frequenzen und/oder Auswahlbins kann angesehen werden als Kontrollalgorithmus für die Frequenzschranken (FBCA) und dem zugehörigen Steuermechanismus, der die Einheit für FBCA, Zeitgeber und thermische Sensoren als auch einen Steuermechanismus für die Frequenzschranken (FBCM) sein kann. Die Verzweigung des Algorithmus, der durch den Kalt-zu-Kalt-Aufruf 28 bewirkt wird (2) und der Heiß-zu-Kalt-Aufruf 34 (2) können als „FBCA-Kalt” bezeichnet werden und die Verzweigung des Algorithmus, der von dem Kalt-zu-Heiß-Aufruf 30 aufgerufen wird (2) und der Heiß-zu-Heiß-Aufruf 32 (2) kann als „FBCA-Heiß” bezeichnet werden.
-
In dem dargestellten Ausführungsbeispiel wird ein thermischer Interrupt in dem Prozessblock 56 erkannt, wo der thermische Interrupt von einem thermischen Sensor/Modul ausgelöst werden kann. Wenn ein derartiger Interrupt in einem Kaltzustand erkannt wird, hat der Prozessor von dem Kaltzustand in den Heißzustand gewechselt und muss nicht gedrosselt werden. Die Kaltzustand-Aufruf findet daher in dem Block 58 die Antwort auf den thermischen Interrupt statt, wo die FBCA-Heiß-Verzweigung in dem Block 60 aufgerufen wird. Allgemein kann die FBCA-Heiß-Abzweigung den entsprechenden Eingang/Bin (beispielsweise „n”) für die untere Frequent (beispielsweise „flow”) und die untere Spannung (beispielsweise „Vlow”) in der Spannungs-Frequenz-Tabelle berechnen. Der berechnete untere Betriebspunkt wird auf den Prozessor in dem Block 62 aufgebracht, wo der Prozess in einer Zeitdauer stattfindet (beispielsweise „t”) abhängig von dem unteren Betriebspunkt, um abzuschließen. Der Block 64 sorgt für eine Definition einer Wartezeit als Wartezeit = 1 msec – t und der Block 66 sorgt für das Warten der definierten Zeitdauer. Wenn in dem Block 68 bestimmt wird, ob die Temperatur des Prozessors unter den Temperaturschwellenwert (beispielsweise „Tmax”) gefallen ist, ist die Antwort „No” der Heiß-zu-Heiß-Aufruf bei dem Block 70. In diesem Fall wird die FBCA-Heiß-Verzweigung wieder aufgerufen und der untere Betriebspunkt wird erneut berechnet.
-
Wenn die Temperatur unter den Schwellenwert gefallen ist findet die Heiß-zu-Kalt-Aufruf in dem Block 72 statt. Der Block 74 sorgt daher für das Aufrufen der FBCA-Kalt-Abzweigung, wo der entsprechende Eingang n für die obere Frequenz (beispielsweise „fhigh”) berechnet wird. Die untere Frequenz kann auch während dieses Vorgangs berechnet werden. Die Spannung des Prozessors (beispielsweise „V”) kann auf die obere Spannung erhöht werden (d. h., „Vhigh”) und die Frequenz kann in dem Block 76 auf die obere Frequenz erhöht werden. Wenn ein Zeitgeber-Interrupt in dem Kaltzustand in dem Block 78 erkannt wird, kann die FBCA-Kalt-Verzweigung wieder aufgerufen werden, um eine Kalt-zu-Kalt-Aufruf 73 aufzurufen, in der der obere Betriebspunkt neu berechnet wird.
-
Es wird jetzt auf 6 Bezug genommen, in der ein Ansatz einer FBCA-Kalt-Verzweigung in größerer Einzelheit bei 80 gezeigt ist. Allgemein entsprechen die dargestellten „low” und „high” Variablen den zuletzt festgestellten Bins für Flow und fhigh (und den entsprechenden Spannungen Vlow und Vhigh). Die „prev_state” Variable stellt die Situation dar, die zu dem Vorangehenden aufruft der FBCA führt und kann einen von drei Werten annehmen: COLD, was bedeutet, dass der vorherige Aufruf initiiert worden war aufgrund der Temperatur, die unterhalb des Temperaturschwellenwertes fällt; HOT, was bedeutet, dass der vorherige Aufruf initiiert worden war aufgrund der Temperatur, die bei oder oberhalb des Schwellenwerts zum ersten Mal war; und DOUBLE_HOT was bedeutet, dass eine Reihe von wenigstens zwei Aufrufen mit einer Temperatur oberhalb eines Schwellenwertes gegeben waren. Die „bad” Variable kann den letzten nicht erfolgreich versuchten Bin für flow angeben (nach der Konvergenz sollte bad ein Bin oberhalb des Bins sein, der flow entspricht). Die illustrierte „mode” Variable gibt den Zustand des letzten Betriebs auf dem high oder low Bin an und kann einen oder mehrere von drei Werten annehmen: NORMAL, was bedeutet, dass der letzte Betrieb bestätigt worden ist; AVERAGING, was bedeutet, dass die letzte Operation high und low aufeinander zu bewegt hat; und TEST_UP, was bedeutet, dass der hohe Bin natürlich erhöht worden ist. Die „n_successful_throttlingns” Variable misst, wie häufig das System zwischen dem heißen und dem kalten Zustand gewechselt hat, seit die letzten Änderungen von high oder low. Die „sav_low” und „sav_high” Variablen werden verwendet zum Speichern der Werte von low und high bei der Kalt-zu-Kalt-Aufruf.
-
Es ist erkennbar, dass bei der Heiß-zu-Kalt-Aufruf der Block 82 für die Bestätigung sorgt, dass der obere Betriebspunkt und der untere Betriebspunkt weit genug voneinander entfernt sind und bestätigt die Stabilität des dynamischen Zustands des Prozessors. Die Stabilität kann, wie schon diskutiert, durch Erfassen der Häufigkeit mit der der Prozessor erfolgreich gedrosselt worden ist unter Verwendung des gegenwärtigen oberen Betriebspunkts und des gegenwärtigen unteren Betriebspunkts bestätigt werden. Der (trunkierte) Mittelwert zwischen dem oberen Betriebspunkt und dem unteren Betriebspunkt wird in dem Block 84 und dem Block 86 berechnet, er sorgt für eine Erhöhung des unteren Betriebspunkts in Richtung auf den Mittelwert und einer Abnahme des oberen Betriebspunkts in Richtung auf den Mittelwert. In dem dargestellten Beispiel wird low konsequent unter high gehalten. Durch Bewegen der beiden Betriebspunkte aufeinander zu sorgt der Block 86 für das Reduzieren der Anzahl von und eine Begrenzung der Übergänge zwischen dem oberen und dem unteren Betriebspunkt. Ein solcher Ansatz kann auch die Erfahrung des Verwenders erhöhen, da die Prozessorleistungsfähigkeit besser vorhersehbar ist, insbesondere in thermisch begrenzten Umgebungen.
-
Bei der Kalt-zu-Kalt-Aufruf sorgt der Block 88 für das Speichern des oberen Betriebspunkt und der Block 90 sorgt für eine Erhöhung des oberen Betriebspunkts durch heftiges Bewegen zu nbins, wobei nbins die wachsende Anzahl von Bins 20 ist. (1, „OpPt_N”). Die Operation (high + nbins + 1)/2 wird kein Ergebnis größer als N erzeugen. Diesbezüglich sollte beachtet werden, dass die hier beschriebenen Divisionsvorgänge ganzzahlige Operationen sein können (d. h., das Resultat kann trunkiert werden). Die Fähigkeit zum Bewegen des oberen Betriebspunkts hat erhebliche Vorteile gegenüber üblichen Ansätzen, da der obere Betriebspunkt auf variierende Betriebsbedingungen des Systems zugeschnitten ist. In diesem Fall kann der obere Betriebspunkt erhöht werden, da bekannt ist, dass der Prozessor über eine signifikante Zeitdauer in dem Kaltzustand ist. Der Block 92 sorgt für das Auffrischen der oberen Grenze für den unteren Betriebspunkt (d. h., die bad variable) und der Block 93 sorgt für das Rückstellen der Zähler.
-
7 zeigt einen Ansatz der FBCA-Heiß-Verzweigung in größerem Detail. Insbesondere sorgt die dargestellte Kalt-zu-Heiß-Aufruf für ein Erhöhen des unteren Betriebspunkts basierend auf dem letzten nicht erfolgreichen Betriebspunkt in dem Block 128. Insbesondere kann low halbwegs auf bad bewegt werden. Die Heiß-zu-Heiß-Aufruf sorgt für ein Auffrischen des letzten nicht erfolgreichen Betriebspunkts in Block 130. Wenn bestimmt wird, dass die vorangehende Aktion zu einer willkürlichen Erhöhung der unteren Grenze in dem Kalt-zu-Kalt-Betrieb war (d. h., Mode = TEST_UP) ist das Ergebnis, dass die Einstellungen nicht korrekt sind und dass die alten Einstellungen in dem Block 132 rückgespeichert werden. Ansonsten sorgt der Block 134 für eine Verringerung des unteren Betriebspunkts.
-
Durch dynamisches Adaptieren sowohl des oberen als auch des unteren Betriebspunkts ermöglichen die hier beschriebenen Techniken so eine bessere Leistungsfähigkeit für Heißanwendungen, als sie durch die gegenwärtigen Drosseltechniken, die ähnliche Eingangsdaten verwenden, erreicht werden. Die obigen Ansätze können effizienter sein als die üblichen Ansätze, da die Betriebspunkte wie die Spannung und die Frequenz eingestellt werden können auf einem Zwischenniveau um Nachteile, die sich aus einer Drosselung ergeben, zu vermeiden.
-
Der Fachmann erkennt in der vorangehenden Beschreibung, dass die breiten Techniken der Ausführungsbeispiele der vorliegenden Erfindung in einer Mehrzahl von Formen implementiert werden kann. Obwohl Ausführungsbeispiele dieser Erfindung in Verbindung mit besonderen Beispielen beschrieben worden sind, ergibt sich der wahre Schutzbereich der Ausführungsbeispiele der Erfindung nicht derart begrenzt, weitere Ausführungsbeispiele ergeben sich dem Fachmann aus einem Studium der Zeichnungen, der Beschreibung und der nachfolgenden Ansprüche.