DE102020115820B3 - Test device and method and storage medium for operating a processor system - Google Patents

Test device and method and storage medium for operating a processor system Download PDF

Info

Publication number
DE102020115820B3
DE102020115820B3 DE102020115820.3A DE102020115820A DE102020115820B3 DE 102020115820 B3 DE102020115820 B3 DE 102020115820B3 DE 102020115820 A DE102020115820 A DE 102020115820A DE 102020115820 B3 DE102020115820 B3 DE 102020115820B3
Authority
DE
Germany
Prior art keywords
hardware platform
simulated
hypercall
application program
virtual machine
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.)
Active
Application number
DE102020115820.3A
Other languages
German (de)
Inventor
Lukas Jünger
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.)
Audi AG
Original Assignee
Audi AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Audi AG filed Critical Audi AG
Priority to DE102020115820.3A priority Critical patent/DE102020115820B3/en
Application granted granted Critical
Publication of DE102020115820B3 publication Critical patent/DE102020115820B3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Prozessorsystems (12), in welchem zumindest eine virtuelle Maschine (14) betrieben wird, wobei die jeweilige virtuelle Maschine (14) Hypercall-Nachrichten (16) erzeugt und jede Hypercall-Nachricht (16) jeweils eine vorbestimmte privilegierte Operation (17) anfragt, die sich auf eine Hardwareplattform der jeweiligen virtuellen Maschine (14) bezieht, wobei die angefragte privilegierte Operation (17) für die anfragende virtuelle Maschine (14) in der jeweiligen Hardwareplattform ausgeführt wird. Die Erfindung sieht vor, dass das Prozessorsystem (12) für die jeweilige virtuelle Maschine (14) eine reale Hardwareplattform (11) darstellt, in welcher die virtuelle Maschine (14) betrieben wird, und in einem digitalen Simulator (19) eine simulierte Hardwareplattform (20) simuliert wird und zumindest eine oder jede der Hypercall-Nachrichten (16) in den Simulator (19) umgeleitet wird und die jeweilige durch die umgeleitete Hypercall-Nachricht (16) angefragte privilegierte Operation (17) in der simulierten Hardwareplattform (20) ausgeführt wird.The invention relates to a method for operating a processor system (12) in which at least one virtual machine (14) is operated, the respective virtual machine (14) generating hypercall messages (16) and each hypercall message (16) generating one requests predetermined privileged operation (17) relating to a hardware platform of the respective virtual machine (14), the requested privileged operation (17) being carried out for the requesting virtual machine (14) in the respective hardware platform. The invention provides that the processor system (12) represents a real hardware platform (11) for the respective virtual machine (14) in which the virtual machine (14) is operated, and in a digital simulator (19) a simulated hardware platform ( 20) is simulated and at least one or each of the hypercall messages (16) is diverted into the simulator (19) and the respective privileged operation (17) requested by the diverted hypercall message (16) is carried out in the simulated hardware platform (20) will.

Description

Die Erfindung betrifft ein Verfahren zum Betreiben eines Prozessorsystems. Dabei wird in dem Prozessorsystem zumindest eine virtuelle Maschine betrieben und die jeweilige virtuelle Maschine und/oder zumindest ein von ihr ausgeführtes Applikationsprogramm erzeugt Nachrichten, um auf eine Hardwareplattform zuzugreifen. Diese Nachrichten sind hier als Hypercall-Nachrichten bezeichnet, weil sie sich an einen Hypervisor richten können. Zu der Erfindung gehören auch eine Testumgebung zum Durchführen des Verfahrens und ein Speichermedium mit Programmcode zum Betreiben der Testvorrichtung.The invention relates to a method for operating a processor system. In this case, at least one virtual machine is operated in the processor system and the respective virtual machine and / or at least one application program executed by it generates messages in order to access a hardware platform. These messages are referred to here as hypercall messages because they can be directed to a hypervisor. The invention also includes a test environment for performing the method and a storage medium with program code for operating the test device.

Moderne Prozessoren verfügen über mehrere Privilegierungsstufen in denen Programmcode ausgeführt werden kann. Auf diese Weise können sogenannte „Trusted Execution Environments“ (TEEs), „Virtual Machine Monitors“ (VMMs) oder Hypervisor, Betriebssystemkerne (OS - Operating System) und Userspace-Applikationsprogramme (Userspace -vom Betriebssystemkern einem Anwendungsprogramm zugewiesen) in einer eigenen Privilegierungsstufe ausgeführt werden. Hierbei haben in der genannten Reihenfolge die TEEs die meisten Privilegien und Userspace-Applikationsprogramme die wenigsten. Beispielhafte Bezeichnungen für Privilegierungsstufen sind Exception-Level und Ringe oder Domains.Modern processors have several privilege levels in which program code can be executed. In this way, so-called “Trusted Execution Environments” (TEEs), “Virtual Machine Monitors” (VMMs) or hypervisors, operating system cores (OS - Operating System) and userspace application programs (userspace - assigned to an application program by the operating system kernel) can be executed in their own privilege level will. In this order, the TEEs have the most privileges and the userspace application programs the fewest. Examples of designations for privilege levels are exception levels and rings or domains.

VMMs oder Hypervisor erlauben es, mehrere Betriebssystemkerne mit zugehörigem Userspace auf dem gleichen Prozessor auszuführen. Ein derart betriebenes Betriebssystem mit seinen Applikationsprogrammen wird als virtuelle Maschine (VM) bezeichnet. Hierbei wird der Hypervisor/VMM eingesetzt, um mehrere Virtuelle Maschinen (VMs) parallel zu betreiben. Dieses Verfahren wird als Virtualisierung bezeichnet. Einige Prozessorarchitekturen unterstützen sogar sogenannte „nested virtualization“, die es erlaubt auch einen VMM in einer VM zu betreiben.VMMs or hypervisors allow several operating system cores with the associated user space to run on the same processor. An operating system operated in this way with its application programs is referred to as a virtual machine (VM). Here the hypervisor / VMM is used to operate several virtual machines (VMs) in parallel. This process is known as virtualization. Some processor architectures even support so-called “nested virtualization”, which also allows a VMM to be operated in a VM.

Durch die Privilegierungsstufen ist (oftmals durch hardwarebasierte Vorkehrungen) sichergestellt, dass Programmcode einer Privilegierungsstufe keine Operation ausführen kann, die einer höheren Privilegierungsstufe zugeordnet ist. Um dennoch eine solche privilegierte Operation durchführen zu können, muss stattdessen in dem Programmcode eine Nachricht an eine Instanz (TEE, Hypervisor/VMM, VM, Betriebssystem) einer höheren Privilegierungsstufe gesendet werden, um die gewünschte privilegierte Operation durch diese höherprivilegierte Instanz ausführen und sich das Ergebnis zuweisen zu lassen. Möchte beispielsweise in einer virtuellen Maschine das Betriebssystem oder ein Applikationsprogramm eine Operation ausführen lassen, die in der Privilegierungstufe des Hypervisors liegt, so muss an den Hypervisor eine Nachricht gesendet werden, die hier als Hypercall-Nachricht bezeichnet ist. Sie kann angeben, welche privilegierte Operation durch den Hypervisor durchgeführt werden soll. Eine typische privilegierte Operation, die für virtuelle Maschinen gesperrt ist, ist der Zugriff auf die Hardware der Hardwareplattform, auf welcher die virtuelle Maschine (eventuell zusammen mit anderen virtuellen Maschinen) ausgeführt wird. Dies soll einen Konflikt bei der Nutzung der Hardware durch mehrere virtuelle Maschinen verhindern. Jede virtuelle Maschine muss für einen Zugriff auf die Hardware diese privilegierte Operation durch eine Hypercall-Nachricht anfordern. Der Hypervisor koordiniert dann die Zugriffe auf die Hardware.The privilege levels ensure (often through hardware-based precautions) that program code of a privilege level cannot perform any operation that is assigned to a higher privilege level. In order to still be able to carry out such a privileged operation, a message must instead be sent in the program code to an instance (TEE, hypervisor / VMM, VM, operating system) of a higher privilege level so that the desired privileged operation can be carried out by this higher privileged instance and the Assign result. If, for example, the operating system or an application program would like to have an operation carried out in a virtual machine that is in the privilege level of the hypervisor, a message must be sent to the hypervisor, which is referred to here as a hypercall message. It can indicate which privileged operation should be performed by the hypervisor. A typical privileged operation that is blocked for virtual machines is access to the hardware of the hardware platform on which the virtual machine (possibly together with other virtual machines) is executed. This is to prevent a conflict when the hardware is used by multiple virtual machines. Each virtual machine must request this privileged operation by means of a hypercall message in order to access the hardware. The hypervisor then coordinates access to the hardware.

