DE112022001480T5 - Elektronische steuereinheit und anomaliebestimmungsverfahren - Google Patents

Elektronische steuereinheit und anomaliebestimmungsverfahren Download PDF

Info

Publication number
DE112022001480T5
DE112022001480T5 DE112022001480.6T DE112022001480T DE112022001480T5 DE 112022001480 T5 DE112022001480 T5 DE 112022001480T5 DE 112022001480 T DE112022001480 T DE 112022001480T DE 112022001480 T5 DE112022001480 T5 DE 112022001480T5
Authority
DE
Germany
Prior art keywords
hypervisor
recording
peripheral
driver
state
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
DE112022001480.6T
Other languages
English (en)
Inventor
Masashi MIZOGUCHI
Tomohito Ebina
Kazuyoshi Serizawa
Kenichi Osada
Tasuku Ishigooka
Takeshi Fukuda
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Publication of DE112022001480T5 publication Critical patent/DE112022001480T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine elektronische Steuereinheit enthält Folgendes: eine virtuelle Maschine, die auf einen ersten virtuellen Treiber zugreift, um einen Prozess auszuführen; einen Hypervisor, der einen ersten realen Treiber eines ersten Peripheriegeräts auf der Grundlage einer Peripheriezugriffsanforderung, die vom ersten virtuellen Treiber empfangen wurde, aufruft; eine Zugriffsaufzeichnungseinheit, die den ersten virtuellen Treiber aufruft, um eine Peripheriezugriffsanforderung, die zum Hypervisor gesendet wurde, aufzuzeichnen; eine Zustandsaufzeichnungseinheit, die den ersten realen Treiber aufruft, um einen Zustand eines Registers des ersten Peripheriegeräts aufzuzeichnen; und eine Überwachungseinheit, die einen Betrieb des Hypervisors überwacht. Die Überwachungseinheit bestimmt eine Anomalie des Hypervisors auf der Grundlage einer Aufzeichnung durch die Zugriffsaufzeichnungseinheit und einer Aufzeichnung durch die Zustandsaufzeichnungseinheit.

