-
Diese
Offenbarung betrifft allgemein die Leistungsminderung mit einer
Drossel, insbesondere ein Verfahren und ein System der im Anspruch
1 bzw. im Anspruch 16 jeweils angegebenen Art.
-
Stand der Technik
-
Die
Nachfrage nach leistungsfähigeren
Computern und Kommunikationsprodukten hat zu schnelleren Prozessoren
geführt,
die oft höhere
Chiptemperaturen aufweisen und zunehmende Mengen an Strom verbrauchen.
Von Designingenieuren wird aber die Senkung des Stromverbrauchs
und der Chiptemperatur angestrebt.
-
Ein
Prozessor oder Mikroprozessor verwendet typischerweise einen Taktmultiplikator.
Der Taktmultiplikator ist ein Verhältnis einer Kernfrequenz des
Prozessors zu einer Busfrequenz. Eine typische Lösung ist eine Drossel zum Ändern des
Taktmultiplikators. Die Betriebsfrequenz wird zum Beispiel herabgesetzt,
wenn die Betriebstemperatur des integrierten Geräts steigt. Das integrierte
Gerät kühlt dann
aufgrund der niedrigeren Betriebsfrequenz ab. Daher kann die Betriebsfrequenz
erhöht
werden, wenn das integrierte Gerät
abgekühlt
ist. Doch diese Drossel kann sich auf die Prozessorleistung nachteilig
auswirken, da der Prozessor durch die lange Latenzzeit beeinträchtigt wird,
die mit dem Umschalten des Taktmultiplikators einhergeht.
-
US 6,636,980 B1 offenbart
ein System zum Datentransport auf einem Bus unter Verwendung eines ersten
Taktes für
ein alternatives Auswählen
von Daten von zwei Datenströmen
und unter Verwendung eines zweiten Taktes für das Absenden der Daten. Die
Periode des Bustaktes kann als ein Vielfaches der Periode des Prozessortaktes
ausgewählt
werden.
-
US 5,787,294 A offenbart
ein System zur Reduzierung des Leistungsverbrauchs eines Computersystems.
Der programmierbare Frequenzgenerator und die programmierbare Stromversorgung
können
sowohl die Betriebsfrequenz als auch die Spannung reduzieren, um
dadurch den Leistungsverbrauch zu reduzieren.
-
US 5,485,602 A offenbart
ein Datenverarbeitungssystem, das ein CLK-Signal zur Durchführung von Operationen
in einem Datenprozessor empfängt.
Der Datenprozessor umfasst eine CPU, die Operationen in Reaktion
auf das CLK-Signal ausführt.
Der Bus kann mit einer Frequenz arbeiten, die geringer oder gleich
der Betriebsfrequenz des CLK ist. Der Bustakt ist typischerweise
gleich dem Takt gemäß der Frequenz
oder liegt bei der Hälfte
oder einem Viertel davon.
-
Die
Aufgabe der Erfindung besteht darin, ein Verfahren und System bereitzustellen,
das die Umschaltung des Taktmultiplikators zur Herabsetzung der
Kernfrequenz ermöglicht.
-
Die
Aufgabe wird gelöst
durch das Verfahren mit den Merkmalen gemäß Hauptanspruch 1 und das System
mit den Merkmalen gemäß Anspruch
16.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Der
Gegenstand wird im abschließenden
Teil der Patentschrift besonders hervorgehoben und separat beansprucht.
Der beanspruchte Gegenstand, sowohl was die Organisation als auch
die Arbeitsweise anbetrifft, zusammen mit seinen Aufgaben, Merkmalen
und Vorteilen, geht aber am besten aus der folgenden ausführlichen
Beschreibung in Verbindung mit den beiliegenden Zeichnungen hervor,
wobei:
-
1 ein
Zeitablaufdiagramm ist, das eine Ausführungsform der erfindungsgemäßen Erzeugung
von Drive Enable-Signalen veranschaulicht.
-
2 ein
Zeitablaufdiagramm ist, das eine Ausführungsform der erfindungsgemäßen Erzeugung
von Strobesignal Drive/Sample Enable-Signalen veranschaulicht.
-
3 ein
Blockdiagramm für
die Pipeline zum Erzeugen von Busverhältnis- und Steuersignalen ist, wie
sie von einer Ausführungsform
verwendet wird.
-
4 ein
Systemdiagramm ist, das ein System veranschaulicht, das die Ausführungsform
von 1 oder 2 oder 3 verwenden
kann, oder jede Kombination davon.
-
5 eine
Simulation ist, wie sie von einer Ausführungsform verwendet wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In
der folgenden ausführlichen
Beschreibung werden zahlreiche spezifische Details dargelegt, um
ein gründliches
Verständnis
des beanspruchten Gegenstands zu ermöglichen. Für den Fachmann geht aber hervor,
daß der
beanspruchte Gegenstand auch ohne diese spezifischen Details in
die Praxis umgesetzt werden kann. In anderen Fällen wurden wohlbekannte Verfahren,
Vorgänge
und Komponenten nicht im Detail beschrieben, um den beanspruchten
Gegenstand nicht unverständlich
zu machen.
-
Ein
Bereich der aktuellen technologischen Entwicklung betrifft das Erreichen
einer längeren
Batteriedauer für
Kommunikationsprodukte und Computer oder Rechnersysteme durch Herabsetzung
des Stromverbrauchs. Wenn der Prozessor bei einer erhöhten Temperatur
betrieben wird, kann die Leistung der Transistoren für den Prozessor
typischerweise nachlassen und sich verlangsamen. Gegenwärtig wird
eine Drossel verwendet, um den Stromverbrauch und die Chiptemperatur
durch Herabsetzen der Betriebsfrequenz zu mindern. Doch wie zuvor
erwähnt,
wirkt eine Drossel sich nachteilig auf die Leistung eines integrierten
Geräts
wie z. B. eines Prozessors aus, weil der Prozessor die Ausführung aller
Instruktionen anhalten kann und die Prozessorwarteschlangen leeren
oder unterbrechen kann. Daher kann eine typische Drossel mit dem „Durchtreten
des Bremspedals” verglichen
werden, um das Fahrzeug (den Prozessor) zum Stillstand zu bringen,
wenn der Stromverbrauch durch Ändern
des Taktmultiplikators gemindert werden soll. Wie oben erwähnt, wird
für den Prozessor
oder das integrierte Gerät
eine Kernfrequenz abgeleitet, indem eine Busfrequenz mit einem Taktmultiplikator
multipliziert wird. In einer Ausfüh rungsform ist die Busfrequenz
für einen
Front Side Bus und ist feststehend, und der Taktmultiplikator ist
benutzerdefiniert.
-
Im
Gegensatz zu einer typischen Drossel erleichtert der beanspruchte
Gegenstand ein System und ein Verfahren, das die Umschaltung des
Taktmultiplikators erleichtert, um die Kernfrequenz herabzusetzen, wobei
es die Leerung oder das Anhalten der Prozessorwarteschlangen verhindert,
da die Frequenzumschaltung in wenigen Kerntakten auftritt und für den Benutzer
transparent ist. Der beanspruchte Gegenstand wird in der nachstehenden
ausführlichen
Beschreibung beschrieben.
-
In
einem Aspekt lehrt der beanspruchte Gegenstand einen Taktzähler-Algorithmus
zum Erzeugen von Drive Enable- und Strobesignal Generation-Signalen,
wie in Verbindung mit 1 und 2 veranschaulicht. Der
Taktzähler-Algorithmus
kann softwaremäßig implementiert
sein. Die Software kann zum Beispiel in einem elektronisch zugänglichen
Medium gespeichert sein, das jeden Mechanismus einschließt, der
Inhalte (z. B. vom Computer ausführbare
Instruktionen) in einer Form bereitstellt (d. h. speichert und/oder überträgt), die
von einem elektronischen Gerät
(z. B. Computer, PDA, Mobiltelefon) gelesen werden kann. Zum Beispiel
umfaßt ein
maschinenzugreifbares Medium Nur-Lese-Speicher (ROM); Direktzugriffsspeicher
(RAM); magnetische Diskettenspeichermedien; optische Speichermedien;
Flash-Speichergeräte;
elektrische, optische, akustische oder andere Formen von verteilten
Signalen (z. B. Trägerwellen,
Infrarotsignale, Digitalsignale).
-
In
einer anderen Ausführungsform
erleichtert der beanspruchte Gegenstand die Pipeline-Verarbeitung von
Bus-Steuersignalen und Phase Locked Loop(PLL)-Umschaltungen, um
die willkürliche
Tiefe zur Anpassung und längere
Verteilungsverzögerungen
zu und von Puffer zu unterstützen
und das Steuersignal vor die Umschaltung vorzuziehen, um die Einstellzeit
des Schaltsignals in Bezug auf die PLL-Umschaltung anzupassen, wie
in Verbindung mit 3 gezeigt.
-
1 ist
ein Zeitablaufdiagramm, das eine Ausführungsform der erfindungsgemäßen Erzeugung
von Drive Enable-Signalen veranschaulicht. In einer Ausführungsform
unterstützt
der beanspruchte Gegenstand die Erzeugung von Drive Enable-Signalen
für einen
Prozessor oder ein integriertes Gerät, das bei verschiedenen Kernfrequenzen
betrieben wird. In einer Ausführungsform
wirkt der beanspruchte Gegenstand mit einem Front Side Bus zusammen
und wird bei einer Kernfrequenz betrieben und ist funktionell mit
einem Bereich von Taktmultiplikatoren äquivalent. Deshalb hält jedes
Signal die Latenzzeitanforderungen ein, um ein Signal auf den Bustakt
zu treiben, und umfaßt
das Treiben von Signalen an vorgegebenen Zeitpunkten vor einer folgenden
steigenden Flanke eines Bustakts. Dies ermöglicht es der erfindungsgemäßen Logik,
für eine
minimale Latenzzeit unabhängig
von einem Taktmultiplikator zu sein, die auf der Basis des höchsten unterstützten Taktmultiplikators
gewählt
wird.
-
Wie
zuvor erwähnt,
kann ein Prozessor oder ein integriertes Gerät eine Spanne von Taktmultiplikatoren
unterstützen.
Typischerweise wird als Synchronisationssignal ein Satz von Synchronisationssignalen
wie z. B. Drive Enables oder Sample Enables benutzt. Die Drive Enable-Signale
werden verwendet, um Signale auf einen Bus zu treiben, wie z. B.
einem Front Side Bus, und die Sample Enable-Signale werden verwendet, um
ein Signal abzutasten, das von einem Bus wie z. B. einem Front Side
Bus eingeht.
-
In
einer Ausführungsform
können
die Sample Enable-Signale von den Drive Enables abgeleitet werden
und sind in Bezug auf diese symmetrisch. In einer Ausführungsform
werden die Sample Enable-Signale nach dem steigenden Flanke des
Bustakts verwendet. Um ein Sample Enable zum Beispiel 1 Zyklus nach
dem Bustakt zu erzeugen, wird das Drive Enable-Signal um x + 1 Zyklen
verzögert.
In einer Ausführungsform
wird folgendes wie folgt in Register Transfer Language (RTL) codiert:
-
Das
folgende Beispiel veranschaulicht den Zeitablauf, um auf der Basis
eines Taktzählers
ein Drive Enable-Signal für
einen Taktmultiplikator zu erzeugen. Wie oben beschrieben, sind
zum Treiben eines Signals auf den Bustakt Latenzzeitanforderungen
vorhanden. Angenommen, die Latenzzeitanforderung sei (x – 1) Kerntakte,
dann ist (x) die Zahl der Kerntakte vor einer steigenden Flanke
des nächsten
Bustaktes. Angenommen auch, der Taktmultiplikator sei (N), führt dies
dazu, daß das
Drive Enable-Signal x Kerntakte vor der steigenden Flanke des nächsten Bustaktes
und (N – x)
Takte nach der Hinterflanke angelegt wird. Angenommen demgegenüber, der Taktmultiplikator
sei (2N), dann ist der relative Abstand in den Kerntakten von einer
Vorderflanke des Bustaktes gleich, doch der Abstand von der Hinterflanke
ist (2N – x).
-
In
einer Ausführungsform
wird die feste Positionierung des Drive Enable für einen Bereich von Taktmultiplikatoren
mindestens zum Teil auf der Basis eines Taktzählers berechnet. Die Berechnung
(Operation) des Taktzählers
ist:
-
Für jede steigende
Flanke eines Kerntaktes ist
-
Die
obige Operation des Taktzählers
beschreibt eine verschachtelte Schleife, um den Zählern auf
der Basis von Entscheidungen verschiedene Werte zuzuweisen. Zum
Beispiel wird der Zähler
auf den Wert von init_constant gesetzt, wenn der Wert von reset
eine logische eins ist. Andernfalls wird der Zähler auf den Wert von reload_constant
gesetzt, wenn der Wert des Zählers
eine logische null ist. Wenn der Wert des Zählers nicht gleich einer logischen
null ist, dann wird der Zählerwert
um eins dekrementiert.
-
Schließlich wird
der Wert drive_enable auf eine logische eins gesetzt, wenn der Zählerwert
null ist.
-
Um
die Variablen näher
zu erläutern,
definiert in einer Ausführungsform
die Variable init_constant einen Anfangszustand für einen
spezifischen Taktmultiplikator. Zum Beispiel weist bei einem Taktmultiplikator von
10 ein Drive Enable-Signal, das 2 Kerntaktzyklen vor einem Bustakt
wahr (gültig)
ist, einen Wert von init_constant von 8 auf; dementsprechend weist
bei einem Taktmultiplikator von 14 ein Drive Enable-Signal, das
2 Kerntaktzyklen vor einem Bustakt wahr (gültig) ist, einen Wert von init_constant
von 12 auf. In derselben Ausführungsform
entspricht der Wert von reload_constant dem von clock_multiplier
(Taktmultiplikator).
-
Zur
Unterstützung
einer Leistungsdrossel ist es notwendig, den Wert des Taktmultiplikators
zu ändern. Daher
muß das
Drive Enable-Signal für
einen anderen Taktmultiplikatorwert erzeugt werden. Darüber hinaus müssen init_constant
und reload_constant den neuen Taktmultiplikator wert wiedergeben.
Daher wird der Wert init_constant und reload_constant für den neuen
Taktmultiplikatorwert reinitialisiert, bevor der Zähler neu
gestartet wird. In einer Ausführungsform
zum Beispiel wird Drive Enable für
den neuen Taktmultiplikatorwert initialisiert, wenn der Frequenzumschaltung
im nächsten
Bustaktzyklus erwartet wird. Daher werden die Variablen init_constant
und reload_constant reinitialisiert, indem der Algorithmus für den früheren Zähler wie
folgt modifiziert wird:
-
Für jede steigende
Flanke eines Kerntaktes ist der
-
Die
obige Operation des Taktzählers
beschreibt eine verschachtelte Schleife, um den Zählern auf
der Basis von Entscheidungen verschiedene Werte zuzuweisen. Zum
Beispiel wird der Zähler
auf den Wert von init_constant gesetzt, wenn der Wert von reset
eine logische eins ist. Andernfalls wird der Zähler auf den Wert von reload_constant_new
gesetzt (um den neuen Taktmultiplikatorwert wiederzugeben), wenn
der Wert der Booleschen Funktion (&& ist
ein Logisches UND) von not counter und switch_freq_next_bus_clock
eine logische eins ist. Andernfalls, wenn die Boolesche Funktion
eine logische null und der Wert von counter eine logische null ist,
dann wird der Zähler
auf den Wert des reload_constant-Werts gesetzt. Andernfalls wird
der Zählerwert
um eins dekrementiert.
-
Schließlich wird
der Wert drive_enable auf eine logische eins gesetzt, wenn der Zählerwert
gleich null ist.
-
1 zeigt
ein Beispiel einer Leistungsdrossel, da der Taktmultiplikator von
2N auf N verringert wird. Ein Drive Enable (DriveEn1) ist für den Taktmultiplikator
2N, ein Drive Enable (DriveEn2) ist demgegenüber für den Taktmultiplikator N.
DriveEn1 ist (x) Kerntakte vom Bustakt Q1 entfernt. Unter der Annahme,
daß die
Frequenzumschaltung an einer steigenden Flanke des Bustaktes Q1
auftritt, ist DriveEn2 (N – x)
Kerntaktzyklen von der steigenden Flanke des Bustaktes Q1 entfernt.
Wenn DriveEn1 erzeugt wird, wird der Zähler mit der Zahl von Kerntakten
vor der Erzeugung des nächsten
Drive Enable (DriveEn2) geladen. In einer Ausführungsform ist die Zahl der
Kerntakte 2N. Doch aufgrund der Frequenzumschaltung entspricht die
Zahl (x + N – x), was
N ist. Deshalb wird der Zähler
ungeachtet der Zahl mit einem neuen Multiplikatorwert geladen, wenn
im nächsten
Bustaktzyklus eine Frequenzumschaltung erfolgt.
-
Der
beanspruchte Gegenstand beschränkt
sich nicht auf das obige Beispiel einer Leistungsdrossel, die den
Taktmultiplikator von 2N auf N reduziert. Im Gegenteil, der beanspruchte
Gegenstand unterstützt
die Erhöhung
des Taktmultiplikators. Desgleichen unterstützt der beanspruchte Gegenstand
verschiedene Taktmultiplikatorwerte.
-
2 ist
ein Zeitablaufdiagramm, das eine Ausführungsform der erfindungsgemäßen Erzeugung
von Strobesignal Drive/Sample Enable-Signalen veranschaulicht. In
einer Ausführungsform
wird das Strobesignal-Signal mit der zweifachen Bustaktfrequenz
betrieben und wird zum Latchen von Busdatensignalen verwendet. Die
Busdatensignale können
zum Beispiel Front Side Bus(FSB)-Datensignale sein. In derselben
Ausführungsform
werden die Strobesignal-Signale bei 25% und 75% des Bustakt-Arbeitszyklus
erzeugt (wie an den vertikalen Linien bei 25% und 75% für beide
Drive Enable-Signale DriveEn1 und DriveEn2 auf dem Bustakt-Zeitablauf
dargestellt). Wie oben in Verbindung mit 1 beschrieben,
ist ein Drive Enable (DriveEn1) für den Taktmultiplikator 2N,
demgegenüber
ist ein Drive Enable (DriveEn2) für den Taktmultiplikator N.
DriveEn1 wird x Kerntaktzyklen vor dem 75% Strobesignal erzeugt,
während
das nächste
Strobesignal bei 25% der nächsten
Busperiode mit einem Multiplikator N erzeugt wird (wie durch den
halbkreisförmigen
Bogen 202 dargestellt). Der Abstand zwischen den zwei Strobesignals
ist demnach:
(.25) multipliziert mit (2N)(während der Zeitperiode DriveEn1
mit einem Taktmultiplikator von 2N) + .25N (während der Zeitperiode DriveEn2
mit einem Taktmultiplikator von N).
-
Ferner
ist die Reload Constant-Gleichung in einer Ausführungsform:
reload_constant_new_for_Strobesignals
= .25(mal)(current multiplier) + .25 (mal)(next_multiplier)
-
Der
beanspruchte Gegenstand beschränkt
sich aber nicht auf Strobesignal-Werte bei 25% und 75% eines Arbeitszyklus
für einen
Bustakt. Der beanspruchte Gegenstand unterstützt jede Kombination von Strobesignal-Werten
durch Verändern
der Strobesignal-Einstellungen und Verändern der Reload Constant-Gleichung,
um die geänderten
Strobesignal-Werte wiederzugeben.
-
3 ist
ein Blockdiagramm für
die Pipeline zur Busverhältnis-
und Steuersignalerzeugung, wie sie von einer Ausführungsform
verwendet wird. Das Blockdiagramm vereinfacht die Erzeugung von
Steuersignalen auf der Basis, mindestens zum Teil, des Soll-Busverhältnis und
der Zähler.
Daher unterstützt
es einen willkürlichen
Busverhältnis-Bereich
und schaltet von einem ersten Busverhältnis zu einem anderen um.
-
Das
Blockdiagramm umfaßt
einen frühen
Zähler,
eine PLL-Steuerlogik und eine Vielzahl von Pipelinestufen. Die PLL-Steuerlogik
empfängt
den Zählerstand
vom Ausgang des frühen
Zählers.
-
Der
frühe Zähler empfängt Zähler-Steuersignale
von einem Ausgang der Steuerlogik.
-
Der
frühe Zähler für das aktuelle
Busverhältnis
wird weit genug vor dem PLL-Ratio-Zähler gehalten. Der frühe Zähler wird
verwendet, um die Kerntakte in der ersten (frühesten) Pipelinestufe zu zählen. Zum
Beispiel zählt
der frühe
Zähler
von null bis (1 weniger als das Busverhältnis). Der Zähler wird
nach Erreichen von (Busverhältnis –1) im nächsten Takt
auf null zurückgesetzt.
Daher werden die Steuersignale von der PLL-Steuerlogik erzeugt,
indem der Zählerstand
vom frühen
Zähler
mit verschiedenen Zählerständen verglichen
wird, die von der Busverhältnis
abgeleitet wurden, und die Übereinstimmung
entlang der Pipeline zur geeigneten Pipelinestufe gestuft wird.
-
In
einer Ausführungsform
basiert die Zahl der Stufen in der Pipeline mindestens zum Teil
auf dem frühesten
Steuersignal, das erzeugt werden muß. Wenn ein Busverhältnis zum
Beispiel von 7 auf 28 umgeschaltet werden soll, dann wird das früheste Steuersignal
9 Kerntakte vor der Bustaktflanke erzeugt. Daher wird eine 10-stufige
Pipeline benutzt, mit Stufen, die als 9b, 8b, ..., und schließlich 0b
dargestellt sind. In dieser Ausführungsform
ist die früheste
Pipelinestufe als 9b angezeigt. Wie zuvor beschrieben, zählt der
frühe Zähler die Kerntakte
in der frühesten
Pipelinestufe, und in diesem Beispiel ist die frühesten Pipelinestufe 9b. Wenn
das Busverhältnis
7 ist, zählt
der frühe
Zähler
daher von 0 bis 6 und zurück
auf 0.
-
Die
busbezogenen Signale werden abgeleitet, indem der Wert des frühen Zählers mit
einem Wert verglichen wird, der vom Busverhältnis ausgehend berechnet wird.
Wenn zum Beispiel ein Strobesignal bei 50% Bustakt benötigt wird,
wird der frühe
Zähler
mit 50% des Busverhältnis
verglichen, was eine arithmetische Rechtsverschiebungsoperation
ist. Dementsprechend handhabt die arithmetische Verschiebung sowohl
ungerade als auch gerade Busverhältnis.
-
Der
beanspruchte Gegenstand unterstützt
daher ungerade und gerade Busverhältnis. Um auf das Beispiel
eines Busverhältnis
von 7 zurückzukommen,
wird der Wert des frühen
Zählers
in Stufe 9b, die neun Kerntakte vor dem Bustakt liegt, mit 3 verglichen
(da dies das Ergebnis der arithmetischen Rechtsverschiebungsoperation
7 >> 1 ist). Folglich wird
der Wert des frühen
Zählers
genau neun Kerntakte vor 50% des Bustaktes drei entsprechen, und
das 9b-Signal (ein Signal, das 9 Takte vor dem Bustakt liegt), wird
so viele Takte lang gestuft, wird notwendig ist, um ein Signal eine
willkürliche
Zahl von Takten vor oder nach den 50% des Bustaktes zu erzeugen.
-
Der
Wert des frühen
Zählers
wird auf null zurückgesetzt,
wenn eine Anforderung nach einem Wechsel von einem ersten Busverhältnis zu
einem zweiten Busverhältnis
(einem Frequenzwechsel) empfangen wird. Daher schaltet der Wert
des frühen
Zählers
auf einen neuen Zählerstand
um, wenn die Frequenzumschaltung erzeugt wird. Zum Beispiel wird
das Umschaltsignal auch in der frühesten Pipelinestufe erzeugt,
wenn der Wert des frühen
Zählers
eins weniger erreicht, als wenn der Zählerstand 1 weniger als das
Busverhältnis
erreicht, wenn das Clock Tooth Stealing deaktiviert ist, und 2 weniger
als das Busverhältnis,
wenn das Clock Tooth Stealing aktiviert ist. Wenn das Umschaltsignal
erzeugt wird, wird der Wert des frühen Zählers im nächsten Takt auf 0 zurückgesetzt
und startet das Zählen
beim umgeschalteten Busverhältnis
(zweites Busverhältnis).
Wenn im obigen Beispiel mit Clock Tooth Stealing von 7 auf 28 umgeschaltet
wird, wird das Umschaltsignal erzeugt, wenn der Zähler 5 erreicht
hat (1 weniger als die normale Zählung
von 0 bis 6). Im nächsten
Takt wird der Zähler
auf 0 zurückgesetzt
und beginnt, für
ein Busverhältnis
von 28 von 0 bis 27 zu zählen.
Beim Wechsel des Busverhältnis
wird zwischen 2 PLLs multiplexiert und zwischen ihnen umgeschaltet.
Aufgrund der PLL-Umschaltung
ist eine leichte Verzögerung
im ersten Taktzyklus nach der Umschaltung zwischen den PLLs vorhanden.
Zum Beispiel kann der erste Taktzyklus überall mindestens um einige
Picosekunden verzögert
sein. Demgegenüber
ermöglicht
das Clock Tooth Stealing die Verlängerung des ersten Takts, um
diese Verzögerung
auszugleichen. Zum Beispiel kann der erste Taktzyklus länger als
ein normaler einzelner Taktzyklus und kürzer als zwei normale Taktzyklen sein.
Wie zuvor beschrieben, unterstützt
der beanspruchte Gegenstand die Steuersignalerzeugung mit oder ohne
Clock Tooth Stealing.
-
In
einer Ausführungsform
wird das Umschaltsignal zur PLL-Steuerlogik verbreitet, indem es
gestuft wird, bis es die Bustaktflanke erreicht hat (9 Takte in
unserem Beispiel). An der Bustaktflanke wird der Kerntakt vom aktuellen
Busverhältnis
auf das angeforderte Busverhältnis
umgeschaltet. Der Frühe
Zähler
ermöglicht
es demnach, ein Steuersignal eine willkürliche Zahl von Bustakten vor
der Umschaltung zu erzeugen.
-
In
einer Ausführungsform
kann das Blockdiagramm softwaremäßig implementiert
sein. Die Software kann zum Beispiel in einem elektronisch zugänglichen
Medium gespeichert sein, das jeden Mechanismus einschließt, der
Inhalte (z. B. vom Computer ausführbare
Instruktionen) in einer Form bereitstellt (d. h. speichert und/oder überträgt), die
von einem elektronischen Gerät
(z. B. Computer, PDA, Mobiltelefon) gelesen werden kann. Zum Beispiel
umfaßt
ein maschinenzugreifbares Medium Nur-Lese-Speicher (ROM); Direktzugriffsspeicher
(RAM); magnetische Diskettenspeichermedien; optische Speichermedien;
Flash-Speichergeräte;
elektrische, optische, akustische oder andere Formen von verteilten
Signalen (z. B. Trägerwellen,
Infrarotsignale, Digitalsignale).
-
RTL-Code
kann ebenfalls verwendet werden, um die oben beschriebene Funktionalität zu implementieren.
Der RTL-Code ist ein Baustein, um die Synthese der Hardwarefunktionen
zu erleichtern, und ist für
das Endprodukt nicht transparent.
-
Zum
Beispiel kann die Software wie folgt codiert sein. Bitte beachten
Sie, daß Kommentare
eingefügt sind,
um die Werte der Variablen und die Funktion jedes Codes klar zum
Ausdruck zu bringen. Jeder Kommentarzeile ist ein ! vorangestellt.
-
-
-
-
-
-
-
4 ist
ein Systemdiagramm, das ein System veranschaulicht, das die Ausführungsform
von 1 oder 2 oder 3 oder jeder
Kombination davon verwenden kann. Das Mehrprozessorsystem soll einen Bereich
von Systemen darstellen, der mehrfache Prozessoren aufweist, zum
Beispiel Computersysteme, Echtzeit-Überwachungssysteme usw. In
bestimmten Situationen kann die hierin beschriebene Steuersignalerzeugung
sowohl auf Einzelprozessor- als auch auf Mehrprozessorsysteme angewandt
werden.
-
Der
Systembus ist eine Multiprocessing-Schnittstelle zu Prozessoren,
Speicher und E/A. Bis zu vier Prozessoren (Agenten drei bis null)
können über den
Systembus miteinander verbunden werden. In einer Ausführungsform
sind diese Agenten Bus-Master. Die Schnittstelle zum Rest des Systems
ist durch die Hochgeschwindigkeits-E/A-Schnittstelle und den Speicherschnittstellenblock
dargestellt. Bus-Agenten geben Transaktionen aus, um Daten und Systeminformation
zu übertragen.
Jede Transaktion weise mehrere Phasen auf, die eine Arbitrationsphase,
Anforderungsphase, Snoop-Phase, Antwortphase und Datenphase umfassen
können.
-
5 ist
eine Simulation, wie sie von einer Ausführungsform verwendet wird.
Einem Fachmann ist die Simulationsausgabe verständlich, die das oben erläuterte Beispiel
der Umschaltung des Busverhältnis
von 7 auf 28 und zurück
auf 7 veranschaulicht, wobei das Clock Tooth Stealing aktiviert
ist. Daher stellt die Simulation ein Arbeitsbeispiel des beanspruchten
Gegenstands dar.
-
Um
die Simulation eingehender zu erläutern, es wurden zwei PLLs
modelliert, die clk0 und clk1 auf der Basis von ratio0 und ratio1
erzeugen. Ratio0 und ratio1 können
auf 7, 14 oder 28 eingestellt werden, um die Arbeitsweise der Logik
zu veranschaulichen. In der Simulation sind ratio0 und clk0 7, und
ratio1 und clk1 sind 28. Der aktuelle Kerntakt ist cclk. Der aktuelle
Bustakt ist bclk. Bck ist während
des gesamten ersten cclk des bclk aktiv. Request ist das Signal,
welches das Ratio anfordert, current ist das Signal, welches das
aktuelle Ratio angibt. Wenn request von current abweicht, wird eine
Frequenzumschaltung durchgeführt.
Request kann seinen Schaltzustand jederzeit ändern. Die Signale request
und current liegen beide 9 Takte vor dem Bustakt.
-
Current9b,
ssdrive9b und switch 9b sind Signale 9 Takte vor bclk. Sie werden
gestuft, um 8b, 7b bis hin zu 0b-Signale zu erzeugen. Current ist
das aktuelle Busverhältnis,
ssdrive ist das Source Synchronous Drive-Signal, switch zeigt die
Frequenzumschaltung an. Die Signale können weiter gestuft werden,
um Signale n Takte nach bclk zu erzeugen.
-
Auch
wenn der beanspruchte Gegenstand in Bezug auf spezifische Ausführungsformen
beschrieben wurde, ist diese Beschreibung nicht in einem einschränkenden
Sinne zu verstehen. Dem Fachmann werden nach dem Durchlesen der
Beschreibung des beanspruchten Gegenstands verschiedene Modifikationen
der offenbarten Ausführungsform
sowie alternative Ausführungsformen
des beanspruchten Gegenstands einfallen. Daher ist in Betracht zu
ziehen, daß solche
Modifikationen vorgenommen werden können, ohne vom Geist oder Umfang
des beanspruchten Gegenstands abzuweichen, wie er in den beigefügten Ansprüchen definiert ist.