DE112016005671T5 - Zeitbasissynchronisierung - Google Patents

Zeitbasissynchronisierung Download PDF

Info

Publication number
DE112016005671T5
DE112016005671T5 DE112016005671.0T DE112016005671T DE112016005671T5 DE 112016005671 T5 DE112016005671 T5 DE 112016005671T5 DE 112016005671 T DE112016005671 T DE 112016005671T DE 112016005671 T5 DE112016005671 T5 DE 112016005671T5
Authority
DE
Germany
Prior art keywords
value
time base
clock
response
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016005671.0T
Other languages
English (en)
Inventor
Shu-Yi Yu
Erik P. Machnicki
Gilbert H. Herbeck
Kiran B. Kattel
Manu Gulati
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112016005671T5 publication Critical patent/DE112016005671T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

In einer Ausführungsform schließt eine integrierte Schaltung, wie beispielsweise ein SOC (oder auch ein diskretes Chipsystem), eine oder mehrere lokale Zeitbasen an verschiedenen Orten ein. Die Zeitbasen können auf Grundlage eines hochfrequenten lokalen Taktes inkrementiert werden, der während der Verwendung Schwankungen unterliegen kann. Auf Grundlage eines niedrigfrequenteren Taktes, der weniger Schwankung unterliegt, können die lokalen Zeitbasen unter Verwendung von Hardware-Schaltlogik periodisch auf die korrekte Zeit synchronisiert werden. Insbesondere kann der korrekte Zeitbasiswert für die nächste Synchronisierung an jede lokale Zeitbasis übermittelt werden, und die Steuerschaltung für die lokale Zeitbasis kann konfiguriert sein, die lokale Zeitbasis bei dem korrekten Wert zu sättigen, wenn die lokale Zeitbasis den korrekten Wert erreicht, bevor die Synchronisierung auftritt. Wenn die Synchronisierung auftritt und die lokale Zeitbasis den korrekten Wert nicht erreicht hat, kann gleichermaßen die Steuerschaltung konfiguriert sein, den korrekten Zeitbasiswert zu laden.

