-
Bestimmte erfindungsgemäße Ausführungsformen betreffen das Vorsehen eines Diagnoseerfassungsbereichs in Berechnungssystemen und -verfahren. Genauer gesagt betreffen bestimmte Ausführungsformen der Erfindung die Generierung von Diagnosesignaturen während der Durchführung von Berechnungen, einschließlich der Neugenerierung von Datenadressen als Neugenerierungsadressensignaturen zum Erkennen vorübergehend auftretender und permanenter Fehler.
-
In sicherheitsrelevanten Systemen verwendete Verarbeitungseinheiten stellen typischerweise über interne Bussysteme eine Verbindung zu internen Teilsystemen, wie zum Beispiel Speicher und Peripherieeinheiten, her. Eine herkömmliche Lösung zum Schützen der Daten und Adresssignale des Busses vor Kommunikationsbeeinträchtigungen besteht darin, mittels Hinzufügen zusätzlicher Kommunikationsleitungen, die Funktionen zur Fehlerkorrektur und -erkennung vorsehen, Redundanz in das System einzubauen. Jedoch kann, teilweise aufgrund von Entwurfsmethodiken „nach dem Stand der Technik”, bei denen einige „Bus”-Strukturen für die Anwendung herkömmlicher Fehlerkorrektur- und -erkennungsfunktionen nicht mehr physisch identifizierbar sind und/oder keinen einfachen Zugriff ermöglichen, das Abschätzen von Fehlerwahrscheinlichkeiten von Kommunikationskanälen berechnungsintensiv und unpräzise sein. In typischen Systemen werden die Logiken, die der Adressierung von Schnittstellen oder Verarbeitungseinheiten zugrunde liegen, wie beispielsweise die Logik, die Adressendecodierern und Adressbussen innerhalb von Speichern und Peripherieeinheiten außerhalb der Verarbeitungseinheit zugeordnet ist, mittels herkömmlicher Fehlerkorrektur- und -erkennungsfunktionen nicht geschützt.
-
Ferner sieht die herkömmliche Redundanz und/oder Algorithmenvielfalt eine typische Lösung hinsichtlich eines ausfallsicheren Betriebs von Verarbeitungseinheiten vor. Zum Beispiel kann ein Verarbeitungskanal mit dem Zeitmultiplex-Verfahren betrieben werden, um zwei (oder mehr) verschiedene Algorithmen durchzuführen, deren Ergebnisse periodisch auf Konsistenz und/oder Plausibilität gegengeprüft werden. Alternativ dazu kann ein einzelner Algorithmus zeitlich getrennt auf zwei (oder mehr) Verarbeitungskanälen ausgeführt werden, und seine Ergebnisse werden ebenfalls periodisch auf Konsistenz und/oder Plausibilität gegengeprüft.
-
Wenn jedoch das Zeitmultiplexen eines einzelnen Verarbeitungskanals genutzt wird, muss der Anwendungsentwickler mehrere verschiedene Algorithmen erstellen, eine geeignete „Bestanden”-Grenze für die jeweiligen Ergebnissätze definieren und die zeitliche Einteilung des Zeitmultiplexens überwachen. Ferner ist die Ausfallreaktionszeit des Systems auf die Zeit begrenzt, die für die vollständige Berechnung der verschiedenen Algorithmen erforderlich ist.
-
Wenn Doppelverarbeitung eines einzelnen Algorithmus verwendet wird, muss jeder Verarbeitungskanal unabhängig sein, sodass systematische Mehrfachausfälle minimiert werden und der Ausfall in einem Kanal den anderen Kanal nicht beeinträchtigt. Zudem müssen die von der Berechnung verwendeten Daten gegen Datenbeschädigung geschützt werden, und die Software und der Software-Entwicklungsprozess müssen eine nachgewiesene Qualität aufweisen.
-
Es wäre wünschenswert, einen umfassenden, effizienten Diagnoseerfassungsbereich für mit dem Betrieb einer Verarbeitungseinheit innerhalb eines Berechnungssystems verbundene Berechnungsfehler vorzusehen, einschließlich eines mit der Übertragung und Speicherung von Daten innerhalb interner Teilsysteme von Peripherieeinheiten und Speichern des Berechnungssystems verbundenen Fehlererfassungsbereichs.
-
KURZE ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß einer erfindungsgemäßen Ausführungsform weist ein Mikrocontroller eine Verarbeitungseinheit, die eine Vielzahl von Ablaufprotokollsignalen generieren kann, eine Signaturanalyseeinheit, die mit der Verarbeitungseinheit und mit einer zweiten Signaturanalyseeinheit einer zweiten Verarbeitungseinheit über eine Signaturen-Pipe gekoppelt ist, und eine mit der Signaturanalyseeinheit gekoppelte Port-Logikeinheit auf. In einer Ausführungsform weist die Vielzahl von Ablaufprotokollsignalen Eingangsdaten, eine Eingangsdatenadresse, einen oder mehrere interne Zustände der Verarbeitungseinheit, Ausgangsdaten und eine Ausgangsdatenadresse auf. Die Signaturanalyseeinheit kann eine erste Vielzahl von Signaturen auf der Grundlage von einem oder mehreren Ablaufprotokollsignalen der Vielzahl von Ablaufprotokollsignalen generieren, eine zweite Vielzahl von entsprechenden Signaturen über die Signaturen-Pipe empfangen, jede Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von Signaturen vergleichen und ein erstes Fehlersignal generieren, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt. Die Port-Logik kann auf der Grundlage des ersten Fehlersignals ein Signal zur Vorrichtungsdeaktivierung generieren.
-
Gemäß einer weiteren erfindungsgemäßen Ausführungsform weist eine Signaturanalyseeinheit zur Verwendung mit einer Verarbeitungseinheit eines Mikrocontrollers und mit einer oder mehreren Verarbeitungseinheiten eines oder mehrerer weiterer Mikrocontroller eine Signaturgenerierungseinheit auf, die eine Vielzahl von Ablaufprotokollsignalen von der Verarbeitungseinheit empfangen und eine erste Vielzahl von Signaturen auf der Grundlage eines oder mehrerer Ablaufprotokollsignale der empfangenen Vielzahl von Ablaufprotokollsignalen generieren kann, einen ersten FIFO-Puffer, der die erste Vielzahl von Signaturen empfangen kann, einen zweiten FIFO-Puffer, der eine Vielzahl entsprechender Signaturen auf der Grundlage einer Vielzahl entsprechender Ablaufprotokollsignale, die mittels einer oder mehrerer der weiteren Verarbeitungseinheiten generiert wurden, empfangen kann, und einen Signaturenkomparator, der die erste Vielzahl von Signaturen und die Vielzahl entsprechender Signaturen empfangen, jede Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der Vielzahl von entsprechenden Signaturen vergleichen und ein erstes Fehlersignal generieren kann, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt.
-
In einer weiteren erfindungsgemäßen Ausführungsform weist ein System einen eine Verarbeitungseinheit aufweisenden Mikrocontroller, der eine Vielzahl von Ablaufprotokollsignalen generieren kann, und eine Signaturanalyseeinheit, die mit der Verarbeitungseinheit und mit einer zweiten Signaturanalyseeinheit einer zweiten Verarbeitungseinheit über eine Signaturen-Pipe gekoppelt ist, und einen mit dem Mikrocontroller gekoppelten Speicher auf. Die Signaturanalyseeinheit kann eine erste Vielzahl von Signaturen auf der Grundlage von einem oder mehreren Ablaufprotokollsignalen der Vielzahl von Ablaufprotokollsignalen generieren, eine zweite Vielzahl von entsprechenden Signaturen über die Signaturen-Pipe empfangen, jede Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen vergleichen und ein erstes Fehlersignal generieren, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt. In einer Ausführungsform weist die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur auf.
-
Ferner weist der Speicher einen Adressendecodierer auf, der eine mit einer Leseanforderung für die in dem Speicher gespeicherten Eingangsdaten verbundene Eingangsdatenadresse empfangen kann, und eine Adressenneugenerierungseinheit, die auf der Grundlage von Bit- und Wortleitungen, die beim Lesen der Eingangsdaten aus dem Speicher angesteuert werden, eine Neugenerierungsadressensignatur generieren kann. Die Signaturanalyseeinheit kann die Neugenerierungsadressensignatur empfangen und eine Eingangsadressensignatur (auf der Grundlage der Eingangsdatenadresse) mit der Neugenerierungsadressensignatur vergleichen und ein zweites Fehlersignal generieren, wenn der Vergleich eine Nichtübereinstimmung ergibt.
-
Gemäß einer weiteren erfindungsgemäßen Ausführungsform umfasst ein Verfahren zum Verarbeiten von Daten mittels eines Mikrocontrollers mit einer Verarbeitungseinheit das Senden einer Eingangsdatenadresse an einen Speicher als Teil einer Leseanforderung für in dem Speicher gespeicherte Eingangsdaten, das Empfangen der Eingangsdaten von dem Speicher, das Generieren einer Vielzahl von Ablaufprotokollsignalen, wobei eines oder mehrere der Vielzahl von Ablaufprotokollsignalen auf den Eingangsdaten, der Eingangsdatenadresse, einem oder mehreren internen Verarbeitungszuständen der Verarbeitungseinheit, Ausgangsdaten und einer Ausgangsdatenadresse basieren, das Generieren einer ersten Vielzahl von Signaturen auf der Grundlage der Vielzahl von Ablaufprotokollsignalen, das Empfangen einer zweiten Vielzahl von entsprechenden Signaturen von einem zweiten Mikrocontroller, das Vergleichen jeder Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen, das Generieren eines ersten Fehlersignals, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt, und das Nutzen des ersten Fehlersignals, um ein oder mehrere Deaktivierungssignale zum Deaktivieren des Betriebs einer oder mehrerer von dem Mikrocontroller gesteuerter Vorrichtungen zu generieren.
-
Gemäß einem Aspekt wird ein Mikrocontroller bereitgestellt, der Folgendes aufweist:
eine Verarbeitungseinheit, die eine Vielzahl von Ablaufprotokollsignalen generieren kann, wobei eines oder mehrere Ablaufprotokollsignale der Vielzahl von Ablaufprotokollsignalen Eingangsdaten, eine Eingangsdatenadresse, einen oder mehrere interne Zustände der Verarbeitungseinheit, Ausgangsdaten und eine Ausgangsdatenadresse aufweisen;
eine mit der Verarbeitungseinheit und mit einer zweiten Signaturanalyseeinheit einer zweiten Verarbeitungseinheit über eine Signaturen-Pipe gekoppelte Signaturanalyseeinheit, wobei die Signaturanalyseeinheit folgende Vorgänge durchführen kann:
Generieren einer ersten Vielzahl von Signaturen auf der Grundlage eines oder mehrerer Ablaufprotokollsignale der Vielzahl von Ablaufprotokollsignalen, Empfangen einer zweiten Vielzahl entsprechender Signaturen über die Signaturen-Pipe;
Vergleichen jeder Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen, und
Generieren eines ersten Fehlersignals, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt; und
eine mit der Signaturanalyseeinheit gekoppelte Port-Logik, wobei die Port-Logikeinheit auf der Grundlage des ersten Fehlersignals ein Signal zur Vorrichtungsdeaktivierung generieren kann.
-
Vorteilhaft weist die Signaturanalyseeinheit Folgendes auf:
eine Signaturgenerierungseinheit, die eine Vielzahl von Ablaufprotokoll-Verarbeitungsblöcken aufweist, wobei die Vielzahl von Ablaufprotokoll-Verarbeitungsblöcken die Vielzahl von Ablaufprotokollsignalen empfangen kann und die erste Vielzahl von Signaturen auf der Grundlage des einen Ablaufprotokollsignals oder der mehreren Ablaufprotokollsignale der Vielzahl von Ablaufprotokollsignalen die erste Vielzahl von Signaturen generieren kann;
einen ersten Speicherpuffer, der die erste Vielzahl von Signaturen empfangen kann;
einen zweiten Speicherpuffer, der die zweite Vielzahl von entsprechenden Signaturen empfangen kann; und
einen Signaturenkomparator, der eine Vielzahl von Signaturverarbeitungsblöcken aufweist, wobei die Vielzahl von Signaturverarbeitungsblöcken die erste Vielzahl von Signaturen und die zweite Vielzahl von entsprechenden Signaturen empfangen, jede Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen vergleichen und das erste Fehlersignal generieren kann, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt.
-
Vorteilhaft weist die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur auf.
-
Vorteilhaft kann der zweite Speicherpuffer ferner eine Neugenerierungsadressensignatur von einem externen Speicher empfangen und der Signaturenkomparator ferner die Eingangsadressensignatur mit der Neugenerierungsadressensignatur vergleichen und ein zweites Fehlersignal generieren, wenn der Vergleich eine Nichtübereinstimmung ergibt, wobei die Neugenerierungsadressensignatur auf Bit- und Wortleitungen basiert, die in dem externen Speicher angesteuert werden, wenn auf die in dem externen Speicher gespeicherten Eingangsdaten zugegriffen wird, und die Eingangsadressensignatur auf der Eingangsdatenadresse basiert, die beim Anfordern der Eingangsdaten an den externen Speicher gesendet wurde.
-
Vorteilhaft handelt es sich bei dem externen Speicher um einen Programmspeicher, einen Datenspeicher oder den Speicher einer Peripherievorrichtung.
-
Vorteilhaft weist der Mikrocontroller ferner eine mit dem Signaturenkomparator gekoppelte Neuabruf-/Antisperreinheit auf, wobei die Neuabruf-/Antisperreinheit bei Empfang des zweiten Fehlersignals die Anforderung für die Eingangsdaten aus dem externen Speicher wiederholen kann.
-
Vorteilhaft kann die Neuabruf-/Antisperreinheit ferner die Anforderung für die Eingangsdaten aus dem externen Speicher nur wiederholen, wenn das zweite Fehlersignal weniger oder gleich oft wie eine vorbestimmte Maximalanzahl empfangen wird.
-
Vorteilhaft kann die Port-Logikeinheit ferner das Signal zur Vorrichtungsdeaktivierung an eine mittels des Mikrocontrollers gesteuerte Vorrichtung übertragen.
-
Vorteilhaft ist der Mikrocontroller auf einem ersten Rohchip ausgebildet.
-
Vorteilhaft sind die zweite Signaturanalyseeinheit und die zweite Verarbeitungseinheit Bestandteile eines zweiten, auf dem ersten Rohchip ausgebildeten Mikrocontrollers.
-
Vorteilhaft sind die zweite Signaturanalyseeinheit und die zweite Verarbeitungseinheit Bestandteile eines zweiten, auf einem zweiten Rohchip ausgebildeten Mikrocontrollers.
-
Gemäß einem weiteren Aspekt wird eine Signaturanalyseeinheit bereitgestellt zur Verwendung mit einer Verarbeitungseinheit eines Mikrocontrollers und einer oder mehreren Verarbeitungseinheiten eines oder mehrerer Mikrocontroller, wobei die Verarbeitungseinheit des Mikrocontrollers eine Vielzahl von Ablaufprotokollsignalen generiert, die Eingangsdaten, eine Eingangsdatenadresse, einen oder mehrere interne Zustände der Verarbeitungseinheit, Ausgangsdaten und eine Ausgangsdatenadresse aufweisen, und jede der ein oder mehreren Verarbeitungseinheiten eine Vielzahl von entsprechenden Ablaufprotokollsignalen generiert, wobei die Signaturanalyseeinheit Folgendes aufweist:
eine Signaturgenerierungseinheit, welche die Vielzahl von Ablaufprotokollsignalen empfangen und eine erste Vielzahl von Signaturen auf der Grundlage eines oder mehrerer Ablaufprotokollsignale der empfangenen Vielzahl von Ablaufprotokollsignalen generieren kann;
einen ersten Speicherpuffer, der die erste Vielzahl von Signaturen empfangen kann;
einen zweiten Speicherpuffer, der eine Vielzahl von entsprechenden Signaturen auf der Grundlage der mittels einer oder mehrerer weiterer Verarbeitungseinheiten generierten Vielzahl von entsprechenden Ablaufprotokollsignalen empfangen kann; und
einen Signaturenkomparator, der die erste Vielzahl von Signaturen und die Vielzahl von entsprechenden Signaturen empfangen, jede Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen vergleichen und ein erstes Fehlersignal generieren kann, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt.
-
Vorteilhaft weist die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur auf.
-
Vorteilhaft kann der zweite FIFO-Puffer ferner eine Neugenerierungsadressensignatur von einem Speicher außerhalb des Mikrocontrollers empfangen und der Signaturenkomparator ferner die Eingangsadressensignatur mit der Neugenerierungsadressensignatur vergleichen und ein zweites Fehlersignal generieren, wenn der Vergleich eine Nichtübereinstimmung ergibt, wobei die Neugenerierungsadressensignatur auf Bit- und Wortleitungen basiert, die in dem externen Speicher angesteuert werden, wenn die Verarbeitungseinheit in einer Leseanforderung für die in dem externen Speicher gespeicherten Eingangsdaten die Eingangsdatenadresse an den externen Speicher sendet und die Eingangsadressensignatur auf der Eingangsdatenadresse basiert.
-
Gemäß einem weiteren Aspekt weist ein System das Folgende auf:
einen Mikrocontroller, der Folgendes aufweist:
eine Verarbeitungseinheit, die eine Vielzahl von Ablaufprotokollsignalen generieren kann, wobei eines oder mehrere Ablaufprotokollsignale der Vielzahl von Ablaufprotokollsignalen Eingangsdaten, eine Eingangsdatenadresse, einen oder mehrere interne Zustände der Verarbeitungseinheit, Ausgangsdaten und eine Ausgangsdatenadresse aufweisen;
eine mit der Verarbeitungseinheit und mit einer zweiten Signaturanalyseeinheit einer zweiten Verarbeitungseinheit über eine Signaturen-Pipe gekoppelte Signaturanalyseeinheit, wobei die Signaturanalyseeinheit folgende Vorgänge durchführen kann:
Generieren einer ersten Vielzahl von Signaturen auf der Grundlage eines oder mehrerer Ablaufprotokollsignale der Vielzahl von Ablaufprotokollsignalen, wobei die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur aufweist,
Empfangen einer zweiten Vielzahl entsprechender Signaturen über die Signaturen-Pipe;
Vergleichen jeder Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen, und
Generieren eines ersten Fehlersignals, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt; und
einen mit dem Mikrocontroller gekoppelten Speicher, wobei der Speicher Folgendes aufweist:
einen Adressendecodierer, der die mit einer Leseanforderung für die in dem Speicher gespeicherten Eingangsdaten verbundene Eingangsdatenadresse empfangen kann, und
eine Adressenneugenerierungseinheit, die auf der Grundlage von Bit- und Wortleitungen, die beim Lesen der Eingangsdaten aus dem Speicher angesteuert werden, eine Neugenerierungsadressensignatur generieren kann, wobei
die Signaturanalyseeinheit ferner die Neugenerierungsadressensignatur empfangen und die Eingangsadressensignatur mit der Neugenerierungsadressensignatur vergleichen und ein zweites Fehlersignal generieren kann, wenn der Vergleich eine Nichtübereinstimmung ergibt, wobei die Eingangsadressensignatur auf der Eingangsdatenadresse basiert.
-
Vorteilhaft weist das System ferner eine mit der Signaturanalyseeinheit gekoppelte Port-Logik auf, wobei die Port-Logikeinheit auf der Grundlage des ersten Fehlersignals ein Signal zur Vorrichtungsdeaktivierung generieren kann.
-
Vorteilhaft weist das System ferner eine mit der Signaturanalyseeinheit gekoppelte Neuabruf-/Antisperreinheit auf, wobei die Neuabruf-/Antisperreinheit auf der Grundlage des zweiten Fehlersignals die Leseanforderung für die in dem Speicher gespeicherten Eingangsdaten wiederholen kann.
-
Gemäß einem weiteren Aspekt wird ein Verfahren bereitgestellt zum Verarbeiten von Daten mittels eines Mikrocontrollers, wobei der Mikrocontroller eine Verarbeitungseinheit aufweist, wobei das Verfahren Folgendes umfasst:
Senden einer Eingangsdatenadresse an einen Speicher als Teil einer Leseanforderung für in dem Speicher gespeicherte Eingangsdaten;
Empfangen der Eingangsdaten aus dem Speicher;
Generieren einer Vielzahl von Ablaufprotokollsignalen, wobei eines oder mehrere der Vielzahl von Ablaufprotokollsignalen auf den Eingangsdaten, auf der Eingangsdatenadresse, auf einem oder mehreren internen Verarbeitungszuständen der Verarbeitungseinheit, auf Ausgangsdaten und auf einer Ausgangsdatenadresse basieren;
Generieren einer ersten Vielzahl von Signaturen auf der Grundlage der Vielzahl von Ablaufprotokollsignalen;
Empfangen einer zweiten Vielzahl von entsprechenden Signaturen von einem zweiten Mikrocontroller;
Vergleichen jeder Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen;
Generieren eines ersten Fehlersignals, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt; und
Nutzen des ersten Fehlersignals, um ein oder mehrere Deaktivierungssignale zum Deaktivieren des Betriebs von einer oder mehreren von dem Mikrocontroller gesteuerten Vorrichtungen zu generieren.
-
Vorteilhaft weist die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur auf.
-
Vorteilhaft umfasst das Verfahren ferner Folgendes:
Empfangen einer Neugenerierungsadressensignatur aus dem Speicher, wobei die Neugenerierungsadressensignatur auf Bit- und Wortleitungen basiert, die beim Lesen der Eingangsdaten aus dem Speicher angesteuert werden;
Vergleichen der Neugenerierungsadressensignatur mit der Eingangsadressensignatur;
Generieren eines zweiten Fehlersignals, wenn der Vergleich eine Nichtübereinstimmung ergibt; und
Nutzen des zweiten Fehlersignals, um das Senden der Eingangsdatenadresse an den Speicher als Teil einer zweiten Leseanforderung für die in dem Speicher gespeicherten Eingangsdaten zu wiederholen.
-
Gemäß einem Aspekt wird ein System bereitgestellt zum Verarbeiten von Daten mittels eines Mikrocontrollers, wobei der Mikrocontroller eine Verarbeitungseinheit aufweist und wobei das System Folgendes aufweist:
Mittel zum Senden einer Eingangsdatenadresse an einen Speicher als Teil einer Leseanforderung für in dem Speicher gespeicherte Eingangsdaten;
Mittel zum Empfangen der Eingangsdaten aus dem Speicher;
Mittel zum Generieren einer Vielzahl von Ablaufprotokollsignalen, wobei eines oder mehrere der Ablaufprotokollsignale auf den Eingangsdaten, den Eingangsadressdaten, einem oder mehreren internen Verarbeitungszuständen der Verarbeitungseinheit, Ausgangsdaten und einer Ausgangsdatenadresse basieren;
Mittel zum Generieren einer ersten Vielzahl von Signaturen auf der Grundlage von Ablaufprotokollsignalen, wobei die erste Vielzahl von Signaturen eine Eingangsdatensignatur, eine Eingangsadressensignatur, eine Verarbeitungszustandssignatur, eine Ausgangsdatensignatur und eine Ausgangsadressensignatur aufweist;
Mittel zum Empfangen einer zweiten Vielzahl von entsprechenden Signaturen von einem zweiten Mikrocontroller;
Mittel zum Vergleichen jeder Signatur der ersten Vielzahl von Signaturen mit jeder entsprechenden Signatur der zweiten Vielzahl von entsprechenden Signaturen;
Mittel zum Generieren eines ersten Fehlersignals, wenn der Vergleich wenigstens eine Nichtübereinstimmung ergibt; und
Mittel zum Nutzen des ersten Fehlersignals, um ein oder mehrere Deaktivierungssignale zum Deaktivieren des Betriebs von einer oder mehreren von dem Mikrocontroller gesteuerten Vorrichtungen zu generieren.
-
Vorteilhaft weist das System ferner Folgendes auf:
Mittel zum Empfangen einer Neugenerierungsadressensignatur aus dem Speicher, wobei die Neugenerierungsadressensignatur auf Bit- und Wortleitungen basiert, die beim Lesen der Eingangsdaten aus dem Speicher angesteuert werden;
Mittel zum Vergleichen der Neugenerierungsadressensignatur mit der Eingangsadressensignatur;
Mittel zum Generieren eines zweiten Fehlersignals, wenn der Vergleich eine Nichtübereinstimmung ergibt; und
Mittel zum Nutzen des zweiten Fehlersignals, um das Senden der Eingangsdatenadresse an den Speicher als Teil einer zweiten Leseanforderung für die in dem Speicher gespeicherten Eingangsdaten zu wiederholen.
-
Diese und weitere Vorteile, Aspekte und neuartige Merkmale der vorliegenden Erfindung sowie Einzelheiten einer veranschaulichten Ausführungsform davon sind anhand der folgenden Beschreibung und der Zeichnungen besser verständlich.
-
KURZE BESCHREIBUNG MEHRERER ANSICHTEN DER ZEICHNUNGEN
-
1 ist ein Schemadiagramm eines computergestützten Verarbeitungssystems gemäß einer erfindungsgemäßen Ausführungsform;
-
2 ist ein Schemadiagramm des in 1 veranschaulichten Programmspeichers gemäß einer erfindungsgemäßen Ausführungsform;
-
3 ist ein Schemadiagramm der Signaturanalyseeinheit des in 1 veranschaulichten Mikrocontrollers gemäß einer erfindungsgemäßen Ausführungsform;
-
4 ist ein Schemadiagramm, das zwei auf einem einzelnen Rohchip integrierte Mikrocontroller gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
5 ist ein Schemadiagramm, das zwei aufgetrennten Rohchips integrierte Mikrocontroller gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht; und
-
6 ist ein Schemadiagramm, das die Kreuzkopplung von auf getrennten Chips integrierten Mikrocontrollern gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
1 ist ein Schemadiagramm eines computergestützten Verarbeitungssystems 100 gemäß einer erfindungsgemäßen Ausführungsform. Das computergestützte Verarbeitungssystem 100 weist als Bestandteile einen Mikrocontroller 105, einen Programmspeicher 110 und/oder einen Datenspeicher 115 und/oder einen oder mehrere periphere Speicher 120 auf. Wie veranschaulicht, werden der Mikrocontroller 105, der Programmspeicher 110, der Datenspeicher 115 und der eine oder die mehreren peripheren Speicher 120 auf getrennten Rohchips (oder getrennten Mikrochips) vorgesehen, der Schutzumfang der vorliegenden Erfindung deckt jedoch eine beliebige Anzahl von Rohchips (oder Mikrochips) ab, die diverse Kombinationen der Bestandteile des computergestützten Verarbeitungssystems 100 vorsehen.
-
Der Mikrocontroller 105 weist einen oder mehrere Datenpuffer 125, die mit einem oder mehreren internen Speichern (nicht gezeigt) über Systembusse (nicht gezeigt) und mit einem oder mehreren Speichern außerhalb des Chips (nicht gezeigt) über die Systembusse gekoppelt sein können, und einen oder mehrere Speichercontroller und/oder E/A-Schnittstellen (nicht gezeigt) auf. Die internen und externen Speicher können jegliche Kombination von flüchtigem Schreib-Lese-Speicher (RAM) und nichtflüchtigem Nur-Lese-Speicher (ROM) zum Speichern eines Betriebssystems (OS) und eingebetteter und/oder nicht eingebetteter Programmanwendungen aufweisen.
-
Der Mikrocontroller 105 weist einen oder mehrere Adressengeneratoren 130, eine Verarbeitungseinheit 135, eine Signaturanalyseeinheit 140, eine Neuabruf-/Antisperreinheit 145 und eine Port-Logikeinheit 150 auf. Bei der Verarbeitungseinheit 135 kann es sich zum Beispiel um einen Mikroprozessor, eine zentrale Verarbeitungseinheit oder um einen beliebigen anderen Typ eines den Fachleuten auf dem Gebiet bekannten Verarbeitungssystems handeln, das so konfiguriert ist, dass es Eingangsdaten (das heißt Lesedaten), entsprechende Speicheradressen der Eingangsdaten (das heißt Eingangsdatenadressen) und Programmanwendungsanweisungen empfängt, die Programmanwendungsanweisungen ausführt und Ausgangsdaten (Schreibdaten) und entsprechende Speicheradressen der Ausgangsdaten (das heißt Ausgangsdatenadressen) generiert. Einige oder alle der Adressen, Daten sowie Informationen, die einem oder mehreren internen Zuständen der Verarbeitungseinheit 135 entsprechen, können als Ablaufprotokollsignale 155 von der Verarbeitungseinheit 135 an die Signaturanalyseeinheit 140 übertragen werden. In einer Ausführungsform werden die Ablaufprotokollsignale 155 mittels Verarbeitungs-Pipelines 160 der Verarbeitungseinheit 135 generiert. Bei den den internen Zuständen entsprechenden Informationen kann es sich um Informationen handeln, die dem internen Betrieb der Verarbeitungseinheit 135 entsprechen, wie beispielsweise Befehlscodes, Bitschalter, Verzweigungen, Interrupt-Zustände sowie zum Beispiel weitere Zustandsinformationen.
-
Wie den Fachleuten auf dem Gebiet bekannt ist, werden Fehlerkorrekturcodes (ECC) verwendet, um Daten- und Datenadressenübertragungen mittels Aufspüren und Korrigieren von Übertragungsfehlern zu prüfen. Die Fehlerkorrektur stellt sicher, dass die von den Datenpuffern 125 und Adressengeneratoren 130 an den Programmspeicher 110 bzw. den Datenspeicher 115 und den einen oder die mehreren peripheren Speicher 120 gesendeten Daten und die den Daten entsprechenden Adressen (das heißt Datenadressen) ohne Übertragungsfehler empfangen werden. Wenn die Fehlerkorrektur einen Fehler in der Übertragung der Daten und/oder Datenadressen angibt, müssen möglicherweise entweder die Daten und/oder Datenadressen erneut übertragen werden, oder der Programmspeicher 110, der Datenspeicher 115 und/oder der periphere Speicher 120 können die empfangenen Fehlerkorrekturcodes zum Korrigieren der entsprechenden Fehler bei der Übertragung der Daten und/oder Datenadressen in Echtzeit verwenden, oder der Mikrocontroller 105 kann Deaktivierungssignale generieren, die zum Beispiel eine oder mehrere Vorrichtungen oder Teilsysteme, die von dem Mikrocontroller 105 gesteuert werden, außer Betrieb setzen.
-
Zudem kann die Verarbeitungseinheit 135 Eingangsdaten (das heißt Lesedaten) von den Datenpuffern 125 empfangen und Ausgangsdaten (also Schreibdaten), (das heißt Daten, die zum Beispiel mittels der Verarbeitungseinheit generiert wurden) an die Datenpuffer 125 übertragen. Die Verarbeitungseinheit 135 kann außerdem Eingangsdatenadressen (das heißt Lesedatenadressen) über die Adressengeneratoren 130 empfangen und kann Adressinformationen entsprechend den generierten Daten (das heißt Ausgangs- oder Schreibdaten) an die Adressgeneratoren 130 zur Übersetzung in Ausgangsdatenadressen übertragen.
-
In dem Betrieb empfängt die Signaturanalyseeinheit 140 die Ablaufprotokollsignale 155 von den Pipelines 160 der Verarbeitungseinheit 135 und Neugenerierungsadressensignaturen von einem oder mehreren der Programmspeicher 110, Datenspeicher 115 und peripheren Speicher 120 (die gemeinsam auch als externer Speicher bezeichnet werden) auf der Grundlage von Bit- und Wortleitungen, die in dem externen Speicher angesteuert werden, wenn auf die in dem externen Speicher gespeicherten Eingangsdaten zugegriffen wird. Die Neugenerierungsadressensignaturen werden nachfolgend in Verbindung mit 2 ausführlicher behandelt.
-
Die Signaturanalyseeinheit 140 kann eine Diagnose an einem oder mehreren der Eingangsdaten, Ausgangsdaten, internen Zustände der Verarbeitungseinheit 135, Eingangsdatenadressen und Ausgangsdatenadressen (das heißt den Verarbeitungsdiagnosevariablen) durchführen, während diese mittels der Ablaufprotokollsignale übertragen werden, sowie die Neugenerierungsadressensignaturen nutzen, um zu bestimmen, ob entweder vorübergehende oder permanente Fehler, die hinsichtlich der Generierung, Kommunikation (zum Beispiel über intern im Programmspeicher 110, Datenspeicher 115, peripheren Speicher 120 und/oder Mikrocontroller 105 vorhandene Systembusse) und/oder hinsichtlich der Speicherung von beliebigen der Verarbeitungsdiagnosevariablen aufgetreten sind, sowie eine Adressenvalidierung für Lesedaten aus den Speichern 110, 115 und/oder 120 vorsehen. Die Analyse der Verarbeitungsdiagnosevariablen sieht ein Mittel vor, um die Verarbeitungseinheit 135 auf fehlerfreien Betrieb zu prüfen.
-
Wenn einer oder mehrere Fehler erkannt werden, kann der Mikrocontroller 105 eine oder mehrere Aktionen realisieren, einschließlich, aber nicht beschränkt auf das erneute Abrufen von Daten aus dem Programmspeicher 110, Datenspeicher 115 oder einem oder mehreren der peripheren Speicher 120 über die Neuabruf-/Antisperreinheit 145, und/oder das Anwenden einer geeigneten Port-Logik über die Port-Logikeinheit 150, um eine oder mehrere Vorrichtungen oder Teilsysteme, die von dem Mikrocontroller 105 gesteuert werden, außer Betrieb zu setzen. Die Signaturanalyseeinheit 140 wird nachfolgend in Verbindung mit 3 noch ausführlicher behandelt.
-
2 ist ein Schemadiagramm des Programmspeichers 110 von 1 gemäß einer erfindungsgemäßen Ausführungsform. Wie veranschaulicht, weist der Programmspeicher eine Speicheranordnung 202 auf, die eine Vielzahl von Speicherzellen aufweist, die von Wortleitungen 235 und Bitleitungen 240 adressiert werden (das heißt auf die von diesen zugegriffen wird), eine Daten-ECC-Prüf-/Generierungseinheit 205, einen Speicherdatenpuffer 210, eine Adressen-ECC-Prüfeinheit 215, einen Adressendecodierer 220, eine Adressenneugenerierungseinheit 225 zum Generieren und optionalen Codieren von Neugenerierungsadressensignaturen und einen Adresssignaturenpuffer 230. Der Programmspeicher 110 kann außerdem interne Busse (nicht gezeigt) aufweisen, welche die Kommunikation der Adressen, Daten, Fehlerkorrekturcodes und Neugenerierungsadressensignaturen sowie beliebige Signale für systematische Fehler und Steuersignale zwischen den internen Bestandteilen des Programmspeichers 110 vorsehen.
-
Der Speicherdatenpuffer 210 ist so konfiguriert, dass er Schreibdaten von dem Datenpuffer 125 des Mikrocontrollers 105 empfängt, und die Daten-ECC-Prüf-/Generierungseinheit 205 ist so konfiguriert, dass sie einen Fehlerkorrekturcode ECCd, der auf die Schreibdaten angewendet wurde, (auch als ECCd der Schreibdaten bezeichnet) empfängt. Der Adressendecodierer 220 ist so konfiguriert, dass er den empfangenen Schreibdaten entsprechende Schreibdatenadressen empfängt, und die Adressen-ECC-Prüfeinheit 215 ist so konfiguriert, dass sie einen auf die angewendeten Schreibdatenadressen entsprechenden Fehlerkorrekturcode ECCa (auch als ECCa der Schreibdatenadressen bezeichnet) empfängt.
-
In dem Betrieb sieht die Daten-ECC-Prüf-/Generierungseinheit 205 eine Kommunikationsschnittstelle zwischen dem Mikrocontroller 105 und dem Programmspeicher 110 vor, und sie ist so konfiguriert, dass sie die empfangenen Schreibdaten mittels des entsprechenden, empfangenen Fehlerkorrekturcodes ECCd der Schreibdaten überprüft und die empfangenen Schreibdaten und den entsprechenden Fehlerkorrekturcode ECCd gemäß den Bit- und Wortleitungen, die von der entsprechenden, von dem Adressendecodierer 220 empfangenen und decodierten Schreibdatenadresse angesteuert wurden, an die spezifische Speicherzelle überträgt. Die Daten-ECC-Prüf-/Generierungseinheit 205 ist außerdem so konfiguriert, dass sie auf der Grundlage einer Lesedatenadresse von dem Mikrocontroller 105, die von dem Adressendecodierer 220 empfangen (und decodiert) wurde, Lesedaten und einen entsprechenden Fehlerkorrekturcode ECCd von einer spezifischen Zelle in der Speicheranordnung 202 empfängt, die empfangenen Lesedaten unter Verwendung des entsprechenden Fehlerkorrekturcodes ECCd der Lesedaten auf Übertragungsfehler überprüft und die empfangenen Lesedaten und den entsprechenden Fehlerkorrekturcode ECCd der Lesedaten an den Mikrocontroller 105 überträgt.
-
Wie oben erörtert, überprüft die ECC-Prüf-/Generierungseinheit 205 die von dem Mikrocontroller 105 empfangenen Schreibdaten oder die von einer spezifischen Speicherzelle empfangenen Lesedaten unter Verwendung des entsprechenden, empfangenen Fehlerkorrekturcodes ECCd der Schreib- oder Lesedaten auf Übertragungsfehler. In einer Ausführungsform korrigiert die ECC-Prüf-/Generierungseinheit 205 bei Entdeckung eines oder mehrerer Übertragungsfehler die Fehler in den Daten und ermöglicht die Übertragung der Daten und des entsprechenden Fehlerkorrekturcodes ECCd der Daten an das geeignete Ziel (das heißt entweder den Mikrocontroller 105 oder eine Speicherzelle). In einer weiteren Ausführungsform korrigiert die ECC-Prüf-/Generierungseinheit 205 bei Entdeckung einer oder mehrerer Übertragungsfehler die Fehler in den Daten, generiert einen neuen Fehlerkorrekturcode ECCd der korrigierten Daten und ermöglicht die Übertragung der Daten und des entsprechenden neuen Fehlerkorrekturcodes ECCd der Daten an das geeignete Ziel.
-
Die Adressenneugenerierungseinheit 225 generiert auf der Grundlage von spezifischen Bit- und Wortleitungen, die angesteuert werden, wenn gespeicherte Daten aus der Speicheranordnung 202 gelesen werden, eine Neugenerierungsadressensignatur und überträgt die Neugenerierungsadressensignatur über den Adresssignaturenpuffer 230 an den Mikrocontroller 105. Der Programmspeicher 110 kann zum Beispiel von dem Mikrocontroller 105 eine Leseanforderung für Daten empfangen, und/oder der Adressendecodierer 220 kann eine Lesedatenadresse der angeforderten Daten empfangen, und die Adressen-ECC-Prüfeinheit 215 kann den Fehlerkorrekturcode ECCa der Lesedatenadresse empfangen. Nachdem die Adressen-ECC-Prüfeinheit 215 unter Verwendung des empfangenen Fehlerkorrekturcodes ECCa der Lesedatenadresse jede notwendige Fehlerkorrektur an der empfangenen Lesedatenadresse vorgenommen hat, werden die angeforderten Lesedaten und der entsprechende Fehlerkorrekturcode ECCd der angeforderten Lesedaten gemäß den spezifischen, gemäß der empfangenen Lesedatenadresse angesteuerten Bit- und Wortleitungen aus der Speicheranordnung 202 gelesen. Der Mikrocontroller 105 empfängt die angeforderten Lesedaten (das heißt diejenigen, die auch als die Eingangsdaten bezeichnet werden) und den Fehlerkorrekturcode ECCd der angeforderten Lesedaten. Die Adressenneugenerierungseinheit 225 generiert auf der Grundlage der spezifischen Bit- und Wortleitungen, die angesteuert werden, wenn auf die angeforderten Lesedaten von der Speicheranordnung 202 zugegriffen wird, eine Neugenerierungsadressensignatur und überträgt die Neugenerierungsadressensignatur über den Adresssignaturenpuffer 230 an die Signaturanalyseeinheit 140 des Mikrocontrollers 105.
-
In einer Ausführungsform handelt es sich bei der Neugenerierungsadressensignatur um eine verlustfreie Codierung der Neugenerierungsadresse. In einer weiteren Ausführungsform handelt es sich bei der Neugenerierungsadressensignatur um eine unkomprimierte Neugenerierungsadresse. Der Schutzumfang der vorliegenden Erfindung umfasst jedoch eine Neugenerierungsadressensignatur, die als beliebige elektronische Darstellung der bei jedem Zugriff auf die Speicheranordnung 202 tatsächlich angesteuerten Bit- und Wortleitungen verwirklicht ist.
-
Die Neugenerierungsadressensignatur kann vor der Übertragung an den Mikrocontroller 105 in dem Adresssignaturenpuffer 230 gespeichert werden. In einer Ausführungsform wird die Neugenerierungsadressensignatur bei jedem Lese- und/oder Schreibzugriff auf die Speicheranordnung 202 an den Mikrocontroller 105 übertragen. Ein Speicherzugriff erfolgt, wenn Daten, wie beispielsweise ein Datenpaket, entweder gelesen oder in die Speicheranordnung 202 geschrieben werden. Wie nachfolgend in Verbindung mit 3 beschrieben wird, ist die Signaturanalyseeinheit 140 des Mikrocontrollers 105 so konfiguriert, dass sie die Neugenerierungsadressensignatur empfängt und die Adresse auf Konsistenz überprüft. In einer Ausführungsform zum Beispiel vergleicht die Signaturanalyseeinheit 140 die Neugenerierungsadressensignatur mit einer von der Signaturanalyseeinheit 140 auf der Grundlage der Lesedatenadresse generierten Adresssignatur. Da die Verarbeitungseinheit 135, die Eingangsdaten und Eingangsdatenadressen empfängt, sich in einigem Abstand von den Adressendecodierern und Treibern befindet, die zum Steuern der Speicheranordnung 202 verwendet werden, kann die Signaturanalyseeinheit 140 den Status von beliebigen leitfähigen Leitungen bestimmen, die typischerweise den Programmspeicher 110 durchqueren. In einer Ausführungsform kann die Verarbeitungseinheit 135 zudem mit langsameren Technologien oder mit längeren Setup-and-Haltezeit-Taktanforderungen derart konzipiert sein, dass, wenn der erwartete Takt der Adressengeneratoreinheit langsamer ist als erwartet, die Signaturgenerierung dann stärker dem langsameren Takt unterliegt als der Speicher und folglich eine falsche Signatur erzeugt, bevor der Speicher fehlerhafte Daten erzeugen würde. Dies gewährleistet, dass der Signaturmechanismus im Falle einer Taktverletzung immer zuerst ausgelöst wird.
-
In weiteren beispielhaften erfindungsgemäßen Ausführungsformen haben der Datenspeicher 115 und der eine oder die mehreren peripheren Speicher 120 die gleichen Bestandteile mit den gleichen Bezugszeichen wie der Programmspeicher 110 und generieren Neugenerierungsadressensignaturen auf dieselbe Weise.
-
3 ist ein Schemadiagramm der in 1 veranschaulichten Signaturanalyseeinheit 140 des Mikrocontrollers 105 gemäß einer erfindungsgemäßen Ausführungsform. Die Signaturanalyseeinheit 140 weist eine Signaturgenerierungseinheit 305, zwei Signaturen-FIFO-Puffer 310a–310b und einen Signaturenkomparator 315 auf. Die Signaturgenerierungseinheit 305 ist so konfiguriert, dass sie die Ablaufprotokollsignale 155 von den Pipelines 160 der Verarbeitungseinheit 135 empfängt, die Ablaufprotokollsignale verarbeitet, um die Signaturen 312 zu generieren, und die Signaturen 312 zur Nachverarbeitung an einen oder mehrere der Signaturen-FIFO-Puffer 310a–310b sendet.
-
Wie veranschaulicht, weist die Signaturanalyseeinheit 140 die beiden Signaturen-FIFO-Puffer 310a–310b zum Speichern und Abgleichen der mittels zwei verschiedenen Verarbeitungs-Threads der Verarbeitungseinheit 135 generierten Signaturen 312 und/oder zum Speichern und Abgleichen von Signaturen auf, die von zwei verschiedenen Verarbeitungseinheiten stammen. Der Schutzumfang der vorliegenden Erfindung weist jedoch außerdem die Signaturanalyseeinheit 140 auf, die eine beliebige Anzahl von FIFO-Strukturen aufweist, um die Speicherung und den Abgleich von Signaturen zu ermöglichen, die von einer beliebigen Anzahl von Verarbeitungs-Threads pro Verarbeitungseinheit generiert wurden, und/oder von Signaturen, die von einer beliebigen Anzahl verschiedener Verarbeitungseinheiten stammen.
-
In einer Ausführungsform kann eine Signatur ein oder mehrere Signaturfelder aufweisen. Der Signaturenkomparator 315 ist so konfiguriert, dass er ein Signaturfeld bzw. Signaturfelder einer in dem ersten FIFO-Puffer 310a gespeicherten Signatur empfängt und mit einem abgeglichenen (das heißt entsprechenden) Signaturfeld bzw. abgeglichenen Signaturfeldern von in dem zweiten FIFO-Puffer 310b gespeicherten Signaturen vergleicht. Obwohl der Schutzumfang der vorliegenden Erfindung jede beliebige Technik zum Abgleichen zweier oder mehrerer Signaturen abdeckt, kann zum Beispiel jede der Signaturen eines oder mehrere Signaturfelder aufweisen, die aus einem oder mehreren, als Markierung zum Abgleichen der zwei oder mehreren Signaturen verwendeten, eindeutigen Indizes bestehen. Wenn in einer Ausführungsform der Signaturenkomparator 315 ermittelt, dass eine Abweichung (das heißt eine Nichtübereinstimmung) bei irgendeinem des einen oder der mehreren verglichenen Signaturfelder vorliegt, kann der Signaturenkomparator 315 ein „Systemereignis” auslösen. Zum Beispiel kann der Signaturenkomparator 315 eine Hardware-Trap- und/oder Pin-Toggle-Funktion auslösen, die eine oder mehrere von dem Mikrocontroller 105 gesteuerte Vorrichtungen (nicht gezeigt) deaktivieren. In einer weiteren Ausführungsform kann der Signaturenkomparator 315 ein oder mehrere Fehlersignale generieren, die es einer Software oder Firmware ermöglichen, Steuersignale und/oder Anweisungen zum erneuten Abrufen von Daten aus dem Programmspeicher 110 und/oder dem Datenspeicher 115 und/oder dem peripheren Speicher 120 abzusetzen und/oder die Verarbeitungseinheit 135 zu veranlassen, einen oder mehrere Ausführungsschritte der Programmanwendung, die zu der Erzeugung des Fehlersignals bzw. der Fehlersignale führten, zu wiederholen.
-
Wie veranschaulicht, weist die Signaturgenerierungseinheit 305 einen Ablaufprotokollverarbeitungsblock für Eingangsdaten 320a zum Generieren von Eingangsdatensignaturen aus einem oder mehreren der Ablaufprotokollsignale 155, einen Ablaufprotokollverarbeitungsblock für Eingangsadressen 320b zum Generieren von Eingangsadressensignaturen aus einem oder mehreren der Ablaufprotokollsignale 155, einen Ablaufprotokollverarbeitungsblock für den Zustand der CPU 320c (auch als Verarbeitungseinheit bezeichnet) zum Generieren von CPU-Zustandssignaturen aus einem oder mehreren der Ablaufprotokollsignale 155, einen Ablaufprotokollverarbeitungsblock für Ausgangsdaten 320d zum Generieren von Ausgangsdatensignaturen aus einem oder mehreren der Ablaufprotokollsignale 155 und einen Ablaufprotokollverarbeitungsblock für Ausgangsadressen 320e zum Generieren von Ausgangsadressensignaturen aus einem oder mehreren der Ablaufprotokollsignale 155 auf.
-
In einer Ausführungsform handelt es sich bei den Ablaufprotokollverarbeitungsblöcken 320a–320e um fünf Polynom-Algorithmusblöcke für zyklische Redundanzprüfung (CRC). Die Polynom-Algorithmusblöcke für zyklische Redundanzprüfung können bei Ausführung jeder Programmanweisung mittels der Verarbeitungseinheit 135 einen neuen Satz Signaturen generieren. Gemäß einer weiteren Ausführungsform sind die Polynom-Algorithmusblöcke für zyklische Redundanzprüfung geeignet, um nur bei Ausführung einer oder mehrerer spezifischer Code-Anweisungen oder spezifischer Code-Folgen, ob sequenziell oder nicht sequenziell, einen neuen Satz Signaturen zu generieren (oder sie werden so gesteuert), um die Gesamtzahl generierter Signaturen zu begrenzen. In einer Ausführungsform kann eine mittels der Verarbeitungseinheit 135 oder außerhalb der Verarbeitungseinheit 135 ausgeführte Software die Änderung der Variablen und/oder Konstanten ermöglichen, aus denen die Polynom-Algorithmusblöcke für zyklische Redundanzprüfung bestehen, und die Software kann ermöglichen, dass beliebige dieser Variablen und/oder Konstanten von einem Benutzer betrachtet werden können.
-
Die Signaturgenerierungseinheit 305 kann optional ein Eingangsdatenregister (nicht gezeigt) zum Speichern von mittels des Ablaufprotokollverarbeitungsblocks für Eingangsdaten 320a generierten Eingangsdatensignaturen, ein Eingangsadressenregister (nicht gezeigt) zum Speichern von mittels des Ablaufprotokollverarbeitungsblocks für Eingangsadressen 320b generierten Eingangsadressensignaturen, ein CPU-Zustandsregister (nicht gezeigt) zum Speichern von mittels des Ablaufprotokollverarbeitungsblocks für den Zustand der CPU 320c generierten CPU-Zustandssignaturen, ein Ausgangsdatenregister (nicht gezeigt) zum Speichern von mittels des Ablaufprotokollverarbeitungsblocks für Ausgangsdaten 320d generierten Ausgangsdatensignaturen und ein Ausgangsadressenregister (nicht gezeigt) zum Speichern von mittels des Ablaufprotokollverarbeitungsblocks für Ausgangsadressen 320e generierten Ausgangsadressensignaturen aufweisen.
-
Obwohl der Signaturengenerator 305 fünf Ablaufprotokollverarbeitungsblöcke 320a–320e aufweist und optional fünf Signaturregister aufweisen kann, deckt der Schutzumfang der vorliegenden Erfindung eine beliebige Anzahl von Ablaufprotokollverarbeitungsblöcken und eine beliebige Anzahl von entsprechenden Signaturregistern ab.
-
Wie veranschaulicht, weist der erste FIFO-Puffer 310a einen ersten Eingangsdatensignaturpuffer 330a auf, der so konfiguriert ist, dass er erste, von der Signaturgenerierungseinheit 305 empfangene Eingangsdatensignaturen speichert, einen ersten Eingangsadressensignaturpuffer 330b, der so konfiguriert ist, dass er erste, von der Signaturgenerierungseinheit 305 empfangene Eingangsadressensignaturen speichert, einen ersten CPU-Zustandssignaturenpuffer 330c, der so konfiguriert ist, dass er erste, von der Signaturgenerierungseinheit 305 empfangene CPU-Zustandssignaturen speichert, einen ersten Ausgangsdatensignaturpuffer 330d, der so konfiguriert ist, dass er erste, von der Signaturgenerierungseinheit 305 empfangene Ausgangsdatensignaturen speichert, und einen ersten Ausgangsadressensignaturpuffer 330e, der so konfiguriert ist, dass er erste, von der Signaturgenerierungseinheit 305 empfangene Ausgangsadressensignaturen speichert.
-
Der zweite FIFO-Puffer 310b weist einen zweiten Eingangsdatensignaturpuffer 335a auf, der so konfiguriert ist, dass er zweite, über eine Signaturen-Pipe 340 von einer zweiten Signaturgenerierungseinheit (nicht gezeigt) einer zweiten Verarbeitungseinheit (nicht gezeigt) empfangene Eingangsdatensignaturen speichert, einen zweiten Eingangsadressensignaturpuffer 335b, der so konfiguriert ist, dass er zweite, über die Signaturen-Pipe 340 empfangene Eingangsadressensignaturen speichert und/oder über einen mit dem Neugenerierungsadressensignaturpuffer 230 des Programmspeichers 110 gekoppelten Bus 345 empfangene Neugenerierungsadressensignaturen speichert, einen zweiten CPU-Zustandssignaturenpuffer 335c, der so konfiguriert ist, dass er zweite, über die Signaturen-Pipe 340 empfangene CPU-Zustandssignaturen speichert, einen zweiten Ausgangsdatensignaturpuffer 335d, der so konfiguriert ist, dass er zweite, über die Signaturen-Pipe 340 empfangene Ausgangsdatensignaturen speichert, und einen zweiten Ausgangsadressensignaturpuffer 335e, der so konfiguriert ist, dass er zweite, über die Signaturen-Pipe 340 empfangene Ausgangsadressensignaturen speichert.
-
In einer weiteren Ausführungsform werden die über die Signaturen-Pipe 340 empfangenen Signaturen nicht mittels einer zweiten Signaturgenerierungseinheit (nicht gezeigt) einer zweiten Verarbeitungseinheit (nicht gezeigt) generiert, sondern es handelt sich hierbei um Referenzsignaturen. Die Referenzsignaturen sind zum Beispiel die erwarteten Signaturen, die bekannterweise mittels der Verarbeitungseinheit 135 erzeugt werden, die eine vorbestimmte Code-Sequenz verarbeitet.
-
Obwohl die Signaturanalyseeinheit 140 wie veranschaulicht zwei als FIFO-Puffer implementierte Signaturpuffer 310a–310b aufweist, deckt der Schutzumfang der vorliegenden Erfindung beliebige Speicherpuffer ab, wie beispielsweise Ringpuffer, Direktzugriffspuffer, Puffer für verkettete Listen oder eine Kombination aus Speicherstrukturen, welche die von den Signaturgenerierungseinheiten, Signaturen-Pipes und/oder Bussen empfangenen Signaturen Puffern können.
-
In einer Ausführungsform werden eine oder mehrere der ersten Signaturen innerhalb eines ersten Vergleichsfensters 350a und eine oder mehrere der zweiten Signaturen innerhalb eines zweiten Vergleichsfensters 350b periodisch an den Vergleichskomparator 315 übertragen.
-
Der Schutzumfang der vorliegenden Erfindung umfasst Ausführungsformen, in denen die Verarbeitungseinheit 135 und eine zweite Verarbeitungseinheit (nicht gezeigt) auf demselben Rohchip wie der Mikrocontroller oder auf verschiedenen Rohchips integriert sind. In einer weiteren Ausführungsform weist die Signaturanalyseeinheit 140 des Mikrocontrollers 105 drei oder mehr Signaturen-FIFO-Puffer auf, wobei jeder FIFO-Puffer mit einer anderen Signaturgenerierungseinheit gekoppelt ist, die mit einer anderen Verarbeitungseinheit gekoppelt ist.
-
Wie veranschaulicht, weist der Signaturenkomparator 315 einen Verarbeitungsblock für die Eingangsdatensignatur 355a, einen Verarbeitungsblock für die Eingangsadressensignatur 355b, einen Verarbeitungsblock für die CPU-Zustandssignatur 355c, einen Verarbeitungsblock für die Ausgangsdatensignatur 355d und einen Verarbeitungsblock für die Ausgangsadressensignatur 355e auf. In dem Betrieb vergleicht jeder der Verarbeitungsblöcke 355a–355e empfangene erste und zweite Signaturen, und wenn einer oder mehrere der Verarbeitungsblöcke ermitteln, dass die empfangenen ersten und zweiten Signaturen nicht übereinstimmen (das heißt, dass eine Abweichung oder eine Nichtübereinstimmung auftritt), dann generieren der eine oder die mehreren Verarbeitungsblöcke 355a–355e ein oder mehrere Fehlersignale.
-
Bei normalen (das heißt fehlerfreien) Betriebsbedingungen (das heißt, wenn die Signaturanalyseeinheit 140 keine Fehlersignale generiert), generiert die Port-Logikeinheit 150 Systemaktivierungssignale, die den Betrieb anderer Vorrichtungen und/oder Teilsysteme aktivieren, die sich außerhalb des Mikrocontrollers 105 befinden. Wenn in einer Ausführungsform die Port-Logikeinheit 150 ein von dem Signaturenkomparator 315 generiertes Fehlersignal E1 empfängt, generiert der Port-Logikblock 150 ein oder mehrere Systemdeaktivierungssignale, die, teilweise auf der Grundlage, ob das Fehlersignal mittels des Verarbeitungsblocks für die Eingangsdatensignatur 355a und/oder mittels des Verarbeitungsblocks für die Eingangsadressensignatur 355b und/oder mittels des Verarbeitungsblocks für die CPU-Zustandssignatur 355c und/oder mittels des Verarbeitungsblocks für die Ausgangsdatensignatur 355d und/oder mittels des Verarbeitungsblocks für die Ausgangsadressensignatur 355e generiert wurde, den Betrieb einer oder mehrerer Vorrichtungen oder Teilsysteme deaktivieren.
-
Wenn in einer Ausführungsform der Signaturenkomparator 315 aufgrund einer Nichtübereinstimmung zwischen einer Neugenerierungsadressensignatur (die von dem Programmspeicher 110, dem Datenspeicher 115 und/oder dem peripheren Speicher 120 über die zweite Signaturen-Pipe 345 über den zweiten Eingangsadressenpuffer 335b empfangen wurde) und einer entsprechenden ersten, von der Signaturgenerierungseinheit 305 über den ersten Eingangsadressenpuffer 330b empfangenen Eingangsadressensignatur ein Fehlersignal E2 generiert, wobei impliziert ist, dass die Eingangsdaten, die laut Anforderung aus den Speichern 110, 115 und/oder 120 gelesen werden sollten, nicht dieselben sind wie die Daten, die tatsächlich aus den Speichern gelesen wurden, dann sendet die Neuabruf-/Antisperreinheit 145 bei Empfang der Fehlernachricht E2 eine zweite Anforderung zum Lesen der Eingangsdaten aus den Speichern 110, 115 und/oder 120. Der Vergleich der Neugenerierungsadressensignatur, welche die Adresse darstellt, auf die in den Speichern 110, 115 und/oder 120 in Verbindung mit einer Leseanforderung für Eingangsdaten tatsächlich zugegriffen wurde, mit der von der Signaturgenerierungseinheit 305 empfangenen Eingangsadressensignatur, welche die Adresse der angeforderten Eingangsdaten darstellt (das heißt die von dem einen oder den mehreren Adressengeneratoren 130 an die Speicher 110, 115 und/oder 120 gesendete Eingangsdatenadresse) sieht ein System und ein Verfahren zur Adressenvalidierung vor.
-
4 ist ein Schemadiagramm, das zwei auf einem einzelnen Rohchip 410 integrierte Mikrocontroller 405a und 405b gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht. Die Mikrocontroller 405a und 405b können mit dem in 1 abgebildeten Mikrocontroller 105 identisch sein. Wie in 4 veranschaulicht, weist der Rohchip 410 (das heißt ein Mikrocontroller-Rohchip) einen ersten Mikrocontroller 405a auf, der eine erste, mit einer ersten Signaturanalyseeinheit 420a, die mit einer ersten Port-Logikeinheit 425a und einer ersten Neuabruf-/Antisperreinheit 430a gekoppelt ist, gekoppelte Verarbeitungseinheit 415a aufweist, und einen zweiten Mikrocontroller 405b, der eine zweite, mit einer zweiten Signaturanalyseeinheit 420b, die mit einer zweiten Port-Logikeinheit 425b und einer zweiten Neuabruf-/Antisperreinheit 430a gekoppelt ist, gekoppelte Verarbeitungseinheit 415b aufweist.
-
Ein erster Signaturen-FIFO-Puffer 440a empfängt erste Signaturen von einem ersten Signaturengenerator 445a und über eine zweite Signaturen-Pipe 450 zweite Signaturen von einem zweiten Signaturengenerator 445b. Ein zweiter Signaturen-FIFO-Puffer 440b empfängt zweite Signaturen von einem zweiten Signaturengenerator 445b und über eine erste Signaturen-Pipe 455 erste Signaturen von dem ersten Signaturengenerator 445a. In einer Ausführungsform ist der erste Mikrocontroller 405a über einen Rohchip-internen Isolationsmechanismus elektrisch und thermisch von dem zweiten Mikrocontroller 405b isoliert. In einer Ausführungsform kann der Rohchip-interne Isolationsmechanismus einen tiefen Graben aufweisen. Der Schutzumfang der Erfindung deckt weitere Isolationsmechanismen ab, die, ob alleine oder in Kombination implementiert, den Fachleuten auf dem Gebiet bekannt sind.
-
In einer weiteren erfindungsgemäßen Ausführungsform handelt es sich bei den Signaturen-Pipes 450 und 455, im Vergleich zu Bandbreiten typischer Rohchip-interner Verbindungen, um Pipes mit geringer Bandbreite. Die Verwendung von Pipes mit geringer Bandbreite erlaubt es, Einzelstromnetze und -taktsysteme für die Implementierung der Signaturen-Pipes zu verwenden.
-
5 ist ein Schemadiagramm, das zwei auf getrennten Rohchips integrierte Mikrocontroller gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht. Wie veranschaulicht, ist ein erster Mikrocontroller 505a auf einem ersten Rohchip 510a integriert, ein zweiter Mikrocontroller 505b ist auf einem zweiten Rohchip 510b integriert, und der erste und der zweite Mikrocontroller sind mittels serieller Schnittstellen kommunikativ miteinander gekoppelt. In einer Ausführungsform weist der erste Mikrocontroller 505a eine erste doppelte serielle periphere Schnittstelle (erste doppelte SPI) 515a zum Empfangen zweiter Signaturen über eine zweite Pipeline 520 von einer zweiten Signaturgenerierungseinheit 525b einer zweiten Signaturanalyseeinheit 530b und zum Übertragen erster, mittels einer ersten Signaturgenerierungseinheit 525a einer ersten Signaturanalyseeinheit 530a generierter Signaturen an einen zweiten Signaturen-FIFO 535b über eine erste Pipeline 540 auf. Der zweite Mikrocontroller 505b weist eine zweite doppelte SPI 515b zum Empfangen erster Signaturen von der ersten Signaturgenerierungseinheit 525a der ersten Signaturanalyseeinheit 530a über die erste Pipeline 540 und zum Übertragen zweiter, mittels der zweiten Signaturgenerierungseinheit 525b der zweiten Signaturanalyseeinheit 530b generierter Signaturen über die zweite Pipeline 520 an einen ersten Signaturen-FIFO 535a auf.
-
6 ist ein Schemadiagramm, das die Kreuzkopplung von auf getrennten Rohchips integrierten Mikrocontrollern gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht. Wie veranschaulicht, ist ein erster Mikrocontroller 605a auf einem ersten Rohchip 610a integriert, ein zweiter Mikrocontroller 605b ist auf einem zweiten Rohchip 610b integriert, ein dritter Mikrocontroller 605c ist auf einem dritten Rohchip 610c integriert, und Mikrocontroller-Paare sind mittels doppelter SPIs kommunikativ miteinander gekoppelt.
-
In einer Ausführungsform weist der erste Mikrocontroller 605a eine erste doppelte SPI 615a zum Empfangen dritter Signaturen von einer dritten Signaturgenerierungseinheit 625c einer dritten Signaturanalyseeinheit 630c über eine dritte Pipeline 620 und zum Übertragen erster, mittels einer ersten Signaturgenerierungseinheit 625a einer ersten Signaturanalyseeinheit 630a generierter Signaturen über eine erste Pipeline 640 an einen zweiten Signaturen-FIFO 635b auf. Der zweite Mikrocontroller 605b weist eine zweite doppelte SPI 615b zum Empfangen erster Signaturen von der ersten Signaturgenerierungseinheit 625a der ersten Signaturanalyseeinheit 630a über die erste Pipeline 640 und zum Übertragen zweiter, mittels einer zweiten Signaturgenerierungseinheit 625b einer zweiten Signaturanalyseeinheit 630b generierter Signaturen über eine zweite bzw. dritte Pipeline 645 an einen dritten Signaturen-FIFO 635c auf. Der dritte Mikrocontroller 605c weist eine dritte doppelte SPI 615c zum Empfangen zweiter Signaturen von der zweiten Signaturgenerierungseinheit 625b der zweiten Signaturanalyseeinheit 630b über die dritte Pipeline 645 und zum Übertragen dritter, mittels der dritten Signaturgenerierungseinheit 625c der dritten Signaturanalyseeinheit 630c generierter Signaturen über die dritte Pipeline 620 an den ersten Signaturen-FIFO 635a auf.
-
Obwohl 6 kreuzgekoppelte, auf getrennten Rohchips befindliche Mikrocontroller abbildet, deckt der Schutzumfang der Erfindung ähnliche Verbindungsarchitekturen mit Kreuzkopplung ab, wenn sich mehrere Mikrocontroller auf einem einzelnen Rohchip befinden oder wenn sich einige der Mikrocontroller auf einem einzelnen Rohchip und die anderen Mikrocontroller sich auf getrennten Rohchips befinden (das heißt Hybridsysteme). Die asymmetrischen Eigenschaften des Generierens lokaler Signaturen und des Vergleichens mit mittels anderer Verarbeitungseinheiten generierten Signaturen erlaubt den Vergleich einer beliebigen Anzahl von Prozessorkernen in Echtzeit, was den Aufbau von Systemen mit mehreren Kernen, von Systemen mit mehreren Prozessoren und von Hybridsystemen erlaubt. Zudem deckt der Schutzumfang der Erfindung, obwohl 5 und 6 Mikrocontroller veranschaulichen, die doppelte SPIs aufweisen, Mikrocontroller ab, die alle Typen serieller und paralleler Kommunikationsbusse aufweisen.
-
Während die Erfindung unter Bezugnahme auf bestimmte Ausführungsformen beschrieben wurde, werden die Fachleute auf diesem Gebiet verstehen, dass verschiedene Änderungen daran vorgenommen werden können und Äquivalente als Ersatz verwendet werden können, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Zusätzlich können zahlreiche Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne dass dabei von ihrem Schutzumfang abgewichen wird. Daher ist beabsichtigt, dass die vorliegende Erfindung nicht auf die bestimmte, offenbarte Ausführungsform beschränkt ist, sondern dass die vorliegende Erfindung alle Ausführungsformen umfasst, die unter den Schutzumfang der angehängten Ansprüche fallen.