DE112019000308T5 - Computer program product and computing unit - Google Patents

Computer program product and computing unit Download PDF

Info

Publication number
DE112019000308T5
DE112019000308T5 DE112019000308.9T DE112019000308T DE112019000308T5 DE 112019000308 T5 DE112019000308 T5 DE 112019000308T5 DE 112019000308 T DE112019000308 T DE 112019000308T DE 112019000308 T5 DE112019000308 T5 DE 112019000308T5
Authority
DE
Germany
Prior art keywords
application
operating system
app
hypervisor
cpu
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
DE112019000308.9T
Other languages
German (de)
Inventor
Jairo Lopez
Tomohito Ebina
Kazuyoshi Serizawa
Takehiko Nagano
Ryosuke Hayashi
Takuro Mori
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 Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of DE112019000308T5 publication Critical patent/DE112019000308T5/en
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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • 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/45587Isolation or security of virtual machine instances

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)
  • Stored Programmes (AREA)

Abstract

Hypervisor, der in einem Computerprogrammprodukt aufgezeichnet ist, ist ein Hypervisor, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung realisieren können, und von mehreren CPUs betrieben wird, versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, wobei die Bewegungsverwaltungseinheit auf der Basis des Typs der CPU, die das zweite Betriebssystem durchführt, eine Programmdatei zum Realisieren der zweiten Anwendung auswählt.Hypervisor recorded in a computer program product is a hypervisor that provides a virtual environment that can run multiple operating systems that can realize an application, and is operated by multiple CPUs, provided with: a monitoring unit for monitoring the working status of the multiple operating systems , a motion management unit that operates a second application with a similar function to the first application in the second operating system instead of a first application being executed in the first operating system based on the working state, the motion management unit operating on the basis of the type of CPU that executes the second operating system, selects a program file for implementing the second application.

Description

Technisches GebietTechnical area

Die vorliegende Erfindung betrifft ein Computerprogrammprodukt, das einen Hypervisor aufzeichnet, und eine Recheneinheit.The present invention relates to a computer program product which records a hypervisor, and to a computing unit.

HintergrundtechnikBackground technology

In den letzten Jahren sind Bordgeräte, die in Fahrzeugen montiert sind und die Berechnung vornehmen, mehr von Bedeutung. Für die Berechnungsverarbeitung in den Bordgeräten ist eine hohe Verfügbarkeit erfordert, und wenn irgendein Problem in einem bestimmten Gerät oder einem Abschnitt des Geräts auftritt, wird aufgefordert, dass ein anderes Gerät oder ein anderer Abschnitt des Geräts eine ähnliche Verarbeitung vornimmt, also eine sogenannte Migration ist gefordert. Demgegenüber nimmt die Datenmenge zu, die von den Bordgeräten verarbeitet wird, und es ist gefordert, die Rechenleistung zu erhöhen. Herkömmlicherweise wurde die Erhöhung der Rechenleistung durch Beschleunigung der Betriebsfrequenz des Prozessors erreicht. In den letzten Jahren besteht jedoch die Neigung, dass aufgrund der Probleme der Verlangsamung der Miniaturisierungsgeschwindigkeit des Herstellungsprozesses und der Erhöhung der mit der Miniaturisierung verbundenen Wärmemenge eine Konfiguration aus kombinierten CPUs von verschiedenen Typen ausgewählt wird. Das Patentdokument 1 offenbart ein Fahrzeugsteuersystem, umfassend:

  • eine erste elektronische Steuereinheit und eine zweite elektronische Steuereinheit, welche eine Gemeinschaftsverarbeitung zum Steuern einer fahrzeugmontierten Vorrichtung, die in einem Fahrzeug montiert ist, durchführen, wobei: die erste elektronische Steuereinheit und die zweite elektronische Steuereinheit jeweils Anwendungsprogramme zum Durchführen der Gemeinschaftsverarbeitung aufweisen; die erste elektronische Steuereinheit ein erstes OS-Programm aufweist; die zweite elektronische Steuereinheit ein zweites OS-Programm aufweist; das erste OS-Programm und das zweite OS-Programm in Kooperation miteinander unter einer vorbestimmten Rollenzuteilung arbeiten und als Basissoftware für die jeweiligen Anwendungsprogramme zur Gemeinschaftsverarbeitung dienen, die in Kooperation miteinander durchgeführt werden sollen; das in der zweiten elektronischen Steuereinheit installierte zweite OS-Programm eine zugeteilte Rolle aufweist, die aus unterschiedlichen Rollen ausgewählt ist; das in der ersten elektronischen Steuereinheit installierte erste OS-Programm derart ausgestaltet ist, dass die dem ersten OS-Programm zugeteilte Rolle änderbar ist, sodass das erste OS-Programm eine Operation zusammenwirkend mit dem zweiten OS-Programm durchführen kann, selbst wenn irgendeine der verschiedenen Rollen dem zweiten OS-Programm zugeteilt ist; und die erste elektronische Steuereinheit umfasst: eine Erwerbungseinheit, welche Informationen über die dem zweiten OS-Programm zugeteilte Rolle von der zweiten elektronischen Steuereinheit erwirbt, und eine Bestimmungseinheit, welche auf der Basis der Informationen, welche von der Erwerbungseinheit erworben werden und die dem zweiten OS-Programm zugeteilte Rolle angeben, die Rolle bestimmt, welche dem ersten OS-Programm zugeteilt werden soll, sodass das erste OS-Programm in Kooperation mit dem zweiten OS-Programm arbeiten kann.
In recent years, on-board devices that are mounted in vehicles and do the calculation have become more important. A high availability is required for the calculation processing in the on-board units, and if any problem occurs in a certain unit or a section of the unit, a request is made that another unit or section of the unit carry out similar processing, i.e. a so-called migration required. In contrast, the amount of data that is processed by the on-board devices increases, and it is necessary to increase the computing power. Conventionally, the increase in computing power has been achieved by accelerating the operating frequency of the processor. In recent years, however, there is a tendency that a configuration of combined CPUs of various types is selected because of problems of slowing down the miniaturization speed of the manufacturing process and increasing the amount of heat associated with miniaturization. Patent Document 1 discloses a vehicle control system comprising:
  • a first electronic control unit and a second electronic control unit that perform community processing for controlling a vehicle-mounted device mounted on a vehicle, wherein: the first electronic control unit and the second electronic control unit each have application programs for performing the community processing; the first electronic control unit has a first OS program; the second electronic control unit has a second OS program; the first OS program and the second OS program work in cooperation with one another under a predetermined role allocation and serve as basic software for the respective application programs for joint processing that are to be carried out in cooperation with one another; the second OS program installed in the second electronic control unit has an assigned role selected from different roles; the first OS program installed in the first electronic control unit is configured such that the role assigned to the first OS program can be changed so that the first OS program can perform an operation cooperatively with the second OS program even if any of the different ones Roles are assigned to the second OS program; and the first electronic control unit comprises: an acquisition unit that acquires information on the role assigned to the second OS program from the second electronic control unit, and a determination unit that is based on the information acquired by the acquisition unit and that of the second OS - Specify the role assigned to the program, the role determines which is to be assigned to the first OS program so that the first OS program can work in cooperation with the second OS program.

Ermittelter SchriftIdentified font

PatentdokumentPatent document

Patentdokument 1: JP Patentoffenlegungsschrift Nr. 2017-128308 Patent Document 1: JP Patent Laid-Open No. 2017-128308

Übersicht der ErfindungOverview of the invention

Zu lösende Aufgabe der ErfindungObject to be solved by the invention

In der in Patentdokument 1 angegebenen Erfindung kann eine Migration nicht realisiert werden, wenn CPUs von verschiedenen Typen verwendet werden.In the invention disclosed in Patent Document 1, migration cannot be realized when CPUs of different types are used.

Mittel zum Lösen der AufgabeMeans for solving the task

Ein Hypervisor, der in einem Computerprogrammprodukt gemäß einem ersten Aspekt der vorliegenden Erfindung aufgezeichnet ist, ist ein Hypervisor, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung realisieren können, und von mehreren CPUs betrieben wird, versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, und einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, wobei die Bewegungsverwaltungseinheit auf der Basis des Typs der CPU, die das zweite Betriebssystem durchführt, eine Programmdatei zum Realisieren der zweiten Anwendung auswählt.A hypervisor recorded in a computer program product according to a first aspect of the present invention is a hypervisor that provides a virtual environment capable of executing a plurality of operating systems capable of realizing an application and is operated by a plurality of CPUs provided with: a Monitoring unit for monitoring the working status of the plurality of operating systems, and a movement management unit that operates a second application with a similar function to the first application in the second operating system on the basis of the working status instead of a first application that is performed in the first operating system, wherein the movement management unit selects a program file for realizing the second application based on the type of CPU executing the second operating system.

Ein Hypervisor, der in einem Computerprogrammprodukt gemäß einem zweiten Aspekt der vorliegenden Erfindung aufgezeichnet ist, ist ein Hypervisor, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung durchführen können, und von mehreren CPUs betrieben wird, versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, Interrupt-Korrespondenzinformationen, die eine Korrespondenzbeziehung zwischen der Nummer einer Interrupt-Anforderung und dem Betriebssystem zeigen, und einer Interrupt-Übertragungseinheit, die Interrupt-Anforderung der dem Betriebssystem entsprechenden Nummer auf der Basis der Interrupt-Korrespondenzinformationen überträgt, und, wenn die Bewegungsverwaltungseinheit die zweite Anwendung betreibt, das erste Betriebssystem in den Interrupt-Korrespondenzinformationen auf das zweite Betriebssystem umschreibt.A hypervisor recorded in a computer program product according to a second aspect of the present invention is a hypervisor that provides a virtual environment capable of executing a plurality of operating systems capable of executing an application and operated by a plurality of CPUs provided with: a Monitoring unit for monitoring the working status of the plurality of operating systems, a movement management unit that operates a second application with a similar function to the first application in the second operating system based on the working status instead of a first application executed in the first operating system, interrupt correspondence information, which show a correspondence relation between the number of an interrupt request and the operating system, and an interrupt transmission unit that exercises the interrupt request of the number corresponding to the operating system on the basis of the interrupt correspondence information r and, when the motion management unit operates the second application, rewrites the first operating system in the interrupt correspondence information to the second operating system.