Description

  • Technisches Gebiet
  • Hierin beschriebene Ausführungsformen betreffen die Zeitbasissynchronisierung in integrierten Schaltungen, wie beispielsweise Systemen auf einem Chip (systems on a chip (SOCs)).
  • Beschreibung der verwandten Technik
  • In digitalen Systemen wird eine Echtzeit (oder „Wall Clock Time“) durch eine Zeitbasis dargestellt. Typischerweise wird die Zeitbasis bei Systemstart auf null zurückgesetzt und gemäß einem Takt im System inkrementiert. Wenn die Echtzeit bei Systemstart bekannt ist (üblicherweise in Software gepflegt), kann der Zeitbasiswert zur Echtzeit addiert werden, um die aktuelle Zeit zu ermitteln.
  • Für größere Systeme oder integrierte Schaltungen im System, wie beispielsweise SOCs, stellt ein Zugreifen auf eine einzelne globale Zeitbasis mit geringer Latenz eine Herausforderung dar. In der Vergangenheit wurde ein Bus einer globalen Zeitbasis über das SOC hinweg an Orte gesendet, an denen ein Zugang zur Zeitbasis benötigt wird. Während dieser Ansatz einen Zugang mit geringer Latenz bereitstellen kann, erhöht er den Flächenüberhang, um den Bus zu allen gewünschten Zugangspunkten zu leiten, und es ist aufgrund der Latenz der Signalausbreitung auf dem Bus schwierig, die Zeittaktung in der physischen Gestaltung abzuschließen. Ein anderer Ansatz schließt ein Addieren von lokalen Zeitbasen über das SOC hinweg ein. Aufgrund lokaler Schwankungen von Takten und sogar unterschiedlicher Taktquellen für Takte an verschiedenen Punkten kann die Synchronisierung zwischen der globalen Zeitbasis und den lokalen Zeitbasen jedoch leicht verloren gehen. Software kann die globale Zeitbasis lesen und die Zeitbasis zu den lokalen Zeitbasen verbreiten, um eine Synchronisierung mit den lokalen Zeitbasen herzustellen, jedoch muss die Latenz, um die neuen Werte zu verbreiten, berücksichtigt werden und ist schwierig, präzise zu ermitteln. Zusätzlich kann die Softwaresynchronisierung viel weniger häufig stattfinden als wünschenswert, was es lokalen Zeitbasen erlaubt, während der Zeitdauer zwischen Synchronisierungen breite Schwankungen zu erfahren.
  • Des Weiteren ist ein qualitativ hochwertiges Kristalltaktsignal erforderlich, um Zeitbasisgenauigkeit beizubehalten. Obwohl unter Umständen niedrigfrequente Kristalltaktsignale verfügbar sind, stellen solche Takte keine höhere Genauigkeit/Granularität der Zeitbasis bereit, weil die Zeitbasisaktualisierungen verglichen mit den Betriebstaktfrequenzen verschiedener Komponenten des SOC nicht häufig genug auftreten. Es ist schwierig, die erforderliche Frequenz durch ein Kristallsignal zu erlangen. Des Weiteren kann eine externe Zeitbasis auf Grundlage des niedrigfrequenten Kristalltaktsignals unterhalten werden, und die Synchronisierung zwischen der externen Zeitbasis und verschiedenen Zeitbasen innerhalb des SOC kann schwierig zu erreichen sein.
  • ZUSAMMENFASSUNG
  • In einer Ausführungsform schließt eine integrierte Schaltung, wie beispielsweise ein SOC (oder auch ein diskretes Chipsystem), eine oder mehrere lokale Zeitbasen an verschiedenen Orten ein. Die Zeitbasen können auf Grundlage eines hochfrequenten lokalen Taktes inkrementiert werden, der während der Verwendung einer Schwankung unterliegen kann. Auf Grundlage eines niedrigfrequenteren Taktes, der weniger Schwankung unterliegt, können die lokalen Zeitbasen unter Verwendung von Hardware-Schaltlogik periodisch auf die korrekte Zeit synchronisiert werden. Insbesondere kann der korrekte Zeitbasiswert für die nächste Synchronisierung an jede lokale Zeitbasis übermittelt werden, und die Steuerschaltung für die lokale Zeitbasis kann konfiguriert sein, die lokale Zeitbasis bei dem korrekten Wert zu sättigen, wenn die lokale Zeitbasis den korrekten Wert erreicht, bevor die Synchronisierung auftritt. Wenn die Synchronisierung auftritt und die lokale Zeitbasis den korrekten Wert nicht erreicht hat, kann gleichermaßen die Steuerschaltung konfiguriert sein, den korrekten Zeitbasiswert zu laden. Somit können hohe Auflösung/Granularität der Zeitbasis, Zugang zur Zeitbasis mit geringer Latenz sowie eine hohe Genauigkeit der Zeitbasis unterstützt werden, während die Notwendigkeit einer Software-Synchronisierung beseitigt wird. Zudem kann eine Synchronisierung mit einer externen Zeitbasis durchgeführt werden, z. B. durch Übermitteln des korrekten Zeitbasiswertes für die externe Zeitbasis beim nächsten Synchronisierungsereignis an die lokalen Zeitbasen und Sättigen/Aktualisieren auf diese lokalen Zeitbasen.
  • Figurenliste
  • Die folgende, detaillierte Beschreibung nimmt Bezug auf die begleitenden Zeichnungen, die nun kurz beschrieben werden.
    • 1 ist ein Blockdiagramm einer bestimmten Ausführungsform einer integrierten Schaltung, die ein SOC einschließt.
    • 2 ist ein Blockdiagramm einer bestimmten Ausführungsform einer Schaltung einer lokalen Zeitbasis.
    • 3 ist ein Blockdiagramm einer bestimmten Ausführungsform einer Schaltung einer globalen Zeitbasis.
    • 4 ist ein Zeittaktungsdiagramm, das eine bestimmte Ausführungsform einer Zeitbasissynchronisierung veranschaulicht.
    • 5 ist ein Flussbild, das einen Betrieb einer bestimmten Ausführungsform der Schaltung einer lokalen Zeitbasis veranschaulicht, um Zeitbasen zu synchronisieren.
    • 6 ist ein Flussbild, das einen Betrieb einer bestimmten Ausführungsform der Schaltung einer globalen Zeitbasis veranschaulicht, um Zeitbasen zu synchronisieren.
    • 7 ist ein Flussbild, das einen Betrieb einer bestimmten Ausführungsform der Schaltung einer globalen Zeitbasis und der Schaltung einer lokalen Zeitbasis veranschaulicht, um Zeitbasen zu initialisieren.
    • 8 ist ein Blockdiagramm einer bestimmten Ausführungsform eines Systems.
  • Während in dieser Offenbarung beschriebene Ausführungsformen verschiedenen Abänderungen und alternativen Formen unterliegen können, sind spezifische Ausführungsformen davon beispielhaft in den Zeichnungen gezeigt und werden hierin detailliert beschrieben. Es versteht sich jedoch, dass die Zeichnungen und die detaillierte Beschreibung hierzu nicht die Ausführungsformen der besonderen offenbarten Form einschränken sollen, sondern dass diese im Gegenteil dazu beabsichtigt ist, alle Modifikationen, Äquivalente und Alternativen abzudecken, die innerhalb des Grundgedankens und Schutzumfangs der beigefügten Patentansprüche sind. Die hierin verwendeten Überschriften dienen nur organisatorischen Zwecken und sollen nicht verwendet werden, um den Umfang der Beschreibung einzuschränken. Wie in dieser Anmeldung verwendet, wird das Wort „können“ im ermöglichenden Sinn (d. h. „das Potential besitzend zu“ bedeutend) und nicht im zwingenden Sinn (d. h. „müssen“ bedeutend) verwendet. Gleichermaßen haben die Wörter „einschließen“, „einschließlich“ und „schließt ein“ die Bedeutung „einschließlich, jedoch nicht darauf beschränkt“.
  • Verschiedene Einheiten, Schaltungen oder andere Komponenten können als zum Durchführen einer oder mehrerer Aufgaben „konfiguriert“ beschrieben sein. In solchen Kontexten ist „konfiguriert“ eine breite Angabe von Struktur, die generell bedeutet, „Schaltlogik aufweisend, welche“ die Aufgabe oder Aufgaben während des Betriebs durchführt. Insofern kann die Einheit/Schaltung/Komponente konfiguriert sein, die Aufgabe durchzuführen, auch wenn die Einheit/Schaltung/Komponente derzeit nicht eingeschaltet ist. Im Allgemeinen kann die Schaltung, die die Struktur bildet, die „konfiguriert“ entspricht, Hardware-Schaltungen einschließen. Die Hardware-Schaltungen können jede Kombination von Schaltlogik kombinatorischer Logik, getakteten Datenspeichervorrichtungen, wie beispielsweise Flops, Register, Latches usw., endlichen Zustandsautomaten, Speicher, wie beispielsweise statischen Speicher mit wahlfreiem Zugriff oder eingebetteten dynamischen Speicher mit wahlfreiem Zugriff, benutzerspezifisch gestalteter Schaltlogik, analoger Schaltlogik, programmierbaren Logikanordnungen usw. einschließen. Gleichermaßen können der Zweckmäßigkeit in der Beschreibung wegen verschiedene Einheiten/Schaltungen/Komponenten als eine Aufgabe oder Aufgaben durchführend beschrieben werden. Solche Beschreibungen sollten so interpretiert werden, als würden sie den Ausdruck „konfiguriert“ enthalten. Das Nennen einer Einheit/Schaltung/Komponente, die konfiguriert ist, eine oder mehrere Aufgaben durchzuführen, soll sich ausdrücklich nicht auf eine Interpretation nach 35 U.S.C. § 112 (f) für diese Einheit/Schaltung/Komponente beziehen.
  • In einer Ausführungsform können Hardware-Schaltungen gemäß dieser Offenbarung durch Codieren der Beschreibung der Schaltung in einer Hardware-Beschreibungssprache (hardware description language (HDL)), wie beispielsweise Verilog oder VHDL, implementiert werden. Die HDL-Beschreibung kann gegenüber einer Bibliothek von Zellen synthetisiert werden, die für eine gegebene Technologie zur Herstellung integrierter Schaltungen gestaltet ist, und kann aus Gründen der Zeittaktung, Energie und anderen Gründen modifiziert werden, um zu einer endgültigen Gestaltungsdatenbank zu führen, die an eine Gießerei übermittelt werden kann, um Masken zu erzeugen und letztendlich die integrierte Schaltung zu produzieren. Manche Hardware-Schaltungen oder Abschnitte davon können auch in einem schematischen Editor benutzerspezifisch gestaltet und zusammen mit synthetisierter Schaltlogik in der Gestaltung der integrierten Schaltung erfasst werden. Die integrierten Schaltungen können Transistoren einschließen und können ferner andere Schaltungselemente einschließen (z. B. passive Elemente, wie beispielsweise Kondensatoren, Widerstände, Spulen usw.) und eine Verbindung zwischen den Transistoren und Schaltungselementen herstellen. Manche Ausführungsformen können mehrere integrierte Schaltungen implementieren, die miteinander gekoppelt sind, um die Hardware-Schaltungen zu implementieren, und/oder diskrete Elemente können in manchen Ausführungsformen verwendet werden. Alternativ dazu kann die HDL-Gestaltung zu einer programmierbaren Logikanordnung, wie beispielsweise einer anwenderprogrammierbaren Gatteranordnung (field programmable gate array (FPGA)), synthetisiert werden und kann in der FPGA implementiert werden.
  • Diese Beschreibung enthält Verweise auf „eine bestimmte Ausführungsform“ oder „eine Ausführungsform“. Das Vorkommen der Wortlaute „in einer bestimmten Ausführungsform“ oder „in einer Ausführungsform“ bezieht sich nicht notwendigerweise auf die gleiche Ausführungsform, obwohl Ausführungsformen, die eine beliebige Kombination der Merkmale einschließen, generell einbezogen sind, sofern hierin nichts Anderes ausdrücklich ausgeführt ist. Insbesondere können Merkmale, Strukturen oder Eigenschaften auf jegliche geeignete Art kombiniert werden, die mit dieser Offenbarung im Einklang steht.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Unter Hinwendung zu 1 ist nun ein Blockdiagramm einer bestimmten Ausführungsform eines SOC 10 gezeigt, das mit einem Speicher 12 und einer externen Taktquelle 34 gekoppelt ist. Wie durch den Namen impliziert, können die Komponenten des SOC 10 auf einem einzigen Halbleitersubstrat als ein „Chip“ einer integrierten Schaltung integriert sein. In manchen Ausführungsformen können die Komponenten auf zwei oder mehr separaten Chips in einem System implementiert sein. Hierin wird jedoch das SOC 10 als ein Beispiel verwendet. In der veranschaulichten Ausführungsform schließen die Komponenten des SOC 10 einen Komplex einer zentralen Verarbeitungseinheit (central processing unit (CPU) complex) 14, eine „Always-on“-Komponente 16, Peripherieeinheiten-Komponenten 18A bis 18B (kurz ausgedrückt „Peripherieeinheiten“), eine Speichersteuereinheit 22, einen Energieverwalter (power manager (PMGR)) 32, eine interne Takterzeugerschaltung 36 und eine Kommunikationsstruktur 27 ein. Die Komponenten 14, 16, 18A bis 18B, 22, 32 und 36 können alle mit der Kommunikationsstruktur 27 gekoppelt sein. Der Speicher-Controller 22 kann im Betrieb mit dem Speicher 12 gekoppelt sein. Die Always-on-Komponente 16 kann mit der externen Taktquelle 34 gekoppelt sein. Bei der dargestellten Ausführungsform kann der CPU-Komplex 14 einen oder mehrere Prozessoren einschließen (P 30 in 1). Die Prozessoren 30 können die eine oder mehreren CPUs des CPU-Komplexes 14 innerhalb des SOC 10 bilden. In manchen Ausführungsformen kann eine zweite interne Takterzeugerschaltung 37 eingeschlossen sein und kann mit einer oder mehreren lokalen Zeitbasen (z. B. der lokalen Zeitbasis 26B in 1) gekoppelt sein. In solch einer Ausführungsform ist die lokale Zeitbasis 26B unter Umständen nicht mit der Takterzeugerschaltung 36 gekoppelt. Mehrere zusätzliche Takterzeugerschaltungen können in noch weiteren Ausführungsformen eingeschlossen sein.
  • Verschiedene Komponenten im SOC 10 können Zugang zu einer Zeitbasis haben, um eine Zeit zu ermitteln. Zeitbasen können verwendet werden, um Zeitstempel für Ereignisse zu erzeugen (sodass die zeitliche Reihenfolge von Ereignissen festgestellt werden kann oder ein gegebenes Ereignis einer bestimmten Echtzeit (Wall Clock Time) zugeordnet werden kann). Zeitbasen können verwendet werden, um Anwendungen eine Zeit bereitzustellen (z. B., um sie für einen Benutzer anzuzeigen oder um zeitgestützte Benachrichtigungen, wie beispielsweise Warnungen oder Alarme, zu ermöglichen). Zeitbasen können verwendet werden, um eine verstrichene Zeit zu messen (z. B., um eine Ausführung von Aufgaben in einem Multitasking-Betriebssystem zu planen). Im Allgemeinen kann es sich bei einer Zeitbasis um jedes Zeitmaß handeln. In einer Ausführungsform kann es sich bei einer Zeitbasis um einen Wert handeln, der Zeit in einer bestimmten Granularität darstellt (z. B. kann die am wenigsten signifikante Stelle eine bestimmte Menge an Zeit darstellen). Manche der am wenigsten signifikanten Stellen sind unter Umständen nicht tatsächlich implementiert (z. B., wenn der Zeitbasiswert Zeit in einer höheren Granularität misst als es Takte im SOC 10 unter Umständen erlauben). In anderen Ausführungsformen kann der Zeitbasiswert das Ticken einer Uhr im SOC 10 messen. Auf Grundlage der Frequenz der Uhr kann die Echtzeit berechnet werden.
  • Die Komponenten, welche die Zeitbasis verwenden, können Schaltungen einer lokalen Zeitbasis einschließen (z. B. die Schaltungen einer lokalen Zeitbasis 26A bis 26D im CPU-Komplex 14, der Peripherieeinheit 18A, der Speichersteuereinheit 22 und dem PMGR 32 in 1). In einer Ausführungsform kann eine Komponente mehrere Schaltungen einer lokalen Zeitbasis aufweisen (z. B. kann es eine Schaltung einer lokalen Zeitbasis 26A bis 26D für jede CPU 30 im CPU-Komplex 14 geben), und/oder mehrere Komponenten können eine Schaltung einer lokalen Zeitbasis 26A bis 26D gemeinsam nutzen. Eine Schaltung einer globalen Zeitbasis 20 in der Always-on-Komponente 16 kann konfiguriert sein, die durch die Schaltungen einer lokalen Zeitbasis 26A bis 26D unterhaltenen lokalen Zeitbasen zu synchronisieren. In manchen Ausführungsformen kann die Schaltung einer globalen Zeitbasis 20 auch eine globale Zeitbasis unterhalten.
  • Der Takterzeuger 36 kann konfiguriert sein, einen Takt von relativ hoher Frequenz (Fr_clk) zu erzeugen, der verwendet werden kann, um die lokalen Zeitbasen (und optional die globale Zeitbasis, falls eingeschlossen) zu aktualisieren. Somit ist der Fr_clk zwischen dem Takterzeuger 36, den Schaltungen einer lokalen Zeitbasis 26A bis 26D und optional der Schaltung einer globalen Zeitbasis 20 gekoppelt. Der Takterzeuger 36 kann eine beliebige Gestaltung und Konfiguration aufweisen, wie beispielsweise einen Phasenregelkreis (phaselocked-loop (PLL)) und einen Verzögerungsregelkreis (delay-locked-loop (DLL)) usw. Allgemein kann der Takterzeuger 36 verschiedenen Quellen von Ungenauigkeit unterworfen sein, die zu einer Schwankung der Taktfrequenz des Fr_clk während der Verwendung führen. Zum Beispiel kann die Schaltlogik im Takterzeuger 36 aufgrund von Temperaturänderungen, einer Versorgungsspannungsschwankung, die Verzögerungen in der Schaltlogik ändert, Flimmern, Rauschen usw. einer Schwankung unterworfen sein. Die Versorgungsspannungsschwankung kann sowohl eine transiente Schwankung aufgrund von Rauschen, Last usw. als auch eine beabsichtigte Schwankung, wie beispielsweise dynamische Spannungsänderungen, während der Verwendung einschließen. Die Frequenz des Fr_clk kann mit der Zeit abweichen und schneller und/oder langsamer als die gewünschte Frequenz laufen. Somit kann es einen Fehler der lokalen Zeitbasen geben.
  • Auf Grundlage von Schaltungsanalyse, empirischen Daten und/oder Simulationen kann die Frequenzschwankung so bestimmt werden, dass sie innerhalb eines Bereichs um die gewünschte Frequenz liegt. Die gewünschte Frequenz (d. h. die vom Takterzeuger 36 erwartete Frequenz) kann als die Nennfrequenz bezeichnet werden. Ein Takt kann als nominal eine gegebene Frequenz aufweisend bezeichnet werden, wobei bekannt ist, dass es eine Schwankung um die Nennfrequenz geben kann. Takte können als nominal eine höhere oder niedrigere Frequenz aufweisend bezeichnet werden, indem ihre Nennfrequenzen verglichen werden, wobei bekannt ist, dass Schwankungen dafür sorgen können, dass die Frequenzen schwanken.
  • Ein Takt einer niedrigeren Frequenz (Rt_clk) kann an einem Eingang in das SOC 10 empfangen werden (z. B. für die externe Taktquelle 34). Die externe Taktquelle 34 kann eine Taktquelle von „hoher Qualität“ sein, wie z. B. ein Kristalloszillator. Die Taktqualität kann in einer Vielfalt von Arten gemessen werden, kann sich jedoch allgemein auf einen Takt beziehen, der während der Verwendung eine geringe Schwankung erfährt. Somit kann der Rt_clk eine geringere Schwankung während der Verwendung aufweisen als zum Beispiel der Fr_clk. Das heißt, der Schwankungsbereich der Taktfrequenz um die Nennfrequenz des Rt_clk kann kleiner sein als der Schwankungsbereich beim Fr_clk.
  • Dementsprechend können Synchronisierungsereignisse vom Rt_clk ausgelöst werden, um die lokalen Zeitbasen zu synchronisieren (sowohl miteinander als auch mit dem korrekten Zeitbasiswert). Bei einem Synchronisierungsereignis kann es sich um jede Kommunikation handeln, die verursacht, dass eine Synchronisierung der Zeitbasen auftritt. Zum Beispiel kann die Schaltung einer globalen Zeitbasis 20 konfiguriert sein, ein vom Rt_clk ausgelöstes Signal zu den Schaltungen einer lokalen Zeitbasis 26A bis 26C zu bestätigen. Die Schaltung einer globalen Zeitbasis 20 kann zudem den nächsten Zeitbasissynchronisierungswert auf Grundlage des Rt_clk mitteilen, sodass die lokalen Zeitbasen den Synchronisierungswert zur Aktualisierung besitzen. In einer Ausführungsform kann die Schaltung einer globalen Zeitbasis 20 ein Synchronisierungsereignis für jede Periode des Rt_clk-Signals auslösen. Zum Beispiel kann das Synchronisierungsereignis bei einer Flanke des Taktes ausgelöst werden. Die ansteigende Flanke kann in dieser Beschreibung als ein Beispiel verwendet werden, aber die abfallende Flanke kann ebenfalls verwendet werden. Die Schaltung einer globalen Zeitbasis 20 kann zudem den nächsten Zeitbasissynchronisierungswert als Reaktion auf eine Flanke (z. B. die der Synchronisierungsereignisflanke gegenüberliegende Flanke oder die abfallende Flanke für das Beispiel der ansteigenden Flanke) übermitteln. Andere Ausführungsformen können das Synchronisierungsereignis wie gewünscht als einmal pro mehrere Perioden des Rt_clk oder an jeder Flanke des Rt_clk auftretend definieren.
  • Der nächste Zeitbasissynchronisierungswert kann jede Synchronisierungsperiode aus dem vorherigen Synchronisierungswert und einem Wert, der von dem Verhältnis der Frequenzen des Fr_clk und des Rt_clk abhängt, erzeugt werden. Bei dem Verhältnis handelt es sich unter Umständen nicht um einen ganzzahligen Wert, und somit kann die Zeitbasis einen ganzzahligen Teil und einen Bruchteil hinsichtlich Rt_clk-Zyklen aufweisen. Zum Beispiel kann in einer bestimmten Ausführungsform der Fr_clk 24 Megahertz (MHz) sein und der Rt_clk kann 32.768 Hz sein. In diesem Beispiel beträgt das Verhältnis 24 MHz/32.768 Hz oder 46875/64 in einfachster mathematischer Form. Dementsprechend kann die Differenz zwischen aufeinanderfolgenden Synchronisierungszeitbasiswerten 46875 betragen, und jeder Taktzyklus des Fr_clk kann ein Inkrement von 64 auf die lokale Zeitbasis sein. Der Bruchteil kann 5 Bit betragen, da jedes Inkrement 64 beträgt, und der Bruchteil kann, wie gewünscht, in verschiedenen Ausführungsformen implementiert werden oder nicht implementiert werden. In manchen Ausführungsformen kann der Bruchteil verwendet werden, um die lokale Zeitbasis daran zu hindern, relativ zu einer aus einer externen Taktquelle abgeleiteten Zeitbasis abzuweichen. Somit können sowohl das Inkrement pro Fr_clk als auch die Differenz in aufeinanderfolgenden Synchronisierungswerten vom Verhältnis der Frequenzen abhängen.
  • In einer Ausführungsform ist mindestens eine Schaltung einer lokalen Zeitbasis 26A bis 26D konfiguriert, den nächsten durch die Schaltung einer globalen Zeitbasis 20 übermittelten Zeitbasissynchronisierungswert zu erfassen, und sie kann die lokale Zeitbasis mit dem nächsten Zeitbasissynchronisierungswert vergleichen, wenn die lokale Zeitbasis innerhalb einer gegebenen Synchronisierungsperiode inkrementiert wird. Wenn der Fr_clk bei einer höheren Frequenz arbeitet als erwartet, kann die lokale Zeitbasis den nächsten Zeitbasissynchronisierungswert vor dem Ende der Synchronisierungsperiode erreichen. Die Schaltungen einer lokalen Zeitbasis 26A bis 26D können den lokalen Zeitbasiswert für den Rest der Synchronisierungsperiode bei dem nächsten Zeitbasissynchronisierungswert sättigen. Somit „eilt“ die lokale Zeitbasis dem korrekten Zeitbasiswert unter Umständen nicht um mehr voraus, als die Zeitbasis am Ende der Synchronisierungsperiode aufweisen wird. Zusätzlich können die Schaltungen einer lokalen Zeitbasis 26A bis 26D als Reaktion auf das Synchronisierungsereignis den nächsten Zeitbasissynchronisierungswert in die lokale Zeitbasis laden (unter der Annahme, dass die lokale Zeitbasis den nächsten Synchronisierungswert nicht erreicht hat). Das Laden des nächsten Zeitbasissynchronisierungswertes kann die lokale Zeitbasis daran hindern, der korrekten Zeitbasis um mehr als eine Synchronisierungsperiode „nachzueilen“.
  • Jeder Kommunikationsmechanismus kann verwendet werden, um den nächsten Zeitbasissynchronisierungswert von der Schaltung einer globalen Zeitbasis 20 an die Schaltungen einer lokalen Zeitbasis 26A bis 26D zu übermitteln. In einer Ausführungsform kann eine serielle Schnittstelle mit der Rate des Fr_clk verwendet werden, um den Wert zu übermitteln. Da der Fr_clk in diesem Beispiel eine signifikant höhere Frequenz als der Rt_clk ist, kann der nächste Zeitbasissynchronisierungswert in den Schaltungen einer lokalen Zeitbasis 26A bis 26B lange vor dem Ende der Synchronisierungsperiode empfangen werden.
  • Obwohl die veranschaulichte Ausführungsform einen einzigen von der Takterzeugerschaltung 36 für die Schaltung einer lokalen Zeitbasis 26A bis 26D und die Schaltung einer globalen Zeitbasis 20 bereitgestellten Fr_clk zeigt, können andere Ausführungsformen mehrere Quellen von Fr_clk aufweisen, wie beispielsweise, dass die Takterzeugerschaltung 37 den Fr_clk2 für die Schaltung einer lokalen Zeitbasis 26B bereitstellt, was in 1 in Strichpunktform gezeigt ist. In solch einer Ausführungsform empfängt die Schaltung einer lokalen Zeitbasis 26B unter Umständen nicht den Fr_clk von der Takterzeugerschaltung 36. In noch weiteren Ausführungsformen kann es mehrere interne Takterzeugerschaltungen geben, die den verschiedenen Schaltungen einer lokalen Zeitbasis 26A bis 26D andere Fr_clks bereitstellen. Die Quellen können voneinander unabhängig sein, sodass eine Phase und Frequenz der Takte in der Verwendung abweichen können.
  • Wie zuvor erwähnt, können sich Inkremente beim nächsten Zeitbasissynchronisierungswert für eine gegebene Synchronisierungsperiode sättigen. Allgemein kann sich ein Sättigen eines Wertes darauf beziehen, dass bis zu dem Wert inkrementiert wird, aber dann das inkrementierte Ergebnis sogar angesichts zusätzlicher Inkremente gehalten wird. Inkrementieren kann sich allgemein auf ein Erhöhen eines Wertes um eine feste Menge während der Verwendung beziehen. Die feste Menge kann in manchen Ausführungsformen eins oder jede andere ganze Zahl oder jeder andere Wert sein. In dem vorstehend erwähnten Beispiel kann das Inkrement 64 betragen.
  • In einer Ausführungsform kann die Always-on-Komponente 16 konfiguriert sein, eingeschaltet zu bleiben, wenn andere Komponenten des SOC 10 (z. B. der CPU-Komplex 14, die Peripherieeinheiten 18A bis 18B und der PMGR 32) abgeschaltet sind. Insbesondere kann die Always-on-Komponente 16 immer dann eingeschaltet sein, wenn das SOC 10 Strom von einer externen Stromverwaltungseinheit (power management unit (PMU)) erhält. Somit ist die Always-on-Komponente immer eingeschaltet in dem Sinn, dass sie mit Strom versorgt werden kann, wenn das SOC 10 Strom erhält (z. B. zu Zeitpunkten, an denen die Vorrichtung, einschließlich des SOC 10, im Stand-by-Modus ist oder aktiv betrieben wird), aber sie ist möglicherweise nicht eingeschaltet, wenn das SOC 10 keinen Strom erhält (z. B. zu Zeitpunkten, an denen die Vorrichtung vollständig ausgeschaltet ist). Die Always-on-Komponente 16 kann bestimmte Funktionen unterstützen, während der Rest des SOC 10 ausgeschaltet ist, sodass ein Betrieb mit geringem Stromverbrauch möglich wird. Zusätzlich kann die Schaltung einer globalen Zeitbasis 20 fortfahren, die globale Zeitbasis für das System zu unterhalten, sodass die globale Zeitbasis beim nächsten Einschalten des SOC 10 nicht reinitialisiert werden muss.
  • In 1 kann eine gepunktete Linie 24, die die Always-on-Komponente 16 von den anderen Komponenten trennt, einen unabhängigen Strombereich für die Always-on-Komponente 16 angeben. Andere Komponenten, Komponentengruppen und/oder Subkomponenten können auch unabhängige Strombereiche aufweisen. Allgemein kann ein Strombereich konfiguriert sein, um unabhängig von anderen Strombereichen eine Versorgungsspannung zu empfangen (d. h. eingeschaltet zu sein) oder um keine Versorgungsspannung zu empfangen (d. h. ausgeschaltet zu sein). Bei einigen Ausführungsformen können Strombereiche gleichzeitig mit unterschiedlichen Größen von Versorgungsspannung versorgt werden. Die Unabhängigkeit kann in einer Vielfalt von Weisen bereitgestellt werden. Beispielsweise kann die Unabhängigkeit bereitgestellt werden, indem separate Versorgungsspannungseingaben von der externen PMU erfolgen, indem Stromschalter zwischen den Versorgungsspannungseingängen und Komponenten bereitgestellt werden und die Stromschalter für einen gegebenen Bereich als eine Einheit und/oder eine Kombination des Vorstehenden bereitgestellt werden. Es kann auch mehr Strombereiche geben als in 1 dargestellt sind. Beispielsweise kann der CPU-Komplex 14 bei einer Ausführungsform einen unabhängigen Strombereich aufweisen (und jeder CPU-Prozessor 30 kann ebenfalls einen unabhängigen Strombereich haben). Eine oder mehrere Peripheriekomponenten 18A-18B können bei einer Ausführungsform in einem oder mehreren unabhängigen Strombereichen vorliegen.
  • Allgemein kann eine Komponente als eingeschaltet oder ausgeschaltet bezeichnet werden. Die Komponente kann eingeschaltet sein, wenn sie Versorgungsspannung empfängt, sodass sie dem Konzept entsprechend betrieben werden kann. Wenn die Komponente abgeschaltet ist, empfängt sie die Versorgungsspannung nicht und ist nicht in Betrieb. Die Komponente kann auch als hochgefahren bezeichnet werden, wenn sie eingeschaltet ist, und als heruntergefahren, falls sie abgeschaltet ist. Das Hochfahren einer Komponente kann sich auf die Zufuhr der Versorgungsspannung für eine abgeschaltete Komponente beziehen, und das Herunterfahren kann sich auf das Beenden der Zufuhr der Versorgungsspannung für die Komponente beziehen. Dementsprechend kann eine Unterkomponente und/oder das SOC 10 insgesamt als hochgefahren/heruntergefahren usw. bezeichnet werden. Eine Komponente kann ein vordefinierter Schaltungsblock sein, der eine angegebene Funktion im SOC 10 bereitstellt und eine spezifische Schnittstelle mit dem Rest des SOC 10 hat. Somit können die Always-on-Komponente 16, die Peripherieeinheiten 18A-18B und der CPU-Komplex 14, der Speicher-Controller 22 und der PMGR 32 jeweils Beispiele einer Komponente sein.
  • Eine Komponente kann aktiv sein, wenn sie hochgefahren ist und nicht mit geteilten Taktsignalen versorgt wird. Somit kann beispielsweise ein Prozessor im CPU-Komplex 14 für die Ausführung von Anweisungen verfügbar sein, falls er aktiv ist. Eine Komponente kann inaktiv sein, wenn sie heruntergefahren ist oder in einem anderen niedrigen Energiezustand ist, in dem eine signifikante Verzögerung auftreten kann, bevor Anweisungen ausgeführt werden können. Falls die Komponente beispielsweise ein Rücksetzen oder eine Sperre einer Phasenregelschleife (PLL) erfordert, kann sie inaktiv sein, selbst wenn sie eingeschaltet bleibt. Eine Komponente kann auch inaktiv sein, wenn sie Clock-Gating unterliegt. Clock-Gating kann sich auf Techniken beziehen, bei denen der Takt zur digitalen Schaltung in der Komponente vorübergehend „abgeschaltet“ ist, wobei verhindert wird, dass der Zustand von der digitalen Schaltung in getakteten Speichervorrichtungen, wie z. B. Flops, Registern usw., erfasst wird.
  • Wie vorstehend erwähnt, kann der CPU-Komplex 14 einen oder mehrere Prozessoren 30 einschließen, die als eine oder mehrere CPUs des CPU-Komplexes 14 im SOC 10 dienen können. Die CPU des Systems schließt den einen oder die mehreren Prozessoren ein, welche die Hauptsteuersoftware des Systems, wie beispielsweise ein Betriebssystem, ausführen. Allgemein kann durch die CPU während der Verwendung ausgeführte Software die anderen Komponenten des Systems steuern, um die gewünschte Funktionalität des Systems zu verwirklichen. Die Prozessoren können auch andere Software ausführen, wie z. B. Anwendungsprogramme. Die Anwendungsprogramme können Benutzerfunktionalität bereitstellen, und sie können auf dem Betriebssystem aufbauen in Bezug auf Vorrichtungssteuerung unterer Ebene, Planung, Speichermanagement usw. Dementsprechend können die Prozessoren auch als Anwendungsprozessoren bezeichnet werden. Der CPU-Komplex 14 kann ferner andere Hardware einschließen, wie z. B. einen L2-Cache und/oder eine Schnittstelle zu den anderen Komponenten des Systems (z. B. eine Schnittstelle zur Kommunikationsstruktur 27).
  • Ein Betriebspunkt kann sich beziehen auf eine Kombination aus Größe der Stromversorgungsspannung und Betriebsfrequenz für den CPU-Komplex 14, die Always-on-Komponente 16, andere Komponenten des SOC 10 usw. Die Betriebsfrequenz kann die Frequenz des Taktes sein, der die Komponente taktet. Die Betriebsfrequenz kann auch als Taktfrequenz oder einfach als Frequenz bezeichnet werden. Der Betriebspunkt kann auch als ein Betriebszustand oder Energiezustand bezeichnet werden. Der Betriebspunkt kann Teil der programmierbaren Konfigurationsdaten sein, die in der Always-on-Komponente 16 gespeichert und in den Komponenten neu programmiert werden können, wenn es zu einer Neukonfiguration kommt.
  • Allgemein kann ein Prozessor jede beliebige Schaltlogik und oder jeden beliebigen Mikrocode beinhalten, die oder der konfiguriert ist, Anweisungen auszuführen, die in einer durch den Prozessor implementierten Anweisungssatzarchitektur definiert sind. Prozessoren können Prozessorkerne, die auf einer integrierten Schaltung mit anderen Komponenten als einem System auf einem Chip (SOC 10) implementiert sind, oder andere Ebenen der Integration einbeziehen. Prozessoren können ferner diskrete Mikroprozessoren umfassen, sowie Prozessorkerne und/oder Mikroprozessoren, die in Mehrfachchipmodul-Implementierungen integriert sind; Prozessoren, die als mehrere integrierte Schaltungen implementiert sind; usw.
  • Die Speichersteuereinheit 22 kann allgemein die Schaltlogik zum Empfangen von Speicheroperationen von den anderen Komponenten des SOC 10 und zum Zugreifen auf den Speicher 12 einschließen, um die Speicheroperationen durchzuführen. Die Speichersteuereinheit 22 kann konfiguriert sein, auf jeden beliebigen Typ von Speicher 12 zuzugreifen. Beispielsweise kann der Speicher 12 statischer RAM (SRAM) sein oder dynamischer RAM (DRAM), wie z. B. synchroner DRAM (SDRAM) einschließlich DRAM mit doppelter Datenrate (DDR, DDR2, DDR3, DDR4 usw.). Versionen mit geringer Leistung/mobile Versionen des DDR DRAM können unterstützt werden (z. B. LPDDR, mDDR usw.). Die Speichersteuereinheit 22 kann Warteschlangen für Speicheroperationen zum Ordnen (und potenziellen Umordnen) der Operationen und zum Vorlegen der Operationen für den Speicher 12 einschließen. Die Speichersteuereinheit 22 kann ferner Datenpuffer einschließen, um Schreibdaten, die auf ein Schreiben in den Speicher warten, und Lesedaten, die auf ein Zurückgeben an die Quelle der Speicheroperation warten, zu speichern. In manchen Ausführungsformen kann die Speichersteuereinheit 22 einen Speicher-Cache einschließen, um Speicherdaten zu speichern, auf die kürzlich zugegriffen wurde. In SOC-Implementierungen kann der Speicher-Cache zum Beispiel den Energieverbrauch im SOC verringern, indem ein erneuter Zugriff von Daten aus dem Speicher 12 vermieden wird, wenn erwartet wird, dass bald erneut auf sie zugegriffen wird. In einigen Fällen kann der Speicher-Cache auch als ein System-Cache bezeichnet werden, im Gegensatz zu privaten Caches wie z. B. dem L2-Cache oder Caches in den Prozessoren, die nur für bestimmte Komponenten dienen. Zusätzlich muss in manchen Ausführungsformen ein System-Cache nicht innerhalb der Speichersteuereinheit 22 angeordnet sein.
  • Die Peripherieeinheiten 18A-18B können eine beliebige Gruppe von im SOC 10 eingeschlossener zusätzlicher Hardware-Funktionalität sein. Beispielsweise können die Peripherieeinheiten 18A-18B Videoperipherie einschließen wie z. B. einen Bildsignalprozessor, der zum Verarbeiten von Bilderfassungsdaten von einer Kamera oder einem anderen Bildsensor konfiguriert ist, Display-Controller, die zur Anzeige von Videodaten auf einer oder mehreren Anzeigevorrichtungen konfiguriert sind, Grafikprozessoren (GPUs), Video-Encoder/-Decoder, Skalierer, Rotatoren, Mischer usw. Die Peripherieeinheiten können Audioperipherie einschließen, wie z. B. Mikrofone, Lautsprecher, Schnittstellen für Mikrofone und Lautsprecher, Audioprozessoren, digitale Signalprozessoren, Mixer usw. Die Peripherieeinheiten können Interface-Controller für verschiedene, zum SOC 10 externe Schnittstellen einschließen (z. B. die Peripherieeinheit 18B), einschließlich Schnittstellen, wie z. B. Universal Serial Bus (USB), Peripheral Component Interconnect (PCI), einschließlich PCI Express (PCIe), serielle und parallele Ports usw. Die Peripherieeinheiten können Netzwerkperipherie einschließen, wie z. B. Medienzugriffs-Controller (MAC). Jeder beliebige Satz von Hardware kann eingeschlossen sein.
  • Die Kommunikationsstruktur 27 kann jede beliebige Kommunikationsverbindung und jedes beliebige Protokoll zum Kommunizieren zwischen den Komponenten des SOC 10 sein. Die Kommunikationsstruktur 27 kann busgestützt sein, einschließlich gemeinsam genutzten Buskonfigurationen, Crossbar-Konfigurationen und hierarchischen Bussen mit Brücken. Die Kommunikationsstruktur 27 kann auch paketgestützt sein und hierarchisch sein mit Brücken, Crossbar, Punkt-zu-Punkt- oder anderen Verbindungen.
  • Der PMGR 32 kann konfiguriert sein, die von der externen PMU angeforderten Größen der Versorgungsspannung zu steuern. Es kann mehrere von der externen PMU für das SOC 10 erzeugte Versorgungsspannungen geben. Zum Beispiel kann es eine Versorgungsspannung für den CPU-Komplex 14, eine Versorgungsspannung für den Rest des SOC, eine Versorgungsspannung für den Speicher 12 usw. geben. Der PMGR 32 kann unter direkter Software-Steuerung stehen (z. B. kann Software direkt das Einschalten und/oder Ausschalten von Komponenten anfordern) und/oder kann konfiguriert sein, das SOC 10 zu überwachen und zu ermitteln, wann verschiedene Komponenten einzuschalten oder auszuschalten sind.
  • Es wird festgehalten, dass die Anzahl von Komponenten des SOC 10 (und die Anzahl von Teilkomponenten für die in 1 gezeigten, wie beispielsweise innerhalb des CPU-Komplexes 14) von Ausführungsform zu Ausführungsform schwanken kann. Es kann mehr oder weniger von jeder Komponente/Teilkomponente geben als die in 1 gezeigte Anzahl.
  • 2 ist ein Blockdiagramm einer bestimmten Ausführungsform der Schaltung einer lokalen Zeitbasis 26A. Andere Schaltungen einer lokalen Zeitbasis 26B bis 26D können ähnlich sein. In der Ausführungsform von 2 schließt die Schaltung einer lokalen Zeitbasis 26A eine Steuerschaltung 40, ein Register eines nächsten Synchronisierungswertes 42, ein Register einer lokalen Zeitbasis 44 und ein Inkrementregister 46 ein. Die Steuerschaltung 40 ist mit dem Fr_clk-Eingang und der Schnittstelle einer globalen Zeitbasis von der Schaltung einer globalen Zeitbasis 20 gekoppelt und ist ferner mit dem Register eines nächsten Synchronisierungswertes 42, dem Register einer lokalen Zeitbasis 44 und dem Inkrementregister 46 gekoppelt.
  • Als Reaktion auf den Fr_clk kann die Steuerschaltung 40 konfiguriert sein, das Register einer lokalen Zeitbasis 44 abhängig von einer Sättigung beim nächsten Zeitbasissynchronisierungswert („nächsten Synchronisierungswert“) im Register 42 zu inkrementieren. Zum Beispiel kann das Inkrement als Reaktion auf jede ansteigende Flanke des Fr_clk angewandt werden. Wie zuvor erwähnt, kann in einer Beispielausführungsform die Größe des Inkrements vom Verhältnis der Fr_clk-Frequenz zur Rt_clk-Frequenz abhängig sein. Die Größe des Inkrements kann zum Beispiel in dem Inkrementregister 46 programmiert sein. Die Steuerschaltung 40 kann das Inkrement zur derzeitigen lokalen Zeitbasis addieren und das Ergebnis (beim nächsten Synchronisierungswert gesättigt) in das Register einer lokalen Zeitbasis 44 schreiben.
  • In einer Ausführungsform kann der nächste Synchronisierungswert über die Schnittstelle einer globalen Zeitbasis während der Periode zwischen Synchronisierungsereignissen an die Schaltung einer lokalen Zeitbasis 26A übermittelt werden. In dem vorstehenden Beispiel treten Synchronisierungsereignisse bei der ansteigenden Flanke des Rt_clk auf, und der nächste Synchronisierungswert wird bei der abfallenden Flanke des Rt_clk übermittelt. Genauer kann es sich in einer Ausführungsform bei der Schnittstelle einer globalen Zeitbasis um eine serielle Schnittstelle handeln, die bei der Fr_clk-Frequenz arbeitet, und sie kann den nächsten Synchronisierungswert über mehrere Taktzyklen des Fr_clk, beginnend bei der abfallenden Flanke des Rt_clk, übermitteln. Die Steuerschaltung 40 kann konfiguriert sein, das Register eines nächsten Synchronisierungswertes 42 als ein Verschiebungsregister zu betreiben, wenn der nächste Synchronisierungswert bereitgestellt wird, und kann konfiguriert sein, anzugeben, dass der nächste Synchronisierungswert gültig ist, sobald er in den Register eines nächsten Synchronisierungswertes 42 verschoben wurde. Die Steuerschaltung 40 kann konfiguriert sein, den nächsten Synchronisierungswert als Reaktion auf ein Synchronisierungsereignis als ungültig zu behandeln, bis ein aktualisierter Wert übermittelt wird. Andere Ausführungsformen können den Wert als einen parallelen Bus oder unter Verwendung anderer Mechanismen übermitteln.
  • In anderen Ausführungsformen kann die Schaltung einer lokalen Zeitbasis 26A die Differenz zwischen Synchronisierungswerten von der Schaltung einer globalen Zeitbasis 20 empfangen und kann konfiguriert sein, den nächsten Synchronisierungswert lokal zu erzeugen, indem die Differenz zum vorherigen Wert addiert wird.
  • Unter Hinwendung zu 3 wird nun ein Blockdiagramm einer bestimmten Ausführungsform der Schaltung einer globalen Zeitbasis 20 gezeigt. In der Ausführungsform von 3 schließt die Schaltung einer globalen Zeitbasis 20 eine Steuerschaltung 50, ein Register eines nächsten Synchronisierungswertes 52, ein Register einer globalen Zeitbasis 54, ein Inkrementregister 56 und ein Synchronisierungsinkrementregister 58 ein. Die Steuerschaltung 50 ist an den Rt_clk-Eingang, den Fr_clk-Eingang und die Schnittstelle einer globalen Zeitbasis zu den Schaltungen einer lokalen Zeitbasis 26A bis 26D gekoppelt.
  • Die Steuerschaltung 50 ist ferner mit dem Register eines nächsten Synchronisierungswertes 52, dem Register einer globalen Zeitbasis 54, dem Inkrementregister 56 und dem Synchronisierungsinkrementregister 58 gekoppelt.
  • Ähnlich der vorstehenden Erläuterung für die Schaltung einer lokalen Zeitbasis 26A kann die Steuerschaltung 50 konfiguriert sein, das Register einer globalen Zeitbasis 54 abhängig von einer Sättigung beim nächsten Zeitbasissynchronisierungswert („nächsten Synchronisierungswert“) im Register 52 zu inkrementieren. Die Größe des Inkrements kann zum Beispiel in das Inkrementregister 56 programmiert werden. Die Steuerschaltung 50 kann das Inkrement zur derzeitigen globalen Zeitbasis addieren und das Ergebnis (beim nächsten Synchronisierungswert gesättigt) in das Register einer globalen Zeitbasis 54 schreiben. In anderen Ausführungsformen ist das Register einer globalen Zeitbasis 54 unter Umständen nicht bereitgestellt. Wenn zum Beispiel alle Komponenten, die auf die Zeitbasis zugreifen, Zugriff auf eine Schaltung einer lokalen Zeitbasis 26A bis 26D haben, wird das Register einer globalen Zeitbasis 54 unter Umständen nicht benötigt. Stattdessen kann die Schaltung einer globalen Zeitbasis 20 für eine Synchronisierung der lokalen Zeitbasen als Reaktion auf den Rt_clk zuständig sein. In einer Ausführungsform kann die Steuerschaltung 50 den nächsten Synchronisierungswert als Reaktion auf ein Synchronisierungsereignis erzeugen, indem das Synchronisierungsinkrement aus dem Register 58 zu dem derzeitigen Inhalt des Registers eines nächsten Synchronisierungswertes 52 addiert wird und das Ergebnis in das Register eines nächsten Synchronisierungswertes 52 geschrieben wird. Das Synchronisierungsinkrement kann in das Synchronisierungsinkrementregister 58 programmiert werden und kann vom Verhältnis der Frequenzen des Fr_clk und des Rt_clk abhängen. Die Steuerschaltung 50 kann konfiguriert sein, den nächsten Synchronisierungswert über die Schnittstelle einer globalen Zeitbasis während der Periode zwischen Synchronisierungsereignissen an die Schaltungen einer lokalen Zeitbasis 26A bis 26D zu übermitteln, wie vorstehend in Hinsicht auf die Schaltung einer lokalen Zeitbasis 26A beschrieben.
  • 4 ist ein Zeittaktungsdiagramm, das einen Betrieb einer bestimmten Ausführungsform der Schaltungen einer lokalen Zeitbasis 26A bis 26D und der Schaltung einer globalen Zeitbasis 20 veranschaulicht. In 4 sind der Rt_clk (allerdings nicht maßstabsgerecht zum Fr_clk für größere Frequenzverhältnisse) sowie der Fr_clk gezeigt. Bei der Synchronisierungszeit kann es sich um den nächsten Synchronisierungswert im Register eines nächsten Synchronisierungswertes 56 in der Schaltung einer globalen Zeitbasis 50 handeln. Somit kann sich die Synchronisierungszeit bei der derzeitigen ansteigenden Rt_clk-Flanke in den nächsten Synchronisierungswert ändern (gültig für die nachfolgende ansteigende Rt_clk-Flanke).
  • Somit ändert sich die Synchronisierungszeit von N in N+M (wobei M das Synchronisierungsinkrement im Synchronisierungsinkrementregister 58 ist) in der ersten Periode des Rt_clk in 4, dann N+2M in der zweiten Periode und N+3M in der dritten Periode. Als Reaktion auf die abfallenden Flanken des Rt_clk kann die Schaltung einer globalen Zeitbasis 20 die Synchronisierungszeit an die Schaltungen einer lokalen Zeitbasis 26A bis 26D übermitteln, und somit kann sich der nächste Synchronisierungswert wie in 4 gezeigt (der nächste Synchronisierungswert im Register 42 in den Schaltungen einer lokalen Zeitbasis 26A bis 26D) annähernd in der Mitte der Rt_clk-Periode aktualisieren.
  • Die globalen Zeitbasiswerte und die lokalen Zeitbasiswerte sind ebenfalls in jeder Periode gezeigt. Am Beginn der ersten gezeigten Periode (gestrichelte Linie 60) sind beide Zeitbasen auf N synchronisiert. In der ersten Taktperiode kann der Fr_clk nachlaufen, und somit sind am Ende der Periode (gestrichelte Linie 62) die Zeitbasen unter dem nächsten Synchronisierungswert (z. B. N+M-x für die globale Zeitbasis und N+M-y für die lokale Zeitbasis). Die globale und die lokale Zeitbasis können aufgrund unterschiedlicher Taktquellen für den Fr_clk oder anderer Schwankungen im Fr_clk unterschiedlich sein (z. B. aufgrund eines nicht ausgeglichenen Taktbaums für den Fr_clk oder anderer lokaler Schwankungen). In anderen Fällen können x und y gleich sein.
  • Die Schaltung einer globalen Zeitbasis 20 und die Schaltungen einer lokalen Zeitbasis 26A bis 26D können den nächsten Synchronisierungswert als Reaktion auf das Synchronisierungsereignis laden (vor dem Aktualisieren des nächsten Synchronisierungswertes für die folgende Periode), und somit bewegen sich sowohl die globale Zeitbasis als auch die lokale Zeitbasis am Start der zweiten Periode zu N+M. In der zweiten Periode kann der Fr_clk schneller arbeiten als erwartet, und somit können die globale Zeitbasis und die lokale Zeitbasis bei N+2M bis zum Ende der zweiten Periode (z. B. gestrichelte Linie 64) gesättigt sein.
  • Es wird festgehalten, dass das Zeittaktungsdiagramm von 4 lediglich beispielhaft ist, um sowohl Sättigung als auch Laden des Synchronisierungswertes zu veranschaulichen. Im tatsächlichen Betrieb können benachbarte Perioden oft dasselbe Verhalten aufweisen (z. B. Sättigung oder Laden) und wechseln weniger häufig in die gegenteilige Synchronisierung.
  • 5 ist ein Flussbild, das den Betrieb einer Ausführungsform der Schaltungen einer lokalen Zeitbasis 26A bis 26D (und genauer der Steuerschaltung 40 in der Ausführungsform von 2) veranschaulicht. Obwohl die Blöcke der Einfachheit des Verständnisses wegen in einer bestimmten Reihenfolge gezeigt sind, können andere Reihenfolgen verwendet werden. Blöcke können in der Schaltlogik kombinatorischer Logik in der Steuerschaltung 40 parallel durchgeführt werden. Blöcke, Kombinationen von Blöcken und/oder das Flussbild als Ganzes können über mehrere Taktzyklen geleitet werden. Die Steuerschaltung 40 kann konfiguriert sein, den in 5 gezeigten Betrieb zu implementieren.
  • Wenn der nächste Synchronisierungswert von der Schaltung einer globalen Zeitbasis 20 kommend empfangen wird (Entscheidungsblock 70, „Ja“-Zweig), kann die Steuerschaltung 40 konfiguriert sein, den nächsten Synchronisierungswert im Register eines nächsten Synchronisierungswertes 42 zu erfassen (Block 72). Zum Beispiel kann, wie vorstehend erwähnt, die Schaltung einer globalen Zeitbasis 20 den nächsten Synchronisierungswert als einen seriellen Bitstrom bei der Fr_clk-Taktrate übermitteln. In solch einer Ausführungsform kann das Erfassen des nächsten Synchronisierungswertes ein Verschieben der seriellen Daten in das Register eines nächsten Synchronisierungswertes 42 einschließen. Der nächste Synchronisierungswert kann vom Beginn der Synchronisierungsperiode bis zu dem Zeitpunkt, an dem die Daten im Register 42 erfasst wurden, ungültig sein.
  • Wenn die ansteigende Flanke des Fr_clk-Taktes erfasst wird (Entscheidungsblock 74, „Ja“-Zweig) und entweder der nächste Synchronisierungswert ungültig ist (Entscheidungsblock 76, „Nein“-Zweig) oder der nächste Synchronisierungswert gültig ist (Entscheidungsblock 76, „Ja“-Zweig) und der lokale Zeitbasiswert den nächsten Synchronisierungswert nicht erreicht hat (Entscheidungsblock 78, „Nein“-Zweig), kann die Steuerschaltung 40 konfiguriert sein, die lokale Zeitbasis im Register 44 zu aktualisieren (Block 80). Genauer kann in einer Ausführungsform die Aktualisierung ein Inkrement des Wertes im Register 44 um den Inkrementwert im Register 46 darstellen. Wenn andererseits die ansteigende Flanke des Fr_clk-Taktes erfasst wird (Entscheidungsblock 74, „Ja“-Zweig), der nächste Synchronisierungswert gültig ist (Entscheidungsblock 76, „Ja“-Zweig) und der lokale Zeitbasiswert den nächsten Synchronisierungswert erreicht hat (Entscheidungsblock 78, „Ja“-Zweig), kann die Steuerschaltung 40 konfiguriert sein, die lokale Zeitbasis im Register 44 beim nächsten Synchronisierungswert zu sättigen (Block 82).
  • Wenn ein Synchronisierungsereignis durch die Schaltung einer globalen Zeitbasis 20 signalisiert wird (Entscheidungsblock 84, „Ja“-Zweig), kann die Steuerschaltung 40 konfiguriert sein, den nächsten Synchronisierungswert in die lokale Zeitbasis zu laden, wenn die lokale Zeitbasis nicht bereits gesättigt ist (Block 86). Da die Sättigung beim nächsten Synchronisierungswert erfolgt, kann das Laden unabhängig vom Inhalt der lokalen Zeitbasis zum Zeitpunkt des Synchronisierungsereignisses durchgeführt werden. Wenn die lokale Zeitbasis gesättigt ist, befindet sie sich bereits beim nächsten Synchronisierungswert, und somit ist kein Laden erforderlich, wenngleich das Laden trotzdem durchgeführt werden kann.
  • 6 ist ein Flussbild, das den Betrieb einer bestimmten Ausführungsform der Schaltung einer globalen Zeitbasis 20 (und genauer der Steuerschaltung 50 in der Ausführungsform von 3) veranschaulicht. Obwohl die Blöcke der Einfachheit des Verständnisses wegen in einer bestimmten Reihenfolge gezeigt sind, können andere Reihenfolgen verwendet werden. Blöcke können in der Schaltlogik kombinatorischer Logik in der Steuerschaltung 50 parallel durchgeführt werden. Blöcke, Kombinationen von Blöcken und/oder das Flussbild als Ganzes können über mehrere Taktzyklen geleitet werden. Die Steuerschaltung 50 kann konfiguriert sein, den in 6 gezeigten Betrieb zu implementieren.
  • Wenn die abfallende Flanke des Rt_clk erfasst wird (Entscheidungsblock 90, „Ja“-Zweig), kann die Steuerschaltung 50 konfiguriert sein, den nächsten Synchronisierungswert im Register eines nächsten Synchronisierungswertes 52 an die Schaltungen einer lokalen Zeitbasis 26A bis 26D zu übermitteln (Block 92). Zum Beispiel kann, wie vorstehend erwähnt, die Schaltung einer globalen Zeitbasis 20 den nächsten Synchronisierungswert als einen seriellen Bitstrom bei der Fr_clk-Taktrate übermitteln.
  • Wenn die ansteigende Flanke des Fr_clk-Taktes erfasst wird (Entscheidungsblock 94, „Ja“-Zweig) und der globale Zeitbasiswert den nächsten Synchronisierungswert nicht erreicht hat (Entscheidungsblock 96, „Nein“-Zweig), kann die Steuerschaltung 50 konfiguriert sein, die globale Zeitbasis im Register 54 zu aktualisieren (Block 98). Genauer kann in einer Ausführungsform die Aktualisierung ein Inkrement des Wertes im Register 54 um den Inkrementwert im Register 56 darstellen. Wenn andererseits die ansteigende Flanke des Fr_clk-Taktes erfasst wird (Entscheidungsblock 94, „Ja“-Zweig) und der globale Zeitbasiswert den nächsten Synchronisierungswert erreicht hat (Entscheidungsblock 96, „Ja“-Zweig), kann die Steuerschaltung 50 konfiguriert sein, die globale Zeitbasis im Register 54 beim nächsten Synchronisierungswert zu sättigen (Block 100).
  • Wenn die ansteigende Flanke des Rt_clk erfasst wird (Entscheidungsblock 102, „Ja“-Zweig) tritt ein Synchronisierungsereignis auf. Die Steuerschaltung 50 kann konfiguriert sein, den nächsten Synchronisierungswert in die globale Zeitbasis zu laden, wenn die globale Zeitbasis nicht bereits gesättigt ist (Block 104). Da die Sättigung beim nächsten Synchronisierungswert erfolgt, kann das Laden unabhängig vom Inhalt der globalen Zeitbasis zum Zeitpunkt des Synchronisierungsereignisses durchgeführt werden. Die Steuerschaltung 50 kann zudem konfiguriert sein, den Schaltungen einer lokalen Zeitbasis 26A bis 26D das Synchronisierungsereignis zu signalisieren (Block 106). Zusätzlich kann die Steuerschaltung 50 konfiguriert sein, den nächsten Synchronisierungswert im Register 52 zu aktualisieren, indem der derzeitige Wert zum Synchronisierungsinkrement aus dem Register 58 addiert wird (Block 108).
  • 7 ist ein Flussbild, das eine Initialisierung der globalen und lokalen Zeitbasen für eine bestimmte Ausführungsform (und genauer für die Steuerschaltungen 40 und 50 für die Ausführungsformen von 2 bzw. 3) veranschaulicht. Obwohl die Blöcke der Einfachheit des Verständnisses wegen in einer bestimmten Reihenfolge gezeigt sind, können andere Reihenfolgen verwendet werden. Blöcke können in der Schaltlogik kombinatorischer Logik in den Steuerschaltungen 40 und 50 parallel durchgeführt werden. Blöcke, Kombinationen von Blöcken und/oder das Flussbild als Ganzes können über mehrere Taktzyklen geleitet werden. Die Steuerschaltungen 40 und 50 können konfiguriert sein, den in 7 gezeigten Betrieb zu implementieren.
  • Die Schaltung einer globalen Zeitbasis 20 kann ein Teil der Always-on-Komponente 16 sein und kann somit auf Grundlage der Zurücksetzfreigabe an die Always-on-Komponente 16 zurückgesetzt werden. Insbesondere, wenn Strom nach einer Zeitdauer ohne Strom zuerst an das SOC 10 geliefert wird, kann die Always-on-Komponente 16 zurückgesetzt werden. Solange dem SOC 10 Strom geliefert wird, kann allgemein die Always-on-Komponente 16 eingeschaltet sein und muss nicht zurückgesetzt werden, selbst wenn andere Abschnitte des SOC 10 ausgeschaltet wurden. Wenn die Always-on-Komponente 16 zurückgesetzt wird und das Zurücksetzen freigegeben wird (Entscheidungsblock 110, „Ja“-Zweig), kann die Steuerschaltung 50 das Register einer globalen Zeitbasis 54 beginnend bei 0 auf Grundlage des Fr_clk aktualisieren (Block 112). Die Aktualisierungen können durchgeführt werden, wie vorstehend in Hinsicht auf 6 beschrieben.
  • Wenn eine andere Komponente im SOC 10 (neben der Always-on-Komponente 16) zurückgesetzt wurde und das Zurücksetzen freigegeben wird (Entscheidungsblock 114, „Ja“-Zweig), kann die Steuerschaltung 40 in der entsprechenden Schaltung einer lokalen Zeitbasis 26A bis 26D beginnen, den nächsten Synchronisierungswert im Register eines nächsten Synchronisierungswertes 42 bei jeder Übermittlung von der Schaltung einer globalen Zeitbasis 20 kommend zu erfassen (Block 116). In Ausführungsformen, in denen der nächste Synchronisierungswert seriell übermittelt wird, ist es jedoch möglich, dass das Zurücksetzen während der Übermittlung freigegeben wird und somit der nächste Synchronisierungswert nicht korrekt erfasst wird. Dementsprechend kann die Steuerschaltung 40 darauf warten, das zweite Synchronisierungsereignis nach der Zurücksetzfreigabe zu erfassen (Block 118) und kann dann den nächsten Synchronisierungswert aus dem nächsten Synchronisierungsregister 42 in das Register einer lokalen Zeitbasis 44 laden (Block 120). Die Steuerschaltung 40 kann dann beginnen, das Register beim Fr_clk-Wert, wie in Hinsicht auf 5 beschrieben, zu aktualisieren (Block 122).
  • Unter Hinwendung zu 8 ist ein Blockdiagramm einer Ausführungsform eines Systems 150 gezeigt. In der veranschaulichten Ausführungsform schließt das System 150 zumindest eine Instanz des SOC 10 ein, gekoppelt mit einer oder mehreren Peripherieeinheiten 154 und einem externen Speicher 12. Eine Energieverwaltungseinheit (PMU) 156 wird bereitgestellt, die dem SOC 10 die Versorgungsspannungen sowie dem Speicher 12 und/oder den Peripherieeinheiten 154 eine oder mehrere Versorgungsspannungen liefert. In manchen Ausführungsformen kann mehr als eine Instanz des SOC 10 eingeschlossen sein (und auch mehr als ein Speicher 12 kann eingeschlossen sein).
  • Die PMU 156 kann generell die Schaltlogik einschließen, um Versorgungsspannungen zu erzeugen, und um diese Versorgungsspannungen für andere Komponenten des Systems bereitzustellen, wie beispielsweise das SOC 10, den Speicher 12, verschiedene Peripherieeinheitenkomponenten 154 außerhalb des Chips, wie z. B. Anzeigevorrichtungen, Bildsensoren, Benutzerschnittstellenvorrichtungen usw. Die PMU 156 kann somit programmierbare Spannungsregler, Logik zum Bilden einer Schnittstelle zum SOC 10 und insbesondere zum SOC PMGR 16 einschließen, um Spannungsanforderungen zu empfangen usw.
  • Die Peripherieeinheiten 154 können jede gewünschte Schaltlogik einschließen, abhängig vom Typ des Systems 150. Zum Beispiel kann in einer Ausführungsform das System 150 eine mobile Vorrichtung (z. B. ein persönlicher digitaler Assistent (PDA), ein Smartphone usw.) sein, und die Peripherieeinheiten 154 können Vorrichtungen für verschiedene Typen von drahtloser Kommunikation einschließen, wie Wi-Fi, Bluetooth, Mobilfunk, globales Positionsbestimmungssystem usw. Die Peripherieeinheiten 154 können auch zusätzlichen Speicher aufweisen, einschließlich RAM-Speicher, Solid-State-Speicher oder Plattenspeicher. Die Peripherieeinheiten 154 können Benutzerschnittstellen-Vorrichtungen, wie beispielsweise einen Anzeigebildschirm, einschließlich Touchscreens oder Multi-Touchscreens, Tastatur- oder andere Eingabevorrichtungen, Mikrofone, Lautsprecher usw., einschließen. In anderen Ausführungsformen kann das System 150 ein beliebiger Typ von Rechensystem sein (z. B. Desktop-Personal-Computer, Laptop, Workstation, Nettop usw.).
  • Der externe Speicher 12 kann jeden beliebigen Speichertyp einschließen. Zum Beispiel kann es sich bei dem externen Speicher 12 um einen SRAM, einen dynamischen RAM (DRAM), wie beispielsweise einen synchronen DRAM (SDRAM), einen Double Data Rate (DDR, DDR2, DDR3 usw.) SDRAM, RAMBUS DRAM, weniger Leistung verbrauchende Versionen des DDR DRAM (z. B. LPDDR, mDDR usw.) usw. handeln. Der externe Speicher 12 kann ein oder mehrere Speichermodule einschließen, an denen die Speichervorrichtungen angebaut sind, wie beispielsweise einzelreihige Speichermodule (SIMMs), zweireihige Speichermodule (DIMMs) usw. Alternativ dazu kann der externe Speicher 12 eine oder mehrere Speichervorrichtungen einschließen, die an dem SOC 10 in einer Chip-auf-Chip- oder Package-auf-Package-Implementierung angebaut sind.
  • Zahlreiche Variationen und Modifikationen werden für den Fachmann ersichtlich, sobald die vorstehende Offenbarung vollständig verstanden ist. Es ist beabsichtigt, dass die folgenden Ansprüche so interpretiert werden, dass alle solchen Variationen und Modifikationen eingeschlossen sind.

