-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft im Allgemeinen Steuergeräte zum Steuern von physikalische Einheiten, insbesondere Steuergeräte mit einer softwaregesteuerten Recheneinheit und einer hardwarebasierten Modellberechnungseinheit. Weiterhin betrifft die vorliegende Erfindung Verfahren zum Steuern der Modellberechnungseinheit durch die Recheneinheit.
-
Stand der Technik
-
Zur Berechnung von Strecken- oder Systemmodellen können Steuergeräte mit rein hardwarebasierten Logikeinheiten versehen sein, die Modellberechnungseinheiten zur Berechnung von Modellfunktionswerten darstellen. Dies ist insbesondere dann sinnvoll, wenn die Berechnungen von Strecken- oder Systemmodellen aufwändig sind, wie es beispielsweise bei datenbasierten Funktionsmodellen, insbesondere in Form von Gauß-Prozessmodellen, aufgrund von komplexen mathematischen Funktionen und Schleifenberechnungen der Fall ist.
-
Die Modellberechnungseinheiten können für eine Berechnung initialisiert werden, die Berechnung ausführen, in einen Schlafmodus versetzt und abgeschaltet werden, insbesondere mithilfe von geeigneten Schnittstellen zu der im System befindlichen softwarebetriebenen Hauptrecheneinheit (Mikrocontroller). Für die Berechnung benötigte, das Funktionsmodell beschreibende Konfigurationsdaten für eine solche Modellberechnungseinheit können in eine Reihe von Konfigurationsregistern übertragen werden, die üblicherweise mit einem bestimmten zusammenhängenden Speicherbereich eines internen Speichers des Steuergeräts assoziiert sind. Zum Starten einer Berechnung in der Modellberechnungseinheit wird in der Regel vorgesehen, dass ein bestimmtes der Konfigurationsregister beschrieben wird, um den Rechenprozess zu starten, wobei vorgesehen sein kann, dass die Art der in das Konfigurationsregister geschriebenen Daten nicht relevant ist.
-
Die Druckschrift
US 2005/0102488 A1 beschreibt eine Sprache zum Programmieren eines Firmware-Registers.
-
Ferner zeigt die Druckschrift
US 5,619,702 die Verwendung einer Datenbank, die jedes Hardware-Register definiert und die Bits der Hardware-Register zuordnet.
-
Offenbarung der Erfindung
-
Erfindungsgemäß sind das Verfahren zum Betreiben eines Steuergeräts gemäß Anspruch 1 sowie das Steuergerät gemäß dem nebengeordneten Anspruch vorgesehen.
-
Weitere vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Gemäß einem ersten Aspekt ist ein Verfahren zum Betreiben eines Steuergeräts vorgesehen, wobei das Steuergerät eine softwaregesteuerte Hauptrecheneinheit, eine rein hardwarebasierte Modellberechnungseinheit zum Berechnen eines Algorithmus, insbesondere zur Durchführung eines Bayes-Regressionsverfahrens, basierend auf Konfigurationsdaten, und eine Speichereinheit umfasst, wobei ein Modellspeicherbereich in der Speichereinheit definiert ist, dem ein Konfigurationsregisterblock zum Bereitstellen der Konfigurationsdaten in der Modellberechnungseinheit zugeordnet ist, wobei einer höchsten Adresse in dem Konfigurationsregisterblock, in den Konfigurationsdaten geschrieben werden, ein Berechnungsstart-Konfigurationsregister zugeordnet ist, dessen Beschreiben die Berechnung in der Modellberechnungseinheit startet, wobei die Konfigurationsdaten in einem Speicherbereich der Speichereinheit mithilfe eines inkrementellen Kopierprozesses von dem Modellspeicherbereich in den Konfigurationsregisterblock geschrieben werden, wobei bei dem inkrementellen Kopierprozess die Adressen in aufsteigender Folge kopiert werden.
-
In Steuergeräten, die eine softwaregesteuerte Steuereinheit und eine in Hardware implementierte Modellberechnungseinheit aufweisen und in denen zur Entlastung der Steuereinheit Funktionsmodelle, insbesondere datenbasierte Funktionsmodelle, in der separaten Modellberechnungseinheit berechnet werden, erfolgt die Steuerung der Modellberechnungseinheit und die Definition der Modellfunktion über Konfigurationsregister. Die Konfigurationsregister dienen dazu, der Modellberechnungseinheit Startwerte für den Algorithmus zur Berechnung eines Funktionswerts zu übergeben und weiterhin die Adressbereiche zu definieren, in denen Parameter für parametrische Funktionsmodelle bzw. Hyperparameter und Stützstellendaten für die Berechnung des nicht parametrischen datenbasierten Funktionsmodells abgelegt sind. Die Aufgabe der softwaregesteuerten Hauptrecheneinheit, vor jeder Funktionswertberechnung des datenbasierten Funktionsmodells mithilfe der Modellberechnungseinheit die Konfigurationsdaten vorzugeben und den Berechnungsprozess zu starten, kann bei leistungsschwachen Hauptrecheneinheiten eine nicht zu vernachlässigende Belastung darstellen.
-
Um die Hauptrecheneinheit zu entlasten, kann daher vorgesehen sein, dass das Konfigurationsregister, das den Berechnungsprozess in der Modellberechnungseinheit startet, als letztes der Konfigurationsregister im Konfigurationsregisterblock beschrieben wird. Dazu sind die Konfigurationsregister vorzugsweise einem zusammenhängenden Speicherbereich des internen Speichers, dem Modellspeicherbereich, zugeordnet, so dass durch einen einfachen inkrementellen Speicherkopierprozess vom Modellspeicherbereich, in dem die Konfigurationswerte für die Modellberechnungseinheit gespeichert sind, auf den Konfigurationsregisterblock der Modellberechnungseinheit, insbesondere unter Nutzung einer an sich bekannten Blockkopierfunktion einer DMA-Einheit, transferiert werden. Das bestimmte Konfigurationsregister, das den Berechnungsprozess startet, wird dabei als die höchste Speicheradresse des zusammenhängenden Speicherbereichs vorgesehen und daher durch den inkrementellen Speicherkopierprozess als letztes beschrieben. Auf diese Weise kann bereits nach Abschluss des einfachen inkrementellen Speicherkopierprozesses die Berechnung gestartet und auf die für den Start der Berechnung benötigten Initialdaten zugegriffen werden. Ein separates Beschreiben des bestimmten Konfigurationsregisters nach dem Beschreiben der Konfigurationsdaten kann dadurch entfallen. Dieses Verfahren ist insbesondere bei der Verwendung einer DMA-Einheit, die den Schreibprozess in dem Konfigurationsregisterblock übernehmen kann, vorteilhaft, da die Recheneinheit dadurch vollständig entlastet wird.
-
Es kann vorgesehen sein, dass der inkrementelle Kopierprozess eine Granularität aufweist, wobei sich an die dem Berechnungsstart-Konfigurationsregister zugeordnete Speicheradresse ein ungenutzter Speicherbereich anschließt, wenn die Granularität größer ist als der Modellspeicherbereich.
-
Die DMA-Einheit kann von der Hauptrecheneinheit angewiesen werden, mehrere aufeinanderfolgende Blockkopierfunktionen auszuführen.
-
Es kann vorgesehen sein, dass entsprechend der Anweisung der DMA-Einheit, mehrere aufeinanderfolgende Blockkopierfunktionen auszuführen, mehrere Berechnungen in der Modellberechnungseinheit durchgeführt werden, wobei eine zweite DMA-Einheit nach jeder durch den mehrfachen Blockkopierprozess gestarteten Berechnung das Berechnungsergebnis kopiert und die erste DMA-Einheit anweist, den nächsten Blockkopierprozess durchzuführen.
-
Gemäß einem weiteren Aspekt ist ein Steuergerät zum Betreiben einer physikalischen Einheit vorgesehen, umfassend:
- – eine softwaregesteuerte Hauptrecheneinheit;
- – eine rein hardwarebasierte Modellberechnungseinheit zum Berechnen eines Algorithmus, insbesondere zur Durchführung eines Bayes-Regressionsverfahrens, basierend auf Konfigurationsdaten; und
- – eine Speichereinheit zum Speichern der Konfigurationsdaten, wobei ein Modellspeicherbereich in der Speichereinheit definiert ist, dem ein Konfigurationsregisterblock zum Bereitstellen der Konfigurationsdaten in der Modellberechnungseinheit zugeordnet ist, wobei einer höchste Adresse in dem Konfigurationsregisterblock ein Berechnungsstart-Konfigurationsregister zugeordnet ist;
wobei die Modellberechnungseinheit ausgebildet ist, um eine Berechnung des Algorithmus zu starten, wenn das Berechnungsstart-Konfigurationsregister beschrieben wird.
-
Weiterhin kann eine erste DMA-Einheit vorgesehen sein, um das Zugreifen bzw. Auslesen des Modellspeicherbereichs mithilfe eines Blockkopierprozesses durchzuführen.
-
Die Hauptrecheneinheit kann die Funktion der ersten DMA-Einheit starten und ausgebildet sein, um die erste DMA-Einheit zu veranlassen, einen mehrfachen Blockkopierprozess durchzuführen, wonach in der Modellberechnungseinheit hintereinander mehrere Berechnungen durchgeführt werden.
-
Kurzbeschreibung der Zeichnungen
-
Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
-
1 eine schematische Darstellung eines Steuergeräts mit einer softwaregesteuerten Hauptrecheneinheit und einer in Hardware implementierten Modellberechnungseinheit;
-
2 einen Speicherbereich des internen Speichers, der der Modellberechnungseinheit zugeordnet ist und dem die Konfigurationsregister zugeordnet sind;
-
3 einen Speicherbereich der Speichereinheit mit mehreren Programmiermodellen;
-
4 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Starten einer Modellberechnung mit mehreren zu berechnenden Funktionsmodellen in der Modellberechnungseinheit der 1; und
-
5 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Starten einer Modellberechnung mit mehreren zu berechnenden Funktionsmodellen in einer Modellberechnungseinheit mit zwei DMA-Einheiten.
-
Beschreibung von Ausführungsformen
-
1 zeigt schematisch den Aufbau eines Steuergeräts 1, insbesondere zum Betreiben einer physikalischen Einheit, wie beispielsweise eines Verbrennungsmotors, in einem Kraftfahrzeug. Das Steuergerät 1 umfasst einen Mikrocontroller als Hauptrecheneinheit 2, die gemeinsam mit einer Modellberechnungseinheit 3 integriert ausgeführt ist. Bei der Modellberechnungseinheit 3 handelt es sich im Wesentlichen um eine Hardwareeinheit, die hardwarebasiert Funktionsberechnungen durchführen kann, insbesondere solche für ein Bayes-Regressionsverfahren. Insbesondere ist die Modellberechnungseinheit ausgebildet, um Exponentialfunktions-, Additions- und Multiplikationsoperationen in Schleifenberechnungen durchzuführen.
-
Berechnungen in der Modellberechnungseinheit 3 werden von der Hauptrecheneinheit 2 gestartet, um basierend auf das Funktionsmodell beschreibenden Hyperparametern und Stützstellendaten einen Funktionswert für einen Testpunkt zu ermitteln. Die Hyperparameter und Stützstellendaten sind in einer weiterhin mit der Hauptrecheneinheit 2 und der Modellberechnungseinheit 3 integrierten Speichereinheit 5 gespeichert und dienen der Repräsentation eines den Betrieb einer zu steuernden physikalischen Einheit beschreibenden datenbasierten Funktionsmodells.
-
Die Hauptrecheneinheit 2 und die Modellberechnungseinheit 3 stehen über eine interne Kommunikationsverbindung, insbesondere einen Systembus 4, miteinander in Kommunikationsverbindung. Weiterhin können eine Speichereinheit 5 und eine DMA-Einheit 6 (DMA = Direct Memory Access) mit der internen Kommunikationsverbindung verbunden sein, um eine Signalkommunikation mit der Hauptrecheneinheit 2 und der Modellberechnungseinheit 3 zu gewährleisten.
-
Grundsätzlich weist die Modellberechnungseinheit 3 lediglich Hardware (Hartverdrahtung) auf, die einen festgelegten Berechnungsablauf vorgibt, und ist vorzugsweise nicht dazu ausgebildet, Softwarecode auszuführen. Aus diesem Grund ist es auch nicht erforderlich, in der Modellberechnungseinheit 3 einen Prozessor vorzusehen. Dies ermöglicht eine ressourcenoptimierte Realisierung einer derartigen Modellberechnungseinheit 3. Durch die Berechnung gemäß einer implementierten Hardwareroutine kann die Berechnungszeit gegenüber einem Software-Algorithmus deutlich verkürzt werden.
-
Die Verwendung von nicht parametrischen, datenbasierten Funktionsmodellen basiert auf einem Bayes-Regressionsverfahren. Die Grundlagen der Bayes-Regression sind beispielsweise in C. E. Rasmussen et al., „Gaussian Processes for Machine Learning", MIT Press 2006, beschrieben. Bei der Bayes-Regression handelt es sich um ein datenbasiertes Verfahren, das auf einem Modell basiert. Zur Erstellung des Modells sind Messpunkte von Trainingsdaten sowie zugehörige Ausgangsdaten einer Ausgangsgröße erforderlich. Die Erstellung des Modells erfolgt anhand der Verwendung von Stützstellendaten, die den Trainingsdaten ganz oder teilweise entsprechen oder aus diesen generiert werden. Weiterhin werden abstrakte Hyperparameter bestimmt, die den Raum der Modellfunktionen parametrisieren und effektiv den Einfluss der einzelnen Messpunkte der Trainingsdaten auf die spätere Modellvorhersage gewichten.
-
Die Modellberechnungseinheit 3 ist ausgebildet, um auf einen Konfigurationsregisterblock 31 mit Konfigurationsregistern 32 zuzugreifen. Insbesondere kann die Modellberechnungseinheit 3 ausgebildet sein, um den Konfigurationsregisterblock 31 mit Konfigurationsregistern 32 in den Speicherbereich des Systems einzuordnen bzw. als Memory-Mapped Registern darzustellen.
-
Die Konfigurationsregister 32 des Konfigurationsregisterblocks 31 sind ausgebildet, um die für die Berechnung des Funktionsmodells benötigten Parameter und Adresszeiger zu erhalten. Es werden vor allem Daten, insbesondere Adresszeiger, benötigt, die den Adressbereich, in dem sich die Hyperparameter und die Stützstellendaten für die Berechnung des Funktionsmodells befinden, mithilfe eines Startpointers und gegebenenfalls eine Länge der Daten angeben. Weiterhin können die Initialisierungswerte für die zu berechnenden Schleifen vorgegeben werden, ebenso wie ein Offsetwert, von dem ausgehend der Funktionswert des datenbasierten Funktionsmodells berechnet wird. Die Übergabe weiterer Parameter ist möglich.
-
Zum Starten einer Berechnung eines Funktionsmodells in der Modellberechnungseinheit 3 muss die Hauptrecheneinheit 2 zunächst die Konfigurationsregister 32 konfigurieren und anschließend die Modellberechnungseinheit 3 durch Beschreiben eines bestimmten Berechnungsstart-Konfigurationsregisters 33 starten, mit oder ohne Konfiguration der darin enthaltenen Bits.
-
Das Beschreiben der Konfigurationsregister 32 und das Starten der Modellberechnungseinheit 3 hängen bislang vollständig an der Hauptrecheneinheit 2, die dadurch insbesondere bei mehreren, nacheinander erfolgenden, zeitlich kürzeren Modellberechnungen erheblich belastet wird. Es ist daher vorgesehen, den Konfigurationsregisterblock 31 wie in 2 dargestellt auszubilden. Man erkennt, dass der Konfigurationsregisterblock 31 eine Reihe von Konfigurationsregistern 32 aufweist und das Berechnungsstart-Konfigurationsregister 33 an der höchsten Speicheradresse vorgesehen ist, so dass die Konfigurationsdaten in einem konsekutiven Schreibprozess (Schreiben mit inkrementierender Speicheradresse) in den Konfigurationsregisterblock 31 geschrieben werden. Somit wird die Adresse, die dem Berechnungsstart-Konfigurationsregister 33 zugeordnet ist, zuletzt beschrieben. Dadurch kann ein inkrementeller Speicherkopierbefehl in der Hauptrecheneinheit 2 verwendet werden, der eine geringere Belastung für die Hauptrecheneinheit 2 darstellt.
-
Darüber hinaus kann diese Aufgabe auch von der Hauptrecheneinheit 2 an die DMA-Einheit 6 übertragen werden. Üblicherweise weisen DMA-Einheiten eine bestimmte Granularität auf, so dass die übertragenen Datenblöcke in ihrer Größe festgelegt sind. Das Berechnungsstart-Konfigurationsregister 33 befindet sich jedoch immer an der Speicheradresse, die unmittelbar auf die den übrigen Konfigurationsregistern 32 zugeordneten Speicheradressen folgt. Ist die Granularität G der DMA-Einheit 6 höher, so werden die übrigen Speicheradressen, die sich an die Speicheradresse für das Berechnungsstart-Konfigurationsregister 33 anschließen, als ungenutzter Speicherbereich 34 markiert oder reserviert.
-
Weiterhin kann auch vorgesehen sein dass nur lesbaren Registern 35 ausgebildet werden, um das Ergebnis, der Status, und weiteren Informationen der Modellberechnungseinheit 3 in Verfügung zu stellen.
-
Um vorzusehen, dass die DMA-Einheit 6 die Modellberechnungseinheit 3 konfiguriert, ist es erforderlich, eine Struktur zu definieren, die mehrere Programmiermodelle F01, F02, ..., F0M beinhaltet. In 3 sind M Programmiermodelle F01, F02, ..., F0M aufeinander folgend entsprechend der DMA-Granularität G auf dem Modellspeicherbereich 51 gespeichert. Jedes Programmiermodell enthält die Konfigurationsparameter, die in die Konfigurationsregister 32 und das Berechnungsstart-Konfigurationsregister 33 geschrieben werden. Weiterhin kann das Programmiermodel die reservierten Speicheradressen des ungenutzten Speicherbereichs 34, wie vorstehend beschrieben, enthalten.
-
Bei Verwendung einer DMA-Einheit 6 besteht die Aufgabe der Hauptrecheneinheit 2 lediglich darin, die DMA-Einheit 6 zu konfigurieren und diese mit den Adressangaben zu starten, die durch die Startadresse der Konfigurationsdaten in dem Modellspeicherbereich 51 und die Zieladresse, die durch die Basisadresse des Konfigurationsregisterblock 31 für die Modellberechnungseinheit 3 angegeben ist, bestimmt sind.
-
In einem Verfahren, das in 4 schematisch dargestellt ist, kann die Modellberechnungseinheit 3 konsekutiv mit verschiedenen Programmiermodellen F01, F02, ..., F0M konfiguriert und gestartet werden. Die DMA-Einheit 6 sollte wiederholbare Blockkopiervorgänge mit der gleichen Zielbasisadresse unterstützen. Dazu wird die Hauptrecheneinheit 2 in einem Schritt S1 einmalig eine entsprechende Anweisung an die DMA-Einheit 6 ausgeben. In Schritt S2 startet die DMA-Einheit 6 den Berechnungsprozess durch einen einmaligen Blockkopierprozess in den Konfigurationsregisterblock 31. Nach jeder Berechnung signalisiert die Modellberechnungseinheit 3 der DMA-Einheit 6 in Schritt S3, dass die Berechnung beendet ist, z.B. mithilfe eines Interrupts. Dieser Vorgang der Schritte S2 und S3 wird für jedes zu berechnende Programmiermodell F01, F02, ..., F0M vorgenommen werden. Nach Beenden der Berechnung des letzten zu berechnenden Programmiermodells F0M wird anstelle des Schritts S3 in Schritt S4 eine entsprechende Mitteilung an die Hauptrecheneinheit 2 übermittelt.
-
Dieses Verfahren kann auch mithilfe einer zweiten DMA-Einheit 7 realisiert werden, um die Berechnungsergebnisse an die andere Speicheradresse zu kopieren. Die zweite DMA-Einheit 7 muss dazu ohne Zutun der Hauptrecheneinheit 2 wiederholbare Kopiervorgänge mit der gleichen Quellbasisadresse unterstützen.
-
Die Hauptrecheneinheit 2 konfiguriert dazu in den Schritten S11 und S12 beide DMA-Einheiten 6, 7. Die erste DMA-Einheit 6 startet in Schritt S13 den Berechnungsprozess durch einen Blockkopierprozess in der Modellberechnungseinheit 3. Nach Beenden der jeweiligen Berechnung signalisiert die Modellberechnungseinheit 3 in Schritt S14 entsprechendes an die zweite DMA-Einheit 7. Die zweite DMA-Einheit 7 wird durch den Interrupt von der Modellberechnungseinheit 3 getriggert.
-
Die zweite DMA-Einheit 7 wird dazu verwendet, nach jeder Berechnung die Berechnungsergebnisse der Modellberechnungseinheit 3 an eine weitere Speicheradresse zu übertragen und in Schritt S15 die erste DMA-Einheit 6 zu veranlassen.
-
Anschließend erfolgt mit Schritt S13 die erneute Konfiguration der Modellberechnungseinheit 3 sowie der Start der Berechnung durch einen Blockkopierprozess zum Schreiben der Konfigurationsdaten in den Konfigurationsregisterblock 31. Nach dem Ende jeder Berechnung signalisiert die Modellberechnungseinheit 3 in Schritt S14 entsprechendes an die zweite DMA-Einheit 7 und in Schritt S15 wird die erste DMA-Einheit 6 weiter getriggert.
-
Nach Abschluss der letzten Berechnung kann abhängig von den Eigenschaften der zweiten DMA-Einheit 7 der Hauptrecheneinheit 2 in einem Schritt S16 das Ende der Berechnungen mitgeteilt werden. Dies kann durch Erzeugung eines Interrupts der zweiten DMA-Einheit 7 erfolgen, der entweder direkt an die Hauptrecheneinheit 2 weitergeleitet wird oder an die erste DMA-Einheit 6, die den Interrupt dann an die Hauptrecheneinheit 2 weiterleitet.
-
Alle Programmiermodelle F01, F02, ..., F0M legen mithilfe der Konfigurationsdaten die Interrupt-Generierung an die zweite DMA-Einheit 7 fest und die zweite DMA-Einheit 7 generiert den Interrupt für die erste DMA-Einheit 6 nach dem Beenden der Berechnungen eines Funktionsmodells in der Modellberechnungseinheit 3 gemäß einem Programmiermodell.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2005/0102488 A1 [0004]
- US 5619702 [0005]
-
Zitierte Nicht-Patentliteratur
-
- C. E. Rasmussen et al., „Gaussian Processes for Machine Learning“, MIT Press 2006 [0027]