Description

  • Aufnahme durch Bezugnahme
  • Diese Anmeldung beansprucht die Priorität der Japanischen Patentanmeldung Nr. 2021-80743 , eingereicht am 12. Mai 2021, deren Inhalt hier durch Bezugnahme vollständig mit aufgenommen ist.
  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine elektronische Steuereinheit.
  • Technischer Hintergrund
  • Die Verwendung eines Hypervisors ermöglicht ein Aufnehmen mehrerer Steuer-Software-Anwendungen, die in verschiedenen Betriebssystemen (OS) laufen, in einen einzelnen Mikrocomputer. Als Techniken des Überwachens eines Hypervisors sind Techniken, die in JP 2019-144785 A (Patentliteratur 1) und JP 2014-106587 A (Patentliteratur 2) beschrieben werden, bekannt. Patentliteratur 1 beschreibt ein Überwachungsprogramm, gemäß dem eine überwachende virtuelle Maschine in Virtualisierungssoftware betrieben wird, die überwachende virtuelle Maschine verwendet wird, um mehrere Überwachungsziele, die die Virtualisierungssoftware enthalten, zu überwachen, Ergebnisse gegebener Prüfungen, die durch die überwachende virtuelle Maschine in gegebenen Intervallen ausgeführt werden, erhalten werden, das Vorliegen oder das Fehlen einer Anomalie in der überwachenden virtuellen Maschine aus den erfassten Prüfergebnissen bestimmt wird und dann, wenn die überwachende virtuelle Maschine in einem anomalen Zustand ist, ein gegebener Zustand der mehreren Überwachungsziele erfasst wird und ein Ergebnis einer Bestimmung des Vorliegens oder des Fehlens einer Anomalie in der überwachenden virtuellen Maschine und der gegebene Zustand der mehreren Überwachungsziele ausgegeben werden.
  • Patentliteratur 2 beschreibt ein Verfahren zum Steuern einer Eingabe-/Ausgabe-Vorrichtung, wobei das Verfahren bewirkt, dass ein Hypervisor und ein erstes Gastbetriebssystem eine Eingabe-/Ausgabe-Vorrichtung gemeinsam verwenden und gemäß dem die Eingabe-/Ausgabe-Vorrichtung eine physische Funktion und eine virtuelle Funktion aufweist, der Hypervisor einen physischen Treiber aufweist, der die physische Funktion verwendet, das erste Gastbetriebssystem einen virtuellen Treiber aufweist, der die virtuelle Funktion verwendet, der Hypervisor einen Zustand der Eingabe-/Ausgabe-Vorrichtung mittels des physischen Treibers erfasst und dann, wenn das erste Gastbetriebssystem, das den Hypervisor überwacht, feststellt, dass der Hypervisor in einem gegebenen Zustand ist, ein unterphysischer Treiber, der die Eingabe-/Ausgabe-Vorrichtung betreibt, gestartet wird und das erste Gastbetriebssystem ein Senden/Empfangen von Daten über eine Datenwarteschlange, die in einem Speicher voreingestellt ist, durchführt.
  • Zusammenfassung der Erfindung
  • Technisches Problem
  • In einer elektronischen Steuereinheit, in der mehrere Steuer-Software-Anwendungen, die in verschiedenen Betriebssystemen laufen, in einem Mikrocomputer (einer Hardware) integriert sind, wird Virtualisierungssoftware, die als ein Hypervisor bezeichnet wird, verwendet. Der Hypervisor stellt eine virtuelle Maschine als eine Umgebung zum Betreiben eines Betriebssystems und einer Steuer-Software-Anwendung bereit. Die virtuelle Maschine ist eine Einheit mit einer Zugriffsautorität, die für ihr Zugreifen auf eine Zentraleinheit (CPU) im Mikrocomputer gesetzt ist, einem Speicherbereich und Peripheriegeräten, die am Mikrocomputer installiert sind, wie z. B. einer Steuereinheitbereichsnetz-Steuereinheit (CAN-Steuereinheit) und einem Analog/Digital-Umsetzer (A/D-Umsetzer). Aus der Perspektive eines Gastbetriebssystems und einer Steuer-Software-Anwendung in jeder virtuellen Maschine beschreibt dies die logisch entsprechende Tatsache, dass eine CPU, ein Speicherbereich und Peripheriegeräte ohne gesetzte Autorität, auf sie zuzugreifen, in einem verschiedenen Mikrocomputer vorhanden sind. Im Allgemeinen muss, um die Sicherheit und die Zuverlässigkeit einer elektronischen Steuereinheit sicherzustellen, der Betrieb der elektronischen Steuereinheit überwacht werden, um zu bestätigen, dass Hardware und Software, die die elektronische Steuereinheit bilden, normal arbeiten, ohne eine Anomalie zu entwickeln. Insbesondere für den Fall einer elektronischen Steuereinheit unter Verwendung eines Hypervisors ist ein Überwachen des Betriebs des Hypervisors nötig.
  • Gemäß Patentliteratur 1 ist die überwachende virtuelle Maschine als virtuelle Maschine installiert, führt die überwachende virtuelle Maschine in regelmäßigen Abständen ein Prüfmuster aus und erfasst einen internen Zustand (normal/anomal) des Hypervisors und wird auf der Grundlage eines Ergebnisses einer Ausführung des Prüfmusters und eines Ergebnisses einer Erfassung des internen Zustands des Hypervisors bestimmt, ob eine Anomalie in der elektronischen Steuereinheit aufgetreten ist, und kann dann, wenn eine Anomalie aufgetreten ist, ein Umfang des Einflusses der Anomalie festgelegt werden. Allerdings wird, weil das Überwachen des Hypervisors in Patentliteratur 1 durch ein Erfassen eines normalen oder anomalen Zustands, der durch den Hypervisor selbst bestimmt wird, ausgeführt wird, ein Fall, in dem ein anomaler Zustand des Hypervisors, der durch eine Anomalie verursacht wird, die in ihm aufgetreten ist, nicht ordnungsgemäß bestimmt wird, nicht berücksichtigt und ist deshalb ein normaler Betrieb des Hypervisors nicht garantiert. Zusätzlich kann, weil das Erfassen des internen Zustands des Hypervisors nötig ist, die Technik von Patentliteratur 1 auf einen Hypervisor einer dritten Instanz, dessen interner Zustand nicht für die Öffentlichkeit zugänglich ist, nicht angewendet werden.
  • Patentliteratur 2 beschreibt ein Verfahren, gemäß dem ein Zähler (ein Wächterzeitgeber) für den Hypervisor vorgesehen ist, der Zähler gesetzt ist, eine Anforderung zu erfüllen, dass er in einem gegebenen Zyklus hochzählt oder herunterzählt, und dann, wenn der Zähler seine Zählung im gegebenen Zeitraum nicht aktualisiert, bestimmt wird, dass eine Anomalie im Hypervisor aufgetreten ist. Dies ermöglicht die Detektion eines unerwarteten Anhaltens des Hypervisors oder eines Deadlocks oder eines Livelocks, der im Hypervisor aufgetreten ist. Um dieses Verfahren anzuwenden, ist es allerdings nötig, Anforderungen festzulegen, die mit dem Aktualisieren einer Zählung durch den Zähler im Hypervisor in Beziehung stehen. Zusätzlich kann, weil einem Zählungsaktualisierungsprozess durch den Wächterzeitgeber im Allgemeinen eine hohe Priorität gegeben wird, dann wenn die Priorität des Zählungsaktualisierungsprozesses größer als die Verarbeitungspriorität einer Aufgabe gesetzt ist, die einen Deadlock oder einen Livelock im Hypervisor entwickelt hat, der Deadlock oder der Livelock nicht detektiert werden.
  • Eine Aufgabe der vorliegenden Erfindung ist, einen Hypervisor, der durch eine dritte Instanz oder dergleichen bereitgestellt wird, zu überwachen, wobei der Hypervisor seine interne Logik nicht für die Öffentlichkeit offen gestaltet, und eine Anomalie, die im Hypervisor aufgetreten ist, lediglich auf der Grundlage der Eingabe und der Ausgabe des Hypervisors zu detektieren.
  • Lösung des Problems
  • Ein typisches Beispiel der vorliegenden Erfindung, die hier offenbart wird, gestaltet sich wie folgt. Eine elektronische Steuereinheit enthält Folgendes: eine virtuelle Maschine, die auf einen ersten virtuellen Treiber zugreift, um einen Prozess auszuführen; einen Hypervisor, der einen ersten realen Treiber eines ersten Peripheriegeräts auf der Grundlage einer Peripheriezugriffsanforderung, die vom ersten virtuellen Treiber empfangen wurde, aufruft; eine Zugriffsaufzeichnungseinheit, die den ersten virtuellen Treiber aufruft, um eine Peripheriezugriffsanforderung, die zum Hypervisor gesendet wurde, aufzuzeichnen; eine Zustandsaufzeichnungseinheit, die den ersten realen Treiber aufruft, um einen Zustand eines Registers des ersten Peripheriegeräts aufzuzeichnen; und eine Überwachungseinheit, die einen Betrieb des Hypervisors überwacht. Die Überwachungseinheit bestimmt eine Anomalie des Hypervisors auf der Grundlage einer Aufzeichnung durch die Zugriffsaufzeichnungseinheit und einer Aufzeichnung durch die Zustandsaufzeichnungseinheit.
  • Vorteilhafte Wirkungen der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung kann eine Anomalie eines Hypervisors detektiert werden, ohne auf einen internen Zustand des Hypervisors zuzugreifen. Probleme, Konfigurationen und Wirkungen, die oben nicht beschrieben werden, werden durch die folgende Beschreibung von Ausführungsformen verdeutlicht.
  • Kurzbeschreibung der Zeichnungen
    • [1] 1 stellt eine Hardware-Konfiguration einer elektronischen Steuereinheit gemäß einer ersten Ausführungsform dar.
    • [2] 2 stellt eine Software-Konfiguration der elektronischen Steuereinheit gemäß der ersten Ausführungsform dar.
    • [3] 3 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn eine erste Steuer-Software-Anwendung der ersten Ausführungsform ein erstes Peripheriegerät verwendet.
    • [4] 4 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die erste Steuer-Software-Anwendung der ersten Ausführungsform ein gemeinsam verwendetes Peripheriegerät verwendet.
    • [5] 5 stellt ein Beispiel von Peripheriezugriffsanforderungs-Informationen gemäß der ersten Ausführungsform dar.
    • [6] 6 stellt ein Beispiel von Peripheriezugriffsergebnis-Informationen der ersten Ausführungsform dar.
    • [7] 7 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn eine zweite Steuer-Software-Anwendung der ersten Ausführungsform ein zweites Peripheriegerät verwendet.
    • [8] 8 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die zweite Steuer-Software-Anwendung der ersten Ausführungsform das gemeinsam verwendete Peripheriegerät verwendet.
    • [9] 9 stellt ein Beispiel von Peripheriezugriffsaufzeichnungs-Informationen gemäß der ersten Ausführungsform dar.
    • [10] 10 stellt ein Beispiel von Peripheriezustandsaufzeichnungs-Informationen gemäß der ersten Ausführungsform dar.
    • [11] 11 stellt einen Überblick eines Prozessablaufs eines Hypervisor-Überwachungsprogramms der ersten Ausführungsform dar.
    • [12] 12 stellt ein Beispiel von Peripheriebestimmungszustands-Informationen gemäß der ersten Ausführungsform dar.
    • [13] 13 ist ein Diagramm, das einen Prozess des Erzeugens der Peripheriebestimmungszustands-Informationen schematisch zeigt, der in Schritt S1 des Hypervisor-Überwachungsprogramms der ersten Ausführungsform ausgeführt wird.
    • [14] 14 ist ein Diagramm, das den Prozess des Erzeugens der Peripheriebestimmungszustands-Informationen schematisch zeigt, der in Schritt S1 des Hypervisor-Überwachungsprogramms der ersten Ausführungsform ausgeführt wird.
    • [15] 15 stellt eine Software-Konfiguration einer elektronischen Steuereinheit gemäß einer zweiten Ausführungsform dar.
    • [16] 16 stellt einen Überblick eines Prozessablaufs eines Hypervisor-Überwachungsprogramms der zweiten Ausführungsform dar.
    • [17] 17 stellt eine Hardware-Konfiguration einer elektronischen Steuereinheit gemäß einer dritten Ausführungsform dar.
    • [18] 18 stellt eine Software-Konfiguration der elektronischen Steuereinheit gemäß der dritten Ausführungsform dar.
    • [19] 19 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die erste Steuer-Software-Anwendung der dritten Ausführungsform eine CAN-Steuereinheit verwendet, die das gemeinsam verwendete Peripheriegerät ist.
    • [20] 20 stellt ein CAN-Hauptbuch der dritten Ausführungsform dar.
    • [21] 21 stellt einen Überblick eines Prozessablaufs eines Überwachungsergebnisspeicherprogramms einer vierten Ausführungsform dar.
    • [22] 22 stellt ein Beispiel von Hypervisoranomalieauftrittszeit-Informationen der vierten Ausführungsform dar.
    • [23] 23 ist ein Diagramm, das einen Überblick eines Prozesses schematisch zeigt, der in Schritt S7 des Überwachungsergebnisspeicherprogramms der vierten Ausführungsform ausgeführt wird.
  • Beschreibung der Ausführungsformen
  • Hier beschriebene Ausführungsformen beziehen sich auf eine elektronische Steuereinheit und beziehen sich insbesondere auf eine elektronische Steuereinheit, in der mehrere Steuer-Software-Anwendungen in einem Mikrocomputer integriert sind.
  • Im Folgenden werden Beispiele bevorzugter Ausführungsformen der vorliegenden Erfindung beschrieben. In den Ausführungsformen wird zur Vereinfachung der Beschreibung ein Beispiel erläutert, in dem zwei Steuer-Software-Anwendungen, d. h. eine erste Steuer-Software-Anwendung und eine zweite Steuer-Software-Anwendung, in einer elektronischen Steuereinheit integriert sind. In einem verschiedenen Beispiel können allerdings eine dritte Steuer-Software-Anwendung und eine vierte Steuer-Software-Anwendung in einer elektronischen Steuereinheit integriert sein.
  • Erste Ausführungsform
  • <Konfiguration>
  • 1 stellt eine Hardware-Konfiguration einer elektronischen Steuereinheit gemäß einer ersten Ausführungsform dar.
  • <Elektronische Steuereinheit 0>
  • Die elektronische Steuereinheit gemäß der ersten Ausführungsform wird im Folgenden unter Bezugnahme auf 1 beschrieben. Eine elektronische Steuereinheit 0 enthält einen Mikrocomputer 900 und eine Stromversorgungsschaltung 901. Der Mikrocomputer 900 enthält eine Zentraleinheit (CPU) 1, die Berechnungsprozesse ausführt, ein Peripheriegerät 2, das eine Peripherievorrichtungsgruppe ist, die an der elektronischen Steuereinheit 0 installiert ist, einen Speicher 3, der Software speichert, und einen Bus 4, der die CPU 1, das Peripheriegerät 2 und den Speicher 3 verbindet und der CPU 1 ermöglicht, auf das Peripheriegerät 2 und den Speicher 3 zuzugreifen.
  • Ein Leistungseingabeanschluss des Mikrocomputers 900 ist mit einer Stromversorgungsschaltung 901 verbunden. Der Mikrocomputer 900 startet, wenn er von der Stromversorgungsschaltung 901 mit Leistung versorgt wird. Der Mikrocomputer 900 weist einen Selbstrücksetzsignalausgabeanschluss auf. Wenn der Mikrocomputer 900 ein digitales Signal aus dem Selbstrücksetzsignalausgabeanschluss ausgibt, stoppt die Stromversorgungsschaltung 901 ein Zuführen von Leistung zum Mikrocomputer 900.
  • <CPU 1>
  • Die CPU 1 enthält zwei CPU-Kerne, d. h. einen ersten CPU-Kern 101 und einen zweiten CPU-Kern 102. Es ist festzuhalten, dass zwei CPU-Kerne zur Vereinfachung der Beschreibung beispielhaft erwähnt werden. Zum Beispiel kann die CPU 1 einen CPU-Kern oder drei oder mehr CPU-Kerne enthalten.
  • <Peripheriegerät 2>
  • Das Peripheriegerät 2 ist eine Vorrichtung, die Daten/Signale in oder aus dem Mikrocomputer 900 eingibt und ausgibt, und enthält ein gemeinsam verwendetes Peripheriegerät 201, auf das sowohl durch eine erste Steuer-Software-Anwendung 10 (d. h. einen ersten CPU-Kern 101) als auch eine zweite Steuer-Software-Anwendung 15 (d. h. einen zweiten CPU-Kern 102) zugegriffen wird, ein erstes Peripheriegerät 202, auf das lediglich durch die erste Steuer-Software-Anwendung 10 (d. h. den ersten CPU-Kern 101) zugegriffen wird, und ein zweites Peripheriegerät 203, auf das lediglich durch die zweite Steuer-Software-Anwendung 15 (d. h. den zweiten CPU-Kern 103) zugegriffen wird. Das Peripheriegerät 2 bezieht sich im Allgemeinen auf Peripherieschaltungen, die die CPU 1 und den Speicher 3, die am Mikrocomputer 900 installiert sind, nicht enthalten. Das Peripheriegerät 2 enthält speziell eine Steuereinheitbereichsnetz-Steuereinheit (CAN-Steuereinheit), einen Analog/Digital-Umsetzer, eine Direktspeicherzugriffssteuereinheit und eine allgemein verwendbare Eingabe/Ausgabe (GPIO), die am Mikrocomputer 900 installiert sind.
  • <Speicher 3>
  • Der Speicher 3 enthält einen ROM, der ein nichtflüchtiges Speicherelement ist, und einen RAM, der ein flüchtiges Speicherelement ist. Der ROM speichert ein unveränderbares Programm (z. B. ein BIOS) und dergleichen. Der RAM ist ein flüchtiges Speicherelement, das einen Hochgeschwindigkeitszugriff ermöglicht, wie z. B. ein dynamischer Schreib-/Lese-Speicher (DRAM), der Programme, die durch die CPU 1 ausgeführt werden, und Daten, die zur Ausführung von Programmen verwendet werden, speichert.
  • Zur Vereinfachung wird diese Ausführungsform unter der Annahme beschrieben, dass das gemeinsam verwendete Peripheriegerät 201 einen digitalen Ausgangsanschluss 2011 enthält, das erste Peripheriegerät 202 einen analogen Ausgangsanschluss 2021 enthält und das zweite Peripheriegerät 203 einen digitalen Eingangsanschluss 2031 enthält.
  • 2 stellt eine Software-Konfiguration der elektronischen Steuereinheit gemäß der ersten Ausführungsform dar. Die Software-Stücke, die in 2 gezeigt sind, sind im Speicher 3 gespeichert.
  • <Software-Konfiguration>
  • Der folgende Prozess wird entweder in dem ersten CPU-Kern 101 oder dem zweiten CPU-Kern 102 der CPU 1 ausgeführt.
  • Ein Host-Betriebssystem (Host-OS) 5 ist im Mikrocomputer 900 installiert. Das Host-Betriebssystem 5 aktiviert einen Hypervisor 6, ein Hypervisor-Überwachungsprogramm 17 und ein Registerwerterfassungsprogramm 18. Der Hypervisor 6 wird durch ein Aktivierungsverfahren aktiviert, das durch den Hypervisor 6 definiert ist. Das Hypervisor-Überwachungsprogramm 17 und das Registerwerterfassungsprogramm 18 werden in einem Zyklus von 5 Millisekunden aktiviert, um Informationen zum Überwachen zu erfassen. Zur Vereinfachung wird der Aktivierungszyklus in dieser Ausführungsform als 5 Millisekunden beschrieben. Ohne Beschränkung auf 5 Millisekunden kann allerdings auch ein verschiedener Aktivierungszyklus angewendet werden. Der Hypervisor 6 kann durch Software, die im Host-Betriebssystem 5 ausgeführt wird, oder durch Hardware, die am Mikrocomputer 900 installiert ist, konfiguriert sein.
  • Der Hypervisor 6 konfiguriert eine erste virtuelle Maschine 7 und eine zweite virtuelle Maschine 8 durch ein Verfahren, das durch den Hypervisor 6 definiert ist, und aktiviert jede der ersten virtuellen Maschine 7 und der zweiten virtuellen Maschine 8. Zur Vereinfachung werden in dieser Ausführungsform zwei virtuelle Maschinen beschrieben. Ohne Beschränkung auf zwei können allerdings eine oder drei oder mehr virtuelle Maschinen vorgesehen sein.
  • In der ersten virtuellen Maschine 7 werden ein erstes Gastbetriebssystem 9, die erste Steuer-Software-Anwendung 10, ein virtueller Treiber 11, ein Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 und ein Treiber 12 für analoge Ausgangsanschlüsse ausgeführt. In der zweiten virtuellen Maschine 8 werden ein zweites Gastbetriebssystem 13, die zweite Steuer-Software-Anwendung 15, der virtuelle Treiber 11 und ein Treiber 14 für digitale Eingangsanschlüsse ausgeführt. Das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 wird in der ersten virtuellen Maschine 7 ausgeführt, kann jedoch in der zweiten virtuellen Maschine 8 ausgeführt werden. Mit anderen Worten ist mindestens ein Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19, das im Hypervisor 6 ausgeführt wird, ausreichend.
  • <Erste virtuelle Maschine 7>
  • Der Betrieb von Software in der ersten virtuellen Maschine 7 wird beschrieben. Wenn der Hypervisor 6 die erste virtuelle Maschine 7 konfiguriert, aktiviert die erste virtuelle Maschine 7 das erste Gastbetriebssystem 9. Das erste Gastbetriebssystem 9 aktiviert die erste Steuer-Software-Anwendung 10. Die erste Steuer-Software-Anwendung 10 verwendet den digitalen Ausgangsanschluss 2011, der das gemeinsam verwendete Peripheriegerät 201 ist, und den analogen Ausgangsanschluss 2021, der das erste Peripheriegerät 202 ist.
  • 3 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die erste Steuer-Software-Anwendung 10 das erste Peripheriegerät 202 verwendet.
  • <Zugriff von der ersten virtuellen Maschine 7 auf das erste Peripheriegerät 202>
  • Um auf den analogen Ausgangsanschluss 2021, der das erste Peripheriegerät 202 ist, zuzugreifen, verwendet die erste Steuer-Software-Anwendung 10 den Treiber 12 für analoge Ausgangsanschlüsse. Speziell greift dann, wenn die erste Steuer-Software-Anwendung 10 den Treiber 12 für analoge Ausgangsanschlüsse durch Festlegen eines Parameters von 5 V aufruft, wobei der Aufruf als eine Peripheriezugriffsanforderung vorgenommen wird, der Treiber 12 für analoge Ausgangsanschlüsse auf ein Register des analogen Ausgangsanschlusses 2021 zu, gibt einen Wert zum Setzen einer Ausgangssanpannung von 5 V an einem gegebenen Ort eines Registers des Mikrocomputers 900 ein und sendet eine Antwort, die einen normalen Abschluss angibt, zur ersten Steuer-Software-Anwendung 10.
  • 4 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die erste Steuer-Software-Anwendung 10 das gemeinsam verwendete Peripheriegerät 201 verwendet.
  • <Zugriff von der ersten virtuellen Maschine 7 auf das gemeinsam verwendete Peripheriegerät 201>
  • Um auf den digitalen Ausgangsanschluss 2011, der das gemeinsam verwendete Peripheriegerät 201 ist, zuzugreifen, verwendet die erste Steuer-Software-Anwendung 10 das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19, den virtuellen Treiber 11, den Hypervisor 6 und den Treiber 16 für digitale Ausgangsanschlüsse. Speziell ruft die erste Steuer-Software-Anwendung 10 das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 durch Festlegen eines Parameters von H auf, wobei der Aufruf als eine Peripheriezugriffsanforderung vorgenommen wird. Das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 zeichnet Peripheriezugriffsanforderungs-Informationen 51 von der ersten Steuer-Software-Anwendung 10 auf und ruft den virtuellen Treiber 11 durch Festlegen eines Parameters von H auf. Der virtuelle Treiber 11 führt einen Prozess des Änderns eines Verarbeitungskontexts der CPU 1 von der ersten virtuellen Maschine 7 zum Hypervisor 6 (wobei dieser Prozess im Allgemeinen als VMExit bezeichnet wird) aus. Der Hypervisor 6 prüft einen Verwendungsstatus des digitalen Ausgangsanschlusses 2011. Wenn festgestellt wird, dass die zweite virtuelle Maschine 8 den digitalen Ausgangsanschluss 2011 nicht verwendet, ruft der Hypervisor 6 den Treiber 16 für digitale Ausgangsanschlüsse zum Zugreifen auf den digitalen Ausgangsanschluss 2011 durch Festlegen eines Parameters von H auf. Wenn festgestellt wird, dass die zweite virtuelle Maschine 8 den digitalen Ausgangsanschluss 2011 verwendet, speichert der Hypervisor 6 den Parameter H in einem Puffer, der im Hypervisor 6 vorgesehen ist, und geht in Bereitschaft, nimmt den Parameter H aus dem Puffer, nachdem die zweite virtuelle Maschine 8 das Verwenden des digitalen Ausgangsanschlusses 2011 abgeschlossen hat, und ruft dann den Treiber 16 für digitale Ausgangsanschlüsse durch Anfügen des herausgenommenen Parameters an den Aufruf auf.
  • Der Treiber 16 für digitale Ausgangsanschlüsse greift auf ein Register des digitalen Ausgangsanschlusses 2011 zu, gibt einen Wert zum Setzen eines Ausgabewerts von H (hoch oder 1) an einem gegebenen Ort des Registers des Mikrocomputers 900 ein und sendet eine Antwort, die einen normalen Abschluss angibt, zurück zum Hypervisor 6. Nach Eingang der Antwort, die einen normalen Abschluss angibt, vom Treiber 16 für digitale Ausgangsanschlüsse führt der Hypervisor 6 einen Prozess des Änderns des Verarbeitungskontexts der CPU 1 vom Hypervisor 6 zur ersten virtuellen Maschine 7 (wobei dieser Prozess im Allgemeinen als VMEntry bezeichnet wird) aus. Wenn Informationen, die einen normalen Abschluss angeben, vom Hypervisor 6 empfangen werden, ruft der virtuelle Treiber 11 das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 auf. Das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 zeichnet Peripheriezugriffsergebnis-Informationen 52 über die erste Steuer-Software-Anwendung 10 auf und sendet eine Antwort, die einen normalen Abschluss angibt, zur ersten Steuer-Software-Anwendung 10.
  • 5 stellt ein Beispiel der Peripheriezugriffsanforderungs-Informationen 51 von der ersten Steuer-Software-Anwendung 10 dar.
  • <Peripheriezugriffsanforderungs-Informationen 51 von der ersten Steuer-Software-Anwendung 10 >
  • Die Peripheriezugriffsanforderungs-Informationen 51 von der ersten Steuer-Software-Anwendung 10 enthalten Informationen über eine Zeit, zu der die erste Steuer-Software-Anwendung 10 das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 aufgerufen hat, über ein Peripheriegerät, auf das eine Zugriffsanforderung durch den Aufruf gestellt wird, und über einen Parameter, der durch den Aufruf festgelegt wird.
  • 6 stellt ein Beispiel der Peripheriezugriffsergebnis-Informationen 52 über die erste Steuer-Software-Anwendung 10 dar.
  • <Peripheriezugriffsergebnis-Informationen 52 über eine erste Steuer-Software-Anwendung 10>
  • Die Peripheriezugriffsergebnis-Informationen 52 über die erste Steuer-Software-Anwendung 10 enthalten Informationen über eine Zeit, zu der der Hypervisor 6 eine Antwort, die einen normalen Abschluss eines Prozesses angibt, zurück zum virtuellen Treiber 11 gesendet hat, über ein Peripheriegerät, das einem Prozess durch den Hypervisor 6 unterworfen wird, und über Prozessergebnisse.
  • <Zweite virtuelle Maschine 8>
  • Der Betrieb von Software in der zweiten virtuellen Maschine 8 wird beschrieben. Wenn der Hypervisor 6 die zweite virtuelle Maschine 8 konfiguriert, aktiviert die zweite virtuelle Maschine 8 das zweite Gastbetriebssystem 13. Das zweite Gastbetriebssystem 13 aktiviert die zweite Steuer-Software-Anwendung 15. Die zweite Steuer-Software-Anwendung 15 verwendet den digitalen Ausgangsanschluss 2011, der das gemeinsam verwendete Peripheriegerät 201 ist, und den digitalen Eingangsanschluss 2031, der das zweite Peripheriegerät 203 ist.
  • 7 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die zweite Steuer-Software-Anwendung 15 das zweite Peripheriegerät 203 verwendet.
  • <Zugriff von zweiten virtuellen Maschinen 8 auf das zweite Peripheriegerät 203>
  • Um auf den digitalen Eingangsanschluss 2031, der das zweite Peripheriegerät 203 ist, zuzugreifen, verwendet die zweite Steuer-Software-Anwendung 15 den Treiber 14 für digitale Eingangsanschlüsse. Speziell greift dann, wenn die zweite Steuer-Software-Anwendung 15 den Treiber 14 für digitale Eingangsanschlüsse aufruft, wobei der Aufruf als eine Peripheriezugriffsanforderung vorgenommen wird, der Treiber 14 für digitale Eingangsanschlüsse auf ein Register des digitalen Eingangsanschlusses 2031 zu, liest einen Wert an einem gegebenen Ort des Registers des Mikrocomputers 900 und sendet eine Antwort, der der abgelesene Wert beigefügt ist, zurück zur zweiten Steuer-Software-Anwendung 15.
  • 8 stellt einen Überblick eines Prozessablaufs dar, der ausgeführt wird, wenn die zweite Steuer-Software-Anwendung 15 das gemeinsam verwendete Peripheriegerät 201 verwendet.
  • <Zugriff von der zweiten virtuellen Maschine 8 zum gemeinsam verwendeten Peripheriegerät 201>
  • Um auf den digitalen Ausgangsanschluss 2011 zuzugreifen, der das gemeinsam verwendete Peripheriegerät 201 ist, verwendet die zweite Steuer-Software-Anwendung 15 den virtuellen Treiber 11, den Hypervisor 6 und den Treiber 16 für digitale Ausgangsanschlüsse. Speziell ruft die erste Steuer-Software-Anwendung 10 den virtuellen Treiber 11 durch Festlegen eines Parameters von H auf, wobei der Aufruf als eine Peripheriezugriffsanforderung vorgenommen wird. Der virtuelle Treiber 11 führt einen Prozess des Änderns eines Verarbeitungskontexts der CPU 1 von der zweiten virtuellen Maschine 8 zum Hypervisor 6 (wobei dieser Prozess im Allgemeinen als VMExit bezeichnet wird) aus. Der Hypervisor 6 prüft einen Verwendungsstatus des digitalen Ausgangsanschlusses 2011. Wenn festgestellt wird, dass die erste virtuelle Maschine 7 den digitalen Ausgangsanschluss 2011 nicht verwendet, ruft der Hypervisor 6 den Treiber 16 für digitale Ausgangsanschlüsse zum Zugreifen auf den digitalen Ausgangsanschluss 2011 durch Festlegen eines Parameters von H auf. Wenn festgestellt wird, dass die erste virtuelle Maschine 7 den digitalen Ausgangsanschluss 2011 verwendet, speichert der Hypervisor 6 den Parameter H im Puffer, der im Hypervisor 6 vorgesehen ist, und geht in Bereitschaft, nimmt den Parameter H aus dem Puffer, nachdem die erste virtuelle Maschine 7 die Verwendung des digitalen Ausgangsanschlusses 2011 abgeschlossen hat, und ruft dann den Treiber 16 für digitale Ausgangsanschlüsse durch Anfügen des herausgenommenen Parameters an den Aufruf auf.
  • Der Treiber 16 für digitale Ausgangsanschlüsse greift auf ein Register des digitalen Ausgangsanschlusses 2011 zu, gibt in einem Wert zum Setzen eines Ausgabewerts von H (hoch oder 1) in einem gegebenen Ort des Registers des Mikrocomputers 900 ein und sendet eine Antwort, die einen normalen Abschluss angibt, zurück zum Hypervisor 6. Nach Eingang der Antwort, die einen normalen Abschluss angibt, vom Treiber 16 für digitale Ausgangsanschlüsse, führt der Hypervisor 6 einen Prozess des Änderns des Verarbeitungskontexts der CPU 1 vom Hypervisor 6 zur ersten virtuellen Maschine 7 (wobei der Prozess im Allgemeinen als VMEntry bezeichnet wird) aus. Wenn Informationen, die einen normalen Abschluss angeben, vom Hypervisor 6 empfangen werden, sendet der virtuelle Treiber 11 eine Antwort, die einen normalen Abschluss angibt, zurück zur ersten Steuer-Software-Anwendung 10.
  • <Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19>
  • Wie in 4 gezeigt ist, erzeugt dann, wenn die erste Steuer-Software-Anwendung 10 eine Peripheriezugriffsanforderung aussendet, das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 die Peripheriezugriffsanforderungs-Informationen 51 über Zugriffsanforderungen durch die erste Steuer-Software-Anwendung 10. Wie in 4 gezeigt ist, erzeugt dann, wenn der virtuelle Treiber 11 Informationen, die einen normalen Abschluss angeben, vom Hypervisor 6 empfängt, das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 die Peripheriezugriffsergebnis-Informationen 52 über die erste Steuer-Software-Anwendung 10. Ferner wird das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 durch das erste Gastbetriebssystem 9 in einem gegebenen Zeitablauf (z. B. in einem Zyklus von 100 Millisekunden) wiederholt aktiviert, erzeugt Peripheriezugriffsaufzeichnungs-Informationen 53, in die die Peripheriezugriffsanforderungs-Informationen 51 von der ersten Steuer-Software-Anwendung 10 und die Peripheriezugriffsergebnis-Informationen 52 über die erste Steuer-Software-Anwendung 10 integriert sind, und schreibt die Peripheriezugriffsaufzeichnungs-Informationen 53 zu einem Speicherbereich, auf den das Hypervisor-Überwachungsprogramm 17 Bezug nehmen kann.
  • 9 stellt ein Beispiel der Peripheriezugriffsaufzeichnungs-Informationen 53 dar.
  • <Peripheriezugriffsaufzeichnungs-Informationen 53>
  • Die Peripheriezugriffsaufzeichnungs-Informationen 53 enthalten Informationen über eine Zeit, zu der die erste Steuer-Software-Anwendung 10 das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 aufgerufen hat, über ein Peripheriegerät, auf das durch eine Peripheriezugriffsanforderung ein Zugriff vorgenommen wird, auf einem Parameter, der an die Peripheriezugriffsanforderung angefügt ist, auf eine Zeit, zu der der Hypervisor 6 gemäß der Peripheriezugriffsanforderung Informationen, die einen normalen Abschluss eines Prozesses angeben, zum virtuellen Treiber 11 gesendet hat, und auf Prozessergebnissen durch den Hypervisor 6.
  • <Registerwerterfassungsprogramm 18>
  • Das Registerwerterfassungsprogramm 18 wird durch das Host-Betriebssystem 5 in einem gegebenen Zeitablauf (z. B. in einem Zyklus von 5 Millisekunden) wiederholt aktiviert. Jedes Mal, wenn es aktiviert wird, ruft das Registerwerterfassungsprogramm 18 den Treiber 16 für digitale Ausgangsanschlüsse auf, um einen Wert an einem gegebenen Ort des Registers des Mikrocomputers 900 zu erfassen, wobei der Wert einen Zustand des digitalen Ausgangsanschlusses 2011, der das gemeinsam verwendete Peripheriegerät 201 ist, darstellt, erzeugt Peripheriezustandsaufzeichnungs-Informationen 54 und schreibt die erzeugten Peripheriezustandsaufzeichnungs-Informationen 54 zu einem Speicherbereich, auf den das Hypervisor-Überwachungsprogramm 17 Bezug nehmen kann. Das Registerwerterfassungsprogramm 18 wird im Host-Betriebssystem 5 ausgeführt, kann jedoch im Hypervisor 6 ausgeführt werden.
  • 10 stellt ein Beispiel der Peripheriezustandsaufzeichnungs-Informationen 54 dar.
  • <Peripheriezustandsaufzeichnungs-Informationen 54>
  • Die Peripheriezustandsaufzeichnungs-Informationen 54 enthalten Informationen über eine Prozesszielperipherie, die einem Prozess durch das Registerwerterfassungsprogramm 18 unterworfen wird, über eine Zeit, zu der das Registerwerterfassungsprogramm 18 das Peripheriegerät (den Treiber 16 für digitale Ausgangsanschlüsse) aufgerufen hat, und über einen Registerwert, der durch den Aufruf erfasst wird.
  • 11 stellt einen Überblick eines Prozessablaufs des Hypervisor-Überwachungsprogramms 17 dar.
  • <Hypervisor-Überwachungsprogramm 17>
  • Das Hypervisor-Überwachungsprogramm 17 berechnet einen Wert, von dem auf der Grundlage der Peripheriezugriffsaufzeichnungs-Informationen 53 angenommen wird, dass er als ein Registerwert eingegeben wird, und bestimmt dann, wenn der Wert, von dem angenommen wird, dass er als der Registerwert eingegeben wird, nicht mit dem entsprechenden Wert übereinstimmt, der durch die Peripheriezustandsaufzeichnungs-Informationen 54 angegeben ist, dass eine Anomalie im Hypervisor 6 aufgetreten ist.
  • In Schritt S1 erzeugt das Hypervisor-Überwachungsprogramm 17 Peripheriebestimmungszustands-Informationen 55 auf der Grundlage von allen Stücken von Informationen, die die Peripheriezugriffsaufzeichnungs-Informationen 53 bilden, und von Zustandsprüfungszeit-Informationen, die in den Peripheriezustandsaufzeichnungs-Informationen 54 enthalten sind.
  • In Schritt S2 vergleicht das Hypervisor-Überwachungsprogramm 17 die Peripheriezustandsaufzeichnungs-Informationen 54 mit den Peripheriebestimmungszustands-Informationen 55 und bestimmt, ob der Hypervisor 6 in einem normalen Zustand oder in einem anomalen Zustand ist.
  • 12 stellt ein Beispiel der Peripheriebestimmungszustands-Informationen 55 dar.
  • <Peripheriebestimmungszustands-Informationen 55>
  • Die Peripheriebestimmungszustands-Informationen 55 enthalten Informationen über eine Zeit, zu der das Registerwerterfassungsprogramm 18 den Treiber 16 für digitale Ausgangsanschlüsse aufgerufen hat, und über einen Peripherieregisterwert zu einer Zeit, die auf der Grundlage der Peripheriezugriffsaufzeichnungs-Informationen 53 berechnet wird.
  • 13 ist ein Diagramm, das einen Prozess des Erzeugens der Peripheriebestimmungszustands-Informationen, der in Schritt S1 des Hypervisor-Überwachungsprogramms 17 ausgeführt wird, schematisch zeigt.
  • <Schritt S1>
  • In dieser Ausführungsform ist ein Anfangswert für das Register ein nicht fester Wert.
  • Gemäß den Peripheriezugriffsaufzeichnungs-Informationen 53 sendet die erste Steuer-Software-Anwendung 10 eine Peripheriezugriffsanforderung mit einem festgelegten Parameter H bei 10:00. Nun ist eine Zuschlagzeit in einem Zeitraum zwischen dem Senden der Peripheriezugriffsanforderung durch die erste Steuer-Software-Anwendung 10 und dem tatsächlichem Verarbeiten eines Registerwerts des Treibers 16 für digitale Ausgangsanschlüsse gemäß dem Ablauf, der in 4 gezeigt ist, vorhanden. Die Länge der Zuschlagzeit kann nicht vorhergesagt werden. Dennoch wird unter Bezugnahme auf eine Antwortzeit eines Hypervisors, die in den Peripheriezugriffsaufzeichnungs-Informationen 53 angegeben ist, abgeleitet, dass der Registerwert zu einem beliebigen Zeitpunkt zwischen 10:00 und 16:00 zu H gesetzt wird.
  • Entsprechend sendet gemäß den Peripheriezugriffsaufzeichnungs-Informationen 53 die erste Steuer-Software-Anwendung 10 eine Peripheriezugriffsanforderung mit einem festgelegten Parameter L bei 25:00. Nun ist eine Zuschlagzeit in einem Zeitraum zwischen dem Senden der Peripheriezugriffsanforderung durch die erste Steuer-Software-Anwendung 10 und dem tatsächlichen Verarbeiten eines Registerwerts des Treibers 16 für digitale Ausgangsanschlüsse gemäß dem Ablauf, der in 4 gezeigt ist, vorhanden. Die Länge der Zuschlagzeit kann nicht vorhergesagt werden. Dennoch wird unter Bezugnahme auf eine Antwortzeit eines Hypervisors, die in den Peripheriezugriffsaufzeichnungs-Informationen 53 angegeben ist, abgeleitet, dass der Registerwert zu einem beliebigen Zeitpunkt zwischen 25:00 und 32:00 zu L gesetzt wird.
  • Daher werden die Peripheriebestimmungszustands-Informationen 55, die in 12 gezeigt sind, erzeugt. Speziell resultiert bei 12:10 entweder der Anfangswert, d. h. ein nicht fester Wert, der aufrechterhalten wird, oder H, das als die Registerwertübereinstimmung zur Peripheriezugriffsanforderung, die bei 10:00 gesendet wurde, eingegeben wird, was bedeutet, dass sowohl der Registerwert H als auch der Registerwert L resultieren könnte. Bei 17:10, eine Zeit hinter 16:00, ist der Registerwert H, was auch bei 22:10 resultiert. Bei 27:10 resultiert allerdings entweder der Registerwert, der H bleibt, oder der Registerwert, der in Übereinstimmung mit der Peripheriezugriffsanforderung, die bei 25:00 gesendet wurde, zu L geschaltet wird, was bedeutet, dass sowohl der Registerwert H als auch der Registerwert L resultieren könnte. Bei 32:10, einer Zeit hinter 32:00, ist der Registerwert L, was auch bei 37:10 resultiert.
  • 14 ist ein Diagramm, das den Prozess des Erzeugens der Peripheriebestimmungszustands-Informationen, der in Schritt S1 des Hypervisor-Überwachungsprogramms 17 ausgeführt wird, schematisch zeigt.
  • <Schritt S2>
  • In Schritt S2 vergleicht das Hypervisor-Überwachungsprogramm 17 die Peripheriebestimmungszustands-Informationen 55 mit den Peripheriezustandsaufzeichnungs-Informationen 54 und bestimmt, dass eine Anomalie im Hypervisor 6 aufgetreten ist, wenn die ein Peripherieregisterwert zu jeder berechneten Zeit in den Peripheriebestimmungszustands-Informationen 55 von dem entsprechenden Registerwert, der in Peripheriezustandsaufzeichnungs-Informationen 54 aufgezeichnet ist, verschieden ist. Speziell soll, wie in 14 angegeben ist, der Registerwert bei 32:10 gemäß den Peripheriebestimmungszustands-Informationen 55 L sein, jedoch ist der tatsächliche Registerwert bei 32:10 gemäß den Peripheriezustandsaufzeichnungs-Informationen 54 H. Dies zeigt die Tatsache, dass eine Anomalie im Hypervisor 6 aufgetreten ist, was eine Detektion einer Anomalie bedeutet. Dies gibt einen Fall an, in dem die erste Steuer-Software-Anwendung 10 eine Peripheriezugriffsanforderung des Setzens eines Registerwerts des digitalen Ausgangsanschlusses 2011 zu L gesendet hat und der Hypervisor 6 eine Antwort, die einen normalen Abschluss einer Prozesses angibt, zurück zur ersten Steuer-Software-Anwendung 10 gesendet hat, jedoch wird tatsächlich der Registerwert des digitalen Ausgangsanschlusses 2011 nicht geändert, d. h. bleibt H.
  • Gemäß dieser Ausführungsform wird selbst im Falle des Hypervisors 6, dessen interne Logik nicht offen zur Öffentlichkeit gestaltet ist, unter Verwendung einer Aufzeichnung von Änderungen der Registerwerte des Mikrocomputers 900, der durch den Hypervisor 6 betrieben wird, von außerhalb des Hypervisors 6 überwacht, ob der Hypervisor 6 Prozesse, die durch die Steuer-Software-Anwendungen 10 und 15 in den virtuellen Maschinen 7 und 8 angefordert wurden, korrekt ausführt. Durch diesen Prozess kann eine Anomalie des Hypervisors 6 auf der Grundlage einer Eingabe in und einer Ausgabe aus dem Hypervisor 6 detektiert werden, ohne auf einen internen Zustand des Hypervisors 6 zuzugreifen. Selbst in einem Fall, in dem der Hypervisor 6 eine Antwort, die einen Abschluss eines normalen Prozesses angibt, zurück zu den virtuellen Maschinen 7 und 8 sendet, kann, wenn der Prozess tatsächlich nicht normal ausgeführt wird, diese Tatsache als eine Anomalie des Hypervisors 6 detektiert werden.
  • Zusätzlich ist es, weil eine Anomalie des Hypervisors 6 auf der Grundlage der Inkonsistenz zwischen einem tatsächlichen Wert des Registers und einem voreingestellten Wert bestimmt wird, ein zusätzlicher Prozess wie z. B. ein Prüfmuster unnötig, was eine negative Wirkung auf einen Hauptprozess verringert.
  • Zweite Ausführungsform
  • Eine elektronische Steuereinheit und ein Anomaliedetektionsverfahren gemäß einer zweiten Ausführungsform der vorliegenden Erfindung werden beschrieben. Die zweite Ausführungsform ist von der ersten Ausführungsform dahingehend verschieden, dass ein Überwachungsergebnisspeicherprogramm 20 zu einer Software-Konfiguration hinzugefügt wird. Dieselben Bestandteile wie die der ersten Ausführungsform werden durch dieselben Bezugszeichen bezeichnet und werden in der weiteren Beschreibung ausgelassen.
  • 15 stellt eine Software-Konfiguration der elektronischen Steuereinheit gemäß der zweiten Ausführungsform dar. Stücke einer Software, die in 15 gezeigt ist, sind im Speicher 3 gespeichert.
  • <Software-Konfiguration>
  • Das Host-Betriebssystem 5 ist im Mikrocomputer 900 installiert. Das Host-Betriebssystem 5 aktiviert einen Hypervisor 6, ein Hypervisor-Überwachungsprogramm 17 und ein Registerwerterfassungsprogramm 18. Das Host-Betriebssystem 5 prüft wiederholt einen Wert des Anomaliedetektionsmerkers 56 in einem gegebenen Zeitablauf (z. B. in einem Zyklus von 5 Millisekunden) und schreibt dann, wenn bestätigt wird, dass der Wert des Anomaliedetektionsmerkers 56 Wahr ist, den Wert des Anomaliedetektionsmerkers 56 zu Falsch um und startet dann das Überwachungsergebnisspeicherprogramm 20.
  • <Anomaliedetektionsmerker 56>
  • Der Anomaliedetektionsmerker 56 ist eine Variable, die einen von zwei Werten annimmt: Wahr und Falsch.
  • 16 stellt einen Überblick eines Prozessablaufs des Hypervisor-Überwachungsprogramms 17 dar.
  • <Schritt S3>
  • In Schritt S3 verursacht das Hypervisor-Überwachungsprogramm 17, dass sich der Prozessablauf abhängig davon verzweigt, ob ein Bestimmungsergebnis in Schritt S2 ein normaler Zustand oder ein anomaler Zustand ist. Mit anderen Worten beendet das Hypervisor-Überwachungsprogramm 17 den Prozessablauf, ohne etwas zu unternehmen, wenn das Bestimmungsergebnis in Schritt S2 ein normaler Zustand ist, schreitet jedoch fort zu Schritt S4, wenn das Bestimmungsergebnis in Schritt S2 ein anomaler Zustand ist.
  • <Schritt S4>
  • In Schritt S4 schaltet das Hypervisor-Überwachungsprogramm 17 einen Wert des Anomaliedetektionsmerkers 56 zu Wahr und beendet den Prozessablauf.
  • <Überwachungsergebnisspeicherprogramm 20>
  • Das Überwachungsergebnisspeicherprogramm 20 speichert die Peripheriezugriffsaufzeichnungs-Informationen 53, die Peripheriezustandsaufzeichnungs-Informationen 54 und die Peripheriebestimmungszustands-Informationen 55 in einem nichtflüchtigen Speicherbereich im Speicher 3 des Mikrocomputers 900.
  • Gemäß dieser Ausführungsform können unter Bezugnahme auf den nichtflüchtigen Speicherbereich die Peripheriezugriffsaufzeichnungs-Informationen 53, die Peripheriezustandsaufzeichnungs-Informationen 54 und die Peripheriebestimmungszustands-Informationen 55 als Informationen zum Beheben von Fehlern verwendet werden, die den Grund dafür, dass eine Anomalie im Hypervisor 6 detektiert wird, und einem Operationsmuster, das eine Anomalie des Hypervisors 6 verursacht, identifizieren.
  • Dritte Ausführungsform
  • Eine elektronische Steuereinheit und ein Anomaliedetektionsverfahren gemäß einer dritten Ausführungsform der vorliegenden Erfindung werden beschrieben. Die dritte Ausführungsform ist von der ersten Ausführungsform dahingehend verschieden, dass ein verschiedener virtueller Treiber verwendet wird, um die Peripheriezugriffsaufzeichnungs-Informationen 53 zu extrahieren. Dieselben Bestandteile wie die der ersten Ausführungsform werden durch dieselben Bezugszeichen bezeichnet und werden in der weiteren Beschreibung ausgelassen.
  • <Konfiguration>
  • 17 stellt eine Hardware-Konfiguration der elektronischen Steuereinheit gemäß der dritten Ausführungsform dar.
  • <Peripheriegerät 2>
  • In dieser Ausführungsform enthält das gemeinsam verwendete Peripheriegerät 201 den digitalen Ausgangsanschluss 2011 und eine CAN-Steuereinheit 2012, enthält das erste Peripheriegerät 202 den analogen Ausgangsanschluss 2021 und enthält das zweite Peripheriegerät 203 den digitalen Eingangsanschluss 2031.
  • 18 stellt eine Software-Konfiguration der elektronischen Steuereinheit gemäß der dritten Ausführungsform dar. Stücke einer Software, die in 18 gezeigt ist, sind im Speicher 3 gespeichert.
  • <Software-Konfiguration>
  • Die erste virtuelle Maschine 7 enthält das erste Gastbetriebssystem 9, die erste Steuer-Software-Anwendung 10, den virtuellen Treiber 11, das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19, den Treiber 12 für analoge Ausgangsanschlüsse und einen virtuellen CAN-Treiber 21. Die zweite virtuelle Maschine 8 enthält das zweite Gastbetriebssystem 13, die zweite Steuer-Software-Anwendung 15, den virtuellen Treiber 11, den Treiber 14 für digitale Eingangsanschlüsse und einen virtuellen CAN-Treiber 21.
  • <Erste virtuelle Maschine 7>
  • Der Betrieb einer Software in der ersten virtuellen Maschine 7 wird beschrieben. Wenn der Hypervisor 6 die erste virtuelle Maschine 7 konfiguriert, aktiviert die erste virtuelle Maschine 7 das erste Gastbetriebssystem 9. Das erste Gastbetriebssystem 9 aktiviert die erste Steuer-Software-Anwendung 10. Die erste Steuer-Software-Anwendung 10 verwendet den digitalen Ausgangsanschluss 2011 und die CAN-Steuereinheit 2012, die das gemeinsam verwendete Peripheriegerät 201 bilden, und den analogen Ausgangsanschluss 2021, der das erste Peripheriegerät 202 ist.
  • 19 stellt einen Überblick eines Prozessablaufs, der ausgeführt wird, wenn die erste Steuer-Software-Anwendung 10 der dritten Ausführungsform die CAN-Steuereinheit 2012 verwendet, die das gemeinsam verwendete Peripheriegerät 201 ist, dar.
  • <Zugriff von der ersten virtuellen Maschine 7 auf die CAN-Steuereinheit 2012>
  • Um auf die CAN-Steuereinheit 2012 zuzugreifen, die das gemeinsam verwendete Peripheriegerät 201 ist, verwendet die erste Steuer-Software-Anwendung 10 den virtuellen CAN-Treiber 21, den Hypervisor 6 und einen CAN-Treiber 22. Speziell ruft die erste Steuer-Software-Anwendung 10 den virtuellen CAN-Treiber 21 durch Festlegen einer Kennung, die in Übereinstimmung mit einem CAN-Nachrichtenprotokoll zugewiesen wird, und Daten, die zu einem CAN-Rahmen gesendet werden sollen, als Parameter auf, wobei der Aufruf als eine Peripheriezugriffsanforderung vorgenommen wird. Der virtuelle CAN-Treiber 21 führt einen Prozess des Änderns eines Verarbeitungskontexts der CPU 1 von der ersten virtuellen Maschine 7 zum Hypervisor 6 (wobei der Prozess im Allgemeinen als VMExit bezeichnet wird) aus. Der Hypervisor 6 prüft einen Verwendungsstatus der CAN-Steuereinheit 2012. Wenn festgestellt wird, dass die zweite virtuelle Maschine 8 die CAN-Steuereinheit 2012 nicht verwendet, ruft der Hypervisor 6 den CAN-Treiber 22 zum Zugreifen auf die CAN-Steuereinheit 2012 durch Festlegen der Kennung und der Daten als die Parameter auf. Wenn festgestellt wird, dass die zweite virtuelle Maschine 8 die CAN-Steuereinheit 2012 verwendet, speichert der Hypervisor 6 die Kennung und die Daten im Puffer, der im Hypervisor 6 vorgesehen ist, und geht in Bereitschaft, nimmt die Kennung und die Daten aus dem Puffer, nachdem die zweite virtuelle Maschine 8 die Verwendung der CAN-Steuereinheit 2012 abgeschlossen hat, und ruft dann den CAN-Treiber 22 durch Anfügen des herausgenommenen Parameters an den Aufruf auf.
  • Der CAN-Treiber 22 greift auf ein Register der CAN-Steuereinheit 2012 zu, speichert die Kennung und die Daten in einem CAN-Rahmen und sendet den CAN-Rahmen über einen CAN-Kommunikationsbus und sendet dann eine Antwort, die einen normalen Abschluss angibt, zurück zum Hypervisor 6. Nach Eingang der Antwort, die einen normalen Abschluss angibt, vom CAN-Treiber 22 führt der Hypervisor 6 einen Prozess des Änderns des Verarbeitungskontexts der CPU 1 vom Hypervisor 6 zur ersten virtuellen Maschine 7 aus (wobei der Prozess im Allgemeinen als VMEntry bezeichnet wird). Wenn Informationen, die einen normalen Abschluss angeben, vom Hypervisor 6 empfangen werden, sendet der virtuelle CAN-Treiber 21 eine Antwort, die einen normalen Abschluss angibt, zurück zur ersten Steuer-Software-Anwendung 10.
  • 20 stellt ein CAN-Hauptbuch 57 der dritten Ausführungsform dar.
  • <CAN-Hauptbuch 57>
  • Das CAN-Hauptbuch 57, das im CAN-Treiber 22 gehalten wird, enthält Informationen über eine Nachrichtenkennung zum Identifizieren jedes CAN-Rahmens, über Dateninhalte, die die Inhalte von Daten darstellen, die im CAN-Rahmen enthalten sind, darüber, ob der CAN-Rahmen gesendet wird oder ob der CAN-Rahmen empfangen wird, und über eine Datenlänge im CAN-Rahmen. In dieser Ausführungsform werden CAN-Rahmen mit Kennungen im Bereich von 0 bis 2000 für herkömmliche Steuerprozesse verwendet und werden zum CAN-Kommunikationsbus gesendet oder von ihm empfangen. In einem CAN-Rahmen mit einer Nachrichtenkennung 9900 ist ein Satz einer Zustandsprüfzeit, eines Prozessziels und eines Registerwerts, der in den Peripheriezustandsaufzeichnungs-Informationen 54 angegeben ist, als 8 Byte-Daten gespeichert und werden Informationen darüber, ob der CAN-Rahmen, der gesendet wird, oder der CAN-Rahmen, der empfangen wird, als „Übertragung zur Überwachungseinheit“ eingegeben wird.
  • <CAN-Treiber 22>
  • Der CAN-Treiber 22 betreibt ein Register der CAN-Steuereinheit 2012 gemäß Informationen, die in das CAN-Hauptbuch 57 eingegeben wurden. Speziell empfängt der CAN-Treiber 22 durch Betreiben des Registers der CAN-Steuereinheit 2012 8 Byte-Daten eines CAN-Rahmens mit einer Nachrichtenkennung 0 vom CAN-Kommunikationsbus als Fahrzeuggeschwindigkeit, sendet durch Betreiben des Registers der CAN-Steuereinheit 2012 8 Byte-Daten eines CAN-Rahmens mit einer Nachrichtenkennung 1 zum CAN-Kommunikationsbus als Kraftmaschinendrehzahl und sendet durch Betreiben des Registers der CAN-Steuereinheit 2012 8 Byte-Daten eines CAN-Rahmens mit einer Nachrichtenkennung 2 zum CAN-Kommunikationsbus als Drosselklappenöffnungsgrad.
  • Hinsichtlich Daten eines CAN-Rahmens mit einer Nachrichtenkennung 9900, dessen Informationen darüber, ob gesendet oder empfangen werden als „Übertragung zur Überwachungseinheit“ in das CAN-Hauptbuch 57 eingegeben ist, betreibt der CAN-Treiber 22 nicht das Register der CAN-Steuereinheit 2012, sondern schreibt die Daten zu einem Speicherbereich, auf den das Hypervisor-Überwachungsprogramm 17 sich beziehen kann. Da er außerhalb der ersten virtuellen Maschine 7 und des Hypervisors 6 vorhanden ist, empfängt der CAN-Treiber 22 nicht den Bezug einer Begrenzung auf einen Bezugsraum in dem Speicherbereich, der durch den Hypervisor 6 angeordnet ist. Zusätzlich ermöglicht ein Verwenden eines Peripheriegeräts (eines digitalen Ausgangsanschlusses 2011), das zum Überwachen des Hypervisors 6 verwendet wird, und eines weiteren Peripheriegeräts (der CAN-Steuereinheit 2012) dem Hypervisor 6, die Peripheriezugriffsaufzeichnungs-Informationen 53 in dem Speicherbereich zu speichern, auf den das Hypervisor-Überwachungsprogramm 17 Bezug nehmen kann, wenn eine Anomalie während des Betriebs des digitalen Ausgangsanschlusses 2011 auftritt.
  • Gemäß dieser Ausführungsform können selbst in einem Fall, in dem ein Zugriff von innerhalb der virtuellen Maschine, die durch den Hypervisor 6 konfiguriert ist, zur Außenseite der virtuellen Maschine verboten ist und folglich das Peripheriezugriffsanforderungs-Aufzeichnungsprogramm 19 die Peripheriezugriffsaufzeichnungs-Informationen 53 nicht zu dem Speicherbereich, auf den das Hypervisor-Überwachungsprogramm 17 sich beziehen kann, schreiben kann, die Peripheriezugriffsaufzeichnungs-Informationen 53 aus der ersten virtuellen Maschine 7 genommen und zu dem Speicherbereich, auf den das Hypervisor-Überwachungsprogramm 17 sich beziehen kann, geschrieben werden.
  • Vierte Ausführungsform
  • Eine elektronische Steuereinheit und ein Anomaliedetektionsverfahren gemäß einer vierten Ausführungsform der vorliegenden Erfindung wird beschrieben. Die vierte Ausführungsform ist von der zweiten Ausführungsform dahingehend verschieden, dass die elektronische Steuereinheit abgeschaltet wird, wenn ein Fehler des Hypervisors 6 bei einer Frequenz detektiert wird, die gleich oder größer als ein gegebener Wert ist. Dieselben Bestandteile wie die der zweiten Ausführungsform werden durch dieselben Bezugszeichen bezeichnet und werden in der weiteren Beschreibung ausgelassen.
  • 21 stellt einen Überblick eines Prozessablaufs eines Überwachungsergebnisspeicherprogramms 20 der vierten Ausführungsform dar.
  • <Überwachungsergebnisspeicherprogramm 20>
  • Das Überwachungsergebnisspeicherprogramm 20 speichert die Peripheriezugriffsaufzeichnungs-Informationen 53, die Peripheriezustandsaufzeichnungs-Informationen 54 und die Peripheriebestimmungszustands-Informationen 55 in einem nichtflüchtigen Speicherbereich im Speicher 3 des Mikrocomputers 900, berechnet die Auftrittshäufigkeit von Anomalien im Hypervisor 6 und schaltet dann, wenn die berechnete Auftrittshäufigkeit von Anomalien gleich oder größer als ein gegebener Schwellenwert ist, die elektronische Steuereinheit 0 ab.
  • <Schritt S5>
  • In Schritt S5 speichert das Überwachungsergebnisspeicherprogramm 20 die Peripheriezugriffsaufzeichnungs-Informationen 53, die Peripheriezustandsaufzeichnungs-Informationen 54 und die Peripheriebestimmungszustands-Informationen 55 im nichtflüchtigen Speicherbereich im Speicher 3 des Mikrocomputers 900.
  • <Schritt S6>
  • in Schritt S6 berechnet das Überwachungsergebnisspeicherprogramm 20 eine Zeit, zu der eine Anomalie im Hypervisor 6 aufgetreten ist. Weil es schwierig ist, die Zeit, zu der die Anomalie tatsächlich im Hypervisor 6 aufgetreten ist, von außerhalb des Hypervisors 6 festzulegen, wird eine Zeit, die in den Peripheriezustandsaufzeichnungs-Informationen 54 und den Peripheriebestimmungszustands-Informationen 55 angegeben ist, wobei die Zeit durch das Hypervisor-Überwachungsprogramm 17 als Grundlage zum Bestimmen des Auftretens einer Anomalie im Hypervisor 6 genommen wird, als die Zeit bestimmt, zu der die Anomalie im Hypervisor 6 aufgetreten ist. Speziell wird, wie in den Peripheriezustandsaufzeichnungs-Informationen 54 und den Peripheriebestimmungszustands-Informationen 55, die in 14 gezeigt sind, angegeben ist, die Zeit, zu der die Anomalie, die im Hypervisor 6 aufgetreten ist, als 00:32:10 berechnet. Das Überwachungsergebnisspeicherprogramm 20 speichert die berechnete Zeit, d. h. 00:32:10 in Hypervisoranomalieauftrittszeit-Informationen 58.
  • 22 stellt ein Beispiel der Hypervisoranomalieauftrittszeit-Informationen 58 der vierten Ausführungsform dar.
  • <Hypervisoranomalieauftrittszeit-Informationen 58>
  • Die Hypervisoranomalieauftrittszeit-Informationen 58 speichert Informationen über eine Zeit, die in Schritt S6 des Überwachungsergebnisspeicherprogramms 20 der elektronischen Steuereinheit der vierten Ausführungsform berechnet wird.
  • <Hypervisoranomalieauftrittsfrequenz-Bedingung 59>
  • Ein Hypervisoranomalieauftrittsfrequenz-Bedingung 59 ist ein Bedingung zum Abschalten der elektronischen Steuereinheit 0. In dieser Ausführungsform legt diese Bedingung eine Anomalie des Hypervisors 6, die in einer Zeitspanne 10:00 zweimal detektiert wird, als eine Bedingung zur Abschaltung fest.
  • 23 ist ein Diagramm, das einen Überblick eines Prozesses schematisch zeigt, der in Schritt S7 des Überwachungsergebnisspeicherprogramms 20 der vierten Ausführungsform ausgeführt wird.
  • <Schritt S7>
  • In Schritt S7 berechnet das Überwachungsergebnisspeicherprogramm 20 die Auftrittshäufigkeit von Anomalien im Hypervisor 6. Da die Hypervisoranomalieauftrittsfrequenz-Bedingung 59 die Auftrittshäufigkeit von Anomalien im Hypervisor 6 in der Zeitspanne 10:00 als eine Abschaltungsbedingung setzt, werden Aufzeichnungen einer Hypervisoranomalieauftrittszeit in der Zeitspanne 10:00, die sich von der jüngsten Anomalieauftrittszeit rückwärts erstreckt, gezählt. Dieser Prozess wird unter Bezugnahme auf 23 beschrieben. Beim Punkt 50:25 ist die jüngste Anomalieauftrittszeit 47:10 und ist die Auftrittsanzahl von Anomalien in der Zeitspanne 10:00, die sich von 47:10 rückwärts erstreckt, d. h. im Zeitraum zwischen 37:10 und 47:10, gemäß den Hypervisoranomalieauftrittszeit-Informationen 58 1 und wird deshalb die Frequenz in der Zeitspanne als 1 bestimmt. Beim Punkt 54:35 ist die jüngste Anomalieauftrittszeit 52:10 und ist die Auftrittsanzahl von Anomalien in der Zeitspanne 10:00, die sich von 52:10 rückwärts erstreckt, d. h. im Zeitraum zwischen 42:10 und 52:10 gemäß den Hypervisoranomalieauftrittszeit-Informationen 58 2 und wird deshalb die Frequenz in der Zeitspanne als 2 bestimmt.
  • <Schritt S8>
  • In Schritt S8 schreitet dann, wenn die Auftrittshäufigkeit von Anomalien, die in Schritt S7 bestimmt wird, gleich oder größer als eine Schwellenwertfrequenz ist, die durch den Hypervisoranomalieauftrittsfrequenz-Bedingung 59 definiert ist, das Überwachungsergebnisspeicherprogramm 20 fort zu Schritt S9. Andernfalls lässt das Überwachungsergebnisspeicherprogramm 20 einen Schritt S9 aus und beendet den Prozessablauf.
  • <Schritt S9>
  • In Schritt S9 gibt das Überwachungsergebnisspeicherprogramm 20 ein Rücksetzsignal aus dem Selbstrücksetzausgabeanschluss des Mikrocomputers 900 aus. Als Ergebnis stoppt die Stromversorgungsschaltung 901 ein Zuführen von Leistung zum Mikrocomputer 900, der die elektronische Steuereinheit 0 abschaltet. Die elektronische Steuereinheit 0 ist teilweise abgeschaltet oder vollständig abgeschaltet.
  • Gemäß dieser Ausführungsform wird, wenn die Detektionshäufigkeit von Anomalien im Hypervisor 6 niedrig ist, die elektronische Steuereinheit in Betrieb gehalten, um Einflüsse auf die elektronische Steuereinheit und ein Fahrzeug, in dem das elektronische Steuereinheit aufgenommen ist, zu verhindern. Andererseits wird, wenn die Detektionshäufigkeit von Anomalien im Hypervisor 6 hoch ist, die elektronische Steuereinheit abgeschaltet, um Einflüsse, die die Anomalien, die im Hypervisor 6 aufgetreten sind, auf die Sicherheit der elektronischen Steuereinheit und des Fahrzeugs, in das die elektronische Steuereinheit aufgenommen ist, ausüben, zu verringern. Daher kann sowohl die Benutzerfreundlichkeit als auch die Sicherheit sichergestellt werden.
  • Die vorliegende Erfindung ist nicht auf die oben beschriebenen Ausführungsformen beschränkt und enthält verschiedene Abwandlungen und Konfigurationen, die den Ausführungsformen, die im Umfang der beigefügten Ansprüche sind, entsprechen. Zum Beispiel wurden die oben beschriebenen Ausführungsformen genau beschrieben, um das Verständnis der vorliegenden Erfindung zu erleichtern, und die vorliegende Erfindung ist nicht notwendigerweise auf eine Ausführungsform beschränkt, die alle Bestandteile enthält, die oben beschrieben sind. Gewisse Bestandteile einer bestimmten Ausführungsform können durch Bestandteile einer weiteren Ausführungsform ersetzt werden. Ein Bestandteil einer weiteren Ausführungsform kann zu einem Bestandteil einer bestimmten Ausführungsform hinzugefügt werden. Einige Bestandteile jeder Ausführungsform können entfernt werden oder zu Bestandteilen einer weiteren Ausführungsform hinzufügen oder durch sie ersetzt werden.
  • Einige oder alle der oben beschriebenen Bestandteile, Funktionen, Verarbeitungseinheiten, Prozessmittel und dergleichen können in Form von Hardware durch ihr Konfektionieren in einer integrierten Schaltung oder in Form einer Software, indem verursacht wird, dass ein Prozessor Programme interpretiert und ausführt, die jeweilige Funktionen implementieren, vorgesehen sein.
  • Informationen zu Programmen, Tabellen, Dateien und dergleichen zum Implementieren verschiedener Funktionen können in einer Speichervorrichtung wie z. B. einem Speicher, einer Festplatte und einem Festkörperlaufwerk (SSD) oder in einem Aufzeichnungsmedium wie z. B. einer IC-Karte, einer SD-Karte und einem DVD gespeichert sein.
  • Eine Gruppe von Steuerleitungen und Datenleitungen, die zur Beschreibung nötig erachtet werden, ist veranschaulicht und es sind nicht notwendigerweise alle Steuerleitungen und Datenleitungen, die für die Konfiguration benötigt werden, veranschaulicht. Man kann davon ausgehen, dass tatsächlich nahezu alle Bestandteile verbunden sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 202180743 [0001]
    • JP 2019144785 A [0003]
    • JP 2014106587 A [0003]

Claims (8)

  1. Elektronische Steuereinheit, die Folgendes umfasst: eine virtuelle Maschine, die auf einen ersten virtuellen Treiber zugreift, um einen Prozess auszuführen; einen Hypervisor, der einen ersten realen Treiber eines ersten Peripheriegeräts auf der Grundlage einer Peripheriezugriffsanforderung, die vom ersten virtuellen Treiber empfangen wurde, aufruft; eine Zugriffsaufzeichnungseinheit, die den ersten virtuellen Treiber aufruft, um eine Peripheriezugriffsanforderung, die zum Hypervisor gesendet wurde, aufzuzeichnen; eine Zustandsaufzeichnungseinheit, die den ersten realen Treiber aufruft, um einen Zustand eines Registers des ersten Peripheriegeräts aufzuzeichnen; und eine Überwachungseinheit, die einen Betrieb des Hypervisors überwacht, wobei die Überwachungseinheit eine Anomalie des Hypervisors auf der Grundlage einer Aufzeichnung durch die Zugriffsaufzeichnungseinheit und einer Aufzeichnung durch die Zustandsaufzeichnungseinheit bestimmt.
  2. Elektronische Steuereinheit nach Anspruch 1, wobei dann, wenn eine Aufzeichnung durch die Zugriffsaufzeichnungseinheit und eine Aufzeichnung durch die Zustandsaufzeichnungseinheit nicht übereinstimmen, die Überwachungseinheit bestimmt, dass der Hypervisor in einem anomalen Zustand ist.
  3. Elektronische Steuereinheit nach Anspruch 2, wobei die Zustandsaufzeichnungseinheit einen Zustand des Registers in einem gegebenen Zeitablauf wiederholt erfasst.
  4. Elektronische Steuereinheit nach Anspruch 2, wobei die Überwachungseinheit bestimmt, dass der Hypervisor in einem anomalen Zustand ist, wenn eine Aufzeichnung einer Zugriffsanforderung in der Zugriffsaufzeichnungseinheit vorhanden ist, eine Aufzeichnung eines Prozessergebnisses des realen Treibers, das als eine Antwort, die einen normalen Abschluss angibt, zum virtuellen Treiber zurückgesendet worden ist, vorhanden ist, und sich ein Zustand eines Registers der Zustandsaufzeichnungseinheit nicht ändert.
  5. Elektronische Steuereinheit nach Anspruch 1, die eine Überwachungsergebnisspeichereinheit umfasst, die, wenn die Überwachungseinheit eine Anomalie bestimmt, eine Aufzeichnung durch die Zugriffsaufzeichnungseinheit und eine Aufzeichnung durch die Zustandsaufzeichnungseinheit in einem nichtflüchtigen Speicher speichert.
  6. Elektronische Steuereinheit nach Anspruch 5, wobei dann, wenn eine Frequenz des Bestimmens, dass der Hypervisor in einem anomalen Zustand ist, gleich oder größer als ein gegebener Schwellenwert ist, die Überwachungsergebnisspeichereinheit die elektronische Steuereinheit teilweise oder vollständig zu einem Stopp bringt.
  7. Elektronische Steuereinheit nach Anspruch 1, die Folgendes umfasst: ein zweites Peripheriegerät, das vom ersten Peripheriegerät verschieden ist; und einen zweiten realen Treiber zum Betreiben des zweiten Peripheriegeräts, wobei das zweite Peripheriegerät auf einen Befehl vom zweiten realen Treiber folgend eine Aufzeichnung durch die Zugriffsaufzeichnungseinheit zu außerhalb der virtuellen Maschine ausgibt und die Überwachungseinheit sich auf die Aufzeichnung durch die Zugriffsaufzeichnungseinheit bezieht, wobei die Aufzeichnung zur Außenseite der virtuellen Maschine ausgegeben wird.
  8. Anomaliebestimmungsverfahren für einen Hypervisor, der in einer elektronischen Steuereinheit arbeitet, wobei die elektronische Steuereinheit Folgendes enthält: eine virtuelle Maschine, die auf einen ersten virtuellen Treiber zugreift, um einen Prozess auszuführen; den Hypervisor, der einen ersten realen Treiber eines ersten Peripheriegeräts auf der Grundlage einer Peripheriezugriffsanforderung, die vom ersten virtuellen Treiber empfangen wurde, aufruft; eine Zugriffsaufzeichnungseinheit, die den ersten virtuellen Treiber aufruft, um eine Peripheriezugriffsanforderung, die zum Hypervisor gesendet wurde, aufzuzeichnen; eine Zustandsaufzeichnungseinheit, die den ersten realen Treiber aufruft, um einen Zustand eines Registers des ersten Peripheriegeräts aufzuzeichnen; und eine Überwachungseinheit, die einen Betrieb des Hypervisors überwacht, und das Anomaliebestimmungsverfahren Folgendes umfasst: Verursachen, dass die Zustandsaufzeichnungseinheit den ersten realen Treiber aufruft und einen Zustand eines Registers des ersten Peripheriegeräts aufzeichnet; und Verursachen, dass die Überwachungseinheit auf der Grundlage einer Aufzeichnung durch die Zugriffsaufzeichnungseinheit und einer Aufzeichnung durch die Zustandsaufzeichnungseinheit eine Anomalie des Hypervisors bestimmt.
DE112022001480.6T 2021-05-12 2022-02-04 Elektronische steuereinheit und anomaliebestimmungsverfahren Pending DE112022001480T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021-080743 2021-05-12
JP2021080743A JP2022174784A (ja) 2021-05-12 2021-05-12 電子制御装置及び異常判定方法
PCT/JP2022/004527 WO2022239331A1 (ja) 2021-05-12 2022-02-04 電子制御装置及び異常判定方法

Publications (1)

Publication Number Publication Date
DE112022001480T5 true DE112022001480T5 (de) 2024-01-11

Family

ID=84029069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022001480.6T Pending DE112022001480T5 (de) 2021-05-12 2022-02-04 Elektronische steuereinheit und anomaliebestimmungsverfahren

Country Status (3)

Country Link
JP (1) JP2022174784A (de)
DE (1) DE112022001480T5 (de)
WO (1) WO2022239331A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106587A (ja) 2012-11-26 2014-06-09 Hitachi Ltd I/oデバイスの制御方法及び仮想計算機システム
JP2019144785A (ja) 2018-02-20 2019-08-29 富士通株式会社 監視プログラム、監視装置及び監視方法
JP2021080743A (ja) 2019-11-19 2021-05-27 鹿島道路株式会社 再生アスファルト混合物の製造システム及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268687A (ja) * 2005-03-25 2006-10-05 Mitsubishi Electric Corp コンピュータウィルス監視プログラム及びこれを用いたコンピュータ端末装置
JP2010122736A (ja) * 2008-11-17 2010-06-03 Ricoh Co Ltd シリアル通信装置とそれを備えた画像形成装置
JP6171430B2 (ja) * 2013-03-15 2017-08-02 日本電気株式会社 コンピュータ装置と方法とプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106587A (ja) 2012-11-26 2014-06-09 Hitachi Ltd I/oデバイスの制御方法及び仮想計算機システム
JP2019144785A (ja) 2018-02-20 2019-08-29 富士通株式会社 監視プログラム、監視装置及び監視方法
JP2021080743A (ja) 2019-11-19 2021-05-27 鹿島道路株式会社 再生アスファルト混合物の製造システム及び方法

