-
HINTERGRUND
-
Mehrere Typen von Festkörperspeicher (Non-Volatile Memory - NVM) mit hoher Dichte und nichtflüchtigem Speicher stellen dauerhafte Speicherung in kommerziellen Computersystemen bereit. Derartige Technologien beinhalten Intel® Optane™ DC Persistent Memory, Spin Transfer Torque - Magnetic Random Access Memory (STT-MRAM), resistives RAM (ReRAM), NAND, leitfähiges Überbrückungs-RAM (Conductive Bridging RAM - CBRAM) oder Phasenwechselspeicher (Phase Change Memory PCM). Diese Speicher können auf einem Speichermodul umgesetzt sein, wobei eine Speichersteuervorrichtung den nichtflüchtigen Speicher über eine oder mehrere Hochgeschwindigkeitsschnittstellen, wie etwa PCIe (Peripheral Component Interconnect Express) oder DDR (Double Data Rate Interface), mit einem Prozessor (zum Beispiel Zentraleinheit (CPU)) verbindet. Diese Speicher sind für Lese- und Schreibzwecke auf einen stabilen Takt angewiesen. Ein plötzliches oder unerwartetes Stoppen oder Verschwinden des Takts kann eine laufende Schreiboperation korrumpieren oder stoppen.
-
Figurenliste
-
Ein umfassenderes Verstehen der Ausführungsformen der Offenbarung geht aus der unten gegebenen ausführlichen Beschreibung und aus den beigefügten Zeichnungen verschiedener Ausführungsformen der Offenbarung hervor, die jedoch nicht so aufgefasst werden sollten, dass sie die Offenbarung auf die spezifischen Ausführungsformen beschränken, sondern lediglich zur Erläuterung und zum Verstehen dienen.
- 1 veranschaulicht eine High-Level-Architektur eines Speichermoduls mit einer Einrichtung zum Aufrechterhalten stabiler Taktung gemäß einigen Ausführungsformen der Offenbarung.
- 2 veranschaulicht eine Taktungsarchitektur des Speichermoduls mit einer Einrichtung zum stabiler Taktung gemäß einigen Ausführungsformen der Offenbarung.
- 3 veranschaulicht eine Einrichtung von Taktdetektorschaltungen und eines assoziierten Timing-Diagramms gemäß einigen Ausführungsformen.
- 4 veranschaulicht einen Phasenregelkreis (PLL), der mit einer Taktglättungsschaltung gekoppelt ist, um Aufwärts- und Abwärtsimpulse anzupassen, gemäß einigen Ausführungsformen.
- 5 veranschaulicht eine Vorrichtung zur Taktglättung und ein assoziiertes Timing-Diagramm gemäß einigen Ausführungsformen.
- 6 veranschaulicht eine grafische Darstellung, die eine Taktaustauschleistungsfähigkeit der PLL und der Taktglättungsschaltung gemäß einigen Ausführungsformen zeigt.
- 7 veranschaulicht eine intelligente Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit einer Einrichtung zum Aufrechterhalten einer stabilen Taktung gemäß einigen Ausführungsformen der Offenbarung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Zum Takten und zur Synchronisation über eine Speicherschnittstelle hängen Speichermodule entweder von einem direkten Takt von einem Hostprozessor (zum Beispiel CPU) oder von einem Referenztaktsignal von dem Hostprozessor ab, das zur bordeigenen Taktregeneration in dem Speichermodul verwendet wird. Ein Host- oder Modul-Stromausfall, ein Modulabheben, ein thermisches Auslösen oder eine andere Fehlfunktion kann unerwartete und unangekündigte Verluste des Host-Takts verursachen, die das Speichermodul als einen „überraschenden Taktstopp“ betrachtet.
-
Ein Problem stellt sich zum Zeitpunkt eines überraschenden Taktstopps, wenn der Host-Prozessor (oder einfach ein Host) und das Speichermodul sehr unterschiedliche Perspektiven über den Status einer Transaktion aufweisen können. Der Host betrachtet alle Schreibvorgänge, die das Speichermodul vor einem überraschenden Taktstopp empfängt, als sicher in seinem persistenten Speicher gespeichert. Nachdem das Speichermodul die Daten empfangen hat, verwendet es jedoch Hunderte oder Tausende Taktzyklen, um die komplexe Aufgabe des Schreibens auf die Medien (zum Beispiel den persistenter Speicher) abzuschließen. Da ein überraschender Taktstopp von einem Leistungsverlust verursacht werden kann, wird außerdem erwartet, dass das Speichermodul diese Schreibvorgänge innerhalb eines begrenzten Zeitfensters, in dem Haltekondensatoren die Leistungsversorgungspegel des Moduls sicher aufrechterhalten können abschließt. Wenn ein Taktstopp auftritt, nachdem die Host-Transaktion abgeschlossen ist, aber bevor das Speichermodul das Schreiben aller Daten beendet, treten zahlreiche Probleme mit Datenintegrität und -sicherheit auf, einschließlich Schaltungsinstabilität, Datenverlust, illegaler Registerzugriff, FIFO-Unterlauf (First-in-First-Out-Unterlauf) und Firmware-Zustandskorruption. Diese Probleme können vermieden werden, falls das Modul nach einem überraschenden Taktstoppereignis einen kontinuierlichen und stabilen Takt beibehält.
-
Um dieses Problem zu lösen, kann nach einem überraschenden Taktstopp eine Rücksetzsequenz initiiert werden, die Einrasten oder erneutes Einrasten eines Phasenregelkreises (PLL) auf eine alternative Referenztaktquelle, wie etwa einen On-Modul-Quarzoszillator, beinhaltet. Der Ausgang der PLL treibt dann das Taktverteilungsnetzwerk, nachdem der PLL in einen eingeschwungenen Zustand einrastet ist.
-
Rücksetzsequenzen können jedoch viele Tausend Taktzyklen allein benötigen, um einen PLL einzurasten und nachgelagerte Taktschaltungen, wie etwa DLLs (Delay-Locked Loops) oder taktkreuzende Warteschlangen, zu aktivieren. Eine weitaus bessere Nutzung dieser wertvollen Zeit wäre es, In-Flight-Operationen planmäßig abzuschließen, um die erforderlichen Latenzgrenzen für ein gegebenes Protokoll oder für einen gegebenen physischen Medientyp zu erfüllen. Außerdem erfordern lange Rücksetzsequenzen, dass die Leistungsversorgungen des Moduls nach Leistungsverlust für eine längere Zeit aufrechterhalten bleiben, was zu zusätzlichen Kosten und Fläche für entweder zusätzliche Haltekondensatoren oder teurere Materialien, wie etwa Tantal, führt.
-
Eine andere Möglichkeit, das Problem des plötzlichen Taktstopps zu lösen, besteht darin, auf eine neue Taktquelle umzuschalten, die das Taktverteilungsnetzwerk direkt treibt. Die neue Taktquelle kann entweder ein On-Modul-Quarzoszillator oder ein On-Die-Ringoszillator sein.
-
Wenn sie dazugeschaltet wird, kann die neue Taktquelle jedoch Glitches in das Taktverteilungsnetzwerk einführen - entweder als Runt-Impulse, verlängerte Perioden oder verkürzte Perioden. Runt-Pulse können intermittierend und an unterschiedlichen physischen Lagen in der Speichersteuervorrichtung verdampfen; verlängerte Perioden können eine Fehlfunktion von Downstream-Verzögerungsleitungen verursachen; und verkürzte Perioden können Timing-Ausfälle verursachen. Außerdem kann ein instabiler Takt bewirken, dass synchrone Taktübergänge fehlschlagen. Falls der neue Takt von einem On-Die-Ringoszillator stammt, können weiter das inhärente Vorrichtungs- und Versorgungsrauschen im Laufe der Zeit zunehmend verlängerte oder verkürzte Perioden verursachen, die nicht korrigiert werden, während sich das Rauschen ansammelt, was letztendlich zu Timingversagen führt.
-
Eine andere Lösung besteht darin, dass für Speichersteuervorrichtungen, die einen Takt aus dem Host-Takt synthetisieren, ein überraschender Taktstopp gehandhabt werden kann, indem der Zustand der Oszillatorsteuerung des PLL als eine Spannung auf einem Kondensator (für analoge PLLs) oder als ein digitales Steuerwort (für digitale PLLs) eingefroren wird. Da der PLL in dem Fall eines Stopptaktszenarios mit einem statischen Oszillatorsteuerwert in offener Schleife arbeitet, gibt es jedoch keine Korrekturen der Oszillatorphase oder -frequenz. Das Vorrichtungs- und Versorgungsrauschen können im Laufe der Zeit verlängerte Perioden oder verkürzte Perioden verursachen, die nicht korrigiert werden, wenn sich das Rauschen ansammelt, was letztendlich zu Timingversagen führt.
-
Einige Ausführungsformen lösen das Problem eines plötzlichen Taktstopps, indem ein stabiler und kontinuierlicher Takt für das Speichermodul selbst nach einem überraschenden Taktstoppereignis garantiert wird,womit ein rechtzeitiger Abschluss aller On-Modul-Operationen sichergestellt wird, und die Integrität und Sicherheit der Daten bewahrt wird. Sowohl vor als auch nach einem überraschenden Taktstopp liefert die Einrichtung einiger Ausführungsformen einen stabilen und kontinuierlichen Takt zu einem Speichermodul mit einer eindeutigen Anordnung von Schaltungsbauelementen, einschließlich einer Taktdetektorschaltung, einer Taktglättungsschaltung und einem oder mehreren PLLs. Bei Erfassung eines gestoppten Host-Takts schaltet ein erster PLL nahtlos zu einem alternativen Referenztakt um, zum Beispiel von einem Onboard-Quarzoszillator. Die Taktglättungsschaltung ermöglicht, dass der erste PLL eine stabile Phase und Frequenz beibehält, ohne Glitches oder Periodenauslenkungen, die größer als der natürliche Jitter des eingerasteten PLL sind, zu induzieren. Bei einigen Ausführungsformen können ein oder mehrere Downstream-PLLs zusätzliche Taktdomänen von dem ersten PLL treiben.
-
Die Vorrichtung und das System verschiedener Ausführungsformen ermöglichen es einer Speichersteuervorrichtung, das Taktverteilungsnetzwerk eines Speichermoduls vor und nach einem überraschenden Taktstopp kontinuierlich mit einem glitchfreien Takt zu treiben, der sowohl hinsichtlich der Frequenz als auch der Phase stabil ist. Es besteht möglicherweise keine Notwendigkeit, irgendeinen PLL erneut zu sperren und null Zeit, die auf Rücksetzsequenzen verschwendet wird, um einen PLL erneut zu sperren oder nachgelagerte Taktschaltungsanordnungen, wie DLLs oder Taktübergänge, anzupassen. Die Vorrichtung und das System verschiedener Ausführungsformen garantieren den Abschluss von In-Flight-Operationen gemäß derselben Planung wie im Normalbetrieb, wodurch erforderliche Latenzgrenzen für einen gegebenen Protokoll- oder physischen Medientyp erfüllt werden, Datenintegrität aufrechterhalten wird und die Kosten und Platinenfläche von Haltekondensatoren reduziert werden. Andere technische Auswirkungen ergeben sich aus den verschiedenen Ausführungsformen und Figuren.
-
In der folgenden Beschreibung werden zahlreiche Einzelheiten besprochen, um eine gründlichere Erläuterung von Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Es wird jedoch für einen Fachmann offensichtlich sein, dass Ausführungsformen der vorliegenden Offenbarung ohne diese spezifischen Einzelheiten umgesetzt werden können. In anderen Fällen sind wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform statt ausführlich gezeigt, um zu vermeiden, dass Ausführungsformen der vorliegenden Offenbarung verdeckt werden.
-
Es wird angemerkt, dass in den entsprechenden Zeichnungen der Ausführungsformen Signale mit Linien dargestellt sind. Einige Linien können dicker sein, um mehr Bauteilsignalpfade anzugeben, und/oder weisen Pfeile an einem oder mehreren Enden auf, um eine primäre Informationsflussrichtung anzugeben. Derartige Angaben bezwecken nicht, einschränkend zu sein. Vielmehr werden die Linien in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet, um ein leichteres Verstehen einer Schaltung oder einer logischen Einheit zu erleichtern. Ein beliebiges dargestelltes Signal kann, wie von Gestaltungserfordernissen oder Präferenzen vorgegeben, tatsächlich ein oder mehrere Signale umfassen, die sich in beide Richtungen bewegen können und mit einem beliebigen geeigneten Typ von Signalsystem umgesetzt werden können.
-
In der Spezifikation und in den Ansprüchen bedeutet der Ausdruck „verbunden“ durchweg eine direkte Verbindung, wie etwa eine elektrische, mechanische oder magnetische Verbindung, zwischen den Dingen, die verbunden sind, ohne irgendwelche zwischengeschaltete Vorrichtungen.
-
Der Begriff „gekoppelt“ bedeutet eine direkte oder indirekte Verbindung, wie etwa eine direkte elektrische, mechanische oder magnetische Verbindung zwischen den Dingen, die verbunden sind, oder eine indirekte Verbindung über eine oder mehrere passive oder aktive zwischengeschaltete Vorrichtungen.
-
Der Begriff „angrenzend“ verweist hier allgemein auf eine Position eines Gegenstands, der sich neben (zum Beispiel unmittelbar neben oder nahe dazu mit einem oder mehreren Gegenständen dazwischen) oder benachbart zu einem anderen Gegenstand (zum Beispiel daran anliegend) befindet.
-
Der Begriff „Schaltung“ oder „Modul“ kann auf eine oder mehrere passive und/oder aktive Bauelemente verweisen, die zum Zusammenwirken miteinander eingerichtet sind, um eine gewünschte Funktion bereitzustellen.
-
Der Begriff „Signal“ kann auf mindestens ein Stromsignal, Spannungssignal, magnetisches Signal oder Daten-/Taktsignal verweisen. Die Bedeutung von „ein“, „eine“ und „der/die/das“ beinhaltet Pluralreferenzen. Die Bedeutung von „in“ beinhaltet „in“ und „auf“.
-
Der Begriff „Skalieren“ verweist im Allgemeinen auf das Umwandeln eines Designs (Schaltbild oder Layout) von einer Prozesstechnologie zu einer anderen Prozesstechnologie und kann anschließend in der Layoutfläche reduziert werden. In einigen Fällen verweist „Skalieren“ auch auf das Vergrößern eines Designs von einer Prozesstechnologie zu einer anderen Prozesstechnologie und kann anschließend in der Layoutfläche vergrößert werden. Der Ausdruck „Skalieren“ verweist im Allgemeinen auch das Verkleinern oder Vergrößern des Layouts und von Vorrichtungen innerhalb desselben Technologieknotens. Der Ausdruck „Skalieren“ kann auch auf das Einstellen (zum Beispiel Verlangsamen oder Beschleunigen - das heißt Abwärtsskalieren bzw. Aufwärtsskalieren) einer Signalfrequenz in Bezug auf einen anderen Parameter, zum Beispiel den Leistungsversorgungspegel, verweisen. Die Ausdrücke „im Wesentlichen“, „nahe“, „ungefähr“, „in der Nähe von“ und „etwa“ verweisen allgemein auf einen Bereich innerhalb von +/- 10 % eines Zielwerts.
-
Sofern nicht anders spezifiziert, gibt die Verwendung der Ordnungsadjektive „erste/r/s“, „zweite/r/s“ und „dritte/r/s“ usw. zum Beschreiben eines gemeinsamen Objekts lediglich an, dass auf unterschiedliche Instanzen von gleichen Objekten verwiesen wird, und es wird nicht beabsichtigt, zu implizieren, dass die derart beschriebenen Objekte in einer gegebenen Sequenz, sei es zeitlich, räumlich, in der Rangfolge auf eine beliebige andere Art und Weise, vorliegen müssen.
-
Für die Zwecke der vorliegenden Offenbarung bedeuten die Formulierungen „A und/oder B“ und „A oder B“ (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet die Formulierung „A, B und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
-
Die Begriffe „links“, „rechts“, „vorn“, „hinten“, „oben“, „unten“, „über“, „unter“ und dergleichen in der Beschreibung und in den Ansprüchen, falls vorhanden, werden zu beschreibenden Zwecken verwendet und nicht notwendigerweise zum Beschreiben permanenter relativer Positionen.
-
Es wird darauf hingewiesen, dass die Elemente der Figuren, die die gleichen Bezugszahlen (oder Bezeichnungen) wie die Elemente einer beliebigen anderen Figur aufweisen, auf eine beliebige der beschriebenen ähnliche Weise arbeiten oder funktionieren können, jedoch nicht darauf beschränkt sind.
-
Für Zwecke der Ausführungsformen sind die Transistoren in diversen Schaltungen und Logikblöcken, die hierin beschrieben sind, Metalloxid-Halbleiter-Transistoren (MOS-Transistoren) oder ihre Derivate, wobei die MOS-Transistoren Drain-, Source-, Gate- und Bulk-Anschlüsse beinhalten. Die Transistoren und/oder die MOS-Transistorderivate beinhalten auch Tri-Gate und FinFET-Transistoren, Gate-All-Around-Cylindrical-Transistoren, Tunnel-FET-Transistoren (TFET), Vierkantdraht oder Rechteckband-Transistoren, Ferroelektrische-FET-Transistoren (FeFET) oder andere Vorrichtungen, die Transistorfunktionalität umsetzen, wie Kohlenstoff-Nanoröhren oder Spintronik-Vorrichtungen. Symmetrische MOSFET-Source- und -Drain-Anschlüsse sind identische Anschlüsse und werden hier austauschbar verwendet. Andererseits weist eine TFET-Vorrichtung asymmetrische Source- und Drain-Anschlüsse auf. Fachleute erkennen, dass andere Transistoren, beispielsweise Bipolar-Transistoren (BJT-PNP/NPN), BiCMOS, CMOS usw., verwendet werden können, ohne vom Schutzumfang der Offenbarung abzuweichen.
-
1 veranschaulicht eine High-Level-Architektur 100 mit einem Speichermodul mit einer Einrichtung zum Aufrechterhalten einer stabilen Taktung gemäß einigen Ausführungsformen der Offenbarung. Die Architektur 100 umfasst einen Host-Prozessor 101, ein Speichermodul 102 und eine Host-zu-Speicher-Schnittstelle 103 (zum Beispiel, DDR-, PCIe-Schnittstelle usw.). Bei verschiedenen Ausführungsformen beinhaltet das Speichermodul 102 eine Speichersteuervorrichtung 104, die eine Taktstabilisatoreinrichtung 105 und eine Anzahl N von Speicherbänken 1061-N aufweist, wobei N eine ganze Zahl größer als eins ist. Die Speicherbänke können flüchtiger oder nichtflüchtiger Speicher sein. Beispiele für Speicher für die Speicherbänke beinhalten: Spintransferdrehmoment - magnetischen Direktzugriffsspeicher (STT-MRAM), resistiven RAM (ReRAM), NAND, leitfähigen Überbrückungs-RAM (CBRAM) oder Phasenwechselspeicher (PCM). Bei verschiedenen Ausführungsformen beinhaltet das Speichermodul 102 eine andere Taktquelle 107 oder ist mit dieser gekoppelt. Bei diesem Beispiel ist die zusätzliche Taktquelle ein Quarzoszillator 107. Der Quarzoszillator 107 kann in demselben Gehäuse wie das Speichermodul gehäust sein oder kann gehäuselos sein. Die Schnittstelle 103 stellt Daten, Takt (Strobe) und Steuersignale bereit. Wenn der Takt vom Host-Prozessor 101 stoppt, stellt die Taktstabilisatoreinrichtung 105 sicher, dass die Speichersteuervorrichtung 104 ohne Probleme mit Datenintegrität und -sicherheit, einschließlich Schaltungsinstabilität, Datenverlust, illegalem Registerzugriff, FIFO-Underflow und Firmware-Zustandskorruption, wie erwartet weiterarbeitet.
-
Bei einigen Ausführungsformen liefert die Taktstabilisatoreinrichtung 105 sowohl vor als auch nach einem überraschenden Taktstopp von dem Hostprozessor 101 einen stabilen und kontinuierlichen Takt zu der Speichersteuervorrichtung 104 und die Speicherbänke 1061-N unter Verwendung einer Taktdetektorschaltung, einer Taktglättungsschaltung und eines oder mehrerer PLLs. Bei Erfassung eines gestoppten Host-Takts schaltet ein erster PLL durch die Taktstabilisatoreinrichtung 105 nahtlos zu einem alternativen Referenztakt von einem Onboard-Quarzoszillator 107 um. Eine Taktglättungsschaltung der Taktstabilisatoreinrichtung 105 erlauben es dem ersten PLL, eine beständige Phase und Frequenz beizubehalten, ohne Glitches oder Periodenauslenkungen, die größer als der natürliche Jitter des eingerasteten PLL sind, zu induzieren. Bei einigen Ausführungsformen können ein oder mehrere optionale nachgeschaltete PLLs zusätzliche Taktdomänen innerhalb des Speichermoduls 102 treiben.
-
2 veranschaulicht eine Taktungsarchitektur 200 des Speichermoduls 102 mit einer Einrichtung zum Aufrechterhalten einer stabilen Taktung gemäß einigen Ausführungsformen der Offenbarung. Bei einigen Ausführungsformen umfasst die Taktstabilisatoreinrichtung 105 der Taktungsarchitektur 200 einen Teiler 201, einen Multiplexer 202, eine Taktdetektorschaltung 203, eine Taktglättungsschaltung 204 (e.g, 2041-M) und eine oder mehrere PLLs 2051-M. Die Taktdetektorschaltung 203 ermöglicht das spontane Umschalten eines Referenztakts (RefClk) eines PLL 2051, während ein stabiler und kontinuierlicher Ausgangstakt aufrechterhalten wird, ohne irgendeinen PLL in der Speichersteuervorrichtung 104 neu zu sperren. Nach einem überraschenden Taktstoppereignis von dem Hostprozessor 101 garantiert die Taktstabilisatoreinrichtung 105 einen planmäßigen Abschluss von In-Flight-Operationen für den nichtflüchtigen Speicher 1061-N, womit normale Latenz aufrechterhalten, Datenintegrität bewahrt wird und die Kosten von Haltekondensatoren reduziert werden. Im Normalbetrieb des Computersystems teilt der Teiler 201 der Speichersteuervorrichtung 104 die Hochgeschwindigkeits-Host-Taktfrequenz des Host-Takts (zum Beispiel im Bereich von 500 MHz bis 10 GHz), um einen Referenztakt oder Host-Takt mit niedrigerer Geschwindigkeit (zum Beispiel im Bereich von 10 MHz bis 200 MHz) zu dem ersten PLL[0] 2051 zu liefern. Diese Niedergeschwindigkeitsreferenzfrequenz wird mit der Frequenz des Quarztakts eines On-Modul-Quarzoszillators 107, der im Normalbetrieb nicht verwendet wird, abgeglichen (zum Beispiel, innerhalb von 10 % oder innerhalb von 0,1 %). Bei verschiedenen Ausführungsformen ist die Steuervorrichtung 104 dazu konzipiert, die Frequenzgenauigkeitsspezifikation im ungünstigsten Fall in PPM (Teile pro Million - Parts Per Million) zu unterstützen, ob es sich nun um den Host-Quarzoszillator oder den bordeigenen handelt.
-
Der erste PLL[0] 1051 erzeugt dann einen Hochgeschwindigkeitsausgangstakt (PLL[0]-Takt), der das Taktverteilungsnetzwerk 2061 ansteuert; und/oder den Teiler 207, um einen Niedergeschwindigkeitsreferenztakt für einen oder mehrere zusätzliche nachgeschaltete PLLs 2052, die zusätzliche Taktverteilungsnetzwerke und Taktdomänen 2062 ansteuern, und weiter bereitzustellen. Der Ausgangstakt clocko des Verteilungsnetzwerks 2061 wird von einer Taktdomäne (zum Beispiel, Endpunkte 2081-N) verwendet. Hier verweist eine Taktdomäne auf eine Logik oder eine Gruppe von Logik, die mit einem speziellen Takt arbeitet. Clocko wird auch von dem Teiler 207 verwendet, um einen anderen Referenztakt für den nachgeschalteten PLL 2052 zu erzeugen. Der Ausgangstakt des PLL[1] 2052 wird dann von dem Taktverteilungsnetzwerk 2062 empfangen, um den Takt 1 zu erzeugen. Um ein starkes Phasenrauschen in einem nachgelagerten PLL zu reduzieren, weisen die nachgelagerten PLLs assoziierte Taktglättungsschaltungen auf. Zum Beispiel arbeitet die Taktglättungsschaltung 2042 mit dem PLL[1] 2052. Clock1 wird dann von einer anderen Taktdomäne (zum Beispiel Endpunkte 2091-N) verwendet. Dieser Takt (zum Beispiel Takt1) oder ein anderer nachgeschalteter Takt kann von dem Speicherarray oder den Banken 1061-N verwendet werden. Beispiele für Endpunkte beinhalten Abtastschaltungen, Codierer, Decoder, Fehlerkorrekturlogik usw. Bei einigen Ausführungsformen kann die Taktglättungsschaltung 2042 für PLL[1] und weiter entfernt werden.
-
Nach einem überraschenden Taktstopp stellt die Taktdetektorschaltung 203 einen kontinuierlichen und stabilen Takt zu dem Speichermodul 102 bereit. Bei einigen Ausführungsformen erfasst der Taktdetektor 203 schnell den gestoppten Host-Takt und initiiert einen Austausch von dem Host-abgeleiteten Referenztakt mit niedriger Geschwindigkeit zu dem Takt des On-Modul-Quarzoszillators 107 mit niedriger Geschwindigkeit. Bei einigen Ausführungsformen erfasst die Taktdetektorschaltung 203 einen gestoppten Host-Takt mit digitaler Schaltungsanordnung. Zum Beispiel tastet die Taktdetektorschaltung 203 eine zweigeteilte Version des Hochgeschwindigkeits-Host-Takts mit dem Ausgang (PLL[0]-Takt) des ersten PLL[0] 2051 ab, wobei übereinstimmende Pfadverzögerungen die steigende Flanke des PLL[0]-Takts mit Bezug auf den zweigeteilten - Host-Takt zentrieren. Wenn die aktuelle Abtastung mit der vorherigen Abtastung übereinstimmt, assertiert die Taktdetektorschaltung 203 ein Taktauswahlsignal (zum Beispiel, Gestoppter Takt), das angibt, dass der Host-Takt gestoppt wurde. Obwohl die Ausgabe des ersten PLL[0] 2051 ohne eine Referenz driften und letztendlich instabil werden kann, vervollständigt sich die Takterfassungsoperation innerhalb weniger Hochgeschwindigkeits-Host-Taktzyklen, was eine ausreichend kurze Zeit (die zum Beispiel kleiner ist als ein Niedergeschwindigkeits-Referenztaktzyklus) ist, um sicherzustellen, dass die Ausgabe des ersten PLL [0] 2051 beständig bleibt, bis der gestoppte Host-Takt erfasst wird.
-
Unmittelbar nach der Erfassung eines gestoppten Host-Takts führt die Taktstabilisatoreinrichtung 105 über den Multiplexer 202 einen spontanen Tausch zu dem On-Modul-Quarzoszillator 107 als die neue Referenztaktquelle für den ersten PLL[0] 2051 aus. Bei diesem Beispiel besteht keine Notwendigkeit, einen PLL neu zu sperren, weil die Taktglättungsschaltung 204 einen stabilen und kontinuierlichen Ausgangstakt von dem PLL[0] 2051 selbst unter dieser plötzlichen Änderung des Referenztakts beibehält. Die Taktglättungsschaltung 204 erlaubt es dem ersten PLL[0] 2051, die Phase des neuen Referenztakts unter Aufrechterhalten einer beständigen Ausgabefrequenz, die gut innerhalb von Timing-Toleranzen liegt, langsam und allmählich zu verfolgen.
-
Mit der Taktglättungsschaltung 204 behält der PLL 2051 eine stabile Ausgangstaktfrequenz bei plötzlichen Phasenänderungen, wie sie etwa während eines Referenztakttauschs auftreten können, ohne erneutes Sperren. Die Taktglättungsschaltung 204 stellt eine minimale Frequenz- und Phasenabweichung an dem Ausgang des ersten PLL 2051 sicher, während er sich langsam auf den neuen Referenztakt ausrichtet. Nachgeschaltete PLLs (zum Beispiel, 2052-M) erfahren aufgrund ihrer Tiefpassfiltercharakteristik eine noch geringere Frequenz- und Phasenabweichung. Bei diesem Beispiel stellt der PLL[0] 2051 einen Referenztakt für den nachgeschalteten PLL[1: M] 2052-M bereit, der verschiedene Domänen auf dem Modul taktet. Die Ausgangstakte aller PLL behalten eine konsistente Periode sowohl vor als auch nach dem Taktstopp bei, die gut innerhalb von Timing-Toleranzen liegt, mit vernachlässigbarer Zyklus-zu-Zyklus-Frequenz und Phasenauslenkungen, wie etwa bei Spreizspektrum-Taktung oder natürlicher Quarzoszillatordrift zu sehen wäre.
-
Die Tiefpassfiltercharakteristik der nachgeschalteten PLLs reduziert die Frequenzabweichung am Ausgang des PLL[1] für die Umsetzung ohne Taktglättung geringfügig (zum Beispiel, auf etwa 5 %), wohingegen bei Taktglättung eine viel kleinere Frequenzabweichung (zum Beispiel, von weniger als 0,3 %) zu sehen ist. Der gemeinsame Referenztakt hält alle On-Modul-PLLs synchronisiert, und es besteht keine Notwendigkeit mehr, mit dem Host zu synchronisieren, da es keinen Host-Takt gibt. Bei einigen Ausführungsformen ist die Taktmultiplikation für die Hochgeschwindigkeitsausgabe vorteilhaft; selbst bei einem plötzlichen maximalen Eingangsphasenfehler (zum Beispiel von 0,5 * TPeriod RefClk) begrenzt die Taktglättungsschaltung 204 Phasen- und/oder Frequenzänderungen in der Hochgeschwindigkeits-Oszillatorausgabe auf weniger als einen kleinen Prozentsatz der Hochgeschwindigkeits-Taktperiode.
-
3 veranschaulicht eine Einrichtung 300 einer Taktdetektorschaltung und eines assoziierten Timing-Diagramms gemäß einigen Ausführungsformen. Die Einrichtung 300 umfasst Flip-Flop-Schaltungen 301, 303 und 304, einen Inverter 302 und Kombinationslogik 305 (zum Beispiel, exklusiv-NOR-Gatter), die, wie gezeigt, miteinander gekoppelt sind. Sie tastet eine zweigeteilte Version des Hochgeschwindigkeits-Host-Takts mit PLL[0]-Takt ab, wobei übereinstimmende Pfadverzögerungen die steigende Flanke des PLL[0]-Takts in Bezug auf den zweigeteilten Host-Takt zentrieren (Host-Takt div 2). Wenn die aktuelle Abtastung (Abtastung N) der Flip-Flop-Schaltung 303 mit der vorherigen Abtastung (Abtastung N-1) der Flip-Flop-Schaltung 304 übereinstimmt, legt die Kombinationslogik 305 das Taktsignal (Stopp-Takt) an, das angibt, dass der Host-Takt gestoppt wurde. In Abhängigkeit von der Taktrate kann die Umsetzung zusätzliche Abtasttiefe (zum Beispiel, vier Abtastwerte) verwenden, um die Robustheit gegenüber Jitter weiter zu erhöhen. Bei einem Beispiel werden zwei zusätzliche Flip-Flop-Schaltungen (nicht gezeigt) verwendet, um die Abtastung N-2 und die Abtastung N-3 zu erzeugen, die dann mit der Abtastung N und der Abtastung N-1 verglichen werden, bevor das Taktauswahlsignal aktiviert wird, was angibt, dass der Host-Takt tatsächlich gestoppt wurde. Obwohl der PLL[0]-Takt driften kann und schließlich ohne eine Referenz instabil werden kann, vollzieht sich die Takterfassungsoperation innerhalb weniger Hochgeschwindigkeits-Host-Taktzyklen, die eine ausreichend kurze Zeit ist (tatsächlich ist sie geringer als einNiedergeschwindigkeits-Referenztaktzyklus) ist, um sicherzustellen, dass der PLL[0]-Takt stabil bleibt, bis der gestoppte Host-Takt erfasst wird. Nicht nur können einige Ausführungsformen die Abtasttiefe erhöhen, sie können auch die Breite erhöhen. Zum Beispiel sind die Probe N und die Probe N-1 in 3 verschobene Versionen des Host-Takts div 2, der auch ein 1-Bit-Zähler ist. Die Zählerbreite könnte auf N-Bit erhöht werden. Und das Zahlensystem kann in einem beliebigen Stil, wie etwa Graucode oder Binärzählung, umgesetzt werden.
-
4 veranschaulicht einen Phasenregelkreis (PLL), der mit einer Taktglättungsschaltung gekoppelt ist, um Aufwärts- und Abwärtsimpulse anzupassen, gemäß einigen Ausführungsformen. Der PLL 400 weist einen Phasendetektor 401 oder Phasenfrequenzdetektor (PFD), eine Ladepumpe 402, ein Filter 403, einen spannungsgesteuerten Oszillator (VCO) 404, einen Teiler 405 und eine Taktglättungsschaltungsanordnung 204 auf. Um die Ausführungsformen nicht zu verschleiern, sind andere Bauelemente des PLL, wie etwa ein Einrastdetektor, nicht gezeigt.
-
Der Phasendetektor 401 empfängt einen Referenztakt (RefClk) und einen Rückkopplungstakt (FbClk) und erzeugt Up- und Down-Signale (Dn-Signale). Up- und Dn-Signale sind Impulse, die relative Phasendifferenz zwischen dem RefClk und dem FbClk darstellen. Bei Fehlen der Taktglättungsschaltungen 204 empfängt die Ladepumpe 402 die Up- und Dn-Impulse und sourct oder sinkt Strom auf dem Knoten V1. Das Signal aufV1 wird dann von einem Filter 403 (wie etwa einem Tiefpassfilter (Low Pass Filter - LPF)) gefiltert, um eine gefilterte Steuerspannung Vctl zu erzeugen. Vctl wird dann zum Steuern der Oszillationsfrequenz des VCO 404 verwendet. Der Ausgang des VCO 404 ist VcoClk. Der Teiler 405 teilt die Frequenz von VcoClk durch ein Teilerverhältnis herab, um FbClk zu erzeugen. Während des PLL-Einrastens liefern Up- und Dn-Signale einen Nachweis eines dynamischen Phasenfehlers. Das Teilerverhältnis kann programmierbar oder fest sein. Das Teilerverhältnis kann ein ganzzahliger oder Bruchteilwert sein. Ein dynamischer Phasenfehler ist der Phasenfehler zwischen RefClk und FbClk, bevor der PLL als eingerastet erklärt wird. Ein PLL wird als eingerastet erklärt, wenn die Phasendifferenz zwischen RefClk und FbClk unter einem vorbestimmten Schwellenwert liegt.
-
Einige Umsetzungen des Phasendetektors 401 verwenden analoge Schaltungstechniken, während andere digitale Schaltungsanordnungen verwenden. Der Phasendetektor 401 kann als nur phasenempfindlich oder frequenz- und phasenempfindlich konzipiert sein. Wenn Phasendetektoren nur für Phasen von RefClk und FbClk empfindlich sind, erzeugen sie eine Ausgabe, die zu der Phasendifferenz zwischen den beiden Signalen proportional ist. Wenn die Phasendifferenz zwischen dem RefClk und FbClk konstant ist, erzeugt der Phasendetektor 401 eine konstante Spannung. Wenn es eine Frequenzdifferenz zwischen den beiden Signalen (RefClk und FbCLk) gibt, erzeugt der Phasendetektor 401 eine variierende Spannung. Beispielhafte Umsetzungen der Phasendetektoren 401 beinhalten einen auf Dioden basierten Ringphasendetektor, einen exklusiven oder phasengesteuerten Phasendetektor, auf JK-Flip-Flop-Schaltungen basierende Komparatoren und duale D-Typ-Phasendetektoren. Wenn ein digitaler Phasendetektor den Phasendetektor 401 umsetzen soll, werden allgemein kurze Up- und Dn-Impulse durch die Logikgatter des digitalen Phasendetektors erzeugt. Der statische Phasenfehler ist die Pulsweitendifferenz zwischen Up- und Dn-Pulsen, die von Leckstrom und der Ladepumpenstromfehlanpassung verursacht wird.
-
Wenn sich der PLL in dem normalen Betriebsmodus befindet, gibt PFD einen Impuls mit einer Zeitdauer proportional zu dem Phasenfehler zwischen dem RefClk- und dem FBClk-Eingang des PLL aus. Die Impulse ermöglichen es einer Ladepumpe, eine Ladungsmenge proportional zu dem Vorzeichen und dem Ausmaß des Phasenfehlers entweder zu sourcen oder zu sinken. Die Ladung wird auf einen Kondensator (Cp) gepumpt und gefiltert, um eine Steuerspannung für den VCO 404 bereitzustellen, der seine Ausgangsfrequenz als Reaktion auf die Änderung der Steuerspannung (Vct1) beschleunigt oder verlangsamt. Schließlich erreicht der PLL einen stationären „Locked“-Zustand mit nahezu konstantem Vctl und minimalem Phasenfehler. Der Div-by-N-Teiler 405 ermöglicht es dem PLL, eine Frequenz auszugeben, die N Mal größer als die Refclk-Frequenz ist.
-
Eine plötzliche Änderung der Source des RefClk kann einen großen Phasenfehler am Eingang des PFD 401 einführen. Wie man sieht, hängt die Ladungsmenge, die von dem Kondensator Cp zum Steuern des VCO 404 gesourct oder gesinkt wird, von dem Phasenfehler ab. Die Ladungsmenge pro Zeiteinheit, die auf dem Kondensator abgetastet wird, ist eine Funktion der Kondensatorgröße (Cp) und der Änderung der Ladung pro Zeiteinheit oder des Stroms (Ip = dQ/dT). Man ziehe für einen Augenblick in Betracht, diese Ladungsänderung auf etwas weniger als das Maximum, das über eine RefClk-Periode (T
Penod) gesourct oder gesinkt werden kann, zu begrenzen. Da die Änderung der Vctl-Spannung zu dem Strom proportional, begrenzt dies nun die maximale Änderung von Vctl auf
Die bedingt, dass die Verstärkung des PFD 401 und des Ladepumpensystems 402 gesättigt werden kann, um den VCO 404 daran zu hindern, aufgrund eines plötzlich großen Phasenfehlers die Phase und/oder Frequenz abrupt zu ändern. Bei verschiedenen Ausführungsformen fängt die Taktglättungsschaltung 204 PFD-Ausgabe (up und dn) ab und begrenzt die Pulslänge auf t0 < (1% * Tperiod). Daher werden modifizierte Aufwärts- und Abwärtsimpulse (Up' und Dn') zu der Ladepumpe 402 bereitgestellt, um die Ladungsmenge, die an den Knoten V1 gesinkt oder gesourct wird, zu begrenzen. Die Begrenzung der Pulsbreite auf t0 führt zu einem ähnlich reduzierten Änderungsanteil (zum Beispiel, ca. 1 %) in der Ausgangsphase und -frequenz des Hochgeschwindigkeits-Oszillatortaktes. Es wird angemerkt, dass t0 in Abhängigkeit von Systemkonzeptionsbetrachtungen andere Werte als 1 % sein kann. Mit der Taktglättungsschaltung 204 behält ein PLL eine stabile Ausgangstaktfrequenz unter plötzlichen Phasenänderungen von mehr als t0, wie etwa während eines Referenztakttauschs auftreten kann, ohne Neueinrasten. Die Taktglättungsschaltung sorgt für minimale Frequenz- und Phasenabweichung auf dem Ausgang der ersten PLL, da sie sich langsam an den neuen Referenztakt angleicht.
-
Während der PLL 400 als ein analoger PLL veranschaulicht ist, kann eine beliebige Art von PLL verwendet werden, um Takt zu erzeugen. Zum Beispiel können der Mischsignal-PLL, der Volldigital-PLL usw. mit einer Taktglättungsschaltungsanordnung 204 verwendet werden. Bei einigen Ausführungsformen kann der PFD 401 mit einem Zeit-zu-Digital-Wandler (Time to Digital - TDC) ersetzt werden. Bei einer derartigen Ausführungsform überwacht eine digitale Taktglättungsschaltung den digitalen Stream, der von dem TDC und verarbeitet ihn digital, um plötzliche große Phasenänderungen zu glätten. Hier kann die Ausgabe in digitalem Format verbleiben oder in eine analoge Ausgabe umgewandelt werden. Bei einigen Ausführungsformen kann das Filter 403 mit einem Volldigitalfilter, das wohlbekannte digitale Filterimplementierungen (zum Beispiel FIR (Finite Impulse Response) oder IIR (Unfinite Impulse Response)) verwendet, ersetzt werden. Bei einer derartigen Ausführungsform empfängt das digitale Filter eine digitale Eingabe von der Taktglättungsschaltung oder von einem Analog-Digital-Wandler. Bei einigen Ausführungsformen kann der VCO 404 mit einem digital gesteuerten Oszillator oder DCO ersetzt werden. Bei einer derartigen Ausführungsform empfängt der DCO eine digitale Eingabe von einem digitalen Filter, oder eine analoge Eingabe wird über einen Analog-Digital-Wandler in eine digitale Repräsentation umgewandelt.
-
5 veranschaulicht eine Einrichtung 500 zum Taktglätten und assoziierten Timing-Diagramm gemäß einigen Ausführungsformen. Die Einrichtung 500 umfasst eine Verzögerungsleitung 501, einen Inverter 502, ein AND-Gatter 503, eine Verzögerungsleitung 504, einen Inverter 505 und ein AND-Gatter 506, die wie gezeigt miteinander gekoppelt sind. Bei einem überraschenden Taktstopp assertiert das „taktgestoppte“ -Signal (oder Taktauswahlsignal), wodurch ein Tausch des PLL[0]-Eingangsreferenztakts von dem Host-Takt mit niedriger Geschwindigkeit zu dem Quarzoszillatortakt mit niedriger Geschwindigkeit initiiert wird. Es wird angemerkt, dass die Frequenzen der zwei Niedergeschwindigkeitstakte innerhalb von Teilen pro Million (PPM) übereinstimmen, da die letztendliche Quelle für den Host-Takt auch ein Quarzoszillator ist. Jedoch kann eine beliebige Phasenbeziehung zwischen den zwei Takten mit niedriger Geschwindigkeit existieren, so dass PLL[0]-Referenztaktflanke plötzlich einen großen Phasenfehler mit Bezug auf den Rückkopplungstakt aufweisen kann. Nach einem Takttausch durch den Multiplexer 202 kann dieser Phasenfehler (der auch als das Auf/Ab-Signal von PFD 401 oder von einem digitalen Stream, der von einem TDC ausgegeben wird, dargestellt wird wird) ein signifikanter Teil einer Referenztaktperiode sein, was wiederum bewirken würde, dass der PLL[0] 2051 ohne Taktglättungsschaltung 204 signifikant verlangsamt oder beschleunigt. Jedoch fängt die Taktglättungsschaltung 204 die rohe PFD-Ausgabe (up und dn) ab und sendet sie durch eine programmierbare invertierende Verzögerungsleitung (501 und 504), die mit der rohen PFD-Ausgabe (Up und Dn) UND-verknüpft ist (durch 503 und 506). Diese Logik begrenzt den von der PLL[0] auftretenden Phasenfehler (dargestellt als die Up'/DN'-Signale) und behält den stabilen und kontinuierlichen Ausgangstakt zu dem Taktverteilungsnetzwerk bei.
-
Bei einem Beispiel führt für den Fall eines 100 MHz Refclk, eine 1 %-Grenze auf t0 und N=32 ein plötzlicher Eingangsphasenfehler von 5 ns zu einer maximalen Auslenkung von 3,125 ps (=0,01 * TPeriod/N) auf dem 3200-MHz-Hochgeschwindigkeitsausgangstakt. Dies liegt in der Größenordnung des natürlichen Jitters inhärenter Quellen von PLL-Rauschen (zum Beispiel, thermisches Rauschen, Versorgungsrauschen und Durchführungsrauschen). In diesem Zusammenhang ergibt sich auch eine genauere Definitionen des Behaltens eines „kontinuierlichen und stabilen“ Takts bei einem überraschenden Taktstopp: Es bedeutet, dass die Ausgangstaktglättungsschaltung Phasen- oder Frequenzauslenkungen des Hochgeschwindigkeitstakts in kleinerem Ausmaß geringer begrenzt als diejenigen des Eigenrauschens während des normalen Betriebs des eingerasteten PLL.
-
6 veranschaulicht eine grafische Darstellung 600, die eine Taktaustauschleistungsfähigkeit des PLL und der Taktglättungsschaltung gemäß einigen Ausführungsformen zeigt. Die grafische Darstellung 600 zeigt Ausgangstakte des PLL[0] 601 und des PLL[1] 601; die zusätzlichen PLL weisen ähnliche Leistungsfähigkeit auf. In in der grafischen Darstellung 600 starten sowohl der PLL[0] als auch der PLL[1] zunächst und rasten ein; dann tritt der überraschende Taktstopp um die Marke von 3,4 µs auf, wie in dem gefensterten Teil der Wellenformen gezeigt ist. Die Schaltungssimulation beinhaltet Durchführungsrauschen, das Eigenfrequenzauslenkungen von etwa 20 MHz (oder weniger als 1 %) in der eingerasteten PLL[1] verursacht. Nach dem überraschenden Taktstopp und Umschalten auf den neuen Referenztakt, begrenzt die Taktglättungsschaltung das zusätzliche Rauschen, das in den Ausgangstakt des PLL[0] eingeführt wird, auf weniger als 1 MHz und das zusätzliche Rauschen, das in den Ausgangstakt des PLL[1] eingeführt wird, auf weniger als 20 MHz. Die Frequenzauslenkung in der Schaltungssimulation ist viel geringer als das Gesamtrauschen, das auf dem Ausgang des PLL aufgrund aller Quellen von Eigenrauschen erwartet wird, während sie sich im normalen, eingerasteten Betrieb befindet.
-
Während die Ausführungsformen unter Bezugnahme auf einen Oszillator, der Takt mit niedriger Geschwindigkeit zu Dem Mux 202 ausgibt, beschrieben sind, kann der umgekehrte Prozess auch auftreten. Beim Hochfahren des Speichermoduls, bei dem der Oszillator 107 der einzige verfügbare Takt sein kann, tritt das Umschalten auf den Host-Takt auf, wenn der Host-Takt stabil ist. Bei einigen Ausführungsformen kann das Umschalten auch ohne eine Takterfassungsschaltung auftreten, und stattdessen kann das Umschalten von Takteingaben basierend auf einem expliziten externen Steuersignal auftreten.
-
7 veranschaulicht eine intelligente Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit einer Einrichtung zum Aufrechterhalten einer stabilen Taktung gemäß einigen Ausführungsformen der Offenbarung. Es wird darauf hingewiesen, dass die Elemente der 7, die die gleichen Bezugszahlen (oder Namen) wie die Elemente einer beliebigen anderen Figur aufweisen, auf eine beliebige der beschriebenen ähnliche Weise arbeiten oder funktionieren können, jedoch nicht darauf beschränkt sind.
-
Bei einigen Ausführungsformen stellt die Vorrichtung 2400 eine geeignete Rechenvorrichtung, wie ein Rechen-Tablet, ein Mobiltelefon oder Smartphone, einen Laptop, einen Desktop, eine Internet-der Dinge-Vorrichtung (IoT-Vorrichtung), einen Server, eine am Körper tragbare Vorrichtung, eine Set-Top-Box, einen drahtlosfähigen e-Reader oder dergleichen, dar. Es versteht sich, dass bestimmte Bauelemente allgemein gezeigt sind, und nicht alle Bauelemente einer derartigen Vorrichtung in der Vorrichtung 2400 gezeigt sind.
-
Bei einem Beispiel umfasst die Vorrichtung 2400 ein SoC (System-on-Chip) 2401. Eine beispielhafte Grenze des SOC 2401 ist unter Verwenden gepunktete Linien in 1 gezeigt, mit einigen beispielhaften Bauelementen, die veranschaulicht sind, um innerhalb des SOC 2401 enthalten zu sein, der SOC 2401 kann jedoch beliebige zweckdienliche Bauelemente der Vorrichtung 2400 beinhalten.
-
Bei einigen Ausführungsformen beinhaltet die Vorrichtung 2400 einen Prozessor 2404. Der Prozessor 2404 kann eine oder mehrere physische Vorrichtungen, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen, Verarbeitungskerne oder andere Verarbeitungsmittel, beinhalten. Die von dem Prozessor 2404 ausgeführten Verarbeitungsoperationen beinhalten die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf der bzw. dem Anwendungen und/oder Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsoperationen beinhalten Operationen im Zusammenhang mit E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, Operationen im Zusammenhang mit Leistungsmanagement, Operationen im Zusammenhang mit dem Verbinden der Rechenvorrichtung 2400 mit einer anderen Vorrichtung und/oder dergleichen. Die Verarbeitungsoperationen können auch Operationen im Zusammenhang mit Audio-E/A und/oder Anzeige-E/A beinhalten.
-
Bei einigen Ausführungsformen beinhaltet der Prozessor 2404 mehrere Prozessorkerne (auch als Kerne bezeichnet) 2408a, 2408b, 2408c. Wenngleich lediglich drei Kerne 2408a, 2408b, 2408c in 7 veranschaulicht sind, kann der Prozessor 2404 eine beliebige andere zweckdienliche Anzahl von Verarbeitungskernen, zum Beispiel Zehner oder sogar Hunderte von Verarbeitungskernen, beinhalten. Die Prozessorkerne 2408a, 2408b, 2408c können auf einem einzelnen Chip mit integrierter Schaltung (IC-Chip) umgesetzt sein. Darüber hinaus kann der Chip einen oder mehrere gemeinsam verwendete und/oder private Caches, Busse oder Interconnects, Grafik- und/oder Speichersteuervorrichtungen oder andere Bauelemente beinhalten.
-
Bei einigen Ausführungsformen beinhaltet der Prozessor 2404 einen Cache 2406. Bei einem Beispiel können Teilabschnitte des Cache 2406 für einzelne Kerne 2408 vorgesehen sein (zum Beispiel kann ein erster Teilabschnitt des Cache 2406 für den Kern 2408a vorgesehen sein, ein zweiter Teilabschnitt des Cache 2406 für den Kern 2408b vorgesehen sein und so weiter). Bei einem Beispiel können ein oder mehrere Teilabschnitte des Cache 2406 von zwei oder mehreren Kernen 2408 gemeinsam genutzt werden. Der Cache 2406 kann in unterschiedliche Level, zum Beispiel Level-1-Cache (L1-Cache), Level-2-Cache (L2-Cache), Level-3-Cache (L3-Cache) usw., geteilt sein.
-
Bei einigen Ausführungsformen kann der Prozessorkern 2404 eine Fetch-Einheit zum Holen von Anweisungen (einschließlich Anweisungen mit bedingten Verzweigungen) zur Ausführung durch den Kern 2404 beinhalten. Die Anweisungen können von beliebigen Speicherungsvorrichtungen, wie dem Speicher 2430, geholt werden. Der Prozessorkern 2404 kann auch eine Decodiereinheit zum Decodieren der geholten Anweisung beinhalten. Zum Beispiel kann die Decodiereinheit die geholte Anweisung in eine Vielzahl von Mikrooperationen decodieren. Der Prozessorkern 2404 kann eine Planungseinheit zum Ausführen verschiedener Operationen, die mit dem Speichern decodierter Anweisungen assoziiert sind, beinhalten. Zum Beispiel kann die Planungseinheit Daten von der Decodiereinheit halten, bis die Anweisungen zum Versenden bereit sind, zum Beispiel bis alle Quellwerte einer decodierten Anweisung verfügbar werden. Bei einer Ausführungsform kann die Planungseinheit decodierte Anweisungen planen und/oder sie zu einer Ausführungseinheit zur Ausführung ausgeben (oder versenden).
-
Die Ausführungseinheit kann die versandten Anweisungen ausführen, nachdem sie (zum Beispiel von der Decodiereinheit) decodiert und (zum Beispiel von der Planungseinheit) versandt wurden. Bei einer Ausführungsform kann die Ausführungseinheit mehr als eine Ausführungseinheit (wie eine Bildgebungsrechneneinheit, eine Grafikrecheneinheit, eine Universalrecheneinheit usw.) beinhalten. Die Ausführungseinheit kann auch verschiedene arithmetische Operationen, wie Addition, Subtraktion, Multiplikation und/oder Division ausführen und kann eine oder mehrere arithmetische Logikeinheiten (ALUs) beinhalten. Bei einer Ausführungsform kann ein Co-Prozessor (nicht gezeigt) verschiedene arithmetische Operationen in Verbindung mit der Ausführungseinheit ausführen.
-
Weiter kann die Ausführungseinheit Anweisungen nicht der Reihenfolge nach (out-of-order) ausführen. Somit kann der Prozessorkern 2404 bei einer Ausführungsform ein Out-Of-Order-Prozessorkern sein. Der Prozessorkern 2404 kann auch eine Rückzugseinheit beinhalten. Die Rückzugseinheit kann ausgeführte Anweisungen zurückziehen, nachdem sie festgeschrieben wurden. Bei einer Ausführungsform kann das Zurückziehen der ausgeführten Anweisungen darin resultieren, dass der Prozessorzustand von der Ausführung der Anweisungen festgeschrieben wird, physische Register, die von den Anweisungen verwendet werden, freigegeben werden usw. Der Prozessorkern 2404 kann auch eine Buseinheit beinhalten, um eine Kommunikation zwischen Bauelementen des Prozessorkerns 2404 und anderen Bauelementen über einen oder mehrere Busse zu ermöglichen. Der Prozessorkern 2404 kann auch ein oder mehrere Register zum Speichern von Daten, auf die von verschiedenen Bauelementen des Kerns 2404 zugegriffen wird, beinhalten (wie Werte, die mit zugewiesenen App-Proritäten und/oder Untersystemzustände-Assoziation (Modi-Assoziation) zusammenhängen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 Konnektivitätsschaltungen 2431. Zum Beispiel beinhalten die Konnektivitätsschaltungen 2431 Hardwarevorrichtungen (zum Beispiel drahtlose und/oder verdrahtete Steckverbinder und Kommunikationshardware) und/oder Softwarekomponenten (zum Beispiel Treiber, Protokollstapel), um es der Vorrichtung 2400 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Die Vorrichtung 2400 kann von den externen Vorrichtungen, wie anderen Rechenvorrichtungen, drahtlosen Zugangspunkten oder Basisstationen usw., getrennt sein.
-
Bei einem Beispiel können die Konnektivitätsschaltungen 2431 mehrere unterschiedliche Konnektivitätstypen beinhalten. Verallgemeinert können die Konnektivitätsschaltungen 2431 Mobilfunkkonnektivitätsschaltungen, drahtlose Konnektivitätsschaltungen usw. beinhalten. Mobilfunkkonnektivitätsschaltungen der Konnektivitätsschaltungen 2431 verweist allgemein auf Mobilfunknetzwerkkonnektivität, die von drahtlosen Trägern bereitgestellt wird, wie über GSM (Global System for Mobile Communications) oder Variationen oder Ableitungen, CDMA (Code Division Multiple Access) oder Variationen oder Ableitungen, TDM (Time Division Multiplexing) oder Variationen oder Ableitungen, ein 3rd-Generation Partnership Project Universal Mobile Telecommunications Systems-System (3GPP-UMTS-System) oder Variationen oder Ableitungen, ein 3GPP-Long-Term Evolution-System (3GPP-LTE-System) oder Variationen oder Ableitungen, ein 3GPP-LTE-Advanced-System (3GPP-LTE-A-System) oder Variationen oder Ableitungen, ein drahtloses System der fünften Generation (drahtloses 5G-System) oder Variationen oder Ableitungen, ein 5G-Mobilfunknetz-System oder Variationen oder Ableitungen, ein 5G-New Radio-System (5G-NR-System) oder Variationen oder Ableitungen oder andere Mobilfunkdienststandards bereitgestellt. Drahtlose Konnektivitätsschaltungen (oder eine drahtlose Schnittstelle) der Konnektivitätsschaltungen 2431 verweist auf eine drahtlose Konnektivität, die nicht zellular ist, und kann persönliche Netzwerke (wie Bluetooth, Nahfeld usw.), lokale Netzwerke (wie WiFi) und/oder Weitverkehrsnetzwerke (wie WiMax) und/oder eine andere drahtlose Kommunikation beinhalten. Bei einem Beispiel können die Konnektivitätsschaltungen 2431 eine Netzwerkschnittstelle beinhalten, wie zum Beispiel eine verdrahtete oder drahtlose Schnittstelle, so dass eine Systemausführungsform in eine drahtlose Vorrichtung, zum Beispiel ein Mobiltelefon oder einen Personal Digital Assistant eingebaut werden kann.
-
Bei einigen Ausführungen umfasst die Vorrichtung 2400 einen Steuer-Hub 2432, der Hardware-Vorrichtungen und/oder Softwarekomponenten im Zusammenhang mit Wechselwirkung mit einer oder mehreren E/A-Vorrichtungen darstellt. Der Prozessor 2404 kann zum Beispiel mit einem oder mehreren eines Display 2422, einem oder mehreren Peripheriegeräten 2424, Speichervorrichtungen 2428, einer oder mehreren anderen externen Vorrichtungen 2429 usw. über den Steuer-Hub 2432 in Kommunikation stehen. Der Steuer-Hub 2432 kann ein Chipsatz, ein Plattform-Steuer-Hub (Platform Control Hub - PCH) und/oder dergleichen sein.
-
Beispielsweise veranschaulicht der Steuer-Hub 2432 einen oder mehrere Verbindungspunkte für zusätzliche Vorrichtungen, die mit der Vorrichtung 2400 verbindbar sind und durch die zum Beispiel ein Benutzer mit dem System interagieren könnte. Vorrichtungen (zum Beispiel die Vorrichtungen 2429), die an der Vorrichtung 2400 angebracht werden können, beinhalten zum Beispiel Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Audiovorrichtungen, Videosysteme oder andere Anzeigevorrichtungen, Tastatur- oder Tastenfeldvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit spezifischen Anwendungen, wie mit Kartenlesegeräten oder anderen Vorrichtungen.
-
Wie oben erwähnt, kann der Steuer-Hub 2432 mit Audiovorrichtungen, der Anzeige 2422 usw. interagieren. Zum Beispiel kann eine Eingabe durch ein Mikrofon oder eine andere Audiovorrichtung eine Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Vorrichtung 2400 bereitstellen. Zusätzlich dazu kann eine Audioausgabe an Stelle einer Anzeigeausgabe oder zusätzlich dazu bereitgestellt werden. Bei einem anderen Beispiel, falls die Anzeige bei 1422 einen Touchscreen beinhaltet, agiert die Anzeige 2422 auch als eine Eingabevorrichtung, die mindestens teilweise von dem Steuer-Hub 2432 verwaltet werden kann. Es können auch zusätzliche Tasten oder Schalter an der Rechenvorrichtung 2400 vorhanden sein, um E/A-Funktionen bereitzustellen, die von dem Steuer-Hub 2432 verwaltet werden. Bei einer Ausführungsform verwaltet der Steuer-Hub 2432 Vorrichtungen wie Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren oder andere Hardware, die in der Vorrichtung 2400 enthalten sein können. Die Eingabe kann Teil einer direkten Benutzerinteraktion sein sowie dem System Umgebungseingaben zur Beeinflussung seiner Operationen (wie Rauschfiltern, Einstellen von Anzeigen zur Helligkeitserfassung, Anwenden eines Blitzes für eine Kamera oder andere Merkmale) bereitstellen.
-
Bei einigen Ausführungsformen kann der Steuer-Hub 2432 mit unterschiedlichen Vorrichtungen unter Verwenden eines zweckdienlichen Kommunikationsprotokolls, zum Beispiel PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), Thunderbolt, High Definition Multimedia Interface (HDMI), Firewire usw., koppeln.
-
Bei einigen Ausführungsformen stellt die Anzeige 2422 Hardwarebauteile (zum Beispiel Anzeigevorrichtungen) und Softwarekomponenten (zum Beispiel Treiber) dar, die eine visuelle und/oder taktile Anzeige für einen Benutzer zum Interagieren mit der Vorrichtung 2400 bereitstellen. Die Anzeige 2422 kann eine Anzeigeschnittstelle, einen Anzeigebildschirm und/oder eine Hardwarevorrichtung, die zum Bereitstellen einer Anzeige für einen Benutzer verwendet wird, beinhalten. Bei einigen Ausführungsformen beinhaltet die Anzeige 2422 eine Touchscreen-Vorrichtung (oder eine Touchpad-Vorrichtung), die dem Benutzer sowohl Ausgabe als auch Eingabe bereitstellt. Bei einem Beispiel kann die Anzeige 2422 direkt mit dem Prozessor 2404 kommunizieren. Die Anzeige 2422 kann eine oder mehrere einer internen Anzeigevorrichtung, wie in einer elektronischen Mobilvorrichtung oder einer Laptop-Vorrichtung oder einer externen Anzeigevorrichtung, die über eine Anzeigeschnittstelle (zum Beispiel DisplayPort usw.) angebracht ist, sein. Bei einer Ausführungsform kann die Anzeige 2422 eine Head Mounted Display (HMD) sein, wie eine stereoskopische Anzeigevorrichtung zur Verwendung bei Anwendungen mit virtueller Realität (VR) oder bei Anwendungen mit erweiterter Realität (AR).
-
Bei einigen Ausführungsformen und obwohl es in der Figur nicht veranschaulicht ist, kann die Vorrichtung 2400 zusätzlich zu dem Prozessor (oder an Stelle des Prozessors) 2404 eine Grafikverarbeitungseinheit (Graphics Processing Unit - GPU) beinhalten, die einen oder mehrere Grafikverarbeitungskerne umfasst, die einen oder mehrere Aspekte des Anzeigens von Inhalt auf der Anzeige 2422 steuern kann.
-
Der Steuer-Hub 2432 (oder Plattform-Steuer-Hub) kann Hardwareschnittstellen und Steckverbinder sowie Softwarekomponenten (zum Beispiel Treiber, Protokollstapel) beinhalten, um Peripherieanschlüsse, zum Beispiel mit Peripheriegeräten 2424, herzustellen.
-
Es versteht sich, dass die Vorrichtung 2400 sowohl ein Peripheriegerät für andere Rechenvorrichtungen sein kann als auch Peripheriegeräte, die mit ihr verbunden sind, aufweisen kann. Die Vorrichtung 2400 kann einen „Docking“-Steckverbinder zum Verbinden mit anderen Rechenvorrichtungen für Zwecke wie das Verwalten (zum Beispiel Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf der Vorrichtung 2400 aufweisen. Zusätzlich dazu kann es ein Docking-Steckverbinder der Vorrichtung 2400 erlauben, eine Verbindung mit bestimmten Peripheriegeräten herzustellen, die es der Rechenvorrichtung 2400 erlauben, die Inhaltsausgabe zum Beispiel zu audiovisuellen oder anderen Systeme zu steuern.
-
Zusätzlich zu einem proprietären Docking-Steckverbinder oder anderer proprietärer Anschlusshardware, kann die Vorrichtung 2400 Peripherieanschlüsse über gemeinsam genutzte oder auf Standard basierende Steckverbinder herstellen. Übliche Typen können einen Universal-Serial-Bus-Verbinder (USB-Verbinder) (der eine beliebige einer Anzahl unterschiedlicher Hardwareschnittstellen beinhalten kann), DisplayPort, einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire oder andere Typen beinhalten.
-
Bei einigen Ausführungsformen können Konnektivitätsschaltungen 2431 mit dem Steuer-Hub 2432 gekoppelt werden, zum Beispiel zusätzlich zu oder an Stelle des direkten Koppelns mit der Prozessor 2404. Bei einigen Ausführungsformen kann die Anzeige 2422 mit dem Steuer-Hub 2432 zum Beispiel zusätzlich zu oder an Stelle des direkten Koppelns mit dem Prozessor 2404 gekoppelt werden.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 den Speicher 2430, der über eine Speicherschnittstelle 2434 mit dem Prozessor 2404 gekoppelt ist. Der Speicher 2430 beinhaltet Speichervorrichtungen zum Speichern von Informationen in der Vorrichtung 2400.
-
Bei einigen Ausführungsformen beinhaltet der Speicher 2430 eine Einrichtung zum Aufrechterhalten einer stabilen Taktung, wie in Bezug auf verschiedene Ausführungsformen beschrieben. Speicher kann nichtflüchtige (keine Zustandsänderung bei Unterbrechung der Stromzufuhr zu der Speichervorrichtung) und/oder flüchtige (unbestimmter Zustand bei Unterbrechung der Stromzufuhr zu der Speichervorrichtung) Speichervorrichtungen beinhalten. Die Speichervorrichtung 2430 kann eine dynamischer Direktzugriffsspeicher-Vorrichtung (DRAM-Vorrichtung), eine statische Direktzugriffsspeicher-Vorrichtung(SRAM-Vorrichtung), eine Flash-Speichervorrichtung, eine Phasenwechsel-Speichervorrichtung oder irgendeine andere Speichervorrichtung sein, die geeignete Leistungsfähigkeit aufweist, um als Prozessspeicher zu dienen. Bei einer Ausführungsform kann der Speicher 2430 als Systemspeicher für die Vorrichtung 2400 betrieben werden, um Daten und Anweisungen zu speichern, die verwendet werden, wenn der eine oder die mehreren Prozessoren 2404 eine Anwendung oder einen Prozess ausführen. Der Speicher 2430 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (egal, ob langfristig oder temporär) im Zusammenhang mit der Ausführung der Anwendungen und Funktionen der Vorrichtung 2400 speichern. Bei einigen Ausführungsformen kann die Steuervorrichtung 2428 die Einrichtung beinhalten.
-
Elemente verschiedener Ausführungsformen und Beispiele werden auch als ein maschinenlesbares Medium (zum Beispiel der Speicher 2430) zum Speichern der computerausführbaren Anweisungen (zum Beispiel Anweisungen zum Umsetzen beliebiger anderer hierin erörterter Prozesse) bereitgestellt. Das maschinenlesbare Medium (zum Beispiel der Speicher 2430) kann, ohne darauf beschränkt zu sein, Flash-Speicher, optische Platten, CD-ROMs, DVD-ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Phasenwechselspeicher (PCM) oder andere Typen zur Speicherung elektronischer oder computerausführbarer Anweisungen geeigneter maschinenlesbarer Medien beinhalten. Zum Beispiel können Ausführungsformen der Offenbarung als ein Computerprogramm (zum Beispiel BIOS) heruntergeladen werden, das von einem entfernten Computer (zum Beispiel einem Server) mittels Datensignalen über einen Kommunikationslink (zum Beispiel ein Modem oder eine Netzwerkverbindung) zu einem anfordernden Computer (zum Beispiel einem Client) übertragen werden kann.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 Temperaturmessungsschaltungen 2440, zum Beispiel zum Messen einer Temperatur verschiedener Bauteile der Vorrichtung 2400. Bei einem Beispiel können die Temperaturmessungsschaltungen 2440 eingebettet sein, oder mit verschiedene Bauteilen, deren Temperatur gemessen und überwacht werden soll, gekoppelt oder an derartigen Bauteilen angebracht sein. Beispielsweise können die Temperaturmessungsschaltungen 2440 die Temperatur von (oder innerhalb von) Kernen 2408a, 2408b, 2408c und/oder des Spannungsreglers 2414 und/oder des Speichers 2430 und/oder einer Hauptplatine des SoC 2401 und/oder irgendeines zweckmäßigen Bauteils der Vorrichtung 2400 messen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 Leistungsmessungsschaltungen 2442, zum Beispiel zum Messen eines oder mehrerer Bauteile der Vorrichtung 2400 verbrauchten Leistung. Bei einem Beispiel können die Leistungsmessungsschaltungen 2442 zusätzlich zu dem Messen der Leistung oder stattdessen eine Spannung und/oder einen Strom messen. Bei einem Beispiel können die Leistungsmessungsschaltungen 2442 eingebettet sein oder mit verschiedenen Bauteilen, deren Leistungs-, Spannungs- und/oder Stromverbrauch gemessen und überwacht werden soll, gekoppelt oder daran angebracht sein. Die Leistungsmessungsschaltungen 2442 können beispielsweise Leistung, Strom und/oder Spannung messen, die von einem oder mehrere Spannungsreglern 2414 zugeführt werden, dem SoC 2401 zugeführte Leistung, der Vorrichtung 2400 zugeführte Leistung, von dem Prozessor 2404 (oder irgendeinem am Bauelement) der Vorrichtung 2400 aufgenommene Leistung usw. messen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 eine oder mehrere Spannungsreglerschaltunganordnungen, die allgemein als Spannungsregler (VR) 2414 bezeichnet werden. Der VR 2414 erzeugt Signale mit geeigneten Spannungspegeln, die zum Betreiben beliebiger geeigneter Bauelemente der Vorrichtung 2400 bereitgestellt werden können. Der VR 2414 ist rein beispielhaft derart veranschaulicht, dass er dem Prozessor 2404 der Vorrichtung 2400 Signale liefert. Bei einigen Ausführungsformen empfängt der VR 2414 ein oder mehrere Spannungsidentifikationssignale (VID-Signale) und erzeugt basierend auf den VID-Signalen das Spannungssignal mit einem geeigneten Pegel. Verschiedene Typen von VRs können für den VR 2414 genutzt werden. VR 2414 kann zum Beispiel einen „Abwärts“-VR, einen „Aufwärts“-VR, eine Kombination aus Abwärts- und Aufwärts-VRs, Regler mit geringem Dropout (Low Dropout - LDO), Umschalt-DC-DC-Regler usw. beinhalten Buck-VR wird im Allgemeinen bei Leistungslieferanwendungen, bei welchen eine Eingangsspannung in eine Ausgangsspannung in einem Verhältnis, das kleiner ist als eine Einheit, umgewandelt werden soll, verwendet. Ein Aufwärts-VR wird im Allgemeinen in Leistungslieferanwendungen verwendet, in denen eine Eingangsspannung mit einem größeren Verhältnis als eins in eine Ausgangsspannung transformiert werden muss. Bei einigen Ausführungsformen weist jeder Prozessorkern seinen eigenen VR auf, der von der PCU 2410a/b und/oder PMIC 2412 gesteuert wird. Bei einigen Ausführungsformen weist jeder Kern ein Netzwerk verteilter LDOs auf, um eine effiziente Leistungsverwaltungssteuerung bereitzustellen. Die LDOs können digital, analog oder eine Kombination von digitalen oder analogen LDOs sein.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 eine oder mehrere Taktgeneratorschaltungen, die allgemein als Taktgenerator 2416 bezeichnet werden. Der Taktgenerator 2416 erzeugt Signale mit geeigneten Frequenzpegeln, die zu beliebigen zweckdienlichen Bauelementen der Vorrichtung 2400 zugeführt werden können. Der Taktgenerator 2416 ist rein beispielhaft derart veranschaulicht, dass er dem Prozessor 2404 der Vorrichtung 2400 Taktsignale bereitstellt. Bei einigen Ausführungen empfängt der Taktgenerator 2416 ein oder mehrere Frequenzidentifikationssignale (Frequency Identification - FID), und erzeugt die Taktsignale mit einer zweckdienlichen Frequenz basierend auf den FID-Signalen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 eine Batterie 2418, die verschiedenen Bauelementen der Vorrichtung 2400 Leistung zuführt. Die Batterie 2418 ist rein beispielhaft derart veranschaulicht, dass sie dem Prozessor 2404 Leistung zuführt. Wenngleich dies in den Figuren nicht veranschaulicht ist, kann die Vorrichtung 2400 eine Ladungsschaltungsanordnung, zum Beispiel zum Aufladen der Batterie, basierend auf einer von einem AC-Adapter empfangenen Wechselstromleistungsversorgung (AC-Leistungsversorgung) umfassen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 eine Leistungssteuereinheit (Power Control Unit - PCU) 2410 (auch als Leistungsverwaltungseinheit (Power Management Unit - PMU), Leistungssteuervorrichtung bzw. Power Controller usw. bezeichnet). Bei einem Beispiel können einige Abschnitte der PCU 2410 von einem oder mehreren Prozessorkernen 2408 umgesetzt werden, und diese Teilabschnitte der PCU 2410 sind symbolisch unter Verwenden eines gepunkteten Kastens veranschaulicht und mit PCU 2410a gekennzeichnet. Bei einem Beispiel können einige weitere Teilabschnitte der PCU 2410 außerhalb der Verarbeitungskerne 2408 umgesetzt sein, und diese Teilabschnitte der PCU 2410 sind symbolisch unter Verwenden eines gepunkteten Kastens veranschaulicht und mit PCU 2410b gekennzeichnet. Die PCU 2410 kann verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 2400 umsetzen. Die PCU 2410 kann Hardwareschnittstellen, Hardwareschaltungen, Steckverbinder, Register usw. sowie Softwarekomponenten (zum Beispiel Treiber, Protokollstapel) beinhalten, um verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 2400 umzusetzen.
-
Bei einigen Ausführungsformen umfasst die Vorrichtung 2400 eine integrierte Schaltung zur Leistungsverwaltung (Power Management Integrated Circuit - PMIC) 2412, zum Beispiel zum Umsetzen verschiedener Leistungsverwaltungsoperationen für die Vorrichtung 2400. Bei einigen Ausführungsformen ist die PMIC 2412 eine umkonfigurierbare integrierte Schaltung zur Leistungsverwaltung (Reconfigurable Power Management IC - RPMIC) und/oder eine IMVP (Intel® Mobile Voltage Positioning). Bei einem Beispiel befindet sich die PMIC innerhalb eines von dem Prozessor 2404 getrennten IC-Chips. Die PMIC kann verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 2400 umsetzen. Die PMIC 2412 kann Hardwareschnittstellen, Hardwareschaltungen, Steckverbinder, Register usw. sowie Softwarebauelemente (zum Beispiel Treiber, Protokollstapel) beinhalten, um verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 2400 umzusetzen.
-
Bei einem Beispiel umfasst die Vorrichtung 2400 eine oder beide PCU 2410 oder PMIC 2412. Bei einem Beispiel kann eine der PCU 2410 oder der PMIC 2412 in der Vorrichtung 2400 fehlen, und somit sind diese Bauelemente unter Verwenden gepunkteter Linien veranschaulicht.
-
Verschiedene Leistungsverwaltungsoperationen der Vorrichtung 2400 können von der PCU 2410, von der PMIC 2412 oder von einer Kombination der PCU 2410 und der PMIC 2412 ausgeführt werden. Die PCU 2410 und/oder die PMIC 2412 kann einen Leistungszustand (zum Beispiel P-Zustand) für verschiedene Bauelemente der Vorrichtung 2400 auswählen. Die PCU 2410 und/oder PMIC 2412 kann einen Leistungszustand (zum Beispiel in Übereinstimmung mit der ACPI-Spezifikation (Advanced Configuration and Power Interface-Spezifikation) für verschiedene Bauelemente der Vorrichtung 2400 auswählen. Rein beispielhaft kann die PCU 2410 und/oder die PMIC 2412 verschiedene Bauelemente der Vorrichtung 2400 veranlassen, in einen Schlafzustand, in einen aktiven Zustand, in einen zweckdienlichen C-Zustand (zum Beispiel C0-Zustand oder einen anderen zweckdienlichen C-Zustand gemäß der ACPI-Spezifikation) usw. überzugehen. Bei einem Beispiel können die PCU 2410 und/oder die PMIC 2412 eine Spannungsausgabe von dem VR 2414 und/oder eine Frequenz einer Taktsignalausgabe von dem Taktgenerator steuern, zum Beispiel durch Ausgeben des VID-Signals bzw. des FID-Signals. Bei einem Beispiel kann die PCU 2410 und/oder die PMIC 2412 die Batterieleistungsnutzung, Aufladen der Batterie 2418 und mit einem Leistungseinsparungsbetrieb zusammenhängende Merkmale steuern.
-
Der Taktgenerator 2416 kann einen Phasenregelkreis (PLL), einen Frequenzregelkreis (FLL) oder eine beliebige geeignete Taktquelle umfassen. Bei einigen Ausführungsformen weist jeder Kern des Prozessors 2404 seine eigene Taktquelle auf. Deshalb kann jeder Kern bei einer Frequenz arbeiten, die von der Betriebsfrequenz des anderen Kerns unabhängig ist. Bei einigen Ausführungsformen führt die PCU 2410 und/oder die PMIC 2412 eine adaptive oder dynamische Frequenzskalierung oder -anpassung aus. Die Taktfrequenz eines Prozessorkerns kann zum Beispiel erhöht werden, wenn der Kern nicht bei seinem (seiner) maximalen Leistungsverbrauchsschwellenwert oder -grenze betrieben wird. Bei einigen Ausführungsformen bestimmt die PTU 2410 und/oder die PMIC 2412 den Betriebszustand jedes Kerns eines Prozessors und stellt opportunistisch die Frequenz und/oder Leistungsversorgungsspannung dieses Kerns ein, ohne dass die Kerntaktungsquelle (zum Beispiel PLL dieses Kerns) das Einbrasten verliert, wenn die PTU 2410 und/oder PMIC 2412 bestimmt, dass der Kern unterhalb eines Zielleistungsfähigkeitsniveaus arbeitet. Falls ein Kern zum Beispiel Strom von einer Stromschiene mit weniger als einem Gesamtstrom, der diesem Kern oder Prozessor 2404 zugeordnet ist, bezieht, kann die PTU 2410 und/oder PMIC 2412 vorübergehend den Leistungsbezug für diesen Kern oder Prozessor 2404 erhöhen (zum Beispiel durch Erhöhen der Taktfrequenz und/oder des Stromversorgungsspannungsniveaus), so dass der Kern oder Prozessor 2404 mit einem höheren Leistungsfähigkeitsniveau arbeiten kann. Deshalb kann die Spannung und/oder die Frequenz für den Prozessor 2404 vorübergehend erhöht werden, ohne die Produktzuverlässigkeit zu beeinträchtigen.
-
Bei einem Beispiel kann die PCU 2410 und/oder die PMIC 2412 Leistungsverwaltungsoperationen ausführen, die zum Beispiel mindestens teilweise auf einem Empfangen von Messwerten der Leistungsmessungsschaltungen 2442, der Temperaturmessungsschaltungen 2440, des Ladezustands der Batterie 2418 und/oder beliebiger anderer geeigneter Informationen, die für die Leistungsverwaltung verwendet werden können, basieren. Hierfür ist die PMIC 2412 mit einem oder mehreren Sensoren kommunikativ gekoppelt, um verschiedene Werte/Variationen in einem oder mehreren Faktoren, die eine Auswirkung auf das Leistungs-/thermische Verhalten des Systems/der Plattform haben, abzutasten bzw. zu erfassen. Beispiele für den einen oder die mehreren Faktoren beinhalten elektrischen Strom, Spannungsabfall, Temperatur, Betriebsfrequenz, Betriebsspannung, Leistungsverbrauch, Zwischenkernkommunikationsaktivität usw. Einer oder mehrere dieser Sensoren können in physischer Nähe (und/oder in thermischem Kontakt/thermischer Kopplung) mit einem oder mehreren Bauelementen oder Logik-/IP-Blöcken eines Rechensystems bereitgestellt sein. Zusätzlich kann der Sensor/können die Sensoren bei mindestens einer Ausführungsform direkt an die PCU 2410 und/oder die PMIC 2412 gekoppelt sein, um es der PCU 2410 und/oder der PMIC 2412 zu ermöglichen, Prozessorkernenergie mindestens teilweise basierend auf einem Wert/Werten, der/die von einem oder mehreren der Sensoren erfasst wird/werden, zu verwalten.
-
Außerdem ist ein beispielhafter Softwarestapel der Vorrichtung 2400 veranschaulicht (wenngleich nicht alle Elemente des Softwarestapels veranschaulicht sind). Rein beispielhaft können die Prozessoren 2404 Anwendungsprogramme 2450, ein Betriebssystem 2452, ein oder mehrere für die Leistungsverwaltung (PM) spezifische Anwendungsprogramme (zum Beispiel generisch als PM-Anwendungen 2458 bezeichnet) und/oder dergleichen ausführen. Die PM-Anwendungen 2458 können auch von der PCU 2410 und/oder die PMIC 2412 ausgeführt werden. Das OS 2452 kann auch eine oder mehrere PM-Anwendungen 2456a, 2456b, 2456c beinhalten. Das OS 2452 kann auch verschiedene Treiber 2454a, 2454b, 2454c usw. beinhalten, von denen einige für Leistungsverwaltungszwecke spezifisch sein können. Bei einigen Ausführungsformen kann die Vorrichtung 2400 ferner ein Basic Input/Output System (BIOS) 2420 beinhalten. Das BIOS 2420 kann mit dem OS 2452 (zum Beispiel über einen oder mehrere Treiber 2454) kommunizieren, mit Prozessoren 2404 kommunizieren usw.
-
Ein(e) oder mehrere der PM-Anwendungen 2458, 2456, der Treiber 2454, des BIOS 2420 usw. können zum Beispiel zum Umsetzen leistungsverwaltungsspezifischer Aufgaben verwendet werden, zum Beispiel zum Regeln von Spannung und/oder Frequenz verschiedener Bauelemente der Vorrichtung 2400, zum Regeln eines Aufwachzustands, eines Schlafzustands und/oder eines beliebigen anderen geeigneten Leistungszustands verschiedener Bauelemente der Vorrichtung 2400, zum Regeln der Batterieleistungsnutzung, Laden der Batterie 2418, von auf Leistungseinsparungsbetrieb bezogenen Merkmalen usw.
-
Verweis in der Spezifikation auf „eine Ausführungsform“, „1 Ausführungsform“, „einige Ausführungsformen“ oder „andere Ausführungsformen“ bedeutet, dass ein besonderes Merkmal, eine besondere Struktur oder ein Merkmal, das in Verbindung mit den Ausführungsformen beschrieben ist, bei mindestens einigen Ausführungsformen aber nicht notwendigerweise in allen Ausführungsformen enthalten ist. Die verschiedenen Erscheinungen von „eine Ausführungsform“, „1 Ausführungsform“, „einige Ausführungsformen“ oder „andere Ausführungsformen“ verweisen nicht notwendigerweise alle auf dieselben Ausführungsformen. Falls die Spezifikation angibt, dass ein Bauelement, Merkmal, eine Struktur oder ein Merkmal „eventuell“, „vielleicht“ enthalten ist oder sein „„könnte“, muss dieses besondere Bauelement, Merkmal, diese Struktur oder das Merkmal nicht zwingend enthalten sein. Falls die Spezifikation oder der Anspruch auf „ein“ oder „1“ Element verweist, bedeutet das nicht, dass nur eines der Elemente vorhanden ist. Falls die Spezifikation oder der Anspruch auf „ein zusätzliches“ Element verweist, schließt das nicht aus, dass mehr als eines der zusätzlichen Elemente vorhanden ist.
-
Darüber hinaus können besondere Merkmale, Strukturen, Funktionen oder Charakteristiken auf eine zweckdienliche Art bei einer oder mehreren Ausführungsformen kombiniert werden. Eine erste Ausführungsform kann zum Beispiel mit einer zweiten Ausführungsform überall da kombiniert werden, wo die besonderen Merkmale, Strukturen, Funktionen oder Charakteristiken, die mit den zwei Ausführungsformen assoziiert sind, einander nicht gegenseitig ausschließen.
-
Obwohl die Offenbarung in Verbindung mit spezifischen Ausführungsformen davon beschrieben wurde, sind für Fachleute angesichts der vorangegangenen Beschreibung viele Alternativen, Modifikationen und Variationen derartiger Ausführungsformen ersichtlich. Die Ausführungsformen der Offenbarung sollen alle derartigen Alternativen, Modifikationen und Variationen, die in den breiten Schutzumfang der angehängten Ansprüche fallen, beinhalten.
-
Zusätzlich dazu können wohlbekannte Leistungs-/Masseverbindungen zu Integrierte-Schaltung-Chips (IC-Chips) und anderen Bauelementen in den dargelegten Figuren gezeigt sein oder auch nicht, um die Veranschaulichung und die Erörterung zu vereinfachen und die Offenbarung nicht unklar zu machen. Darüber hinaus können Anordnungen in Blockdiagrammform gezeigt sein, um zu vermeiden, dass die Offenbarung unklar wird, und auch angesichts dessen, dass Spezifika hinsichtlich der Umsetzung derartiger Blockdiagrammanordnungen in hohem Maße von der Plattform abhängen, innerhalb der die vorliegende Offenbarung umgesetzt werden soll (das heißt, das derartige Spezifika im Kenntnisbereich von Fachleuten liegen sollten). Überall, wo spezifische Details (zum Beispiel Schaltungen) dargelegt sind, um Ausführungsbeispiele der Offenbarung zu beschreiben, sollte es für Fachleute klar sein, dass die Offenbarung ohne diese spezifischen Details oder mit einer Variation davon umgesetzt werden kann. Die Beschreibung ist somit als veranschaulichend statt als einschränkend aufzufassen.
-
Folgende Beispiele werden bereitgestellt, um die verschiedenen Ausführungsformen zu veranschaulichen. Diese Beispiele können auf beliebige zweckdienliche Weise voneinander abhängen.
-
Beispiel 1: Einrichtung, die umfasst: eine erste Schaltungsanordnung, um einen eines ersten Takts oder eines zweiten Takts auszuwählen; einen Phasenregelkreis (PLL), um eine Ausgabe von der ersten Schaltungsanordnung als einen Referenztakt zu dem PLL zu empfangen; und eine zweite Schaltungsanordnung, die mit dem PLL gekoppelt sind, wobei die zweite Schaltungsanordnung die Anwesenheit oder Abwesenheit des ersten Takts erfassen und ein Auswahlsignal zu der ersten Schaltungsanordnung bereitstellen soll, um: den ersten Takt als die Ausgabe der ersten Schaltungsanordnung auszuwählen, falls der erste Takt anwesend ist; und den zweiten Takt als den Ausgang der ersten Schaltungsanordnung auszuwählen, falls der erste Takt abwesend ist.
-
Beispiel 2: Die Einrichtung des Beispiels 1 umfasst eine dritte Schaltungsanordnung, um Up- und Down-Impulse von einem Phasendetektor des PLL einzustellen, wenn die erste Schaltungsanordnung den zweiten Takt auswählt.
-
Beispiel 3: Die Einrichtung des Beispiels 1 umfasst eine vierte Schaltungsanordnung, um einen dritten Takt zu teilen, um den ersten Takt zu erzeugen.
-
Beispiel 4: Die Einrichtung des Beispiels 3, wobei der dritte Takt von einem Host-Prozessor erzeugt wird.
-
Beispiel 5: Die Einrichtung des Beispiels 1, wobei der zweite Takt von einem Quarzoszillator erzeugt wird, wobei eine Frequenz des ersten Takts im Wesentlichen gleich ist wie eine Frequenz des zweiten Takts.
-
Beispiel 6: Die Einrichtung des Beispiels 1, wobei die erste Schaltungsanordnung einen Multiplexer umfasst.
-
Beispiel 7: Die Einrichtung des Beispiels 1, wobei die zweite Schaltungsanordnung umfasst: eine erste Flip-Flop-Schaltung, die einen Takteingang aufweist, der den ersten Takt empfängt, einen Ausgang, der mit einem Eingang über einen Inverter gekoppelt ist; eine zweite Flip-Flop-Schaltung, die einen Takteingang aufweist, der einen Ausgang des PLL empfängt, einen Eingang, der mit dem Ausgang der ersten Flip-Flop-Schaltung gekoppelt ist, und einen Ausgang; eine dritte Flip-Flop-Schaltung, die einen Takteingang aufweist, der den Ausgang des PLL empfängt, einen Eingang, der mit dem Ausgang der zweiten Flip-Flop-Schaltung gekoppelt ist, wobei ein Ausgang der Kombinationslogik das ausgewählte Signal bereitstellt.
-
Beispiel 8: Die Einrichtung des Beispiels 2, wobei die dritte Schaltungsanordnung umfasst: eine erste programmierbare Verzögerungsleitung, um den Up-Impuls zu empfangen; einen ersten Inverter, der mit einem Ausgang der ersten programmierbaren Verzögerungsleitung gekoppelt ist; eine erste kombinatorische Logik, um den Up-Impuls und den Ausgang des ersten Inverters zu empfangen, wobei ein Ausgang der ersten kombinatorischen Logik den eingestellten Up-Impuls bereitstellen soll; eine zweite programmierbare Verzögerungsleitung, um den Down-Impuls zu empfangen; einen zweiten Inverter, der mit einem Ausgang der ersten programmierbaren Verzögerungsleitung gekoppelt ist; und eine zweite kombinatorische Logik zum Empfangendes Down-Impulses und des Ausgangs des zweiten Inverters, wobei ein Ausgang der kombinatorischen Logik den eingestellten Down-Impuls empfangen soll.
-
Beispiel 9: Die Einrichtung des Beispiels 1 umfasst ein Taktverteilungsnetzwerk, das mit einem Ausgang des PLL gekoppelt ist.
-
Beispiel 10: Die Einrichtung des Beispiels 9, wobei der Referenztakt ein erster Referenztakt ist, wobei der PLL ein erster PLL ist, wobei die Einrichtung umfasst: einen Teiler zum Teilen eines Ausgangs des ersten PLL und zum Erzeugen eines zweiten Referenztakts; und einen zweiten PLL zum Empfangen des zweiten Referenztakts.
-
Beispiel 11: Die Einrichtung des Beispiels 10, wobei das Taktverteilungsnetzwerk ein erstes Taktverteilungsnetzwerk ist, wobei die Einrichtung ein zweites Taktverteilungsnetzwerk umfasst, das mit einem Ausgang des zweiten PLL gekoppelt ist, wobei ein Ausgang des zweiten Taktverteilungsnetzwerks von einem Speicher empfangen wird.
-
Beispiel 12: Die Einrichtung des Beispiels 10, wobei der erste und der zweite PLL einer eines analogen PLL oder eines digitalen PLL sind.
-
Beispiel 13: Eine Einrichtung, die umfasst: einen Phasenregelkreis (PLL), um einen Referenztakt zu empfangen und einen Ausgangstag zu erzeugen, der direkt oder indirekt verwendet wird, um Daten zu einem Speicher zu schreiben; und Schaltungsanordnungen, um einen gültigen ersten Takt zu erfassen und einen Multiplexer zu veranlassen, einen zweiten Takt als den Referenztakt bereitzustellen, wenn der erste Takt ungültig ist.
-
Beispiel 14: Die Einrichtung des Beispiels 13, wobei die Schaltungsanordnung eine erste Schaltungsanordnung ist, und wobei die Einrichtung eine zweite Schaltungsanordnung umfasst, um Up- und Down-Impulse von dem PLL einzustellen, wenn der Multiplexer den zweiten Takt als den Referenztakt bereitstellt.
-
Beispiel 15: Die Einrichtung des Beispiels 14 umfasst eine dritte Schaltungsanordnung, um den ersten Takt zu teilen, um einen dritten Takt zu erzeugen, wobei der dritte Takt und der zweite Takt zu Demultiplexer eingegeben werden.
-
Beispiel 16: Die Einrichtung des Beispiels 13, wobei der erste Takt von einem Host-Prozessor erzeugt wird.
-
Beispiel 17: Die Einrichtung des Beispiels 15, wobei der zweite Takt von einem Quarzoszillator erzeugt wird, und wobei eine Frequenz des dritten Takts im Wesentlichen gleich ist wie die Frequenz des zweiten Takts.
-
Beispiel 18: Ein System, das umfasst: einen Prozessor, ein Speichermodul, das mit dem Prozessor gekoppelt ist, wobei der Prozessor einen ersten Takt zu dem Speichermodul senden soll, wobei das Speichermodul umfasst: eine erste Schaltungsanordnung, um einen des ersten Takts oder eines zweiten Takts auszuwählen; einen Phasenregelkreis (PLL), um einen Ausgang der ersten Schaltungsanordnung als einen Referenztakt zu dem PLL zu erhalten; und zweite Schaltungen, die mit dem PLL gekoppelt sind, wobei die zweite Schaltungsanordnung die Anwesenheit oder Abwesenheit des ersten Taktgebers erfasst und ein Auswahlsignal zu der ersten Schaltungsanordnung bereitstellen soll, um: den ersten Takt als den Ausgang der ersten Schaltungsanordnung auszuwählen, falls der erste Takt anwesend ist; und den zweiten Takt als den Ausgang der ersten Schaltungsanordnung auszuwählen, falls der erste Takt abwesend ist; und eine drahtlose Schnittstelle, um es dem Prozessor zu erlauben, mit einer anderen Vorrichtung zu kommunizieren.
-
Beispiel 19: Das System des Beispiels 18, wobei das Speichermodul umfasst: eine dritte Schaltungsanordnung, um Up- und Down-Impulse von einem Phasendetektor des PLL einzustellen, wenn die erste Schaltungsanordnung den zweiten Takt auswählt; und eine vierte Schaltungsanordnung, um einen dritten Takt zu teilen, um den ersten Takt zu erzeugen.
-
Beispiel 20: System nach Anspruch 18, wobei der zweite Takt von einem Quarzoszillator erzeugt wird, wobei eine Frequenz des ersten Takts im Wesentlichen gleich ist wie eine Frequenz des zweiten Takts.
-
Eine Zusammenfassung, die es dem Leser erlauben soll, die Art und die Quintessenz der technischen Offenbarung zu bestimmen, ist bereitgestellt. Die Zusammenfassung wird mit dem Verstehen unterbreitet, dass sie nicht dazu verwendet wird, den Schutzumfang oder die Bedeutung der Ansprüche einzuschränken. Die folgenden Ansprüche werden hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch eigenständig als eine separate Ausführungsform steht.