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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation 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
In der
In einem wissenschaftlichen Fachbeitrag von
In einem wissenschaftlichen Fachbeitrag von
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.
- 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
Die Testvorrichtung
In der Testvorrichtung
Möchte nun das Applikationsprogramm
Für den Betrieb der zumindest einen virtuellen Maschine
Um nun für die Softwareentwicklung den Betrieb des zumindest einen Applikationsprogramms
Die jeweilige Hypercall-Nachricht
Optional kann anstelle der Umleitung durch den Hypervisor
Wird die Umleitung
Zusätzlich zu dem Hypervisor
Am Beispiel einer ARM-Architektur können sich folgende Privilegierungsstufen für eine Hardwareplattform ergeben: Exception-Level (EL)
- EL0 Applikationsprogramme.
- EL1 OS kernel / Betriebssystemkern.
- EL2 Hypervisor.
- EL3 Secure monitor / TEE.
- 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)
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)
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 |
-
2020
- 2020-06-16 DE DE102020115820.3A patent/DE102020115820B3/en active Active
Patent Citations (2)
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)
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 |