Also Published As

Publication number Publication date
WO2022239331A1 (ja) 2022-11-17
JP2022174784A (ja) 2022-11-25

Similar Documents

Publication Publication Date Title
DE68924119T2 (de) Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem.
DE2210325C3 (de) Datenverarbeitungseinrichtung
EP2466466B1 (de) Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
DE2611907A1 (de) Dv-system mit einer prioritaets- unterbrechungs-anordnung
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE102013014172A1 (de) Schutz globaler register in einem multithreaded-prozessor
DE68922440T2 (de) Gerät und Verfahren zur gleichzeitigen Einreichung von Fehlerunterbrechung und Fehlerdaten zu einem Unterstützungsprozessor.
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE112012003420B4 (de) Fahrzeugsteuerungsvorrichtung und Fahrzeugsteuerungssystem
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE19955776C1 (de) Multitasking-Prozessorsystem
DE112018007428T5 (de) Vorrichtung zur informationsverarbeitung, tuningverfahren undtuningprogramm
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE102017123812A1 (de) Steuervorrichtung
DE102011011333A1 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE69022773T2 (de) Datenverarbeitungsgerät.
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung
DE112022001480T5 (de) Elektronische steuereinheit und anomaliebestimmungsverfahren
DE102019132679A1 (de) Überwachungsverfahren für cpu-nutzungsmenge im betrieb von fahrzeug-ecu und überwachungseinheit
EP1870787B1 (de) Verfahren zur Überwachung eines zyklischen Steuerungsprogramms
EP1283471B1 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed