DE102013212842A1 - Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit - Google Patents

Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit Download PDF

Info

Publication number
DE102013212842A1
DE102013212842A1 DE102013212842.8A DE102013212842A DE102013212842A1 DE 102013212842 A1 DE102013212842 A1 DE 102013212842A1 DE 102013212842 A DE102013212842 A DE 102013212842A DE 102013212842 A1 DE102013212842 A1 DE 102013212842A1
Authority
DE
Germany
Prior art keywords
unit
model
dma
calculation
configuration register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013212842.8A
Other languages
English (en)
Inventor
Heiner Markert
Andre GUNTORO
Wolfgang Fischer
Michael Hanselmann
Nico Bannow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102013212842.8A priority Critical patent/DE102013212842A1/de
Priority to US14/321,306 priority patent/US9785410B2/en
Priority to KR1020140081772A priority patent/KR102166650B1/ko
Priority to CN201410309076.2A priority patent/CN104281547B/zh
Priority to JP2014135868A priority patent/JP6420983B2/ja
Publication of DE102013212842A1 publication Critical patent/DE102013212842A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Bus Control (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Steuergeräts (1), wobei das Steuergerät (1) eine softwaregesteuerte Hauptrecheneinheit (2), eine rein hardwarebasierte Modellberechnungseinheit (3) zum Berechnen eines Algorithmus, insbesondere zur Durchführung eines Bayes-Regressionsverfahrens, basierend auf Konfigurationsdaten, und eine Speichereinheit (5) umfasst, wobei ein Modellspeicherbereich (51) in der Speichereinheit (5) definiert ist, dem ein Konfigurationsregisterblock (31) zum Bereitstellen der Konfigurationsdaten in der Modellberechnungseinheit (3) zugeordnet ist, wobei einer höchsten Adresse in dem Konfigurationsregisterblock (31), in den Konfigurationsdaten geschrieben werden, ein Berechnungsstart-Konfigurationsregister (33) zugeordnet ist, dessen Beschreiben die Berechnung in der Modellberechnungseinheit (3) startet, wobei die Konfigurationsdaten in einem Speicherbereich der Speichereinheit (5) mithilfe eines inkrementellen Kopierprozesses von dem Modellspeicherbereich (51) in den Konfigurationsregisterblock (31) geschrieben werden, wobei bei dem inkrementellen Kopierprozess die Adressen in aufsteigender Folge kopiert werden.

Description

  • 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]

