DE102020102232A1 - Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen - Google Patents

Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen Download PDF

Info

Publication number
DE102020102232A1
DE102020102232A1 DE102020102232.8A DE102020102232A DE102020102232A1 DE 102020102232 A1 DE102020102232 A1 DE 102020102232A1 DE 102020102232 A DE102020102232 A DE 102020102232A DE 102020102232 A1 DE102020102232 A1 DE 102020102232A1
Authority
DE
Germany
Prior art keywords
processor
processor core
variables
security
data processing
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
DE102020102232.8A
Other languages
English (en)
Inventor
Rajesh Banginwar
Ramkumar Jayaraman
Nabajit Deka
Riccardo Mariani
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102020102232A1 publication Critical patent/DE102020102232A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • 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/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

Es werden Verfahren und Vorrichtungen in Bezug auf die Erweiterung von Diagnostikfähigkeiten von Datenverarbeitungssystemen durch Kombinieren von Variablenpatrouillierungs-Anwendungsprogrammschnittstellen (API) und Vergleichsmechanismus von Variablen beschrieben. Bei einer Ausführungsform führt ein erster Prozessorkern eine erste Instanz einer Arbeitslast aus, um eine erste Menge von Sicherheitsvariablen zu erzeugen. Ein zweiter Prozessorkern führt eine zweite Instanz der Arbeitslast aus, um eine zweite Menge von Sicherheitsvariablen zu erzeugen. Ein dritter Prozessorkern erzeugt ein Signal als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen. Außerdem werden andere Ausführungsformen offenbart und beansprucht.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet der Elektronik. Spezieller betrifft eine Ausführungsform die Verbesserung von Diagnostikfähigkeiten von Datenverarbeitungssystemen durch Kombinieren einer Variablenpatrouillierungs-Anwendungsprogrammierschnittstelle (API) und eines Vergleichsmechanismus von Variablen.
  • HINTERGRUND
  • In der Kraftfahrzeugindustrie verwendete Systeme einer elektronischen Steuereinheit (ECU) können eine große Vielfalt von Funktionen abdecken, die Fahrzeugsteuerung und/oder -sicherheit zugeordnet sind. Zum Beispiel empfangen ECU elektrische Signale von einem oder mehreren Sensoren, werten diese aus und berechnen dann Auslösungssignale für mechanische Aktoren. Die große Verbreitung von ECU hat zu Besorgnissen bezüglich der Aufrechterhaltung der Fahrzeugkontrolle und/oder -sicherheit in solchen Systemen geführt.
  • Figurenliste
  • Die ausführliche Beschreibung wird unter Bezugnahme auf die beigefügten Figuren bereitgestellt. In den Figuren identifiziert die erste Stelle(n) einer Bezugszahl die Figur, in der die Bezugszahl zuerst erscheint. Die Verwendung derselben Bezugszahlen in verschiedenen Figuren gibt ähnliche oder identische Posten an.
    • 1 zeigt eine Blockdarstellung eines bedarfsgesteuerten Quervergleichssystems gemäß einer Ausführungsform.
    • 2 zeigt eine Blockdarstellung einer Architektur auf hoher Ebene für bedarfsgesteuerten Quervergleich (ODCC - On-Demand Cross Comparison) gemäß einer Ausführungsform.
    • 3 und 4 zeigen Blockdarstellungen von fehlertoleranten Hardware-Architekturen auf hoher Ebene gemäß einigen Ausführungsformen.
    • 5 und 6 zeigen Abläufe auf Systemebene für ODCC der Konfigurationen von 3 bzw. 4 gemäß einigen Ausführungsformen.
    • 7 zeigt eine beispielhafte gleitende Pufferdatenstruktur, die zum Speichern und Vergleichen der Schnappschussdaten verwendet werden kann, gemäß einer Ausführungsform.
    • 8 und 9 zeigen Blockdarstellungen von Ausführungsformen von Datenverarbeitungssystemen, die in verschiedenen hier besprochenen Ausführungsformen benutzt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um ein umfassendes Verständnis verschiedener Ausführungsformen zu vermitteln. Jedoch können verschiedene Ausführungsformen ohne die speziellen Einzelheiten umgesetzt werden. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht ausführlich beschrieben, um die speziellen Ausführungsformen nicht zu verschleiern. Ferner können verschiedene Aspekte von Ausführungsformen unter Verwendung verschiedener Mittel durchgeführt werden, wie etwa integrierter Halbleiterschaltkreise („Hardware“), computerlesbarer Befehle, die in einem oder mehreren Programmen organisiert sind („Software“) oder mancher Kombinationen von Software und Hardware. Für die Zwecke dieser Offenbarung soll eine Bezugnahme auf „Logik“ entweder Hardware (wie etwa Logikschaltkreise oder allgemeiner Schaltkreise oder eine Schaltung), Software, Firmware oder eine gewisse Kombination davon bedeuten.
  • Wie oben erwähnt hat die große Verbreitung von ECU zu Besorgnissen bezüglich der Aufrechterhaltung der Fahrzeugkontrolle und/oder -sicherheit in der Kraftfahrzeugindustrie geführt. Außerdem erfordern elektrische, elektronische oder programmierbare elektronische Systeme (E/E/PS), die in Kraftfahrzeug- und/oder (z. B. industriellen) IOT-Systemen (Internet der Dinge) verwendet werden, im Allgemeinen Einhaltung von Funktionssicherheitsstandards wie IEC-61508 und/oder ISO-26262. In diesen E/E/PS-Systemen verwendete Datenverarbeitungsplattformen können ihrerseits eingebaute Fehlerdiagnose- und Fehlerkorrekturfähigkeiten erfordern, um zufällige Hardwareausfälle, die in Hardwareelementen wie CPU-Kernen (Zentralverarbeitungseinheit oder hier austauschbar als „Prozessor“ bezeichnet), Speichern und/oder Interconnects auftreten, zu entdecken und/oder sich von diesen zu erholen. Diese Diagnosefähigkeiten können eine fehlerkontrollierte Umgebung für die Ausführung von Sicherheitsarbeitslasten garantieren, die dann verwendet werden können, um Ausgangsschnittstellen wie Aktoren, Motoren usw. anzusteuern. Jede CPU bzw. jeder Prozessor kann einen oder mehrere Prozessorkerne umfassen.
  • Zu diesem Zweck betreffen einige Ausführungsformen die Erweiterung von Diagnostikfähigkeiten von Datenverarbeitungssystemen durch Kombinieren von Variablenpatrouillierungs-Anwendungsprogrammschnittstelle (API) und Vergleichsmechanismus von Variablen. Die Datenverarbeitungssysteme können einen oder mehrere Prozessoren und/oder ECU umfassen. Eine oder mehrere Ausführungsformen wenden sich an die Bereitstellung und/oder Erweiterung(en) der Diagnostikfähigkeiten von Datenverarbeitungssystemen/-plattformen, die in betriebssicherheitsbezogenen Systemen, wie etwa Systemen des autonomen Fahrens und/oder des IOT verwendet werden. Die Ausführungsformen sind jedoch nicht auf ECU beschränkt und eine oder mehrere Ausführungsformen können auch für industrielle Sicherheit angewandt werden, die Benutzungsfälle wie industrielle PLC (programmierbare Logiksteuerung), Bewegungssteuerung, Robotik, Gateways usw. umfasst.
  • 1 zeigt eine Blockdarstellung eines bedarfsgesteuerten Quervergleichssystems 100 gemäß einer Ausführungsform. Wie gezeigt werden zwei Arbeitslasten 102/104 auf zwei getrennten Prozessorkernen 106/108 ausgeführt, um jeweilige Sicherheitsvariablenmengen 110/112 zu bestimmen. Ein dritter Prozessorkern 114 vergleicht dann die Sicherheitsvariablenmengen und erzeugt ein Pass/Fail-Ergebnis oder eine Pass/Fail-Ausgabe.
  • Eine Sicherheitsanwendung besteht im Allgemeinen aus einer Menge von Variablen (die als Sicherheitsvariablen bekannt sind), die den Zustand des Systems, das sie verwaltet, effektiv erfassen. Diese Sicherheitsvariablen ändern sich während der Programmausführung fortgesetzt. Durch Ausführen von zwei unabhängigen Instanzen der Sicherheitsanwendung auf zwei unabhängigen CPU-/Prozessorkernen und durch Verwendung eines dritten CPU-/Prozessorkerns zum Vergleichen der zwei Instanzen von Sicherheitsvariablen kann die Diagnostikabdeckung der Datenverarbeitungsplattform signifikant verbessert werden. Diese Lösung wird hier als bedarfsgesteuerter Quervergleich (ODCC) bezeichnet und ist in 1 in Diagrammform dargestellt.
  • Außerdem werden traditionelle SoC und Prozessoren nicht im Kontext der Funktionssicherheit entwickelt und können somit für Kraftfahrzeug- und industrielle Benutzungsfälle nicht verwendet werden. Zu diesem Zweck bieten einige Ausführungsformen eine Technik zum Aufrüsten existierender Prozessorentwürfe auf Funktionssicherheitsniveau mit minimaler Mühe. Zum Beispiel erfordert Logik (die z. B. als softwarezentrisch implementiert sein kann) keinerlei Modifikation am CPU-/Prozessorsiliziumentwurf und verringert somit die Gesamtentwicklungszeit und/oder Kosten. Außerdem müssen keine spezialisierten Werkzeuge als Steuerflussprüfer und Pre-Pass-Compiler notwendig sein. Stattdessen können Kunden/Benutzer im Voraus aufgebaute, im Voraus validierte und sicherheitszertifizierte Bibliotheken zum Durchführen einer Variablenpatrouillierung von Sicherheitsvariablen mit auf die Anwendungslogik/-schicht begrenzten Änderungen bereitgestellt werden.
  • Bei einer Ausführungsform können Logik- und/oder verschiedene Komponenten (darunter eine oder mehrere der mit Bezug auf 1 et seq. besprochenen Komponenten) in einem Fahrzeug angebracht oder anderweitig physisch damit gekoppelt sein. Im vorliegenden Gebrauch bezieht sich ein „Fahrzeug“ im Allgemeinen auf eine beliebige Transportvorrichtung, die autonom (mit wenig oder keiner Einwirkung eines Menschen/Fahrers) betrieben werden kann, wie etwa ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug, eine Drohne usw., gleichgültig, ob das Fahrzeug ein Passagier- oder kommerzielles Fahrzeug ist und ungeachtet des Energiequellentyps (wie etwa eines oder mehrere von Fossilbrennstoff(en), Solarenergie, elektrische Energie, chemische Energie, Nuklearenergie usw.) und ungeachtet des physischen Zustands der Energiequelle (z. B. fest, flüssig, gasförmig usw.), die zum Bewegen des Fahrzeugs verwendet wird.
  • Bei mindestens einer Ausführungsform kann ODCC (bedarfsgesteuerter Quervergleich) als eine auf Logik oder Software basierende Redundanztechnik betrachtet werden, die unter lose gekoppelten Gleichschrittsystemen (LCLS) kategorisiert werden kann. Im vorliegenden Gebrauch kann „ODCC“ und „LCLS“ gleichbedeutend verwendet werden. Einige Funktionsprinzipien von ODCC werden in 1 bereitgestellt. ODCC kann die Diagnostikabdeckung (DC) vergrößern, indem genau dieselbe Arbeitslast auf zwei verschiedenen physischen Kernen laufen gelassen wird und der Zustand von Sicherheitsvariablen kontinuierlich verglichen wird, so dass jede Nichtübereinstimmung von Zustandsvariablen innerhalb des Intervalls der PST (Prozesssicherheitszeit) detektiert wird.
  • 2 zeigt eine Blockdarstellung einer Architektur 200 auf hoher Ebene für ODCC gemäß einer Ausführungsform. In 2 sind Kern 0 und Kern 1 Kerne (könnten z. B. eine beliebige Art von Prozessorkern sein, wie etwa ein Vielzweck-Prozessorkern, Grafikprozessorkern usw., wie etwa auf der Basis von Atom, Core™ oder Xeon®, erhältlich von der Intel® Corporation), die in dem SoC (System-auf-Chip) oder Prozessorentwürfen anwesend sein könnten. Diese zwei Kerne erhalten die Aufgabe des Ausführens der Sicherheitsarbeitslasten und des Erzeugens der Signaturen der Sicherheitsvariablen. In 2 ist eine Komponente/Logik vorgesehen, die als Sicherheitsüberwachungsvorrichtung oder Sicherheitsinsel (oder SI, wie etwa eine ISI (Intel Safety Island), erhältlich von der Intel Corporation) bezeichnet wird, die einen weniger leistungsstarken und kleineren Kern (könnte vom Typ NIOS-II oder ARM® oder x86 CPU sein) enthält, der als Kern 2 angegeben ist. Auf Kern 2 läuft eine Firmware auf der Basis eines Echtzeit-Betriebssystems (RTOS) (könnte auf ThreadX™ oder einem ähnlich fähigen RTOS basieren), die als SI-Firmware (SI-FW) bezeichnet wird. Die SI-FW erhält die Aufgabe des Vergleichens der durch die Haupt-CPU erzeugten Signaturen.
  • Das SoC und die SI-Komponente werden unter Verwendung von Interconnects (z. B. des Interconnect 204), wie etwa eines On-Chip-Systemkoppelfeldes (wie etwa des IOSF (Intel On-Chip System Fabric)), eines PCIe-Busses (Peripheral Component Interconnect express), eines CAN-Busses (Controller Area Network) (z. B. für die Automobilindustrieanwendungen) oder eines beliebigen anderen Interconnect gekoppelt, um Signale zu übermitteln. Die SI könnte als integrierte Lösung implementiert werden, bei der die SI als ein IP-Block (Intellectual Property) im Chipsatz oder sogar im Prozessor integriert ist. Die SI könnte auch als diskrete Off-Chip-Lösung implementiert werden, z. B. in Form einer PCIe-Zusatzkarte oder als ASIC (anwendungsspezifische integrierte Schaltung), ein programmierbares FPGA (Field Programmable Gate Array) (das zum Beispiel auf die Verarbeitungsplattform aufgelötet ist).
  • Das Getrennthalten der SI (d. h. des Komparatorkerns) von (z. B. außerhalb einer) traditionellen SoC-Grenze ergibt einen oder mehrere der folgenden Vorteile: (1) vom Sicherheitsstandpunkt aus gesehen gibt es eine Möglichkeit eines Ausfalls gewöhnlicher Ursache, wenn derselbe CPU-Kern die Signatur erzeugt und die Vergleichsoperation ausführt (dies kann eliminiert werden, wenn der Komparatorkern (Teil der SI) den Vergleich ausführt); (2) die SI-Komponente kann zu einem existierenden SoC-Entwurf oder Prozessorentwurf entweder als integrierter IP-Block oder als eine diskrete Zusatzvorrichtung hinzugefügt werden (dies bedeutet, dass KundenBenutzer, die etwaige existierende Prozessorentwürfe und/oder andere COTS-Lösungen (Commercial, Off-the-Shelf) verwenden, einen Aufrüstungspfad zu Funktionssicherheit mit minimaler Mühe erhalten); und/oder (3) bei Hardware-fehlertoleranten bzw. HFT-Architekturen können die in jeder Datenverarbeitungsplattform (die auch als Kanal bekannt ist) anwesenden einzelnen SI miteinander gekoppelt werden. Dieser Ansatz könnte dabei helfen, die DC und somit insgesamte Sicherheitsintegrationsniveaus zu verbessern. Bei der integrierten Version befindet sich die SI oder Sicherheitsüberwachungsvorrichtung jedoch nicht außerhalb des SoC, sondern befindet sich stattdessen bei einer anderen Ausführungsform in einem getrennten Baustein, wodurch sich ein gewisser Grad des oben erwähnten Vorteils bzw. der oben erwähnten Vorteile ergibt.
  • 3 zeigt eine Blockdarstellung einer Hardware-fehlertoleranten Architektur 300 auf hoher Ebene gemäß einer Ausführungsform. Hardware-fehlertolerante bzw. HFT-Architekturen bieten im Allgemeinen die Möglichkeit, die Sicherheitsfunktionalität sogar mit einem oder mehreren Hardwarefehlern bereitzustellen. Wie hier besprochen gibt 1oo1 HFT=0 (oder ein nichtredundantes System) an, und 1oo2 gibt HFT=1 (oder ein redundantes System), z. B. gemäß IEC 61508, an. Um solche Architekturen auf der Basis einiger Ausführungsformen zu implementieren, werden mehrere Datenverarbeitungsplattformen (die als Kanäle bekannt sind) verwendet, und die SI dieser Kanäle werden miteinander verbunden. Diese SI führen den Quervergleich von Signaturen durch. Daher stellt die Architektur 300 gemäß einer Ausführungsform ODCC in HFT-Architekturen bereit. Im Gegensatz zur traditionellen Lösung des Systems mit HFT=1, bei dem der Vergleich in einer Entität geschieht, wird der Vergleich hier in zwei unabhängigen SI durchgeführt, wodurch die SI-Implementierung redundant wird.
  • Bei einer Ausführungsform kann ein SoC auf der Basis des (z. B. von der Intel® Corporation bereitgestellten) Atom®-Prozessors mit vier Kernen bereitgestellt werden, die zur Ausführung der Sicherheitsarbeitslasten verwendet werden. Es ist möglich, aus den vier Kernen zwei LCLS-Paare von CPU zur Arbeitslastausführung zu konstruieren. In 3 wirken CPU0 und CPU1 als das LCLS-Paar 1 und CPU2 und CPU3 als LCLS Paar 2. Durch WL-0, WL-1 und WL-2 gegebene Sicherheitsarbeitslasten werden auf CPU0 und CPU1 (Teil des LCLS-Paars 1) ausgeführt, während durch WL-10, WL-11 und WL-12 gegebene Sicherheitsarbeitslasten auf CPU2 und CPU3 (Teil des LCLS-Paars 2) ausgeführt werden. Durch eine gegebene Arbeitslast durch duplizierte Ausführung auf CPUO/CPU1 und CPU2/CPU3 erzeugte Signaturen werden durch die SI 302 verglichen (d. h. es gibt zwei Paare von Vergleichsoperationen für zwei verschiedene WL, ein Paar ist für CPU0 gegenüber CPU1, und das andere Paar ist für CPU2 gegenüber CPU3).
  • 4 zeigt eine Blockdarstellung einer Hardware-fehlertoleranten Architektur 400 auf hoher Ebene gemäß einer Ausführungsform. In 4 sind die SI der zwei Datenverarbeitungskanäle (d. h. Ch0 und Ch1) unter Verwendung einer seriellen Verbindung, wie etwa einer SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit) oder I3C® (oder SenseWire) miteinander verbunden. Die CPU0 beider Kanäle wirken als LCLS-Paar 1, CPU1 beider Kanäle wirken als LCLS-Paar 2 und so weiter. Die CPU-Nummern von 4 beziehen sich auf die entsprechende CPU des anderen Kanals (der anderen Vorrichtung), auf dem dieselbe Menge von WL läuft, z. B. WL-0 bis WL-2. Durch WL-0, WL-1 und WL-2 gegebene Sicherheitsarbeitslasten werden auf CPU0 beider Kanäle ausgeführt. Durch eine gegebene Arbeitslast durch duplizierte Ausführung auf Kernen beider Kanäle erzeugte Signaturen werden dann durch die SI beider der Kanäle verglichen. Wenn einer der Vergleiche fehlschlägt, wird dies als ODCC-Fehlschlagbedingung behandelt, und das System wird als Ergebnis von ODCC-Fehlschlag bzw. -Fehlschlägen in den Sicherheitszustand versetzt.
  • 5 und 6 zeigen Flüsse auf Systemebene für ODCC der Konfigurationen von 3 bzw. 4 gemäß einigen Ausführungsformen. Die Sicherheitsanwendung oder Arbeitslast des Kunden/Benutzers wird modifiziert, um die Signaturen ihrer Sicherheitsvariablen an spezifischen Punkten zu berechnen. Dabei könnte es sich, bestimmt durch den Endbenutzungsfall/die Anwendung des Kunden, um einige wenige Millisekunden bis sogar einige Stunden handeln. Die Signaturen werden unter Verwendung von CRC (Cyclic Redundancy Code) (wie etwa 32-Bit-CRC oder CRC-32) oder eines beliebigen anderen Hashing- oder Signaturauswertungsalgorithmus berechnet. Die Signatur wird dann über alle Arbeitslasten akkumuliert und (entweder als Teil von Arbeitslasten oder Treiber oder in einem globalen Lager) zusammen mit anderen Details, wie etwa Kernkennung (ID), Arbeitslast-ID, Schnappschuss-ID, Typdetails und/oder Zeitstempel gespeichert. Dies wird als LCLS-Schnappschuss oder ODCC-Schnappschuss bezeichnet.
  • Der ODCC-Schnappschuss identifiziert eindeutig die Signatur, die einer gegebenen Sicherheitsarbeitslast an einem beliebigen gegebenen Zeitpunkt während ihrer Ausführung entspricht. Es ist möglich, dass die Kunden die ODCC/LCLS-Bibliothek durch Übersteuerung und Hineinstecken ihres eigenen Signaturauswertungsalgorithmus anpassen. Die SI-FW (die z. B. die Quervergleicherlogik implementiert) sammelt periodisch die Menge von ODCC-Schnappschüssen aus dem Raum des Hosts. Der Transfer der ODCC-Schnappschüsse könnte über die Nachrichten über Interconnect (wie etwa PCIe-Mailbox) erfolgen, oder eine DMA-Engine (Direct Memory Access) könnte zur Beschleunigung verwendet werden. Wie hier besprochen bezieht sich der Ausdruck „Treiber“ allgemein auf einen Software-Gerätetreiber, z. B. für die SI, abhängig davon, wie die SI angeschlossen oder integriert ist, von PCIe, von SPI usw.
  • Im Fall der Architektur von 3 führt die SI-FW den Vergleich von durch die zwei unabhängigen Kerne, die dieselbe Arbeitslast ausführen, erzeugten Signaturen durch. Im Fall der Architektur von 4 erweitert die SI-FW die gesammelten Signaturen zum Quervergleich mit der Peer-SI-FW.
  • Aufgrund der Arbeitslast-Ausführungsdrifts senden möglicherweise nicht beide Kerne genau dieselbe Menge von Schnappschüssen zu einem beliebigen gegebenen Zeitpunkt. Das heißt, es können einige zusätzliche Schnappschüsse von einem der Kerne empfangen werden, während die anderen Kerne hinterherhinken könnten. Diese zusätzlichen Schnappschüsse werden zur Verarbeitung für das nächste Zeitintervall gespeichert. Dies hat Auswirkungen darauf, wie man Anforderungen der PST (Prozesssicherheitszeit) beweist. Bei den Schnappschüssen, die zur Verarbeitung in der nächsten PST-Periode gespeichert werden, wird die Fehlerdetektionszeit nun mehr als die PST. Außerdem werden die Fehler in diesem Fall innerhalb von (PST + Zeitverzögerung zwischen den zwei Kernen) detektiert. Um diese Verzögerung zu mindern, besteht eine der Möglichkeiten darin, den Polling-Timer der SI-FW zu verringern (z. B. auf die Hälfte der PST). Das Polling-Zeitintervall ist als die Zeit definiert, in der die SI-FW nach den Schnappschüssen vom Host anfordert. Das Polling-Zeitintervall wird durch die nachfolgend gegebene Formel bereitstellt: P o l l i n g Z e i t i n t e r v a l l = ( P S T 2 m S ) / 2
    Figure DE102020102232A1_0001
  • Zum Beispiel bedeutet eine PST-Anforderung von 10 mS (Millisekunden), wie in einer beispielhaften Plattform, ein Polling-Zeitintervall von 4 mS.
  • Von einer Perspektive des Host-Softwarestapels aus gesehen gibt es verschiedene Weisen zur Ausführung der Arbeitslasten, (i) Einzel-OS (Betriebssystem), wobei Systemsoftware sicherstellt, dass die Arbeitslast/Anwendung auf zwei Kernen parallel läuft. In diesem Fall stellt Kombination von Anwendungen, Middleware und OS sicher, dass dieselbe Arbeitslast oder Anwendung gleichzeitig auf zwei Kernen ausgeführt wird. In diesem Fall ist die Erwartung, dass E/A (Eingabe/Ausgabe) so verwaltet wird, dass die Anwendung den Unterschied nicht detektiert, d. h. beide Instanzen erhalten die Eingabe zur selben Zeit ohne zusätzliche Verzögerungen (zum Beispiel unter Verwendung eines Master/Slave-Mechanismus, wobei eine der Arbeitslastinstanzen als Master wirkt und die E/A besitzt und die andere Instanz die E/A vom Master oder unter Verwendung eines beliebigen anderen Mechanismus empfängt, z. B. auf der Basis von Software-Ende-zu-Ende-Sicherheitsprotokollen für Kommunikationskanäle). (ii) Zwei VM (virtuelle Maschinen) laufen auf zwei getrennten Kernen, auf denen dieselbe Arbeitslast oder Anwendung läuft, parallel mit einer dritten VM, die die SI-Interaktion verwaltet (z. B. zusätzlich zu anderen dienstbezogenen Erledigungen). In diesem Fall stellen der VMM (Virtuellmaschinenmananger) oder andere Systemsoftwaremechanismen sicher, dass die Anwendungen zur selben Zeit gestartet werden und ähnlich wie bei der ersten Möglichkeit E/A unter Verwendung von Black Channel oder eines anderen Mechanismus verwaltet wird, um sicherzustellen, dass beide Anwendungsdistanzen zur selben Zeit eine Kopie der Eingabe (d. h. ohne zusätzliche Verzögerung) erhalten.
  • In beiden Fällen (und beliebigen anderen Konfigurationen) kann die Arbeitslast einige wenige Millisekunden bis einige wenige Stunden laufen, da sie sehr stark kundenwendungs-/-benutzungsspezifisch ist. Da das OS die Arbeitslast auf zwei Kernen laufen lässt, wird erwartet, dass die zwei Kerne nicht exakt dieselbe Menge von Anweisungen gleichzeitig ausführen. Es wird eine gewisse Zeitverzögerung zwischen zwei Kernausführungen bestimmen.
  • Bei einigen Ausführungsformen unterstützt das System mehrere Anwendungen oder Arbeitslasten, die parallel auf denselben zwei Kernen laufen, unter Verwendung eines Zeitscheibenmechanismus auf OS-Basis. Da diese Arbeitslasten auf zwei Kernen laufen, kann angenommen werden, dass diese in zwei getrennten Speicheradressenräumen laufen. Diese Annahme erfolgt, um FFI (Freiheit von Störungen) zwischen den zwei Instanzen und leichte Verwendung/Entwicklung/Entfaltung sicherzustellen. Bei mindestens einer Ausführungsform kann, wenn die Arbeitslast nicht kontinuierlich ausgeführt wird, angenommen werden, dass Komparatorlogik in der SI nicht aktiv ist, während Sicherheitsarbeitslasten nicht aktiv sind. Der Grund dafür besteht darin, dass die erforderliche DC für diese Arbeitslasten nur benötigt wird, wenn diese Arbeitslast aktiv ist.
  • 7 zeigt eine beispielhafte gleitende Pufferdatenstruktur 700, die zum Speichern und Vergleichen der Schnappschussdaten verwendet werden kann, gemäß einer Ausführungsform. Der Algorithmus für das ODCC-Merkmal, der als Teil von SI-Firmware (FW) implementiert wird, wird nachfolgend besprochen. Die SI-FW muss den Betriebsmodus kennen, z. B. die Architektur von 3 oder 4, um den Vergleich durchzuführen. Um die Voreilungen/Verzögerungen in Schnappschussdaten zu berücksichtigen, wird ein gleitender Puffer verwendet, um den Vergleich von Signaturen zu akkumulieren und durchzuführen.
  • Wie in 7 gezeigt wird der gleitende Puffer auf der Basis der Arbeitslast-ID und Schnappschuss-ID indexiert. Auf der Basis der Arbeitslast-ID und Schnappschuss-ID wird jeder ankommende Schnappschuss in den gleitenden Puffer eingefügt. Das Flags-Feld, das diesem Eintrag entspricht, wird dann geeignet aktualisiert (gleichgültig, ob der Schnappschuss von dem ersten Agenten empfangen wird, der Vergleich fertig ist usw.). Der zweite Empfang eines Schnappschusses löst die eigentliche Vergleichsoperation aus.
  • Mit Bezug auf 5-7 wird der Gesamtalgorithmus mit der in der SI-FWgeführten Vergleichsoperation wie nachfolgend besprochen.
    1. 1. Einrichten eines Polling-Timer auf der Basis von PST-Anforderungen. Das Polling-Timer-Intervall wird auf der Basis der im vorherigen Abschnitt gegebenen Gleichung bereitgestellt. Es wird ein Polling-Timer-Intervall von 4 mS verwendet, um eine Garantie von 10 mS PST bereitzustellen. Der Timer wird zuallererst nicht aktiviert.
    2. 2. Der Polling-Timer wird aktiviert, wenn die erste Nachricht Start LCLS von beliebigen der Arbeitslast empfangen wird.
    3. 3. Bei Ablauf der Polling-Timers wird Folgendes durchgeführt:
      • i. Reaktivieren des Polling-Timers für das nächste Zeitintervall
      • ii. Senden einer Anforderungsnachricht LCLS-Schnappschuss zum Host, um die DMA-Speicherregion abzufragen, in der Schnappschüsse im Hostende akkumuliert werden.
      • iii. Sicherstellen, dass die Antwort auf die Anforderung LCLS-Schnappschuss innerhalb einer vorbestimmten Zeit ankommt (z. B. unter Verwendung eines getrennten Timers). Die Antwortnachricht enthält die Startadresse und Größe der DMA-Region, die die Schnappschussdaten enthält.
      • iv. Programmieren der DMA-Engine zum Kopieren der Schnappschussdaten aus dem Hostraum in den SI-Raum. Dies führt zu einer Verlagerung aller bisher gesammelten Schnappschusseinträge im Ende des Hosts zur SI-FW.
      • v. Parsen der ankommenden Schnappschussdaten und Einfügen der Schnappschüsse in den gleitenden Puffer auf der Basis der Arbeitslast-ID, des Betriebsmodus und der Schnittstelle, auf der die Antwort empfangen wird.
    4. 4. Durchführen des Vergleichs an allen anstehenden Schnappschüssen wie folgt:
      • i. Im Fall eines Sicherheitsvariablenvergleichs (z. B. gegeben durch Typ = 0x01) direktes Vergleichen der Signatur, und im Fall einer Übereinstimmung Sicherstellen, dass der Zeitstempel innerhalb von PST-Anforderungen liegt.
      • ii. Im Fall von analogen Variablen (z. B. gegeben durch Typ = 0x02/0x03) Sicherstellen, dass der Wert der Variablen innerhalb des Toleranzbands liegt. Der Toleranzwert wird entweder als absolute Zahl bereitgestellt oder als Prozentsatz ausgedrückt.
  • Im Gegensatz dazu können einige Implementierungen als Ansätze auf Hardwarebasis und Softwarebasis kategorisiert werden. Ansätze auf Hardwarebasis wären zum Beispiel die Verwendung von Watchdog-Prozessoren, Gleichschritt oder Verwendung von Checkern. Es kann zum Beispiel Gleichschritt verwendet werden. Dabei werden zwei oder mehr unabhängige Kerne verwendet, um dieselbe CPU-Anweisung auszuführen, und dann die Ausgaben clockzyklusweise verglichen. Hardwararchitekturen auf der Basis eines strikt gekoppelten Gleichschritts, wie etwa DCLS (Dual-Core Locked Steps) basieren auf Gleichschritttechniken. Bei Techniken auf Softwarebasis wird eine Mehrkern-Hardwarearchitektur verwendet, um duplizierten Code auszuführen und dann Vergleich von Ausgaben durchzuführen. In der Regel wird ein Vordurchlauf-Compiler verwendet, um Duplikation auf prozeduraler Ebene durchzuführen und automatisch den Fehlerdetektionscode einzufügen. Die resultierenden ausführbaren Dateien werden dann auf unabhängigen Kernen einer Mehrkern-Hardware laufengelassen, um Softwareredundanz bereitzustellen. Bei anderen auf Software basierenden Ansätzen wie Steuerflussprüfung wird eine Signatur auf einer grundlegenden Blockebene erzeugt, die dann während Steuertransfers (wie etwa Verzweigungsanweisungen) verglichen werden.
  • Ansätze auf Hardwarebasis, die auf Gleichschritt basieren, erfordern jedoch im Allgemeinen Duplizieren der physischen CPU-Kerne sowie Aufnehmen einer Komparatoreinheit(en) in Hardware, um Ausgabevergleich(e) pro Zyklus durchzuführen. Dies führt zu zusätzlichen Entwicklungs- und Validierungsbemühungen/-kosten. Obwohl die Ausführung von Anweisungen auf duplizierten Kernen dabei hilft, Fehler zu entdecken, die in dem Kern-Subsystem auftreten, sind die Speicher- und Interconnect-Komponenten am Ende Quellen für Fehlschläge üblicher Ursachen. Dies erfordert einen zusätzlichen Sicherheitsmechanismus zum Entdecken von Fehlern in den Speicher- und Interconnect-Komponenten. Dieser Ansatz kann auch die effektive verfügbare Leistungsfähigkeit begrenzen, wenn eine Sicherheitsarbeitslast nur ein kleiner Teil einer Gesamtarbeitslast ist, ungeachtet der Menge an Sicherheitsarbeitslast, müssen die Kerne in den Gleichschritt versetzt werden.
  • Auf Software basierende Ansätze, wie etwa die Verwendung von Vordurchlauf-Compilern und Steuerflussprüfmethoden basieren ferner auf spezialisierten Werkzeugen, die architekturabhängig sind und somit für neuere CPU-Architekturen zusätzliche Entwicklungs-/Portierungsbemühungen erfordern können. Ein Hauptnachteil in diesen Systemen kann darin bestehen, dass der signaturerzeugende Kern oft zum Durchführen des Signaturvergleichs verwendet wird. Dies kann am Ende eine Quelle von Fehlschlag üblicher Ursache werden. Es ist möglich, dass ein fehlerhafter Kern eine nichtidentische Signatur erzeugt, und dennoch während des Vergleichs ein falsches positives Ergebnis bereitstellt. Die Diagnostikabdeckung, die durch diese Mechanismen beansprucht werden kann, kann daher begrenzt sein und kann von verschiedenen Implementierungsfaktoren abhängen. Außerdem können sie extensive Expertise eines Kernentwurfs erfordern, um solche Mechanismen zu implementieren, was zu einer beträchtlichen Menge an Bemühungen für die Systemintegratoren führen würde.
  • 8 zeigt eine Blockdarstellung einer SoC-Kapselung gemäß einer Ausführungsform. Wie in 8 dargestellt umfasst das SoC 802 einen oder mehrere Zentralverarbeitungseinheit- bzw. CPU-Kerne 820, einen oder mehrere Grafikverarbeitungseinheit- bzw. GPU-Kerne 830, eine Eingabe/Ausgabe- bzw. E/A-Schnittstelle 840 und einen Speichercontroller 842. Verschiedene Komponenten der SoC-Kapselung 802 können mit einem Interconnect oder Bus, wie etwa hier mit Bezug auf die anderen Figuren besprochen, gekoppelt sein. Außerdem kann die SoC-Kapselung 802 mehr oder weniger Komponenten umfassen, wie etwa die hier mit Bezug auf die anderen Figuren besprochenen. Ferner kann jede Komponente der SoC-Kapselung 820 eine oder mehrere andere Komponenten umfassen, z. B. wie mit Bezug auf die anderen vorliegenden Figuren besprochen. Bei einer Ausführungsform werden die SoC-Kapselung 802 (und ihre Komponenten) auf einem oder mehreren integrierten Schaltungs- bzw. IC-Bausteinen bereitgestellt, die z. B. in eine einzige Halbleitervorrichtung gekapselt werden.
  • Wie in 8 dargestellt, ist die SoC-Kapselung 802 über den Speichercontroller 842 mit einem Speicher 860 gekoppelt. Bei einer Ausführungsform kann der Speicher 860 (oder ein Teil davon) auf der SoC-Kapselung 802 integriert sein.
  • Die E/A-Schnittstelle 840 kann z. B. über ein Interconnect und/oder einen Bus, wie etwa hier mit Bezug auf andere Figuren besprochen, mit einer oder mehreren E/A-Vorrichtungen 870 gekoppelt sein. Die E/A-Vorrichtung(en) 870 können eines oder mehrere einer Tastatur, einer Maus, eines Touchpad, einer Anzeige, einer Bild-/Videoaufnahmevorrichtung (wie etwa einer Kamera oder eines Camcorders/Videorekorders), eines Touchscreen, eines Lautsprechers oder dergleichen umfassen.
  • 9 ist eine Blockdarstellung eines Verarbeitungssystems 900 gemäß einer Ausführungsform. Bei verschiedenen Ausführungsformen umfasst das System 900 einen oder mehrere Prozessoren 902 und einen oder mehrere Grafikprozessoren 908 und kann ein Einzelprozessor-Desktop-System, ein Mehrprozessor-Workstation-System oder ein Serversystem mit einer großen Anzahl von Prozessoren 902 oder Prozessorkernen 907 sein. Bei einer Ausführungsform ist das System 900 eine Verarbeitungsplattform, die zur Verwendung in mobilen, in der Hand gehaltenen oder eingebetteten Vorrichtungen in eine integrierte Schaltung eines Systems auf einem Chip (SoC oder SOC) integriert ist.
  • Eine Ausführungsform des Systems 900 kann eine Spielplattform auf Serverbasis, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, eine Mobil-Spielkonsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole umfassen oder darin integriert sein. Bei einigen Ausführungsformen ist das System 900 ein Mobiltelefon, ein Smartphone, eine Tablet-Datenverarbeitungsvorrichtung oder mobile Internet-Vorrichtung. Das Datenverarbeitungssystem 900 kann auch eine Wearable-Vorrichtung, wie etwa eine Smartwatch-Wearable-Vorrichtung, eine intelligente Brillenvorrichtung, eine Augmented-Reality-Vorrichtung oder Virtual-Reality-Vorrichtung, umfassen oder damit gekoppelt oder darin integriert sein. Bei einigen Ausführungsformen ist das Datenverarbeitungssystem 900 eine Fernseher- oder Set-Top-Box-Vorrichtung mit einem oder mehreren Prozessoren 902 und einer grafischen Schnittstelle, die durch einen oder mehrere Grafikprozessoren 908 erzeugt wird.
  • Bei einigen Ausführungsformen können der eine oder die mehreren Prozessoren 902 jeweils einen oder mehrere Prozessorkerne 907 zum Verarbeiten von Anweisungen, die, wenn sie ausgeführt werden, Operationen für System- und Benutzersoftware ausführen. Bei einigen Ausführungsformen ist jeder des einen oder der mehreren Prozessorkerne 907 dafür ausgelegt, einen spezifischen Anweisungssatz 909 zu verarbeiten. Bei einigen Ausführungsformen kann der Anweisungssatz 909 CISC (Complex Instruction Set Computing), RISC (Reduced Instruction Set Computing) oder Datenverarbeitung über VLIW (Very Long Instruction Word) ermöglichen. Mehrere Prozessorkerne 907 können jeweils einen anderen Anweisungssatz 909 verarbeiten, der Anweisungen zur Ermöglichung der Emulation anderer Anweisungssätze umfassen kann. Der Prozessorkern 907 kann auch andere Verarbeitungsvorrichtungen umfassen, wie etwa einen DSP (digitalen Signalprozessor).
  • Bei einigen Ausführungsformen umfasst der Prozessor 902 Cache-Speicher 904. Abhängig von der Architektur kann der Prozessor 902 einen einzigen internen Cache oder mehrere Ebenen von internem Cache aufweisen. Bei einigen Ausführungsformen wird der Cache-Speicher unter den verschiedenen Komponenten des Prozessors 902 geteilt. Bei einigen Ausführungsformen verwendet der Prozessor 902 auch einen externen Cache (z. B. einen L3-Cache (Level-3) oder einen LLC (Last Level Cache)) (nicht gezeigt), der unter den Prozessorkernen 907 unter Verwendung bekannter Cache-Kohärenztechniken geteilt werden kann. Ein Registerfile 906 ist zusätzlich in dem Prozessor 902 enthalten, das verschiedene Arten von Registern zum Speichern verschiedener Arten von Daten umfassen kann (z. B. Integer-Register, Floating-Point-Register, Statusregister und ein Anweisungszeigerregister). Einige Register können Vielzweckregister sein, während andere Register für den Entwurf des Prozessors 902 spezifisch sein können.
  • Bei einigen Ausführungsformen ist der Prozessor 902 mit einem Prozessorbus 910 gekoppelt, um Kommunikationssignale wie Adressen-, Daten- oder Steuersignale zwischen dem Prozessor 902 und anderen Komponenten in dem System 900 zu übertragen. Bei einer Ausführungsform verwendet das System 900 eine beispielhafte „Hub“-Systemarchitektur, die einen Speichercontroller-Hub 916 und einen Eingabe-/Ausgabe- bzw. E/A-Controller-Hub 930 umfasst. Ein Speichercontroller-Hub 916 ermöglicht Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 900, während ein E/A-Controller-Hub (ICH) 930 Verbindungen mit E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt. Bei einer Ausführungsform ist die Logik des Speichercontroller-Hub 916 in dem Prozessor integriert.
  • Die Speichervorrichtung 920 kann eine DRAM-Vorrichtung (dynamischer Direktzugriffsspeicher), eine SRAM-Vorrichtung (statischer Direktzugriffsspeicher), eine Flash-Speichervorrichtung, eine Phasenänderungs-Speichervorrichtung oder eine gewisse andere Speichervorrichtung mit geeigneter Leistungsfähigkeit zum Dienen als Prozessspeicher sein. Bei einer Ausführungsform kann die Speichervorrichtung 920 als Systemspeicher für das System 900 arbeiten, um Daten 922 und Anweisungen 921 zur Verwendung, wenn der eine oder die mehreren Prozessoren 902 eine Anwendung oder einen Prozess ausführen, zu speichern. Der Speichercontroller-Hub 916 ist auch an einen optionalen externen Grafikprozessor 912 angeschlossen, der mit dem einen oder den mehreren Grafikprozessoren 908 in den Prozessoren 902 kommunizieren kann, um Grafik- und Medienoperationen auszuführen.
  • Bei einigen Ausführungsformen ermöglicht der ICH 930 Peripherievorrichtungen, sich über einen Hochgeschwindigkeits-E/A-Bus mit der Speichervorrichtung 920 und dem Prozessor 902 zu verbinden. Die E/A-Peripherievorrichtungen umfassen, aber ohne Beschränkung darauf, einen Audiocontroller 946, eine Firmwareschnittstelle 928, einen drahtlosen Sendeempfänger 926 (z. B. WiFi, Bluetooth), eine Datenspeicherungsvorrichtung 924 (z. B. Festplatte, Flash-Speicher usw.) und einen Legacy-E/A-Controller 940 zur Kopplung von veralteten Vorrichtungen (z. B. PS/S (Personal System 2)) mit dem System. Ein oder mehrere USB-Controller 942 (Universal Serial Bus) verbinden Eingabevorrichtungen, wie etwa Kombinationen aus Tastatur und Maus 944. Ein Netzwerkcontroller 934 kann auch an den ICH 930 angeschlossen sein. Bei einigen Ausführungsformen ist ein (nicht gezeigter) hochleistungsfähiger Netzwerkcontroller an den Prozessorbus 910 angeschlossen. Es versteht sich, dass das gezeigte System 900 beispielhaft und nicht einschränkend ist, da auch andere Arten von Datenverarbeitungssystemen verwendet werden können, die anders konfiguriert sind. Zum Beispiel kann der E/A-Controller-Hub 930 in den einen oder die mehreren Prozessoren 902 integriert sein, oder der Speichercontroller-Hub 916 und der E/A-Controller-Hub 930 können in einen diskreten externen Grafikprozessor, wie etwa den externen Grafikprozessor 912 integriert sein.
  • Die folgenden Beispiele betreffen weitere Ausführungsformen. Beispiel 1 umfasst eine Vorrichtung, umfassend: mehrere Prozessorkerne zum Ausführen einer oder mehrerer Arbeitslasten, die Operationen einer oder mehrerer Komponenten eines Fahrzeugs entsprechen; einen ersten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer ersten Instanz einer Arbeitslast zur Erzeugung einer ersten Menge von Sicherheitsvariablen; einen zweiten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer zweiten Instanz einer Arbeitslast zur Erzeugung einer zweiten Menge von Sicherheitsvariablen; und einen dritten Prozessorkern der mehreren Prozessorkerne zur Erzeugung eines Signals als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen. Beispiel 2 umfasst die Vorrichtung nach Beispiel 1, wobei der dritte Prozessorkern eine Nichtübereinstimmung zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls detektieren soll. Beispiel 3 umfasst die Vorrichtung nach Beispiel 1, wobei ein System-auf-Chip den ersten Prozessorkern und den zweiten Prozessorkern umfasst, wobei eine Sicherheitsinsel den dritten Prozessorkern umfasst. Beispiel 4 umfasst die Vorrichtung nach Beispiel 3, wobei das System-auf-Chip und die Sicherheitsinsel über ein Interconnect gekoppelt sind. Beispiel 5 umfasst die Vorrichtung nach Beispiel 4, wobei das Interconnect ein On-Chip-Systemkoppelfeld und/oder einen PCIe-Bus (Peripheral Component Interconnect express) und/oder einen CAN-Bus (Controller Area Network) umfasst. Beispiel 6 umfasst die Vorrichtung nach Beispiel 1, wobei ein Prozessor die mehreren Prozessorkerne umfasst. Beispiel 7 umfasst die Vorrichtung nach Beispiel 1, wobei eine SOC-Vorrichtung (System On Chip) die mehreren Prozessorkerne, Speicher und einen CAN-Bus umfasst. Beispiel 8 umfasst die Vorrichtung nach Beispiel 1, wobei eine Vorrichtung des Internet der Dinge (IoT) oder ein Fahrzeug die mehreren Prozessorkerne und/oder Speicher umfasst. Beispiel 9 umfasst die Vorrichtung nach Beispiel 1, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist. Beispiel 10 umfasst eine Vorrichtung, umfassend: mehrere Prozessorkerne zum Ausführen einer oder mehrerer Arbeitslasten, die Operationen einer oder mehrerer Komponenten eines Fahrzeugs entsprechen; und einen ersten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer ersten Instanz einer ersten Mehrzahl von Arbeitslasten zur Erzeugung einer ersten Menge von Sicherheitsvariablen; einen zweiten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer zweiten Instanz einer ersten Mehrzahl von Arbeitslasten zur Erzeugung einer zweiten Menge von Sicherheitsvariablen; und einen dritten Prozessorkern der mehreren Prozessorkerne zur Erzeugung eines Signals als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen. Beispiel 11 umfasst die Vorrichtung nach Beispiel 10, wobei der dritte Prozessorkern eine Nichtübereinstimmung zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls detektieren soll. Beispiel 12 umfasst die Vorrichtung nach Beispiel 10, wobei ein System-auf-Chip den ersten Prozessorkern und den zweiten Prozessorkern umfasst, wobei eine Sicherheitsinsel den dritten Prozessorkern umfasst. Beispiel 13 umfasst die Vorrichtung nach Beispiel 10, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  • Beispiel 14 umfasst eine Vorrichtung, umfassend: einen ersten Prozessorkern eines ersten Datenverarbeitungskanals zur Ausführung einer ersten Instanz einer ersten Mehrzahl von Arbeitslasten; einen ersten Prozessorkern eines zweiten Datenverarbeitungskanals zur Ausführung einer zweiten Instanz der ersten Mehrzahl von Arbeitslasten; und ein Interconnect zum Koppeln von Sicherheitsinseln des ersten Datenverarbeitungskanals und des zweiten Datenverarbeitungskanals, wobei die erste Mehrzahl von Arbeitslasten Operationen einer oder mehrerer Komponenten eines Fahrzeugs entspricht. Beispiel 15 umfasst die Vorrichtung nach Beispiel 14, wobei das Interconnect eine SPI-Schnittstelle (Serial Peripheral Interface) und/oder eine I2C-Schnittstelle (Inter-Integrated Circuit) und/oder eine SenseWire™-Schnittstelle umfasst. Beispiel 16 umfasst die Vorrichtung nach Beispiel 14, ferner umfassend: einen ersten Prozessorkern eines dritten Datenverarbeitungskanals zum Ausführen einer ersten Instanz einer zweiten Mehrzahl von Arbeitslasten; und einen ersten Prozessorkern eines vierten Datenverarbeitungskanals zur Ausführung einer zweiten Instanz der zweiten Mehrzahl von Arbeitslasten, wobei das Interconnect Sicherheitsinseln des dritten Datenverarbeitungskanals und des vierten Datenverarbeitungskanals koppeln soll. Beispiel 17 umfasst die Vorrichtung nach Beispiel 14, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  • Beispiel 18 umfasst ein oder mehrere computerlesbare Medien, die eine oder mehrere Anweisungen umfassen, die, wenn sie auf mindestens einem Prozessor ausgeführt werden, den mindestens einen Prozessor dafür auslegen, eine oder mehrere Operationen auszuführen zum Ausführen einer oder mehrerer Arbeitslasten entsprechend Operationen einer oder mehrerer Komponenten eines Fahrzeugs; Ausführen einer ersten Instanz einer Arbeitslast in einem ersten Prozessorkern des Prozessors, um eine erste Menge von Sicherheitsvariablen zu erzeugen; Ausführen einer zweiten Instanz der Arbeitslast in einem zweiten Prozessorkern des Prozessors, um eine zweite Menge von Sicherheitsvariablen zu erzeugen; und Bewirken der Erzeugung eines Signals in einem dritten Prozessorkern des Prozessors als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen. Beispiel 19 umfasst das eine oder die mehreren computerlesbaren Medien nach Beispiel 18, ferner umfassend: eine oder mehrere Anweisungen, die, wenn sie auf dem mindestens einen Prozessor ausgeführt werden, den mindestens einen Prozessor dafür auslegen, eine oder mehrere Operationen auszuführen zum Bewirken der Detektion einer Nichtübereinstimmung in dem dritten Prozessorkern zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls. Beispiel 20 umfasst das eine oder die mehreren computerlesbaren Medien nach Beispiel 18, ferner umfassend: eine oder mehrere Anweisungen, die, wenn sie auf dem mindestens einen Prozessor ausgeführt werden, den mindestens einen Prozessor dafür auslegen, eine oder mehrere Operationen auszuführen zum Bewirken der Übertragung von Daten zwischen zwei des ersten Prozessorkerns, des zweiten Prozessorkerns und des dritten Prozessors über ein Interconnect.
  • Beispiel 21 umfasst ein Verfahren, umfassend: Ausführen einer oder mehrerer Arbeitslasten entsprechend Operationen einer oder mehrerer Komponenten eines Fahrzeugs; Ausführen einer ersten Instanz einer Arbeitslast in einem ersten Prozessorkern eines Prozessors, um eine erste Menge von Sicherheitsvariablen zu erzeugen; Ausführen einer zweiten Instanz der Arbeitslast in einem zweiten Prozessorkern des Prozessors, um eine zweite Menge von Sicherheitsvariablen zu erzeugen; und Bewirken der Erzeugung eines Signals in einem dritten Prozessorkern des Prozessors als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen. Beispiel 22 umfasst das Verfahren nach Beispiel 21, ferner umfassend: Bewirken der Detektion einer Nichtübereinstimmung in dem dritten Prozessorkern zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls. Beispiel 23 umfasst das Verfahren nach Beispiel 21, ferner umfassend: Ausführen einer oder mehrerer Operationen zum Bewirken der Übertragung von Daten zwischen zwei des ersten Prozessorkerns, des zweiten Prozessorkerns und des dritten Prozessors über ein Interconnect.
  • Beispiel 24 umfasst ein Verfahren, umfassend: Ausführen einer ersten Instanz einer ersten Vielzahl von Arbeitslasten in einem ersten Prozessorkern eines ersten Datenverarbeitungskanals; und Ausführen einer zweiten Instanz der ersten Vielzahl von Arbeitslasten in einem ersten Prozessorkern eines zweiten Datenverarbeitungskanals, wobei ein Interconnect Sicherheitsinseln des ersten Datenverarbeitungskanals und des zweiten Datenverarbeitungskanals koppeln soll, wobei die erste Vielzahl von Arbeitslasten Operationen einer oder mehrerer Komponenten eines Fahrzeugs entspricht. Beispiel 25 umfasst das Verfahren nach Beispiel 24, wobei das Interconnect eines oder mehrere von Folgendem umfasst: eine SPI (Serial Peripheral Interface), eine I2C-Schnittstelle (Inter-Integrated Circuit) und eine SenseWire™-Schnittstelle. Beispiel 26 umfasst das Verfahren nach Beispiel 24, ferner umfassend: Ausführen einer ersten Instanz einer zweiten Vielzahl von Arbeitslasten in einem ersten Prozessorkern eines dritten Datenverarbeitungskanals; und Ausführen einer zweiten Instanz der zweiten Vielzahl von Arbeitslasten in einem ersten Prozessorkern eines vierten Datenverarbeitungskanals, wobei das Interconnect Sicherheitsinseln des dritten Datenverarbeitungskanals und des vierten Datenverarbeitungskanals koppeln soll. Beispiel 27 umfasst das Verfahren nach Beispiel 24, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Helikopter, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  • Beispiel 28 umfasst eine Vorrichtung mit Mitteln zum Ausführen eines Verfahrens nach einem der vorhergehenden Beispiele. Beispiel 29 umfasst maschinenlesbare Speicherung, die maschinenlesbare Anweisungen umfasst, die, wenn sie ausgeführt werden, ein Verfahren implementieren oder eine Vorrichtung realisieren sollen, so wie es in einem der vorhergehenden Beispiele dargelegt wird.
  • Bei verschiedenen Ausführungsformen können die hier besprochenen Operationen, z. B. mit Bezug auf 1 et seq. als Hardware (z. B. Logikschaltkreise oder allgemeiner Schaltkreise oder eine Schaltung), Software, Firmware oder Kombinationen davon implementiert werden, die als Computerprogrammprodukt bereitgestellt werden können, z. B. einschließlich eines greifbaren (z. B. nichttransitorischen) maschinenlesbaren oder computerlesbaren Mediums, auf dem Anweisungen (oder Softwareprozeduren) gespeichert sind, mit denen ein Computer dafür programmiert wird, einen hier besprochenen Prozess auszuführen. Das maschinenlesbare Medium kann eine Speicherungsvorrichtung umfassen, wie etwa die mit Bezug auf 1 et seq. besprochenen.
  • Außerdem können solche computerlesbaren Medien als Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z. B. einem Server) mittels Datensignalen, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium über eine Kommunikationsstrecke (z. B. einen Bus, ein Modem oder eine Netzwerkverbindung) bereitgestellt werden, zu einem anfordernden Computer (z. B. einem Client) transferiert werden kann.
  • Die Erwähnung von „einer Ausführungsform“ oder „eine Ausführungsform“ in der Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur und/oder ein bestimmtes Charakteristikum, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Implementierung enthalten sein kann. Das Erscheinen des Ausdrucks „bei einer Ausführungsform“ an verschiedenen Stellen in der Beschreibung kann sich immer auf dieselbe Ausführungsform beziehen oder auch nicht.
  • Außerdem können in der Beschreibung und in den Ansprüche die Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Bei einigen Ausführungsformen kann „verbunden“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente sich in direktem physischem oder elektrischem Kontakt miteinander befinden. „Gekoppelt“ kann bedeuten, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt befinden. „Gekoppelt“ kann jedoch auch bedeuten, dass sich zwei oder mehr Elemente nicht in direktem Kontakt miteinander befinden, aber immer noch miteinander kooperieren oder interagieren.
  • Obwohl Ausführungsformen in für strukturelle Merkmale und/oder Verfahrensschritte spezifischer Sprache beschrieben wurden, versteht sich somit, dass der beanspruchte Gegenstand nicht auf die spezifischen beschriebenen Merkmale oder Schritte beschränkt werden kann. Stattdessen werden die spezifischen Merkmale und Schritte als beispielhafte Formen der Implementierung des beanspruchten Gegenstands offenbart.

