DE102011108103A1 - Echtzeit-Fehlerermittlung durch inverse Verarbeitung - Google Patents

Echtzeit-Fehlerermittlung durch inverse Verarbeitung Download PDF

Info

Publication number
DE102011108103A1
DE102011108103A1 DE102011108103A DE102011108103A DE102011108103A1 DE 102011108103 A1 DE102011108103 A1 DE 102011108103A1 DE 102011108103 A DE102011108103 A DE 102011108103A DE 102011108103 A DE102011108103 A DE 102011108103A DE 102011108103 A1 DE102011108103 A1 DE 102011108103A1
Authority
DE
Germany
Prior art keywords
processing core
output
processing
microprocessor
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102011108103A
Other languages
English (en)
Inventor
Simon Brewerton
Neil Stuart Hastie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102011108103A1 publication Critical patent/DE102011108103A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/333Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Hardware Redundancy (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Prozessoren, Mikroprozessoren und Logikblocksysteme und -verfahren, Fehlerermittlungssysteme und -verfahren und integrierte Schaltungen sind offenbart. Bei einer Ausführungsform weist ein logikbasiertes Rechnersystem einen ersten Verarbeitungskern, 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 auf, die so gekoppelt ist, dass sie die Ausgänge des ersten und des zweiten Verarbeitungskerns als Eingänge empfängt und einen Fehlerausgang liefert, wenn der Ausgang des zweiten Verarbeitungskerns nicht das Komplement des Ausgangs des ersten Verarbeitungskerns ist.

Description

  • 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.

Claims (10)

  1. Logikbasiertes Computersystem 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.
  2. System nach Anspruch 1, wobei der zweite Verarbeitungskern automatisch aus dem ersten Verarbeitungskern erzeugt wird.
  3. System nach Anspruch 1, wobei der zweite Verarbeitungskern aus dem ersten Verarbeitungskern durch Verarbeiten einer logischen Beschreibung des ersten Verarbeitungskerns vor oder nach der Logiksynthese der logischen Beschreibung erzeugt wird.
  4. System nach Anspruch 3, wobei die logische Beschreibung VHDL oder Verilog ist.
  5. System nach Anspruch 1, wobei ein Eingang des zweiten Verarbeitungskerns eine doppelte Inversion eines Eingangs des ersten Verarbeitungskerns ist.
  6. System nach Anspruch 1, wobei der erste Verarbeitungskern und der zweite Verarbeitungskern jeweils ein Zustandsregister aufweist, 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.
  7. System nach Anspruch 1, wobei eine Logikimplementierung des zweiten Verarbeitungskerns ein Inverses einer Logikimplementierung des ersten Verarbeitungskerns ist.
  8. Integrierte Schaltung 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 auf weist, 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.
  9. Verfahren zum Erzeugen eines Diversitätslogikblocks, 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 Diversitts-Mikroprozessorerzeugungsskripts, Durchführen einer zweiten Logiksynthese und Optimierung, Erzeugen einer logischen Netzliste auf Gateebene, und Erzeugen eines technologiespezifischen Layouts.
  10. Verfahren zur Echtzeit-Fehlerermittlung in einem Prozessor, 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.
DE102011108103A 2010-07-20 2011-07-20 Echtzeit-Fehlerermittlung durch inverse Verarbeitung Pending DE102011108103A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/839,503 US8516356B2 (en) 2010-07-20 2010-07-20 Real-time error detection by inverse processing
US12/839,503 2010-07-20

Publications (1)

Publication Number Publication Date
DE102011108103A1 true DE102011108103A1 (de) 2012-01-26

Family

ID=45443714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011108103A Pending DE102011108103A1 (de) 2010-07-20 2011-07-20 Echtzeit-Fehlerermittlung durch inverse Verarbeitung

Country Status (3)

Country Link
US (1) US8516356B2 (de)
CN (1) CN102402465B (de)
DE (1) DE102011108103A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US10145882B2 (en) 2010-09-24 2018-12-04 Infineon Technologies Ag Sensor self-diagnostics using multiple signal paths
US9874609B2 (en) 2010-09-24 2018-01-23 Infineon Technologies Ag Sensor self-diagnostics using multiple signal paths
DE102012004844B4 (de) * 2012-03-13 2018-05-17 Phoenix Contact Gmbh & Co. Kg System der Messwertüberwachung und Abschaltung bei Auftreten von Messwertabweichungen
CN104048692B (zh) * 2013-03-15 2016-09-21 英飞凌科技股份有限公司 使用多个信号路径的传感器自诊断
EP2824572B1 (de) * 2013-07-12 2016-05-25 Thales Deutschland GmbH Ausfallsichere Vorrichtung und Verfahren zum Betreiben der ausfallsicheren Vorrichtung
US9638762B2 (en) 2014-02-24 2017-05-02 Infineon Technologies Ag Highly efficient diagnostic methods for monolithic sensor systems
JP6424473B2 (ja) * 2014-06-03 2018-11-21 大日本印刷株式会社 演算装置、演算方法、及び演算処理プログラム
US9734006B2 (en) * 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
FR3052575B1 (fr) * 2016-06-08 2019-10-04 Continental Automotive France Circuit de detection de defaillances systematiques et aleatoires
US10520928B2 (en) * 2017-05-15 2019-12-31 Rockwell Automation Technologies, Inc. Safety industrial controller providing diversity in single multicore processor
US10303566B2 (en) * 2017-07-10 2019-05-28 Arm Limited Apparatus and method for checking output data during redundant execution of instructions
US10353767B2 (en) * 2017-09-14 2019-07-16 Bae Systems Controls Inc. Use of multicore processor to mitigate common mode computing faults
EP3543718B1 (de) * 2018-03-19 2020-08-19 Melexis Technologies NV Verfahren zur fehlererkennung in einem elektronischen system
US10985765B2 (en) 2018-08-07 2021-04-20 Samsung Electronics Co., Ltd. Apparatus including safety logic
US10977109B2 (en) 2018-08-07 2021-04-13 Samsung Electronics Co., Ltd. Apparatus including safety logic
CN113011122A (zh) * 2019-12-19 2021-06-22 台湾积体电路制造股份有限公司 用于减少迁移错误的方法和系统
US11636227B2 (en) 2020-11-16 2023-04-25 Nxp B.V. Protection against fault attacks by duplication

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS592057B2 (ja) * 1979-02-07 1984-01-17 株式会社日立製作所 エラ−訂正・検出方式
US4799155A (en) 1986-12-31 1989-01-17 Amdahl Corporation Data processing system having a hierarchy of service computers including a state display
US4965717A (en) 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5339261A (en) 1992-10-22 1994-08-16 Base 10 Systems, Inc. System for operating application software in a safety critical environment
JP3412349B2 (ja) * 1994-12-28 2003-06-03 株式会社日立製作所 制御装置
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6223337B1 (en) 1997-12-12 2001-04-24 Hewlett-Packard Company Random test generation for compiler optimization
FR2784475B1 (fr) 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
DE19857154C1 (de) * 1998-12-11 2000-03-16 Daimler Chrysler Ag Verfahren zur Datenübertragung
US6792525B2 (en) 2000-04-19 2004-09-14 Hewlett-Packard Development Company, L.P. Input replicator for interrupts in a simultaneous and redundantly threaded processor
US20020023202A1 (en) 2000-04-19 2002-02-21 Mukherjee Shubhendu S. Load value queue input replication in a simultaneous and redundantly threaded processor
US6598122B2 (en) 2000-04-19 2003-07-22 Hewlett-Packard Development Company, L.P. Active load address buffer
US6854051B2 (en) 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Cycle count replication in a simultaneous and redundantly threaded processor
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US7277840B2 (en) * 2002-06-18 2007-10-02 Atrenta, Inc. Method for detecting bus contention from RTL description
SE0202019D0 (sv) 2002-06-28 2002-06-28 Abb As Revalidation of a compiler for safety control
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US7146530B2 (en) 2003-07-18 2006-12-05 Hewlett-Packard Development Company, L.P. Targeted fault tolerance by special CPU instructions
US7243262B2 (en) 2003-08-29 2007-07-10 Intel Corporation Incremental checkpointing in a multi-threaded architecture
US7213168B2 (en) 2003-09-16 2007-05-01 Rockwell Automation Technologies, Inc. Safety controller providing for execution of standard and safety control programs
US20050138478A1 (en) 2003-11-14 2005-06-23 Safford Kevin D. Error detection method and system for processors that employ alternating threads
US7584405B2 (en) 2003-12-03 2009-09-01 Hewlett-Packard Development Company, L.P. Fault-detecting computer system
US7444497B2 (en) 2003-12-30 2008-10-28 Intel Corporation Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support
US20050193283A1 (en) 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US7555703B2 (en) 2004-06-17 2009-06-30 Intel Corporation Method and apparatus for reducing false error detection in a microprocessor
DE102004062825B4 (de) * 2004-12-27 2006-11-23 Infineon Technologies Ag Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
FR2881836A1 (fr) 2005-02-08 2006-08-11 St Microelectronics Sa Securisation du mode de test d'un circuit integre
GB0519363D0 (en) * 2005-09-22 2005-11-02 Advanced Risc Mach Ltd Error propagation in integrated circuits
JP4602246B2 (ja) * 2005-12-28 2010-12-22 株式会社東芝 半導体集積回路
US7444544B2 (en) 2006-07-14 2008-10-28 International Business Machines Corporation Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US7937620B2 (en) 2007-05-07 2011-05-03 Intel Corporation Transient fault detection by integrating an SRMT code and a non SRMT code in a single application
KR101418969B1 (ko) 2008-02-27 2014-08-13 삼성전자주식회사 프로세서 및 컴파일 방법
JP4876093B2 (ja) 2008-03-31 2012-02-15 株式会社日立製作所 制御装置のタスク管理装置、及び、制御装置のタスク管理方法

Also Published As

Publication number Publication date
CN102402465B (zh) 2015-06-17
US8516356B2 (en) 2013-08-20
US20120023389A1 (en) 2012-01-26
CN102402465A (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
DE102011108103A1 (de) Echtzeit-Fehlerermittlung durch inverse Verarbeitung
DE102006009239B4 (de) Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden
DE102005049232A1 (de) Integrierter Schaltkreis und Verfahren zum Betreiben eines integrierten Schaltkreises
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE102019122145A1 (de) Gesicherte x-modulare redundanz
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
WO2007017381A1 (de) Verfahren und vorrichtung zur datenverarbeitung
DE102017209856A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE60208062T2 (de) Digitales system und entsprechendes verfahren zur fehlererkennung
DE112020005809T5 (de) Zeitgeberschaltung mit autonomem schwebenden pins und zugehörigen systemen, verfahren und vorrichtungen
DE102013009364B4 (de) Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern
DE10227618B4 (de) Logikschaltung
DE102006043167B4 (de) Mikrocontroller und Verfahren zum Starten eines Anwendungsprogramms auf einem Mikrocontroller
EP1433061B1 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
Balasubramanian et al. Area optimized quasi delay insensitive majority voter for TMR applications
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102009054567A1 (de) Verfahren und Vorrichtung zum Entwurf einer SEE-toleranten Schaltung
DE102009051500B4 (de) Arithmetik-Logik-Einheit
DE102013002088B4 (de) System und Verfahren für einen signaturbasierten Redundanzvergleich
DE112022001867T5 (de) Daten-gating unter verwendung von abtastfreigabe-pins
DE102022102312B3 (de) Integrierte schaltung und verfahren zum schutz einer integrierten schaltung gegen reverse engineering
DE102022125835A1 (de) Datenverarbeitungsvorrichtung und verfahren zum erzeugen einer zufallszahl

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE