-
Die vorliegende Offenbarung betrifft elektronische Schaltungen.
-
Eine komplexe elektronische Schaltung wie etwa ein System-on-Chip (SoC) kann mehrere Taktdomänen aufweisen, d. h. mehrere Schaltungsteile, wobei jeder Teil mit seinem eigenen Taktsignal oder seinen eigenen Taktsignalen versorgt wird. Der Informationstransfer in digitaler Logik kann entweder zwischen Logik, die sich in derselben Taktdomäne befindet, oder zwischen unterschiedlichen Taktdomänengebieten stattfinden. Um synchrone Kommunikation zu gewährleisten, muss die Phasenbeziehung zwischen den Taktdomänen konstant bleiben. Falls jedoch zum Beispiel eine ionisierende Strahlung auf empfindliche Takterzeugungskomponenten innerhalb einer Taktdomäne treffen würden, ist es möglich, dass dies die Phasenbeziehung zwischen dieser Taktdomäne und anderen Taktdomänen asynchron machen würde. Falls dies auftreten würde, würde eine synchrone Kommunikation zwischen dieser Domäne und den anderen Domänen nicht garantiert sein, und dies könnte potenziell zu einem vollständigen Systemausfall führen. Daher sind Ansätze zum Detektieren einer derartigen Situation wünschenswert, um geeignete Gegenmaßnahmen zu starten.
-
Gemäß verschiedenen Ausführungsformen ist eine elektronische Schaltung bereitgestellt, die Folgendes beinhaltet: mehrere Taktgeneratoren, wobei jeder Taktgenerator dazu ausgelegt ist, einen Zählerwert zu speichern, einen Referenztakt zu empfangen, den Zählerwert gemäß dem Referenztakt zu ändern und mindestens ein Taktsignal basierend auf dem Zählerwert zu erzeugen, einen Komparator, der dazu ausgelegt ist, den Zählerwert für jeden von mindestens zwei der mehreren Taktgeneratoren zu empfangen und die empfangenen Zählerwerte zu vergleichen, und eine Fehlerbearbeitungsschaltung, die dazu ausgelegt ist, eine Fehlerbearbeitung basierend auf dem Ergebnis des Vergleichs zu initiieren.
-
In den Zeichnungen verweisen gleiche Bezugszeichen allgemein auf die gleichen Teile in den verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird allgemein Wert auf eine Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen gilt:
- 1 veranschaulicht die Erzeugung und Verwendung mehrerer Taktdomänen in einem Chip und potenzielle Sicherheitsprobleme für eine synchrone Kommunikation zwischen mehreren Domänen.
- 2 zeigt einen lokalen Taktgenerator.
- 3 zeigt einen Chip mit mehreren Taktdomänen und einem zentralen Phasenkomparator.
- 4 zeigt einen Chip mit mehreren Taktdomänen und lokalen Komparatoren.
- 5 zeigt einen lokalen Taktgenerator mit einem lokalen Komparator.
- 6 zeigt eine elektronische Schaltung.
-
Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen, die spezielle Einzelheiten und Aspekte dieser Offenbarung zur Veranschaulichung zeigen, in denen die Erfindung ausgeübt werden kann. Andere Aspekte können genutzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
1 veranschaulicht die Erzeugung und Verwendung mehrerer Taktdomänen 101 bis 106 in einem Chip 100 und potenzielle Sicherheitsprobleme für synchrone Kommunikation zwischen mehreren Domänen.
-
Der Chip 100 beinhaltet einen Referenzfrequenzgenerator 107. Jede Taktdomäne 101 bis 106 weist einen jeweiligen assoziierten lokalen Taktgenerator 108 auf. Der Referenzfrequenzgenerator 107 versorgt jeden lokalen Taktgenerator 108 mit einem Referenzfrequenzsignal (oder Referenztaktsignal) und jeder lokale Taktgenerator 108 erzeugt ein oder mehrere lokale Taktsignale 109 für seine assoziierte Taktdomäne 101 bis 106. Beispielsweise beinhaltet jede Taktdomäne 101 bis 106 Logikkomponenten wie etwa Logikgatter, Speicherzellen, Puffer, Inverter usw., die gemäß einem des einen oder der mehreren lokalen Taktsignale arbeiten.
-
Die Erzeugung lokaler Taktsignale durch einen lokalen Taktgenerator ist in 2 veranschaulicht.
-
2 zeigt einen lokalen Taktgenerator 200.
-
Der lokale Taktgenerator 200 beinhaltet einen Zähler 201, der ein Referenztaktsignal (oder Master-Taktsignal) empfängt (z. B. entsprechend dem Referenzfrequenzsignal, das durch den Referenzfrequenzgenerator 107 bereitgestellt wird).
-
Der Zähler 201 speichert einen Zählerwert in einem Zählerwertregister 202 und inkrementiert den Zählerwert gemäß dem Referenztaktsignal mittels einer Logik 203 (z. B. eines Addierers, der eine 1 für jeden Taktzyklus des Master-Taktes addiert). Beispielsweise erhöht die Logik 203 den Zählerwert mit jedem Impuls, z. B. jeder steigenden Flanke, des Referenztaktsignals um eins, indem sie den Zählerwert ausliest und den inkrementierten Zählerwert in das Zählerwertregister 202 speichert. Um Überschuss zu vermeiden, kann die Logik 203 dies zyklisch durchführen, z. B. den Zählerwert auf null reduzieren, wenn ein maximaler Zählerwert n durch die Inkrementierung überschritten werden würde (d. h. startet von Neuem mit null oder einem anderen Anfangswert). Der Zähler kann auch ein dekrementierender Zähler sein (der abwärts zählt). Ferner kann der Zähler dazu ausgelegt sein, den Referenztakt zu teilen, d. h. zum Beispiel den Zählerwert nur mit jedem zweiten Taktzyklus des Referenztaktsignals zu ändern.
-
In Abhängigkeit vom aktuellen Zählerwert gibt der Taktgenerator 200 gewisse Pegel des lokalen Taktsignals 204 aus, zu dessen Erzeugung er ausgelegt ist. In diesem Beispiel ist der Taktgenerator 200 dazu ausgelegt, 16 lokale Taktsignale zu erzeugen und auszugeben. Der Taktgenerator 200 setzt die Pegel des lokalen Taktsignals 204 gemäß einer Nachschlagetabelle 205. Die Tabelle bildet jeden Zählerwert (in diesem Beispiel zwischen 0 und n) zu einer von n+1 16-Bit-Zahlen ab, wobei der Wert eines Bits einer 16-Bit-Zahl den Pegel eines lokalen Taktsignals 204 entsprechend diesem Bit spezifiziert. Beispielsweise ändert das Taktsignal entsprechend dem äußerst rechten Bit seinen Pegel mit jeder Änderung des Zählerwerts und weist somit die höchste Frequenz unter den lokalen Taktsignalen 204 auf.
-
Fehler können auftreten, falls einer der lokalen Taktgeneratoren 108 ausfällt und ein lokales Taktsignal 109 erzeugt, das einen Fehler aufweist, z. B. ihm ein Impuls fehlt, es einen zusätzlichen Impuls aufweist oder eine Phase aufweist, die nicht korrekt ist (z. B. um einige Picosekunden, d. h. eine Zeit (viel) kleiner als die Periode des Taktsignals). In dem in 1 veranschaulichten Beispiel ist das dritte Taktsignal der Taktsignale 109 der fünften Taktdomäne 105 phasenverschoben. Dies kann zum Beispiel aufgrund einer ionisierenden Strahlung 111 passieren, die auf den lokalen Taktgenerator 108 der fünften Taktdomäne 105 trifft, was eine Fehlfunktion des lokalen Taktgenerators verursacht. Beispielsweise trifft die ionisierende Strahlung 111 auf das Register 202 auf und legt ein Bit des Zählerwerts im Register 202 derart um, dass der Zählerwert geändert wird und, wie in 1 veranschaulicht, der Impuls des Taktsignals zu früh ankommt. Fehler können auch durch lokales Leistungsrauschen, Kopplungseffekte usw. verursacht werden.
-
Ein Fehler in einem lokalen Taktsignal in einer Taktdomäne, wie in 1 veranschaulicht, kann (im schlimmsten Fall) zu einem vollständigen Ausfall der elektronischen Schaltung 100 führen, da eine korrekte Kommunikation (synchrone Kommunikation basierend auf den lokalen Taktsignalen 109) zwischen den Taktdomänen 101 bis 106 möglicherweise nicht mehr möglich ist.
-
Eine Möglichkeit zur Vermeidung eines derartigen Problems besteht darin, Phaseninformationen je Taktdomäne zu erfassen und diese Phaseninformationen an einem zentralen Ort zu vergleichen (d. h. mittels einer zentralen Einheit auf dem Chip). Dies ist in 3 veranschaulicht.
-
3 zeigt einen Chip 300 mit mehreren Taktdomänen 301 bis 306 und einem zentralen Phasenkomparator 310.
-
Ähnlich zu dem Chip 100 von 1 beinhaltet der Chip 300 einen Referenzfrequenzgenerator 307, und jede Taktdomäne 301 bis 306 weist einen jeweiligen assoziierten lokalen Taktgenerator 308 auf, der durch den Referenzfrequenzgenerator 307 mit einem Referenzfrequenzsignal versorgt wird. Jeder lokale Taktgenerator 308 erzeugt ein oder mehrere lokale Taktsignale 309 für seine assoziierte Taktdomäne 301 bis 306. Die Taktdomänen können, wie oben erwähnt, Logikkomponenten oder Speicherkomponenten (mittels Halbleiterelementen wie etwa Feldeffekttransistoren, z. B. in CMOS-Technologie (komplementärer Metalloxidhalbleiter), implementiert) umfassen.
-
Der zentrale Phasenkomparator 310 sammelt Phaseninformationen der lokalen Taktsignale 309 und vergleicht die Phasen der Taktsignale 309, um auf Phasendifferenzen zwischen den Taktdomänen 301 bis 306 zu prüfen. Falls die Phasen der lokalen Taktsignale nicht vorbestimmte Kriterien erfüllen (z. B. sich zu sehr unterscheiden), kann der zentrale Phasenkomparator 310 eine Fehlerbearbeitungsprozedur (z. B. Ausgeben eines Alarmsignals) initiieren. Es sollte angemerkt werden, dass ein Fehler (d. h. eine Verletzung der vorbestimmten Kriterien) darin bestehen kann, dass sich die Taktsignale zu sehr unterscheiden, was bedeutet, dass sich die Positionen der Flanken der Impulse (um mehr als eine gewisse Schwelle) unterscheiden, es aber keine Impulse in einem Taktsignal gibt, die nicht dem anderen vorhanden sind, d. h. die Flanken unterscheiden sich um viel weniger als die Periode der Taktsignale. Diese Art von Fehler wird auch als ein Versatz der Taktsignale bezeichnet. Eine andere Art von Fehler besteht darin, dass es im ersten Taktsignal einen Impuls gibt, der aufgrund eines zusätzlichen Impulses im ersten Taktsignal oder eines fehlenden Impulses im zweiten Taktsignal nicht im zweiten Taktsignal vorhanden ist. Ein Komparator, der nur darauf reagiert, dass der Versatz über einer Schwelle liegt, wird möglicherweise nicht auf einen derartigen Fehler reagieren, da die Flanken der Impulse (die in beiden Taktsignalen vorhanden sind) perfekt übereinstimmen können.
-
Der Ansatz von 3 erfordert eine synchrone Übertragung der Phaseninformationen zu einem zentralen Ort. Falls die Übertragungsentfernung mehr als eine Taktperiode erfordert, kann dies durch Pipelining der Daten mit Datenregistern erzielt werden. Falls es eine erhebliche Datenmenge gibt, kann die Anzahl von Datenregistern und Signalleitungen signifikant werden. Die Übertragung der Phaseninformationen zu dem zentralen Ort kann das Durchqueren mehrerer Taktdomänen beinhalten. Die Datenregister müssen dann zuvor in mehrere Taktdomänen platziert werden. Das Pipelining der Daten erhöht jedoch die Latenz zwischen der Erzeugung der Phaseninformationen und ihres Vergleichs. Somit kann es eine relativ große Latenz zwischen der Fehlererzeugung und der Fehlererkennung geben. Des Weiteren ist der Transfer der Daten über mehrere Taktdomänen potenziell problematisch, falls die Phasenbeziehung zwischen den Taktdomänen nicht korrekt ist.
-
Gemäß verschiedenen Ausführungsformen ist daher ein Ansatz basierend auf dem lokalen Vergleichen von Phaseninformationen nur zwischen benachbarten Domänen bereitgestell t.
-
4 zeigt einen Chip 400 mit mehreren Taktdomänen 401 bis 406 und lokalen Komparatoren 410.
-
Ähnlich zu dem Chip 100 von 1 beinhaltet der Chip 400 einen Referenzfrequenzgenerator 407, und jede Taktdomäne 401 bis 406 weist einen jeweiligen assoziierten lokalen Taktgenerator 408 auf, der durch den Referenzfrequenzgenerator 407 mit einem Referenzfrequenzsignal versorgt wird. Jeder lokale Taktgenerator 408 erzeugt ein oder mehrere lokale Taktsignale 409 für seine assoziierte Taktdomäne 401 bis 406.
-
Im Gegensatz zu 3 beinhaltet der Chip 400 einen lokalen Komparator 410 für jedes Paar von benachbarten Taktdomänen 401 bis 406.
-
Der lokale Komparator 410 vergleicht Phaseninformationen der benachbarten Taktdomänen 401 bis 406, zu denen er gehört, und falls er einen Fehler findet, meldet er den Fehler mittels Fehlerinformationen zu einer zentralen Fehlererfassungseinheit 411. Die Phaseninformationen können als Informationen verstanden werden, die die Zeiten definieren, zu denen Impulse in den lokalen Taktsignalen 409 auftreten. Gemäß verschiedenen Ausführungsformen, wie unten beschrieben, kann dies der Zählerwert des Zählers 201 eines lokalen Taktgenerators 408 sein. Da der Zählerwert zum Erzeugen mehrerer lokaler Taktsignale 409 verwendet werden kann, kann die Richtigkeit mehrerer lokaler Taktsignale 409 somit durch das Vergleichen eines einzelnen Werts (des Zählerwerts) zwischen verschiedenen Domänen überwacht werden.
-
Die zentrale Fehlererfassungseinheit 411 agiert als eine Sicherheitsverwaltungseinheit und kann als Reaktion auf die Meldung eines Fehlers von einem (oder mehreren) der lokalen Komparatoren 410 eine Fehlerbearbeitung initiieren. Beispielsweise kann sie den Chip 400 steuern, in einen sicheren Zustand einzutreten, eine oder mehrere Komponenten des Chips zu deaktivieren oder ein Signal, das eine Fehlfunktion des Chips 400 angibt, zu einer anderen Komponente (wie etwa einer zentralen Steuereinheit in einem Fahrzeug) auszugeben.
-
Gemäß verschiedenen Ausführungsformen wird ein lokaler Vergleich von Phaseninformationen nur zwischen benachbarten Domänen durchgeführt. Gemäß verschiedenen Ausführungsformen gibt es zum Beispiel keinen zentralen Komparator wie in 3. Somit sind die Phaseninformationen lokale Daten (d. h. werden lokal verarbeitet) und es ist nicht notwendig, sie über den gesamten Chip z. B. zu einem zentralen Ort zu senden. Somit wird die Latenz des Datenvergleichs bezüglich eines Ansatzes mit zentralem Vergleich, wie in 3 veranschaulicht, verringert. Insbesondere gibt es mit dem Ansatz von 4 keine Notwendigkeit, Daten über den Chip (über potenziell problematische Taktdomänen) zu pipelinen.
-
Gemäß verschiedenen Ausführungsformen ist die Übertragung von Fehlerinformationen von den lokalen Komparatoren 410 zu der zentralen Fehlererfassungseinheit 411 zur globalen Erfassung asynchron. Beispielsweise gibt jeder lokale Komparator einen Fehler mittels einer Fehlernachricht an, die eine Datennachricht ist, die nicht auf den Betrieb lokaler Takte angewiesen ist.
-
Ferner kann der Ansatz von 4 mit einer geringeren Anzahl von Signalleitungen als der Ansatz von 3 implementiert werden. Eine Fehlernachricht zur Übertragung der Fehlerinformationen kann so einfach wie ein Impuls oder ein Flag über eine einzelne Signalleitung sein. Somit können in den Beispielen der 3 und 4 nur 5 Fehlerdatenleitungen zum Übertragen der Fehlerinformationen zur globalen Erfassung in dem Ansatz von 4 verwendet werden, während 6 mal m Leitungen in dem Ansatz von 3 zum Übertragen von m-Bit-Phaseninformationen verwendet werden.
-
Gemäß verschiedenen Ausführungsformen gibt es nur einen paarweisen Schutz. Dies bedeutet, dass jede Taktdomäne nur einen lokalen Komparator 410 mit einer benachbarten Taktdomäne gemeinsam nutzt (anstelle von mehreren oder allen Taktdomänen). In diesem Fall, in dem Beispiel von 4 mit sechs Taktdomänen (und somit drei Taktdomänenpaaren), reichen drei Fehlerleitungen für das Senden der Fehlerinformationen zur zentralen Erfassung (d. h. zentralen Überwachung ) aus.
-
Beispielsweise kann ein Vergleichsschema gemäß einer Ringstruktur verwendet werden. Dies entspricht der Veranschaulichung von 5, bei der ein Zählerwert eingegeben wird und ein Zählerwert ausgegeben wird: beispielsweise vergleicht die vierte Taktdomäne 404 ihren Zählerwert mit dem der ersten Taktdomäne (mit einem jeweiligen Komparator), die erste Taktdomäne 401 vergleicht ihren Zählerwert mit dem Zählerwert der zweiten Taktdomäne 402 und so weiter. Somit weist jede Taktdomäne zwei Nachbarn zum Vergleich auf (stellt ihren Zählerwert aber nur einem Nachbarn bereit).
-
Zum Beispiel gibt es für die vierte Taktdomäne 404 somit einen Vergleich zwischen der vierten Taktdomäne 404 und der sechsten Taktdomäne 406 und zwischen der vierten Taktdomäne 404 und der ersten Taktdomäne 401. Wenn es einen Vergleich von Zählerwerten auf diese Art und Weise gibt und ein Fehler (nur) in der vierten Taktdomäne 404 auftritt, sollte die zentrale Fehlererfassungseinheit eine Nachricht von der ersten Taktdomäne 401, der vierten Taktdomäne 404 und der sechsten Taktdomäne empfangen. Somit kann die zentrale Fehlererfassungseinheit bestimmen, dass der Fehler in der vierten Taktdomäne 404 anstatt in der ersten Taktdomäne 404 und der sechsten Taktdomäne 406 vorhanden ist, da ihre anderen Nachbarn keine Fehlernachricht senden.
-
Gemäß verschiedenen Ausführungsformen sind die Phaseninformationen, die die lokalen Komparatoren 410 zwischen benachbarten Taktdomänen vergleichen, die durch die Zählerwertregister 202 der lokalen Taktgeneratoren 410 gespeicherten Zählerwerte. Ein Fehler, den ein lokaler Komparator 410 detektiert und meldet, würde dann zum Beispiel lauten, dass sich die Zählerwerte lokaler Komparatoren 410 benachbarter Taktdomänen 401 bis 406 unterscheiden, oder, falls ein Offset zwischen den Zählerwerten gesetzt oder erlaubt ist, dass die Differenz (der Offset) zwischen den Zählerwerten lokaler Komparatoren 410 benachbarter Taktdomänen 401 bis 406 nicht wie vorgesehen ist (z. B. ihren vorbestimmten Wert geändert hat).
-
Dieser Ansatz ermöglicht insbesondere, fehlende Impulse zu detektieren, die aufgrund eines falschen Zählerwerts auftreten. Beispielsweise unter der Annahme, dass der Zähler 1, 2, 2, 4 anstelle von 1, 2, 3, 4 zählt. Dies kann aufgrund der Tatsache vorkommen, dass eine ionisierende Strahlung temporär einen Spannungspegel im Zählerregister reduziert, sodass die dritte Zahl als eine 2 anstelle einer 3 interpretiert wird (z. B. wird das niedrigste Bit als 0 anstelle einer 1 ausgelesen). Unter der Annahme, dass das lokale Taktsignal Impulse bei 1 und 3 haben soll, würde in diesem Beispiel ein Impuls fehlen.
-
Ein Komparator, der bestimmt, ob es einen Versatz zwischen Taktflanken zwischen benachbarten Taktdomänen gibt, wird einen Fehler in diesem Fall möglicherweise nicht erkennen, da die Phase der (bestehenden) Impulse zwischen den benachbarten Taktdomänen genau dieselbe sein kann.
-
5 zeigt einen lokalen Taktgenerator 500 mit einem lokalen Komparator 503.
-
Der lokale Taktgenerator 500 kann zum Implementieren entweder des lokalen Taktgenerators 408 für eine Taktdomäne 401 bis 406 oder einen lokalen Komparator 410 zu einer der benachbarten Taktdomänen 401 bis 406 verwendet werden.
-
Der lokale Komparator 503 muss nicht notwendigerweise in einem der lokalen Taktgeneratoren 408 wie im Beispiel von 5 integriert sein. Er kann auch extern zu den lokalen Taktgeneratorem bereitgestellt sein, z. B. an einer Grenze der Taktdomänen. Ferner kann ein lokaler Taktgenerator 408 auch ohne einen darin integrierten lokalen Komparator 510 bereitgestellt sein.
-
Ähnlich zu dem Beispiel von 2 beinhaltet der lokale Taktgenerator 500 einen Zähler 501 und erzeugt ein oder mehrere lokale Taktsignale 502 basierend auf dem Zählerwert z. B. unter Verwendung einer Nachschlagetabelle, wie mit Bezug auf 2 erläutert, oder durch einen anderen Mechanismus.
-
Der im Zähler 501 gespeicherte Zählerwert wird dem lokalen Komparator 503 geliefert. Ferner liefert eine erste Zählerwertsignalleitung 504, die mit dem lokalen Taktgenerator 410 einer benachbarten Taktdomäne verbunden ist, den Zählerwert des lokalen Taktgenerators der benachbarten Taktdomäne zu dem lokalen Komparator 503. Ähnlich kann eine zweite Zählerwertsignalleitung 505 den Zählerwert des Zählers 501 zu einem anderen lokalen Komparator liefern (der z. B. in einem lokalen Taktgenerator einer anderen benachbarten Taktdomäne für einen Taktvergleich mit der anderen benachbarten Taktdomäne integriert ist).
-
Der lokale Komparator 503 ist dazu ausgelegt, den Zählerwert des Zählers 501 mit dem Zählerwert des lokalen Taktgenerators der benachbarten Taktdomäne zu vergleichen und ein Fehlersignal basierend auf dem Ergebnis des Vergleichs auszugeben. Beispielsweise gibt der lokale Komparator 503 eine Fehlernachricht aus, die einen Fehler angibt, falls der Zählerwert des Zählers 501 nicht mit dem Zählerwert des lokalen Taktgenerators der benachbarten Taktdomäne übereinstimmt, z. B. sich voneinander unterscheiden oder sich um mehr oder weniger als einen vorbestimmten Offset unterscheiden (im Allgemeinen, ob sie ein vorbestimmtes Kriterium bezüglich zueinander nicht erfüllen). Es sollte angemerkt werden, dass eine Bestimmung, ob zwei verglichene Zählerwerte „übereinstimmen“, d. h., ob der Vergleich ein positives Ergebnis aufweist, Berechnungen wie etwa Skalierung, da die Zählerwerte bezüglich zueinander unterschiedlich skaliert sein können, Berücksichtigung eines Offsets (der beispielsweise zwischen den Zählerwerten vorhanden sein soll), usw. beinhalten kann.
-
Zusammengefasst ist gemäß verschiedener Ausführungsformen eine elektronische Schaltung wie in 6 veranschaulicht bereitgestellt.
-
6 zeigt eine elektronische Schaltung 600.
-
Die elektronische Schaltung 600 beinhaltet mehrere Taktgeneratoren 601, wobei jeder Taktgenerator 601 dazu ausgelegt ist, einen Zählerwert zu speichern, einen Referenztakt zu empfangen, den Zählerwert gemäß dem Referenztakt zu ändern und mindestens ein Taktsignal basierend auf dem Zählerwert zu erzeugen.
-
Die elektronische Schaltung 600 beinhaltet ferner einen Komparator 602, der dazu ausgelegt ist, den Zählerwert für mindestens zwei der mehreren Taktgeneratoren 601 zu empfangen und die empfangenen Zählerwerte zu vergleichen, und eine Fehlerbearbeitungsschaltung 603, die dazu ausgelegt ist, eine Fehlerbearbeitung basierend auf dem Ergebnis des Vergleichs zu initiieren.
-
Gemäß verschiedenen Ausführungsformen wird mit anderen Worten die Richtigkeit eines oder mehrerer erzeugter Taktsignale lokal durch einen Vergleich von Zählerwerten basierend darauf, welche Taktsignale erzeugt werden, zwischen (z. B. benachbarten) Taktdomänen überwacht. Die lokalen Taktgeneratoren, deren Zählerwerte verglichen werden, müssen nicht von benachbarten Taktdomänen stammen, es kann aber wünschenswert sein, Zählerwerte lokaler Taktgeneratoren zu vergleichen, die zu Taktdomänen gehören, die sich auf der elektronischen Schaltung nahe zueinander befinden, um die Notwendigkeit zu vermeiden, Zählerwerte über lange Entfernungen über die elektronische Schaltung zu übertragen. Die Fehlerbearbeitungsschaltung kann eine zentrale Fehlerbearbeitungsschaltung sein, die dazu ausgelegt ist, die Ergebnisse der Vergleiche mehrerer Komparatoren zu empfangen. Die Fehlerbearbeitungsschaltung kann dazu ausgelegt sein, eine Fehlerbearbeitung (z. B. Ausgabe eines Alarmsignals) zu initiieren, falls das Ergebnis irgendeines Vergleichs einen Fehler angibt. Somit können die Komparatoren und die Fehlerbearbeitungsschaltung einen Mehrdomänen-Taktsynchronizitätsprüfer implementieren.
-
Die elektronische Schaltung 600 kann zum Beispiel durch einen (Computer-) Chip implementiert werden. Sie kann zum Beispiel eine elektronische Schaltung mit Steuerfunktionalität sein, wie etwa ein Mikrocontroller für eine Steuervorrichtung wie eine elektronische Steuereinheit (ECU; Electronic Control Unit) in einem Fahrzeug.
-
Verschiedene Beispiele sind im Folgenden beschrieben:
- Beispiel 1 ist eine elektronische Schaltung, wie in 6 veranschaulicht.
- Beispiel 2 ist die elektronische Schaltung gemäß Beispiel 1, wobei der Komparator dazu ausgelegt ist, ein Vergleichssignal, das das Ergebnis des Vergleichs repräsentiert, zu der Fehlerbearbeitungsschaltung zu übertragen.
- Beispiel 3 ist die elektronische Schaltung gemäß Beispiel 2, wobei das Vergleichssignal angibt, ob der Komparator einen Fehler basierend auf dem Vergleich detektiert hat.
- Beispiel 4 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 3, wobei das Vergleichen der empfangenen Zählerwerte durch den Komparator Prüfen umfasst, ob die verglichenen Zählerwerte ein vorbestimmtes Kriterium bezüglich zueinander erfüllen.
- Beispiel 5 ist die elektronische Schaltung gemäß Beispiel 4, wobei das vorbestimmte Kriterium lautet, ob die verglichenen Zählerwerte übereinstimmen, oder, ob die verglichenen Zählerwerte einem vorbestimmten Offset entsprechen.
- Beispiel 6 ist die elektronische Schaltung gemäß Beispiel 4, wobei das vorbestimmte Kriterium lautet, ob die verglichenen Zählerwerte gemäß dem Referenztakt korrekt geändert wurden.
- Beispiel 7 ist die elektronische Schaltung gemäß einem der Beispiele 4 bis 6, wobei der Komparator dazu ausgelegt ist, eine Fehlernachricht zu der Fehlerbearbeitungsschaltung auszugeben, falls die verglichenen Zählerwerte das vorbestimmte Kriterium bezüglich zueinander nicht erfüllen.
- Beispiel 8 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 7, wobei die Fehlerbearbeitungsschaltung dazu ausgelegt ist, eine Fehlerbearbeitung zu initiieren, falls die verglichenen Zählerwerte ein vorbestimmtes Kriterium bezüglich zueinander nicht erfüllen.
- Beispiel 9 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 8, die mehrere Komparatoren umfasst, wobei jeder Komparator dazu ausgelegt ist, den Zählerwert von jedem Taktgenerator eines jeweiligen Paares von Taktgeneratoren der mehreren Taktgeneratoren zu empfangen und die empfangenen Zählerwerte zu vergleichen.
- Beispiel 10 ist die elektronische Schaltung gemäß Beispiel 9, wobei jeder Komparator der mehreren Komparatoren dazu ausgelegt ist, ein Vergleichssignal, das das Ergebnis des Vergleichs repräsentiert, zu der Fehlerbearbeitungsschaltung zu übertragen.
- Beispiel 11 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 10, wobei die Fehlerbearbeitungsschaltung eine zentrale Einheit ist, die dazu ausgelegt ist, mehrere Vergleichssignale von mehreren Komparatoren zu erfassen, und dazu ausgelegt ist, eine Fehlerbearbeitung basierend auf den Vergleichssignalen zu initiieren.
- Beispiel 12 ist die elektronische Schaltung gemäß Beispiel 11, wobei die Fehlerbearbeitungsschaltung dazu ausgelegt ist, eine Fehlerbearbeitung zu initiieren, falls irgendeines der Vergleichssignale angibt, dass der Komparator, der das Vergleichssignal gesendet hat, einen Fehler detektiert hat.
- Beispiel 13 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 12, wobei die elektronische Schaltung mehrere Taktdomänen umfasst und jeder Taktgenerator mit einer jeweiligen der Taktdomänen assoziiert ist.
- Beispiel 14 ist die elektronische Schaltung gemäß Beispiel 13, wobei sich der Komparator an der Grenze von zwei Taktdomänen befindet, mit denen sich die Taktgeneratoren, deren Zählerwerte er ausgelegt ist, zu vergleichen, befinden.
- Beispiel 15 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 14, wobei der Taktgenerator dazu ausgelegt ist, den Zählerwert gemäß dem Referenztaktsignal zyklisch zu inkrementieren, oder dazu ausgelegt ist, den Zählerwert gemäß dem Referenztaktsignal zyklisch zu dekrementieren.
- Beispiel 16 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 15, wobei die elektronische Schaltung Logikkomponenten und/oder Speicherkomponenten umfasst, die gemäß dem durch den Taktgenerator erzeugten Taktsignal betrieben werden.
- Beispiel 17 ist die elektronische Schaltung gemäß einem der Beispiele 1 bis 16, wobei der Taktgenerator dazu ausgelegt ist, mehrere Taktsignale mit unterschiedlichen Frequenzen zu erzeugen.
- Beispiel 18 ist ein Verfahren zum Überwachen von Taktsignalen, umfassend Empfangen, für jeden von mindestens zwei Taktgeneratoren, eines jeweiligen Zählerwerts, wobei jeder Taktgenerator den jeweiligen Zählerwert speichert, einen Referenztakt empfängt, den Zählerwert gemäß dem Referenztakt ändert und mindestens ein Taktsignal basierend auf dem Zählerwert ändert, Vergleichen der empfangenen Zählerwerte und Initiieren einer Fehlerbearbeitung basierend auf dem Ergebnis des Vergleichs.
- Beispiel 19 ist das Verfahren von Beispiel 18, wobei das Initiieren einer Fehlerbearbeitung Auslösen eines Alarms umfasst.
- Beispiel 20 ist das Verfahren gemäß Beispiel 18, umfassend Übertragen eines Vergleichssignals, das das Ergebnis des Vergleichs repräsentiert, zu einer Fehlerbearbeitungsschaltung.
- Beispiel 21 ist das Verfahren gemäß Beispiel 20, wobei das Vergleichssignal angibt, ob ein Fehler basierend auf dem Vergleich detektiert wurde.
- Beispiel 22 ist das Verfahren gemäß einem der Beispiele 18 bis 21, wobei das Vergleichen der empfangenen Zählerwerte Prüfen umfasst, ob die verglichenen Zählerwerte ein vorbestimmtes Kriterium bezüglich zueinander erfüllen.
- Beispiel 23 ist das Verfahren gemäß Beispiel 22, wobei das vorbestimmte Kriterium lautet, ob die verglichenen Zählerwerte übereinstimmen, oder, ob die verglichenen Zählerwerte einem vorbestimmten Offset entsprechen.
- Beispiel 24 ist das Verfahren gemäß Beispiel 22, wobei das vorbestimmte Kriterium lautet, ob die verglichenen Zählerwerte gemäß dem Referenztakt korrekt geändert wurden.
- Beispiel 25 ist das Verfahren gemäß einem der Beispiele 22 bis 24, umfassend Ausgeben einer Fehlernachricht, falls die verglichenen Zählerwerte das vorbestimmte Kriterium bezüglich zueinander nicht erfüllen.
- Beispiel 26 ist das Verfahren gemäß einem der Beispiele 18 bis 25, wobei die Fehlerbearbeitungsschaltung dazu ausgelegt ist, eine Fehlerbearbeitung zu initiieren, falls die verglichenen Zählerwerte ein vorbestimmtes Kriterium bezüglich zueinander nicht erfüllen.
- Beispiel 27 ist das Verfahren gemäß einem der Beispiele 18 bis 26, umfassend Empfangen des Zählerwerts von jedem Taktgenerator eines jeweiligen Paares von Taktgeneratoren der mehreren Taktgeneratoren und Vergleichen der empfangenen Zählerwerte.
- Beispiel 28 ist das Verfahren gemäß Beispiel 27, umfassend, für jeden Vergleich, ein Vergleichssignal, das das Ergebnis des Vergleichs repräsentiert, zu einer Fehlerbearbeitungsschaltung.
- Beispiel 29 ist das Verfahren gemäß einem der Beispiele 18 bis 28, umfassend zentrales Erfassen mehrerer Vergleichssignale von mehreren Komparatoren und Initiieren einer Fehlerbearbeitung basierend auf den Vergleichssignalen.
- Beispiel 30 ist das Verfahren gemäß Beispiel 29, wobei umfassend einer Fehlerbearbeitung, falls irgendeines der Vergleichssignale angibt, dass der Komparator, der das Vergleichssignal gesendet hat, einen Fehler detektiert hat.
- Beispiel 31 ist das Verfahren gemäß einem der Beispiele 18 bis 30, wobei jeder Taktgenerator mit einer jeweiligen von mehreren Taktdomänen assoziiert ist.
- Beispiel 32 ist das Verfahren gemäß Beispiel 31, Empfangen und Vergleichen der empfangenen Zählerwerte an der Grenze von zwei Taktdomänen, mit denen sich die Taktgeneratoren, deren Zählerwerte verglichen werden, befinden.
- Beispiel 33 ist das Verfahren gemäß einem der Beispiele 18 bis 32, umfassend zyklisches Inkrementieren des Zählerwerts gemäß dem Referenztaktsignal oder zyklisches Dekrementieren des Zählerwerts gemäß dem Referenztaktsignal.
- Beispiel 34 ist das Verfahren gemäß einem der Beispiele 18 bis 33, umfassend Betreiben von Logikkomponenten und/oder Speicherkomponenten gemäß dem durch den Taktgenerator erzeugten Taktsignal.
- Beispiel 35 ist das Verfahren gemäß einem der Beispiele 18 bis 34, umfassend Erzeugen mehrerer Taktsignale mit unterschiedlichen Frequenzen.
-
Gemäß einem weiteren Beispiel ist eine elektronische Schaltung bereitgestellt, die Folgendes umfasst: mehrere Taktdomänen, wobei jede Taktdomäne mehrere getaktete Datenverarbeitungskomponenten umfasst, und einen Taktgenerator für jede Taktdomäne, wobei der Taktgenerator jeder Taktdomäne dazu ausgelegt ist, mindestens ein Taktsignal für die mehreren getakteten Datenverarbeitungskomponenten basierend auf einem Zählerwert zu erzeugen, einen Komparator, der dazu ausgelegt ist, den Zählerwert für jede von mindestens zwei der mehreren Taktdomänen zu empfangen, zu prüfen, ob die empfangenen Zählerwerte ein vorbestimmtes Kriterium bezüglich zueinander erfüllen, und einen Fehler zu melden, falls die Zählerwerte nicht das vorbestimmte Kriterium bezüglich zueinander erfüllen.
-
Obgleich spezifische Ausführungsformen veranschaulicht und beschrieben wurden, wird der Durchschnittsfachmann verstehen, dass eine Vielzahl alternativer und/oder äquivalenter Implementierungen die spezifischen gezeigten und beschriebenen Ausführungsformen ersetzen können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Mit dieser Anmeldung wird beabsichtigt, sämtliche Anpassungen und Abwandlungen der spezifischen hierin besprochenen Ausführungsformen abzudecken. Daher wird beabsichtigt, dass diese Erfindung lediglich durch die Ansprüche und die Äquivalente davon beschränkt wird.
-
Bezugszeichenliste
-
- 100
- Chip
- 101-106
- Taktdomänen
- 107
- Referenzfrequenzgenerator
- 108
- lokale Taktgeneratoren
- 109
- lokale Taktsignale
- 200
- lokaler Taktgenerator
- 201
- Zähler
- 202
- Zählerwertspeicherregister
- 203
- Logik
- 204
- lokale Taktsignale
- 205
- Nachschlagetabelle
- 300
- Chip
- 301 bis 306
- Taktdomänen
- 307
- Referenzfrequenzgenerator
- 308
- lokale Taktgeneratoren
- 309
- lokale Taktsignale
- 310
- zentraler Phasenkomparator
- 400
- Chip
- 401 bis 406
- Taktdomänen
- 407
- Referenzfrequenzgenerator
- 408
- lokale Taktgeneratoren
- 409
- lokale Taktsignale
- 410
- lokale Komparatoren
- 411
- zentrale Fehlererfassungseinheit
- 500
- lokaler Taktgenerator
- 501
- Zähler
- 502
- lokale Taktsignale
- 503
- lokaler Komparator
- 504, 505
- Zählerwertsignalleitung
- 600
- elektronische Schaltung
- 601
- Taktgeneratoren
- 602
- Komparator