-
Die vorliegende Erfindung betrifft ein Verfahren zur Bereitstellung eines Zugangspunkts zur Messung und Kalibrierung einer oder mehrerer Funktionen einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Hintergrund der Erfindung
-
Bei Steuergeräten von Maschinen, z.B. von Fahrzeugen, erfolgt während einer Test- bzw. Kalibrierungsphase typischerweise eine Anpassung von Parametern von Funktionen, die durch das jeweilige Steuergerät bereitgestellt werden. Hierbei werden etwa Programmvariablen eines Computerprogramms, das eine Funktion implementiert, angepasst bzw. geändert, bis ein gewünschtes Verhalten erreicht ist. Dieses Vorgehen wird als „Messung und Kalibrierung“ bezeichnet. Bei Mikrocontrollern, die als bzw. in Steuergeräten eingesetzt werden, sind Computerprogramme und somit deren Variablen üblicherweise an festen Speicheradressen abgelegt, so dass die Messung und Kalibrierung durch einen Lese- und Schreibzugriff auf die an sich bekannten Speicheradressen von Programmvariablen möglich ist. Auf dem Gebiet von Mikrocontrollern kann dafür beispielsweise das XCP-Protokoll (Universal Measurement and Calibration Protocol) verwendet werden.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur Bereitstellung eines Zugangspunkts zur Messung und Kalibrierung einer oder mehrerer Funktionen einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung betrifft Funktionen, die in einer virtualisierten Form bzw. Umgebung bereitgestellt werden, d.h. sie betrifft Funktionen, die durch Ausführung entsprechender Computerprogramme in wenigstens einer virtualisierten Ausführungsumgebung (z.B. virtuelle Maschine) implementiert werden, wobei die wenigstens eine virtualisierte Ausführungsumgebung durch eine Verwaltungsschicht (z.B. Hypervisor) in der Recheneinheit bereitgestellt wird. Die Verwaltungsschicht ist dazu eingerichtet, der wenigstens einen Ausführungsumgebung dynamisch einen jeweiligen Speicherbereich zuzuweisen.
-
Die Erfindung bedient sich der Maßnahme, durch ein in der Verwaltungsschicht vorgesehenes Kontrollmodul eine oder mehrere Zugriffsanfragen, die Identifikatoren einschließen, die Parameter (Funktionsparameter) der einen oder mehreren Funktionen spezifizieren, über eine Schnittstelle der Recheneinheit zu empfangen und Speicheradressen, die den Identifikatoren entsprechen, zu bestimmen. Die Bestimmung der Speicheradressen erfolgt unter Berücksichtigung der dynamischen Speicherzuweisung. Es wird entsprechend der einen oder den mehreren Zugriffsanfragen auf die bestimmten Speicheradressen zugegriffen. Der Zugriff wird also ermöglicht, obwohl die dynamisch zugewiesenen Speicherbereiche bzw. entsprechenden Speicheradressräume außerhalb der Recheneinheit bzw. der Verwaltungsschicht an sich nicht bekannt sind und ohne dass jede Funktion eine eigene Funktionalität zur Messung und Kalibrierung, d.h. einen eigenen Zugangspunkt, implementieren müsste. Entsprechend kann vorteilhafterweise die Messung und Kalibrierung mehrerer Funktionen mittels desselben Zugangspunkts, der durch das Kontrollmodul gebildet wird, erfolgen.
-
Der Begriff „Funktion“ soll allgemein eine durch die Recheneinheit implementierte Funktionalität bezeichnen. Beispielsweise ist dies die Regelung bzw. Steuerung eines externen Geräts (z.B. Motor) durch die Recheneinheit und Verwendung von Sensordaten (z.B. Drehzahl oder elektrische Stromstärke). Die Ansteuerung des externen Geräts und der Empfang von Sensordaten erfolgt über geeignete Schnittstellen der Recheneinheit.
-
Der Begriff „Parameter“ bzw. „Funktionsparameter“ bezeichnet allgemein einen Parameter einer Funktion, eine Variable einer Funktion, von der Funktion verwendete Daten, von der Funktion empfangene Messwerte oder Ähnliches. Funktionsparameter sind typischerweise in einem Speicherabschnitt der Funktion gespeichert. Implementiert die Funktion etwa einen Regler, können Konstanten (Verstärkungsfaktoren) des Reglers und der Messwert (Ist-Wert) einer zu regelnden Größe Funktionsparameter darstellen. Indem über den Zugangspunkt der Messwert (z.B. Drehzahl im obigen Beispiel) und eventuell weitere Größen (z.B. Stromstärke zur Ansteuerung des Motors oder Stellgrößen) ausgelesen werden, kann bei der Messung und Kalibrierung geprüft werden, ob der Regler wie gewünscht funktioniert, und durch Ändern der Parameter (Verstärkungsfaktoren) des Reglers in einem Schreibzugriff kann das Verhalten des Reglers angepasst werden.
-
Das Zugreifen auf die Speicheradressen entsprechend der einen oder den mehreren Zugriffsanfragen ist in einem allgemeinen Sinn zu verstehen. Insbesondere kann es Lesen von Speicherinhalten der Speicheradressen und/oder Schreiben von zu schreibenden Daten an die Speicheradressen umfassen. Weitergehend kann das Zugreifen entsprechend der einen oder den mehreren Zugriffsanfragen auch ein Übermitteln oder Senden gelesener Daten über die Schnittstelle umfassen. Eine Zugriffsanfrage kann auch die Anforderung einschließen, einen Funktionsparameter zu bestimmten mehreren Zeitpunkten zu lesen. In diesem Fall kann das Zugreifen entsprechend der einen oder den mehreren Zugriffsanfragen auch ein Lesen der Speicheradressen zu diesen bestimmten mehreren Zeitpunkten und Übermitteln oder Senden jeweilig gelesener Daten über die Schnittstelle umfassen.
-
Das „Kontrollmodul“ sowie das weiter unten eingeführte „Proxymodul“ bzw. „Vermittlermodul“ werden insbesondere durch Ausführung eines oder mehrerer entsprechender Computerprogramme implementiert, wobei einzelne Elemente (Schritte bzw. Teilschritte) auch zumindest teilweise durch spezifische Hardwareeinheiten implementiert sein können. Solche Hardwareeinheiten können z.B. zur Unterstützung der Virtualisierung (Verwaltungsschicht, Ausführungsumgebungen), zur Adressübersetzung oder Ähnlichem vorgesehen sein. Das Kontrollmodul könnte auch als Mess- und Kalibiermodul oder Mess- und Kalibiercontroller bezeichnet werden. Das Proxymodul könnte auch als Mess- und Kalibierproxy bezeichnet werden.
-
Dass die Speicheradressen unter Berücksichtigung der dynamischen Speicherzuweisung bestimmt werden, heißt, dass für jede Zugriffsanfrage der dynamisch zugewiesene Speicherbereich bzw. die Abbildung zwischen tatsächlichen Speicheradressen und ausführungsumgebungsspezifischen (virtuellen) Speicheradressen derjenigen Ausführungsumgebung berücksichtigt wird, in der die Funktion implementiert ist, auf die sich die jeweilige Zugriffsanfrage bezieht (d.h. auf deren Funktionsparameter sich die jeweilige Zugriffsanfrage bezieht).
-
Die Speicheradressen beziehen sich auf einen tatsächlichen Adressraum eines Speichers, insbesondere Arbeitsspeichers, der Recheneinheit. Jeder Ausführungsumgebung wird (bei deren Start durch die Verwaltungsschicht) ein Speicherbereich des Speichers zugewiesen, der einem Teilbereich des tatsächlichen Adressraums entspricht. Jede Ausführungsumgebung verwendet (ausführungsumgebungsspezifische) virtuelle bzw. logische Adressen (Speicheradressen), die bei Speicherzugriffen, insbesondere durch die Verwaltungsschicht, in entsprechende tatsächliche Adressen umgesetzt werden. Ausführungsumgebungen können im Allgemeinen nicht auf Speicherbereiche anderer Ausführungsumgebungen zugreifen.
-
Die Identifikatoren ermöglichen es, die tatsächlichen Speicheradressen der spezifizierten Funktionsparameter zu bestimmen. Die Identifikatoren schließen insbesondere Angaben zu Speicherstellen der jeweiligen Funktionsparameter und/oder Symbolnamen und/oder Ähnliches ein. Dazu werden zusätzlich Informationen, die in der Verwaltungsschicht vorhanden sind, d.h. insbesondere die dynamische Speicherbereichs-Zuweisung an die Ausführungsumgebungen, berücksichtigt. Die Identifikatoren schließen vorzugsweise Angaben zu der Funktion, auf die sich die Parameter (Funktionsparameter) beziehen, und/oder zur Ausführungsumgebung, in der diese Funktion implementiert ist, ein. Diese Angaben werden gegebenenfalls bei der Bestimmung der tatsächlichen Speicheradressen ebenfalls berücksichtig (insbesondere bei Verwendung eines Proxymoduls). Dadurch wird ermöglicht, die Funktionsparameter genau zu spezifizieren und demzufolge die entsprechenden Speicheradressen zu bestimmen.
-
Bevorzugt umfasst das Verfahren ein Erfassen, durch ein in einer Ausführungsumgebung vorgesehenes Proxymodul, ausführungsumgebungsspezifischer Adressen von in der jeweiligen Ausführungsumgebung ausgeführten Funktionen und/oder von deren Funktionsparametern, und, durch das Kontrollmodul, ein Bestimmen der Speicheradressen, die den Identifikatoren entsprechen, unter Berücksichtigung der dynamischen Speicherzuweisung und der ausführungsumgebungsspezifischen Adressen. Ausführungsumgebungsspezifische Adressen bezeichnen die Position der Funktion und/oder der Funktionsparameter relativ zu dem der Ausführungsumgebung zugewiesenen Speicherbereich, d.h. in einem virtuellen Adressraum der Ausführungsumgebung. Diese Ausgestaltung ist zweckmäßig, wenn einer Funktion durch eine Ausführungsumgebung dynamisch ein Adressbereich im virtuellen Adressraum der Ausführungsumgebung zugewiesen wird, da in diesem Fall die ausführungsumgebungsspezifische Adresse der Funktion und damit ihrer Parameter zwischen verschiedenen Ausführungen der Funktion und/oder der Ausführungsumgebung variieren kann (z.B. zwischen verschiedenen Starts der Recheneinheit).
-
Bevorzugt umfasst das Verfahren ein Empfangen, durch das Kontrollmodul, der einen oder mehreren Zugriffsanfragen, die eine bestimmte Funktion betreffen, die in einer Ausführungsumgebung implementiert ist, in der das Proxymodul vorgesehen ist, zu einem Zeitpunkt, an dem ein bestimmtes Computerprogramm, durch dessen Ausführung die bestimmte Funktion implementiert wird, noch nicht ausgeführt wird, ein Übermitteln, durch das Kontrollmodul, einer Funktionsstartanfrage für die bestimmte Funktion an das Proxymodul in Reaktion auf das Empfangen der einen oder mehreren Zugriffsanfragen, ein Veranlassen, durch das Proxymodul, des Starts des bestimmten Computerprogramms in Reaktion auf die Funktionsstartanfrage und ein Zugreifen, durch das Kontrollmodul, auf die Speicheradressen entsprechend der einen oder den mehreren Zugriffsanfragen, sobald das bestimmte Computerprogramm ausgeführt wird. Diese Ausgestaltung ermöglicht die Messung und Kalibrierung von Funktionen, die zu einem Zeitpunkt, an dem die Messung und Kalibrierung erfolgen soll, noch nicht ausgeführt werden.
-
Bevorzugt umfasst das Verfahren ein Empfangen, durch das Kontrollmodul, der einen oder mehreren Zugriffsanfragen, die Funktionsparameter einer Funktion betreffen, die in einer noch nicht bereitgestellten bzw. noch nicht gestarteten Ausführungsumgebung implementiert wird, ein Warten, bis die Ausführungsumgebung bereitgestellt bzw. gestartet ist, und anschließend ein Zugreifen auf die Speicheradressen entsprechend der Zugriffsanfragen. Hierdurch wird ermöglicht, Zugriffsanfragen, die für die (wunschgemäße) Implementierung von Funktionen während einer Startphase relevant sind bzw. diese betreffen, zu bearbeiten.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Fahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Figurenliste
-
- 1 zeigt in Ausführungsumgebungen implementierte Funktionen und durch eine Verwaltungsschicht bereitgestellte Zugangspunkte zur Messung und Kalibrierung gemäß einer bevorzugten Ausführungsform.
- 2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform.
-
Ausführungsform(en) der Erfindung
-
1 zeigt in Ausführungsumgebungen 6 durch Ausführung entsprechender Computerprogramme implementierte Funktionen 2 und durch eine Verwaltungsschicht 8 bereitgestellte Zugangspunkte 4 zur Messung und Kalibrierung der Funktionen gemäß einer bevorzugten Ausführungsform.
-
Die Funktionen 2 werden in einer Recheneinheit 10, z.B. einem Steuergerät einer Maschine, insbesondere eines Fahrzeugs, in sogenannter virtualisierter Form bereitgestellt und sind als Computerprogramme implementiert, die in den Ausführungsumgebungen 6 ausgeführt werden. Die Ausführungsumgebungen 6 selbst sind ebenfalls Computerprogramme, die (aus Sicht der Funktionen) jeweils eine bestimmte (virtuelle) Umgebung (z.B. Hardware- und/oder Betriebssystem- und/oder Softwareumgebung) darstellen. Die Recheneinheit weist Hardware auf, insbesondere einen oder mehrere Prozessoren und Speicher, in denen die beschriebene Ausführungsumgebungen 6 und die Verwaltungsschicht 8 implementiert sind.
-
Die Ausführungsumgebungen 6 werden durch die Verwaltungsschicht 8 bereitgestellt (d.h. gestartet und im weiteren Verlauf verwaltet, während sie ausgeführt werden). Die Verwaltungsschicht 8 implementiert insbesondere die Ausführungsumgebungen, d.h. die virtuellen Umgebungen, im Rahmen der tatsächlichen Umgebung (Host-System), d.h. im Rahmen der Recheneinheit 10 und eines eventuell darin ausgeführten Host-Betriebssystems. Sozusagen wird den einzelnen Ausführungsumgebungen dabei jeweils eine eigene komplette Gast-Recheneinheit mit allen Hardware-Elementen (Prozessor, Laufwerke, Arbeitsspeicher usw.) vorgespielt (die für verschiedene Ausführungsumgebungen verschieden sein können). Diese Gast-Recheneinheiten sind im Allgemeinen verschieden von der Recheneinheit 10 (Host-Recheneinheit). Dies kann insbesondere durch Hardware-Emulation, Hardware-Virtualisierung oder Paravirtualisierung erfolgen. Die Ausführungsumgebungen 8 sind z.B. sogenannte virtuelle Maschinen oder Container. Die Verwaltungsschicht 8 ist z.B. ein sogenannter Hypervisor (Typ-1 oder Typ-2).
-
Die Ausführungsumgebungen 6 und die Funktionen 2 haben auf die Hardwareressourcen der Recheneinheit 10 typischerweise keinen direkten Zugriff, sondern können nur über die Verwaltungsschicht 8 auf diese zugreifen. Dies gilt insbesondere für den Zugriff auf den Speicher (flüchtiger Speicher 12, nichtflüchtiger Speicher 14). Jeder der Ausführungsumgebungen 6 wird dabei durch die Verwaltungsschicht 8 ein Speicherbereich bzw. Speicherbereich im flüchtigen Speicher 12 und/oder nichtflüchtigen Speicher 14 zugewiesen. Diese Zuweisung erfolgt dynamisch, etwa mit Start der jeweiligen Ausführungsumgebung. Virtuelle Adressen der Ausführungsumgebung, d.h. in einem (virtuellen) Adressraum aus Sicht der Ausführungsumgebung, werden durch die Verwaltungsschicht auf tatsächliche Adressen im Speicher, d.h. auf einen tatsächlichen Adressraum, der dem zugewiesenen Speicherbereich entspricht, abgebildet. Der tatsächliche Adressraum kann ein physikalischer Adressraum oder ein logischer Adressraum sein. Letzteres kann beispielsweise der Fall sein, wenn die Verwaltungsschicht auf einem Host-Betriebssystem aufsetzt, etwa im Falle eines Typ-2-Hypervisors.
-
Ebenso erfolgt der Zugriff auf Schnittstellen der Recheneinheit 10 zur Datenkommunikation mit externen Geräten aus den Ausführungsumgebungen heraus über die Verwaltungsschicht 8. Im Falle eines Steuergeräts können die externen Geräte insbesondere zu steuernde Geräte (etwa Motoren, Aktuatoren oder Ähnliches) und/oder Sensoren sein.
-
Um im Rahmen der Messung und Kalibrierung Parameter bzw. Variablen der Funktionen auszulesen und/oder zu schreiben, ist wenigstens ein Zugangspunkt 4 bereitgestellt, über den einer externen Mess- und Kalibrierungseinheit 20 (Messtechnik, z.B. ein Computer) der Zugriff (Lesen und/oder Schreiben) auf die Funktionsparameter ermöglicht wird. Dazu ist wenigstens eine Schnittstelle (z.B. entsprechend dem wenigstens einen Zugangspunkt) zur Datenkommunikation an der Recheneinheit vorgesehen. Die Schnittstelle ist beispielsweise eine CAN-Schnittstelle (CAN: Controller Area Network), eine Ethernet-Schnittstelle, eine USB-Schnittstelle, eine SPI-Schnittstelle (SPI: Serial Peripheral Interface) oder eine beliebige andere serielle Schnittstelle. Die Kommunikation kann mittels eines entsprechenden Schnittstellen-Protokolls erfolgen.
-
In der Verwaltungsschicht oder zusätzlich zu der Verwaltungsschicht ist ein Kontrollmodul 22, d.h. ein Computerprogramm-Modul, vorgesehen, das eingerichtet ist, über den wenigstens einen Zugangspunkt bzw. die entsprechende wenigstens eine Schnittstelle zu kommunizieren, d.h. Daten zu empfangen und zu senden. Das Kontrollmodul 22 ist eingerichtet, Zugriffsanfragen zu empfangen, z.B. von der externen Mess- und Kalibrierungseinheit 20. Zugriffsanfragen sind Lese- und/oder Schreibanfragen, die bestimmte Funktionsparameter betreffen. Um die Funktionsparameter zu spezifizieren, umfassen die Zugriffsanfragen Identifikatoren, anhand derer der jeweilige Funktionsparameter eindeutig festgelegt bzw. bestimmbar ist. Identifikatoren umfassen insbesondere Namen oder Symbole oder Ähnliches, die bezogen auf einzelne Funktionen Funktionsparameter spezifizieren. Weiterhin können die Identifikatoren Informationen umfassen, anhand derer die Funktion, auf deren Funktionsparameter zugegriffen werden soll, bestimmbar ist und/oder anhand derer die Ausführungsumgebung bestimmbar ist, in der die Funktion, auf deren Funktionsparameter zugegriffen werden soll, ausgeführt wird.
-
Das Kontrollmodul 22 ist weiter eingerichtet, anhand der Identifikatoren Speicheradressen zu bestimmen, an denen die entsprechenden Funktionsparameter gespeichert sind, und auf die bestimmten Speicheradressen entsprechend der Zugriffsanforderung zuzugreifen. Die bestimmten Speicheradressen sind hier tatsächliche Speicheradressen innerhalb der Speicherbereiche, die den Ausführungsumgebungen zugewiesen sind.
-
Im einfachsten Fall befinden sich die Funktionen und damit die Funktionsparameter an von vornherein bekannten Positionen innerhalb der jeweiligen Ausführungsumgebung. Dies entspricht der Situation eines Mikrocontrollers, in dem die Software an bekannten Speicheradressen abgelegt ist, eine solche Ausführungsumgebung würde sozusagen einen Mikrocontroller virtualisieren. Es ist dann bezogen auf den (virtuellen) Adressraum einer Ausführungsumgebung vorbekannt, an welchen (ausführungsumgebungsspezifischen) Adressen sich die Funktionsparameter befinden. Die vorbekannten ausführungsumgebungsspezifischen Adressen werden vom Kontrollmodul in entsprechende tatsächliche Speicheradressen umgesetzt, wobei die dynamische Speicherbereichszuweisung an die Ausführungsumgebung berücksichtigt wird. Dass die dynamische Speicherbereichszuweisung berücksichtigt wird, heißt, dass die Abbildung zwischen dem virtuellen Adressraum und dem tatsächlichen Adressraum verwendet wird; ausführungsumgebungsspezifische Adressen werden auf entsprechende tatsächlichen Speicheradressen abgebildet. Die vorbekannten ausführungsumgebungsspezifischen Adressen können vom Kontrollmodul gespeichert werden und/oder in den Identifikatoren umfasst sein; insbesondere ist der Fall denkbar, dass die Identifikatoren im Wesentlichen die vorbekannten ausführungsumgebungsspezifischen Adressen sind.
-
Im weitergehenden Fall werden Funktionen bzw. die Computerprogramme, die die jeweiligen Funktionen implementieren, zur Laufzeit in einer Ausführungsumgebung dynamisch gestartet und ausgeführt (dies entspricht z.B. der Situation, in der in der Ausführungsumgebung ein Gast-Betriebssystem ausgeführt wird). Dann sind typischerweise die ausführungsspezifischen Adressen einer Funktion und ihrer Funktionsparameter nicht vorbekannt, sondern können bei verschiedenen Ausführungen verschieden sein. Die Adress-Information, an welchen ausführungsspezifischen Adressen sich die Funktion und/oder Funktionsparameter befinden ist, dann zunächst nur der Ausführungsumgebung bekannt. Um diese Adress-Information auch im Kontrollmodul verfügbar zu machen, ist bevorzugt in wenigsten einer entsprechenden Ausführungsumgebung ein Proxymodul 24 (d.h. ein Programmmodul) vorgesehen, das diese Adress-Information erfasst und dem Kontrollmodul verfügbar macht. Hierbei können, sobald eine Funktion ausgeführt wird, die Informationen an das Kontrollmodul übermittelt werden, das diese speichert, und/oder die Adress-Informationen können in Reaktion auf eine entsprechende Abfrage vom Kontrollmodul an dieses übermittelt werden. Im ersten Fall kann zusätzlich vorgesehen sein, dass, wenn die Ausführung einer Funktion beendet wird, vom Proxymodul eine entsprechende Information an das Kontrollmodul übermittelt wird, das die Adress-Information, die sich auf diese Funktion bezieht, löschen oder als nicht mehr gültig kennzeichnen kann. Im zweiten Fall kann, falls sich die Adress-Information nicht auf die ausführungsumgebungsspezifische Adresse der Funktion bezieht, die Abfrage spezifizieren, für welche Funktionsparameter die Adress-Information übermittelt werden soll. Wenn sich die Adress-Information auf die ausführungsumgebungsspezifische Adresse der Funktion bezieht, kann dem Kontrollmodul bekannt sein, d.h. durch dieses gespeichert sein oder diesem zusammen mit der Zugriffsanfrage übermittelt sein (z.B. in den Identifikatoren umfasst sein), an welchen umgebungsspezifischen Adressen bezogen auf den von der Funktion belegten umgebungsspezifischen Adressabschnitt (etwa bezogen auf eine umgebungsspezifische Anfangsadresse der Funktion) sich die Funktionsparameter befinden.
-
Um die tatsächliche Speicheradresse, an dem ein Funktionsparameter gespeichert ist, zu bestimmen, berücksichtigt das Kontrollmodul 22 neben der dynamischen Speicherbereichszuweisung an die Ausführungsumgebung auch die Adress-Information vom Proxymodul 24.
-
Weitergehend kann das Proxymodul 24 eingerichtet sein, in der jeweiligen Ausführungsumgebung die Ausführung von Funktionen zu starten bzw. deren Start zu veranlassen. Dies erfolgt insbesondere in Reaktion auf eine entsprechende Funktionsstartanfrage vom Kontrollmodul 22. Das Kontrollmodul kann also unter Verwendung eines Proxymoduls den Start bzw. die Ausführung einer bestimmten Funktion veranlassen. Diese Möglichkeit ist beispielsweise hilfreich, wenn eine Messung und Kalibrierung einer Funktion erfolgen soll, die im Normalfall, etwa während normaler Betriebszustände einer Maschine, die die Recheneinheit 10 als Steuergerät umfasst, nur selten oder gar nicht ausgeführt wird.
-
2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform.
-
Vorausgesetzt für die dargestellten Schritte ist bzw. nicht dargestellte Schritte sind, dass in der Recheneinheit eine Verwaltungsschicht (z.B. Hypervisor) ausgeführt wird, die wenigstens eine Ausführungsumgebung (z.B. virtuelle Maschine oder Container) bereitstellt, in der die Funktionen implementiert ist. Die Verwaltungsschicht, die Ausführungsumgebungen und die Funktionen werden jeweils durch Ausführen entsprechender Computerprogramme implementiert, unter eventueller Nutzung spezifischer Hardwareeinheiten.
-
Im bevorzugten Schritt 100, d.h. insbesondere vorausgesetzt, dass ein Proxymodul vorgesehen ist, werden durch das Proxymodul ausführungsumgebungsspezifische Adressen von in der jeweiligen Ausführungsumgebung ausgeführten Funktionen und/oder von deren Funktionsparametern erfasst. Im ebenso bevorzugten Schritt 110 werden die erfassten spezifischen Adressen an das Kontrollmodul übermittelt. Wie oben erläutert kann dies erfolgen, sobald eine Funktion gestartet wird und/oder in Reaktion auf eine entsprechende Abfrage durch das Kontrollmodul (im zweiten Fall erfolgt dieser Schritt offensichtlich erst nach Schritt 120).
-
In Schritt 120 werden durch das Kontrollmodul über eine Schnittstelle der Recheneinheit eine oder mehrere Zugriffsanfragen empfangen. Diese schließen Identifikatoren ein, die Parameter (Funktionsparameter) der einen oder mehreren Funktionen bezeichnen.
-
In Schritt 130 werden durch das Kontrollmodul Speicheradressen, die den Identifikatoren entsprechen, unter Berücksichtigung der dynamischen Speicherzuweisung, bestimmt. Wenn ein Proxymodul und entsprechend ausführungsumgebungsspezifische Adressen verwendet werden (Schritte 100, 110), werden bei der Bestimmung der Speicheradressen zusätzlich die ausführungsumgebungsspezifischen Adressen berücksichtigt. In diesem Fall, siehe Schritt 110, können die ausführungsumgebungsspezifischen Adressen aus einem dem Kontrollmodul zugeordneten Speicher gelesen und/oder mittels einer entsprechenden Abfrage vom Proxymodul abgefragt werden.
-
In Schritt 140 wird auf die Speicheradressen entsprechend der einen oder den mehreren Zugriffsanfragen zugegriffen. Optional, im Fall einer Lesezugriffsanfrage, erfolgt in Schritt 145, der auch als Teil des Zugriffs (Schritt 145) angesehen werden kann, ein Senden bzw. Übermitteln gelesener Speicherinhalte über die Schnittstelle an das externe Gerät (z.B. die externe Mess- und Kalibrierungseinheit 20), das die Zugriffanfrage gesendet hat.