Zur Klarstellung sind hier noch einmal die im folgenden verwendeten Begriffe voneinander abgegrenzt. Ausgegangen wird von einer Hardwareplattform, die das verwendete Prozessorsystem (einer oder mehrere Prozessoren mit jeweils einem oder mehreren Prozessorkernen), den Arbeitsspeicher (RAM - Random Access Memory), das Kommunikationsnetzwerk (Datennetzwerk, daran angeschlossene Netzwerk-Teilnehmer, wie beispielsweise andere Steuergeräte), eines oder mehrere Speichermedien (beispielsweise Flash-Datenspeicher, Festplatte) umfassen kann. Eine alternative Bezeichnung für Hardwareplattform ist auch Systemumgebung. In dem Prozessorsystem der Hardwareplattform kann als eine Software ein Hypervisor betrieben werden, der wiederum eine oder mehrere virtuelle Maschinen in dem Prozessorsystem betreiben kann. Eine virtuelle Maschine wiederum kann ein Betriebssystem umfassen, in welchem eine oder mehrere Applikationsprogramme ausgeführt werden. Optional kann in dem Prozessorsystem ein dem Hypervisor sogar übergeordnetes TEE betrieben werden.For the sake of clarity, the terms used in the following are again distinguished from one another. The starting point is a hardware platform that includes the processor system used (one or more processors, each with one or more processor cores), the working memory (RAM - Random Access Memory), the communication network (data network, network participants connected to it, such as other control devices), one or more storage media (for example flash data storage, hard disk). An alternative term for hardware platform is also system environment. A hypervisor can be operated as software in the processor system of the hardware platform, which in turn can operate one or more virtual machines in the processor system. A virtual machine in turn can comprise an operating system in which one or more application programs are executed. Optionally, a TEE that is even higher than the hypervisor can be operated in the processor system.

Die Simulation einer solchen Hardwareplattform mit Prozessorsystem und darauf betriebenem Hypervisor und virtuellen Maschinen und eventuell noch einem dem Hypervisor übergeordneten TEE in Software (softwarebasierte Simulation) ist sehr aufwendig und mit großem Overhead verbunden, der die Simulationsgeschwindigkeit stark einschränkt.The simulation of such a hardware platform with processor system and hypervisor and virtual machines operated on it and possibly also a TEE in software (software-based simulation) superordinate to the hypervisor is very complex and associated with great overhead, which severely limits the simulation speed.

Dennoch ist man an einer solchen Simulation interessiert, um beispielsweise ein Steuergerät für ein Kraftfahrzeug entwickeln zu können, welches die beschriebene Virtualisierung später für einen Betrieb in einem Kraftfahrzeug bereitstellen soll. Die Entwicklung selbst soll aber simulativ in einer Testvorrichtung oder Testumgebung möglich sein, damit beispielsweise nicht stets während der Entwicklung eines Applikationsprogramms für eine virtuellen Maschine eines solchen Steuergeräts auch der Betrieb eines Kraftfahrzeug-Prototypen notwendig ist, also beispielsweise eine Probefahrt. Vielmehr möchte man stattdessen während des Tests eines Applikationsprogramms diesem eine simulierte Hardwareplattform eines Kraftfahrzeugs präsentieren können, in welcher das Applikationsprogramm genauso betrieben werden kann wie später auch im echten Fahrbetrieb.Nevertheless, one is interested in such a simulation in order to be able to develop a control device for a motor vehicle, for example, which is intended to provide the described virtualization later for operation in a motor vehicle. However, the development itself should be simulative in a test device or test environment so that, for example, a motor vehicle prototype is not always necessary during the development of an application program for a virtual machine of such a control device, i.e. a test drive, for example. Much more instead, one would like to be able to present a simulated hardware platform of a motor vehicle during the test of an application program, in which the application program can be operated in exactly the same way as later in real driving.

In der WO 2014 137 815 A1 ist beschrieben, dass sicherheits-relevante Komponenten softwareemuliert sein und VMMs und „trusted platform module“ (TPM) umfassen können.In the WO 2014 137 815 A1 it is described that security-relevant components can be software emulated and include VMMs and “trusted platform modules” (TPM).

In der CN 102 214 277 B ist beschrieben, dass bei einem Mehrkernprozessor auf einem Kern ein TPM (Trusted Platform Modul)-Chip mittels eines OS simuliert werden kann. Dieser Kern bedient auch eine VM für ein sogenanntes Privileged-guest-OS.In the CN 102 214 277 B it is described that with a multi-core processor a TPM (Trusted Platform Module) chip can be simulated by means of an OS on one core. This core also serves a VM for a so-called privileged guest OS.

In einem wissenschaftlichen Fachbeitrag von Gao et al. (Lei Gao, Stefan Kraemer, Rainer Leupers, Gerd Ascheid, and Heinrich Meyr, „A Fast and Generic Hybrid Simulation Approach Using C Virtual Machine“, In: CASES '07: Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systemsSeptember 2007. pp 3 - 12) wird beschrieben, dass ein Betrieb einer Software auf einer Zielplattform durch Simulation nachgebildet werden kann. Um hierbei eine ausreichende Ausführungsgeschwindigkeit zu erhalten, wird die Software für zwei unterschiedliche Prozessoren kompiliert, einem simulierten Zielprozessor und einem virtuellen Prozessor, um hierdurch die Möglichkeit zu haben, beim Ausführen der Software zwischen den Prozessoren umzuschalten.In a scientific article by Gao et al. (Lei Gao, Stefan Kraemer, Rainer Leupers, Gerd Ascheid, and Heinrich Meyr, “A Fast and Generic Hybrid Simulation Approach Using C Virtual Machine”, In: CASES '07: Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems September 2007. pp 3 - 12) it is described that the operation of software on a target platform can be simulated by simulation. In order to achieve a sufficient execution speed, the software is compiled for two different processors, a simulated target processor and a virtual processor, in order to have the possibility to switch between the processors when executing the software.

In einem wissenschaftlichen Fachbeitrag von Jovic et al. (Jovic, J. et al.: Hybrid Simulation for Extensible Processor Cores. In: Proceedings of the 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2012) wird ebenfalls beschrieben, eine Software mittels Hybrid-Prozessor-Simulation, HySim, auszuführen, um die jeweiligen Vorzüge zweier Simulationstechniken abwechselnd nutzen zu können.In a scientific article by Jovic et al. (Jovic, J. et al .: Hybrid Simulation for Extensible Processor Cores. In: Proceedings of the 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2012) it is also described how to run software using hybrid processor simulation, HySim, in order to be able to use the respective advantages of two simulation techniques alternately.

Der Erfindung liegt die Aufgabe zugrunde, eine effiziente Testvorrichtung zum Entwickeln eines Steuergeräts für ein Kraftfahrzeug oder allgemein zum Entwickeln eines Prozessorsystems mit Virtualisierung bereitzustellen.The invention is based on the object of providing an efficient test device for developing a control device for a motor vehicle or generally for developing a processor system with virtualization.

Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Ausführungsformen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figur beschrieben.The object is achieved by the subjects of the independent claims. Advantageous embodiments of the invention are described by the dependent claims, the following description and the figure.

Durch die Erfindung wird eine hybride Lösung aus Virtualisierung und Simulation vorgeschlagen. Ein Betriebssystemkern mit zugehörigem Userspace wird in einer VM direkt auf der realen Hardwareplattform ausgeführt, während ein VMM/Hypervisor und ein TEE in einer Softwaresimulation ausgeführt werden. Durch diese Anordnung einer Softwaresimulation kann eine Hardwareplattform simuliert werden, wie sie beispielsweise in einem Kraftfahrzeug vorliegen kann. Die VM selbst muss dabei nicht ebenfalls in der Softwaresimulation laufen, sodass sich nicht die beschriebenen Performanzeinbußen ergeben. Durch die hybride Lösung kann eine Performanzsteigerung erzielt werden. Zusätzlich ist die Simulation so erweiterbar, dass auch andere Komponenten der simulierten Hardwareplattform simulativ abgebildet werden können, z.B. zumindest ein Kommunikationspartner, wie z.B. ein anderes Steuergerät. Die Gesamtheit der simulierten Komponenten ist hier als „simulierte Hardwareplattform bezeichnet.The invention proposes a hybrid solution comprising virtualization and simulation. An operating system kernel with the associated user space is executed in a VM directly on the real hardware platform, while a VMM / hypervisor and a TEE are executed in a software simulation. With this arrangement of a software simulation, a hardware platform can be simulated, as it can be present, for example, in a motor vehicle. The VM itself does not have to run in the software simulation, so that the performance losses described do not result. An increase in performance can be achieved through the hybrid solution. In addition, the simulation can be expanded so that other components of the simulated hardware platform can also be simulated, e.g. at least one communication partner, such as another control unit. The entirety of the simulated components is referred to here as the “simulated hardware platform”.

Durch die Erfindung ist hierzu ein Verfahren zum Betreiben eines Prozessorsystems bereitgestellt, wobei in dem Prozessorsystem zumindest eine virtuelle Maschine betrieben wird. Beispiele für ein Prozessorsystem, das zu einer solchen Virtualisierung fähig ist, sind jeweils eine ARM-Architektur (ARM - Advanced RISC Machine) oder eine x86-Architektur. Die jeweilige virtuelle Maschine und/oder zumindest ein von ihr ausgeführtes Applikationsprogramm erzeugt Hypercall-Nachrichten, wobei jede Hypercall-Nachricht jeweils eine vorbestimmte privilegierte Operation anfragt, die sich auf eine Hardwareplattform der jeweiligen virtuellen Maschine bezieht (Hardware-Operation). Mittels der Hypercall-Nachrichten soll also auf die zugrundeliegende Hardwareplattform zugegriffen werden. Beispiele für privilegierte Operationen sind jeweils ein Hardwarezugriff oder ein Zugriff auf eine sogenannte Page-Table des Arbeitsspeichers. In der beschriebenen Weise wird die angefragte privilegierte Operation für die anfragende virtuelle Maschine und/oder für das anfragende Applikationsprogramm in der jeweiligen Hardwareplattform ausgeführt. Dies kann z.B. durch einen Hypervisor oder ein TEE erfolgen.For this purpose, the invention provides a method for operating a processor system, at least one virtual machine being operated in the processor system. Examples of a processor system that is capable of such virtualization are in each case an ARM architecture (ARM - Advanced RISC Machine) or an x86 architecture. The respective virtual machine and / or at least one application program executed by it generates hypercall messages, each hypercall message requesting a predetermined privileged operation that relates to a hardware platform of the respective virtual machine (hardware operation). The underlying hardware platform should therefore be accessed by means of the hypercall messages. Examples of privileged operations are hardware access or access to a so-called page table of the main memory. The requested privileged operation is carried out in the manner described for the requesting virtual machine and / or for the requesting application program in the respective hardware platform. This can be done, for example, by a hypervisor or a TEE.

Die zumindest eine virtuelle Maschine mit ihrem jeweils zumindest einen Applikationsprogramms wird also auf einer realen Hardwareplattform ausgeführt, wodurch sich keine Performance-Einbußen durch eine Simulation einer Hardwareplattform ergeben. Es ist also kein virtueller oder simulierter Prozessor vorgesehen. Das Prozessorsystem stellt für die jeweilige virtuelle Maschine einen Teil einer realen Hardwareplattform dar, in welcher die virtuelle Maschine betrieben wird, da es sich um reale Hardware (z.B. ein IC - integrierter Schaltkreis) handelt. Eine solche Hardwareplattform kann dabei eine Testvorrichtung sein, die sich von derjenigen Hardwareplattform unterscheiden kann, für welche die jeweilige virtuelle Maschine und/oder das jeweilige Applikationsprogramms entwickelt werden soll (Zielplattform, beispielsweise ein Steuergerät eines Kraftfahrzeugs). Es sollte sich lediglich die gleiche Prozessorarchitektur handeln, damit der Binärcode der VM (das Betriebssystem und das zumindest eine Applikationsprogramm) später auch direkt auf der realen Zielplattform (z.B. ein Steuergerät in einem Kraftfahrzeug) ausgeführt werden kann.The at least one virtual machine with its at least one application program in each case is therefore executed on a real hardware platform, which means that there are no performance losses due to a simulation of a hardware platform. No virtual or simulated processor is provided. For the respective virtual machine, the processor system represents part of a real hardware platform in which the virtual machine is operated, since it is real hardware (eg an IC - integrated circuit). Such a hardware platform can be a test device that can differ from the hardware platform for which the respective virtual machine and / or the respective application program is to be developed (target platform, for example a control unit of a Motor vehicle). It should only be the same processor architecture so that the binary code of the VM (the operating system and the at least one application program) can later also be executed directly on the real target platform (eg a control unit in a motor vehicle).

Um nun für die zumindest eine virtuelle Maschine und/oder das zumindest eine Applikationsprogramms dennoch einen Betrieb auf einer anderen Hardwareplattform, nämlich der Zielplattform, zu simulieren oder nachzustellen, wird in einem digitalen Simulator eine simulierte Hardwareplattform simuliert. Es wird also zusätzlich ein Simulator betrieben, in welchem eine weitere Hardwareplattform, nämlich die Zielplattform, als Simulation betrieben wird. Der Simulator kann beispielsweise zumindest ein Speichermedium und/oder zumindest ein Kommunikationsnetzwerk der Zielplattform simulieren. Der Simulator kann eine Software sein.In order to still simulate or simulate operation on a different hardware platform, namely the target platform, for the at least one virtual machine and / or the at least one application program, a simulated hardware platform is simulated in a digital simulator. A simulator is also operated in which a further hardware platform, namely the target platform, is operated as a simulation. The simulator can, for example, simulate at least one storage medium and / or at least one communication network of the target platform. The simulator can be software.

Um nun der zumindest einen virtuellen Maschine und/oder ihrem zumindest einen Applikationsprogramm „vorzutäuschen“, dass sie auf dieser simulierten Hardwareplattform betrieben wird oder läuft, wird zumindest eine oder jede ihrer Hypercall-Nachrichten in den Simulator umgeleitet und die jeweilige durch die umgeleitete Hypercall-Nachricht angefragte privilegierte Operation in der simulierten Hardwareplattform ausgeführt. Wann immer also mittels einer solchen Hypercall-Nachricht auf eine Hardwareplattform zugegriffen wird, kann diese Hypercall-Nachricht in den Simulator weitergeleitet und die privilegierte Operation an oder in der simulierten Hardwareplattform ausgeführt werden (also innerhalb des Simulators). Das Ergebnis dieser privilegierten Operation im Simulator wird dann in der beschriebenen Weise an die aufrufende virtuelle Maschine und/oder deren Applikationsprogramms in der realen Hardwareplattform zurückgemeldet oder dieser bereitgestellt. Aus Sicht der virtuellen Maschine/des Applikationsprogramms ergibt sich somit der Effekt, dass der Betrieb auf der simulierten Hardwareplattform stattzufinden scheint, also beispielsweise in einem Kraftfahrzeug, und nicht auf der realen Hardwareplattform, beispielsweise einer Testvorrichtung, die beispielsweise in einem Labor aufgebaut sein kann.In order to "simulate" the at least one virtual machine and / or its at least one application program that it is being operated or running on this simulated hardware platform, at least one or each of its hypercall messages is diverted into the simulator and the respective hypercall message Message requested privileged operation executed in the simulated hardware platform. Whenever a hardware platform is accessed using such a hypercall message, this hypercall message can be forwarded to the simulator and the privileged operation can be carried out on or in the simulated hardware platform (i.e. within the simulator). The result of this privileged operation in the simulator is then reported back to the calling virtual machine and / or its application program in the real hardware platform in the manner described, or made available to the latter. From the point of view of the virtual machine / application program, the effect is that operation appears to take place on the simulated hardware platform, for example in a motor vehicle, and not on the real hardware platform, for example a test device that can be set up in a laboratory, for example.

In der Testvorrichtung ist es nun möglich, eine virtuelle Maschine, die ohne simulative Vermittlung oder Kopplung direkt auf dem Prozessorsystem der realen Hardwareplattform läuft, in eine simulierte Hardwareplattform einzubinden.In the test device it is now possible to integrate a virtual machine, which runs directly on the processor system of the real hardware platform without simulative switching or coupling, into a simulated hardware platform.

Durch die Erfindung ergibt sich der Vorteil, dass der Betrieb der zumindest einen virtuellen Maschine selbst nicht im Simulator stattfinden muss und somit der beschriebene Overhead nicht vorhanden ist. Stattdessen kann der Betrieb der jeweiligen virtuellen Maschine direkt auf der realen Hardwareplattform ohne Vermittlung eines Simulators erfolgen. Dies erspart die beschriebene Einbuße in der Performanz oder Ausführungsgeschwindigkeit. Es ist lediglich eine Simulation der Zielplattform, also der Hardwareplattform, auf welcher später die jeweilige virtuelle Maschine mit dem zumindest einen Applikationsprogramm ohne Simulator laufen soll, notwendig. Ein Datenaustausch mit dem Simulator kann z.B. über eine simulierte Netzwerkschnittstelle erfolgen.The invention has the advantage that the operation of the at least one virtual machine itself does not have to take place in the simulator and thus the described overhead does not exist. Instead, the respective virtual machine can be operated directly on the real hardware platform without the intermediary of a simulator. This saves the described loss in performance or execution speed. All that is required is a simulation of the target platform, that is to say the hardware platform on which the respective virtual machine with the at least one application program is later to run without a simulator. Data can be exchanged with the simulator via a simulated network interface, for example.

Gemäß der Erfindung wird in dem Simulator ein simulationsseitiger Hypervisor für die simulierte Hardwareplattform betrieben. Mit anderen Worten wird durch den Simulator ein simulativer Hypervisor auf der simulierten Hardwareplattform betrieben. Hierzu kann im Simulator ein simuliertes Prozessorsystem bereitgestellt werden. Der simulierte Hypervisor führt zu der jeweiligen umgeleiteten Hypercall-Nachricht die darin angefragte privilegierte Operation in der simulierten Hardwareplattform aus. Mit anderen Worten stellt sich durch den simulationsseitigen Hypervisor die simulierte Hardwareplattform für die virtuelle Maschine genauso dar wie eine reale Hardwareplattform, auf welcher ein (realer) Hypervisor läuft. Somit ist für einen Zugriff auf die simulierte Hardwareplattform keine Anpassung der Hypercall-Nachrichten (im Vergleich zu einer Hypercall-Nachricht für eine reale Hardwareplattform) notwendig, da ja direkt der simulierte Hypervisor angesprochen werden kann. Natürlich kann in einer Simulation auch zusätzlich zu einem simulativen Hypervisor auch ein simulierter höherer Exception Level oder Ring oder Domain bereitgestellt werden, in welchem dann beispielsweise ein simuliertes TEE ausgeführt werden kann, das ebenfalls per umgeleitete Nachrichten von einer virtuellen Maschine aus von außerhalb des Simulators angesteuert werden kann.According to the invention, a simulation-side hypervisor for the simulated hardware platform is operated in the simulator. In other words, the simulator operates a simulative hypervisor on the simulated hardware platform. For this purpose, a simulated processor system can be provided in the simulator. The simulated hypervisor executes the privileged operation requested therein in the simulated hardware platform for the respective redirected hypercall message. In other words, the simulated hardware platform for the virtual machine is represented by the simulation-side hypervisor in exactly the same way as a real hardware platform on which a (real) hypervisor runs. Thus, no adaptation of the hypercall messages (compared to a hypercall message for a real hardware platform) is necessary for access to the simulated hardware platform, since the simulated hypervisor can be addressed directly. Of course, in addition to a simulative hypervisor, a simulated higher exception level or ring or domain can also be provided in a simulation, in which, for example, a simulated TEE can be executed, which is also controlled by redirected messages from a virtual machine from outside the simulator can be.