Eine Recheneinheit gemäß einem dritten Aspekt der vorliegenden Erfindung ist eine Recheneinheit mit einem Hypervisor, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung durchführen können, und von mehreren CPUs betrieben wird, versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, wobei die Bewegungsverwaltungseinheit auf der Basis des Typs der CPU, die das zweite Betriebssystem durchführt, eine Programmdatei zum Realisieren der zweiten Anwendung auswählt.A computing unit according to a third aspect of the present invention is a computing unit with a hypervisor that provides a virtual environment that can run multiple operating systems that can run an application and is operated by multiple CPUs, provided with: a monitoring unit for monitoring the working status of the plurality of operating systems, a motion management unit that operates a second application with a similar function to the first application in the second operating system on the basis of the work status instead of a first application that is executed in the first operating system, the motion management unit based on the type of CPU executing the second operating system selects a program file for realizing the second application.

Effekte der ErfindungEffects of the invention

Gemäß der vorliegenden Erfindung kann eine Migration realisiert werden, selbst wenn CPUs von verschiedenen Typen verwendet werden.According to the present invention, migration can be realized even when CPUs of different types are used.

FigurenlisteFigure list

  • [1] 1 ist eine Konfigurationsansicht einer ECU 1000.[ 1 ] 1 Fig. 13 is a configuration view of an ECU 1000 .
  • [2] 2(a) und 2(b) sind Ansichten, die ein Beispiel einer App-Korrespondenztabelle 1150 zeigen.[ 2 ] 2 (a) and 2 B) are views showing an example of an app correspondence table 1150 demonstrate.
  • [3] 3 (a) und 3 (b) sind Ansichten, die ein Beispiel einer Interrupt-Korrespondenztabelle 1141 zeigen.[ 3 ] 3 (a) and 3 (b) are views showing an example of an interrupt correspondence table 1141 demonstrate.
  • [4] 4 ist eine Ansicht, die ein Beispiel einer App-Bewegungstabelle 1121 zeigt.[ 4th ] 4th Fig. 13 is a view showing an example of an app movement table 1121 shows.
  • [5] 5 ist ein Flussdiagramm, das den Betrieb einer Mikrokernel-Abstraktionseinheit 1110 zeigt.[ 5 ] 5 Figure 3 is a flow diagram illustrating the operation of a microkernel abstraction unit 1110 shows.
  • [6] 6 ist eine Ansicht, die zeigt, wie eine Programmdatei, die einen Hypervisor 1100 realisiert, der ECU 1000 über ein Aufzeichnungsmedium oder ein Datensignal in einem abgewandelten Beispiel bereitgestellt wird.[ 6th ] 6th Fig. 3 is a view showing how a program file that a hypervisor 1100 realized the ECU 1000 is provided via a recording medium or a data signal in a modified example.

Ausführungsformen der ErfindungEmbodiments of the invention

Erste AusführungsformFirst embodiment

Im Folgenden wird eine erste Ausführungsform eines Hypervisors gemäß der vorliegenden Erfindung unter Bezugnahme auf 1 bis 5 erläutert. Der Hypervisor, der eine Software ist, kann in verschiedenen Recheneinheiten realisiert werden, jedoch in der vorliegenden Ausführungsform wird ein Beispiel erläutert, in dem der Hypervisor in der ECU, also in einer elektronischen Steuereinheit (Electronic Control Unit) vorgesehen ist.A first embodiment of a hypervisor according to the present invention is described below with reference to FIG 1 to 5 explained. The hypervisor, which is software, can be implemented in various computing units, but in the present embodiment an example is explained in which the hypervisor is provided in the ECU, that is to say in an electronic control unit.

(Konfiguration der ECU 1000)(Configuration of the ECU 1000 )

1 ist eine Konfigurationsansicht einer ECU 1000 mit einem Hypervisor 1100 gemäß der vorliegenden Erfindung. Die ECU 1000 besteht aus einer Hardwareschicht 100, einem Hypervisor 1100 und einer virtuellen Umgebung 1200. Die Hardwareschicht 100 besteht aus mehreren Hardwareteilen, und die Funktionen des Hypervisors 1100 werden durch die in der Hardwareschicht 100 enthaltene Hardware realisiert. Die virtuelle Umgebung 1200 ist eine Umgebung, die vom Hypervisor 1100 realisiert wird, und ein Betriebssystem (nachstehend als „OS“ bezeichnet) und eine Anwendung (im Folgenden als „App“ bezeichnet) arbeiten in der virtuellen Umgebung 1200. D. h., die virtuelle Umgebung 1200 wird auch durch die in der Hardwareschicht 100 enthaltene Hardware realisiert. 1 Fig. 13 is a configuration view of an ECU 1000 with a hypervisor 1100 according to the present invention. The ECU 1000 consists of a hardware layer 100 , a hypervisor 1100 and a virtual environment 1200 . The hardware layer 100 consists of several hardware parts and the functions of the hypervisor 1100 are through those in the hardware layer 100 implemented hardware. The virtual environment 1200 is an environment created by the hypervisor 1100 is realized, and an operating system (hereinafter referred to as “OS”) and an application (hereinafter referred to as “app”) operate in the virtual environment 1200 . That is, the virtual environment 1200 is also through those in the hardware layer 100 implemented hardware.

(Hardwareschicht 100)(Hardware layer 100 )

Die Hardwareschicht 100 ist mit einer ersten CPU 11, einer zweiten CPU 12, einer dritten CPU 13, einem Speicher 20 und einem Flash-Speicher 30 versehen. Die erste CPU 11, die zweite CPU 12 und die dritte CPU 13 sind zentrale Recheneinheiten und arbeiten unabhängig voneinander. Die erste CPU 11, die zweite CPU 12 und die dritte CPU 13 weisen voneinander unterschiedliche Hardwarekonfigurationen auf. Bspw. unterscheidet sich mindestens eine von einem durchführbaren Befehlssatz, einer Registerkonfiguration und einer Betriebsfrequenz. Obwohl 1 drei CPUs zeigt, kann die ECU 1000 mindestens zwei CPUs mit unterschiedlichen Hardwarekonfigurationen enthalten.The hardware layer 100 is with a first CPU 11 , a second CPU 12 , a third CPU 13 , a memory 20th and a flash memory 30th Mistake. The first CPU 11 , the second CPU 12 and the third CPU 13 are central processing units and work independently of one another. The first CPU 11 , the second CPU 12 and the third CPU 13 have different hardware configurations from each other. E.g. at least one differs from a feasible instruction set, a register configuration and an operating frequency. Even though 1 shows three CPUs, the ECU can 1000 contain at least two CPUs with different hardware configurations.

Der Speicher 20 ist ein flüchtiger lesbarer/schreibbarer Speicherbereich, ein sogenannter RAM, und auf den jede oben erwähnte CPU zugreift. Der Speicher 20 umfasst einen Bereich, auf den lediglich jede einzelne CPU zugreifen kann, und einen gemeinsamen Speicher 21, der ein Bereich ist, auf den alle CPUs zugreifen können. D. h., die erste CPU 11, die zweite CPU 12 und die dritte CPU 13 können Informationen über den gemeinsamen Speicher 21 miteinander austauschen. Der Flash-Speicher 30 ist ein nichtflüchtiger Speicherbereich. Im Flash-Speicher 30 werden Programmdateien abgelegt, die einen Hypervisor, mehrere OS und mehrere Apps realisieren.The memory 20th is a volatile readable / writable memory area, a so-called RAM, which is accessed by every CPU mentioned above. The memory 20th comprises an area that can only be accessed by each individual CPU and a shared memory 21st , which is an area that all CPUs can access. That is, the first CPU 11 , the second CPU 12 and the third CPU 13 can get information about the shared memory 21st exchange with each other. The flash memory 30th is a non-volatile memory area. In flash memory 30th program files are stored that implement a hypervisor, several OS and several apps.

(Virtuelle Umgebung 1200)(Virtual environment 1200 )

In der virtuellen Umgebung 1200 werden OS durchgeführt und Apps in diesen OS durchgeführt. Bspw. werden, wie in 1 gezeigt, in einer virtuellen Umgebung 1200 ein erstes OS 1211, ein zweites OS 1212 und ein drittes OS 1213 durchgeführt. Das erste OS 1211 wird von der ersten CPU 11 durchgeführt, das zweite OS 1212 wird von der zweiten CPU 12 durchgeführt und das dritte OS 1213 wird von der dritten CPU 13 durchgeführt. Jedes OS kann Anwendungen durchführen. Im Folgenden wird die Kombination aus CPU und OS als „Umgebung“ oder „Durchführungsumgebung“ bezeichnet. Selbst wenn dasselbe OS verwendet wird und die durchzuführenden CPUs unterschiedlich sind, wird bspw. festgestellt, dass die Umgebung unterschiedlich ist.In the virtual environment 1200 OS are performed and apps are performed in this OS. E.g. as in 1 shown in a virtual environment 1200 a first OS 1211 , a second OS 1212 and a third OS 1213 carried out. The first OS 1211 is from the first CPU 11 performed the second OS 1212 is used by the second CPU 12 performed and the third OS 1213 is used by the third CPU 13 carried out. Any OS can run applications. In the following, the combination of CPU and OS is referred to as "environment" or "implementation environment". For example, even if the same OS is used and the CPUs to be executed are different, it is determined that the environment is different.

(Programmdatei der App)(Program file of the app)

In der vorliegenden Ausführungsform ist eine App ein Computerprogramm, das eine bestimmte Funktion entwickelt. D. h., wenn die zu realisierenden Funktionen dieselben sind, werden sie als dieselbe App behandelt, selbst wenn der Inhalt der Anwendung, d. h. die Programmdatei, unterschiedlich ist. D. h., ob die Apps gleich sind oder nicht, wird ohne Berücksichtigung des verwendeten Befehlscodes usw. beurteilt. Streng genommen ist jedoch bei unterschiedlichen Programmdateien auch denkbar, dass die durch Lesen der Programmdateien durchgeführten Apps nicht gleich sind.In the present embodiment, an app is a computer program that develops a specific function. That is, if the functions to be realized are the same, they will be treated as the same app even if the content of the application, i. H. the program file, is different. That is, whether the apps are the same or not is judged regardless of the command code used, etc. Strictly speaking, however, with different program files it is also conceivable that the apps executed by reading the program files are not the same.

Hier wird der Inhalt der Anwendung, d. h. die Programmdatei, erläutert. Programmdateien werden auch als „durchführbare Dateien“ oder „Binärdaten“ bezeichnet. Die Programmdatei kann jedoch aus Textdaten bestehen, die von Menschen gelesen werden können. Wenn es sich bei der Programmdatei um Textdaten handelt, verfügt die ECU 1000 über eine Funktion, die einem Interpreter entspricht.The content of the application, ie the program file, is explained here. Program files are also known as "executable files" or "binary data". However, the program file can consist of text data that can be read by humans. If the program file is text data, the ECU has 1000 via a function that corresponds to an interpreter.

