-
Technisches Gebiet
-
Verschiedene Ausführungsformen betreffen allgemein Steuerungschips und Verfahren zum Betreiben von Steuerungschips.
-
Hintergrund
-
Frühere Ansätze zum Behandeln von Fehlern in Steuerungschips mit Bezug auf die Leistungsversorgung waren das Vorhandensein vollständig redundanter Steuerungen oder eines System-On-Chip, die sich auf getrennten Dies befinden, jeweils mit ihrer eigenen Leistungsversorgung, ihrem eigenen Takt und ihrer eigenen Rücksetzerzeugung. Das heißt, bei bestehenden Architekturen für eine Steuerung kann ein isolierter Leistungsverwaltungssystemblock als eine Sicherheitsecke dienen, die dazu in der Lage ist, ihren Zustand während der Nichtverfügbarkeit der anderen Teile der Steuerung zu behalten. Jedoch sind bei einem Fehlerereignis die durch einen bestehenden Steuerungschip bereitgestellten Funktionen, z.B. Erzeugen einer Leistungsversorgung, Rücksetzen, Erzeugen eines Taktes, Spannungsüberwachung, ungenügend, um die Funktionalität des Chips während des Fehlerereignisses in dem Hauptanwendungscluster des Chips verfügbar zu machen.
-
Figurenliste
-
In den Zeichnungen verweisen gleiche Bezugszeichen allgemein in den verschiedenen Ansichten auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird der Schwerpunkt allgemein auf die Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen Folgendes gilt:
- 1 zeigt einen beispielhaften Steuerungschip gemäß wenigstens einem Ausführungsbeispiel der vorliegenden Offenbarung.
- 2 zeigt ein beispielhaftes Verfahren gemäß wenigstens einem Ausführungsbeispiel der vorliegenden Offenbarung.
-
Beschreibung
-
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Veranschaulichung spezielle Einzelheiten und Ausführungsformen zeigen, in denen die Erfindung ausgeübt werden kann.
-
Das Wort „beispielhaft“ wird hier mit der Bedeutung „als ein Beispiel, eine Instanz oder eine Veranschaulichung dienend“ verwendet. Eine beliebige Ausführungsform oder Gestaltung, die hier als „beispielhaft“ beschrieben ist, muss nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Ausführungsformen oder Gestaltungen ausgelegt werden.
-
Das Wort „über“, das in Zusammenhang mit einem abgeschiedenen Material verwendet wird, das „über“ einer Seite oder Oberfläche gebildet wird, kann hier mit der Bedeutung verwendet werden, dass das abgeschiedene Material „direkt auf”, zum Beispiel in direktem Kontakt mit, der betreffenden Seite oder Oberfläche gebildet werden kann. Das Wort „über“, das in Zusammenhang mit einem abgeschiedenen Material verwendet wird, das „über“ einer Seite oder Oberfläche gebildet wird, kann hier mit der Bedeutung verwendet werden, dass das abgeschiedene Material „indirekt auf” der betreffenden Seite oder Oberfläche mit einer oder mehreren zusätzlichen Schichten, die zwischen der betreffenden Seite oder Oberfläche und dem abgeschiedenen Material angeordnet sind, gebildet werden kann.
-
In den Zeichnungen kann an Bezugsziffern ein Buchstabe (z.B. ein Buchstabe „a“ für Cluster A) angehängt werden, um anzugeben, zu welchem Cluster sie gehören.
-
1 zeigt einen Steuerungschip 100 gemäß wenigstens einem Ausführungsbeispiel der vorliegenden Offenbarung. Der Steuerungschip 100 kann ein Mikrocontroller, eine System-auf-Chip(SoC)-Vorrichtung oder dergleichen sein. Die Steuerungschips können zum Ausführen eines oder mehrerer Programme eingerichtet sein und können einen eingebauten Programm- und Datenspeicher aufweisen.
-
Steuerungschips, wie etwa der Steuerungschip 100, können mehrere Cluster beinhalten. Der beispielhafte Steuerungschip 100 beinhaltet wenigstens zwei funktionale Cluster oder Kern-Cluster, z.B. Cluster A (110a) und Cluster B (110b). Diese Cluster können monolithisch realisiert oder implementiert werden. Das heißt, die Cluster können auf einem einzigen monolithischen Halbleitersubstrat, z.B. einem einzigen Siliziumsubstrat, gebildet werden. Ferner kann die Anzahl an Clustern, die auf einem Substrat für hier beschriebene Microcontroller gebildet werden, variieren, das heißt, sie ist auf keine spezielle Anzahl beschränkt.
-
Der erste Cluster (Cluster A) 110a und der zweite Cluster (Cluster B) 110b beinhalten jeweils mehrere Komponenten. Wie in 1 gezeigt, beinhalten die Cluster 110a und 110b jeweils eine oder mehrere Steuerungseinheiten 120 oder Verarbeitungskerne (z.B. CPUs, Prozessoren) einen Taktbaum oder eine Taktvorrichtung 130 und eine Rücksetzbaumvorrichtung 170. Die verschiedenen Kerne oder CPUs können von einer oder mehreren Speichervorrichtungen oder -komponenten, z.B. einem nichttransitorischen Speicher, begleitet werden. Die Steuerungseinheiten 120 können zum Ausführen von Software, z.B. für eine Anwendung oder Anwendungen, eingerichtet sein. Das heißt, die Steuerungseinheiten können Anweisungen ausführen, die von der Speichervorrichtung zugänglich sind. Die Speichervorrichtung kann einen nichttransitorischen Speicher zum Speichern von Daten beinhalten. Die Steuerung 100 kann einen anderen Speicher, z.B. flüchtige oder nichtflüchtige Speichervorrichtungen, beinhalten.
-
Obwohl manche Verbindungen gezeigt sind, wurden andere physische oder logische Verbindungen zwischen Komponenten der Steuerung 100 der Einfachheit halber weggelassen.
-
Der Taktbaum 130 kann ein oder mehrere Taktsignale für die Steuerungseinheiten 120 oder andere Komponenten/Vorrichtungen desselben Clusters produzieren oder erzeugen. Der Rücksetzbaum 125 kann zum Zurücksetzen oder Senden von Rücksetzbefehlen oder Rücksetzsignalen einer oder mehrerer Komponenten des Clusters, zu dem er gehört, wie etwa Verarbeitungskerne, eingerichtet sein.
-
Ferner gemäß Ausführungsbeispielen können die Cluster jeweils ihre eigene unabhängige Leistungsquelle oder Leistungsversorgung aufweisen. Zum Beispiel beinhaltet für die Mikrosteuerungseinheit 100 der erste Cluster 110a ein erstes Leistungsversorgungsnetzwerk 130a und beinhaltet der zweite Cluster 110b ein zweites Leistungsversorgungsnetzwerk 130b. Das erste Leistungsversorgungsnetz 130a kann elektrische Leistung an Komponenten des ersten Clusters 110a, z.B. die Steuerungseinheiten 120a, liefern. Gleichermaßen kann das zweite Leistungsversorgungsnetzwerk 130b elektrische Leistung an Komponenten des zweiten Clusters 110b, z.B. die Steuerungseinheiten 120b, liefern.
-
Ferner können die Cluster 110a und 110b getrennte Leistungsversorgungseingänge 140a, b beinhalten. Wie in 1 gezeigt, können der erste Leistungsversorgungseingang 140a und der zweite Leistungsversorgungseingang 140b ein Kontaktpad beinhalten. Gemäß Ausführungsbeispielen können Leistungsversorgungseingänge für jeden Cluster voneinander separiert oder elektrisch isoliert sein. Zum Beispiel sind die Kontaktpads der in 1 gezeigten Leistungsversorgungseingänge 140a und 140b als separat gezeigt und können jeweils mit einer anderen und unabhängigen Leistungsquelle verbunden sein. Kurz gesagt befinden sich die Leistungsversorgungseingänge 140a und 140b nicht auf demselben Potential.
-
Die Cluster 110a, b können funktionale Cluster sein, die andere funktionale oder elektronische Komponenten beinhalten. Jeder Cluster kann einen Die-Temperatur-Erfassungsschaltkreis 180 beinhalten, der zum Ermitteln oder Überwachen der Temperatur des Teils des Substrats bei allen jeweiligen Clustern eingerichtet ist. Ferner kann jeder Cluster einen digitalen Teil einschließlich eines funktionalen Blocks oder einer Systemsteuereinheit (SCU) aufweisen, die funktionale Blöcke, wie etwa eine Rücksetzsteuereinheit (RCU) und eine Taktsteuereinheit (CCU), beinhalten kann. Außerdem kann jeder Cluster andere Komponenten, die nicht gezeigt sind, beinhalten, wie etwa analoge und/oder digitale Vorrichtungen.
-
Obwohl der erste Cluster 110a und der zweite Cluster 110b als identisch oder symmetrisch dargestellt sind, ist dies nicht notwendigerweise der Fall. Bei anderen Ausführungsbeispielen sind solche Cluster möglicherweise nicht identisch und beinhalten in Abhängigkeit von der Anwendung verschiedene Arten oder Mengen an Komponenten.
-
Der in 1 gezeigte Mikrocontroller 100 beinhaltet auch einen dritten Cluster 200. Bei dem Beispiel aus 1 ist der dritte Cluster 200 ein Überwachungscluster, der einen Überwachungsschaltkreis 210 beinhalten kann. Gemäß Ausführungsbeispielen kann der Überwachungsschaltkreis des Überwachungsclusters eine(n) oder mehrere Steuerungseinheiten/Verarbeitungskerne/Prozessoren beinhalten oder als diese realisiert sein.
-
Der Überwachungsschaltkreis 210 kann zum Überwachen in Bezug auf und Detektieren von Fehlern eines oder mehrerer Cluster desselben Mikrocontrollers 100 eingerichtet sein. Der Überwachungsschaltkreis 210 kann den Zustand des Leistungsversorgungseingangs, der Taktsignale, Rücksetzsignale oder von anderem Relevantem anderer Cluster auf dem Mikrocontroller 100 überwachen und/oder ermitteln. Zum Beispiel kann der Überwachungsschaltkreis 210 eine Verknüpfung mit anderen Komponenten der anderen Cluster, die überwacht werden (z.B. Cluster A und/oder Cluster B), erstellen oder mit diesen interagieren (z.B. durch Senden und Empfangen von Signalen). Der Überwachungsschaltkreis 210 kann auch mit Komponenten des Überwachungs-Clusters interagieren, der wiederum mit anderen Clustern interagiert. Zum Beispiel können die Cluster A und Cluster B Signale senden, die den Zustand verschiedener Komponenten angeben. In manchen Fällen können die Cluster Alarmsignale, die (einen) Fehler mit einer oder mehreren Komponenten angeben, senden.
-
In manchen Fällen können Überwachungs-Cluster, wie etwa der Überwachungs-Cluster 200, Spannungsüberwachungselemente 210a und 210b beinhalten. Wie in 1 gezeigt, können die Spannungsüberwachungselemente 210a und 210b mit den Leistungsversorgungseingängen 140a bzw. 140b gekoppelt sein, um die Leistungsversorgung der Cluster 110a bzw. 110b zu überwachen. Die Spannungsüberwachungselemente 210a und 210b können beliebige geeignete in der Technik bekannte Spannungsüberwachungselemente sein, die zum Überwachen der Leistungsversorgungseingänge und Informieren durch Senden von Signalen bezüglich des Zustands der Leistungsversorgungseingänge 140a, 140b an den Überwachungsschaltkreis 210 eingerichtet sind. Der Überwachungsschaltkreis 210 kann zum Verarbeiten der Signale eingerichtet sein, um zu ermitteln, ob es einen Leistungsfehler mit Bezug auf einen speziellen Cluster gibt.
-
Wie zuvor besprochen, können Überwachungs-Cluster, wie etwa der Überwachungs-Cluster 200, Signale von den anderen Clustern empfangen, die den Zustand der Leistungsversorgung, der Rücksetzvorrichtung oder des Rücksetzbaums, des Taktbaums oder anderer Komponenten angeben. Bei einem oder mehreren Ausführungsbeispielen können die Kerne oder Steuerungseinheiten einzelner Cluster einen Fehler detektieren oder ermitteln, der aufgetreten ist. Solche Steuerungseinheiten, wie etwa die Steuerungseinheiten 120a und 120, können ferner zum Senden eines oder mehrere Signal an den Überwachungs-Cluster 200 eingerichtet sein, welche über den detektierten Fehler, z.B. einen Fehler mit Bezug auf den Leistungsversorgungseingang, Taktbaum oder Taktsignale, Rücksetzbaum usw., informieren.
-
Bei einem anderen Beispiel können Cluster, wie etwa 110a und 110b, Die-Temperatur-Erfassungsschaltkreise 180a bzw. 180b beinhalten. Diese Die-Temperatur-Erfassungsschaltkreise 180a, b können Signale übertragen, die durch den Überwachungsschaltkreis 210 empfangen werden und verwendet werden können, um zu ermitteln, ob ein spezieller Cluster einen Fehler in irgendeiner Hinsicht (z.B. Taktsignale, Leistung usw.) erfährt. Gleichermaßen können die Taktbaumvorrichtung 160 sowie die Rücksetzbaumvorrichtung 170 zum Senden von Signalen bezüglich des Zustands der jeweiligen Vorrichtung gestaltet oder eingerichtet sein. Bei manchen Beispielen können solche Vorrichtungen ein Alarmsignal an den Überwachungs-Cluster 200 (z.B. den Überwachungsschaltkreis 210) senden, wenn ein Fehler detektiert wird, um das Vorhandensein eines Problems oder eines Fehlers anzugeben.
-
Bei Ausführungsbeispielen der vorliegenden Offenbarung können Überwachungs-Cluster zum Beseitigen oder Abschwächen der Effekte von Fehlern eines oder mehrerer Cluster eingerichtet sein. Zum Beispiel kann der Überwachungsschaltkreis 210 des Überwachungs-Clusters 200 zum Angeben, bei dem Ereignis oder im Fall des Detektierens, Ermittelns oder Identifizierens eines Leistungsversorgungsfehlers oder Taktsignalversorgungsfehlers in einem Cluster (z.B. dem ersten Cluster 110a oder dem zweiten Cluster 110b), des Fehlers für wenigstens einen anderen Cluster, der helfen kann (z.B. einen nicht fehlerhaften Cluster), eingerichtet sein. Der Überwachungsschaltkreis 210 kann zum Beispiel ein oder mehrere Signale an wenigstens einen Cluster senden, welche für den nicht fehlerhaften Cluster zu ergreifende Handlungen angeben.
-
Als Reaktion darauf kann der wenigstens eine andere Cluster (z.B. nicht fehlerhafte Cluster) eine oder mehrere Hilfsmaßnahmen ergreifen oder initiieren, um die Ausfälle des fehlerhaften Clusters zu berücksichtigen oder zu behandeln. Falls zum Beispiel die Steuerungseinheiten 120 eines fehlerhaften Clusters nicht mehr zum Durchführen oder Ausführen gewisser Funktionen oder Aufgaben in der Lage sind, z.B. aufgrund eines Leistungsfehlers, Taktfehlers usw., dann können die Steuerungseinheiten 120 eines nicht fehlerhaften Clusters wenigstens teilweise manche der Aufgaben oder Funktionen des fehlerhaften Clusters übernehmen. Das heißt, die Steuerungseinheiten 120 einer oder mehrerer nicht fehlerhafter Cluster-Einheiten können Aufgaben oder Operationen, die zuvor durch die Steuerungseinheiten des fehlerhaften Clusters ausgeführt wurden, basierend auf der durch den Überwachungs-Cluster empfangenen Angabe ausführen oder durchführen.
-
Bei einem Beispiel kann, falls es zwei funktionale Cluster, z.B. Cluster A und Cluster B der Steuerung 100, gibt, jeder Cluster während eines Normalbetriebs 50 % der Anwendungsfunktion oder der Rechenlast für eine Anwendung bereitstellen. Im Fall eines Fehlers durch einen Cluster, kann der nicht fehlerhafte Cluster bis zu den 50 % bereitstellen, die zuvor durch den nun fehlerhaften Cluster bereitgestellt wurden. Der nicht fehlerhafte Cluster kann den zusätzlichen Anteil der Funktion bereitstellen, bis der fehlerhafte Cluster wiederhergestellt, z.B. repariert und/oder zurückgesetzt, wurde.
-
Bei anderen beispielhaften Fällen, bei denen es zwei funktionale Cluster gibt, kann in einem normalen Fall (z.B. keine Fehler oder Ausfälle in dem Primär-Cluster) ein funktionaler Cluster 100 % der Funktionen für eine Anwendung durchführen, während der andere in Ruhe verbleibt (z.B. sich in einem Standby-Modus befindet) und einen Anteil von 0 % der Anwendungsfunktionsarbeitslast bereitstellt. Das heißt, der Haupt-Cluster (z.B. Cluster A) kann 100 % der Anwendungsleistungsfähigkeit bereitstellen, einschließlich eines Zugangs zu Ressourcen des Sekundär-Clusters (beispielsweise kann Cluster A notwendige Peripherie- und Speicherkomponenten des Clusters B verwenden). Der Sekundär-Cluster (z.B. Cluster B, der einen Anteil von 0 % einer funktionalen Unterstützung oder Leistungsfähigkeit für eine Anwendung bereitstellt) in einem Idle-Modus laufen. Der Sekundär-Cluster kann zum Verfolgen des Zustands des Primär-Clusters konfiguriert sein. Der Sekundär-Cluster kann dazu bereit sein, Peripherieelemente bei einem detektierten Fehler in dem Primär-Cluster zu übernehmen. Von daher kann eine Mehrfach-Cluster-Steuerung, die eine Anwendung durchführt, einen Sekundär-Cluster für eine unmittelbare Ersatzfunktion bei der Problemdetektion verwenden. Das heißt, die Steuerung oder das System kann einen Sekundär-Cluster von einem Anteil der Operation einer Anwendung von 0 % auf 100 % übergehen lassen, nachdem der Primär-Cluster oder ein Subsystem von diesem einen Fehlerzustand erfährt. Die Verwendung einer symmetrischen Architektur (z.B. identischer funktionaler Cluster) kann ermöglichen, dass die Operation oder das Ausführen einer Anwendung auf dem zweiten Cluster bleibt, nachdem der primäre wiederhergestellt wurde.
-
Bei anderen Beispielen, können hier beschriebene Steuerungen mehr als zwei (2) funktionale Cluster aufweisen. Im Gegensatz zu den zuvor oder anderen beschriebenen Fällen, kann es anstelle dessen, dass eine Steuerung einen Sekundär-Cluster hat, mehrere Sekundär-Cluster geben. In solchen Fällen kann ein Primär-Cluster für 100 % einer Anwendung zuständig sein und übernimmt in dem Fall eines Fehlerzustands durch den Primär-Cluster einer der Sekundär-Cluster 100 % (oder in Abhängigkeit von den Umständen weniger) einer Ausführung oder funktionalen Leistungsfähigkeit der Anwendung.
-
Bei anderen Beispielen können der eine oder die mehreren Sekundär-Cluster die Zuständigkeit für das Durchführen der Funktionen oder Aufgaben, die zuvor durch den Primär-Cluster durchgeführt wurden, der einen Fehler- oder Ausfallzustand erfährt, aufteilen oder teilen (z.B. gleichmäßig oder in einer anderen angemessenen Aufteilung).
-
In anderen Fällen gibt es möglicherweise nicht einen einzigen Primär-Cluster, sondern mehrere Primär-Cluster, die sich eine Zuständigkeit oder Funktionen für eine Anwendung teilen. Ferner können ein oder mehrere Sekundär-Cluster eine Zuständigkeit für beliebige der Primär-Cluster annehmen, die einen Fehlerzustand oder einen Ausfall erfahren.
-
Bei Ausführungsbeispielen kann ein Überwachungs-Cluster für eine Neuzuweisung der Arbeitslast oder Ausführung von Funktionen von einem fehlerhaften Cluster an einen oder mehrere andere Cluster zuständig sein. Bei manchen Ausführungsbeispielen kann der Überwachungs-Cluster der gleiche wie ein beliebiger anderer hier beschriebener funktionaler Cluster sein. Das heißt, der Überwachungs-Cluster kann ein Sekundär-Cluster sein, der seinerseits Funktionen von einem fehlerhaften Cluster übernehmen kann.
-
Wieder unter Bezugnahme auf 1 können in manchen Fällen die zuvor fehlerhafte Cluster, wie etwa die Cluster 110, wiederhergestellt werden, z.B. nach einer Rücksetzung des Clusters oder von Komponenten von diesem, und wieder dazu in der Lage sein, Handlungen durchzuführen oder auszuführen. Der Überwachungs-Cluster 200 (z.B. der Überwachungsschaltkreis 210) kann identifizieren, dass der Cluster 110 wenigstens teilweise „geheilt“ wurde, und kann den anderen Cluster informieren, mit dem Durchführen von Handlungen anstelle des zuvor defizienten oder fehlerhaften Clusters aufzuhören. In anderen Fällen kann der geheilte Cluster 110 den anderen Cluster oder den Überwachungs-Cluster über seinen aktualisierten Zustand, das heißt, dass er das Durchführen seiner Aufgaben fortsetzen will, informieren, z.B. Signale durch die Steuerungseinheiten 120 senden.
-
Ähnlich anderen Clustern desselben Mikrocontrollers kann der Überwachungs-Cluster auch durch einen Leistungsversorgungseingang mit Leistung versorgt werden, der von den Leistungsversorgungseingängen anderer Cluster separat und/oder unabhängig ist.
-
In manchen Fällen können die Überwachungs-Cluster, wie etwa der Überwachungs-Cluster 110c, Taktvorrichtungen, wie etwa Taktvorrichtungen 230a und 230b, beinhalten. Die Taktvorrichtungen können Signale für den Überwachungs-Cluster bereitstellen und können auch zum Liefern von Taktsignalen an Cluster eingerichtet sein, die Ausfälle oder Fehler beim Erzeugen von Taktsignalen aufgrund ihrer Taktvorrichtungen oder Taktbaumstrukturen erfahren. Mit anderen Worten können die eine oder die mehreren Taktvorrichtungen 230 als eine Ersatztaktvorrichtung wirken und Taktsignale für einen Cluster bereitstellen, der nicht zum zuverlässigen Bereitstellen oder Erzeugen von Taktsignalen in der Lage ist. Bei anderen Ausführungsformen kann der Überwachungs-Cluster 200 auch dazu in der Lage sein, um als eine Leistungsquelle zu wirken, Leistung zu einem Cluster zu lenken, der Leistungsversorgungseingangsprobleme hat.
-
Bei verschiedenen Ausführungsbeispielen der vorliegenden Offenbarung können Mikrocontroller, wie etwa der Mikrocontroller 100, eine oder mehrere Isolations- oder Unterteilungsstrukturen 150 beinhalten. Zum Beispiel können die Cluster 110a-c durch eine oder mehrere Isolationsstrukturen 150 unterteilt werden. Die eine Isolationsstruktur oder die mehreren Isolationsstrukturen 150 stellen möglicherweise nicht nur eine physische Separation der Cluster eines Mikrocontrollers bereit, sondern sie können auch eine gewisse elektrische oder elektronische Separation bereitstellen. Zum Beispiel können die Isolationsstrukturen 150 ein kommunizierbares Medium beinhalten, um eine Ankopplung oder Kommunikation zwischen verschiedenen Clustern zu ermöglichen, falls es basierend auf der Konfiguration erforderlich ist. Das heißt, die verschiedenen Cluster eines Mikrocontrollers, die sich z.B. ein gemeinsames Substrat teilen, sind möglicherweise direkt elektronisch oder elektrisch verbunden oder gekoppelt oder nicht und sind zum Kommunizieren miteinander durch die Isolationsstrukturen basierend auf einer Konfiguration konfiguriert. Bei verschiedenen Ausführungsformen kann eine physische Implementierung einer Isolation und von Pegelumsetzer verwendet werden, um sicherzustellen, dass eine Hochleistungsbandbreite verfügbar ist, wenn sie benötigt wird, wie etwa zum Beispiel mit Busschnittstellen für hohe Geschwindigkeit gegenüber einer Sicherheitsschnittstelle für niedrige oder niedrigere Geschwindigkeiten.
-
2 zeigt ein Verfahren zum Betreiben eines Mikrocontrollers gemäß wenigstens einem Ausführungsbeispiel der vorliegenden Offenbarung. Das Verfahren kann durch einen Mikrocontroller, wie etwa die Steuerung 100 aus 1, ausgeführt werden. Das Verfahren kann einen Mikrocontroller einschließlich mehrerer Cluster beinhalten.
-
Das in 2 gezeigte Verfahren beinhaltet in 210 Identifizieren wenigstens eines Fehlers von einem ersten Cluster mehrerer Cluster eines Steuerungschips. Das Verfahren beinhaltet in 220 Angeben des wenigstens einen Fehlers für wenigstens einen zweiten Cluster der mehreren Cluster des Steuerungschips, wobei der wenigstens eine zweite Cluster von dem ersten Cluster verschieden ist. Das Verfahren beinhaltet bei 230 wenigstens partielles Durchführen, durch den wenigstens einen zweiten Cluster, der einen oder mehreren Handlungen, die zuvor durch den ersten Cluster durchgeführt wurden.
-
Das Identifizieren oder Ermitteln eines Fehlers kann Ermitteln oder Detektieren eines Leitungsversorgungsfehlers und/oder eines Taktsignalfehlers eines ersten Clusters der mehreren Cluster des Mikrocontrollers beinhalten.
-
Das Verfahren beinhaltet als Nächstes Angeben des Fehlers des ersten Clusters für einen zweiten (anderen) Cluster der mehreren Cluster. Das Ermitteln oder Identifizieren des Fehlers kann durch einen dritten Cluster oder einen Überwachungs-Cluster durchgeführt werden. Gemäß Ausführungsbeispielen können die mehreren Cluster, einschließlich des ersten, zweiten und dritten Clusters, alle auf oder aus einem einzigen monolithischen Substrat realisiert oder gebildet werden.
-
Der dritte Cluster kann Fehler des ersten Clusters identifizieren und kann die Fehler einem zweiten, anderen Cluster angeben, indem er ein oder mehrere Signale bezüglich des Fehlers an den zweiten Cluster sendet.
-
Das Verfahren beinhaltet ferner Durchführen oder Ausführen, durch den zweiten Cluster (z.B. wenigstens einen zweiten Cluster), von zum Beispiel Endbenutzer-MCU-Anwendungen oder Teilen von Anwendungen, die zuvor durch den ersten Cluster ausgeführt wurden. Zum Beispiel kann der zweite Cluster Handlungen, Aufgaben oder Funktionen als Reaktion auf die Angabe(n) durchführen, die von dem dritten Cluster/Überwachungs-Cluster empfangen wird (werden). Die Angaben (z.B. Signale) können angeben, welche Aufgaben oder Funktionen für den zweiten Cluster aufgrund der Ausfälle oder Fehler des ersten Clusters zu übernehmen oder teilweise zu übernehmen sind.
-
Zum Beispiel kann, wie zuvor beschrieben, eine solche Angeben informieren, dass in einem Normalbetrieb ein gleicher Anteil der Anwendungsfunktion zwischen dem ersten Cluster und dem zweiten Cluster durchgeführt wird. Im Fall eines Fehlers kann ein Cluster in einen Ruhezustand übergehen (für eine Periode nicht betriebsfähig) und kann ein Signal gesendet werden, um anzugeben, dass ein anderer Cluster 50 % der normalen Anwendungsleistungsfähigkeit des anderen, ersten Clusters bereitstellt. In anderen Fällen können Signale angeben, dass ein erster Cluster in einem Normalbetriebsfall eine volle Anwendungsfunktion bereitstellt, während sich der zweite Cluster in einem Idle-Zustand befindet. Dem zweiten Cluster kann als Reaktion auf ein Signal angegeben werden, die volle Anwendungsfunktion zu übernehmen, falls ein Fehler in dem ersten Cluster detektiert wird.
-
Beispiel 1 ist ein Steuerungschip, der Folgendes beinhaltet: einen ersten Cluster, der eine oder mehrere erste Steuerungseinheiten, ein erstes Leistungsversorgungsnetz zum Versorgen der einen oder mehreren ersten Steuerungseinheiten mit Leistung, eine erste Taktbaumstruktur zum Bereitstellen eines oder mehrerer Taktsignale an die eine oder die mehreren ersten Steuerungseinheiten und wenigstens einen ersten Leistungsversorgungseingang zum Bereitstellen von Leistung an den ersten Cluster beinhaltet; einen zweiten Cluster, der eine oder mehrere zweite Steuerungseinheiten, ein zweites Leistungsversorgungsnetz zum Versorgen der einen oder mehreren zweiten Steuerungseinheiten mit Leistung, eine zweite Taktbaumstruktur zum Bereitstellen eines oder mehrerer Taktsignale an die eine oder die mehreren zweiten Steuerungseinheiten und wenigstens einen zweiten Leistungsversorgungseingang zum Bereitstellen von Leistung an den zweiten Cluster beinhaltet; einen Überwachungs-Cluster, der einen Überwachungsschaltkreis beinhaltet, der zu Folgendem eingerichtet ist: Überwachen der Leistungsversorgung und der Taktsignalversorgung sowohl des ersten Clusters als auch des zweiten Clusters, und im Fall des Bestimmens eines Leistungsversorgungsfehlers und/oder eines Taktsignalversorgungsfehlers in einem Cluster des ersten Clusters oder des zweiten Clusters, Angeben des Fehlers für den anderen Cluster, um eine oder mehrere Handlungen zu übernehmen.
-
Beispiel 2 ist der Steuerungschip aus Beispiel 1, wobei der erste Cluster und der zweite Cluster jeweils zum Durchführen, als Reaktion auf das Empfangen einer Angabe eines Leistungsversorgungsfehlers oder eines Taktsignalversorgungsfehlers in dem anderen Cluster von dem Überwachungsschaltkreis, einer oder mehrerer Handlungen, die zuvor von dem anderen Cluster ausgeführt wurden, gemäß der Angabe eingerichtet sein können.
-
Beispiel 3 ist der Steuerungschip aus Beispiel 1 oder 2, wobei der Überwachungsschaltkreis ferner zum Initiieren, im Falle des Ermittelns eines Leistungsversorgungsfehlers und/oder eines Taktsignalversorgungsfehlers in einem Cluster des ersten Clusters oder des zweiten Clusters, wenigstens eines partiellen Neustartes des einen Clusters eingerichtet sein kann.
-
Beispiel 4 ist der Steuerungschip aus einem der Beispiele 1 bis 3, wobei der erste Cluster, der zweite Cluster und der Überwachungsschaltkreis auf einem einzigen oder gemeinsamen monolithischen Halbleitersubstrat gebildet sein können.
-
Beispiel 5 ist der Steuerungschip aus einem der Beispiele 1 bis 4, wobei der wenigstens erste Leistungsversorgungseingang zum Liefern von Leistung an den ersten Cluster unabhängig von dem wenigstens zweiten Leistungsversorgungseingang zum Bereitstellen von Leistung an den zweiten Cluster sein kann.
-
Beispiel 6 ist der Steuerungschip aus Beispiel 5, und kann ferner einen dritten Leistungsversorgungseingang zum Versorgen des Überwachungsschaltkreises mit Leistung beinhalten, wobei der dritte Leistungsversorgungseingang unabhängig von dem wenigstens ersten Leistungsversorgungseingang und dem wenigstens zweiten Leistungsversorgungseingang ist.
-
Beispiel 7 ist der Steuerungschip aus einem der Beispiele 1 bis 6, wobei der Überwachungs-Cluster einen Leistungsverwaltungsschaltkreis beinhalten kann, der mit dem ersten Cluster und mit dem zweiten Cluster gekoppelt ist, und wobei in dem Fall, dass der Überwachungsschaltkreis einen Leistungsversorgungsfehler in einem Cluster ermittelt, der Leistungsverwaltungsschaltkreis zum Bewirken eingerichtet ist, dass Leistung von einer Sekundärquelle an den Cluster mit der fehlerhaften Leistungsversorgung bereitgestellt wird.
-
Beispiel 8 ist der Steuerungschip aus Beispiel 7, wobei der erste Cluster, der zweite Cluster und der Überwachungs-Cluster durch eine Isolationsstruktur voneinander unterteilt sein können.
-
Beispiel 9 ist der Steuerungschip aus einem der Beispiele 1 bis 8, wobei sowohl der erste Cluster als auch der zweite Cluster eine Leistungsversorgungs-, Takt- oder Rücksetzfehler eines anderen Clusters überwachen können.
-
Beispiel 10 ist der Steuerungschip aus einem der Beispiele 1 bis 9, wobei der erste Cluster einen ersten Rücksetzbaum zum Zurücksetzen einer oder mehrerer Komponenten des ersten Clusters beinhalten kann und der zweite Cluster einen zweiten Rücksetzbaum zum Zurücksetzen einer oder mehrerer Komponenten des zweiten beinhalten kann.
-
Beispiel 11 ist der Steuerungschip nach Anspruch 10, wobei der erste Rücksetzbaum und der zweite Rücksetzbaum unabhängig voneinander arbeiten können.
-
Beispiel 12 ist der Steuerungschip nach einem der Ansprüche 1 bis 11, wobei der Überwachungs-Cluster eine dritte Taktbaumstruktur beinhalten kann, wobei die erste, zweite und dritte Taktbaumstruktur unabhängig voneinander arbeiten können.
-
Beispiel 13 ist der Steuerungschip aus einem der Beispiele 1 bis 12, wobei der Überwachungs-Cluster einen dritten Leistungsversorgungseingang zum Liefern von Leistung an den Überwachungs-Cluster beinhalten kann, und wobei der dritte Leistungsversorgungseingang unabhängig von dem ersten und zweiten Leistungsversorgungseingang ist.
-
Beispiel 14 ist der Steuerungschip aus einem der Beispiele 1 bis 13, wobei der Überwachungsschaltkreis ein erstes Spannungsüberwachungselement, das mit dem ersten Leistungsversorgungseingang des ersten Clusters gekoppelt ist, und einen zweiten Spannungsüberwachungseingang, der mit dem zweiten Leistungseingang des zweiten Clusters gekoppelt ist, beinhalten kann.
-
Beispiel 15 ist ein Verfahren, das Folgendes beinhaltet: Identifizieren wenigstens eines Fehlers von einem ersten Cluster mehrerer Cluster eines Steuerungschips; Angeben des wenigstens einen Fehlers für wenigstens einen zweiten Cluster der mehreren Cluster des Steuerungschips, wobei der wenigstens eine zweite Cluster von dem ersten Cluster verschieden ist; und wenigstens partielles Durchführen, durch den wenigstens einen zweiten Cluster, der einen oder mehreren Handlungen, die zuvor durch den ersten Cluster durchgeführt wurden.
-
Beispiel 16 ist das Verfahren aus Beispiel 15, wobei das Identifizieren des wenigstens einen Fehlers von dem ersten Cluster und Angeben des wenigstens einen Fehlers für den wenigstens einen zweiten Cluster durch einen dritten Cluster durchgeführt werden kann, der von dem ersten Cluster verschieden ist.
-
Beispiel 17 ist das Verfahren aus Beispiel 16, wobei der erste Cluster, der wenigstens eine zweite Cluster und der dritte Cluster auf einem einzigen oder gemeinsamen Halbleitersubstrat gebildet sein können.
-
Beispiel 18 ist das Verfahren aus Beispiel 15, wobei das Angeben des wenigstens einen Fehlers für den wenigstens einen zweiten Cluster Angeben der einen oder der mehreren Handlungen, die zuvor durch den ersten Cluster durchgeführt wurden, für den wenigstens einen zweiten beinhalten kann.
-
Beispiel 19 ist das Verfahren aus Beispiel 15, wobei das Identifizieren des wenigstens einen Fehlers von dem ersten Cluster Empfangen eines oder mehrerer Signale von dem ersten Cluster beinhalten kann, das/die den wenigstens einen Fehler angibt/angeben.
-
Beispiel 20 ist ein Steuerungschip, der Folgendes beinhaltet: mehrere Cluster, die jeweils eine oder mehrere Steuerungseinheiten, ein Leistungsversorgungsnetzwerk zum Versorgen der einen oder mehreren Steuerungseinheiten mit Leistung, eine Taktbaumstruktur zum Bereitstellen eines oder mehrerer Taktsignale an die eine oder die mehreren Steuerungseinheiten und wenigstens einen Leistungsversorgungseingang zum Bereitstellen von Leistung an den jeweiligen Cluster beinhalten; wenigstens einen Überwachungsschaltkreis, der zu Folgendem eingerichtet ist: Überwachen der Leistungsversorgung und der Taktsignalversorgung von wenigstens einem der mehreren Cluster, und im Fall des Ermittelns eines Leistungsversorgungsfehlers und/oder eines Taktsignalversorgungsfehlers in einem Cluster des mehreren Cluster, Angeben des Fehlers für wenigstens einen anderen nicht fehlerhaften Cluster der mehreren Cluster.
-
Beispiel 21 ist der Steuerungschip aus Beispiel 20, wobei der wenigstens eine Überwachungsschaltkreis, der zum Angeben des Fehlers konfiguriert ist, zum Übertragen eines Signals an wenigstens einen anderen nicht fehlerhaften Cluster der mehreren Cluster eingerichtet ist.
-
Beispiel 22 ist der Steuerungschip aus Beispiel 20 oder 21, wobei der wenigstens eine Überwachungsschaltkreis in wenigstens einen der mehreren Cluster eingebunden ist.
-
Obwohl die Erfindung insbesondere unter Bezugnahme auf spezielle Ausführungsformen dargestellt und beschrieben worden ist, versteht es sich für einen Fachmann, dass verschiedene Änderungen an Form und Einzelheiten vorgenommen werden können, ohne vom Wesen und Schutzumfang der Erfindung, wie durch die anliegenden Ansprüche definiert, abzuweichen. Der Schutzumfang der Erfindung wird somit durch die angehängten Ansprüche angegeben und alle Änderungen, die in die Bedeutung und den Äquivalenzbereich der Ansprüche fallen, sollen daher eingeschlossen sein.