Zu der Erfindung gehören auch Ausführungsformen, durch die sich zusätzliche Vorteile ergeben.The invention also includes embodiments which result in additional advantages.

Um sicherzustellen, dass nicht doch (unkontrolliert) aus der virtuellen Maschine ein Zugriff auf die reale Hardwareplattform erfolgt, wo eigentlich eine Umleitung in den Simulator auf die simulierte Hardwareplattform gewünscht ist, ist gemäß einer Ausführungsform vorgesehen, dass die jeweilige virtuelle Maschine und/oder das jeweilige Applikationsprogramm ausschließlich über die Hypercall-Nachrichten mit der jeweiligen Hardwareplattform interagiert. Mit anderen Worten ist verhindert, dass ein Zugriff auf eine privilegierte Operation mittels eines anderen Mechanismus als einer Hypercall-Nachricht erfolgen kann. Dies kann in der beschriebenen Weise beispielsweise hardwaretechnisch durch Bereitstellen der beschriebenen Exception-Level oder Ringe oder Domains erfolgen. Mit anderen Worten erfolgt für die jeweilige virtuelle Maschine und ihr zumindest eine Applikationsprogramm eine vollständige Virtualisierung.In order to ensure that there is no (uncontrolled) access to the real hardware platform from the virtual machine, where a diversion into the simulator to the simulated hardware platform is actually desired, according to one embodiment it is provided that the respective virtual machine and / or the respective application program interacts with the respective hardware platform exclusively via the hypercall messages. In other words, it is prevented that a privileged operation can be accessed by means of a mechanism other than a hypercall message. This can be done in the manner described, for example in terms of hardware, by providing the exception levels or rings or domains described. In other words, a complete virtualization takes place for the respective virtual machine and its at least one application program.

In einer Ausführungsform wird in dem Prozessorsystem selbst (also der realen Hardwareplattform) unabhängig von dem Simulator ein (realer) systemseitiger Hypervisor für die reale Hardwareplattform betrieben. Dieser systemseitige Hypervisor betreibt die zumindest eine virtuelle Maschine in der realen Hardwareplattform. Mit anderen Worten erfolgt hier die Virtualisierung direkt, ohne einen Simulationsschritt oder eine Simulation. Damit ergibt sich ein Betrieb der jeweiligen virtuellen Maschine mit ihrem zumindest einen Anwendungsprogramm ohne Zeitverlust oder Performanzverlust, wie sie sich durch simulative Zwischenschritte ergeben könnten.In one embodiment, a (real) system-side hypervisor for the real hardware platform is operated in the processor system itself (that is to say the real hardware platform) independently of the simulator. This system-side hypervisor operates the at least one virtual machine in the real hardware platform. In other words, the virtualization takes place here directly, without a simulation step or simulation. This results in an operation of the respective virtual machine with its at least one application program without loss of time or loss of performance, as could result from simulative intermediate steps.

In einer Ausführungsform wird jede der Hypercall-Nachrichten (immer dann, wenn sie anfällt) zu dem (realen) systemseitigen Hypervisor übertragen, also nicht nur einige, und der systemseitige Hypervisor entscheidet jeweils anhand einer vorbestimmten Zuordnungsvorschrift, welche der Hypervisor Hypercall-Nachrichten in den Simulator umgeleitet wird und welche der Hypercall-Nachrichten der systemseitige Hypervisor selbst behält. Die Zuordnungsvorschrift kann als eine Zuordnungstabelle ausgestaltet sein. Anhand der Zuordnungsvorschrift kann der reale oder systemseitige Hypervisor entscheiden, ob die jeweilige Hypercall-Nachricht tatsächlich in der simulierten Hardwareplattform ausgeführt werden soll (Hypercall-Nachricht in den Simulator umleiten) oder ob die in einer Hypercall-Nachricht angefragte privilegierte Operation sich auf die reale Hardwareplattform beziehen soll. Für solche Hypervisor-Nachrichten, die der systemseitige Hypervisor selbst behält, führt der systemseitige Hypervisor dann die darin jeweils angefragte privilegierte Operation in der realen Hardwareplattform aus (also außerhalb des Simulators). Mit anderen Worten ist also einer virtuellen Maschine und/oder ihrem jeweiligen Applikationsprogramm ermöglicht, auch auf die reale Hardwareplattform zuzugreifen. Hierdurch ist dann ermöglicht, außerhalb der simulierten Hardwareplattform einen Betrieb einer virtuellen Maschine auf der realen Hardwareplattform von der virtuellen Maschine auszusteuern (beispielsweise eine Speicherverwaltung des realen Arbeitsspeichers vorzunehmen). Eine alternative Ausführungsform kann vorsehen, dass zumindest ein Applikationsprogramm und/oder zumindest eine virtuelle Maschine selbst entscheidet, ob eine Hypercall-Nachricht an den systemseitigen Hypervisor oder an den simulationsseitigen Hypervisor gesendet wird. Dazu kann dann die jeweilige virtuelle Maschine (also das Betriebssystem und/oder das Applikationsprogramm) entsprechend umprogrammiert werden, damit es Hypercall-Nachrichten an zwei unterschiedliche Adressaten (systemseitiger und simulationsseitiger Hypervisor) senden kann. Eine weitere Ausführungsform sieht vor, dass jede Hypercall-Nachricht ungefiltert an den simulationsseitigen Hypervisor umgeleitet wird, das heißt, die jeweilige virtuelle Maschine interagiert mittels der Hypercall-Nachricht ausschließlich mit der simulierten Hardwareplattform.In one embodiment, each of the hypercall messages (whenever it occurs) is transmitted to the (real) system-side hypervisor, i.e. not just some, and the system-side hypervisor decides in each case on the basis of a predetermined assignment rule which of the hypervisor hypercall messages in the Simulator is redirected and which of the hypercall messages the system-side hypervisor keeps itself. The assignment rule can be designed as an assignment table. On the basis of the assignment rule, the real or system-based hypervisor can decide whether the respective hypercall message should actually be executed in the simulated hardware platform (redirect hypercall message to the simulator) or whether the privileged operation requested in a hypercall message relates to the real hardware platform should relate. For such hypervisor messages that the system-side hypervisor itself keeps, the system-side hypervisor then executes the privileged operation requested therein in the real hardware platform (i.e. outside the simulator). In other words, a virtual machine and / or its respective application program is also enabled to access the real hardware platform. This then makes it possible to control operation of a virtual machine on the real hardware platform from the virtual machine outside of the simulated hardware platform (for example, to carry out memory management of the real main memory). An alternative embodiment can provide that at least one application program and / or at least one virtual machine itself decides whether a hypercall message is sent to the hypervisor on the system side or to the hypervisor on the simulation side. For this purpose, the respective virtual machine (i.e. the operating system and / or the application program) can be reprogrammed accordingly so that it can send hypercall messages to two different addressees (system-side and simulation-side hypervisor). Another embodiment provides that each hypercall message is redirected unfiltered to the simulation-side hypervisor, that is, the respective virtual machine interacts exclusively with the simulated hardware platform by means of the hypercall message.

Indem aber der systemseitige Hypervisor entscheidet, welche Hypercall-Nachricht umgeleitet werden soll und welche durch den systemseitigen Hypervisor selbst ausgeführt wird, ergibt sich der Vorteil, dass weder die virtuelle Maschine (das heißt ihr Betriebssystem) noch ein Applikationsprogramm umprogrammiert oder angepasst werden muss.However, because the system-side hypervisor decides which hypercall message is to be redirected and which is executed by the system-side hypervisor itself, there is the advantage that neither the virtual machine (i.e. its operating system) nor an application program has to be reprogrammed or adapted.

In einer Ausführungsform betreibt der systemseitige Hypervisor auch den Simulator in der realen Hardwareplattform. Mit anderen Worten wird das Prozessorsystem der realen Hardwareplattform auch dazu verwendet, den Programmcode oder das Programm des Simulators auszuführen. Hierdurch ergibt sich eine besonders kompakte Testvorrichtung, in welcher die Hardwareplattform, also insbesondere das Prozessorsystem der Hardwareplattform, auch den Simulator selbst betreiben kann. Dies ist beispielsweise auf einer ARM-Architektur (Hardwareplattform mit ARM-Prozessorsystem) möglich.In one embodiment, the system-side hypervisor also operates the simulator in the real hardware platform. In other words, the processor system of the real hardware platform is also used to execute the program code or the program of the simulator. This results in a particularly compact test device in which the hardware platform, that is to say in particular the processor system of the hardware platform, can also operate the simulator itself. This is possible, for example, on an ARM architecture (hardware platform with ARM processor system).

In einer alternativen Ausführungsform wird der Simulator in einem von dem Prozessorsystem verschiedenen weiteren Prozessorsystem betrieben. So kann beispielsweise das Prozessorsystem der realen Hardwareplattform für die zumindest eine virtuelle Maschine eine ARM-Architektur vorsehen, und der Simulator kann in einer x86-Architektur betrieben werden. Eine Kopplung der Prozessorsysteme kann beispielsweise über eine Netzwerkschnittstelle (z.B. Infiniband) erfolgen, um die Hypercall-Nachrichten in den Simulator zu übertragen und/oder ein jeweiliges Ergebnis der durch die Hypercall-Nachricht angeforderten privilegierten Operation zurück zu der jeweiligen virtuellen Maschine zu übertragen.In an alternative embodiment, the simulator is operated in a further processor system that is different from the processor system. For example, the processor system of the real hardware platform can provide an ARM architecture for the at least one virtual machine, and the simulator can be operated in an x86 architecture. The processor systems can be coupled, for example, via a network interface (e.g. Infiniband) in order to transfer the hypercall messages to the simulator and / or to transfer a respective result of the privileged operation requested by the hypercall message back to the respective virtual machine.

In einer Ausführungsform ist durch zumindest eine der Hardwareplattformen (also die reale Hardwareplattform und/oder die im Simulator simulierte Hardwareplattform) eine Hardware (beispielsweise der beschriebene Arbeitsspeicher und/oder ein Speichermedium und/oder ein Port (Anschluss für Sensor und/oder Aktuator)) umfasst. Zusätzlich oder alternativ dazu kann durch die jeweilige Hardwareplattform eine Kommunikation mit einem weiteren Applikationsprogramm umfasst sein, also beispielsweise ein Anschluss an einem Datenbus oder ein Datennetzwerk, über welches Datenpakete ausgesendet und/oder empfangen werden. Insbesondere ist diese Kommunikation in der simulierten Hardwareplattform vorgesehen, so dass durch die Kommunikation ein Fahrbetrieb eines Kraftfahrzeugs dadurch simulierter werden kann, dass über die Kommunikation Meldungen oder Datenpakete von zumindest einem anderen Steuergerät des Kraftfahrzeugs nachgebildet werden können und Steuerbefehle aus der zumindest einen virtuellen Maschine mittels der Kommunikation an (simulierte) Steuergeräte und/oder Aktuatoren und/oder Sensoren ausgegeben werden können und deren Reaktion simuliert werden kann. Mit anderen Worten kann mittels der Kommunikation das zumindest eine Applikationsprogramm der zumindest einen virtuellen Maschine mit zumindest einem anderen Prozess in der simulierten Hardwareplattform kommunizieren. Eine solche simulierte Kommunikation kann beispielsweise durch einen Zugriff auf ein Ethernet-Datennetzwerk realisiert werden. Diesen Zugriff kann ein simulationsseitiger Hypervisor in Reaktion auf eine Hypercall-Nachricht gewähren. Natürlich ist in der simulierten Hardwareplattform die Hardware und/oder die Kommunikation lediglich als Simulation vorhanden, das heißt programmtechnisch oder durch Programmcode nachgebildet.In one embodiment, at least one of the hardware platforms (i.e. the real hardware platform and / or the hardware platform simulated in the simulator) provides hardware (for example the described main memory and / or a storage medium and / or a port (connection for sensor and / or actuator)) includes. Additionally or alternatively, the respective hardware platform can include communication with a further application program, for example a connection to a data bus or a data network via which data packets are sent and / or received. In particular, this communication is provided in the simulated hardware platform, so that driving operation of a motor vehicle can be simulated through the communication that messages or data packets from at least one other control device of the motor vehicle can be simulated via the communication and control commands from the at least one virtual machine can be simulated the Communication to (simulated) control devices and / or actuators and / or sensors can be output and their reaction can be simulated. In other words, the at least one application program of the at least one virtual machine can communicate with at least one other process in the simulated hardware platform by means of the communication. Such a simulated communication can be realized, for example, by accessing an Ethernet data network. A simulation-side hypervisor can grant this access in response to a hypercall message. Of course, the hardware and / or the communication is only present in the simulated hardware platform as a simulation, that is to say reproduced in terms of program technology or by program code.

In einer Ausführungsform ist als jeweilige privilegierte Operation entsprechend zumindest eine der folgenden vorgesehen: ein Zugriff auf einen Datenspeicher der jeweiligen Hardwareplattform (also beispielsweise ein Speichermedium und/oder den Arbeitsspeicher), ein Zugriff auf eine Speicherseite (Page) eines Arbeitsspeichers der Hardwareplattform, ein Zugriff auf eine Kommunikationsschnittstelle der jeweiligen Hardwareplattform, der Zugriff auf ein Gerät der jeweiligen Hardwareplattform. In der simulierten Hardwareplattform handelt es sich dann jeweils um eine simulative Nachbildung, also beispielsweise ein simuliertes Gerät.In one embodiment, at least one of the following is provided as the respective privileged operation: access to a data memory of the respective hardware platform (i.e. for example a storage medium and / or the main memory), access to a memory page (page) of a main memory of the hardware platform, access to a communication interface of the respective hardware platform, access to a device of the respective hardware platform. The simulated hardware platform is then a simulative replica, for example a simulated device.

In einer Ausführungsform wird die Entwicklung eines Applikationsprogramms und/oder einer virtuellen Maschine für ein Steuergerät eines Kraftfahrzeugs unterstützt. Hierzu bildet die simulierte Hardwareplattform ein Steuergerät in einem Kraftfahrzeug oder einen Verbund von Steuergeräten in einem Kraftfahrzeug oder einen Teil des Kraftfahrzeugs nach. Mit anderen Worten ergibt sich aus Sicht der jeweiligen virtuellen Maschine durch den Zugriff über die Hypercall-Nachrichten eine Wechselwirkung oder Interaktion mit zumindest einem anderen Steuergerät in einem Kraftfahrzeug oder einem Verbund von Steuergeräten. Damit kann in der virtuellen Maschine ein Applikationsprogramm in derselben Weise betrieben werden, wie es sich in der Systemumgebung „Kraftfahrzeug“ ergeben würde. Das simulierte Kraftfahrzeug ist bevorzugt als Kraftwagen, insbesondere als Personenkraftwagen oder Lastkraftwagen, oder als Personenbus oder Motorrad ausgestaltet.In one embodiment, the development of an application program and / or a virtual machine for a control device of a motor vehicle is supported. For this purpose, the simulated hardware platform simulates a control device in a motor vehicle or a network of control devices in a motor vehicle or part of the motor vehicle. In other words, from the point of view of the respective virtual machine, access via the hypercall messages results in an interaction with at least one other control device in a motor vehicle or a network of control devices. This means that an application program can be operated in the virtual machine in the same way as it would in the “motor vehicle” system environment. The simulated motor vehicle is preferably designed as a motor vehicle, in particular as a passenger vehicle or truck, or as a passenger bus or motorcycle.

In einer Ausführungsform wird als das zumindest eine Applikationsprogramm eine Software für ein Steuergerät eines Kraftfahrzeugs ausgeführt. Mit anderen Worten kann in der virtuellen Maschine das zumindest eine Applikationsprogramm entwickelt und/oder erweitert werden und dann nach Fertigstellung in ein Steuergerät eines Kraftfahrzeugs übertragen werden, wo es dann unmittelbar in Betrieb genommen werden kann und für die Hypercall-Nachrichten in dem Kraftfahrzeug eine Fahrzeugfunktionalität bereitstellen kann, ohne noch einmal aufgrund des Wechsels von der Hardwareplattform in das Steuergerät angepasst werden zu müssen.In one embodiment, software for a control device of a motor vehicle is executed as the at least one application program. In other words, the at least one application program can be developed and / or expanded in the virtual machine and then transferred to a control unit of a motor vehicle after completion, where it can then be put into operation immediately and a vehicle functionality for the hypercall messages in the motor vehicle can provide without having to be adapted again due to the change from the hardware platform to the control unit.

Um ein solches Applikationsprogramm auch ohne eine Notwendigkeit eines Betriebs in einem Kraftfahrzeug entwickeln zu können, ist durch die Erfindung auch eine Testvorrichtung bereitgestellt, die ein Prozessorsystem aufweist, für welches in der Testvorrichtung ein Programmcode bereitgestellt ist, der dazu eingerichtet ist, in dem Prozessorsystem zumindest eine virtuelle Maschine zu betreiben. Ein solches Prozessorsystem kann beispielsweise auf einer ARM-Architektur oder einer x86-Architektur beruhen. Der Programmcode für das Prozessorsystem ist des Weiteren dazu eingerichtet, in dem Prozessorsystem oder in einem weiteren Prozessorsystem zusätzlich einen Simulator für eine simulierte Hardwareplattform zu betreiben. Somit steht auf dem Prozessorsystem oder (wie bereits beschrieben in einem weiteren Prozessorsystem) ein Simulator bereit, welcher eine simulierte Hardwareplattform nachbildet, die sich von der eigentlichen Hardwareplattform des Prozessorsystems der Testvorrichtung unterscheiden kann. Die simulierte Hardwareplattform kann in der beschriebenen Weise beispielsweise eine Fahrzeug-Systemumgebung sein. Der Programmcode für die Testvorrichtung ist dazu eingerichtet, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Somit steht mit der Testvorrichtung eine Möglichkeit bereit, ohne Kraftfahrzeug dennoch ein Applikationsprogramm beispielsweise für ein Steuergerät eines Kraftfahrzeugs zu entwickeln und/oder zu testen.In order to be able to develop such an application program even without the need to operate it in a motor vehicle, the invention also provides a test device which has a processor system for which a program code is provided in the test device that is set up in the processor system at least operate a virtual machine. Such a processor system can be based on an ARM architecture or an x86 architecture, for example. The program code for the processor system is also set up to additionally operate a simulator for a simulated hardware platform in the processor system or in a further processor system. Thus, a simulator is available on the processor system or (as already described in a further processor system), which simulates a simulated hardware platform which can differ from the actual hardware platform of the processor system of the test device. The simulated hardware platform can be, for example, a vehicle system environment in the manner described. The program code for the test device is set up to carry out an embodiment of the method according to the invention. The test device thus provides a possibility of developing and / or testing an application program, for example for a control unit of a motor vehicle, without a motor vehicle.

Um ein Prozessorsystem dahingehend zu ertüchtigen, dass es als erfindungsgemäße Testvorrichtung betrieben werden kann, ist durch die Erfindung auch ein Speichermedium mit einem Programmcode bereitgestellt. Dieser Programmcode umfasst Programminstruktionen, die dazu eingerichtet sind, bei Ausführen in einer Ausführungsform der beschriebenen Testvorrichtung (also mit zumindest einem Prozessorsystem) eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Ein solches Speichermedium kann beispielsweise eine DVD (Digital Versatile Disc - optischer Datenspeicher) oder ein Flash-Speicher oder eine Festplatte oder ein Arbeitsspeicher (RAM) sein.In order to upgrade a processor system so that it can be operated as a test device according to the invention, the invention also provides a storage medium with a program code. This program code comprises program instructions which are set up to carry out an embodiment of the method according to the invention when executed in one embodiment of the test device described (that is, with at least one processor system). Such a storage medium can be, for example, a DVD (Digital Versatile Disc - optical data storage device) or a flash memory or a hard disk or a working memory (RAM).

Die Erfindung umfasst auch Realisierungen, in welchen auch jeweils eine Kombination der Merkmale mehrerer der beschriebenen Ausführungsformen realisiert ist, soweit diese Ausführungsformen nicht als sich gegenseitig ausschließend beschrieben worden sind.The invention also includes implementations in which a combination of the features of several of the described embodiments is implemented in each case, insofar as these embodiments have not been described as mutually exclusive.

Zu der Erfindung gehört auch ein Steuergerät für ein Kraftfahrzeug. Das Steuergerät kann eine Datenverarbeitungsvorrichtung oder eine Prozessoreinrichtung aufweisen, ein Applikationsprogramm aus der erfindungsgemäßen Testvorrichtung aufweist. Die Prozessoreinrichtung kann hierzu zumindest einen Mikroprozessor und/oder zumindest einen Mikrocontroller und/oder zumindest einen FPGA (Field Programmable Gate Array) und/oder zumindest einen DSP (Digital Signal Processor) aufweisen. Des Weiteren kann die Prozessoreinrichtung den Programmcode aufweisen, der in einem Datenspeicher der Prozessoreinrichtung gespeichert sein kann.The invention also includes a control device for a motor vehicle. The control unit can have a data processing device or a processor device, have an application program from the test device according to the invention. For this purpose, the processor device can have at least one microprocessor and / or at least one microcontroller and / or at least one FPGA (Field Programmable Gate Array) and / or at least one DSP (Digital Signal Processor). Furthermore, the processor device can have the program code, which can be stored in a data memory of the processor device.

Im Folgenden sind Ausführungsbeispiele der Erfindung beschrieben. Hierzu zeigt die einzige Figur:

  • Fig. eine schematische Darstellung einer Ausführungsform der erfindungsgemäßen Testvorrichtung.
Exemplary embodiments of the invention are described below. The only figure shows:
  • 1 shows a schematic representation of an embodiment of the test device according to the invention.

Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.The exemplary embodiments explained below are preferred embodiments of the invention. In the exemplary embodiments, the described components of the embodiments each represent individual features of the invention which are to be considered independently of one another and which also further develop the invention in each case independently of one another. Therefore, the disclosure is intended to include combinations of the features of the embodiments other than those shown. Furthermore, the described embodiments can also be supplemented by further features of the invention that have already been described.

In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.In the figures, the same reference symbols denote functionally identical elements.

In der Figur ist eine Testvorrichtung 10 dargestellt, die beispielsweise in einem Entwicklungslabor, das heißt einem Raum, in einem Gebäude oder in einem Server des Internets oder einer Cloud vorgesehen sein kann. Mittels der Testvorrichtung 10 kann eine Softwareentwicklung für ein Steuergerät eines Kraftfahrzeugs ermöglicht sein.In the figure is a test device 10 shown, which can be provided, for example, in a development laboratory, that is, a room, in a building or in a server of the Internet or a cloud. By means of the test device 10 software development for a control unit of a motor vehicle can be made possible.

Die Testvorrichtung 10 kann eine Hardwareplattform 11 aufweisen, in der insbesondere ein Prozessorsystem 12 vorhanden sein kann. Das Prozessorsystem 12 kann beispielsweise auf einer ARM-Architektur und/oder auf einer x86-Architektur basieren. Mittels der Testvorrichtung 10 kann zumindest ein Applikationsprogramm 13 entwickelt und/oder getestet werden, das in dem Kraftfahrzeug, beispielsweise jeweils in einem Steuergerät eines Kraftfahrzeugs, betrieben werden können soll, um einen Betrieb des Kraftfahrzeugs beispielsweise steuern zu können. Ein solches Applikationsprogramm 13 kann beispielsweise eine Fahrerassistenzfunktionalität realisieren. Um das jeweilige Applikationsprogramm 13 in der Testvorrichtung 10 testen zu können, muss aber die Hardwareplattform 11 nicht in besonderer Weise dahingehend ausgestaltet sein, dass die Hardwareplattform 11 den Fahrzeugkomponenten des Kraftfahrzeugs entspricht.The test device 10 can be a hardware platform 11 have, in particular a processor system 12th may be present. The processor system 12th can for example be based on an ARM architecture and / or on an x86 architecture. By means of the test device 10 can at least one application program 13th be developed and / or tested, which should be able to be operated in the motor vehicle, for example in each case in a control unit of a motor vehicle, in order to be able to control operation of the motor vehicle, for example. Such an application program 13th can, for example, implement a driver assistance functionality. To the respective application program 13th in the test device 10 To be able to test, however, the hardware platform must be 11 not be designed in a special way to the effect that the hardware platform 11 corresponds to the vehicle components of the motor vehicle.

In der Testvorrichtung 10 kann durch das Prozessorsystem 12 zumindest eine virtuelle Maschine 14 betrieben werden, durch welche jeweils ein Betriebssystem 15 gegeben oder vorhanden ist, auf welchem oder in welchem das jeweilige Applikationsprogramm 13 laufen kann oder betrieben werden kann.In the test device 10 can through the processor system 12th at least one virtual machine 14th operated by each of which an operating system 15th is given or available on which or in which the respective application program 13th can run or be operated.

Möchte nun das Applikationsprogramm 13 mit seiner Systemumgebung interagieren, so muss durch das Applikationsprogramm 13 und/oder das Betriebssystem 15, also allgemein durch die zugehörige virtuelle Maschine 14 eine Hypercall-Nachricht 16 abgesetzt oder erzeugt werden, durch welche ein Zugriff auf eine privilegierte Operation 17 angefordert wird, was einer Interaktion mit der Hardwareplattform, das heißt mit der Systemumgebung, entspricht. Insbesondere ist eine solche Hypercall-Nachricht 16 die einzige Möglichkeit, um von der jeweiligen virtuellen Maschine 14 aus mit der Hardwareplattform oder der Systemumgebung zu interagieren.Now I want the application program 13th interact with its system environment, it must be through the application program 13th and / or the operating system 15th , i.e. generally through the associated virtual machine 14th a hypercall message 16 issued or generated through which access to a privileged operation 17th is requested, which corresponds to an interaction with the hardware platform, that is, with the system environment. One such hypercall message is in particular 16 the only way to get from the respective virtual machine 14th from interacting with the hardware platform or the system environment.

Für den Betrieb der zumindest einen virtuellen Maschine 14 kann in dem Prozessorsystem 12 ein Hypervisor 18 betrieben werden, welcher die zumindest eine virtuelle Maschine 14 in dem Prozessorsystem 12 auf der Hardwareplattform 11 betreibt. Eine Hypercall-Nachricht 16 kann sich an diesen Hypervisor 18 richten.For the operation of the at least one virtual machine 14th can in the processor system 12th a hypervisor 18th operated, which the at least one virtual machine 14th in the processor system 12th on the hardware platform 11 operates. A hypercall message 16 can contact this hypervisor 18th judge.

Um nun für die Softwareentwicklung den Betrieb des zumindest einen Applikationsprogramms 13 in einem Kraftfahrzeug nachzustellen oder zu simulieren, kann in der Testvorrichtung 10 ein Simulator 19 betrieben werden. Der Simulator 19 kann ebenfalls auf der Hardwareplattform 11 laufen oder auf einer separaten Hardwareplattform. In dem Simulator 19 kann eine simulierte Hardwareplattform 20 bereitgestellt werden, bei der es sich beispielsweise um eine Hardwareplattform eines Kraftfahrzeugs handeln kann. Durch den Simulator 19 kann des Weiteren ein simulationsseitiger oder simulativer Hypervisor 21 bereitgestellt werden, welcher eine Interaktion mit der simulierten Hardwareplattform 20 über Hypercall-Nachrichten vorsieht.In order to now operate the at least one application program for software development 13th To be adjusted or simulated in a motor vehicle can be done in the test device 10 a simulator 19th operate. The simulator 19th can also be on the hardware platform 11 run or on a separate hardware platform. In the simulator 19th can be a simulated hardware platform 20th are provided, which can be, for example, a hardware platform of a motor vehicle. Through the simulator 19th can also be a simulation-side or simulative hypervisor 21 be provided, which an interaction with the simulated hardware platform 20th via hypercall messages.

Die jeweilige Hypercall-Nachricht 16 aus der zumindest einen virtuellen Maschine 14 kann nun beispielsweise durch den Hypervisor 18 der realen Hardwareplattform 11 umgeleitet werden, was symbolisch in der Figur durch eine jeweilige Umleitung 22 dargestellt ist. Eine umgeleitete Hypercall-Nachricht 16 kann vom simulationsseitigen Hypervisor 21 im Simulator 19 empfangen werden, und die mittels der Hypercall-Nachricht 16 angeforderte privilegierte Operation 17 kann auf der simulierten Hardwareplattform 20 ausgeführt werden. Ein jeweiliges Ergebnis 23 der privilegierten Operation 17 im Simulator 19 kann zurück an die virtuelle Maschine 14 übermittelt werden, sodass aus Sicht der jeweiligen virtuellen Maschine 14, also dem dort betriebenen Betriebssystem 15 und/oder in dem zumindest einen Applikationsprogramm 13, das Ergebnis 23 als Resultat der Interaktion mit der Hardwareplattform, hier dann also der simulierten Hardwareplattform 20, vorliegt. Das Ergebnis 23 kann z.B. ein Zeiger oder ein ID einer geöffnete Datei sein. Somit ergibt sich aus Sicht der jeweiligen virtuellen Maschine 14 der Effekt, dass die virtuelle Maschine 14 sich in einer Systemumgebung befindet, die durch die simulierte Hardwareplattform 20 gebildet ist. Die virtuelle Maschine 14 selbst ist dabei außerhalb des Simulators oder nicht Teil der Simulation.The respective hypercall message 16 from the at least one virtual machine 14th can now, for example, through the hypervisor 18th the real hardware platform 11 be redirected, which is symbolic in the figure by a respective redirection 22nd is shown. A redirected hypercall message 16 can from the simulation-side hypervisor 21 in the simulator 19th are received, and by means of the hypercall message 16 requested privileged operation 17th can be on the simulated hardware platform 20th are executed. A respective result 23 the privileged operation 17th in the simulator 19th can go back to the virtual machine 14th are transmitted so that from the point of view of the respective virtual machine 14th , i.e. the operating system operated there 15th and / or in the at least one application program 13th , the result 23 as a result of the interaction with the hardware platform, in this case the simulated hardware platform 20th , is present. The result 23 can be, for example, a pointer or an ID of an open file. This results from the point of view of the respective virtual machine 14th the effect that the virtual machine 14th is in a system environment that is supported by the simulated hardware platform 20th is formed. The virtual machine 14th itself is outside the simulator or not part of the simulation.

Optional kann anstelle der Umleitung durch den Hypervisor 18 vorgesehen sein, dass durch das Betriebssystem 15 und/oder das jeweilige Applikationsprogramm 13 selbst die Umleitung direkt unter Umgehung des Hypervisors 18 erfolgt, was in der Figur durch eine symbolische direkte Verbindung 24 dargestellt ist.Optionally, instead of being redirected by the hypervisor 18th be provided that by the operating system 15th and / or the respective application program 13th even the redirection directly bypassing the hypervisor 18th what takes place in the figure through a symbolic direct connection 24 is shown.

Wird die Umleitung 22 durch den Hypervisor 18 entschieden oder gesteuert, so kann mittels einer Zuordnungsvorschrift Z ermöglicht werden, dass nicht jede Hypercall-Nachricht 16 in den Simulator 19 umgeleitet wird, sondern optional zumindest eine Hypercall-Nachricht in einer direkten Ausführung 25 auf der realen Hardwareplattform 11 durchgeführt wird (also außerhalb des Simulators), so dass also eine privilegierte Operation 26 auf der realen Hardwareplattform 11 erfolgt.Will the diversion 22nd through the hypervisor 18th decided or controlled, so can by means of an assignment rule Z not every hypercall message 16 into the simulator 19th is redirected, but optionally at least one hypercall message in a direct execution 25th on the real hardware platform 11 is performed (i.e. outside the simulator), making it a privileged operation 26th on the real hardware platform 11 he follows.

Zusätzlich zu dem Hypervisor 18 kann auf der realen Hardwareplattform 11 und/oder auf der simulierten Hardwareplattform 20 jeweils auch ein TEE 28, 29 bereitgestellt werden.In addition to the hypervisor 18th can be on the real hardware platform 11 and / or on the simulated hardware platform 20th also a TEA each 28 , 29 to be provided.

Am Beispiel einer ARM-Architektur können sich folgende Privilegierungsstufen für eine Hardwareplattform ergeben: Exception-Level (EL) 0, 1, 2, 3, wobei EL3 die höchste Privilegierungsstufe darstellt und folgende Zuordnungen möglich sind.

  • EL0 Applikationsprogramme.
  • EL1 OS kernel / Betriebssystemkern.
  • EL2 Hypervisor.
  • EL3 Secure monitor / TEE.
Using the example of an ARM architecture, the following privilege levels can result for a hardware platform: Exception level (EL) 0 , 1 , 2 , 3 , whereby EL3 represents the highest privilege level and the following assignments are possible.
  • EL0 application programs.
  • EL1 OS kernel / operating system kernel.
  • EL2 hypervisor.
  • EL3 Secure monitor / TEE.

Insgesamt zeigen die Beispiele, wie eine hybride Simulation mit Virtualisierung bereitgestellt werden kann.Overall, the examples show how a hybrid simulation with virtualization can be provided.

Claims (12)

Verfahren zur Simulation einer Ausführung eines Applikationsprogramms (13) und eines Betriebssystems auf einer ersten Hardwareplattform, die eine Zielplattform für die Entwicklung des Applikationsprogramms (13) und/oder des Betriebssystems darstellt, wobei • die Simulation der Ausführung des Applikationsprogramms (13) und des Betriebssystems auf der ersten Hardwareplattform mittels einer zweiten, realen Hardwareplattform ausgeführt wird, die ein Prozessorsystem (12) umfasst, indem ■ die Ausführung der ersten Hardwareplattform als simulierte erste Hardwareplattform (20) in einem Simulator (19), der auf der zweiten Hardwareplattform oder einer anderen Hardwareplattform ausgeführt wird, simuliert wird, ■ das Applikationsprogramm (13) und das Betriebssystem in einer virtuellen Maschine (14) direkt ohne Vermittlung eines Simulators auf der zweiten Hardwareplattform ausgeführt werden, • das Applikationsprogramm und das Betriebssystem ausgebildet sind, auf einer Privilegierungsstufe ausgeführt zu werden, die die Ausführung privilegierter Hardware-Operationen der Hardwareplattform nicht erlaubt, • bei einer Anfrage des Applikationsprogramms bzw. des Betriebssystems zur Ausführung einer privilegierten Hardware-Operation eine Hypercall-Nachricht an die simulierte erste Hardwareplattform erzeugt wird und an die simulierte erste Hardwareplattform umgeleitet wird, • die simulierte erste Hardwareplattform ausgebildet ist, die durch die umgeleitete Hypercall-Nachricht angefragte privilegierte Operation in der ersten Hardwareplattform auf einer Privilegierungsstufe auszuführen, die die Ausführung privilegierter Hardware-Operationen der ersten Hardwareplattform erlaubt, indem in dem Simulator (19) ein simulationsseitiger Hypervisor (21) für die simulierte erste Hardwareplattform (20) betrieben wird und der simulationsseitige Hypervisor (21) zu einer jeweiligen umgeleiteten Hypercall-Nachricht (16) die darin angefragte privilegierte Operation (17) in der simulierten ersten Hardwareplattform (20) ausführt, • wobei die Prozessorarchitektur der ersten und der zweiten Hardwareplattform insofern gleich sind, als später das Betriebssystem und das Applikationsprogramm auf einer realen ersten Hardwareplattform ausgeführt werden sollen.Method for simulating an execution of an application program (13) and an operating system on a first hardware platform, which represents a target platform for the development of the application program (13) and / or the operating system, wherein • the simulation of the execution of the application program (13) and the operating system on the first hardware platform is carried out by means of a second, real hardware platform which comprises a processor system (12) by ■ the execution of the first hardware platform as a simulated first hardware platform (20) is simulated in a simulator (19) which is executed on the second hardware platform or another hardware platform, ■ the application program (13) and the operating system are executed in a virtual machine (14) directly on the second hardware platform without the intermediary of a simulator, • the application program and the operating system are designed to be executed at a privilege level that does not allow the execution of privileged hardware operations on the hardware platform, • When the application program or the operating system requests the execution of a privileged hardware operation, a hypercall message is generated to the simulated first hardware platform and is diverted to the simulated first hardware platform, • the simulated first hardware platform is designed to execute the privileged operation requested by the redirected hypercall message in the first hardware platform at a privilege level that allows privileged hardware operations to be carried out on the first hardware platform by using a simulation-side hypervisor (19) in the simulator (19). 21) is operated for the simulated first hardware platform (20) and the simulation-side hypervisor (21) executes the privileged operation (17) requested therein in the simulated first hardware platform (20) for a respective redirected hypercall message (16), • the processor architecture of the first and the second hardware platform being the same insofar as the operating system and the application program are to be executed later on a real first hardware platform. Verfahren nach Anspruch 1, wobei die virtuelle Maschine (14) und/oder das jeweilige Applikationsprogramm (13) ausschließlich über die Hypercall-Nachrichten (16) mit der ersten Hardwareplattform interagiert.Procedure according to Claim 1 , the virtual machine (14) and / or the respective application program (13) interacting with the first hardware platform exclusively via the hypercall messages (16). Verfahren nach einem der vorhergehenden Ansprüche, wobei in dem Prozessorsystem (12) unabhängig von dem Simulator (19) ein systemseitiger Hypervisor (18) für die reale Hardwareplattform (11) betrieben wird, welcher die virtuelle Maschine (14) in der realen Hardwareplattform (11) betreibt.Method according to one of the preceding claims, wherein in the processor system (12) A system-side hypervisor (18) for the real hardware platform (11) is operated independently of the simulator (19) and operates the virtual machine (14) in the real hardware platform (11). Verfahren nach Anspruch 3, wobei jede Hypercall-Nachricht (16) zu dem systemseitigen Hypervisor (18) übertragen wird und der systemseitige Hypervisor (18) anhand einer vorbestimmten Zuordnungsvorschrift (Z) entscheidet, welche der Hypercall-Nachrichten (16) in den Simulator (19) umgeleitet wird und welche der Hypercall-Nachrichten (16) der systemseitige Hypervisor (18) selbst behält und die darin jeweils angefragte privilegierte Operation (17) in der realen Hardwareplattform (11) ausführt.Procedure according to Claim 3 , each hypercall message (16) being transmitted to the system-side hypervisor (18) and the system-side hypervisor (18) deciding on the basis of a predetermined assignment rule (Z) which of the hypercall messages (16) is diverted to the simulator (19) and which of the hypercall messages (16) the system-side hypervisor (18) itself retains and executes the privileged operation (17) requested therein in the real hardware platform (11). Verfahren nach einem der Ansprüche 3 oder 4, wobei der systemseitige Hypervisor (18) auch den Simulator (19) in der realen Hardwareplattform (11) betreibt.Method according to one of the Claims 3 or 4th , the system-side hypervisor (18) also operating the simulator (19) in the real hardware platform (11). Verfahren nach einem der Ansprüche 1 bis 4, wobei der Simulator (19) in einem von dem Prozessorsystem (12) verschiedenen weiteren Prozessorsystem betrieben wird.Method according to one of the Claims 1 until 4th , wherein the simulator (19) is operated in a further processor system different from the processor system (12). Verfahren nach einem der vorhergehenden Ansprüche, wobei durch die simulierte Hardwareplattform (20) und/oder die reale Hardwareplattform (11) zumindest eine Hardwarekomponente und/oder eine Kommunikation mit einem weiteren Applikationsprogramm (13) umfasst ist.Method according to one of the preceding claims, wherein the simulated hardware platform (20) and / or the real hardware platform (11) includes at least one hardware component and / or communication with a further application program (13). Verfahren nach einem der vorhergehenden Ansprüche, wobei als jeweilige privilegierte Operation (17), Hardware-Operation, zumindest eine der folgenden vorgesehen ist: ein Zugriff auf einen Datenspeicher der jeweiligen Hardwareplattform, ein Zugriff auf eine Speicherseite eines Arbeitsspeichers der jeweiligen Hardwareplattform, ein Zugriff auf eine Kommunikationsschnittstelle der jeweiligen Hardwareplattform, der Zugriff auf ein Gerät der jeweiligen Hardwareplattform.Method according to one of the preceding claims, wherein at least one of the following is provided as the respective privileged operation (17), hardware operation: access to a data memory of the respective hardware platform, access to a memory page of a main memory of the respective hardware platform, access to a communication interface of the respective hardware platform, access to a device of the respective hardware platform. Verfahren nach einem der vorhergehenden Ansprüche, wobei die simulierte Hardwareplattform (20) ein Steuergerät in einem Kraftfahrzeug oder einen Verbund von Steuergeräten in einem Kraftfahrzeug oder einen Teil des Kraftfahrzeugs nachbildet.Method according to one of the preceding claims, wherein the simulated hardware platform (20) simulates a control device in a motor vehicle or a network of control devices in a motor vehicle or part of the motor vehicle. Verfahren nach einem der vorhergehenden Ansprüche, wobei als das zumindest eine Applikationsprogramm (13) eine Software für ein Steuergerät eines Kraftfahrzeug ausgeführt wird.Method according to one of the preceding claims, wherein software for a control device of a motor vehicle is executed as the at least one application program (13). Testvorrichtung (10) mit einem Prozessorsystem (12), wobei in der Testvorrichtung (10) ein Programmcode dazu eingerichtet ist, zumindest eine virtuelle Maschine (14) in dem Prozessorsystem (12) zu betreiben, dadurch gekennzeichnet, dass der Programmcode dazu eingerichtet ist, in dem Prozessorsystem (12) oder in einem weiteren Prozessorsystem zusätzlich einen Simulator (19) für eine simulierte Hardwareplattform (20) zu betreiben, wobei der Programmcode dazu eingerichtet ist, ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.Test device (10) with a processor system (12), program code being set up in the test device (10) to operate at least one virtual machine (14) in the processor system (12), characterized in that the program code is set up to operating a simulator (19) for a simulated hardware platform (20) in the processor system (12) or in a further processor system, the program code being set up to carry out a method according to one of the preceding claims. Speichermedium mit einem Programmcode, der Programminstruktionen umfasst, die dazu eingerichtet sind, bei Ausführen in einer Testvorrichtung (10) mit zumindest einem Prozessorsystem (12) ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.Storage medium with a program code which comprises program instructions which are set up, when executed in a test device (10) with at least one processor system (12), a method according to one of the Claims 1 until 10 perform.
DE102020115820.3A 2020-06-16 2020-06-16 Test device and method and storage medium for operating a processor system Active DE102020115820B3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020115820.3A DE102020115820B3 (en) 2020-06-16 2020-06-16 Test device and method and storage medium for operating a processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020115820.3A DE102020115820B3 (en) 2020-06-16 2020-06-16 Test device and method and storage medium for operating a processor system

Publications (1)

Publication Number Publication Date
DE102020115820B3 true DE102020115820B3 (en) 2021-10-21

Family

ID=77920176

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020115820.3A Active DE102020115820B3 (en) 2020-06-16 2020-06-16 Test device and method and storage medium for operating a processor system

Country Status (1)

Country Link
DE (1) DE102020115820B3 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214277A (en) 2010-04-01 2011-10-12 中国科学院计算技术研究所 Method and device for establishing trusted environments for virtual machine system of multicore processor
WO2014137815A1 (en) 2013-03-05 2014-09-12 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214277A (en) 2010-04-01 2011-10-12 中国科学院计算技术研究所 Method and device for establishing trusted environments for virtual machine system of multicore processor
WO2014137815A1 (en) 2013-03-05 2014-09-12 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Gao et al. (Lei Gao, Stefan Kraemer, Rainer Leupers, Gerd Ascheid, and Heinrich Meyr, „A Fast and Generic Hybrid Simulation Approach Using C Virtual Machine", In: CASES '07: Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systemsSeptember 2007. pp 3 - 12)
Jovic et al. (Jovic, J. et al.: Hybrid Simulation for Extensible Processor Cores. In: Proceedings of the 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2012)
Jovic, J. et al.: Hybrid Simulation for Extensible Processor Cores. In: Proceedings of the 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2012.
Lei Gao et al.: A Fast and Generic Hybrid Simulation ApproachUsing C Virtual Machine. In: CASES '07: Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systemsSeptember 2007. pp 3 - 12

Similar Documents

Publication Publication Date Title
DE102008019040B4 (en) Method and control device for controlling an automation system
DE69531112T2 (en) MECHANISM FOR LINKING FILES ON AN EMULATED SYSTEM WITH THE CENTRAL SYSTEM FOR ACCESS BY EMULATED SYSTEM USERS
DE112016003949T5 (en) WEB-BASED PROGRAMMING ENVIRONMENT FOR EMBEDDED EQUIPMENT
DE102006051186A1 (en) Infrastructure service architecture for applications
DE112007001714T5 (en) Virtualize Performance Counters
DE112012000883T5 (en) Multi-level support in a nested virtualization environment
EP2642395A1 (en) Method and apparatus for executing work flow scripts
DE112013000656T5 (en) System and method for reducing memory usage by optimally placing virtual machines in a virtualized data center
EP3001313A1 (en) Methods for simulating an application program of an electronic control device on a computer
DE102006001776A1 (en) Test program set Minimization of obsolescence through software and automatic test equipment processes
DE69727177T2 (en) Emulation of asynchronous signals with a branching mechanism
DE112012004247T5 (en) Passively monitoring virtual systems using extensible indexing
EP2575039A1 (en) Method and assembly for use of a resource of a hardware platform with at least two virtual machines
DE112011105098T5 (en) Virtual BIOS
DE102005045944A1 (en) Secure multi-user webhosting
DE102010025954A1 (en) Method for complete or partial simulation and/or replication of actual automation and/or communication system, involves replacing actual automation apparatus by copied simulated automation apparatus
DE102020115820B3 (en) Test device and method and storage medium for operating a processor system
DE102014219711A1 (en) Method for power plant simulation
DE112010005509T5 (en) Robotic system control method and apparatus thereof
DE602004002241T2 (en) Protection of a program waiting for execution in a memory for a microprocessor
DE102013109107A1 (en) Method and system for implementing data loading protocols
EP3848763B1 (en) Device driver qualification for a device
WO2012143480A1 (en) System and method for securely transferring files
DE102020213809A1 (en) Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device
EP3872661A1 (en) Analysis of a container instance of an operating system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0009455000

R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final