Grundsätzlich wird die Programmdatei für jedes OS und jede CPU vorbereitet. D. h., wenn die Durchführungsumgebungen unterschiedlich sind, müssen grundsätzlich unterschiedliche Programmdateien verwendet werden. Um eine bestimmte App auf mehreren CPUs und mehreren OS zu realisieren, ist es daher erforderlich, mehrere Programmdateien vorzubereiten. Wenn die Hardware jedoch kompatibel ist oder lediglich ein gemeinsamer Befehlssatz verwendet wird, kann eine Programmdatei ggf. in mehreren Durchführungsumgebungen verwendet werden.Basically, the program file is prepared for each OS and each CPU. In other words, if the implementation environments are different, different program files must be used. In order to implement a certain app on several CPUs and several OS, it is therefore necessary to prepare several program files. However, if the hardware is compatible, or if only a common set of instructions is used, a program file can be used in multiple execution environments if necessary.

2(a) und 2(b) sind Ansichten, die ein Beispiel einer später erläuterten App-Korrespondenztabelle 1150 zeigen. Hier wird zunächst die App-Korrespondenztabelle 1150 unter Bezugnahme auf 2(a) erläutert. Die erste Zeile in 2(a) zeigt an, dass die App zur Bildverarbeitung die Programmdatei „bin 01“ verwendet, um das Betriebssystem O1 unter Verwendung der CPU vom Typ C1 durchzuführen. D. h., 2 zeigt, dass acht Programmdateien von bin 01 bis bin 08 erforderlich sind, um die App zur Bildverarbeitung mit einer beliebigen Kombination von drei CPU-Typen und drei OS durchzuführen. Mit anderen Worten kann gesagt werden, dass die acht Programmdateien bin 01 bis bin 08 ähnliche Funktionen aufweisen. Ferner wird angegeben, dass dieselbe Programmdatei „bin 05“ in der Kombination der CPU vom Typ C2 und O2 und der Kombination der CPU vom Typ C3 und O2 verwendet werden kann. 2 (a) and 2 B) are views showing an example of an app correspondence table explained later 1150 demonstrate. First the app correspondence table 1150 with reference to 2 (a) explained. The first line in 2 (a) indicates that the image processing app is using the program file "bin 01" to control the operating system O1 using the CPU of type C1 perform. I.e. 2 shows that eight program files from bin 01 to bin 08 are required to run the image processing app with any combination of three CPU types and three OS. In other words, it can be said that the eight program files bin 01 to bin 08 have similar functions. It is also specified that the same program file "bin 05" in the combination of the CPU of the type C2 and O2 and the combination of the CPU type C3 and O2 can be used.

Der CPU-Typ für jede CPU wird im Voraus bestimmt und bspw. durch die Registerkonfiguration und den entsprechenden Befehlssatz bestimmt. Bspw. haben zwei CPUs, die sich lediglich in Betriebsfrequenzen unterscheiden, den gleichen Registertyp und den gleichen entsprechenden Befehlssatz und daher den gleichen CPU-Typ.The CPU type for each CPU is determined in advance and determined, for example, by the register configuration and the corresponding instruction set. E.g. have two CPUs, which only differ in their operating frequencies, the same register type and the same corresponding instruction set and therefore the same CPU type.

Im oben erwähnten Flash-Speicher 30 werden mehrere Programmdateien für jede App abgelegt, so dass die App in verschiedenen Kombinationen von OS und CPU durchgeführt werden kann. In der vorliegenden Ausführungsform wird eine bestimmte App nach Bedarf auf ein anderes OS in der virtuellen Umgebung 1200 bewegt, also migriert, um den Betrieb fortzusetzen. In der vorliegenden Ausführungsform wird die zu bewegende App als „zu verwaltende App“ bezeichnet. Die zu verwaltende App ist eine App, die eine Verarbeitung oder eine Funktion übernimmt, die die ECU 1000 hauptsächlich bezweckt. Die App zum Betreiben des OS ist nicht in den zu verwaltenden Apps enthalten.In the flash memory mentioned above 30th several program files are stored for each app so that the app can be run in different combinations of OS and CPU. In the present embodiment, a particular app is relocated to another OS in the virtual environment as needed 1200 moved, so migrated to continue operations. In the present embodiment, the app to be moved is referred to as “app to be managed”. The app to be managed is an app that takes on processing or a function that the ECU 1000 mainly intended. The app for operating the OS is not included in the apps to be managed.

In dem in 2(a) gezeigten Beispiel der App-Korrespondenztabelle 1150 ist die Korrespondenz zwischen den CPU-Typen und OS allumfassend gezeigt. Wenn jedoch das von der ECU 1000 durchgeführte OS für jeden CPU-Typ begrenzt ist, kann lediglich die durchzuführende Kombination des CPU-Typs und des OS in der App-Korrespondenztabelle 1150 auch angegeben werden, wie in 2(b) gezeigt. Zurück zu 1 wird die Erläuterung fortgesetzt.In the in 2 (a) Example of the app correspondence table shown 1150 the correspondence between the CPU types and OS is shown in full. However, if that from the ECU 1000 executed OS is limited for each CPU type, only the combination of the CPU type and the OS to be carried out in the app Correspondence table 1150 also be specified, as in 2 B) shown. Back to 1 the explanation continues.

(Hypervisor 1100)(Hypervisor 1100 )

Der Hypervisor 1100 ist mit einer Mikrokernel-Abstraktionseinheit 1110 und einem hardwareabhängigen Mikrokernel 1170 versehen. Der Hypervisor 1100 wird durch Zusammenarbeit der ersten CPU 11, der zweiten CPU 12 und der dritten CPU 13 durchgeführt. Mit anderen Worten wird die vom Hypervisor 1100 bereitgestellte Funktion durch den Betrieb jeder der drei CPUs realisiert.The hypervisor 1100 is with a microkernel abstraction unit 1110 and a hardware-dependent microkernel 1170 Mistake. The hypervisor 1100 becomes through cooperation of the first CPU 11 , the second CPU 12 and the third CPU 13 carried out. In other words, the hypervisor 1100 provided function realized by operating each of the three CPUs.

Der hardwareabhängige Mikrokernel 1170 ist mit einem ersten hardwareabhängigen Mikrokernel (im Folgenden als „erster HDM“ bezeichnet) 1171, der der ersten CPU 11 entspricht, und einem zweiten hardwareabhängigen Mikrokernel (im Folgenden als „zweiter HDM“ bezeichnet) 1172, der der zweiten CPU 12 entspricht, und einem dritten hardwareabhängigen Mikrokernel (im Folgenden als „dritter HDM“ bezeichnet) 1173 versehen, der der dritten CPU 13 entspricht.The hardware-dependent microkernel 1170 is with a first hardware-dependent microkernel (hereinafter referred to as “first HDM”) 1171, that of the first CPU 11 corresponds, and a second hardware-dependent microkernel (hereinafter referred to as “second HDM”) 1172, that of the second CPU 12 and a third hardware-dependent microkernel (hereinafter referred to as “third HDM”) 1173 is provided, that of the third CPU 13 corresponds.

Der erste HDM 1171 ist eine Software dafür, dass die erste CPU 11 die Funktion des Hypervisors 1100 realisiert. Bspw. schreibt der erste HDM 1171 den vom Hypervisor 1100 ausgegebenen Durchführungsbefehl in einen von der ersten CPU 11 durchführbaren Befehl um. Der zweite HDM 1172 ist eine Software dafür, dass die zweite CPU 12 die Funktion des Hypervisors 1100 realisiert. Der dritte HDM 1173 ist eine Software dafür, dass die dritte CPU 13 die Funktion des Hypervisors 1100 realisiert.The first HDM 1171 is software for that the first CPU 11 the function of the hypervisor 1100 realized. E.g. writes the first HDM 1171 the one from the hypervisor 1100 Execution instruction issued into one of the first CPU 11 executable command. The second HDM 1172 is a software for that the second CPU 12 the function of the hypervisor 1100 realized. The third HDM 1173 is software for that third CPU 13 the function of the hypervisor 1100 realized.

Der Hypervisor 1100 baut eine virtuelle Umgebung 1200 durch gegenseitige Kommunikation zwischen dem ersten HDM 1171, dem zweiten HDM 1172 und dem dritten HDM 1173 auf. Eine beliebige Anzahl von OS wird in der virtuellen Umgebung 1200 durchgeführt, und Anwendungen werden auf den OS durchgeführt. D. h., diese OS und Anwendungen werden von einer der CPUs durchgeführt. Die Anzahl der von einer CPU durchgeführten OS und Anwendungen ist beliebig.The hypervisor 1100 builds a virtual environment 1200 through mutual communication between the first HDM 1171 , the second HDM 1172 and the third HDM 1173 on. Any number of OS is in the virtual environment 1200 and applications are run on the OS. That is, these OS and applications are carried out by one of the CPUs. There is no limit to the number of OS and applications performed by a CPU.

Die Mikrokernel-Abstraktionseinheit 1110 ist mit einer App-Bewegungsverwaltungseinheit 1120, einer Überwachungseinheit 1160 und einer Interrupt-Übertragungseinheit 1140 versehen. Die Mikrokernel-Abstraktionseinheit 1110 speichert Informationen, die angeben, in welcher Umgebung die zu verwaltende App derzeitig arbeitet, im gemeinsamen Speicher 21. Die Interrupt-Übertragungseinheit 1140 weist eine Interrupt-Korrespondenztabelle 1141 auf, die ein hardwareabhängiges Interrupt-Anforderungssignal (Interrupt Request, nachstehend als „IRQ“ bezeichnet) verwaltet. IRQ sind mit Nummern versehen, um den Typ zu spezifizieren, und bspw. sind IRQ 1 bis IRQ 15 vorhanden. Die Interrupt-Korrespondenztabelle 1141 gibt an, an welches OS der virtuellen Umgebung 1200 jeder IRQ 0 bis IRQ 15 übertragen werden soll.The microkernel abstraction unit 1110 is with an app motion management unit 1120 , a monitoring unit 1160 and an interrupt transfer unit 1140 Mistake. The microkernel abstraction unit 1110 saves information that indicates the environment in which the app to be managed is currently working in the shared memory 21st . The interrupt transfer unit 1140 assigns an interrupt correspondence table 1141 that manages a hardware-dependent interrupt request signal (interrupt request, hereinafter referred to as "IRQ"). IRQs are numbered to specify the type, and for example, are IRQ 1 to IRQ 15th available. The interrupt correspondence table 1141 indicates to which OS of the virtual environment 1200 any IRQ 0 to IRQ 15th should be transferred.

