-
Technisches Gebiet
-
Diese Erfindung betrifft ein Fahrzeugsteuergerät, ein Verfahren zur Verwaltung von Interruptinformationen und ein Programm zur Verwaltung von Interruptinformationen.
-
Hintergrundtechnik
-
In elektronischen Verarbeitungssystemen oder elektronischen Verarbeitungsumgebungen, in denen mehrere Hardware-Geräte miteinander verbunden sind, ist es wichtig, dass die Anwendung von einem Hardware-Gerät auf ein anderes Hardware-Gerät übertragen werden kann. Da unter Verwendung eines solchen Anwendungsübertragungsprozesses die Verfügbarkeit der Anwendung aufrechterhalten und die Leistung des gesamten Systems verbessert werden kann, wird er in elektronischen Verarbeitungssystemen usw. umfangreich eingesetzt, in denen mehrere Hardware-Geräte miteinander verbunden sind.
-
Eine solche Anwendungsübertragung kann in einer verteilten Computerumgebung, die aus universell verwendbaren Hardware-Geräten besteht, leicht durchgeführt werden. In einer Umgebung mit vielen dedizierten Fahrzeuggeräten, die für eine Funktion spezialisiert sind, wie z. B. in einem Automobil, ist es jedoch schwierig, eine Anwendung auf ein anderes Gerät zu übertragen, ohne die Verbindung mit den Fahrzeuggeräten zu unterbrechen, die die von der Anwendung benötigten Daten liefert.
-
Im Gegensatz dazu ist in der JP Patentoffenlegungsschrift Nr. 2017-507401 (Patentdokument 1) angegeben: „Ein Computersystem, das in eine Fahrzeugbenutzerschnittstelle integriert ist, wobei das Computersystem mit einem Verarbeitungssystem mit einem Mehrkernprozessor versehen ist, wobei das Verarbeitungssystem in einem oder mehreren ersten Kern des Mehrkernprozessors eine Virtualisierung für ein erstes Gastbetriebssystem und in einem oder mehreren zweiten Kern des Mehrkernprozessors eine Virtualisierung für ein zweites Gastbetriebssystem bereitstellt, wobei das erste Gastbetriebssystem für einen hochzuverlässigen Betrieb ausgebildet ist und die Virtualisierung verhindert, dass der Betrieb des zweiten Gastbetriebssystems den hochzuverlässigen Betrieb des ersten Gastbetriebssystems unterbricht.“
-
Ermittelte Schrift
-
Patentdokument
-
Patentdokument 1: JP Patentoffenlegungsschrift Nr.
2017-507401
-
Übersicht der Erfindung
-
Zu lösende Aufgabe der Erfindung
-
In dem vorgenannten Patentdokument 1 wird eine computerisierte Benutzerschnittstelle für ein Kraftfahrzeug angegeben. Gemäß der Erfindung im Patentdokument 1 sind mehrere verschiedene Betriebssysteme vorgesehen, die im Wesentlichen unabhängig voneinander arbeiten, um zu verhindern, dass der Betrieb eines Betriebssystems den Betrieb eines anderen Betriebssystems stört. Im Patentdokument 1 wird jedoch die Anwendungsübertragung in einem Automobilnetzwerk nicht berücksichtigt und die Anwendungsübertragung wird beschränkt, da bei der Übertragung von Anwendungen die Verbindung mit einem Fahrzeuggerät, das die von den Anwendungen benötigten Daten liefert, unterbrochen wird.
-
Daher liegt der vorliegenden Erfindung zugrunde, ein Interruptsignal, das zwischen einem Hardware-Gerät und einer Anwendung erzeugt wird, von einem Virtualisierungsverwaltungsteil (z. B. einem Hypervisor) weiterzuleiten, um Verzögerungen bei der Weiterleitung von Daten usw. zu reduzieren und die Anwendung flexibel und schnell zu übertragen.
-
Mittel zum Lösen der Aufgabe
-
Zum Lösen der vorgenannten Aufgabe handelt es sich bei einer repräsentativen Erfindung um ein erstes Fahrzeugsteuergerät, das mit einem Fahrzeuggerät verbunden werden kann, dadurch gekennzeichnet, dass das erste Fahrzeugsteuergerät mit mehreren Virtualisierungsverwaltungsteilen, einem Speicherteil und einem Rechner versehen ist, und mit einer Anwendungssoftware bestückt ist, wobei der Speicherteil eine Abbildungstabelle ablegt, in der ein erster Identifier, der eine Interruptinformation von einem mit dem ersten Fahrzeugsteuergerät verbundenen Fahrzeuggerät eindeutig identifiziert, ein zweiter Identifier, der den im ersten Fahrzeugsteuergerät implementierten Virtualisierungsverwaltungsteil eindeutig identifiziert, und ein dritter Identifier, der die Anwendungssoftware eindeutig identifiziert, zugeordnet sind, wobei, wenn der Rechner die Interruptinformation einschließlich des ersten Identifiers vom Fahrzeuggerät empfängt, der Rechner aus den mehreren Virtualisierungsverwaltungsteilen im ersten Fahrzeugsteuergerät auf der Basis der Abbildungstabelle einen Virtualisierungsverwaltungsteil bestimmt, an den eine Anforderung des Interruptsignals weitergeleitet wird.
-
Effekte der Erfindung
-
Nach der vorliegenden Erfindung ist beabsichtigt, dass das Interruptsignal, das zwischen dem Hardware-Gerät und der Anwendung erzeugt wird, vom Virtualisierungsverwaltungsteil weitergeleitet wird, um Verzögerungen bei der Weiterleitung von Daten usw. zu reduzieren und die Anwendung flexibel und schnell zu übertragen.
-
Andere Aufgaben, Ausbildungen und Effekte als die vorgenannten gehen durch die folgende Erläuterung der Ausführungsformen klar hervor.
-
Figurenliste
-
- [1] 1 ist eine schematische Ansicht, die ein Automobilnetzwerk in einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
- [2] 2 ist eine Ansicht für eine Abbildungstabelle in einer ersten Ausführungsform.
- [3] 3 ist eine Ansicht für ein Datenverarbeitungssystem zur Weiterleitung eines Interruptsignals von einem nicht modifizierbaren Fahrzeuggerät an eine Anwendung in der ersten Ausführungsform.
- [4] 4 ist ein Flussdiagramm, das die Funktionsweise der Weiterleitung eines Interruptsignals von einem nicht modifizierbaren Fahrzeuggerät an eine Anwendung in der ersten Ausführungsform zeigt.
- [5] 5 ist eine Ansicht für eine Abbildungstabelle in einer zweiten Ausführungsform.
- [6] 6 ist eine Ansicht für ein Datenverarbeitungssystem zur Weiterleitung eines Interruptsignals von einem modifizierbaren Fahrzeuggerät an eine Anwendung in der zweiten Ausführungsform.
- [7] 7 ist ein Flussdiagramm, das die Funktionsweise der Weiterleitung eines Interruptsignals von einem modifizierbaren Fahrzeuggerät an eine Anwendung in der zweiten Ausführungsform zeigt.
-
Ausführungsformen der Erfindung
-
Zunächst wird der gesamte Überblick der vorliegenden Erfindung erläutert. Bei der vorliegenden Erfindung handelt es sich um eine Technik zu einer leichten Anwendungsübertragung zwischen Geräten durch Weiterleitung von Interruptsignalen, die bei der Kommunikation mit Hardware-Geräten, wie z. B. Fahrzeuggeräten, erzeugt werden, an eine gewünschte Anwendung, unabhängig davon, in welchem Gerät die Anwendungssoftware (nachstehend als „Anwendung“ bezeichnet) derzeit implementiert ist. Hierbei bedeutet die Anwendungsübertragung die Übertragung von einer Betriebsumgebung (ein logischer Raum, der durch ein Fahrzeug-ECU, ein Servergerät und einen Cloud-Server aufgebaut wird) in eine andere Betriebsumgebung. Diese Anwendungsübertragung kann die Übertragung einer Anwendung umfassen, die im Virtualisierungsverwaltungsteil läuft, der in einem Gerät (z. B. einem Hardware-Gerät) implementiert ist, auf den Virtualisierungsverwaltungsteil, der in einem anderen Gerät implementiert ist, oder die Übertragung der Anwendung, des Virtualisierungsverwaltungsteils, der in einem Gerät implementiert ist, auf einen anderen Virtualisierungsverwaltungsteil desselben Geräts.
-
Eine allgemeine elektronische Verarbeitungsumgebung besteht aus einer Hardwareschicht, die Hardwareressourcen wie RAM und CPU bereitstellt, einer Hypervisor-Schicht, die den Betrieb einer oder mehrerer virtueller Maschinen verwaltet, einer Supervisor-Schicht, die mit einem Betriebssystem (Operating System) jeder virtuellen Maschine bestückt ist, und einer Anwendungsschicht, auf der die Anwendungssoftware läuft. Der Hypervisor, als oberstes Steuerprogramm in dieser Struktur, verteilt Ressourcen auf den in der unteren Schicht implementierten Supervisor oder Anwendungssoftware und akzeptiert die Kommunikation mit externen Geräten.
-
Der Virtualisierungsverwaltungsteil in der vorliegenden Erfindung kann ein Hypervisor oder ein Supervisor sein. Unter der Berücksichtigung der Minimierung der Verzögerung, die bei der Weiterleitung von Interruptinformationen auftritt, ist es jedoch wünschenswert, den Virtualisierungsverwaltungsteil als Hypervisor zu realisieren.
-
Obwohl in der vorliegenden Beschreibung eine Ausführungsform unter der Annahme des Hypervisors als Beispiel für den Virtualisierungsverwaltungsteil erläutert wird, ist die vorliegende Erfindung nicht darauf beschränkt und kann auch derart ausgebildet sein, dass ein anderer Virtualisierungsverwaltungsteil als der Hypervisor verwendet wird.
-
Wie vorgenannt, neigen Anwendungen in der verteilten Computerumgebung wie der Cloud dazu, weniger hardwareabhängig zu sein (nachstehend ggf. als „Hardware-Abhängigkeit“ bezeichnet), und solange physische Ressourcen verfügbar sind, erfolgt es generell, die Anwendungen von einem Gerät auf ein anderes zu übertragen, aus Gründen wie einer Verbesserung der Qualität der Erfahrung (Quality of Experience), einer Verbesserung der Effizienz der Ressourcenverwendung usw. In Automobilnetzwerken laufen die Anwendungen jedoch in Verbindung mit dedizierten Hardwares wie Kameras, Sensoren, GPU (Graphic Processing Unit), FPGA (Field Programmable Gate Array) usw. und aufgrund der hohen Hardware-Abhängigkeit kann die Verbindung zu den zusammengearbeiteten Hardwares unterbrochen werden, wenn eine Anwendung übertragen wird.
-
Die Anwendungsübertragung im Automobilnetzwerk ist ein wichtiger Bestandteil zur Realisierung der nächsten Generation der Automobilarchitektur. Um eine solche Architektur zu ermöglichen, ist eine Technik erforderlich, das Interruptsignal flexibel und schnell weiterleiten kann und die Anwendungen frei übertragen kann.
-
Folglich zielt die vorliegende Erfindung auf eine flexible und schnelle Übertragung der Anwendung von einem Hardware-Gerät auf ein anderes Hardware-Gerät, ohne die Verbindung zwischen dem Hardware-Gerät und der Anwendung zu unterbrechen, indem ein Interruptsignal, das zwischen dem Hardware-Gerät und der Anwendung erzeugt wird, durch einen Interrupt-Weiterleitungsteil, der im Virtualisierungsverwaltungsteil (z. B. Hypervisor) implementiert wird, an eine Zielanwendung weitergeleitet wird. Konkret löst die vorliegende Erfindung diese Aufgabe durch Verwendung des Virtualisierungsverwaltungsteils (d. h. eines Hypervisors), der in jedem SOC eines in einem Fahrzeug installierten Fahrzeugsteuergeräts implementiert ist. D. h. ein Virtualisierungsverwaltungsteil jedes SOC weist einen Speicherteil auf, der eine Abbildungstabelle verwaltet, die aus mehreren Räumen mit voneinander unabhängigen Namen (nachstehend auch als „Namensräume“ bezeichnet) besteht. Dieser Speicherteil ist ein Speichermedium zum Ablegen der vorgenannten Abbildungstabelle in einer für den Interrupt-Weiterleitungsteil zugreifbaren Form, und der Speicherteil kann wie z. B. durch ein Halbleiterspeicherelement wie RAM (Random Access Memory) und Flash-Speicher (Flash Memory) oder eine Festplatte, eine optische Platte usw. realisiert werden.
-
Der vorgenannte Namensraum umfasst einen IRQ-Namensraum, der einen IRQ (Interrupt Service Request) unterscheidet, einen Anwendungsnamensraum (nachstehend als A-Namensraum bezeichnet), der die Anwendung, die auf dem Hypervisor im System betrieben wird, eindeutig identifiziert, einen Hypervisor-Namensraum (nachstehend als „H-Namensraum“ bezeichnet), der den Hypervisor im SoC implementiert wird, eindeutig identifiziert, und einen Datenübertragungspfad-Namensraum (nachstehend auch als „Verbindungsnamensraum“ bezeichnet), der dem SoC zur Verfügung stehende Übertragungspfade spezifiziert.
-
Dieser IRQ-Namensraum, H-Namensraum, A-Namensraum und Verbindungsnamensraum dienen jeweils als ein erster Identifier zur eindeutigen Identifizierung der Interruptinformationen vom Fahrzeuggerät, ein zweiter Identifier zur eindeutigen Identifizierung des Virtualisierungsverwaltungsteils, ein dritter Identifier zur eindeutigen Identifizierung der Anwendung und ein vierter Identifier zur eindeutigen Identifizierung der Verbindung (also der Netzwerkpfade), über die die Interruptinformationen gesendet werden.
-
Die vorgenannte Abbildungstabelle ist eine Tabelle zur Abbildung eines Namensraums auf einen anderen Namensraum und umfasst eine Von-IRQ-Namen-bis-A-Namen-Tabelle, eine Von-A-Namen-bis-H-Namen-Tabelle und eine Von-H-Namen-bis-Verbindungstabelle. Wenn ein Interruptsignal von einem Fahrzeuggerät erzeugt wird, kann der Interrupt-Weiterleitungsteil unter Bezugnahme auf diese Abbildungstabellen ein Steuergerät spezifizieren, an das das erzeugte Interruptsignal weitergeleitet werden soll, und das Interruptsignal übertragen. Hierdurch wird die Kommunikation zwischen dem Fahrzeuggerät, das das Interruptsignal erzeugt hat, und der Anwendung, die das Fahrzeuggerät verwaltet, nicht unterbrochen, selbst wenn die Anwendung an ein anderes Steuergerät übertragen wird als das Steuergerät, das physisch mit dem Fahrzeuggerät verbunden ist.
-
Im Folgenden wird unter Bezugnahme auf die Zeichnungen ein Ausführungsbeispiel der vorliegenden Erfindung erläutert. Die Erfindung wird durch dieses Ausführungsbeispiel nicht eingeschränkt. In der Beschreibung der Zeichnungen sind die gleichen Teile mit dem gleichen Bezugszeichen versehen.
-
(Erste Ausführungsform)
-
1 ist eine schematische Darstellung eines Automobilnetzwerks 100 in einer ersten Ausführungsform der vorliegenden Erfindung. Wie in 1 gezeigt, umfasst das Automobilnetzwerk 100 ein Fahrzeuggerät 105 und Fahrzeugsteuergeräte 110, 120, 130, 140.
-
Hierbei sind die Fahrzeugsteuergeräte Geräte, die in einem Automobil montiert sind und verschiedene Systeme im Automobil unter Verwendung von elektronischen Schaltkreisen einheitlich steuern. Ein Fahrzeugsteuergerät kann z. B. eine ECU (Electronic Control Unit) sein, die verschiedene Funktionen des Systems steuert, wie z. B. die Brennkraftmaschine, den Motor, die Messgeräte, das Getriebe, die Bremsen, die Airbags, die Lampen, die Servolenkung, die elektrischen Fensterheber, die Autoklimaanlage, den fahrzeugseitigen Empfänger des elektronischen Schlüssels, das Autoradio, die Autonavigation usw. Jedes dieser Fahrzeugsteuergeräte weist ein oder mehrere SOC (System-ona-Chip) auf. Jedes SOC wird auch mit einem oder mehreren Virtualisierungsverwaltungsteilen wie Hypervisor bestückt. Jeder dieser Virtualisierungsverwaltungsteile ist jeweils von einem Fahrzeugsteuergerät (z. B. ECU) mit unterschiedlichen Ausbildungen umfasst. Hier bedeutet der Ausdruck „Fahrzeugsteuergerät mit unterschiedlichen Ausbildungen“, dass jedes Fahrzeugsteuergerät physikalisch unabhängig voneinander ist. Die Hardware (z. B. Anzahl der CPUs, Speicherkapazität, Art der Sensoren) oder Software (z. B. Anwendungsfunktionen), die in jedem Fahrzeugsteuergerät bestückt sind, können sich von den anderen Fahrzeugsteuergeräten auch unterscheiden. Wie unten erwähnt, können durch Ablegen der Abbildungstabelle im Speicherteil des jeweiligen Fahrzeugsteuergeräts Interruptinformationen zwischen Fahrzeugsteuergeräten mit unterschiedlichen Ausbildungen weitergeleitet werden.
-
Jeder Virtualisierungsverwaltungsteil ist mit einer oder mehrere virtuellen Maschinen bestückt. Darüber hinaus ist jede virtuelle Maschine mit Anwendungen bestückt, die verschiedenen vorgenannten Systeme des Fahrzeugs steuern. Diese Anwendungen umfassen z. B. eine Anwendung zur Erkennung der Motortemperatur, eine Anwendung, die eine am Fahrzeug montierte Kamera veranlasst, ein Bild aufzunehmen, eine Anwendung zur Spezifizierung eines Hindernisses im aufgenommenen Bild usw. Obwohl hier ein Automobil mit vier Fahrzeugsteuergeräten als Beispiel erläutert wird, ist die vorliegende Erfindung nicht darauf beschränkt, und kann ein Automobil sein, das mit mehr Fahrzeugsteuergeräten oder weniger Fahrzeugsteuergeräten ausgestattet ist.
-
Hierbei ist ein Fahrzeuggerät ein dediziertes Gerät, das in einem Automobil montiert wird und dazu dient, eine vorgegebene Funktion auszuführen. Die Fahrzeuggeräte umfassen z. B. eine Kamera, ein Thermometer, einen Fahrgeschwindigkeitssensor, einen Luftdrucksensor, einen Batteriespannungssensor usw. Jedes dieser Fahrzeuggeräte 105 ist mit einem einzigen Fahrzeugsteuergerät verbunden und wird von diesem gesteuert. Diese Fahrzeuggeräte 105 können sowohl nicht modifizierbare Geräte (Geräte, die ein beliebiges Programm nicht ausführen können), als auch modifizierbare Geräte sein (Geräte, die ein beliebiges Programm ausführen können).
-
Wie später erwähnt, ist der Verarbeitungsablauf anders als bei Verwendung eines nicht modifizierbaren Geräts, da das modifizierbare Gerät einige der Funktionen des Interrupt-Weiterleitungsteils übernehmen kann. Die Verarbeitung und der Ablauf im Falle der Verwendung eines nicht modifizierbaren Geräts und der Verarbeitungsablauf im Falle der Verwendung eines modifizierbaren Geräts werden unter Bezugnahme auf 4 und 7 erläutert.
-
Als nächstes wird unter Bezugnahme auf 2 die Abbildungstabelle in der vorliegenden Ausführungsform erläutert. Die in 2 gezeigte Abbildungstabelle ist ein Beispiel für eine Abbildungstabelle in einem Fall, in dem ein nicht modifizierbares Gerät als Fahrzeuggerät verwendet wird.
-
Wie in 2 gezeigt, umfasst die Abbildungstabelle in der vorliegenden Ausführungsform Von-IRQ-bis-A-Namen-Tabellen 1142, 3142, die anzeigen, welcher Anwendung ein bestimmter IRQ (in der Interruptinformation enthaltene Verarbeitungsanforderung) entspricht, Von-A-Namen-bis-H-Namen-Tabellen 1143, 3143, die anzeigen, vom welchem Hypervisor die jeweiligen Anwendungen gesteuert werden, und Von-H-Namen-bis-Verbindungstabellen 1144, 3144, die den Zugangsweg der jeweiligen Hypervisoren anzeigen. Diese Abbildungstabellen können in dem Interrupt-Weiterleitungsteil auch abgelegt werden, den die in jedem Fahrzeugsteuergerät implementierte Hypervisor-Schicht aufweist.
-
Bspw. können die Abbildungstabellen 1142, 1143 und 1144 in dem in 3 gezeigten Fahrzeugsteuergerät 1300 und die Abbildungstabellen 3142, 3143 und 3144 in dem Fahrzeugsteuergerät 3300 abgelegt sein (nicht dargestellt). Hierdurch kann der Interrupt-Weiterleitungsteil, wenn ein Interruptsignal vom Fahrzeuggerät erzeugt wird, unter Bezugnahme auf diese Abbildungstabellen das Ziel spezifizieren, an das der Interrupt weitergeleitet werden soll.
-
Wenn z. B. ein Interruptsignal vom Fahrzeuggerät erzeugt wird, verweist der Interrupt-Weiterleitungsteil zunächst auf die Von-IRQ-bis-A-Namen-Tabelle 1142 und spezifiziert die Anwendung, die dem Interrupt entspricht (z. B. eine Anwendung, die dem A-Namen 1212 entspricht). Nach der Spezifizierung der Anwendung verweist der Interrupt-Weiterleitungsteil auf die Von-A-Namen-bis-H-Namen-Tabelle 1143 und spezifiziert den Hypervisor, in dem die spezifizierte Anwendung implementiert ist (z. B. der Hypervisor, der dem H-Namen 1141 entspricht).
-
Nach der Spezifizierung des Hypervisors verweist der Interrupt-Weiterleitungsteil auf die Von-H-Namen-bis-Verbindungstabelle 1144 und spezifiziert eine Verbindung (z. B. Verbindung 1031) zum Zugreifen auf den spezifizierten Hypervisor. Dies ermöglicht der Interrupt-Weiterleitungsteil, das erzeugte Interruptsignal über den Hypervisor an die Anwendung weiterzuleiten, der das Interruptsignal entspricht.
-
Als nächstes wird unter Bezugnahme auf 3 das Datenverarbeitungssystem der vorliegenden Erfindung erläutert. 3 zeigt ein Datenverarbeitungssystem - zur Weiterleitung eines Interruptsignals von einem nicht modifizierbaren Fahrzeuggerät an eine Anwendung in der ersten Ausführungsform der vorliegenden Erfindung.
-
Das Datenverarbeitungssystem der vorliegenden Ausführungsform umfasst ein Fahrzeugsteuergerät 1300, ein Fahrzeuggerät 2300 und ein Fahrzeugsteuergerät 3300, wie in 3 gezeigt. Wie vorgenannt, handelt es sich bei den Fahrzeugsteuergeräten 1300, 3300 um Geräte, die verschiedene Systeme in einem Automobil unter Verwendung von elektronischen Schaltkreisen einheitlich steuern. Beim Fahrzeuggerät 2300 handelt es sich um ein Gerät zur Ausführung vorgegebener Funktionen wie Kamera, Thermometer, Fahrgeschwindigkeitssensor, Luftdrucksensor usw.
-
Das Fahrzeugsteuergerät umfasst ferner CPU 1010 und CPU 1020. Obwohl ein Fahrzeugsteuergerät mit zwei CPUs in 3 als Beispiel gezeigt ist, ist die Anzahl der CPUs in der vorliegenden Erfindung nicht beschränkt und die Ausbildung kann n CPUs umfassen.
-
Das Fahrzeugsteuergerät 1300 kann mit externen Geräten des Fahrzeuggerätes 2300 und des Fahrzeugsteuergerätes 3300 verbunden werden und kann einen Informationskommunikationsteil 1030 zur Kommunikation mit den externen Geräten umfassen. Der Informationskommunikationsteil 1030 dient zum Datenaustausch mit anderen Geräten im Automobilnetzwerk und umfasst eine Verbindung 1031. Die Verbindung 1031 ist eine IO-Schnittstelle zur Ein- und Ausgabe von Daten mit externen Geräten.
-
Die „1031“ der Verbindung 1031 dient als vierter Identifier, der den Netzwerkpfad zum Fahrzeugsteuergerät 1300 eindeutig identifiziert. In 3 ist eine Ausbildung gezeigt, in der das Fahrzeugsteuergerät 1300, das Fahrzeuggerät 2300 und das Fahrzeugsteuergerät 3300 jeweils miteinander verbunden sind, jedoch ist die Ausbildung, in der das Fahrzeuggerät 2300 und das Fahrzeugsteuergerät 3300 nicht miteinander verbunden sind, oder die Ausbildung, in der das Fahrzeugsteuergerät 1300 und das Fahrzeuggerät 2300 nicht miteinander verbunden sind, auch möglich.
-
Das Fahrzeugsteuergerät 1300 weist einen Hypervisor 1100 auf, der einen Interrupt-Weiterleitungsteil 1140 umfasst. Der Interrupt-Weiterleitungsteil 1140 umfasst, wie vorgenannt, eine Von-IRQ-bis-A-Namen-Tabelle 1142, eine Von-A-Namen-bis-H-Namen-Tabelle 1143 und eine Von-H-Namen-bis-Verbindungstabelle 1144, und ist ein Rechner, der ein vom Fahrzeuggerät erzeugtes Interruptsignal weiterleitet. Dieser Rechner ist ein Softwaremodul, das logische Operationen, Quadratur-Operationen usw. vornimmt, und kann in einem Virtualisierungsverwaltungsteil wie Hypervisor 1100 auch umfasst werden. Hier bedeutet der Ausdruck „umfassen“, dass die Funktion des Rechners vom Virtualisierungsverwaltungsteil verarbeitet wird. Konkret werden sowohl Fälle, in denen der Rechner im Wesentlichen vom Virtualisierungsverwaltungsteil gesteuert wird, obwohl der Rechner nicht im Virtualisierungsverwaltungsteil implementiert ist, als auch Fälle, in denen der Rechner im Virtualisierungsverwaltungsteil implementiert ist und vom Virtualisierungsverwaltungsteil gesteuert wird. Auf diese Weise kann durch die Implementierung des Rechners im Virtualisierungsverwaltungsteil die Verarbeitung zur Weiterleitung der Interruptinformation in der Hypervisor-Schicht vorgenommen und eine durch die Interrupt-Weiterleitung verursachte Verzögerung minimiert werden.
-
Der Hypervisor 1100 erzeugt unter Verwendung von Ressourcen wie CPU 1010, CPU 1020 und Speicher 1040 usw. eine Virtualisierungsumgebung 1200. Die Virtualisierungsumgebung 1200 ist ein logischer Raum dazu, die physischen Ressourcen des Fahrzeugsteuergeräts 1300 zu abstrahieren und die virtuellen Maschinen oder Anwendungen unabhängig voneinander durchführen zu lassen. In der Virtualisierungsumgebung 1200 werden Betriebssysteme wie Windows und Linux als Supervisor 1210, 1220 implementiert. In den jeweiligen Supervisor 1210, 1220 sind die Anwendungen 1211, 1222 implementiert. Wie vorgenannt, können diese Anwendungen 1211, 1222 Programme sein, die die vom Fahrzeuggerät 2300 erhaltenen Rohdaten verarbeiten.
-
Die jeweiligen Anwendungen 1211, 1222 können ferner derart ausgebildet werden, dass sie unabhängig voneinander gleichzeitig arbeiten. Darüber hinaus ist, wie in 3 gezeigt, jede Anwendung 1211, 1222 dem A-Namen zur eindeutigen Identifizierung im Netzwerk zugeordnet. Bspw. ist die Anwendung 1211 dem A-Namen 1212 und die Anwendung 1222 dem A-Namen 1222 zugeordnet. Wie vorgenannt, werden diese A-Namen in der Abbildungstabelle des Interrupt-Weiterleitungsteils 1140 abgelegt und zur Spezifizierung des Hypervisors und der Anwendung verwendet, an die das Interruptsignal weitergeleitet werden soll.
-
Wie vorgenannt, ist das Fahrzeuggerät 2300 ein dediziertes Gerät zur Ausführung vorgegebener Funktionen wie Kamera, Thermometer, Fahrgeschwindigkeitssensor, Luftdrucksensor usw. Wie in 3 gezeigt, umfasst das Fahrzeuggerät 2300 einen Informationskommunikationsteil 2030. Der Informationskommunikationsteil 2030 dient zum Datenaustausch mit anderen Geräten im Automobilnetzwerk, wie der Informationskommunikationsteil 1030 des Fahrzeugsteuergeräts 1300, und weist eine Verbindung 2031 auf. Diese Verbindung 2031 ist eine IO-Schnittstelle zur Ein- und Ausgabe von Daten mit externen Geräten.
-
Die „2031“ der Verbindung 2031 dient als vierter Identifier zur eindeutigen Identifizierung des Fahrzeugsteuergeräts 2300. In der vorliegenden Ausführungsform ist das Fahrzeuggerät 2300 ein nicht modifizierbares Gerät, das keine programmierbare Schnittstelle aufweist, und weist daher lediglich die Funktion auf, Rohdaten zu erhalten und an das Fahrzeugsteuergerät zu senden. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt und das Fahrzeuggerät 2300 kann auch mit anderen Funktionen ausgebildet werden.
-
Wie vorgenannt, ist das Fahrzeugsteuergerät 3300 ein Gerät, das verschiedene Systeme in einem Automobil unter Verwendung elektronischer Schaltkreise einheitlich steuert. Da die Struktur und die Funktionen des Fahrzeugsteuergeräts 3300 im Wesentlichen mit denen des Fahrzeugsteuergeräts 1300 gleich sind, wird auf eine detaillierte Erläuterung derselben Bestandteile verzichtet. Das Fahrzeugsteuergerät 3300 umfasst, wie das Fahrzeugsteuergerät 1300, physische Ressourcen wie CPU und Speicher, einen Hypervisor und eine Virtualisierungsumgebung. Der Hypervisor des Fahrzeugsteuergeräts 3300 und die im Hypervisor arbeitenden Anwendungen werden ferner wie beim Fahrzeugsteuergerät 1300 durch den H-Namen als zweiter Identifier und den A-Namen als dritter Identifier identifiziert.
-
Als nächstes wird unter Bezugnahme auf 4 die Verarbeitung zur Aufrechterhaltung der Kommunikation zwischen der Anwendung und dem Fahrzeuggerät durch Weiterleitung eines Interruptsignals erläutert. 4 ist ein Flussdiagramm, das die Funktionsweise zur Weiterleitung eines Interruptsignals von einem nicht modifizierbaren Fahrzeuggerät an eine Anwendung in der ersten Ausführungsform der vorliegenden Erfindung zeigt.
-
In der folgenden Erläuterung wird das Zeichen „#“ im Sinne der Bezeichnung eines Zielgerätes/Zielfunktionsteils verwendet, wobei es sich hierbei um ein beliebiges Bezugszeichen handeln kann.
-
Die in 4 gezeigte Interrupt-Weiterleitungsverarbeitung erfolgt, wenn eine Anwendung von einem Hypervisor auf einen Hypervisor eines anderen Fahrzeugsteuergeräts übertragen wird. Diese Verarbeitung wird bspw. vorgenommen, wenn eine Anwendung (z. B. Anwendung 1211 in 3), die von einer Kamera (z. B. Fahrzeuggerät 2300 in 3) erhaltene Videodaten analysiert, vom Hypervisor des ursprünglichen Fahrzeugsteuergeräts (z. B. Hypervisor des Fahrzeugsteuergeräts 3300 in 3) auf einen Hypervisor eines anderen Fahrzeugsteuergeräts (z. B. Hypervisor 1100 des Fahrzeugsteuergeräts 1300 in 3) übertragen wird. Diese Anwendungsübertragung kann auch aus Gründen wie der Verbesserung der Verwendungseffizienz der gesamten Systemressourcen, der Verbesserung von QoS (Quality of Service) für Kunden usw. vorgenommen werden.
-
Der konkrete Schritt zur Durchführung der Anwendungsübertragung und das Ziel, auf das die Anwendung übertragen wird, kann in Abhängigkeit von Einschränkungen wie Ressourcenauslastung des Automobilnetzwerks, Anwendungsverfügbarkeit, Netzwerklast, Zeit usw. den Umständen entsprechend festgelegt werden und ist hier nicht beschränkt. Bei der vorliegenden Erfindung kann die Anwendung den gleichen A-Namen aufweisen (d. h. der A-Name der Anwendung ändert sich vom Zeitpunkt des Starts bis zum Zeitpunkt der Beendigung nicht) und die vorgenannte Abbildungstabelle kann in jedem Hypervisor des Automobilnetzwerks abgelegt werden.
-
Als Beispiel können bekannte Algorithmen (z. B. path finding algorithm, loop-free routing algorithm, ideal link-state algorithm usw.) beim Starten des Automobilnetzwerks jedem Hypervisor melden, welcher Hypervisor im Netzwerk verwendet wird, und welcher Weg zum Zugreifen auf den Hypervisor mit einem bestimmten H-Namen verwendet werden soll, und die Abbildungstabelle aktualisieren. Durch periodische Durchführung dieser Algorithmen (in regelmäßigen Abständen, für jede Hinzufügung, Streichung und Änderung der Anwendung usw.) kann die Abbildungstabelle, die jeder Hypervisor aufweist, aktualisiert werden.
-
Wie in 4 gezeigt, erzeugt das Fahrzeuggerät (z. B. das in 3 gezeigte Fahrzeuggerät 2300) in Schritt 4000 eine Interruptinformation. Die Interruptinformation ist ein Signal, das die CPU auffordert, die aktuelle Verarbeitung zu unterbrechen und eine angegebene Verarbeitung gezwungenermaßen durchzuführen. Wenn es sich bei dem Fahrzeuggerät bspw. um eine Kamera handelt, kann das Fahrzeuggerät nach der Aufnahme eines Videobildes die Interruptinformation erzeugen, um die Anwendung zur Verarbeitung des aufgenommenen Bildes zu veranlassen.
-
Als nächstes sendet der Informationskommunikationsteil des Fahrzeuggerätes in Schritt 4001 die Interruptinformation über die Verbindung # an die vorgegebene Verbindung #. Als Beispiel kann der in 3 gezeigte Informationskommunikationsteil 2030 des Fahrzeuggerätes 2300 die Interruptinformation über die Verbindung 2031 an die Verbindung 3031 des Fahrzeugsteuergerätes 3300 senden.
-
Als nächstes empfängt die Verbindung # in Schritt 4002 die Interruptinformation vom Fahrzeuggerät.
-
Als nächstes sendet der Informationskommunikationsteil mit der Verbindung # in Schritt 4003 die empfangene Interruptinformation an den Interrupt-Weiterleitungsteil im derselben Fahrzeugsteuergerät.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 4004, ob die empfangene Interruptinformation den H-Namen-Metadaten, die den Zielhypervisor angeben, zugeordnet ist. Wenn die empfangene Interruptinformation den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, geht die Verarbeitung zu Schritt 4005 über. Wenn die empfangene Interruptinformation nicht den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, geht die Verarbeitung zu Schritt 4009 über.
-
Wenn die empfangene Interruptinformation nicht den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, liest der Interrupt-Weiterleitungsteil in Schritt 4009 die IRQ-Information aus der empfangenen Interruptinformation.
-
Als nächstes verweist der Interrupt-Weiterleitungsteil in Schritt 4010 unter Verwendung der in Schritt 4009 gelesenen IRQ-Information auf die Von-IRQ-bis-A-Namen-Tabelle # und sucht nach dem IRQ entsprechenden A-Namen.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 4011, ob der A-Name, der dem gelesenen IRQ entspricht, in der Von-IRQ-bis-A-Namen-Tabelle # vorhanden ist. Als Beispiel verweist der Interrupt-Weiterleitungsteil unter Verwendung der in Schritt 4009 gelesenen IRQ-Information auf die in 2 gezeigte Von-IRQ-bis-A-Namen-Tabelle 3142 und erhält den A-Namen 1212, der dem betreffenden IRQ entspricht. Wenn der A-Name, der dem empfangenen IRQ entspricht, in der Von-IRQ-bis-A-Namen-Tabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 4012 über, und andernfalls, wird die vorliegende Verarbeitung beendet.
-
Als nächstes ordnet der Interrupt-Weiterleitungsteil in Schritt 4012 den erhaltenen A-Namen der Interruptinformation zu. Konkret verleiht der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten, die den A-Namen angeben, der der Anwendung entspricht, die von der Interruptinformation verarbeitet werden soll. Als Beispiel kann der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten zuordnen, die den A-Namen 1212 angeben.
-
Als nächstes in Schritt 4013, um zu beurteilen, auf welchem Hypervisor die Anwendung läuft, die dem in Schritt 4011 erhaltenen A-Namen entspricht, verweist der Interrupt-Weiterleitungsteil unter Verwendung des erhaltenen A-Namens auf die Von-A-Namen-bis-H-Namen-Tabelle # und sucht nach dem H-Namen (d. h. dem Hypervisor), der dem betreffenden A-Namen entspricht.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 4014, ob der H-Name, der dem erhaltenen A-Namen entspricht, in der Von-A-Namen-bis-H-Namen-Tabelle # vorhanden ist. Als Beispiel verweist der Interrupt-Weiterleitungsteil unter Verwendung der in Schritt 4011 gelesenen IRQ-Information auf die in 2 gezeigte Von-A-Namen-bis-H-Namen-Tabelle 3144 und erhält den H-Namen 1141, der dem betreffenden A-Namen 1212 entspricht. Wenn der H-Name, der dem empfangenen A-Namen entspricht, in der Von-A-Namen-bis-H-Namen-Tabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 4015 über, und andernfalls, wird die vorliegende Verarbeitung beendet.
-
Als nächstes ordnet der Interrupt-Weiterleitungsteil in Schritt 4015 den erhaltenen H-Namen der Interruptinformation zu. Konkret verleiht der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten, die den H-Namen angeben, der dem Hypervisor einschließlich der Anwendung entspricht, die von der Interruptinformation verarbeitet werden soll. Als Beispiel kann der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten zuordnen, die den H-Namen 1141 angeben.
-
Nach der Zuordnung des A-Namens und des H-Namens zu der Interruptinformation kehrt die aktuelle Verarbeitung zu Schritt 4005 zurück. In Schritt 4005 extrahiert der Interrupt-Weiterleitungsteil den H-Namen (den in Schritt 4015 zugeordneten H-Namen) aus der Interruptinformation. Als Beispiel kann der Interrupt-Weiterleitungsteil den H-Namen 1141 aus der Interruptinformation extrahieren.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 4006 unter Verwendung des extrahierten H-Namens, ob der Hypervisor, der die Interruptinformation empfangen hat, derselbe Hypervisor ist wie der durch den H-Namen angegebene Hypervisor (d. h., ob die Zielanwendung im selben Gerät wie der Hypervisor, der die Interruptinformation empfangen hat, implementiert ist). Wenn der Hypervisor, der die Interruptinformation empfangen hat, derselbe Hypervisor ist wie der im entsprechenden H-Namen angegebene Hypervisor (d. h. der Hypervisor, der die Interruptinformation empfangen hat, ist der Zielhypervisor und, so dass die Weiterleitung an ein anderes Steuergerät nicht notwendig ist), geht die vorliegende Verarbeitung zu Schritt 4007 über und andernfalls geht die vorliegende Verarbeitung zu Schritt 4016 über.
-
Wenn es sich bei dem Hypervisor, der die Interruptinformation empfangen hat, um denselben Hypervisor handelt wie der im entsprechenden H-Namen angegebene Hypervisor, extrahiert der Interrupt-Weiterleitungsteil in Schritt 4007 den A-Namen, der der Interruptinformation in Schritt 4012 zugeordnet wird, aus der Interruptinformation. Als Beispiel kann der Interrupt-Weiterleitungsteil den A-Namen 1212 aus der Interruptinformation extrahieren.
-
Als nächstes sendet der Interrupt-Weiterleitungsteil in Schritt 4015 die empfangene Interruptinformation an die Anwendung mit dem extrahierten A-Namen. Hierbei ist der Hypervisor, der die Interruptinformation empfangen hat, derselbe wie der durch den H-Namen angegebene Hypervisor, so dass die Anwendung mit dem extrahierten A-Namen dasselbe Fahrzeugsteuergerät ist wie der betreffende Hypervisor, und es ist nicht erforderlich, auf die Von-H-Namen-bis-Verbindungstabelle zu verweisen.
-
Wenn in Schritt 4006 festgestellt wird, dass es sich bei dem Hypervisor, der die Interruptinformation empfangen hat, nicht um den durch den H-Namen angegebenen Hypervisor handelt, verweist der Interrupt-Weiterleitungsteil in Schritt 4016 unter Verwendung des extrahierten H-Namens auf die Von-H-Namen-bis-Verbindungstabelle # und sucht nach der dem H-Namen entsprechenden Verbindung #.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 4017, ob die dem extrahierten H-Namen entsprechende Verbindung # in der Von-H-Namen-bis-Verbindungstabelle # vorhanden ist. Als Beispiel verweist der Interrupt-Weiterleitungsteil unter Verwendung des in Schritt 4005 extrahierten H-Namens 1141 auf die in 2 gezeigte Von-H-Namen-bis-Verbindungstabelle 3143 und erhält die Verbindung 1031, die die dem betreffenden H-Namen entsprechende Verbindung # ist. Wenn der dem empfangenen H-Namen entsprechende Verbindung #-Name in der Von-H-Namen-bis-Verbindungstabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 4018 über, und andernfalls, wird die vorliegende Verarbeitung beendet.
-
Als nächstes sendet der Interrupt-Weiterleitungsteil in Schritt 4018 unter Verwendung des Informationskommunikationsteils # die Interruptinformation an die in Schritt 4017 erhaltene Verbindung #. Als Beispiel sendet der Interrupt-Weiterleitungsteil die in 3 gezeigte Interruptinformation über die Verbindung 3031 des Fahrzeugsteuergerätes 3300 (in 3 nicht dargestellt) an die Verbindung 1031 des Fahrzeugsteuergerätes 1300.
-
Als nächstes empfängt in Schritt 4019 der Informationskommunikationsteil des Zielfahrzeugsteuergeräts die in Schritt 4018 über die Verbindung # gesendete Interruptinformation und sendet sie an den Interrupt-Weiterleitungsteil im gleichen -Fahrzeugsteuergerät. Als Beispiel sendet der Informationskommunikationsteil 1030 des Fahrzeugsteuergeräts 1300 die empfangene Interruptinformation über die Verbindung 1031 an den Interrupt-Weiterleitungsteil 1140. Als nächstes kann der Interrupt-Weiterleitungsteil, der die Interruptinformation empfangen hat, die Interruptinformation unter Verwendung des H-Namens und des A-Namens, die der Interruptinformation zugeordnet sind, an die Anwendung weiterleiten, an die die Interruptinformation gesendet werden soll, indem die vorgenannten Verarbeitungen ab Schritt 4003 vorgenommen werden.
-
Durch die Verwendung des vorgenannten Interrupt-Weiterleitungsteils und der Abbildungstabelle wird die Kommunikation zwischen dem Fahrzeuggerät, das das Interruptsignal erzeugt hat, und der Anwendung, die das Fahrzeuggerät verwaltet, durch die Weiterleitung des Interruptsignals vom Fahrzeuggerät nicht unterbrochen, selbst wenn die Anwendung von einem Steuergerät auf ein anderes Steuergerät übertragen wird.
-
(Zweite Ausführungsform)
-
Als nächstes wird unter Bezugnahme auf die 5 bis 7 die Abbildungstabelle in einer zweiten Ausführungsform erläutert.
-
Die in 5 gezeigte Abbildungstabelle zeigt ein Beispiel einer Abbildungstabelle im Fall, in dem ein modifizierbares Gerät als Fahrzeuggerät verwendet wird.
-
Wie in 5 gezeigt, umfasst die Abbildungstabelle in der vorliegenden Ausführungsform Von-IRQ-bis-A-Namen-Tabellen 1152, 2152, die angeben, welcher Anwendung ein bestimmter IRQ entspricht, und Von-A-Namen-bis-H-Namen-Tabellen 1153, 2153, die angeben, von welchem Hypervisor jede Anwendung gesteuert wird, und Von-H-Namen-bis-Verbindungstabellen 1154, 2154, die die Verbindungen (d. h. Wege) für den Zugriff auf die jeweiligen Hypervisor angeben. Diese Abbildungstabellen können in dem Interrupt-Weiterleitungsteil auch abgelegt werden, den die in jedem Fahrzeugsteuergerät implementierte Hypervisor-Schicht aufweist.
-
Bspw. können die Abbildungstabellen 1152, 1153 und 1154 in dem in 6 gezeigten Fahrzeugsteuergerät 1300 und die Abbildungstabellen 2152, 2153 und 2154 in dem Fahrzeugsteuergerät 3300 abgelegt sein (als Beispiel nicht dargestellt). Hierdurch kann der Interrupt-Weiterleitungsteil, wenn ein Interruptsignal vom Fahrzeuggerät erzeugt wird, unter Bezugnahme auf diese Abbildungstabellen das Ziel spezifizieren, an das der Interrupt weitergeleitet werden soll.
-
Wie nachstehend erläutert, ist das Datenverarbeitungssystem (siehe 6) gemäß der vorliegenden Ausführungsform mit einem modifizierbaren Fahrzeuggerät versehen, das einen Teil der Verarbeitung zur Weiterleitung von Interruptinformation übernimmt, so dass sich die Ausbildung der Abbildungstabelle in der vorliegenden Ausführungsform von der Abbildungstabelle in Ausführungsform 1 unterscheidet. Konkret unterscheidet sich die Abbildungstabelle in der vorliegenden Ausführungsform von der Abbildungstabelle in Ausführungsform 1 dadurch, dass die Abbildungstabelle in der vorliegenden Ausführungsform einen H-Namen (z. B. H-Name 2141), der das modifizierbare Fahrzeuggerät identifiziert, und eine Verbindung 2031 aufweist, die als Ein-/Ausgabeschnittstelle des modifizierbaren Fahrzeuggeräts dient. Durch die Verwendung einer solchen Abbildungstabellenkonfiguration kann das modifizierbare Fahrzeuggerät einen Teil der Verarbeitung zur Weiterleitung von Interruptinformation übernehmen und noch effizienter ausgeführt werden als das Datenverarbeitungssystem gemäß der Ausführungsform 1.
-
Als nächstes wird unter Bezugnahme auf 6 das Datenverarbeitungssystem gemäß der vorliegenden Erfindung erläutert. 6 zeigt ein Datenverarbeitungssystem zur Weiterleitung eines Interruptsignals vom modifizierbaren Fahrzeuggerät an eine Anwendung in der zweiten Ausführungsform der vorliegenden Erfindung.
-
Das Datenverarbeitungssystem gemäß der vorliegenden Ausführungsform umfasst ein Fahrzeugsteuergerät 1300, ein Fahrzeuggerät 2500 und ein Fahrzeugsteuergerät 3300, wie in 6 dargestellt. Wie vorgenannt, handelt es sich bei den Fahrzeugsteuergeräten 1300, 3300 um Geräte, die verschiedene Systeme in einem Automobil unter Verwendung von elektronischen Schaltkreisen einheitlich steuern. Das Fahrzeuggerät 2500 ist ferner ein dediziertes Gerät zur Ausführung vorgegebener Funktionen wie Kamera, Thermometer, Fahrgeschwindigkeitssensor, Luftdrucksensor usw.
-
Das Datenverarbeitungssystem gemäß der zweiten Ausführungsform unterscheidet sich vom Datenverarbeitungssystem gemäß der zweiten Ausführungsform dadurch, dass es anstelle des nicht modifizierbaren Fahrzeuggerätes 2300 ein modifizierbares Fahrzeuggerät 2500 aufweist. Konkret unterscheidet sich das Fahrzeuggerät 2500 vom Fahrzeuggerät 2300, das lediglich Rohdaten erhält und sendet, und umfasst neben dem Informationskommunikationsteil 2030 und der Verbindung 2031 auch einen Interrupt-Weiterleitungsteil 2140, einen H-Namen 2141, einen Von-IRQ-bis-A-Namen-Tabelle 2142, einen Von-A-Namen-bis-H-Namen-Tabelle 2143 und einen Von-H-Namen-bis-Verbindungstabelle 2144. Da das modifizierbare Fahrzeuggerät 2500 einen Teil der Interrupt-Weiterleitungsverarbeitung (d. h. die Verarbeitung zur Bestimmung des Hypervisors, an den die Interruptinformation zu senden ist) vornehmen kann, kann die Verarbeitung zur Weiterleitung des Interruptsignals noch effizienter vorgenommen werden als das Datenverarbeitungssystem gemäß der ersten Ausführungsform.
-
Die Ausbildung des Datenverarbeitungssystems gemäß der zweiten Ausführungsform ähnelt der des Datenverarbeitungssystems gemäß der ersten Ausführungsform, abgesehen davon, dass es ein modifizierbares Fahrzeuggerät 2500 anstelle eines nicht modifizierbaren Fahrzeuggeräts 2300 aufweist. Daher wird die Erläuterung von Bestandteilen, die im Wesentlichen mit dem Datenverarbeitungssystem gemäß der ersten Ausführungsform identisch sind, hier nicht wiederholt.
-
Als nächstes wird unter Bezugnahme auf 7 die Verarbeitung zur Aufrechterhaltung der Kommunikation zwischen der Anwendung und dem Fahrzeuggerät durch Weiterleitung des Interruptsignals erläutert. 7 ist ein Flussdiagramm, das den Betrieb zur Weiterleitung des Interruptsignals vom modifizierbaren Fahrzeuggerät (z. B. das in 6 gezeigte modifizierbare Fahrzeuggerät 2500) an eine Anwendung in einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Das in 7 gezeigte Flussdiagramm unterscheidet sich von der in 4 gezeigten Verarbeitung dadurch, dass die Verarbeitung zur Bestimmung des Hypervisors, an den die Interruptinformation zu senden ist, von dem (modifizierbaren) Fahrzeuggerät vorgenommen wird. Dadurch, dass die Verarbeitung zur Bestimmung des Hypervisors, an den die Interruptinformation zu senden ist, vom Fahrzeuggerät vorgenommen wird, ist es möglich, die Zeit zur Lieferung der Interruptinformation an den Zielhypervisor zu verkürzen und Ressourcen wie CPU usw. zu sparen.
-
In der folgenden Erläuterung wird das Zeichen „#“ im Sinne der Bezeichnung eines Zielgerätes/Zielfunktionsteils verwendet, wobei es sich hierbei um ein beliebiges Bezugszeichen handeln kann.
-
Die in 7 gezeigte Interrupt-Weiterleitungsverarbeitung erfolgt, wenn eine Anwendung von einem Hypervisor zu einem Hypervisor eines anderen Fahrzeugsteuergeräts übertragen wird. Diese Verarbeitung wird bspw. vorgenommen, wenn eine Anwendung (z. B. Anwendung 1211 in 6), die von einer Kamera (z. B. Fahrzeuggerät 2500 in 6) erhaltene Videodaten analysiert, vom Hypervisor des ursprünglichen Fahrzeugsteuergeräts (z. B. Hypervisor des Fahrzeugsteuergeräts 3300 in 6) auf einen Hypervisor eines anderen Fahrzeugsteuergeräts (z. B. Hypervisor 1100 des Fahrzeugsteuergeräts 1300 in 6) übertragen wird. Diese Anwendungsübertragung kann auch aus Gründen wie der Verbesserung der Verwendungseffizienz der gesamten Systemressourcen, der Verbesserung von QoS (Quality of Service) für Kunden usw. vorgenommen werden.
-
Wie vorgenannt, kann der konkrete Schritt zur Durchführung der Anwendungsübertragung und das Ziel, auf das die Anwendung übertragen wird, in Abhängigkeit von Einschränkungen wie Ressourcenauslastung des Automobilnetzwerks, Anwendungsverfügbarkeit, Netzwerklast, Zeit usw. den Umständen entsprechend festgelegt werden und ist hier nicht beschränkt. Bei der vorliegenden Erfindung kann die Anwendung den gleichen A-Namen aufweisen (d. h. der A-Name der Anwendung ändert sich vom Zeitpunkt des Starts bis zum Zeitpunkt der Beendigung nicht) und die vorgenannte Abbildungstabelle kann in jedem Hypervisor des Automobilnetzwerks abgelegt werden. Als Beispiel können bekannte Algorithmen (z. B. path finding algorithm, loop-free routing algorithm, ideal link-state algorithm usw.) beim Starten des Automobilnetzwerks jedem Hypervisor melden, welcher Hypervisor im Netzwerk verwendet wird, und welcher Weg zum Zugreifen auf den Hypervisor mit einem bestimmten H-Namen verwendet werden soll, und die Abbildungstabelle aktualisieren. Durch periodische Durchführung dieser Algorithmen (in regelmäßigen Abständen, für jede Hinzufügung, Streichung und Änderung der Anwendung usw.) kann die Abbildungstabelle, die jeder Hypervisor aufweist, aktualisiert werden.
-
Wie in 7 gezeigt, erzeugt das Fahrzeuggerät (z. B. das in 6 gezeigte Fahrzeuggerät 2500) in Schritt 5000 eine Interruptinformation. Die Interruptinformation ist ein Signal, das die CPU auffordert, die aktuelle Verarbeitung zu unterbrechen und eine angegebene Verarbeitung gezwungenermaßen durchzuführen. Wenn es sich bei dem Fahrzeuggerät bspw. um eine Kamera handelt, kann das Fahrzeuggerät nach der Aufnahme eines Videobildes die Interruptinformation erzeugen, um die Anwendung zur Verarbeitung des aufgenommenen Bildes zu veranlassen.
-
Als nächstes sendet das Fahrzeuggerät, das die Interruptinformation erzeugt hat, in Schritt 5001 die Interruptinformation an den Interrupt-Weiterleitungsteil in dem Fahrzeuggerät. Als Beispiel sendet das in 6 gezeigte Fahrzeuggerät 2500 die Interruptinformation an den Interrupt-Weiterleitungsteil 2140 des Fahrzeuggeräts 2500.
-
Als nächstes beurteilt in Schritt 5002 der Interrupt-Weiterleitungsteil (z. B. der Interrupt-Weiterleitungsteil 2140 des in 6 gezeigten Fahrzeuggerätes 2500), der die Interruptinformation empfangen hat, ob die empfangene Interruptinformation den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben. Wenn die empfangene Interruptinformation den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, geht die vorliegende Verarbeitung zu Schritt 5003 über. Wenn die empfangene Interruptinformation nicht den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, geht die vorliegende Verarbeitung zu Schritt 5007 über.
-
Wenn die empfangene Interruptinformation nicht den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben, liest der Interrupt-Weiterleitungsteil in Schritt 5007 die IRQ-Information aus der empfangenen Interruptinformation.
-
In Schritt 5008 verweist der Interrupt-Weiterleitungsteil unter Verwendung der in Schritt 5007 gelesenen IRQ-Information auf die Von-IRQ-bis-A-Namen-Tabelle # und sucht nach dem A-Namen, der dem betreffenden IRQ entspricht.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 5009, ob der A-Name, der dem gelesenen IRQ entspricht, in der Von-IRQ-bis-A-Namen-Tabelle # vorhanden ist. Als Beispiel verweist der Interrupt-Weiterleitungsteil unter Verwendung der in Schritt 5007 gelesenen IRQ-Information auf die in 6 gezeigte Von- IRQ-bis-A-Namen-Tabelle 2152 und erhält den A-Namen 1222, der dem betreffenden IRQ entspricht. Wenn der A-Name, der dem empfangenen IRQ entspricht, in der Von-IRQ-bis-A-Namen-Tabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 5010 über, und wenn der A-Name, der dem empfangenen IRQ entspricht, nicht in der Von-IRQ-bis-A-Namen-Tabelle # vorhanden ist, wird die vorliegende Verarbeitung beendet.
-
Als nächstes ordnet der Interrupt-Weiterleitungsteil in Schritt 5010 den erhaltenen A-Namen der Interruptinformation zu. Konkret verleiht der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten, die den A-Namen angeben, der der Anwendung entspricht, die von der Interruptinformation verarbeitet werden soll. Als Beispiel kann der Interrupt-Weiterleitungsteil 2140 der Interruptinformation Metadaten zuordnen, die den A-Namen 1222 angeben.
-
Als nächstes in Schritt 5011, um zu beurteilen, auf welchem Hypervisor die Anwendung läuft, die dem in Schritt 5008 erhaltenen A-Namen entspricht, verweist der Interrupt-Weiterleitungsteil unter Verwendung des erhaltenen A-Namens auf die Von-A-Namen-bis-H-Namen-Tabelle # und sucht nach dem H-Namen (d. h. dem Hypervisor), der dem betreffenden A-Namen entspricht.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 5012, ob der H-Name, der dem erhaltenen A-Namen entspricht, in der Von-A-Namen-bis-H-Namen-Tabelle # vorhanden ist. Als Beispiel verweist der Interrupt-Weiterleitungsteil 2140 unter Verwendung der in Schritt 5007 gelesenen IRQ-Information auf die in 6 gezeigte Von-A-Namen-bis-H-Namen-Tabelle 2153 und erhält den H-Namen 1141, der dem betreffenden A-Namen 1222 entspricht. Wenn der H-Name, der dem empfangenen A-Namen entspricht, in der Von-A-Namen-bis-H-Namen-Tabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 5013 über, und andernfalls, wird die vorliegende Verarbeitung beendet.
-
Als nächstes ordnet der Interrupt-Weiterleitungsteil in Schritt 5013 den erhaltenen H-Namen der Interruptinformation zu. Konkret verleiht der Interrupt-Weiterleitungsteil der Interruptinformation Metadaten, die den H-Namen angeben, der dem Hypervisor einschließlich der Anwendung entspricht, die von der Interruptinformation verarbeitet werden soll. Als Beispiel kann der Interrupt-Weiterleitungsteil 2140 der Interruptinformation Metadaten zuordnen, die den H-Namen 1141 angeben.
-
Als nächstes kehrt die vorliegende Verarbeitung zu Schritt 5002 zurück und beurteilt, ob die empfangene Interruptinformation den H-Namen-Metadaten zugeordnet ist, die den Zielhypervisor angeben. Da in dieser Verarbeitung die H-Namen-Metadaten in Schritt 5013 der Interruptinformation zugeordnet sind, wird festgestellt, dass die H-Namen-Metadaten zugeordnet sind, und die vorliegende Verarbeitung geht zu Schritt 5003 über.
-
Als nächstes extrahiert der Interrupt-Weiterleitungsteil in Schritt 5003 den H-Namen (H-Name, der in Schritt 5013 zugeordnet ist) aus der Interruptinformation. Als Beispiel kann der Interrupt-Weiterleitungsteil den H-Namen 1141 aus der Interruptinformation extrahieren.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 5004 unter Verwendung des extrahierten H-Namens, ob der Hypervisor, der die Interruptinformation empfangen hat, derselbe Hypervisor ist wie der durch den H-Namen angegebene Hypervisor (d. h., ob die Zielanwendung im selben Gerät implementiert ist wie der Hypervisor, der die Interruptinformation empfangen hat). Wenn der Hypervisor, der die Interruptinformation empfangen hat, derselbe Hypervisor ist wie der durch den zugeordneten H-Namen angegebene Hypervisor (d. h. der Hypervisor, der die Interruptinformation empfangen hat, ist der Zielhypervisor, so dass eine Weiterleitung an ein anderes Steuergerät nicht notwendig ist), geht die vorliegende Verarbeitung zu Schritt 5005 über und andernfalls geht die vorliegende Verarbeitung zu Schritt 5014 über.
-
Wenn es sich bei dem Hypervisor, der die Interruptinformation empfangen hat, um denselben Hypervisor handelt wie der durch den zugeordneten H-Namen angegebene Hypervisor, extrahiert der Interrupt-Weiterleitungsteil in Schritt 5005 den A-Namen, der der Interruptinformation in Schritt 5010 zugeordnet ist, aus der Interruptinformation. Als Beispiel kann der Interrupt-Weiterleitungsteil 2140 den A-Namen 1222 aus der Interruptinformation extrahieren.
-
Als nächstes sendet der Interrupt-Weiterleitungsteil in Schritt 5006 die empfangene Interruptinformation an die Anwendung mit dem extrahierten A-Namen und die vorliegende Verarbeitung wird beendet. Hierbei ist der Hypervisor, der die Interruptinformation empfangen hat, derselbe wie der durch den H-Namen angegebene Hypervisor, so dass die Anwendung mit dem extrahierten A-Namen dasselbe Fahrzeugsteuergerät ist wie der betreffende Hypervisor, und es ist nicht erforderlich, auf die Von-H-Namen-bis-Verbindungstabelle zu verweisen.
-
Wenn in Schritt 5004 festgestellt wird, dass es sich bei dem Hypervisor, der die Interruptinformation empfangen hat, nicht um den durch den H-Namen angegebenen Hypervisor handelt, geht die vorliegende Verarbeitung zu Schritt 5014 über. In Schritt 5014 verweist der Interrupt-Weiterleitungsteil unter Verwendung des extrahierten H-Namens auf die Von-H-Namen-bis-Verbindungstabelle # und sucht nach der dem H-Namen entsprechenden Verbindung #.
-
Als nächstes beurteilt der Interrupt-Weiterleitungsteil in Schritt 5015, ob die dem extrahierten H-Namen entsprechende Verbindung # in der Von-H-Namen-bis-Verbindungstabelle # vorhanden ist Als Beispiel verweist der Interrupt-Weiterleitungsteil 2140 unter Verwendung des in Schritt 5003 extrahierten H-Namens 1141 auf die in 6 gezeigte Von-H-Namen-bis-Verbindungstabelle 2154 und erhält die Verbindung 1031, die die dem betreffenden H-Namen entsprechende Verbindung # ist. Wenn der dem empfangenen H-Namen entsprechende Verbindung #-Name in der Von-H-Namen-bis-Verbindungstabelle # vorhanden ist, geht die vorliegende Verarbeitung zu Schritt 45016 über, und andernfalls, wird die vorliegende Verarbeitung beendet.
-
Als nächstes sendet der Interrupt-Weiterleitungsteil in Schritt 5016 unter Verwendung des Informationskommunikationsteils # die Interruptinformation an die in Schritt 5015 erhaltene Verbindung # des Zielfahrzeugsteuergeräts. Als Beispiel sendet der Interrupt-Weiterleitungsteil 2140 die in 6 gezeigte Interruptinformation über die Verbindung 2031 an die Verbindung 1031 des Fahrzeugsteuergerätes 1300.
-
Als nächstes empfängt in Schritt 5017 der Informationskommunikationsteil des Zielfahrzeugsteuergeräts die in Schritt 5016 über die Verbindung # gesendete Interruptinformation und sendet sie an den Interrupt-Weiterleitungsteil im gleichen Fahrzeugsteuergerät. Als Beispiel sendet der Informationskommunikationsteil 1030 des Fahrzeugsteuergeräts 1300 die empfangene Interruptinformation über die Verbindung 1031 an den Interrupt-Weiterleitungsteil 1140. Als nächstes kann der Interrupt-Weiterleitungsteil, der die Interruptinformation empfangen hat, die Interruptinformation unter Verwendung des H-Namens und des A-Namens, die der Interruptinformation zugeordnet sind, an die Anwendung weiterleiten, an die die Interruptinformation gesendet werden soll, indem die vorgenannten Verarbeitungen ab Schritt 5002 vorgenommen werden.
-
Auf diese Weise kann das Datenverarbeitungssystem gemäß der zweiten Ausführungsform die Zeit verkürzen, bis das Interruptsignal das Zielfahrzeugsteuergerät erreicht, und die Verarbeitungslast des Fahrzeugsteuergeräts verringern, indem die Interrupt-Weiterleitungsverarbeitung unter Verwendung des modifizierbaren Fahrzeuggerätes erfolgt, wodurch die Interrupt-Weiterleitungsverarbeitung im Vergleich zum Datenverarbeitungssystem gemäß der ersten Ausführungsform noch effizienter vorgenommen werden kann.
-
Als nächstes werden konkrete Beispiele für die Implementierung der Interrupt-Weiterleitung gemäß der vorliegenden Erfindung unter Verwendung der Ausführungsbeispiele 1 bis 4 erläutert.
-
[Ausführungsbeispiel 1]
-
In Ausführungsbeispiel 1 sind die vorgenannten Fahrzeugsteuergeräte (z. B. die in 3 gezeigten Fahrzeugsteuergeräte 1300, 3300) als SoCs auf einem Halbleitersockel montiert und durch ein Kommunikationsmedium wie PCIExpress miteinander verbunden. In einem solchen Fall sind in jedem SoC ein Hypervisor und ein Interrupt-Weiterleitungsteil implementiert und diese SoCs können Daten wie z. B. die Weiterleitung der Interruptinformation über PCIExpress austauschen, das als Informationskommunikationsteil dient (d. h. PCIExpress dient als Informationskommunikationsteil 1030 in 3).
-
[Ausführungsbeispiel 2]
-
In Ausführungsbeispiel 2 sind die vorgenannten Fahrzeugsteuergeräte (z. B. die in 3 gezeigte Fahrzeugsteuergeräte 1300, 3300) als ECU im Fahrzeug montiert und über das Bord-Ethernet mit anderen Geräten (andere ECU und Fahrzeuggeräte wie Kameras und Sensoren) verbunden. In einem solchen Fall sind der Hypervisor und der Interrupt-Weiterleitungsteil in jeder ECU implementiert und können die Interruptinformation über das Bord-Ethernet aneinander weiterleiten. Im vorliegenden Ausführungsbeispiel kann in jeder ECU mehrere Hypervisoren implementiert werden. In diesem Fall kann die Ausbildung derart ausgebildet werden, dass die Interrupt-Weiterleitung für jeden Hypervisor ein- und ausgeschaltet wird.
-
[Ausführungsbeispiel 3]
-
In diesem Ausführungsbeispiel 3 sind die vorgenannten Fahrzeugsteuergeräte (z. B. die in 3 gezeigten Fahrzeugsteuergeräte 1300, 3300) in verschiedenen Automobilen montiert. Diese Automobile sind durch drahtlose Kommunikation, wie LTEAdvanced oder 802. 11, miteinander verbunden. In solchen Fällen sind die Fahrzeuggeräte (z. B. das in 3 gezeigte Fahrzeuggerät 2300) lediglich mit einem einzigen Fahrzeugsteuergerät verbunden.
-
In diesem Fall wird in jedem Automobil ein Hypervisor oder ein Interrupt-Weiterleitungsteil implementiert, und der Hypervisor und der Interrupt-Weiterleitungsteil kann die Interruptinformation an eine in einem anderen Fahrzeug implementierte Anwendung über drahtlose Kommunikation wie das vorgenannte LTEAdvanced oder 802. 11 weiterleiten. Hierdurch kann die Anwendung auf ein anderes Automobil übertragen werden, während die Verbindung zum ursprünglichen Fahrzeuggerät im Automobil erhalten bleibt.
-
[Ausführungsbeispiel 4]
-
In diesem Ausführungsbeispiel 4 ist eines der vorgenannten Fahrzeugsteuergeräte (z. B. das in 3 gezeigte Fahrzeugsteuergerät 1300) am Automobil montiert und mit einem oder mehreren Fahrzeuggeräten (z. B. dem in 3 gezeigten Fahrzeuggerät 2300) verbunden. Die anderen Steuergeräte werden dann in einem Datenzentrum installiert und über ein Netzwerk wie z. B. das Internet mit dem im Automobil montierten Fahrzeugsteuergerät verbunden. Wenn in einem solchen Fall die Ressourcen des im Automobil montierten Steuergeräts nicht ausreichen, wird die im Automobil implementierte Anwendung an das im Datenzentrum installierte Steuergerät übertragen, und der Interrupt-Weiterleitungsteil des Automobils kann die Interruptinformation vom Fahrzeuggerät über das Internet an das im Datenzentrum installierte Steuergerät weiterleiten. Hierdurch kann die Anwendung Effekte erzielen, die Ressourcen des Steuergeräts im Datenzentrum zu nutzen, während die Verbindung zum ursprünglichen Fahrzeuggerät des Automobils aufrechterhalten wird, wodurch die Leistung der Anwendung verbessert wird.
-
Es wurden einige Ausführungsbeispiele der vorliegenden Erfindung erläutert, die jedoch zur Erläuterung der Erfindung dargestellt sind und nicht darauf abzielen, den Umfang der Erfindung auf lediglich diese Ausführungsbeispiele einzuschränken. Die vorliegende Erfindung kann auch in verschiedenen anderen Formen ausgeführt werden.
-
Bezugszeichenliste
-
- 105
- Fahrzeuggerät
- 110,120,130,140,150
- Fahrzeugsteuergerät
- 1100
- Hypervisor
- 1142,2152,3142
- Von-IRQ-bis-A-Namen-Tabelle
- 1143,2153,3143
- Von-A-Namen-bis-H-Namen-Tabelle
- 1144,2154,3144
- Von-H-Namen-bis-Verbindungstabelle
- 1300,3300
- Fahrzeugsteuergerät
- 2300
- nicht modifizierbares Fahrzeuggerät
- 2500
- modifizierbares Fahrzeuggerät
-
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
-