Claims (13)

  1. Verfahren zum Betreiben eines Steuergeräts (1), wobei das Steuergerät (1) eine softwaregesteuerte Hauptrecheneinheit (2), eine rein hardwarebasierte Modellberechnungseinheit (3) zum Berechnen eines Algorithmus, insbesondere zur Durchführung eines Bayes-Regressionsverfahrens, basierend auf Konfigurationsdaten, und eine Speichereinheit (5) umfasst, wobei ein Modellspeicherbereich (51) in der Speichereinheit (5) definiert ist, dem ein Konfigurationsregisterblock (31) zum Bereitstellen der Konfigurationsdaten in der Modellberechnungseinheit (3) zugeordnet ist, wobei einer höchsten Adresse in dem Konfigurationsregisterblock (31), in den Konfigurationsdaten geschrieben werden, ein Berechnungsstart-Konfigurationsregister (33) zugeordnet ist, dessen Beschreiben die Berechnung in der Modellberechnungseinheit (3) startet, wobei die Konfigurationsdaten in einem Speicherbereich der Speichereinheit (5) mithilfe eines inkrementellen Kopierprozesses von dem Modellspeicherbereich (51) in den Konfigurationsregisterblock (31) geschrieben werden, wobei bei dem inkrementellen Kopierprozess die Adressen in aneinanderreihender Folge, insbesondere in aufsteigender Folge, kopiert werden.
  2. Verfahren nach Anspruch 1, wobei der inkrementelle Kopierprozess mithilfe einer Blockkopierfunktion der DMA-Einheit (6) durchgeführt wird.
  3. Verfahren nach Anspruch 2, wobei der inkrementelle Kopierprozess eine Granularität aufweist, wobei sich an die dem Berechnungsstart-Konfigurationsregister (33) zugeordnete Speicheradresse ein ungenutzter Speicherbereich anschließt, um die Granularität der DMA einzupassen.
  4. Verfahren nach Anspruch 2 oder 3, wobei die DMA-Einheit (6) von der Hauptrecheneinheit (2) angewiesen wird, mehrere aufeinanderfolgende Blockkopierfunktionen mit der gleichen Zielbasisadresse auszuführen.
  5. Verfahren nach Anspruch 4, wobei entsprechend der Anweisung der DMA-Einheit (6), mehrere aufeinanderfolgende Blockkopierfunktionen auszuführen, mehrere Berechnungen in der Modellberechnungseinheit (3) durchgeführt werden, wobei eine zweite DMA-Einheit (7) nach jeder durch den mehrfachen Blockkopierprozess gestarteten Berechnung das Berechnungsergebnis kopiert und die erste DMA-Einheit (6) anweist, den nächsten Blockkopierprozess durchzuführen.
  6. Steuergerät (1) zum Betreiben einer physikalischen Einheit, umfassend: – eine softwaregesteuerte Hauptrecheneinheit (2); – eine rein hardwarebasierte Modellberechnungseinheit (3) zum Berechnen eines Algorithmus, insbesondere zur Durchführung eines Bayes-Regressionsverfahrens, basierend auf Konfigurationsdaten; und – eine Speichereinheit (5) zum Speichern der Konfigurationsdaten, wobei ein Modellspeicherbereich (51) in der Speichereinheit (5) definiert ist, dem ein Konfigurationsregisterblock (31) zum Bereitstellen der Konfigurationsdaten in der Modellberechnungseinheit (3) zugeordnet ist, wobei einer höchste Adresse in dem Konfigurationsregisterblock (31) ein Berechnungsstart-Konfigurationsregister (33) zugeordnet ist; wobei die Modellberechnungseinheit (3) ausgebildet ist, um eine Berechnung des Algorithmus zu starten, wenn das Berechnungsstart-Konfigurationsregister (33) beschrieben wird.
  7. Steuergerät nach Anspruch 6, wobei eine erste DMA-Einheit (6) vorgesehen ist, um das Beschreiben des Konfigurationsregisterblock (31) mithilfe eines Blockkopierprozesses durchzuführen.
  8. Steuergerät nach Anspruch 7, wobei die Hauptrecheneinheit (2) vorgesehen ist, um die Funktion der ersten DMA-Einheit (6) zu starten.
  9. Steuergerät nach Anspruch 7 oder 8, wobei die Hauptrecheneinheit (2) ausgebildet ist, um die erste DMA-Einheit (6) zu veranlassen, einen mehrfachen Blockkopierprozess durchzuführen, wonach hintereinander mehrere Berechnungen in der Modellberechnungseinheit (3) durchgeführt werden.
  10. Steuergerät nach Anspruch 9, wobei eine zweite DMA-Einheit (7) vorgesehen ist, um nach jeder durch den mehrfachen Blockkopierprozess gestarteten Berechnung das Berechnungsergebnis zu kopieren und die erste DMA-Einheit (6) anzuweisen, den nächsten Blockkopierprozess durchzuführen.
  11. Computerprogramm, welches dazu eingerichtet ist, alle Schritte des Verfahrens nach einem der Ansprüche 1 bis 5 auszuführen.
  12. Elektronisches Speichermedium, auf welchem ein Computerprogramm nach Anspruch 11 gespeichert ist.
  13. Steuergerät nach einen der Ansprüche 6 bis 10, welches ein elektronisches Speichermedium nach Anspruch 12 aufweist.
DE102013212842.8A 2013-07-02 2013-07-02 Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit Pending DE102013212842A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102013212842.8A DE102013212842A1 (de) 2013-07-02 2013-07-02 Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit
US14/321,306 US9785410B2 (en) 2013-07-02 2014-07-01 Method for operating a control unit and a control unit having a model calculation unit
KR1020140081772A KR102166650B1 (ko) 2013-07-02 2014-07-01 제어 장치의 작동 방법 및 모델 연산 유닛을 포함하는 제어 장치
CN201410309076.2A CN104281547B (zh) 2013-07-02 2014-07-01 用于运行控制器的方法以及具有模型计算单元的控制器
JP2014135868A JP6420983B2 (ja) 2013-07-02 2014-07-01 制御装置を駆動する方法及びモデル計算ユニットを有する制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013212842.8A DE102013212842A1 (de) 2013-07-02 2013-07-02 Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit

Publications (1)

Publication Number Publication Date
DE102013212842A1 true DE102013212842A1 (de) 2015-01-08

Family

ID=52106201

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013212842.8A Pending DE102013212842A1 (de) 2013-07-02 2013-07-02 Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit

Country Status (5)

Country Link
US (1) US9785410B2 (de)
JP (1) JP6420983B2 (de)
KR (1) KR102166650B1 (de)
CN (1) CN104281547B (de)
DE (1) DE102013212842A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018202093A1 (de) 2018-02-12 2019-08-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Berechnung von Datenmodellen in sicherheitskritischen Systemen

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
CN108139723A (zh) * 2015-11-19 2018-06-08 帝斯贝思数字信号处理和控制工程有限公司 用于运行控制器的方法以及设置用于外部旁路的控制器
US10261790B2 (en) * 2016-03-31 2019-04-16 Intel Corporation Memory copy instructions, processors, methods, and systems
DE102016216947A1 (de) * 2016-09-07 2018-03-08 Robert Bosch Gmbh Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells
DE102016216950A1 (de) * 2016-09-07 2018-03-08 Robert Bosch Gmbh Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells mit Vorwärts- und Rückkopplung
CN108446096B (zh) 2018-03-21 2021-01-29 杭州中天微系统有限公司 数据计算系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619702A (en) 1994-05-25 1997-04-08 National Instruments Corporation Method and apparatus for programming registers using simplified commands
US20050102488A1 (en) 2003-11-07 2005-05-12 Bullis George A. Firmware description language for accessing firmware registers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6097435A (ja) 1983-11-02 1985-05-31 Hitachi Ltd 演算処理装置
US5161117A (en) 1989-06-05 1992-11-03 Fairchild Weston Systems, Inc. Floating point conversion device and method
KR100572945B1 (ko) * 1998-02-04 2006-04-24 텍사스 인스트루먼츠 인코포레이티드 효율적으로 접속 가능한 하드웨어 보조 처리기를 구비하는디지탈 신호 처리기
JP2000137674A (ja) * 1998-10-30 2000-05-16 Nec Corp バースト転送メモリマップトレジスタ
JP2001350713A (ja) * 2000-06-07 2001-12-21 Hitachi Ltd 転送制御装置
US7836283B2 (en) * 2007-08-31 2010-11-16 Freescale Semiconductor, Inc. Data acquisition messaging using special purpose registers
IL187038A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure data processing for unaligned data
JP5347544B2 (ja) * 2009-02-09 2013-11-20 トヨタ自動車株式会社 半導体集積回路
DE102010028259A1 (de) * 2010-04-27 2011-10-27 Robert Bosch Gmbh Mikrocontroller mit einer Recheneinheit und einer Logikschaltung sowie Verfahrung zur Durchführung von Rechnungen durch einen Mikrocontroller für eine Regelung oder eine Steuerung in einem Fahrzeug
DE102010028266A1 (de) * 2010-04-27 2011-10-27 Robert Bosch Gmbh Steuergerät und Verfahren zur Berechnung einer Ausgangsgröße für eine Steuerung
CN102346899A (zh) * 2011-10-08 2012-02-08 亿赞普(北京)科技有限公司 一种基于用户行为的广告点击率预测方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619702A (en) 1994-05-25 1997-04-08 National Instruments Corporation Method and apparatus for programming registers using simplified commands
US20050102488A1 (en) 2003-11-07 2005-05-12 Bullis George A. Firmware description language for accessing firmware registers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C. E. Rasmussen et al., "Gaussian Processes for Machine Learning", MIT Press 2006

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018202093A1 (de) 2018-02-12 2019-08-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Berechnung von Datenmodellen in sicherheitskritischen Systemen
US11042143B2 (en) 2018-02-12 2021-06-22 Robert Bosch Gmbh Method and device for detecting errors occurring during computing data models in safety-critical systems

Also Published As

Publication number Publication date
US20150012575A1 (en) 2015-01-08
KR102166650B1 (ko) 2020-10-16
CN104281547A (zh) 2015-01-14
JP6420983B2 (ja) 2018-11-07
JP2015015024A (ja) 2015-01-22
CN104281547B (zh) 2019-03-22
US9785410B2 (en) 2017-10-10
KR20150004284A (ko) 2015-01-12

Similar Documents

Publication Publication Date Title
DE102013212842A1 (de) Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit
DE102010028259A1 (de) Mikrocontroller mit einer Recheneinheit und einer Logikschaltung sowie Verfahrung zur Durchführung von Rechnungen durch einen Mikrocontroller für eine Regelung oder eine Steuerung in einem Fahrzeug
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE102013213420A1 (de) Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
EP2765528A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE102011101064A1 (de) Formale methoden nutzende zeitsteuerungsanalyse
DE102013206292A1 (de) Verfahren und Vorrichtung zum Erstellen eines datenbasierten Funktionsmodells
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE102017213510A1 (de) Verfahren und Vorrichtung zum Erzeugen eines maschinellen Lernsystems, und virtuelle Sensorvorrichtung
DE112019000179T5 (de) Fahrzeugsteuervorrichtung und programmaktualisierungssystem
DE102013206304A1 (de) Verfahren und Vorrichtung zum Erstellen eines nicht parametrischen, datenbasierten Funktionsmodells
DE2732008B2 (de) Einrichtung zur Reduzierung von Fibonacci-p-Codes auf die Minimalform
DE102018213616A1 (de) Kryptografiemodul und Betriebsverfahren hierfür
DE102010028227A1 (de) Coprozessor mit Ablaufsteuerung
DE102015208513A1 (de) Verfahren und Vorrichtung zum Berechnen eines datenbasierten Multi-Output-Funktionsmodells
DE102013206291A1 (de) Verfahren und Vorrichtung zum Erstellen eines nicht parametrischen, datenbasierten Funktionsmodells
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
EP0111161B1 (de) Vorrichtung zur Mikrobefehls-Bereitstellung für mindestens zwei unabhängig arbeitende Funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen Baustein und Verfahren zu ihrem Betrieb
WO2022058140A1 (de) Steuerung eines technischen systems mit einer recheneinheit für künstliche intelligenz
DE102014208379A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Funktionswerts eines bezüglich einer Eingangsgröße invertierten datenbasierten Funktionsmodells
DE102013224694A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Gradienten eines datenbasierten Funktionsmodells
DE102013206320A1 (de) Verfahren und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells
DE2601379C3 (de) Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0013280000

Ipc: G06F0013320000