3 ist eine Ansicht, die ein Beispiel der Interrupt-Korrespondenztabelle 1141 zeigt. 3(a) ist eine Ansicht, die ein Beispiel der Interrupt-Korrespondenztabelle 1141 in einem bestimmten Zustand zeigt, und 3(b) ist eine Ansicht, die die Interrupt-Korrespondenztabelle 1141 zeigt, nachdem diese durch eine später erläuterte Verarbeitung umgeschrieben wurde. Wie in 3 gezeigt, sind in der Interrupt-Korrespondenztabelle 1141 IRQ-Nummern von 0 bis 15 und die OS-Namen der Übertragungsziele abgelegt, die den jeweiligen IRQ-Nummern entsprechen. In dem in 3 gezeigten Beispiel ist allen IRQs ein OS zugewiesen, es kann jedoch eine IRQ-Nummer vorhanden sein, die kein Zuweisungsziel aufweist. 3 Fig. 13 is a view showing an example of the interrupt correspondence table 1141 shows. 3 (a) Fig. 13 is a view showing an example of the interrupt correspondence table 1141 shows in a certain state, and 3 (b) Fig. 13 is a view showing the interrupt correspondence table 1141 shows after being rewritten through processing to be explained later. As in 3 are shown in the interrupt correspondence table 1141 IRQ numbers from 0 to 15 and the OS names of the transmission destinations are stored that correspond to the respective IRQ numbers. In the in 3 In the example shown, an OS is assigned to all IRQs, but there may be an IRQ number that has no assignment target.

Die Überwachungseinheit 1160 nimmt für das in der virtuellen Umgebung 1200 durchgeführte OS, die zu verwaltende App, die arbeitet, und jede CPU der Hardwareschicht 100 periodisch ein Polling, d. h. die Abfragung von Betriebsinformationen vor. Die Überwachungseinheit 1160 gibt die abgefragten Informationen an die App-Bewegungsverwaltungseinheit 1120 aus. Die von der Überwachungseinheit 1160 abgefragten Informationen umfassen die CPU-Last in jedem OS, die freie Speicherkapazität, die Speichernutzung der zu verwaltenden App, die CPU-Last, und die Information, ob die CPU der Hardwareschicht 100 arbeitet.The monitoring unit 1160 takes for that in the virtual environment 1200 running OS, the app to be managed that is working, and each CPU of the hardware layer 100 periodically polling, ie the requesting of operating information. The monitoring unit 1160 gives the requested information to the app motion management unit 1120 out. The one from the monitoring unit 1160 The requested information includes the CPU load in each OS, the free memory capacity, the memory usage of the app to be managed, the CPU load, and the information whether the CPU of the hardware layer 100 is working.

Die App-Bewegungsverwaltungseinheit 1120 weist eine App-Bewegungstabelle 1121 und eine App-Korrespondenztabelle 1150 auf. Die App-Bewegungsverwaltungseinheit 1120 empfängt die durch Polling von der Überwachungseinheit 1160 erhaltenen Informationen und beurteilt, ob die zu verwaltende App bewegt werden soll oder nicht. Die App-Bewegungsverwaltungseinheit 1120 stellt fest, die zu verwaltende App zu bewegen, wenn das OS, auf dem die zu verwaltende App durchgeführt wird, gestoppt wird oder, wenn der Betrieb der zu verwaltenden App fehlerhaft ist.The app motion management unit 1120 assigns an app movement table 1121 and an app correspondence table 1150 on. The app motion management unit 1120 receives the polling from the monitoring unit 1160 received information and judges whether the app to be managed should be moved or not. The app motion management unit 1120 detects to move the app to be managed when the OS on which the app to be managed is running is stopped or when the operation of the app to be managed is faulty.

Die App-Bewegungsverwaltungseinheit 1120 stellt fest, dass das OS gestoppt wird, wenn z. B. die CPU, auf der das OS arbeitet, gestoppt wird. Ferner stellt die App-Bewegungsverwaltungseinheit 1120 fest, dass die zu verwaltende App fehlerhaft ist, wenn die Speichernutzung der zu verwaltenden App weiter zunimmt oder, wenn die CPU-Last der zu verwaltenden App 0% beträgt oder für eine vorbestimmte Zeit oder länger 100% beträgt. Dann bestimmt die App-Bewegungsverwaltungseinheit 1120 unter Bezugnahme auf die App-Korrespondenztabelle 1150 eine am Bewegungsziel durchzuführende Programmdatei, überträgt einen Interrupt und betreibt dann die zu verwaltende App am Bewegungsziel.The app motion management unit 1120 detects that the OS is stopped when e.g. B. the CPU on which the OS is working is stopped. Furthermore, the app provides motion management unit 1120 determines that the app to be managed is defective if the memory usage of the app to be managed continues to increase or if the CPU load of the app to be managed is 0% or is 100% for a predetermined time or more. Then the app motion management unit determines 1120 referring to the app correspondence table 1150 one at the target of movement program file to be executed, transmits an interrupt and then operates the app to be managed at the movement target.

(App-Bewegungstabelle 1121)(App movement table 1121 )

4 ist eine Ansicht, die ein Beispiel der App-Bewegungstabelle 1121 zeigt. Die App-Bewegungstabelle 1121 wird bspw. in einem Tabellenformat dargestellt und besteht aus mehreren Datensätzen. Jeder Datensatz weist Felder von App 1122, Verwendungs-IRQ 1123, CPU-Name 1124, CPU-Typ 1125, OS 1126, Bewegungsanforderung 1127, Rang 1128, CPU-Last 1129 und freiem Speicher 1130 auf. Die App-Bewegungstabelle 1121 wird im Voraus erstellt, und im Umfang der vorliegenden Ausführungsform findet das Umschreiben in anderen Feldern als dem Feld mit Rang 1128 nicht statt. 4th Fig. 13 is a view showing an example of the app movement table 1121 shows. The app movement table 1121 is shown, for example, in a table format and consists of several data records. Each record has fields from App 1122 , Usage IRQ 1123 , CPU name 1124 , CPU type 1125 , OS 1126 , Movement requirement 1127 , Rank 1128 , CPU load 1129 and free memory 1130 on. The app movement table 1121 is prepared in advance, and within the scope of the present embodiment, the rewriting takes place in fields other than the ranked field 1128 not held.

Der Name der Anwendung wird in das Feld der App 1122 eingegeben. Wie unter Bezugnahme auf 2 erläutert, benötigt eine Anwendung abhängig von der Umgebung, in der sie durchgeführt wird, häufig unterschiedliche Programmdateien. Die von der App verwendete IRQ-Nummer, die durch den Feldwert der App 1122 mit demselben Datensatz spezifiziert wird (im Folgenden als „App mit demselben Datensatz“ bezeichnet), wird in das Feld der Verwendungs-IRQ 1123 eingegeben.The name of the application appears in the App field 1122 entered. As with reference to 2 explained, an application often requires different program files depending on the environment in which it is run. The IRQ number used by the app, determined by the app's field value 1122 is specified with the same data record (hereinafter referred to as "App with the same data record"), the Usage IRQ 1123 entered.

Der Name der CPU, die die App mit demselben Datensatz durchführt, wird in das Feld von CPU-Name 1124 eingegeben. Im Feld von CPU-Typ 1125 wird der im Feld von CPU-Name 1124 eingegebene CPU-Typ eingegeben. Im Feld von OS 1126 wird der Name des OS eingegeben, das die App mit demselben Datensatz durchführt. Im Feld der Bewegungsanforderung 1127 wird die Anforderung eingegeben, die erforderlich ist, um die durch den CPU-Namen 1124 spezifizierte CPU die App mit demselben Datensatz auf das durch das OS 1126 spezifizierte OS zu bewegen. Die erforderlichen Anforderungen umfassen mindestens den Namen der durchzuführenden Programmdatei und können mit zusätzlichen Ressourcen wie einem Zeitgeber gefüllt werden.The name of the CPU that the app is running on the same record will be in the CPU Name field 1124 entered. In the CPU type field 1125 becomes the one in the CPU name field 1124 entered CPU type entered. In the field of OS 1126 the name of the OS that runs the app with the same data set is entered. In the movement request field 1127 the request that is required to be entered by the CPU name is entered 1124 CPU specified the app with the same data set to that by the OS 1126 specified OS to move. The required requirements include at least the name of the program file to be executed and can be filled with additional resources such as a timer.

In das Feld vom Rang 1128 wird eine Ranganordnung eingegeben, die die Eignung zur Durchführung der App mit demselben Datensatz angibt. In dem in 4 gezeigten Beispiel wird, da die App-Bildverarbeitungsapp drei Kombinationen von der ersten bis zur dritten Zeile zeigt, eine von 1 bis 3 in den Rang 1128 eingegeben. Wenn die Umgebung jedoch nicht verwendet werden kann, z. B. wenn das OS außer Betrieb ist, wird in den Rang 1128 ein Symbol eingegeben, das angibt, dass die Umgebung nicht verwendet werden kann, z. B. das Symbol „N/A“. Das Feld vom Rang 1128 wird von der App-Bewegungsverwaltungseinheit 1120 den Umständen entsprechend umgeschrieben.In the field of rank 1128 a ranking is entered that indicates the suitability for running the app with the same data set. In the in 4th In the example shown, since the app image processing app shows three combinations from the first to the third rows, one from 1 to 3 is ranked 1128 entered. However, if the environment cannot be used, e.g. B. If the OS is out of order, it will rank 1128 typed an icon indicating that the environment cannot be used, e.g. B. the symbol "N / A". The field of rank 1128 is controlled by the app's motion management unit 1120 rewritten according to the circumstances.

In das Feld der CPU-Last 1129 wird die CPU-Last, die eines der Referenz ist, anhand derer die App-Bewegungsverwaltungseinheit 1120 den Rang 1128 bestimmt, d. h. die CPU-Auslastung eingegeben. Die freie Speicherkapazität, die eines der Referenz ist, anhand derer die App-Bewegungsverwaltungseinheit 1120 den Rang 1128 bestimmt, wird in das Feld des freien Speichers 1130 eingegeben. In dem in 4 gezeigten Beispiel sind zwei Elemente, die CPU-Last und der freie Speicher, als Referenz zum Bestimmen des Ranges 1128 durch die App-Bewegungsverwaltungseinheit 1120 angegeben, die App-Bewegungsverwaltungseinheit 1120 kann jedoch andere Elemente als Referenz verwenden, und die Anzahl der Referenz ist nicht auf zwei beschränkt. Das Obige ist die Erläuterung der App-Bewegungstabelle 1121.In the CPU load field 1129 becomes the CPU load, which is one of the references that the app motion manager uses 1120 the rank 1128 determined, ie the CPU utilization entered. The free storage capacity, which is one of the references that the app motion manager uses 1120 the rank 1128 determined is in the field of free memory 1130 entered. In the in 4th The example shown are two elements, the CPU load and the free memory, as a reference for determining the rank 1128 through the app motion management unit 1120 specified, the app's motion manager 1120 however, may use other items for reference, and the number of references is not limited to two. The above is the explanation of the app movement table 1121 .