Claims (20)

  1. Vorrichtung, umfassend: ein erstes Zeitbasisregister; eine erste Steuerschaltung, die mit dem ersten Zeitbasisregister gekoppelt ist, wobei die erste Steuerschaltung konfiguriert ist: einen ersten Zeitbasiswert in dem ersten Zeitbasisregister als Reaktion auf einen ersten Takt zu inkrementieren; als Reaktion darauf, dass der erste Zeitbasiswert den ersten Wert vor einem Synchronisierungsereignis erreicht, den ersten Zeitbasiswert bei einem ersten Wert zu sättigen; und als Reaktion auf das Synchronisierungsereignis und darauf, dass der erste Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht, den ersten Wert in das erste Zeitbasisregister zu laden; und eine zweite Steuerschaltung, die mit der ersten Steuerschaltung gekoppelt ist, wobei die zweite Steuerschaltung konfiguriert ist: den ersten Wert zu erzeugen; und das Synchronisierungsereignis als Reaktion auf einen zweiten Takt zu erzeugen.
  2. Vorrichtung nach Anspruch 1, ferner umfassend: ein zweites Zeitbasisregister; eine dritte Steuerschaltung, die mit dem zweiten Zeitbasisregister und der zweiten Steuerschaltung gekoppelt ist, wobei die dritte Steuerschaltung konfiguriert ist: einen zweiten Zeitbasiswert in dem zweiten Zeitbasisregister als Reaktion auf einen dritten Takt zu inkrementieren; als Reaktion darauf, dass der zweite Zeitbasiswert den ersten Wert vor dem Synchronisierungsereignis erreicht, den zweiten Zeitbasiswert bei dem ersten Wert zu sättigen; und als Reaktion auf das Synchronisierungsereignis und darauf, dass der zweite Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht, den ersten Wert in das zweite Zeitbasisregister zu laden.
  3. Vorrichtung nach Anspruch 2, wobei der erste Takt und der dritte Takt eine selbe Frequenz aufweisen und wobei der zweite Takt eine zweite Frequenz aufweist, die niedriger ist als dieselbe Frequenz.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei der erste Takt eine erste Frequenz aufweist und wobei der zweite Takt eine zweite Frequenz aufweist, die niedriger ist als die erste Frequenz, und wobei eine Differenz zwischen den ersten Werten in aufeinanderfolgenden Synchronisierungsereignissen von einem Verhältnis der ersten Frequenz zur zweiten Frequenz abhängig ist.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, wobei es sich bei dem Synchronisierungsereignis um eine Flanke des zweiten Taktes handelt.
  6. Vorrichtung nach Anspruch 5, wobei es sich bei der Flanke um eine ansteigende Flanke handelt und wobei die zweite Steuerschaltung konfiguriert ist, den ersten Wert als Reaktion auf eine abfallende Flanke des zweiten Taktes zu übermitteln.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei der erste Takt durch eine erste Taktquelle erzeugt wird und der zweite Takt durch eine zweite Taktquelle erzeugt wird, wobei die erste Taktquelle während der Verwendung einer ersten Schwankung unterliegt und die zweite Taktquelle während der Verwendung einer zweiten Schwankung unterliegt, wobei ein erster Bereich der ersten Schwankung größer ist als ein zweiter Bereich der zweiten Schwankung.
  8. Vorrichtung nach Anspruch 1, ferner umfassend ein drittes Zeitbasisregister, das mit der zweiten Steuerschaltung gekoppelt ist, wobei die zweite Steuerschaltung konfiguriert ist: einen dritten Zeitbasiswert in dem dritten Zeitbasisregister als Reaktion auf den ersten Takt zu inkrementieren; als Reaktion darauf, dass der dritte Zeitbasiswert den ersten Wert vor dem Synchronisierungsereignis erreicht, den dritten Zeitbasiswert bei dem ersten Wert zu sättigen; und als Reaktion auf das Synchronisierungsereignis und darauf, dass der dritte Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht, den ersten Wert in das dritte Zeitbasisregister zu laden.
  9. Integrierte Schaltung, umfassend: eine Mehrzahl von Komponenten, die jeweils eine Schaltung einer lokalen Zeitbasis einschließen, von der die Komponente konfiguriert ist, Zeit zu messen, wobei die Schaltung einer lokalen Zeitbasis eine Instanz des ersten Zeitbasisregisters und der ersten Steuerschaltung der Vorrichtung nach Anspruch 1 ist; und eine Schaltung einer globalen Zeitbasis, die konfiguriert ist, das erste Zeitbasisregister in jeder Schaltung einer lokalen Zeitbasis zu synchronisieren, wobei die Schaltung einer globalen Zeitbasis eine Instanz des zweiten Zeitbasisregisters und der zweiten Steuerschaltung nach Anspruch 1 ist.
  10. Integrierte Schaltung nach Anspruch 9, ferner umfassend eine Takterzeugerschaltung, die konfiguriert ist, den ersten Takt zu erzeugen, und wobei der zweite Takt von einem Eingang in die integrierte Schaltung kommend empfangen wird.
  11. Integrierte Schaltung nach Anspruch 9, wobei der erste Takt eine erste Taktfrequenz aufweist und der zweite Takt eine zweite Taktfrequenz aufweist, die niedriger ist als die erste Taktfrequenz, und wobei das Verhältnis der zweiten Taktfrequenz zur ersten Taktfrequenz eine Differenz in aufeinanderfolgenden nächsten Zeitbasiswerten angibt.
  12. Verfahren, umfassend: Inkrementieren eines ersten Zeitbasiswertes in einem ersten Zeitbasisregister als Reaktion auf einen ersten Takt; Sättigen des ersten Zeitbasiswertes bei einem ersten Wert als Reaktion darauf, dass der erste Zeitbasiswert den ersten Wert vor einem Synchronisierungsereignis erreicht; Laden des ersten Wertes in das erste Zeitbasisregister als Reaktion auf das Synchronisierungsereignis und darauf, dass der erste Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht; Erzeugen des ersten Wertes; und Erzeugen des Synchronisierungsereignisses als Reaktion auf einen zweiten Takt.
  13. Verfahren nach Anspruch 12, ferner umfassend: Inkrementieren eines zweiten Zeitbasiswertes in einem zweiten Zeitbasisregister als Reaktion auf einen dritten Takt; Sättigen des zweiten Zeitbasiswertes bei dem ersten Wert als Reaktion darauf, dass der zweite Zeitbasiswert den ersten Wert vor dem Synchronisierungsereignis erreicht; und Laden des ersten Wertes in das zweite Zeitbasisregister als Reaktion auf das Synchronisierungsereignis und darauf, dass der zweite Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht.
  14. Verfahren nach Anspruch 13, wobei der erste Takt und der dritte Takt eine selbe Frequenz aufweisen und wobei der zweite Takt eine zweite Frequenz aufweist, die niedriger ist als dieselbe Frequenz.
  15. Verfahren nach einem der Ansprüche 12 bis 14, wobei der erste Takt eine erste Frequenz aufweist und wobei der zweite Takt eine zweite Frequenz aufweist, die niedriger ist als die erste Frequenz, und wobei eine Differenz zwischen den ersten Werten in aufeinanderfolgenden Synchronisierungsereignissen von einem Verhältnis der ersten Frequenz zur zweiten Frequenz abhängig ist.
  16. Verfahren nach Anspruch 15, wobei es sich bei dem Synchronisierungsereignis um eine erste Flanke des zweiten Taktes handelt.
  17. Verfahren nach Anspruch 16, ferner umfassend ein Übermitteln des ersten Wertes als Reaktion auf eine zweite Flanke des zweiten Taktes, die der ersten Flanke gegenüberliegt, und wobei das Übermitteln als Reaktion auf den ersten Takt durchgeführt wird.
  18. Verfahren nach Anspruch 17, wobei es sich bei der ersten Flanke um die ansteigende Flanke handelt und bei der zweiten Flanke um die abfallende Flanke handelt.
  19. Verfahren nach einem der Ansprüche 12 bis 18, ferner umfassend: Erzeugen des ersten Taktes durch eine erste Taktquelle; und Erzeugen des zweiten Taktes durch eine zweite Taktquelle, wobei die erste Taktquelle einer ersten Schwankung unterliegt und die zweite Taktquelle einer zweiten Schwankung unterliegt, wobei ein erster Bereich der ersten Schwankung größer ist als ein zweiter Bereich der zweiten Schwankung.
  20. Verfahren nach Anspruch 12, ferner umfassend: Inkrementieren eines dritten Zeitbasiswertes in einem dritten Zeitbasisregister als Reaktion auf den ersten Takt; Sättigen des dritten Zeitbasiswertes bei dem ersten Wert als Reaktion darauf, dass der dritte Zeitbasiswert den ersten Wert vor einem Synchronisierungsereignis erreicht; und Laden des ersten Wertes in das dritte Zeitbasisregister als Reaktion auf das Synchronisierungsereignis und darauf, dass der dritte Zeitbasiswert den ersten Wert nicht vor dem Synchronisierungsereignis erreicht.
