-
Die Erfindung bezieht sich im Allgemeinen auf Prozessoren und Mikroprozessoren und im Besonderen auf Verarbeitungsanordnungen, die für Echtzeit-Fehlerermittlung verwendet werden können, und findet in sicherheitskritischen oder hochintegrierten Systemen Anwendung.
-
Hochintegrierte Software ist in einer Vielzahl weitreichender Anwendungen alltäglich geworden. Beispielsweise haben viele Fahrzeug-, Bank-, Flugzeug-, Verteidigungs-, Internetzahlungs- und andere Anwendungen kritische Pfade, die die Absicherung sicheren Betriebs mittels Redundanz, Diversität oder beidem erfordern.
-
Der allgemeine Lösungsansatz zum Garantieren des sicheren Betriebs eines kritischen Pfads ist, dass zwei Algorithmen berechnet und die Ergebnisse hinsichtlich Konsistenz oder Plausibilität mittels eines unabhängigen Komparators verglichen werden. im Allgemeinen ist dies über zwei verschiedene Verfahren implementiert worden. Erstens können in einem System, das auf einen aktiven Verarbeitungskanal beschränkt ist, zwei (oder mehr) verschiedene Algorithmen zeitlich getrennt berechnet werden. Für diese Ergebnisse wird dann hinsichtlich Konsistenz oder Plausibilität die Gegenprobe gemacht. Zweitens können in einem System mit mehr als einem Verarbeitungskanal identische Algorithmen gleichzeitig berechnet werden, wobei ein Algorithmus auf einen Verarbeitungskanal (einem „Kern”) berechnet wird und die Ergebnisse hinsichtlich Konsistenz verglichen werden. Eine übliche Unterart des zweiten Verfahrens ist der Lösungsansatz des Berechnens eines Algorithmus auf zwei redundanten Verarbeitungskanälen, wobei die beiden Verarbeitungskanäle zeitlich getrennt sind (typischerweise durch einige Taktzyklen). Dieses Unterverfahren ist erwünscht, weil es in Bezug auf harte und weiche Fehler robust sein kann, beispielsweise bei einer Störung, die aus einem Mehrfachereignis, z. B. einem Alphateilchen-Aufprall, wegen der geringen zeitlichen Trennung entsteht. Man hofft, dass das Mehrfachereignis einen Verarbeitungskanal derart stört, dass sich der berechnete Ausgang von dem anderen Verarbeitungskanal unterscheidet. Die Ausgänge dieser Kanäle werden von einem einfachen Komparator verglichen, der bei Bedarf ein Fehlerereignis auslösen kann.
-
Bei der Implementierung mit mehreren zeitlich getrennten Verarbeitungskanälen gibt es einige Nachteile. Das Verzögern des Eingabevorgangs in den Prüferkern und des Ausgangs aus dem primären Kern erfordert, dass eine große Menge Verarbeitungszustand gehalten wird, was Siliziumbereich und Energie kostet. Außerdem steigt die Anzahl der Verzögerungszustände, die erforderlich sind, um die zeitliche Trennung aufrecht zu hatten, mit der Erhöhung der Frequenz der Implementierung. Wiederum kosten mehr Verzögerungszustände zusätzlichen Siliziumbereich und Energie. Des Weiteren müssen die von den jeweiligen Berechnungen verwendeten Daten vor Korruption geschützt werden. Ebenso muss belegt werden, dass der zum Prüfen der Ausgänge verwendete Komparator von Mehrfachausfällen der Verarbeitungskanäle unabhängig ist. Die Qualität des Vergleichs wird softwareabhängig, weil sie sich darauf stützt, dass eine Störung eines Verarbeitungskanals von einem anderen Verarbeitungskanal verschieden ist, aber letztlich von dem tatsächlichen Verarbeitungszustand der Maschinen abhängt.
-
Zusätzlich zu diesen Bedenken ist das vielleicht entscheidendste Problem bei der Implementierung, die tatsächlichen Ausführungen der beiden Verarbeitungskanäle möglichst diversitär zu machen, um Mehrfachausfälle zu reduzieren. Um Integrität zu garantieren muss die Anwendung zeigen, dass jeder Verarbeitungskanal unabhängig ist, so dass Mehrfachausfälle minimiert werden, und dass ein Ausfall in einem Kanal den/die anderen nicht beeinträchtigt. Versuche, Diversität bereitzustellen schließen unter anderem ein: Verwenden verschiedener Aspektverhältnisse für die Siliziumbereiche, Verwenden rotierter Makros der Designs, physikalisches Trennen der Vorgänge, und Planen unterschiedlicher Prozessgeschwindigkeiten der eigentlichen Kerne. Jedoch liefert keiner dieser Versuche eine garantierte, vollständige Absicherung.
-
Die Erfindung löst dieses bzw. weitere Probleme durch die Gegenstände der unabhängigen Ansprüche. Vorteihafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Prozessoren, Mikroprozessoren und Logikblocksysteme und -verfahren, Fehlerermittlungssysteme und -verfahren und integrierte Schaltungen werden offenbart. Bei einer Ausführungsform weist ein logikbasiertes Rechnersystem einen ersten Verarbeitungskern auf, einen zweiten Verarbeitungskern, der aus dem ersten Verarbeitungskern erzeugt wird und ein invertiertes logisches Äquivalent des ersten Verarbeitungskerns aufweist, so dass ein Ausgang des zweiten Verarbeitungskerns ein Komplement eines Ausgangs des ersten Verarbeitungskerns ist, und eine Komparatorlogik, die so gekoppelt ist, dass sie die Ausgänge der ersten und zweiten Verarbeitungskerne als Eingänge empfängt und einen Fehlerausgang liefert, wenn der Ausgang des zweiten Verarbeitungskerns nicht das Komplement des Ausgangs des ersten Verarbeitungskerns ist.
-
Bei einer Ausführungsform weist eine integrierte Schaltung einen ersten Mikroprozessor mit einem Ausgang auf, einen zweiten Mikroprozessor, der aus dem ersten Mikroprozessor erzeugt wird und ein invertiertes logisches Äquivalent des ersten Mikroprozessors aufweist, wobei einer zweite Mikroprozessor einen Ausgang hat; und eine Komparatorschaltung, die an die Ausgänge des ersten Mikroprozessors und den Ausgang des zweiten Mikroprozessors gekoppelt und so konfiguriert ist, dass sie die Ausgänge vergleicht und einen Fehlerausgang liefert, wenn der Ausgang des zweiten Mikroprozessorkerns nicht das Komplement des Ausgangs des ersten Mikroprozessorkerns ist.
-
Bei einer Ausführungsform umfasst ein Verfahren zum Erzeugen eines diversitären Logikblocks das Erzeugen einer höheren Programmiersprache-Beschreibung eines Logikblocks, und für einen ersten Fall der Sprachbeschreibung das Durchführen einer ersten Logiksynthese der Sprachbeschreibung und das Ausführen eines diversitären mikroprozessorerzeugenden Skripts, das Durchführen einer zweiten Logiksynthese und einer Optimierung, das Erzeugen einer Logiknetzliste auf Gateebene, und das Erzeugen eines technologiespezifischen Layouts.
-
Bei einer Ausführungsform umfasst ein Verfahren der Echtzeit-Fehlerermittlung in einem Prozessor das Ausführen eines Befehls durch einen ersten Prozessor, das Ausführen eines Befehls durch einen zweiten Prozessor, das Vergleichen eines Ergebnisses des ersten Prozessors und des zweiten Prozessors, und das Ermitteln eines Fehlers, wenn das Ergebnis des zweiten Prozessors nicht das Komplement des ersten Prozessors ist.
-
Gemäß einem Aspekt der Erfindung wird ein logikbasiertes Computersystem bereitgestellt mit:
einem ersten Verarbeitungskern;
einem zweiten Verarbeitungskern, der aus dem ersten Verarbeitungskern erzeugt wird und ein invertiertes logisches Äquivalent des ersten Verarbeitungskerns aufweist, so dass ein Ausgang des zweiten Verarbeitungskerns ein Komplement eines Ausgangs des ersten Verarbeitungskerns ist; und
Komparatorlogik, die so gekoppelt ist, dass sie die Ausgänge der ersten und zweiten Verarbeitungskerne als Eingänge empfängt und einen Fehlerausgang liefert, wenn der Ausgang des zweiten Verarbeitungskerns nicht das Komplement des Ausgangs des ersten Verarbeitungskerns ist.
-
Vorteilhaft wird der zweite Verarbeitungskern automatisch aus dem ersten Verarbeitungskern erzeugt.
-
Vorteilhaft wird der zweite Verarbeitungskern aus dem ersten Verarbeitungskern durch Verarbeiten einer logischen Beschreibung des ersten Verarbeitungskerns vor oder nach der Logiksynthese der logischen Beschreibung erzeugt.
-
Vorteilhaft ist die Logische Beschreibung VHDL oder Verilog.
-
Vorteilhaft ist ein Eingang des zweiten Verarbeitungskerns eine doppelte Inversion eines Eingangs des ersten Verarbeitungskerns.
-
Vorteilhaft weist der erste Verarbeitungskern und der zweite Verarbeitungskern jeweils ein Zustandsregister auf, und wobei ein Eingang, ein Ausgang und ein Reset-Zustand des Zustandsregisters des zweiten Verarbeitungskerns bezüglich eines Eingangs, eines Ausgangs und eines Reset-Zustands des Zustandsregisters des ersten Verarbeitungskerns invertiert sind.
-
Vorteilhaft ist eine Logikimplementierung des zweiten Verarbeitungskerns ein inverses einer Logikimplementierung des ersten Verarbeitungskerns.
-
Vorteilhaft ist ein Taktsignal des zweiten Verarbeitungskerns bezüglich eines Taktsignals des ersten Verarbeitungskerns invertiert.
-
Vorteilhaft ist ein Ausgang des zweiten Verarbeitungskerns bezüglich eines Ausgangs des ersten Verarbeitungskerns invertiert.
-
Vorteilhaft werden der erste und der zweite Verarbeitungskern aus der Gruppe bestehend aus einem Mikroprozessor, einem Coprozessor, einem Peripheriegerät, einem Speichercontroller, einem digitalen Signalprozessor, einer Kommunikationsschnittstelle und einer Grafikmaschine ausgewählt.
-
Gemäß einem weiteren Aspekt wird eine integrierte Schaltung bereitgestellt mit:
einem ersten Mikroprozessor mit einem Ausgang;
einem zweiten Mikroprozessor, der aus dem ersten Mikroprozessor erzeugt wird und ein invertiertes logisches Äquivalent des ersten Mikroprozessors aufweist, wobei der zweite Mikroprozessor einen Ausgang hat; und
einer Komparatorschaltung, die an den Ausgang des ersten Mikroprozessors und den Ausgang des zweiten Mikroprozessors gekoppelt und so konfiguriert ist, dass sie die Ausgänge vergleicht und einen Fehlerausgang liefert, wenn der Ausgang des zweiten Mikroprozessorkerns nicht das Komplement des Ausgangs des ersten Mikroprozessorkerns ist.
-
Vorteilhaft weist die integrierte Schaltung wenigstens einen Inverter an einem Eingang des zweiten Mikroprozessors auf.
-
Vorteilhaft weist die integrierte Schaltung zwei Inverter an dem Eingang des zweiten Mikroprozessors auf.
-
Vorteilhaft weist der erste Mikroprozessor und der zweite Mikroprozessor jeweils wenigstens ein Zustandsregister auf, und wobei der zweite Mikroprozessor einen Inverter an jedem eines Eingangs und eines Ausgangs des wenigstens einen Zustandsregisters aufweist.
-
Vorteilhaft ist ein Reset-Zustand des wenigstens einen Zustandsregisters des zweiten Mikroprozessors bezüglich eines Reset-Zustands des wenigstens einen Zustandsregisters des ersten Mikroprozessors invertiert.
-
Vorteilhaft ist eine Logikimplementierung des zweiten Mikroprozessors ein Inverses einer Logikimplementierung des ersten Mikroprozessors.
-
Vorteilhaft weist eine Taktsignalleitung des zweiten Mikroprozessorkerns einen Inverter auf.
-
Vorteilhaft weist die integrierte Schaltung einen Inverter an einem Ausgang des zweiten Mikroprozessors auf.
-
Gemäß einem weiteren Aspekt wird ein Verfahren zum Erzeugen eines Diversitätslogikblocks bereitgestellt, das umfasst:
Erzeugen einer höheren Programmiersprache-Beschreibung eines Logikblocks; und
für einen ersten Fall der Sprachbeschreibung,
Durchführen einer ersten Logiksynthese der Sprachbeschreibung und Ausführen eines Diversitäts-Mikroprozessorerzeugungsskripts,
Durchführen einer zweiten Logiksynthese und Optimierung,
Erzeugen einer logischen Netzliste auf Gateebene, und
Erzeugen eines technologiespezifischen Layouts.
-
Vorteilhaft umfaßt das Verfahren des Weiteren:
für einen zweiten Fall der Sprachbeschreibung,
Durchführen einer ersten Logiksynthese der Sprachbeschreibung,
Durchführen einer zweiten Logiksynthese und Optimierung,
Erzeugen einer logischen Netzliste auf Gateebene, und
Erzeugen eines technologiespezifischen Layouts.
-
Vorteilhaft umfaßt das Verfahren des Weiteren das Durchführen einer Diversitätsüberprüfung zwischen dem ersten und dem zweiten Fall nach dem Erzeugen der logischen Netzlisten auf Gateebene.
-
Vorteilhaft umfaßt das Verfahren des Weiteren das Erzeugen eines ursprünglichen Prozessors und eines Diversitätsprozessors, wobei der Diversitätsprozessor ein invertiertes logisches Äquivalent des ursprünglichen Prozessors ist.
-
Vorteilhaft umfaßt das Verfahren des Weiteren das Definieren des Diversitäts-Prozessorerzeugungsskripts.
-
Vorteilhaft weist die höhere Programmiersprache-Beschreibung eine Registertransferebene (Register Transfer Level(RTL))-Beschreibung auf.
-
Gemäß einem weiteren Aspekt wird ein Verfahren zur Echtzeit-Fehlerermittlung in einem Prozessor bereitgestellt, das umfasst:
Ausführen eines Befehls durch einen ersten Prozessor;
Ausführen eines Befehls durch einen zweiten Prozessor;
Vergleichen des Ergebnisses des ersten Prozessors und des zweiten Prozessors; und
Ermitteln eines Fehlers, wenn das Ergebnis des zweiten Prozessors nicht das Komplement des ersten Prozessors ist.
-
Vorteilhaft ist der zweite Prozessor ein invertiertes logisches Äquivalent des ersten Prozessors.
-
Vorteilhaft wird das Ausführen eines Befehls durch einen zweiten Prozessor automatisch durch geführt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Erfindung kann unter Berücksichtigung der nachfolgenden ausführlichen Beschreibung verschiedener Ausführungsbeispiele der Erfindung in Verbindung mit den beigefügten Zeichnungen vollständiger verstanden werden, in denen:
-
1 ein Konzept-Blockdiagramm eines Verarbeitungssystems gemäß einer Ausführungsform zeigt.
-
2A ein Blockdiagramm eines ursprünglichen Kanals gemäß einer Ausführungsform zeigt.
-
2B ein Blockdiagramm eines Diversitäts-Verarbeitungskanals mit invertierten Zustandseingängen und invertierten Zustandsausgängen gemäß einer Ausführungsform zeigt.
-
3A ein Blockdiagramm eines Diversitäts-Verarbeitungskanals in Bezug auf invertierte Logikimplementierung gemäß einer Ausführungsform zeigt.
-
3B ein Blockdiagramm der resultierenden Implementierung von 2A gemäß einer Ausführungsform zeigt.
-
4A ein Blockdiagramm eines ursprünglichen Verarbeitungskanals in Bezug auf Takteingang gemäß einer Ausführungsform zeigt.
-
4B ein Blockdiagramm eines Diversitäts-Verarbeitungskanals mit invertiertem Takteingang gemäß einer Ausführungsform zeigt.
-
5A ein Blockdiagramm eines ursprünglichen Verarbeitungskanals in Bezug auf den Ausgang gemäß einer Ausführungsform zeigt.
-
5B ein Blockdiagramm eines Diversitäts-Verarbeitungskanals mit invertiertem Ausgang gemäß einer Ausführungsform zeigt.
-
6 ein Blockdiagram eines Designflusses gemäß einer Ausführungsform zeigt.
-
7 ein Blockdiagramm eines Komparatorsystems gemäß einer Ausführungsform zeigt.
-
Obwohl die Erfindung für verschiedene Modifikationen und alternative Formen zugänglich ist, sind spezifische Einzelheiten davon beispielshalber in den Zeichnungen gezeigt worden und werden nun ausführlich beschrieben werden. Es soll aber selbstverständlich sein, dass es nicht beabsichtigt ist, die Erfindung auf die speziellen, hier beschriebenen Ausführungsformen zu beschränken. Im Gegenteil, die Erfindung soll alle Modifikationen, Äquivalente und Alternativen abdecken, die in den Erfindungsgedanken und Schutzumfang der Erfindung fallen, wie diese durch die angehängten Ansprüche definiert ist.
-
DETAILLIERTE BESCHREIBUNG
-
Systeme und Verfahren, die sich auf Echtzeit-Fehlerermittlung mittels inverser Verarbeitung beziehen, werden offenbart. Bei einer Ausführungsform erzeugt ein autonomes, automatisiertes Verfahren einen Diversitätsverarbeitungskern aus einer einzigen Beschreibung eines Hauptkerns. Der Diversitätsverarbeitungskern ist möglichst diversitär, bleibt jedoch zum Hauptkern logisch äquivalent. Wenn die beiden Verarbeitungskerne einen gemeinsamen Algorithmus ausführen, können Fehler von einem Komparatorsystem aufgrund der inhärenten Beziehung zwischen den beiden Implementierungen ermittelt werden. Fehler können durch periodisches Vergleichen des Ausgangs des Diversitätsverarbeitungskerns mit dem des Hauptverarbeitungskerns ermittelt werden.
-
Die Logikäquivalenz zwischen dem Hauptkern und dem Diversitätskern wird bei einer Ausführungsform derart erzielt, dass jeder interne Zustand des Diversitätskerns als Komplement zum Hauptkern gespeichert wird, jede interne Taktflanke bezüglich des Hauptkerns invertiert wird, die Eingänge in den Diversitätskern bezüglich des Hauptkerns doppelt invertiert werden, die Ausgänge des Diversitätskerns bezüglich des Hauptkerns invertiert werden, der Logikzustand des Diversitätskerns immer das Inverse zu dem Hauptkern ist, und keine zeitliche Trennung zwischen der Algorithmusausführung in den Kernen erforderlich ist. Eine Ausführungsform kann nur eine Teilmenge des verfügbaren internen Zustands als Grundlage für Vergleiche verwenden, während eine andere Ausführungsform eine zeitliche Trennung für die Verarbeitungskanäle oder Komparatormechanismen aufweisen kann, und eine noch andere Ausführungsform Offline-Speicherung verfügbarer Zustände mit oder ohne Komprimierung für weitere Verarbeitung und Vergleiche verwenden kann.
-
Das Komparatorsystem kann mit der Kenntnis implementiert werden, dass geeignete Logikkomparatoren der entsprechenden Zustandsvektorelemente bei jeder Implementierung stets komplementär sind. Da der Diversitätskern einen invertierten Ausgang aus dem Hauptkern erzeugt, kann bei einer Ausführungsform ein Komparator vom Typ „exclusive or” (XOR) verwendet werden. Bei einer derartigen Implementierung antwortet der Komparator TRUE (WAHR), wenn exakt einer der Operanden einen Wert TRUE (WAHR) hat. Anders ausgedrückt ermittelt der Komparator einen Fehler, wenn der Ausgang bei dem einen oder dem anderen verschieden ist, jedoch nicht bei beiden.
-
Das Erzeugen von Diversität und das Verwenden eines Komparatorsystems bietet auf diese Weise viele Vorteile. Vor allem erzielt das System Robustheit gegenüber Mehrfachereignissen. Des Weiteren reduziert diese Diversität die Anzahl von Verzögerungszuständen, die gehalten werden müssen, um hinsichtlich harten und weichen Fehlern robust zu sein, wodurch die Menge des benötigten Siliziumbereichs und der benötigten Energie reduziert wird. Außerdem besteht kein Bedarf, gespeicherte Daten vor Korruption zu schützen, da es minimale gespeicherte Daten gibt – beide Kerne haben dieselben Eingänge, und die Ausgänge der beiden Kanäle können, sobald sie verfügbar sind, sofort verglichen werden. Anders als bei Implementierungen mit zeitverschobenem redundantem Verarbeitungskanal gibt es keine Abhängigkeit der Diagnoseabdeckung vom Befehlsfluss in dem Hauptverarbeitungskanal. Auch liefert die Verwendung des Komparators vom XOR-Typ den Vorteil, dass jede Zustandsänderung der Kerne als Diversitätssignalpegel mitgeteilt wird, so dass gewöhnliche Ausfälle beim Signalrouten, wie offene, kurzgeschlossene oder gekreuzte Verbindungen leicht ermittelt werden können. Permanente Ausfälle auf der Zustandsvektorverdrahturig und -logik können ebenfalls ermittelt werden. Die Verwendung eines invertierten Takts bei der Diversitätskernimplementierung gestattet auch die Ermittlung von Taktstörungen, die entweder steigende oder fallende Flanken beeinträchtigten, jedoch nicht beide gleichzeitig, da der Diversitätskern auf andere Art oder überhaupt nicht gestört wird.
-
Bei einer weiteren Ausführung werden N Diversitätskerne aus einem Hauptkern erzeugt. Wenn der Hauptkern zusammen mit den N Diversitätskernen einen gemeinsamen Algorithmus ausführt, können Fehler von einem ähnlichen wie dem oben beschriebenen Komparatorsystem ermittelt werden, jedoch skaliert für N Diversitätskerne. Somit sind, abhängig vom Grad der gewünschten Diagnoseabdeckung, Ausführungsformen unendlich skalierbar und nur durch die Ressourcen der Zielhardware eingeschränkt. Die Verwendung von N > 2 Ausführungsformen ermöglicht auch weitere logische Verarbeitung, um den fehlerhaften Kanal zu ermitteln und Ausfall-Betriebsverhalten zu und Fehlerkorrektur zu gestatten.
-
Ausführungsformen können sich auf Mikroprozessoren und Mikroprozessorsysteme sowie jeden Logikblock beziehen, der als höhere Programmiersprache-Beschreibung beschrieben werden kann, so dass weitere Verarbeitung, z. B. durch ein Skript, die Beschreibung in das maximal diversitäre Äquivalent übersetzen kann. Derartige Logikblöcke können u. a. einschließen, sind jedoch nicht beschränkt auf Coprozessoren, Peripheriegeräte, Speichercontroller, digitale Signalprozessoren, Kommunikationsschnittstellen und Grafikmaschinen, wie für den Fachmann selbstverständlich ist. Die Verwendung des Begriffs „Mikroprozessor” kann sich auf eine Ausführungsform beziehen, ist jedoch nicht allgemein in allen Fällen auf Mikroprozessoren als solche beschränkt.
-
Unter Bezug auf die Zeichnungen stellt 1 ein verallgemeinertes Konzept-Blockdiagramm eines Verarbeitungssystems 100 mit inverser Verarbeitung gemäß einer Ausführungsform dar. Das System 100 weist einen ursprünglichen Verarbeitungskanal 102 und einen Diversitätsverarbeitungskanal 104 auf. Wenn ein Eingang in ein System 100 eine logische „1” und ein Ausgang des ursprünglichen Kanals 102 eine logische „0” ist, ist der Ausgang des Diversitätskanals 104 das Inverse des ursprünglichen Kanals 102, wenn keine Fehler in dem System 100 vorliegen. Somit ist bei dem Beispiel von 1 der Ausgang des Diversitätskanals 104 eine logische „1”. Ein XOR-Gate 106 vergleicht die Ausgänge des ursprünglichen Kanals 102 und des Diversitätskanals 104 und liefert hier einen Ausgang von „1” in Anbetracht der Tatsache, dass die Eingänge nicht übereinstimmen. Dieses Ergebnis zeigt an, dass keine Fehler aufgetreten sind, da in Anbetracht der inversen Beziehung der Kanäle 102 und 104 ein nicht übereinstimmendes Ergebnis gewünscht ist. Ein Ausgang von „0” wäre vorhanden, wenn die Ausgänge der Kanäle 102 und 104 übereinstimmen, was einen Fehler oder Ausfall anzeigen würde.
-
Bei einer Ausführungsform kann der ursprüngliche Verarbeitungskanal 102 in VHDL (Very High Speed Integrated Circuit Hardware Description Language), Verilog oder einer anderen geeigneten Logikbeschreibung, die von einem Fachmann verstanden wird, definiert sein, so dass die Definition des Kanals 102 interpretiert und in ein physikalisches Layout auf Silizium mittels geeigneter Logiksynthese und physikalischen Layout-Werkzeugen umgewandelt werden kann. Die Definition des Diversitätsverarbeitungskanals 104 kann dann durch Verarbeiten der VHDL des ursprünglichen Verarbeitungskanals 102 vor der Logiksynthese erhalten werden. Bei einer Ausführungsform ist der Diversitätskanal 104 gemäß dem Folgenden bezüglich des ursprünglichen Kanals 102 definiert: Diversitätszustandsspeicherung; Diversitätslogikimplementierung; Diversitätstaktung; Diversitätsausgänge; und Diversitätslayout.
-
2 zeigt Blockdiagramme, die sich auf Diversitätszustandsspeicherung einschließlich der Inversion interner Zustandsregistereingänge, -ausgänge und Reset-Zustände gemäß einer Ausführungsform beziehen. 2A zeigt einen ursprünglichen Verarbeitungskanal 102 gemäß einer Ausführungsform, während 2B ein Blockdiagramm eines Diversitätsverarbeitungskanals 104 gemäß einer Ausführungsform zeigt. Der ursprüngliche Verarbeitungskanal 102 weist Verarbeitungslogik 110, 114 und 118 auf, die bei einer Ausführungsform mit Registern 112, und 116 durchsetzt ist. Der Kanal 102 ist nur ein Beispiel, und andere Ausführungsformen können mehr oder weniger Verarbeitungslogikblöcke und/oder -register sowie ähnliche oder andere Anordnungen haben, wie der Fachmann verstehen wird.
-
Der Diversitätsverarbeitungskanal 104 weist bei einer Ausführungsform auch Verarbeitungslogikblöcke 120, 124 und 128 sowie Register 122 und 126 auf. Der Kanal 104 kann auch verschiedene Strukturen und Konfigurationen gemäß der vorstehend erwähnten Struktur und Konfiguration des Kanals 102 haben. Im Gegensatz zum Kanal 102 weist jedoch der Kanal 104 Inverter 130 auf, so dass alle Eingänge und Ausgänge der Register 122 und 126 invertiert sind. Außerdem sind die Reset-Zustände 132 der Register 122 und 126 bezüglich derjenigen der Register 112 und 126 invertiert.
-
3 zeigt Blockdiagramme, die sich auf Diversitätslogikimplementierung gemäß einer Ausführungsform beziehen. 3A zeigt den Diversitätsverarbeitungskanal 104 von 2B nach der Inversion der internen Zustandsregistereingänge, -ausgänge und Reset-Zustände wie oben erläutert. Ein nächster Schritt beim Erzeugen eines endgültigen Diversitätsverarbeitungskanals 104 ist, die Logikimplementierung bei einer Ausführungsform zu diversifizieren. Die vorliegende Beschreibung der Reihenfolge der Schritte beim Erzeugen eines endgültigen Diversitätsverarbeitungskanals 104 bezieht sich nur auf eine Ausführungsform, und die Reihenfolge oder andere Einzelheiten der Erzeugung können bei anderen Ausführungsformen variieren. Die Pfeile in 3A beziehen sich auf eine Zusammenführung der Zustandsinverter 130 mit den bestehenden Verarbeitungslogik-Wolken oder -Blöcken 120, 124 und 128. Bei einer Ausführungsform ist der Eingang in die Verarbeitungslogik 120 doppelt invertiert (nicht gezeigt), und einer oder beide Inverter kann/können bei verschiedenen Ausführungsformen mit der Verarbeitungslogik 120 zusammengeführt werden. Das Halten eines der Inverter als diskreten Inverter kann dazu beitragen sicherzustellen, dass die Eingangslogik eine Diversitätsimplementierung hat. Obwohl nicht gezeigt, können die Register 122 und 126 bei Ausführungsformen auch Resets aufweisen, die invertiert werden können, jedoch nicht müssen, solange der aktive Zustand aktiv niedrig ist. Bei einer Ausführungsform kann auch eine Reoptimierung der Verarbeitungslogik 120, 124, und 128 durchgeführt werden. Außerdem kann die Diversität bei Ausführungsformen weiter gesteigert werden, indem andere Logikdiversifikations- und/oder -optimierungsprozesse durchgeführt werden, z. B. das selektive Ausschließen von Bibliothekszellen bei der Logiksynthese.
-
4 zeigt Blockdiagramme, die sich auf Diversitätstaktung beziehen. Der Diversitätsverarbeitungskanal 104 ist nach der oben unter Bezug auf 3 erläuterten Diversitätslogikimplementierung in 4A gezeigt, wobei ein Taktsignal 134 hinzugefügt ist. Um den Kanal 104 bezüglich des ursprünglichen Kanals 102 weiter zu diversifizieren, wird bei einer Ausführungsform Diversitätstaktung implementiert. In 4B wird das Taktsignal 134 des Diversitätskanals 104 bei 136 invertiert und Register mit negativen Taktflanken 122 und 126 werden anstelle der Register mit positiven Taktflanken 122 und 126, die in 4A gezeigt sind, verwendet.
-
Unter Bezug auf 5 können bei Ausführungsformen auch Diversitätsausgänge implementiert werden. 5A zeigt den Diversitätsverarbeitungskanal 104 nach der Diversitätstaktung, wie in 4B. In 5B wird der Ausgang des Diversitätsverarbeitungskanals 104 bei 138 invertiert.
-
Bei Ausführungsformen werden die Diversitätszustandsspeicherung, die Diversitätslogikimplementierung, die Diversitätstaktung, die Diversitätsausgänge und das Diversitätslayout automatisch in dem Gesamtkerndesignfluss erzeugt. Unter Bezug auf 6 werden sowohl der primäre oder ursprüngliche Kern als auch der Diversitätskern aus der Anfangs-Registertransferebene (Register Transfer Level(RTL))-Beschreibung 150, z. B. in VHDL, Verilog oder einem anderen geeigneten Format erzeugt.
-
Bei 152a wird eine erste Logiksynthese des ursprünglichen Kerns durchgeführt. Bei einer Ausführungsform wird ein SYNOPSYS Logiksynthesewerkzeug verwendet. Bei 152b wird dieselbe Anfangs-Logiksynthese des Diversitätskerns durchgeführt, mit Hinzufügung des Diversitätskern-Erzeugungsskripts. Bei einer SYNOPSYS Ausführungsform können Netzlistenmodifizierungen für den Diversitätsverarbeitungskanal auf der GTECH Stufe durchgeführt werden, oder zuerst die Übersetzung von VHDL- oder Verilog RTL-Beschreibungseingang vor der Synthese in technologiedefinierten Gates. Bei anderen Ausführungsformen können andere Werkzeuge und Prozesse verwendet werden, wie für den Fachmann selbstverständlich ist. Bei Ausführungsformen können bestimmte Definitionen und/oder Spezialisierungen verwendet werden, um die Diversifikation zu forcieren oder zu vereinfachen, z. B. können nur Q-Ausgangs-Register bei der Synthese sowohl des ursprünglichen als auch des Diversitätskanals, oder der Kerne, verwendet werden, um eine Diversitätslogikimplementierung zu forcieren.
-
Bei 154a und 154b können die Logiksynthese und die Optimierung sowohl für den ursprünglichen als auch für den Diversitätskern durchgeführt werden. Bei einer Ausführungsform werden auf dieser Stufe eine Ziel-Zellenbibliothek und eine Zellenausschlussliste implementiert.
-
Bei 156a und 156b werden Netzlisten auf Gateebene, z. B. in Verilog oder VHDL, erzeugt, und bei 158 wird eine Diversitätsüberprüfung durchgeführt. Bei einer Ausführungsform umfasst die Diversitätsüberprüfung einen Gate-Gate-Vergleich des ursprünglichen und des Diversitätskerns, um sicherzustellen, dass der Diversitätskern das Inverse des ursprünglichen Kerns ist (A = IB). Nach dem Layout bei 160a und 160b, das für Frequenz- und Siliziumlayout optimiert werden kann, werden der ursprüngliche Kern 102 und der Diversitätskern 104 erzeugt.
-
Unter Bezug auf 7, und im Betrieb, arbeitet der ursprüngliche Verarbeitungskanal 102 im Normalmodus, während der Diversitätsverarbeitungskanal 104 in einem passiven Schatten- oder Überwachungsmodus arbeitet. Die Zustände des ursprünglichen Verarbeitungskanals 102 und des Diversitätsverarbeitungskanals 104 können dann verglichen werden, um sicherzustellen, dass die Ergebnisse komplementär sind, d. h. das Inverse voneinander. Bei einer Ausführungsform kann jede Zustandsänderung jedes Kanals 102 und 104 als Diversitätssignalpegel mitgeteilt werden. Bei einer Ausführungsform kann der Vergleich der Zustandsvektoren des Verarbeitungskanals 102 und der komplementären Zustandsvektoren des Diversitätskanals 104 durch einen Satz geeigneter Logikkomparatoren 170, z. B. bei einer Ausführungsform XOR-Funktionen, durchgeführt werden. Die Komparatorlogik 170 zeigt somit bei einer Ausführungsform einen Fehler 172 an, wenn eines oder mehrere der beiden komplementären Zustandsvektorelemente äquivalent werden. Die Verwendung dieser inhärenten komplementären Codierung der Komparatoreingänge stellt auch sicher, dass Kreuzverbindungen, offene Verbindungen und Dauerausfälle auf der Zustandsvektorverdrahtung und -logik ebenfalls ermittelt werden können.
-
Es kann gezeigt werden, dass Ausführungsformen nach dem Diversifizierungsprozess logisch äquivalent sind, da die Beschreibung beider Kanäle absolut und präzise ist. Formale Äquivalenzwerkzeuge oder andere Verfahren können für die Netzlisten und für andere Layout-Stufen im Fluss des Designprozesses angewandt werden, um zu zeigen, dass die Äquivalenzen für alle Fälle gelten. Die Äquivalenzüberprüfung belegt, dass das eigentliche Layout der Designs und das maximal diversitäre Design in Bezug zueinander und zu den erforderlichen Zeit- und Signalausbreitungs-Bedingungen logisch korrekt sind.
-
Ausführungsformen können dadurch einen robusten, maximal diversitären Verarbeitungskanal vorsehen, der automatisch aus einem bestehenden Design eines Verarbeitungskanals erhalten werden kann, so dass Störungen bei der Verarbeitung beider Kanäle von einem einfachen Online-Zustandsvektorkomparator ermittelt werden können, um einen Fehler anzuzeigen. Im Gegensatz zu herkömmlichen Lösungen kann die tatsächliche Diagnoseabdeckung von Ausführungsformen des maximal diversitären Verarbeitungskanals durch Simulation bestimmt werden, da die Diagnoseabdeckung nicht vom Befehlsfluss im Hauptverarbeitungskanal abhängt.
-
Ausführungsformen können bei hochintegrierten und sicherheitskritischen Anwendungen einschließlich Fahrzeug-, Bank-, Flugzeug-, Verteidigungs-, Internetzahlungs- und anderen Anwendungen Verwendung finden. Beispielsweise können spezifische Fahrzeuganwendungen Brems- und Geschwindigkeitskontrolle, Lenken, Spurhaltung, automatisches Anhalten in Reaktion auf Hindernisermittlung, Hybridfahrzeugbetrieb und dergleichen einschließen, und Fehler können durch Umweltfaktoren, elektrostatische Entladung, physikalische Störungen und Schäden und dergleichen verursacht werden. Während Fehler oder Ausfälle zweifellos bei einzelnen Siliziumchips auftreten können, enthalten moderne Fahrzeuge eine Vielzahl von „vernetzten” Chips in einem einzigen Fahrzeug. Es kann schwierig sein, das Vernetzen oder Zusammenwirken der Chips in Anbetracht der Komplexität und der vielen involvierten Verkäufer vollständig zu überprüfen. Daher können Ausführungsformen in solchen Situationen besondere Anwendbarkeit haben, um „intelligentes” Silizium vorzusehen, das eine schnelle Ermittlung von Fehlern ermöglicht, die bei Ausführungsformen ein System oder sogar ein ganzes Fahrzeug in einen „sicheren” Betriebszustand bringen kann, um katastrophale Folgen zu verhindern.
-
Ausführungsformen können auch bei anderen Rechen- und Verarbeitungsanwendungen verwendet werden. Da die Größenanforderungen geringer werden, z. B. die Transistorgröße schrumpft, können Störungen viel leichter auftreten. Um schnellere Computer zu erhalten, können redundante Logikwolken eine Lösung sein, und Ausführungsformen der hier diskutierten inversen Verarbeitung können besondere Anwendbarkeit haben. Ausführungsformen können auch bei Sicherheitssystemen, z. B. Chipkarten und Ausweisen, die für Hacken und Fälschung anfällig sind, Anwendung finden.
-
Ohne Einschränkung kann sich der Bezug auf Prozessoren und/oder Mikroprozessoren hier bei Ausführungsformen auf Hardwarevorrichtungen beziehen, die eine integrierte Schaltung, eine ASIC-Schaltung oder einen Mikrochip aufweisen, die so betreibbar sind, dass sie Algorithmen, Befehle und Code ausführen. Ein Prozessor oder Mikroprozessor kann Teil eines Computers bilden, und am Prozessor, Mikroprozessor und/oder Computer kann in vielen verschiedenen Systemen, Untersystemen und Vorrichtungen verwendet werden, einschließlich Fahrzeugen, Flugzeugen, Raumfahrzeugen und anderen Fahrzeugen, persönlichen Kommunikations- und Rechenvorrichtungen, mobilen Telefonen, Chipkarten, Ausweisen und Kennkarten und Identifizierungsvorrichtungen, Netzwerken und Peripheriegeräten, Verteidigungsvorrichtungen und -systemen, Internetsystemen und -Terminals einschließlich Bezahlsystemen, und dergleichen, wie vorliegend an anderer Stelle erwähnt und/oder für den Fachmann selbstverständlich.
-
Vorteile, die von Ausführungsformen bereitgestellt werden, umfassen bessere Diagnoseabdeckung, bessere Daten zum Durchführen von Vergleichen, Ermittelbarkeit üblicher Signalpfadfehler und Energieeinsparungen im Vergleich zu herkömmlichen Lösungen, die zeitverzögerte identische Kopien verwenden. Die automatische Erzeugung des Diversitätsverarbeitungskerns bietet auch wesentliche Zeit- und Kostenvorteile im Vergleich zu manueller kundenspezifischer Erzeugung und liefert doch maximale Diversität.
-
Verschiedene Ausführungsformen von Systemen, Vorrichtungen und Verfahren sind hier beschrieben worden. Diese Ausführungsformen sind lediglich beispielshalber gegeben und sind nicht dafür gedacht, den Schutzumfang der Erfindung einzuschränken. Es soll darüber hinaus klar sein, dass die verschiedenen Merkmale der Ausführungsformen, die beschrieben worden sind, auf verschiedene Weise miteinander kombiniert werden können, um zahlreiche zusätzliche Ausführungsformen zu erzeugen. Darüber hinaus können, obwohl verschiedene Materialien, Abmessungen, Formen, Implantationsstellen, etc. zur Verwendung mit den offenbarten Ausführungsformen beschrieben worden sind, andere neben diesen, die offenbart worden sind, verwendet werden, ohne dass der Schutzumfang der Erfindung überschritten wird.
-
Durchschnittsfachleute auf den relevanten Fachgebieten werden erkennen, dass die Erfindung weniger Merkmale umfassen kann, als diese in irgendeinem einzelnen der oben beschriebenen Ausführungsformen veranschaulicht sind. Die hierin beschriebenen Ausführungsformen sind nicht als eine erschöpfende Darstellung der Möglichkeiten gedacht, in denen die verschiedenen Merkmale der Erfindung miteinander kombiniert werden können. Dementsprechend sind die Ausführungsformen keine sich gegenseitig ausschließenden Kombinationen von Merkmalen; genauer gesagt kann die Erfindung eine Kombination aus verschiedenen Einzelmerkmalen umfassen, die aus verschiedenen einzelnen Ausführungsformen ausgewählt werden, wie dies für Durchschnittsfachleute auf dem Fachgebiet selbstverständlich ist.
-
Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist so beschränkt, dass kein Gegenstand eingefügt wird, der im Gegensatz zu der hier expliziten Offenbarung steht. Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist des Weiteren so eingeschränkt, dass keine Ansprüche, die in den Dokumenten enthalten sind, durch Bezugnahme darauf hier eingefügt werden. Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist noch weiter so beschränkt, dass jegliche Definitionen, die in den Dokumenten bereitgestellt werden, nicht durch Bezugnahme darauf hier eingefügt werden, außer diese sind hier ausdrücklich einbezogen.