(Aktualisierung von Rang 1128)(Update of rank 1128 )

Die Aktualisierung des Ranges 1128 der App-Bewegungstabelle 1121 wird bspw. von der App-Bewegungsverwaltungseinheit 1120 wie folgt vorgenommen. Die App-Bewegungsverwaltungseinheit 1120 erhält Informationen, die durch Polling von der Überwachungseinheit 1160 erhalten sind, bevor der Rang 1128 aktualisiert wird. Dann werden für jeden Datensatz der App-Bewegungstabelle 1121 der als Auswahlreferenz dienende Wert der CPU-Last 1129 und der Wert, der durch Polling der Umgebung in diesem Datensatz erhalten wird, und der Wert des freien Speichers 1130 und der Wert, der durch Polling der Umgebung in diesem Datensatz erhalten wird, vergleicht, um einen Schätzwert zu ermitteln.The update of the rank 1128 the app movement table 1121 is e.g. from the app motion management unit 1120 done as follows. The app motion management unit 1120 receives information through polling from the monitoring unit 1160 are received before the rank 1128 is updated. Then for each record the app movement table 1121 the value of the CPU load used as a selection reference 1129 and the value obtained by polling the environment in this record and the value of the free memory 1130 and compares the value obtained by polling the environment in that data set to determine an estimate.

Das Ermittlungsverfahren des Schätzwerts ist beliebig, und der Schätzwert nimmt mit abnehmender CPU-Last und mit zunehmender freier Speicherkapazität zu. Der Schätzwert wird z. B. als Wert von 0 bis 100 ermittelt, indem die durch die CPU-Last bestimmten Werte von 0 bis 50 und die durch den freien Speicher bestimmten Werte von 0 bis 50 addiert werden. Wenn bspw. der durch Polling erhaltene Wert mit dem in jedem Datensatz angegebenen Wert übereinstimmt, beträgt der Schätzwert dieses Elements 25, und der Schätzwert wird jedes Mal um 5 erhöht oder verringert, wenn es eine Erhöhung oder Verringerung um 10% vom Referenzwert gibt. Die App-Bewegungsverwaltungseinheit 1120 ermittelt einen Schätzwert durch eine solche Ermittlung.The method of determining the estimate is arbitrary, and the estimate increases as the CPU load decreases and the free memory capacity increases. The estimated value is z. B. determined as a value from 0 to 100 by adding the values from 0 to 50 determined by the CPU load and the values from 0 to 50 determined by the free memory. For example, if the polling value matches the value given in each record, the guess for that element is 25th , and the estimate is increased or decreased by 5 each time there is an increase or decrease of 10% from the reference value. The app motion management unit 1120 determines an estimated value through such determination.

Dann ordnet die App-Bewegungsverwaltungseinheit 1120 die Schätzwerte jedes Datensatzes für jede zu verwaltende App und schreibt die Rangordnung in das Feld von Rang 1128 ein. Im Datensatz der Betriebsumgebung, in der festgestellt wird, dass die zu verwaltende App nicht durchgeführt werden kann, z. B. im Datensatz der Umgebung, in der das OS nicht reagiert, wird jedoch unabhängig vom Schätzwert ein Symbol, z. B. „N/A“ eingegeben, das angibt, dass die Anwendung nicht durchgeführt werden kann.The app then arranges the motion management unit 1120 the estimates of each record for each app to be managed and writes the ranking in the field of Rank 1128 one. In the record of the operating environment that determines that the app to be managed cannot be performed, e.g. B. in the data record of the environment in which the OS is not responding, however, regardless of the estimated value, a symbol, e.g. B. Entered "N / A", that indicates that the application cannot be performed.

(Flussdiagramm)(Flow chart)

5 ist ein Flussdiagramm, das den Betrieb der Mikrokernel-Abstraktionseinheit 1110 zeigt. Die Mikrokernel-Abstraktionseinheit 1110 startet den in 5 gezeigten Betrieb, wenn die ECU 1000 mit Strom versorgt wird, und setzt den Betrieb fort, bis der Strom abgeschaltet wird. Obwohl END, das das Ende des Betriebs zeigt, in 5 nicht gezeigt ist, beendet die Mikrokernel-Abstraktionseinheit 1110 den Betrieb, wenn der Strom der ECU 1000 abgeschaltet wird. 5 Figure 13 is a flow diagram illustrating the operation of the microkernel abstraction unit 1110 shows. The microkernel abstraction unit 1110 starts the in 5 operation shown when the ECU 1000 is supplied with power and continues to operate until the power is turned off. Although END, which shows the end of operation, is in 5 not shown, the microkernel abstraction unit terminates 1110 the operation when the power of the ECU 1000 is switched off.

Wenn die Mikrokernel-Abstraktionseinheit 1110 mit Strom versorgt wird, werden zuerst im Schritt S2000 die App-Bewegungsverwaltungseinheit 1120 und die App-Bewegungstabelle 1121 initialisiert. Die Initialisierung der App-Bewegungstabelle 1121 ist jedoch eine Verarbeitung zum Ausblenden der Felder des Ranges 1128 aller Datensätze. In nachfolgendem Schritt S2001 initialisiert die Mikrokernel-Abstraktionseinheit 1110 die Überwachungseinheit 1160, und die Überwachungseinheit 1160 verwendet den hardwareabhängigen Mikrokernel 1170, um ein Polling vorzunehmen, ob jede CPU verfügbar ist oder nicht. Wenn festgestellt wird, dass es eine CPU gibt, die nicht verfügbar ist, was in 5 nicht gezeigt ist, wird eine Fehlerverarbeitung durchgeführt. Im Folgenden wird die Erläuterung unter der Annahme fortgesetzt, dass alle CPUs im Schritt S2001 verwendet werden können.When the microkernel abstraction unit 1110 is powered, the app motion management unit becomes first in step S2000 1120 and the app movement table 1121 initialized. The initialization of the app movement table 1121 however, it is processing for hiding the fields of the rank 1128 of all records. In the following step S2001, the microkernel abstraction unit is initialized 1110 the monitoring unit 1160 , and the monitoring unit 1160 uses the hardware-dependent microkernel 1170 to poll whether each CPU is available or not. If it is found that there is a CPU that is not available, what is in 5 is not shown, error processing is performed. In the following, the explanation is continued on the assumption that all CPUs can be used in step S2001.

In nachfolgendem Schritt S2003 initialisiert die Mikrokernel-Abstraktionseinheit 1110 alle OS und Apps. In welcher Umgebung jede App bei der Initialisierung durchgeführt wird, ist vorbestimmt. In nachfolgendem Schritt S2004 nimmt die Überwachungseinheit 1160 für die CPU, das OS und die zu verwaltende App ein Polling vor. Im Schritt S2005 sendet die Mikrokernel-Abstraktionseinheit 1110 die von der Überwachungseinheit 1160 im Schritt S2004 erhaltenen Informationen an die App-Bewegungsverwaltungseinheit 1120. In nachfolgendem Schritt S2006 aktualisiert die App-Bewegungsverwaltungseinheit 1120 alle Ränge 1128 der App-Bewegungstabelle 1121 durch die oben erläuterte Methode und erfasst einen Fehler in der zu verwaltenden App. Wie oben erläutert, werden zur Erfassung eines Fehlers in der zu verwaltenden App der Betriebsstatus der CPU, die das OS betreibt, auf dem die zu verwaltende App arbeitet, die Speichernutzung der zu verwaltenden App, die CPU-Last der zu verwaltenden App usw. berücksichtigt.In the following step S2003, the microkernel abstraction unit is initialized 1110 all OS and apps. The environment in which each app is executed during initialization is predetermined. In the following step S2004, the monitoring unit takes 1160 polling for the CPU, the OS and the app to be managed. In step S2005, the microkernel abstraction unit sends 1110 that of the monitoring unit 1160 information obtained in step S2004 to the app movement management unit 1120 . In subsequent step S2006, the app's motion management unit updates 1120 all ranks 1128 the app movement table 1121 through the method explained above and detects an error in the app to be managed. As explained above, in order to detect an error in the app to be managed, the operational status of the CPU running the OS on which the app to be managed operates, the memory usage of the app to be managed, the CPU load of the app to be managed, and so on are taken into account .

In nachfolgendem Schritt S2007 beurteilt die Mikrokernel-Abstraktionseinheit 1110, ob ein Fehler der zu verwaltende App im Schritt S2006 erfasst wurde oder nicht. Die Mikrokernel-Abstraktionseinheit 1110 fährt zum Schritt S2009 fort, wenn festgestellt wird, dass in einer der zu verwaltenden Apps einen Fehler vorliegt, und fährt zum Schritt S2008 fort, wenn festgestellt wird, dass in allen zu verwaltenden Apps kein Fehler vorliegt. Im Folgenden wird die zu verwaltende App, in der ein Fehler im Schritt S2006 erfasst wurde, als „App, in der ein Fehler erfasst wurde“ bezeichnet. Im Schritt S2008 wartet die Mikrokernel-Abstraktionseinheit 1110 auf eine vorbestimmte Zeit und kehrt zum Schritt S2004 zurück. D. h., die Mikrokernel-Abstraktionseinheit 1110 wiederholt die Verarbeitungen von Schritten S2004 bis S2008, während kein Fehler in der App festgestellt wird.In the following step S2007, the microkernel abstraction unit assesses 1110 whether or not an error of the app to be managed was detected in step S2006. The microkernel abstraction unit 1110 proceeds to step S2009 if it is determined that there is an error in one of the apps to be managed, and proceeds to step S2008 if it is determined that there is no error in all of the apps to be managed. In the following, the app to be managed in which an error was detected in step S2006 is referred to as “app in which an error was detected”. In step S2008, the microkernel abstraction unit waits 1110 for a predetermined time and returns to step S2004. That is, the microkernel abstraction unit 1110 repeats the processings from steps S2004 to S2008 while no error is detected in the app.

Im Schritt S2009, der dann durchgeführt wird, wenn im Schritt S2007 eine positive Beurteilung vorgenommen wird, liest die Mikrokernel-Abstraktionseinheit 1110 die App-Bewegungstabelle 1121 ein. In nachfolgendem Schritt S2010 beurteilt die Mikrokernel-Abstraktionseinheit 1110, ob eine andere Umgebung zum Durchführen der zu verwaltenden App vorhanden ist, in der im Schritt S2007 ein Fehler festgestellt wurde, d. h., ob eine alternative Umgebung vorhanden ist. Die Mikrokernel-Abstraktionseinheit 1110 fährt zum Schritt S2011 fort, wenn festgestellt wird, dass die alternative Umgebung vorhanden ist, und fährt zum Schritt S2016 fort, wenn festgestellt wird, dass die alternative Umgebung nicht vorhanden ist. Konkret beurteilt die Mikrokernel-Abstraktionseinheit 1110, ob in der App-Bewegungstabelle 1121 die Umgebung, in der die App, in der ein Fehler erfasst wurde, derzeitig durchgeführt wird, eine Umgebung enthält, in der der Rang 1128 nicht das N/A betrifft.In step S2009, which is performed when an affirmative judgment is made in step S2007, the microkernel abstraction unit reads 1110 the app movement table 1121 one. In the following step S2010, the microkernel abstraction unit assesses 1110 whether there is another environment for running the app to be managed in which an error was found in step S2007, ie whether an alternative environment is available. The microkernel abstraction unit 1110 proceeds to step S2011 when it is determined that the alternative environment exists, and proceeds to step S2016 when it is determined that the alternative environment does not exist. Concretely assesses the microkernel abstraction unit 1110 whether in the app movement table 1121 the environment in which the app in which a bug was detected is currently running contains an environment in which the rank 1128 does not concern the N / A.

Wenn bspw. die App-Bewegungstabelle 1121 wie in 4 gezeigt ist, die App zur Bildverarbeitung von der ersten CPU 11 durchgeführt wird und ein Fehler in der App zur Bildverarbeitung erfasst wird, können die zweite CPU 12 und die dritte CPU 13 sie durchführen, so dass die Bestimmung im Schritt S2010 positiv ist. Ferner wird in dem in 4 gezeigten Beispiel, wenn die App zur Entfernungsschätzung in der ersten CPU 11 durchgeführt wird, ein Fehler in der App zur Entfernungsschätzung erfasst wird und der Rang der dritten CPU 13 N/A ist, ist eine andere Umgebung nicht vorhanden, in der die App zur Entfernungsschätzung durchgeführt werden kann, so dass die Bestimmung im Schritt S2010 negativ ist.If, for example, the app movement table 1121 as in 4th shown is the app for image processing from the first CPU 11 is performed and an error is detected in the image processing app, the second CPU 12 and the third CPU 13 perform them so that the determination in step S2010 is affirmative. Furthermore, in the in 4th example shown when the app for distance estimation is in the first CPU 11 is performed, an error is detected in the distance estimation app, and the rank of the third CPU 13 is N / A, there is no other environment in which the distance estimation app can be performed, so the determination in step S2010 is negative .

Im Schritt S2011 bestimmt die Mikrokernel-Abstraktionseinheit 1110 die Umgebung des Bewegungsziels der App, in der ein Fehler erfasst wurde. Konkret berücksichtigt die Mikrokernel-Abstraktionseinheit 1110 die App-Bewegungstabelle 1121 und in einem Datensatz, in dem eine App angegeben ist, in der ein Fehler erfasst wurde, und die derzeit durchgeführte Umgebung ausgeschlossen ist, wird die Umgebung mit dem Rang 1128 mit dem kleinsten Wert als Bewegungsziel bestimmt. Wenn z. B. die App-Bewegungstabelle 1121 in 4 gezeigt ist und die App zur Bildverarbeitung in der ersten CPU 11 arbeitet und ein Fehler erfasst wird, wird die Umgebung der dritten CPU 13 mit dem Rang 1128 von „2“ ausgewählt.In step S2011, the microkernel abstraction unit determines 1110 the area around the app's motion target where an error was detected. Specifically, the microkernel abstraction unit takes into account 1110 the app movement table 1121 and in a record indicating an app that has a bug detected and the currently running environment is excluded, the environment is ranked 1128 with the smallest value determined as the movement target. If z. B. the app Movement table 1121 in 4th is shown and the app for image processing in the first CPU 11 works and an error is detected, the environment becomes the third CPU 13 with the rank 1128 selected by "2".

In nachfolgendem Schritt S2012 spezifiziert die Mikrokernel-Abstraktionseinheit 1110 die Programmdatei der App, in der ein Fehler erfasst wurde, in der im Schritt S2011 spezifizierten Umgebung. Konkret berücksichtigt die Mikrokernel-Abstraktionseinheit 1110 die App-Korrespondenztabelle 1150 und spezifiziert die Programmdatei aus dem Namen der App, in der ein Fehler erfasst wurde, und dem CPU-Typ der im Schritt S2011 spezifizierten Umgebung. Wenn jedoch die App-Korrespondenztabelle 1150 für jeden OS-Typ unterschiedlich ist, wie in 2(a) gezeigt, wird die Programmdatei unter weiterer Berücksichtigung des OS der im Schritt S2011 spezifizierten Umgebung spezifiziert.In the following step S2012 specifies the microkernel abstraction unit 1110 the program file of the app in which an error was detected in the environment specified in step S2011. Specifically, the microkernel abstraction unit takes into account 1110 the app correspondence table 1150 and specifies the program file from the name of the app in which an error was detected and the CPU type of the environment specified in step S2011. However, if the app correspondence table 1150 is different for each OS type, as in 2 (a) As shown, the program file is specified with further consideration of the OS of the environment specified in step S2011.

In nachfolgendem Schritt S2013 ordnet die Mikrokernel-Abstraktionseinheit 1110 die im Schritt S2012 spezifizierte Programmdatei im Speicherbereich des OS des im Schritt S2011 bestimmten Bewegungsziels an. In nachfolgendem Schritt S2014 initialisiert die Mikrokernel-Abstraktionseinheit 1110 die im Schritt S2014 angeordnete App. Bei dieser Initialisierung wird ein Zeitgeber usw. nach Bedarf angeordnet. Wenn bspw. die App-Bewegungstabelle 1121 in 4 gezeigt ist und die App zur Bildverarbeitung von der zweiten CPU 12 betrieben wird, wird die Programmdatei bin 05 initialisiert und der Zeitgeber B wird dem bin 05 bereitgestellt.In the following step S2013, the microkernel abstraction unit arranges 1110 the program file specified in step S2012 in the storage area of the OS of the movement destination determined in step S2011. In the following step S2014, the microkernel abstraction unit is initialized 1110 the app arranged in step S2014. In this initialization, a timer, etc. is arranged as necessary. If, for example, the app movement table 1121 in 4th is shown and the app for image processing from the second CPU 12 is operated, the program file bin 05 is initialized and the timer B is made available to bin 05.

In nachfolgendem Schritt S2015 überträgt die Interrupt-Übertragungseinheit 1140 den IRQ entsprechend der bewegten App. Wenn bspw. die App-Bewegungstabelle 1121 in 4 gezeigt ist und sich die App zur Bildverarbeitung von der Umgebung der ersten CPU 11 in die Umgebung der zweiten CPU 12 bewegt, schreibt die Interrupt-Übertragungseinheit 1140 die Interrupt-Korrespondenztabelle 1141 wie folgt um. D. h., die Interrupt-Übertragungseinheit 1140 schreibt die Übertragungsziele von IRQ1 und IRQ4 in der Interrupt-Korrespondenztabelle 1141 von O1 auf O2 um. Wenn die Verarbeitung von S2015 abgeschlossen ist, fährt die Verarbeitung zum Schritt S2008 fort.In the following step S2015, the interrupt transmission unit transmits 1140 the IRQ according to the moving app. If, for example, the app movement table 1121 in 4th is shown and the app for image processing from the environment of the first CPU 11 in the vicinity of the second CPU 12 moves, the interrupt transfer unit writes 1140 the interrupt correspondence table 1141 as follows. That is, the interrupt transmission unit 1140 writes the transmission targets of IRQ1 and IRQ4 in the interrupt correspondence table 1141 from O1 to O2. When the processing of S2015 is completed, the processing proceeds to step S2008.

Im Schritt S2016, der durchgeführt wird, wenn im Schritt S2010 eine negative Bestimmung vorgenommen wird, gibt die Mikrokernel-Abstraktionseinheit 1110 einen Betriebsstoppbefehl an die zu verwaltende App aus, in der das Problem erfasst wird, und fährt zum Schritt S2008 fort. Im Schritt S2016 kann zusätzlich das Auftreten eines Ereignisses, d. h. die Ausgabe des Betriebsstoppbefehls an die zu verwaltende App, aufgezeichnet werden oder zu dieser Aufzeichnung kann ein beliebiger interner Zustand der ECU 1000, bspw. die Speicherauszugsinformationen des Speichers 20 auch hinzugefügt werden. Das Obige ist die Erläuterung des Flussdiagramms, das den Betrieb der Mikrokernel-Abstraktionseinheit 1110 zeigt.In step S2016, which is performed when a negative determination is made in step S2010, the microkernel abstraction unit outputs 1110 issues an operation stop command to the app to be managed in which the problem is detected, and proceeds to step S2008. In step S2016, the occurrence of an event, ie the output of the operation stop command to the app to be managed, can also be recorded, or any internal state of the ECU can be added to this recording 1000 , e.g. the memory dump information 20th also be added. The above is the explanation of the flowchart describing the operation of the microkernel abstraction unit 1110 shows.

Gemäß der oben erläuterten ersten Ausführungsform können die folgenden Wirkungen und Effekte erhalten werden.

  1. (1) Der Hypervisor 1100 stellt eine virtuelle Umgebung 1200 bereit, die mehrere Betriebssysteme durchführen kann, die eine Anwendung durchführen können, und wird von mehreren CPUs betrieben. Der Hypervisor 1100 ist mit einer Überwachungseinheit 1160, die Betriebszustände mehrerer OS überwacht, und einer App-Bewegungsverwaltungseinheit 1120 versehen, die auf der Basis des Arbeitszustands anstelle einer Anwendung, die durch eine erste Programmdatei realisiert wird, die im ersten OS durchgeführt wird, eine Anwendung, die durch eine zweite Programmdatei mit einer ähnlichen Funktion wie die erste Anwendung im zweiten OS betreibt. Die App-Bewegungsverwaltungseinheit 1120 wählt auf der Basis des Typs der CPU, die das zweite OS durchführt, eine Programmdatei aus, die die zweite Anwendung realisiert. Daher kann die Bewegung der Anwendung, d. h. eine Migration auch dann realisiert werden, wenn verschiedene CPU-Typen verwendet werden.
  2. (2) Der Hypervisor 1100 weist eine App-Korrespondenztabelle 1150 auf, die die Korrespondenz zwischen realisierten Funktionen, CPU-Typen und Programmdateien zeigt. Die App-Bewegungsverwaltungseinheit 1120 berücksichtigt die App-Korrespondenztabelle 1150 und wählt eine Programmdatei aus, die die zweite Anwendung realisiert. Daher kann der Hypervisor 1100 eine geeignete Programmdatei entsprechend der Umgebung des Migrationsziels auswählen.
  3. (3) CPU-Typen in der App-Korrespondenztabelle 1150 werden mindestens auf der Basis des Befehlssatzes der CPU und der Registerkonfiguration klassifiziert. Dies liegt daran, dass tendenziell dieselbe Programmdatei verwendet werden kann, wenn der Befehlssatz der CPU und die Registerkonfiguration identisch sind.
  4. (4) Der Hypervisor 1100 weist eine Interrupt-Korrespondenztabelle 1141 auf, die die Korrespondenzbeziehung zwischen den Nummern der Interrupt-Anforderung und OS zeigt. Der Hypervisor 1100 ist mit einer Interrupt-Übertragungseinheit 1140 versehen. Die Interrupt-Übertragungseinheit 1140 überträgt die Interrupt-Anforderung der dem OS entsprechenden IRQ-Nummer auf der Basis der Interrupt-Korrespondenztabelle 1141. Wenn ferner die App-Bewegungsverwaltungseinheit 1120 die zweite Anwendung betreibt, schreibt die Interrupt-Übertragungseinheit 1140 das erste OS in der Interrupt-Korrespondenztabelle 1141 auf das zweite OS um, wie in 3(a) bis 3(b) gezeigt. Daher kann der IRQ zusammen mit der Durchführung der Migration übertragen werden.
  5. (5) Die App-Bewegungsverwaltungseinheit 1120 betreibt die zweite Anwendung im zweiten OS anstelle der ersten Anwendung, die im ersten OS durchgeführt wird, wenn der Betrieb des ersten OS gestoppt wird, oder wenn der Betrieb der ersten Anwendung fehlerhaft ist. Daher kann die Migration mit dem Anlass des Stoppens des OS durchgeführt werden.
According to the first embodiment explained above, the following effects and effects can be obtained.
  1. (1) The hypervisor 1100 represents a virtual environment 1200 ready that can run multiple operating systems that can run an application and is run by multiple CPUs. The hypervisor 1100 is with a monitoring unit 1160 that monitors the operating status of multiple OS and an app motion management unit 1120 which, on the basis of the working state, instead of an application that is realized by a first program file that is executed in the first OS, an application that operates by a second program file with a similar function to the first application in the second OS. The app motion management unit 1120 selects a program file that the second application implements based on the type of CPU executing the second OS. Therefore, application movement, that is, migration can be realized even when different types of CPUs are used.
  2. (2) The hypervisor 1100 assigns an app correspondence table 1150 showing the correspondence between implemented functions, CPU types and program files. The app motion management unit 1120 takes into account the app correspondence table 1150 and selects a program file that implements the second application. Therefore, the hypervisor 1100 Select an appropriate executable based on the environment of the migration target.
  3. (3) CPU types in the app correspondence table 1150 are classified based at least on the CPU's instruction set and register configuration. This is because there tends to be the same program file that can be used if the CPU instruction set and register configuration are identical.
  4. (4) The hypervisor 1100 assigns an interrupt correspondence table 1141 showing the correspondence relation between the interrupt request numbers and OS. The hypervisor 1100 is with an interrupt transmission unit 1140 Mistake. The interrupt transfer unit 1140 transmits the interrupt request to the IRQ number corresponding to the OS on the basis of the interrupt correspondence table 1141 . Furthermore, if the app Motion management unit 1120 the second application is running, the interrupt transfer unit writes 1140 the first OS in the interrupt correspondence table 1141 to the second OS, as in 3 (a) to 3 (b) shown. Therefore, the IRQ can be transferred along with the migration.
  5. (5) The app motion management unit 1120 operates the second application in the second OS in place of the first application that is executed in the first OS when the operation of the first OS is stopped or when the operation of the first application fails. Therefore, the migration can be performed on the occasion of the OS stopping.

(Abgewandeltes Beispiel 1)(Modified example 1)

In der oben erläuterten ersten Ausführungsform ist es auch möglich, dass die Bewegungsanforderung 1127 der App-Bewegungstabelle 1121 nicht den Namen der Programmdatei enthält. Dies liegt daran, dass der Hypervisor 1100 die App-Korrespondenztabelle 1150 aufweist und die Programmdatei unter Bezugnahme auf die App-Korrespondenztabelle 1150 in der oben erläuterten Ausführungsform auswählt.In the first embodiment explained above, it is also possible that the movement request 1127 the app movement table 1121 does not contain the name of the program file. This is because the hypervisor 1100 the app correspondence table 1150 and the program file with reference to the app correspondence table 1150 in the embodiment explained above.

(Abgewandeltes Beispiel 2)(Modified example 2)

Es ist auch möglich, dass der Hypervisor 1100 nicht mit der App-Korrespondenztabelle 1150 versehen ist und die Bewegungsanforderung 1127 der App-Bewegungstabelle 1121 berücksichtigt, um die Programmdatei zu spezifizieren, die vom OS des Bewegungsziels durchgeführt werden soll.It is also possible that the hypervisor 1100 not with the app correspondence table 1150 is provided and the movement requirement 1127 the app movement table 1121 taken into account to specify the program file to be executed by the OS of the movement target.

(Abgewandeltes Beispiel 3)(Modified example 3)

Es ist auch möglich, dass die Programmdatei, die den Hypervisor 1100 realisiert, der ECU 1000 über ein Aufzeichnungsmedium oder eine Datenkommunikation bereitgestellt wird.It is also possible that the executable that runs the hypervisor 1100 realized the ECU 1000 is provided via a recording medium or a data communication.

6 ist eine Ansicht, die zeigt, wie eine Programmdatei, die den oben erläuterten Hypervisor 1100 realisiert, der ECU 1000 über ein Aufzeichnungsmedium oder ein Datensignal bereitgestellt wird. Die ECU 1000 ist an einem Fahrzeug montiert und verfügt über einen Prozessor, der verschiedene Programme durchführen kann. Die ECU 1000 liest die CD-ROM 304 über ein Eingabegerät 300 ein und empfängt Informationen einer Programmdatei zum Realisieren des Hypervisors 1100. Der Hypervisor 1100 wird durch Durchführen dieser Programmdatei durch den Prozessor der ECU 1000 realisiert. 6th Fig. 13 is a view showing how a program file that includes the hypervisor explained above 1100 realized the ECU 1000 is provided via a recording medium or a data signal. The ECU 1000 is mounted on a vehicle and has a processor that can run various programs. The ECU 1000 reads the CD-ROM 304 via an input device 300 and receives information of a program file for realizing the hypervisor 1100 . The hypervisor 1100 is made by executing this program file through the processor of the ECU 1000 realized.

Ferner weist das Eingabegerät 300 eine Verbindungsfunktion mit einer Kommunikationsleitung 301 auf. Ein Computer 302 ist ein Servercomputer, der Informationen wie die oben erläuterten Programmdateien bereitstellt und Informationen auf einem Aufzeichnungsmedium wie einer Festplatte 303 speichert. Die Kommunikationsleitung 301 ist eine Kommunikationsleitung für das Internet, die Personal-Computer-Kommunikation oder eine dedizierte Kommunikationsleitung. Der Computer 302 liest Informationen wie eine Programmdatei unter Verwendung der Festplatte 303 aus und überträgt sie über die Kommunikationsleitung 301 an das Eingabegerät 300.Furthermore, the input device 300 a connection function with a communication line 301 on. A computer 302 is a server computer that provides information such as the above program files and information on a recording medium such as a hard disk 303 saves. The communication line 301 is a communication line for the Internet, personal computer communication, or a dedicated communication line. The computer 302 reads information like a program file using the hard disk 303 and transmits them over the communication line 301 to the input device 300 .

D. h., das Programm wird als Datensignal durch die Trägerwelle über die Kommunikationsleitung 301 gesendet. Dann überträgt das Eingabegerät 300 das empfangene Signal auf die ECU 1000. Wie oben erläutert, kann das Programm zum Realisieren des Hypervisors 1100 als computerlesbares Computerprogrammprodukt in verschiedenen Formen wie einem Aufzeichnungsmedium und einem Datensignal (Trägerwelle) geliefert werden.That is, the program is transmitted as a data signal by the carrier wave through the communication line 301 Posted. Then the input device transmits 300 the received signal to the ECU 1000 . As explained above, the program for realizing the hypervisor 1100 as a computer readable computer program product in various forms such as a recording medium and a data signal (carrier wave).

Die oben erläuterten jeweiligen Ausführungsformen und die abgewandelten Beispiele können kombiniert werden. Obwohl oben verschiedene Ausführungsformen und abgewandelte Beispiele erläutert wurden, ist die vorliegende Erfindung nicht auf diese Inhalte beschränkt. Andere Aspekte, die im Umfang des technischen Gedankens der vorliegenden Erfindung betrachtet werden können, sind ebenfalls im Umfang der vorliegenden Erfindung enthalten.The above-explained respective embodiments and the modified examples can be combined. Although various embodiments and modified examples have been explained above, the present invention is not limited to these contents. Other aspects that can be considered within the scope of the technical concept of the present invention are also included within the scope of the present invention.

Der Offenlegungsinhalt der folgenden grundlegenden Prioritätsanmeldung wird hiermit als Zitat aufgenommen.The disclosure content of the following basic priority application is hereby incorporated by reference.

JP Patentanmeldung Nr. 2018-21377 (angemeldet am 8. Februar 2018) JP Patent Application No. 2018-21377 (registered on February 8, 2018)

BezugszeichenlisteList of reference symbols

11001100
HypervisorHypervisor
11101110
Mikrokernel-AbstraktionseinheitMicrokernel abstraction unit
11201120
App-BewegungsverwaltungseinheitApp motion management unit
11211121
App-BewegungstabelleApp movement table
11281128
Rangrank
11601160
ÜberwachungseinheitMonitoring unit
11401140
Interrupt-ÜbertragungseinheitInterrupt transmission unit
11411141
Interrupt-KorrespondenztabelleInterrupt correspondence table
11501150
App-KorrespondenztabelleApp correspondence table
12001200
virtuelle Umgebungvirtual environment

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • JP 2017128308 [0003]JP 2017128308 [0003]
  • JP 2018021377 [0058]JP 2018021377 [0058]

Claims (7)

Computerprogrammprodukt, in dem ein Hypervisor aufgezeichnet ist, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung realisieren können, und von mehreren CPUs betrieben wird, wobei der Hypervisor ist versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, und einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, wobei die Bewegungsverwaltungseinheit auf der Basis des Typs der CPU, die das zweite Betriebssystem durchführt, eine Programmdatei zum Realisieren der zweiten Anwendung auswählt.Computer program product in which a hypervisor is recorded, which provides a virtual environment that can run multiple operating systems that can realize an application and is operated by multiple CPUs, the hypervisor being provided with: a monitoring unit for monitoring the working status of the plurality of operating systems, and a motion management unit which, on the basis of the work status, operates a second application with a similar function to the first application in the second operating system instead of a first application that is executed in the first operating system wherein the motion management unit selects a program file for realizing the second application based on the type of CPU executing the second operating system. Computerprogrammprodukt nach Anspruch 1, wobei der Hypervisor Programm-Korrespondenzinformationen aufweist, die eine Korrespondenzbeziehung zwischen der realisierten Funktion, dem Typ der CPUs und der Programmdatei zeigen, und die Bewegungsverwaltungseinheit auf der Basis der Programm-Korrespondenzinformationen die Programmdatei auswählt, die die zweite Anwendung realisiert.Computer program product according to Claim 1 wherein the hypervisor has program correspondence information showing a correspondence relationship among the realized function, the type of CPUs and the program file, and the motion management unit selects the program file that the second application realizes based on the program correspondence information. Computerprogrammprodukt nach Anspruch 2, wobei die CPU-Typen in den Programm-Korrespondenzinformationen mindestens auf der Basis des Befehlssatzes der CPU und der Registerkonfiguration klassifiziert werden.Computer program product according to Claim 2 wherein the CPU types in the program correspondence information are classified based at least on the instruction set of the CPU and the register configuration. Computerprogrammprodukt nach Anspruch 1, wobei der Hypervisor Interrupt-Korrespondenzinformationen aufweist, die die Korrespondenzbeziehung zwischen den Nummern der Interrupt-Anforderung und dem Betriebssystem zeigen, wobei der Hypervisor mit einer Interrupt-Übertragungseinheit weiter versehen, die die Interrupt-Anforderung der dem Betriebssystem entsprechenden Nummer auf der Basis der Interrupt-Korrespondenzinformationen überträgt, und, wenn die Bewegungsverwaltungseinheit die zweite Anwendung betreibt, das erste Betriebssystem in den Interrupt-Korrespondenzinformationen auf das zweite Betriebssystem umschreibt.Computer program product according to Claim 1 , wherein the hypervisor has interrupt correspondence information showing the correspondence relationship between the interrupt request numbers and the operating system, the hypervisor further provided with an interrupt transmission unit that the interrupt request of the operating system number corresponding to the interrupt -Transfers correspondence information and, when the motion management unit operates the second application, rewrites the first operating system in the interrupt correspondence information to the second operating system. Computerprogrammprodukt nach Anspruch 1, wobei die Bewegungsverwaltungseinheit anstelle der ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, die zweite Anwendung im zweiten Betriebssystem betreibt, wenn der Betrieb des ersten Betriebssystem gestoppt wird, oder wenn der Betrieb der ersten Anwendung fehlerhaft ist.Computer program product according to Claim 1 wherein the motion management unit operates the second application in the second operating system instead of the first application executed in the first operating system when the operation of the first operating system is stopped or when the operation of the first application is faulty. Computerprogrammprodukt, in dem ein Hypervisor aufgezeichnet ist, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung durchführen können, und von mehreren CPUs betrieben wird, wobei der Hypervisor ist versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, Interrupt-Korrespondenzinformationen, die eine Korrespondenzbeziehung zwischen der Nummer einer Interrupt-Anforderung und dem Betriebssystem zeigen, und einer Interrupt-Übertragungseinheit, die die Interrupt-Anforderung der dem Betriebssystem entsprechenden Nummer auf der Basis der Interrupt-Korrespondenzinformationen überträgt, und, wenn die Bewegungsverwaltungseinheit die zweite Anwendung betreibt, das erste Betriebssystem in den Interrupt-Korrespondenzinformationen auf das zweite Betriebssystem umschreibt.Computer program product in which a hypervisor is recorded, which provides a virtual environment capable of running multiple operating systems, capable of running an application, and operated by multiple CPUs, the hypervisor being provided with: a monitoring unit for monitoring the working status of the multiple operating systems, a motion management unit which, on the basis of the work status, operates a second application with a similar function to the first application in the second operating system instead of a first application that is executed in the first operating system, Interrupt correspondence information showing a correspondence relation between the number of an interrupt request and the operating system, and an interrupt transmission unit that transmits the interrupt request of the number corresponding to the operating system based on the interrupt correspondence information and, when the movement management unit operates the second application, rewrites the first operating system in the interrupt correspondence information to the second operating system. Recheneinheit mit einem Hypervisor, der eine virtuelle Umgebung bereitstellt, die mehrere Betriebssysteme durchführen kann, die eine Anwendung durchführen können, und von mehreren CPUs betrieben wird, wobei der Hypervisor ist versehen mit: einer Überwachungseinheit zum Überwachen des Arbeitszustands der mehreren Betriebssysteme, einer Bewegungsverwaltungseinheit, die auf der Basis des Arbeitszustands anstelle einer ersten Anwendung, die im ersten Betriebssystem durchgeführt wird, eine zweite Anwendung mit einer ähnlichen Funktion wie die erste Anwendung im zweiten Betriebssystem betreibt, wobei die Bewegungsverwaltungseinheit auf der Basis des Typs der CPU, die das zweite Betriebssystem durchführt, eine Programmdatei zum Realisieren der zweiten Anwendung auswählt.Computing unit with a hypervisor that provides a virtual environment that can run multiple operating systems that can run an application and is operated by multiple CPUs, the hypervisor being provided with: a monitoring unit for monitoring the working status of the multiple operating systems, a motion management unit that operates a second application with a function similar to the first application in the second operating system instead of a first application being executed in the first operating system based on the working status, the motion management unit operating on the basis of the type of CPU that runs the Performs second operating system, selects a program file for implementing the second application.
DE112019000308.9T 2018-02-08 2019-01-30 Computer program product and computing unit Pending DE112019000308T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018021377A JP6814756B2 (en) 2018-02-08 2018-02-08 Hypervisor, arithmetic unit
JP2018-021377 2018-02-08
PCT/JP2019/003223 WO2019155966A1 (en) 2018-02-08 2019-01-30 Computer program product and computation device

Publications (1)

Publication Number Publication Date
DE112019000308T5 true DE112019000308T5 (en) 2020-10-15

Family

ID=67549542

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000308.9T Pending DE112019000308T5 (en) 2018-02-08 2019-01-30 Computer program product and computing unit

Country Status (3)

Country Link
JP (1) JP6814756B2 (en)
DE (1) DE112019000308T5 (en)
WO (1) WO2019155966A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579249B (en) * 2019-09-30 2024-09-10 奇安信安全技术(珠海)有限公司 Operation method and device of multi-CPU virtual machine, storage medium and computer equipment
CN111475342B (en) * 2020-04-15 2024-04-23 广州三星通信技术研究有限公司 Application switching method and application switching device for electronic terminal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4345630B2 (en) * 2004-09-29 2009-10-14 ソニー株式会社 Information processing apparatus, interrupt processing control method, and computer program
JP2013073542A (en) * 2011-09-29 2013-04-22 Fixstars Corp Program processor, program processing method and program
US9503387B2 (en) * 2013-08-21 2016-11-22 Cisco Technology, Inc. Instantiating incompatible virtual compute requests in a heterogeneous cloud environment
WO2015132942A1 (en) * 2014-03-07 2015-09-11 株式会社日立製作所 Computer
JP6504065B2 (en) * 2016-01-22 2019-04-24 株式会社デンソー Vehicle control system

Also Published As

Publication number Publication date
JP6814756B2 (en) 2021-01-20
JP2019139453A (en) 2019-08-22
WO2019155966A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
DE3751446T2 (en) Multiprocessor memory operating method and device.
DE112010003554B4 (en) Symmetrical direct migration of virtual machines
DE69322538T2 (en) Method and processor for processing a program in parallel
DE112011101633B4 (en) Reorganization of storage levels taking virtualization and dynamic resource allocation into account
DE69024753T2 (en) Portable, resource-sharing file server that uses common routines
DE69803924T2 (en) MAPPEDVIRTUELSYSTEM (MVS) DEVICE BACKUP FOR A DATA PROCESSOR USING A DATA STORAGE SUBSYSTEM SNAPSHOT POSSIBILITY
DE69031862T2 (en) Channel load balancing method and use in a data processing system
DE69526751T2 (en) Multiprocessor system for the local administration of address translation tables
DE102013215009A1 (en) Method and system for optimizing data transmission
DE202010017613U1 (en) Data storage device with host-controlled garbage collection
DE112018006769B4 (en) EXTENDED CACHE ALLOCATION BASED ON NODE VIRTUAL RESOURCES
DE4221073A1 (en) DATA STORAGE SYSTEM AND METHOD WITH DEVICE INDEPENDENT FILE DIRECTORIES
DE102004025921A1 (en) Multi-interface storage system and data access method in such a storage system
DE102010001339A1 (en) Manage requirements of operating systems that run in virtual machines
DE112013006646B4 (en) Computer, system and computer-readable storage medium for identifying workload and sizing buffers for volume replication purposes
EP0010570B1 (en) Method and device for self-adaptive load association in a data processing system
DE10234138A1 (en) Manage storage competition in automated storage systems
DE112013000687T5 (en) Distributed functional design for hybrid systems
DE112019000308T5 (en) Computer program product and computing unit
DE112016007336T5 (en) Information processing apparatus, apparatus assignment method, and apparatus assignment program
DE102011007714B4 (en) Method for use with a battery monitoring system, battery monitoring system and method of use
DE112019000189T5 (en) PROGRAM EXECUTION CONTROL METHOD AND VEHICLE CONTROL DEVICE
DE102016125023B4 (en) Method for operating a print server for digital high-performance printing systems
DE102016125020B4 (en) Method for operating a print server for digital high-performance printing systems
DE202016107380U1 (en) Systems for storing and reading content

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HITACHI ASTEMO, LTD., HITACHINAKA-SHI, JP

Free format text: FORMER OWNER: HITACHI AUTOMOTIVE SYSTEMS, LTD., HITACHINAKA-SHI, IBARAKI, JP