DE112016005671.0T 2015-12-10 2016-09-15 Zeitbasissynchronisierung Pending DE112016005671T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/965,073 US9864399B2 (en) 2015-12-10 2015-12-10 Timebase synchronization
US14/965,073 2015-12-10
PCT/US2016/051967 WO2017099861A1 (en) 2015-12-10 2016-09-15 Timebase synchronization

Publications (1)

Publication Number Publication Date
DE112016005671T5 true DE112016005671T5 (de) 2018-08-23

Family

ID=57047313

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016005671.0T Pending DE112016005671T5 (de) 2015-12-10 2016-09-15 Zeitbasissynchronisierung

Country Status (6)

Country Link
US (2) US9864399B2 (de)
JP (1) JP6554615B2 (de)
KR (1) KR102008634B1 (de)
CN (2) CN112817370B (de)
DE (1) DE112016005671T5 (de)
WO (1) WO2017099861A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864399B2 (en) * 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization
FR3052571B1 (fr) * 2016-06-08 2018-06-29 Idemia France Procede de calibration d'une horloge d'un circuit de carte a puce, et systeme associe
US10031992B2 (en) * 2016-12-23 2018-07-24 Movellus Circuits, Inc. Concurrently optimized system-on-chip implementation with automatic synthesis and integration
US10530562B2 (en) * 2017-04-21 2020-01-07 Arm Limited Correlating local time counts of first and second integrated circuits
CN109001970B (zh) * 2017-06-07 2021-09-24 精工爱普生株式会社 计时装置、电子设备以及移动体
EP3902166B1 (de) * 2020-04-21 2022-03-23 TTTech Computertechnik Aktiengesellschaft Fehlertoleranter zeitserver für ein echtzeitcomputersystem
US11366488B1 (en) 2021-05-20 2022-06-21 Nxp Usa, Inc. Timer for use in an asymmetric mutli-core system
SE2150797A1 (en) * 2021-06-22 2022-12-23 Bombardier Transp Gmbh A pulse width modulation system and a method in relation thereto
US11625064B2 (en) * 2021-08-16 2023-04-11 Qualcomm Incorporated Systems and methods for sleep clock edge-based global counter synchronization in a chiplet system
US11720520B2 (en) 2021-09-14 2023-08-08 Apple Inc. Universal serial bus time synchronization
US11757610B1 (en) * 2022-04-18 2023-09-12 Nxp B.V. Low phase noise clock recovery over a data connection
US12050486B1 (en) 2022-06-06 2024-07-30 Amazon Technologies, Inc. System halt support for synchronization pulses
US11936393B1 (en) * 2022-06-06 2024-03-19 Amazon Technologies, Inc. Cooperative timing alignment using synchronization pulses

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295257A (en) 1991-05-24 1994-03-15 Alliedsignal Inc. Distributed multiple clock system and a method for the synchronization of a distributed multiple system
DE4140017C2 (de) 1991-12-04 1995-01-05 Nec Electronics Germany Verfahren zum Betreiben von über einen Datenbus durch seriellen Datenaustausch miteinander kommunizierenden Rechnereinheiten
US5729721A (en) * 1995-11-13 1998-03-17 Motorola, Inc. Timebase synchronization in separate integrated circuits or separate modules
GB9523256D0 (en) * 1995-11-14 1996-01-17 Switched Reluctance Drives Ltd Phase energization controller and method for controlling switched reluctance machines using simple angular position sensors with improved angle interpolation
US6333939B1 (en) * 1998-08-14 2001-12-25 Qualcomm Incorporated Synchronization of a low power oscillator with a reference oscillator in a wireless communication device utilizing slotted paging
EP1208412A2 (de) * 1999-02-26 2002-05-29 Reveo, Inc. Globale zeitsynchronisierte systeme, geräte und verfahren
DE10000303B4 (de) * 2000-01-05 2011-09-29 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
JP3748204B2 (ja) * 2000-11-27 2006-02-22 三菱電機株式会社 周期制御同期システム
US6801876B2 (en) 2000-12-08 2004-10-05 Caterpillar Inc Method and apparatus of managing time for a processing system
DE10255685B3 (de) * 2002-11-28 2004-07-29 Infineon Technologies Ag Taktsynchronisationsschaltung
US7058838B2 (en) 2002-12-17 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
JP2004328512A (ja) * 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd 同期処理装置及び同期処理方法
US7602874B2 (en) * 2006-01-26 2009-10-13 International Business Machines Corporation Providing accurate time-based counters for scaling operating frequencies of microprocessors
US8190942B2 (en) 2008-07-02 2012-05-29 Cradle Ip, Llc Method and system for distributing a global timebase within a system-on-chip having multiple clock domains
EP2329333A4 (de) * 2008-08-21 2014-12-03 Chronologic Pty Ltd Verfahren und vorrichtung für synchronisierung und taktung
US8724665B2 (en) * 2009-07-20 2014-05-13 Synopsys, Inc. Pseudo-synchronous time division multiplexing
US8977881B2 (en) * 2011-08-12 2015-03-10 Apple Inc. Controller core time base synchronization
US8498373B2 (en) * 2011-09-20 2013-07-30 Arm Limited Generating a regularly synchronised count value
JP5886015B2 (ja) * 2011-12-01 2016-03-16 ラピスセミコンダクタ株式会社 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法
US8897324B2 (en) * 2012-02-01 2014-11-25 Microchip Technology Incorporated Timebase peripheral
US8892933B2 (en) * 2012-04-23 2014-11-18 Analog Devices, Inc. Synchronization of multiple signal converters by transmitting signal conversion data and receiving unique correction values for the respective counters through the same data interface pins
US9864399B2 (en) * 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization

Also Published As

Publication number Publication date
KR102008634B1 (ko) 2019-08-07
CN108369434A (zh) 2018-08-03
KR20180079376A (ko) 2018-07-10
JP6554615B2 (ja) 2019-07-31
US20170168520A1 (en) 2017-06-15
CN108369434B (zh) 2021-03-09
WO2017099861A1 (en) 2017-06-15
CN112817370A (zh) 2021-05-18
CN112817370B (zh) 2024-07-09
US9864399B2 (en) 2018-01-09
US10048720B2 (en) 2018-08-14
US20180107240A1 (en) 2018-04-19
JP2019504423A (ja) 2019-02-14

Similar Documents

Publication Publication Date Title
DE112016005671T5 (de) Zeitbasissynchronisierung
DE60223555T2 (de) Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
DE112015002522B4 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
US9223383B2 (en) Guardband reduction for multi-core data processor
DE102011076895A1 (de) Cachekohärenzprotokoll für persistente Speicher
DE112020004583T5 (de) Adaptiver digitaler on-chip-leistungsschätzer
DE102013111229A1 (de) Anwendungsprozessor, Mobiltelefonvorrichtung mit demselben und Verfahren zum Auswählen eines Taktsignals für einen Anwendungsprozessor
US11683149B2 (en) Precise time management using local time base
DE102016006402A1 (de) Persistente commit-prozessoren, verfahren, systeme und befehle
DE102010013228A1 (de) Verfahren und System, um die Operationen eines registrierten Speichermoduls zu verbessern
DE102012215439A1 (de) Verfahren für Energie-optimierte Mehrprozessor-Synchronisation
KR20190134693A (ko) 아키텍처화된 상태 유지
DE102013222369A1 (de) Ein Matrix-Phasendetektor
DE112017004922T5 (de) Techniken für Zeitstempel mit geringem Stromverbrauch und hoher Genauigkeit
DE112020002809T5 (de) Einrichtung und verfahren zum aufrechterhalten stabiler taktung
US11226752B2 (en) Filtering memory calibration
DE112022002956B4 (de) Multi-die-leistungssynchronisation
DE102018001896A1 (de) Hardwarebeschleuniger für das Auswählen von Datenelementen
DE102016109387A1 (de) Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
US11687115B2 (en) Precise time management for peripheral device using local time base
DE112020003878T5 (de) Energieverwaltungseinheit mit dashboard mit push-modell zum empfangen von sensordaten
DE102022105671A1 (de) Phasenregelkreis-unterstützte schnellstartvorrichtung und schnellstartverfahren
DE102015109558A1 (de) Speichermechanismus zum bereitstellen von semaphor-funktionalität in einer mehrfach-master-verarbeitungsumgebung
US20240004560A1 (en) Efficient memory power control operations
DE112022004199T5 (de) Leistungsverwaltung basierend auf der Begrenzung einer Hardware-erzwungenen Leistungssteuerung

Legal Events

Date Code Title Description
R012 Request for examination validly filed