Claims (19)

  1. Vorrichtung, umfassend: mehrere Prozessorkerne zum Ausführen einer oder mehrerer Arbeitslasten, die Operationen einer oder mehrerer Komponenten eines Fahrzeugs entsprechen; einen ersten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer ersten Instanz einer Arbeitslast zur Erzeugung einer ersten Menge von Sicherheitsvariablen; einen zweiten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer zweiten Instanz einer Arbeitslast zur Erzeugung einer zweiten Menge von Sicherheitsvariablen; und einen dritten Prozessorkern der mehreren Prozessorkerne zur Erzeugung eines Signals als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen.
  2. Vorrichtung nach Anspruch 1, wobei der dritte Prozessorkern eine Nichtübereinstimmung zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls detektieren soll.
  3. Vorrichtung nach Anspruch 1, wobei ein System-auf-Chip den ersten Prozessorkern und den zweiten Prozessorkern umfasst, wobei eine Sicherheitsinsel den dritten Prozessorkern umfasst.
  4. Vorrichtung nach Anspruch 3, wobei das System-auf-Chip und die Sicherheitsinsel über ein Interconnect gekoppelt sind.
  5. Vorrichtung nach Anspruch 4, wobei das Interconnect ein On-Chip-Systemkoppelfeld und/oder einen PCIe-Bus (Peripheral Component Interconnect express) und/oder einen CAN-Bus (Controller Area Network) umfasst.
  6. Vorrichtung nach Anspruch 1, wobei ein Prozessor die mehreren Prozessorkerne umfasst.
  7. Vorrichtung nach Anspruch 1, wobei eine SOC-Vorrichtung (System On Chip) die mehreren Prozessorkerne, Speicher und einen CAN-Bus umfasst.
  8. Vorrichtung nach Anspruch 1, wobei eine Vorrichtung des Internet der Dinge (IoT) oder ein Fahrzeug die mehreren Prozessorkerne und/oder Speicher umfasst.
  9. Vorrichtung nach Anspruch 1, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  10. Vorrichtung, umfassend: mehrere Prozessorkerne zum Ausführen einer oder mehrerer Arbeitslasten, die Operationen einer oder mehrerer Komponenten eines Fahrzeugs entsprechen; und einen ersten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer ersten Instanz einer ersten Mehrzahl von Arbeitslasten zur Erzeugung einer ersten Menge von Sicherheitsvariablen; einen zweiten Prozessorkern der mehreren Prozessorkerne zum Ausführen einer zweiten Instanz einer ersten Mehrzahl von Arbeitslasten zur Erzeugung einer zweiten Menge von Sicherheitsvariablen; und einen dritten Prozessorkern der mehreren Prozessorkerne zur Erzeugung eines Signals als Reaktion auf Vergleich der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen.
  11. Vorrichtung nach Anspruch 10, wobei der dritte Prozessorkern eine Nichtübereinstimmung zwischen der ersten Menge von Sicherheitsvariablen und der zweiten Menge von Sicherheitsvariablen innerhalb eines Prozesssicherheits-Zeitintervalls detektieren soll.
  12. Vorrichtung nach Anspruch 10, wobei ein System-auf-Chip den ersten Prozessorkern und den zweiten Prozessorkern umfasst, wobei eine Sicherheitsinsel den dritten Prozessorkern umfasst.
  13. Vorrichtung nach Anspruch 10, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  14. Vorrichtung, umfassend: einen ersten Prozessorkern eines ersten Datenverarbeitungskanals zur Ausführung einer ersten Instanz einer ersten Mehrzahl von Arbeitslasten; einen ersten Prozessorkern eines zweiten Datenverarbeitungskanals zur Ausführung einer zweiten Instanz der ersten Mehrzahl von Arbeitslasten; und ein Interconnect zum Koppeln von Sicherheitsinseln des ersten Datenverarbeitungskanals und des zweiten Datenverarbeitungskanals, wobei die erste Mehrzahl von Arbeitslasten Operationen einer oder mehrerer Komponenten eines Fahrzeugs entspricht.
  15. Vorrichtung nach Anspruch 14, wobei das Interconnect eine SPI-Schnittstelle (Serial Peripheral Interface) und/oder eine I2C-Schnittstelle (Inter-Integrated Circuit) und/oder eine SenseWire™-Schnittstelle umfasst.
  16. Vorrichtung nach Anspruch 14, ferner umfassend: einen ersten Prozessorkern eines dritten Datenverarbeitungskanals zum Ausführen einer ersten Instanz einer zweiten Mehrzahl von Arbeitslasten; und einen ersten Prozessorkern eines vierten Datenverarbeitungskanals zur Ausführung einer zweiten Instanz der zweiten Mehrzahl von Arbeitslasten, wobei das Interconnect Sicherheitsinseln des dritten Datenverarbeitungskanals und des vierten Datenverarbeitungskanals koppeln soll.
  17. Vorrichtung nach Anspruch 14, wobei das Fahrzeug ein Automobil, ein Lastwagen, ein Motorrad, ein Flugzeug, ein Hubschrauber, ein Boot/Schiff, ein Zug oder eine Drohne ist.
  18. Computerlesbares Medium, das eine oder mehrere Anweisungen umfasst, die, wenn sie auf einem Prozessor ausgeführt werden, den Prozessor dafür konfigurieren, eine oder mehrere Operationen eines der Ansprüche 1 bis 17 auszuführen.
  19. Vorrichtung mit Mitteln zum Ausführen eines Verfahrens nach einem der Ansprüche 1 bis 17.
DE102020102232.8A 2019-03-29 2020-01-30 Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen Pending DE102020102232A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/370,461 2019-03-29
US16/370,461 US11520297B2 (en) 2019-03-29 2019-03-29 Enhancing diagnostic capabilities of computing systems by combining variable patrolling API and comparison mechanism of variables

Publications (1)

Publication Number Publication Date
DE102020102232A1 true DE102020102232A1 (de) 2020-10-01

Family

ID=67392031

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020102232.8A Pending DE102020102232A1 (de) 2019-03-29 2020-01-30 Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen

Country Status (2)

Country Link
US (1) US11520297B2 (de)
DE (1) DE102020102232A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110969719A (zh) * 2019-11-12 2020-04-07 深圳市科比特航空科技有限公司 一种自动巡检方法、系统、终端设备及存储介质
FR3104278B1 (fr) 2019-12-06 2021-11-19 Commissariat Energie Atomique Système informatique embarqué à bord d'un porteur mettant en oeuvre au moins un service critique pour la sûreté de fonctionnement du porteur
US20210107512A1 (en) * 2020-03-27 2021-04-15 Intel Corporation Computing system for mitigating execution drift
DE102020208854A1 (de) * 2020-07-15 2022-01-20 Vitesco Technologies GmbH Halbleiterchip und Sicherheitsschaltungsanordnung mit einem solchen Halbleiterchip
US20210247743A1 (en) * 2021-03-26 2021-08-12 Intel Corporation Functional safety with root of safety and chain of safety
US11745724B2 (en) 2021-05-13 2023-09-05 Dana Belgium N.V. Diagnostic and control method for a vehicle system
US12054166B2 (en) 2021-05-13 2024-08-06 Dana Belgium N.V. Driveline component control and fault diagnostics
US11535239B2 (en) 2021-05-13 2022-12-27 Dana Belgium N.V. Diagnostic and control method for a vehicle system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099234A (en) 1976-11-15 1978-07-04 Honeywell Information Systems Inc. Input/output processing system utilizing locked processors
JP3211878B2 (ja) 1998-03-06 2001-09-25 日本電気株式会社 通信処理制御手段及びそれを備えた情報処理装置
US6256753B1 (en) 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
US6928583B2 (en) 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US6862693B2 (en) 2001-04-13 2005-03-01 Sun Microsystems, Inc. Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US7287185B2 (en) 2004-04-06 2007-10-23 Hewlett-Packard Development Company, L.P. Architectural support for selective use of high-reliability mode in a computer system
US7426614B2 (en) 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
US8051323B2 (en) 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US8438306B2 (en) 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
US8869161B2 (en) * 2010-11-18 2014-10-21 Fujitsu Limited Characterization and assignment of workload requirements to resources based on predefined categories of resource utilization and resource availability
US8930752B2 (en) 2011-02-15 2015-01-06 International Business Machines Corporation Scheduler for multiprocessor system switch with selective pairing
EP3289430B1 (de) 2015-04-27 2019-10-23 Snap-Aid Patents Ltd. Schätzung und verwendung einer relativen kopfhaltung und kamerasichtfeld
KR102479719B1 (ko) * 2015-06-04 2022-12-21 삼성에스디아이 주식회사 배터리 제어 시스템 및 방법
CN106936616B (zh) * 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
JP2017151496A (ja) * 2016-02-22 2017-08-31 ルネサスエレクトロニクス株式会社 安全監視装置、ネットワークシステム、安全監視方法
GB2555627B (en) 2016-11-04 2019-02-20 Advanced Risc Mach Ltd Error detection
DE102017102481A1 (de) 2017-02-08 2018-08-09 Klaus Schilling Formationsfähiger Kleinstsatellit und Formation aus mehreren Kleinstsatelliten
US11065979B1 (en) * 2017-04-05 2021-07-20 H55 Sa Aircraft monitoring system and method for electric or hybrid aircrafts
CN111587407B (zh) * 2017-11-10 2024-01-23 辉达公司 用于安全且可靠的自主车辆的系统和方法
US10514990B2 (en) 2017-11-27 2019-12-24 Intel Corporation Mission-critical computing architecture
WO2019139815A1 (en) * 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
JP6933183B2 (ja) * 2018-03-30 2021-09-08 オムロン株式会社 セーフティ制御システムおよびセーフティ制御ユニット
US10946866B2 (en) 2018-03-31 2021-03-16 Intel Corporation Core tightly coupled lockstep for high functional safety
US11710030B2 (en) * 2018-08-31 2023-07-25 Texas Instmments Incorporated Fault detectable and tolerant neural network
US11553346B2 (en) * 2019-03-01 2023-01-10 Intel Corporation Misbehavior detection in autonomous driving communications
US20210165730A1 (en) * 2021-02-12 2021-06-03 Intel Corporation Hardware reliability diagnostics and failure detection via parallel software computation and compare

Also Published As

Publication number Publication date
US20190235448A1 (en) 2019-08-01
US11520297B2 (en) 2022-12-06

Similar Documents

Publication Publication Date Title
DE102020102232A1 (de) Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen
DE69032631T2 (de) Verfahren und Anordnung zum Hinzufügen von einer Datenverarbeitungsfunktion zu einem Datenverarbeitungssystem
DE69032607T2 (de) Physischer, einziger Hauptspeicher, anteilig genutzt durch zwei oder mehr Prozessoren, die ihr jeweiliges Betriebssystem ausführen
DE69031815T2 (de) Initialisation eines fehlertoleranten Datenverarbeitungssystems
DE68928360T2 (de) Hochleistungsrechnersystem mit fehlertoleranter Fähigkeit; Verfahren zum Betrieb desselben
DE102018130369A1 (de) Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit
DE102020133738A1 (de) Firmware-update-techniken
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012215216A1 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE112007001466T5 (de) Behandlung von Adressübersetzungen und Ausnahmen einer Heterogenen Ressource
DE112007001245T5 (de) Fehlererkennung mit redundanten virtuellen Maschinen
DE102015102135A1 (de) Unterbrechbares Exklusivspeichern
DE112012001761T5 (de) Hochverfügbarkeit von virtuellen Maschinen
DE102015003194A1 (de) Verfahren und Vorrichtung zum Handhaben von sicherheitskritischen Fehlern
EP1820102A2 (de) Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem
DE69032608T2 (de) Übertragung zwischen Prozessoren
DE102020133809A1 (de) Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE102013209643A1 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
EP1537482B1 (de) Verfahren und schaltungsanordnung zur synchronisation synchron oder asynchron getakteter verarbeitungseinheiten
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE102022131708A1 (de) Anwendungsprogrammierschnittstelle zum begrenzen von speicher
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung